diff --git a/src/components/index.ts b/src/components/index.ts
index 09596a8e..3f81e629 100644
--- a/src/components/index.ts
+++ b/src/components/index.ts
@@ -1,5 +1,4 @@
export { Alert, AlertIntent } from "./alert";
-export { InlineAlert } from "./inline-alert";
export { Avatar } from "./avatar";
export { Badge } from "./badge";
export { Button } from "./button";
@@ -8,9 +7,11 @@ export { Dialog } from "./dialog";
export { DividerLine } from "./divider-line";
export { FormField } from "./form-field";
export { IconButton } from "./icon-button";
+export { InlineAlert } from "./inline-alert";
export { LastChangedInfo } from "./last-changed-info";
export { Menu } from "./menu";
export { Page } from "./page";
+export { Panel } from "./panel";
export { Section } from "./section";
export { Sidebar } from "./sidebar";
export { SidebarContainer } from "./sidebar-container";
diff --git a/src/components/panel/index.ts b/src/components/panel/index.ts
new file mode 100644
index 00000000..8628fc58
--- /dev/null
+++ b/src/components/panel/index.ts
@@ -0,0 +1 @@
+export { Panel } from "./panel";
diff --git a/src/components/panel/panel.stories.tsx b/src/components/panel/panel.stories.tsx
new file mode 100644
index 00000000..9ddd2498
--- /dev/null
+++ b/src/components/panel/panel.stories.tsx
@@ -0,0 +1,44 @@
+import type { Meta, StoryObj } from "@storybook/react";
+import React from "react";
+import { Panel } from "./panel";
+import { Button } from "../button/button";
+import { getStoryDescription } from "../../util/storybook-utils";
+import { Toggle } from "../toggle";
+
+const meta: Meta
= {
+ title: "Panel",
+ parameters: {
+ ...getStoryDescription("Simple container used to group and organize elements in the UI."),
+ backgrounds: {
+ default: "light",
+ },
+ },
+ component: Panel,
+ args: {
+ className: "",
+ children: "Panel with text content",
+ },
+};
+
+export default meta;
+type Story = StoryObj;
+
+export const Default: Story = {};
+
+const noop = () => undefined;
+export const WithComponents: Story = {
+ args: {
+ children: (
+ <>
+
+
+
+ Paragraph content
+ >
+ ),
+ },
+};
diff --git a/src/components/panel/panel.tsx b/src/components/panel/panel.tsx
new file mode 100644
index 00000000..dab3f337
--- /dev/null
+++ b/src/components/panel/panel.tsx
@@ -0,0 +1,13 @@
+import React, { FC, ReactNode } from "react";
+import { classNames } from "../../util/class-names";
+
+interface PanelProps {
+ children: ReactNode;
+ className?: string;
+}
+
+export const Panel: FC = ({ children, className }) => (
+
+ {children}
+
+);
diff --git a/src/components/section/section-panel.tsx b/src/components/section/section-panel.tsx
index 90402019..c024f23e 100644
--- a/src/components/section/section-panel.tsx
+++ b/src/components/section/section-panel.tsx
@@ -4,6 +4,10 @@ export interface SectionPanelProps {
children: React.ReactNode;
}
+/**
+ * @deprecated Use the dedicated Panel component
+ * Delete me on version 3
+ */
export const SectionPanel = ({ children }: SectionPanelProps) => {
return (
diff --git a/src/components/section/section.tsx b/src/components/section/section.tsx
index 48d8a8fd..82c8a38f 100644
--- a/src/components/section/section.tsx
+++ b/src/components/section/section.tsx
@@ -15,6 +15,9 @@ const Section = ({ children }: SectionProps) => {
Section.TitleGroup = SectionTitleGroup;
Section.Title = SectionTitle;
Section.Description = SectionDescription;
+/**
+ * @deprecated Use the dedicated Panel component
+ */
Section.Panel = SectionPanel;
export { Section };
diff --git a/src/components/table-virtualized/table-virtualized.tsx b/src/components/table-virtualized/table-virtualized.tsx
index fb16094c..34c43511 100644
--- a/src/components/table-virtualized/table-virtualized.tsx
+++ b/src/components/table-virtualized/table-virtualized.tsx
@@ -14,17 +14,15 @@ import { useVirtualizer, VirtualizerOptions } from "@tanstack/react-virtual";
import React from "react";
import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend";
+import { classNames } from "../../util/class-names";
+import { TableUnvirtualized } from "../table-unvirtualized";
import { DraggableRow } from "./draggable-row/draggable-row";
-import { VirtualizedHeaderGroup } from "./header-group/header-group";
import { ExpandableButtonCell } from "./expandable-button-cell/expandable-button-cell";
-import { TableUnvirtualized } from "../table-unvirtualized";
-import { classNames } from "../../util/class-names";
+import { VirtualizedHeaderGroup } from "./header-group/header-group";
-export interface TableVirtualizedProps
{
+export interface TableVirtualizedProps {
data: TableData[];
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
- // @ts-ignore
- columnDefs: ColumnDef[];
+ columnDefs: ColumnDef[];
showPlaceholder?: boolean;
placeholder?: React.ReactNode;
isDraggableRowsEnabled?: boolean;