-
{children}
- {footer &&
{footer}
}
+
+ {header &&
{header}
}
+
{children}
+ {footer &&
{footer}
}
)
}
diff --git a/src/components/Common/UI/Box/BoxTypes.ts b/src/components/Common/UI/Box/BoxTypes.ts
index 13e3a17f6..4d94238a1 100644
--- a/src/components/Common/UI/Box/BoxTypes.ts
+++ b/src/components/Common/UI/Box/BoxTypes.ts
@@ -1,16 +1,16 @@
import type { ReactNode } from 'react'
export interface BoxProps {
- /**
- * Content to be displayed inside the box
- */
children: ReactNode
- /**
- * Content rendered at the bottom of the box with an edge-to-edge top border
- */
+ header?: ReactNode
footer?: ReactNode
- /**
- * CSS className to be applied
- */
+ withPadding?: boolean
className?: string
}
+
+/** @deprecated Use BoxProps with header/footer/children instead of compound subcomponents */
+export interface BoxSectionProps {
+ children: ReactNode
+ className?: string
+ variant?: 'default' | 'flush'
+}
diff --git a/src/components/Common/UI/Button/Button.module.scss b/src/components/Common/UI/Button/Button.module.scss
index 1eed02fe6..c6d05e125 100644
--- a/src/components/Common/UI/Button/Button.module.scss
+++ b/src/components/Common/UI/Button/Button.module.scss
@@ -3,9 +3,10 @@
position: relative;
border: none;
display: inline-flex;
+ flex-shrink: 0;
align-items: center;
justify-content: center;
- gap: toRem(4);
+ gap: toRem(8);
color: var(--g-colorPrimaryContent);
background: var(--g-colorPrimary);
border-radius: var(--g-buttonRadius);
diff --git a/src/components/Common/UI/Heading/Heading.module.scss b/src/components/Common/UI/Heading/Heading.module.scss
index 8fd5d13a4..cfb619999 100644
--- a/src/components/Common/UI/Heading/Heading.module.scss
+++ b/src/components/Common/UI/Heading/Heading.module.scss
@@ -2,7 +2,7 @@
.root {
text-wrap: balance;
margin: 0;
- font-weight: var(--g-fontWeightMedium);
+ font-weight: var(--g-fontWeightSemibold);
line-height: 1.2;
}
diff --git a/src/components/Common/UI/Table/Table.module.scss b/src/components/Common/UI/Table/Table.module.scss
index a821748f3..7a255719f 100644
--- a/src/components/Common/UI/Table/Table.module.scss
+++ b/src/components/Common/UI/Table/Table.module.scss
@@ -229,4 +229,35 @@
}
}
}
+
+ &[data-variant='embedded'] {
+ :global(.react-aria-Table) {
+ border: none;
+ border-radius: 0;
+ box-shadow: none;
+ background: transparent;
+
+ :global(.react-aria-TableHeader) {
+ th {
+ &:first-child {
+ border-top-left-radius: 0;
+ }
+
+ &:last-child {
+ border-top-right-radius: 0;
+ }
+ }
+ }
+
+ :global(.react-aria-Row[data-footer='true'] .react-aria-Cell) {
+ &:first-child {
+ border-bottom-left-radius: 0;
+ }
+
+ &:last-child {
+ border-bottom-right-radius: 0;
+ }
+ }
+ }
+ }
}
diff --git a/src/components/Common/UI/Table/Table.stories.tsx b/src/components/Common/UI/Table/Table.stories.tsx
index 0ab093e7c..b9a3d311b 100644
--- a/src/components/Common/UI/Table/Table.stories.tsx
+++ b/src/components/Common/UI/Table/Table.stories.tsx
@@ -410,6 +410,47 @@ export const MinimalWithComplexContent = () => {
)
}
+export const EmbeddedVariant = () => {
+ const { Table } = useComponentContext()
+
+ const headers: TableData[] = [
+ { key: 'name-header', content: 'Name' },
+ { key: 'email-header', content: 'Email' },
+ { key: 'role-header', content: 'Role' },
+ ]
+
+ const rows: TableRow[] = [
+ {
+ key: 'row-1',
+ data: [
+ { key: 'name-1', content: 'John Doe' },
+ { key: 'email-1', content: 'john@example.com' },
+ { key: 'role-1', content: 'Admin' },
+ ],
+ },
+ {
+ key: 'row-2',
+ data: [
+ { key: 'name-2', content: 'Jane Smith' },
+ { key: 'email-2', content: 'jane@example.com' },
+ { key: 'role-2', content: 'User' },
+ ],
+ },
+ {
+ key: 'row-3',
+ data: [
+ { key: 'name-3', content: 'Bob Johnson' },
+ { key: 'email-3', content: 'bob@example.com' },
+ { key: 'role-3', content: 'Editor' },
+ ],
+ },
+ ]
+
+ return (
+
+ )
+}
+
export const VariantComparison = () => {
const { Table } = useComponentContext()
@@ -452,6 +493,17 @@ export const VariantComparison = () => {
+