@optimum-intelligence/opti-ui 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +9 -7
  2. package/dist/components/app-shell/AppShell.d.ts +75 -6
  3. package/dist/components/app-shell/AppShell.js +670 -185
  4. package/dist/components/app-shell/AppShell.js.map +1 -1
  5. package/dist/components/badge/Badge.d.ts +2 -4
  6. package/dist/components/badge/Badge.js +12 -29
  7. package/dist/components/badge/Badge.js.map +1 -1
  8. package/dist/components/calendar/Calendar.d.ts +19 -8
  9. package/dist/components/calendar/Calendar.js +285 -212
  10. package/dist/components/calendar/Calendar.js.map +1 -1
  11. package/dist/components/calendar/DateConfig.d.ts +37 -0
  12. package/dist/components/calendar/DateConfig.js +75 -0
  13. package/dist/components/calendar/DateConfig.js.map +1 -0
  14. package/dist/components/calendar/date-utils.d.ts +41 -6
  15. package/dist/components/calendar/date-utils.js +119 -20
  16. package/dist/components/calendar/date-utils.js.map +1 -1
  17. package/dist/components/data-table/DataTableContent.js +3 -3
  18. package/dist/components/data-table/DataTableContent.js.map +1 -1
  19. package/dist/components/date-picker/DatePicker.d.ts +33 -10
  20. package/dist/components/date-picker/DatePicker.js +315 -279
  21. package/dist/components/date-picker/DatePicker.js.map +1 -1
  22. package/dist/components/date-picker/DateRangePicker.d.ts +11 -4
  23. package/dist/components/date-picker/DateRangePicker.js +240 -206
  24. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  25. package/dist/components/date-picker/PickerField.js +1 -1
  26. package/dist/components/date-picker/PickerField.js.map +1 -1
  27. package/dist/components/table/Table.d.ts +1 -1
  28. package/dist/components/table/Table.js +2 -2
  29. package/dist/components/table/Table.js.map +1 -1
  30. package/dist/components.json +2023 -1864
  31. package/dist/index.d.ts +1 -0
  32. package/dist/index.js +4 -3
  33. package/dist/llms-full.txt +869 -752
  34. package/dist/llms.txt +37 -35
  35. package/dist/opti-ui.css +171 -81
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"PickerField.js","names":["React","Popover","BasePopover","cx","CalendarIcon","PopoverContentProps","ControlSize","PickerFieldProps","ref","Ref","HTMLButtonElement","label","ReactNode","description","error","required","disabled","placeholder","size","open","defaultOpen","onOpenChange","id","className","triggerProps","Omit","ComponentProps","Trigger","contentProps","useOpenState","t0","$","_c","t1","undefined","inner","setInner","useState","t2","next","setOpen","t3","t4","const","PickerFieldShellProps","display","children","inputs","PickerField","idProp","generatedId","useId","popupRef","useRef","errorId","describedBy","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Symbol","for","t19","t20","current","querySelector","t21","t22","t23","t24","t25","t26","t27","_c","BasePopover","Popover"],"sources":["../../../src/components/date-picker/PickerField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport { cx } from '../../utils/cx';\nimport { CalendarIcon } from '../../icons';\nimport { Popover, type PopoverContentProps } from '../popover/Popover';\nimport type { ControlSize } from '../input/Input';\n\n/** Field props shared by the date pickers. */\nexport interface PickerFieldProps {\n /** Ref to the trigger button. */\n ref?: React.Ref<HTMLButtonElement>;\n /** Visible field label. */\n label?: React.ReactNode;\n /** Help text under the field. */\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n /** Marks the field required and adds the required indicator to the label. */\n required?: boolean;\n /** Disables the field. */\n disabled?: boolean;\n /** Text shown while no date is selected. */\n placeholder?: React.ReactNode;\n /** Control height. */\n size?: ControlSize;\n /** Whether the calendar popover is open (controlled). */\n open?: boolean;\n /** Initial popover state when uncontrolled. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Id of the trigger button. Generated when omitted. */\n id?: string;\n /** Class name for the trigger button. */\n className?: string;\n /** Props for the trigger button (aria-*, data-*, onBlur…). */\n triggerProps?: Omit<React.ComponentProps<typeof BasePopover.Trigger>, 'children' | 'disabled' | 'id'>;\n /** Props for the popover content. */\n contentProps?: Omit<PopoverContentProps, 'children'>;\n}\n\nexport function useOpenState({ open, defaultOpen = false, onOpenChange }: PickerFieldProps) {\n const [inner, setInner] = React.useState(defaultOpen);\n const setOpen = (next: boolean) => {\n setInner(next);\n onOpenChange?.(next);\n };\n return [open ?? inner, setOpen] as const;\n}\n\ninterface PickerFieldShellProps extends Omit<PickerFieldProps, 'open' | 'defaultOpen' | 'onOpenChange'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Text for the current value; `null` shows the placeholder. */\n display: React.ReactNode | null;\n /** Popover content. */\n children: React.ReactNode;\n /** Hidden inputs that submit the value with a form. */\n inputs?: React.ReactNode;\n}\n\n/** Label, trigger button, calendar popover, description and error of a date picker. */\nexport function PickerField({\n label,\n description,\n error,\n required,\n disabled,\n placeholder,\n size = 'md',\n open,\n onOpenChange,\n id: idProp,\n className,\n triggerProps,\n contentProps,\n display,\n children,\n inputs,\n ref,\n}: PickerFieldShellProps) {\n const generatedId = React.useId();\n const id = idProp ?? generatedId;\n const popupRef = React.useRef<HTMLDivElement>(null);\n const errorId = error ? `${id}-error` : undefined;\n const describedBy = cx(description != null && `${id}-description`, errorId) || undefined;\n\n return (\n <div\n className={cx('oui-field', 'oui-date-picker', className)}\n data-disabled={disabled || undefined}\n data-invalid={error ? '' : undefined}\n >\n {label != null && (\n <label id={`${id}-label`} htmlFor={id} className=\"oui-field__label\">\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </label>\n )}\n <Popover.Root open={open} onOpenChange={(next) => onOpenChange(next)}>\n <BasePopover.Trigger\n ref={ref}\n id={id}\n disabled={disabled}\n aria-labelledby={label != null ? `${id}-label ${id}-value` : undefined}\n aria-describedby={describedBy}\n aria-required={required || undefined}\n aria-invalid={error ? true : undefined}\n {...triggerProps}\n className={cx('oui-date-picker__trigger', typeof triggerProps?.className === 'string' && triggerProps.className)}\n data-size={size}\n data-invalid={error ? '' : undefined}\n data-placeholder={display == null ? '' : undefined}\n >\n <span id={`${id}-value`} className=\"oui-date-picker__value\">\n {display ?? placeholder}\n </span>\n <CalendarIcon />\n </BasePopover.Trigger>\n <Popover.Content\n ref={popupRef}\n align=\"start\"\n sideOffset={6}\n initialFocus={() => popupRef.current?.querySelector<HTMLElement>('.oui-calendar__day[tabindex=\"0\"]') ?? true}\n {...contentProps}\n className={cx('oui-date-picker__popup', typeof contentProps?.className === 'string' && contentProps.className)}\n >\n {children}\n </Popover.Content>\n </Popover.Root>\n {inputs}\n {description != null && (\n <p id={`${id}-description`} className=\"oui-field__description\">\n {description}\n </p>\n )}\n {error && (\n <div id={`${id}-error`} className=\"oui-field__error\">\n {error}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PickerField.js","names":["React","Popover","BasePopover","cx","CalendarIcon","PopoverContentProps","ControlSize","PickerFieldProps","ref","Ref","HTMLButtonElement","label","ReactNode","description","error","required","disabled","placeholder","size","open","defaultOpen","onOpenChange","id","className","triggerProps","Omit","ComponentProps","Trigger","contentProps","useOpenState","t0","$","_c","t1","undefined","inner","setInner","useState","t2","next","setOpen","t3","t4","const","PickerFieldShellProps","display","children","inputs","PickerField","idProp","generatedId","useId","popupRef","useRef","errorId","describedBy","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","Symbol","for","t19","t20","current","querySelector","t21","t22","t23","t24","t25","t26","t27","_c","BasePopover","Popover"],"sources":["../../../src/components/date-picker/PickerField.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Popover as BasePopover } from '@base-ui/react/popover';\nimport { cx } from '../../utils/cx';\nimport { CalendarIcon } from '../../icons';\nimport { Popover, type PopoverContentProps } from '../popover/Popover';\nimport type { ControlSize } from '../input/Input';\n\n/** Field props shared by the date pickers. */\nexport interface PickerFieldProps {\n /** Ref to the trigger button. */\n ref?: React.Ref<HTMLButtonElement>;\n /** Visible field label. */\n label?: React.ReactNode;\n /** Help text under the field. */\n description?: React.ReactNode;\n /** Error message. When set, the field is marked invalid. */\n error?: React.ReactNode;\n /** Marks the field required and adds the required indicator to the label. */\n required?: boolean;\n /** Disables the field. */\n disabled?: boolean;\n /** Text shown while no date is selected. */\n placeholder?: React.ReactNode;\n /** Control height. */\n size?: ControlSize;\n /** Whether the calendar popover is open (controlled). */\n open?: boolean;\n /** Initial popover state when uncontrolled. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Id of the trigger button. Generated when omitted. */\n id?: string;\n /** Class name for the trigger button. */\n className?: string;\n /** Props for the trigger button (aria-*, data-*, onBlur…). */\n triggerProps?: Omit<React.ComponentProps<typeof BasePopover.Trigger>, 'children' | 'disabled' | 'id'>;\n /** Props for the popover content. */\n contentProps?: Omit<PopoverContentProps, 'children'>;\n}\n\nexport function useOpenState({ open, defaultOpen = false, onOpenChange }: PickerFieldProps) {\n const [inner, setInner] = React.useState(defaultOpen);\n const setOpen = (next: boolean) => {\n setInner(next);\n onOpenChange?.(next);\n };\n return [open ?? inner, setOpen] as const;\n}\n\ninterface PickerFieldShellProps extends Omit<PickerFieldProps, 'open' | 'defaultOpen' | 'onOpenChange'> {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n /** Text for the current value; `null` shows the placeholder. */\n display: React.ReactNode | null;\n /** Popover content. */\n children: React.ReactNode;\n /** Hidden inputs that submit the value with a form. */\n inputs?: React.ReactNode;\n}\n\n/** Label, trigger button, calendar popover, description and error of a date picker. */\nexport function PickerField({\n label,\n description,\n error,\n required,\n disabled,\n placeholder,\n size = 'md',\n open,\n onOpenChange,\n id: idProp,\n className,\n triggerProps,\n contentProps,\n display,\n children,\n inputs,\n ref,\n}: PickerFieldShellProps) {\n const generatedId = React.useId();\n const id = idProp ?? generatedId;\n const popupRef = React.useRef<HTMLDivElement>(null);\n const errorId = error ? `${id}-error` : undefined;\n const describedBy = cx(description != null && `${id}-description`, errorId) || undefined;\n\n return (\n <div\n className={cx('oui-field', 'oui-date-picker', className)}\n data-disabled={disabled || undefined}\n data-invalid={error ? '' : undefined}\n >\n {label != null && (\n <label id={`${id}-label`} htmlFor={id} className=\"oui-field__label\">\n {label}\n {required && (\n <span className=\"oui-field__required\" aria-hidden>\n *\n </span>\n )}\n </label>\n )}\n <Popover.Root open={open} onOpenChange={(next) => onOpenChange(next)}>\n <BasePopover.Trigger\n ref={ref}\n id={id}\n disabled={disabled}\n aria-labelledby={label != null ? `${id}-label ${id}-value` : undefined}\n aria-describedby={describedBy}\n aria-required={required || undefined}\n aria-invalid={error ? true : undefined}\n {...triggerProps}\n className={cx('oui-date-picker__trigger', typeof triggerProps?.className === 'string' && triggerProps.className)}\n data-size={size}\n data-invalid={error ? '' : undefined}\n data-placeholder={display == null ? '' : undefined}\n >\n <span id={`${id}-value`} className=\"oui-date-picker__value\">\n {display ?? placeholder}\n </span>\n <CalendarIcon />\n </BasePopover.Trigger>\n <Popover.Content\n ref={popupRef}\n align=\"start\"\n sideOffset={6}\n initialFocus={() => popupRef.current?.querySelector<HTMLElement>('.oui-calendar__day[tabindex=\"0\"], .oui-calendar__choice[tabindex=\"0\"]') ?? true}\n {...contentProps}\n className={cx('oui-date-picker__popup', typeof contentProps?.className === 'string' && contentProps.className)}\n >\n {children}\n </Popover.Content>\n </Popover.Root>\n {inputs}\n {description != null && (\n <p id={`${id}-description`} className=\"oui-field__description\">\n {description}\n </p>\n )}\n {error && (\n <div id={`${id}-error`} className=\"oui-field__error\">\n {error}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  export interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {
3
3
  /** Ref to the `<table>`. */
4
4
  ref?: React.Ref<HTMLTableElement>;
5
- /** Row height. */
5
+ /** Row height and cell padding. `normal` suits data-heavy screens; `comfortable` adds air for short tables. */
6
6
  density?: 'compact' | 'normal' | 'comfortable';
7
7
  /** Alternating row background. */
8
8
  striped?: boolean;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cx } from "../../utils/cx.js";
3
3
  import { createPrimitive } from "../../utils/primitive.js";
4
- import { ArrowDownIcon, ArrowUpIcon, ChevronsUpDownIcon } from "../../icons/index.js";
4
+ import { ChevronDownIcon, ChevronUpIcon, ChevronsUpDownIcon } from "../../icons/index.js";
5
5
  import { c } from "react/compiler-runtime";
6
6
  import "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -154,7 +154,7 @@ function TableHead(t0) {
154
154
  className: "oui-table__sort",
155
155
  "data-active": sort ? "" : void 0,
156
156
  onClick: onSort,
157
- children: [children, sort === "asc" ? /* @__PURE__ */ jsx(ArrowUpIcon, {}) : sort === "desc" ? /* @__PURE__ */ jsx(ArrowDownIcon, {}) : /* @__PURE__ */ jsx(ChevronsUpDownIcon, {})]
157
+ children: [children, sort === "asc" ? /* @__PURE__ */ jsx(ChevronUpIcon, {}) : sort === "desc" ? /* @__PURE__ */ jsx(ChevronDownIcon, {}) : /* @__PURE__ */ jsx(ChevronsUpDownIcon, {})]
158
158
  }) : children;
159
159
  $[10] = children;
160
160
  $[11] = onSort;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","names":["React","cx","createPrimitive","ArrowDownIcon","ArrowUpIcon","ChevronsUpDownIcon","TableProps","TableHTMLAttributes","HTMLTableElement","ref","Ref","density","striped","hoverable","stickyHeader","wrapperProps","HTMLAttributes","HTMLDivElement","Table","t0","$","_c","className","props","t1","t2","undefined","t3","t4","t5","t6","t7","t8","t9","t10","TableHeader","TableBody","TableFooter","TableRow","TableCaption","Align","SortDirection","TableHeadProps","Omit","ThHTMLAttributes","HTMLTableCellElement","align","sort","onSort","TableHead","children","sortable","TableCellProps","TdHTMLAttributes","numeric","TableCell","_c"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { ArrowDownIcon, ArrowUpIcon, ChevronsUpDownIcon } from '../../icons';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Ref to the `<table>`. */\n ref?: React.Ref<HTMLTableElement>;\n /** Row height. */\n density?: 'compact' | 'normal' | 'comfortable';\n /** Alternating row background. */\n striped?: boolean;\n /** Highlight rows on hover. */\n hoverable?: boolean;\n /** Keep the header visible while the wrapper scrolls (set a max height on it). */\n stickyHeader?: boolean;\n /** Props for the horizontally scrolling wrapper. */\n wrapperProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\n/**\n * Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,\n * `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting\n * and pagination use `DataTable` instead.\n *\n * @example\n * <Table striped>\n * <TableHeader>\n * <TableRow><TableHead>Site</TableHead><TableHead align=\"end\">kWh</TableHead></TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>\n * </TableBody>\n * </Table>\n */\nexport function Table({\n density = 'normal',\n striped,\n hoverable = true,\n stickyHeader,\n wrapperProps,\n className,\n ref,\n ...props\n}: TableProps) {\n return (\n <div {...wrapperProps} className={cx('oui-table-wrap', wrapperProps?.className)}>\n <table\n ref={ref}\n className={cx('oui-table', className)}\n data-density={density}\n data-striped={striped || undefined}\n data-hoverable={hoverable || undefined}\n data-sticky-header={stickyHeader || undefined}\n {...props}\n />\n </div>\n );\n}\n\nexport const TableHeader = createPrimitive('thead', 'oui-table__header', 'TableHeader');\nexport const TableBody = createPrimitive('tbody', 'oui-table__body', 'TableBody');\nexport const TableFooter = createPrimitive('tfoot', 'oui-table__footer', 'TableFooter');\nexport const TableRow = createPrimitive('tr', 'oui-table__row', 'TableRow');\nexport const TableCaption = createPrimitive('caption', 'oui-table__caption', 'TableCaption');\n\ntype Align = 'start' | 'center' | 'end';\nexport type SortDirection = 'asc' | 'desc' | false;\n\nexport interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<th>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment of the header content. */\n align?: Align;\n /** Current sort of this column. Passing it (even `false`) makes the header sortable. */\n sort?: SortDirection;\n /** Called when the sortable header is clicked. */\n onSort?: () => void;\n}\n\n/** Column header cell (`<th>`), optionally a sort button. */\nexport function TableHead({ align = 'start', sort, onSort, className, children, ref, ...props }: TableHeadProps) {\n const sortable = sort !== undefined;\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cx('oui-table__head', className)}\n data-align={align}\n aria-sort={sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : undefined}\n {...props}\n >\n {sortable ? (\n <button type=\"button\" className=\"oui-table__sort\" data-active={sort ? '' : undefined} onClick={onSort}>\n {children}\n {sort === 'asc' ? <ArrowUpIcon /> : sort === 'desc' ? <ArrowDownIcon /> : <ChevronsUpDownIcon />}\n </button>\n ) : (\n children\n )}\n </th>\n );\n}\n\nexport interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<td>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment. Defaults to `end` when `numeric`, else `start`. */\n align?: Align;\n /** Tabular figures for numeric columns. */\n numeric?: boolean;\n}\n\n/** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */\nexport function TableCell({ align, numeric, className, ref, ...props }: TableCellProps) {\n return (\n <td\n ref={ref}\n className={cx('oui-table__cell', className)}\n data-align={align ?? (numeric ? 'end' : 'start')}\n data-numeric={numeric || undefined}\n {...props}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","names":["React","cx","createPrimitive","ChevronDownIcon","ChevronUpIcon","ChevronsUpDownIcon","TableProps","TableHTMLAttributes","HTMLTableElement","ref","Ref","density","striped","hoverable","stickyHeader","wrapperProps","HTMLAttributes","HTMLDivElement","Table","t0","$","_c","className","props","t1","t2","undefined","t3","t4","t5","t6","t7","t8","t9","t10","TableHeader","TableBody","TableFooter","TableRow","TableCaption","Align","SortDirection","TableHeadProps","Omit","ThHTMLAttributes","HTMLTableCellElement","align","sort","onSort","TableHead","children","sortable","TableCellProps","TdHTMLAttributes","numeric","TableCell","_c"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { ChevronDownIcon, ChevronUpIcon, ChevronsUpDownIcon } from '../../icons';\n\nexport interface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Ref to the `<table>`. */\n ref?: React.Ref<HTMLTableElement>;\n /** Row height and cell padding. `normal` suits data-heavy screens; `comfortable` adds air for short tables. */\n density?: 'compact' | 'normal' | 'comfortable';\n /** Alternating row background. */\n striped?: boolean;\n /** Highlight rows on hover. */\n hoverable?: boolean;\n /** Keep the header visible while the wrapper scrolls (set a max height on it). */\n stickyHeader?: boolean;\n /** Props for the horizontally scrolling wrapper. */\n wrapperProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\n/**\n * Styled HTML table inside a horizontally scrolling wrapper. Compose with `TableHeader`, `TableBody`,\n * `TableFooter`, `TableRow`, `TableHead`, `TableCell` and `TableCaption`. For search, filters, sorting\n * and pagination use `DataTable` instead.\n *\n * @example\n * <Table striped>\n * <TableHeader>\n * <TableRow><TableHead>Site</TableHead><TableHead align=\"end\">kWh</TableHead></TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow><TableCell>Győr</TableCell><TableCell numeric>1,204</TableCell></TableRow>\n * </TableBody>\n * </Table>\n */\nexport function Table({\n density = 'normal',\n striped,\n hoverable = true,\n stickyHeader,\n wrapperProps,\n className,\n ref,\n ...props\n}: TableProps) {\n return (\n <div {...wrapperProps} className={cx('oui-table-wrap', wrapperProps?.className)}>\n <table\n ref={ref}\n className={cx('oui-table', className)}\n data-density={density}\n data-striped={striped || undefined}\n data-hoverable={hoverable || undefined}\n data-sticky-header={stickyHeader || undefined}\n {...props}\n />\n </div>\n );\n}\n\nexport const TableHeader = createPrimitive('thead', 'oui-table__header', 'TableHeader');\nexport const TableBody = createPrimitive('tbody', 'oui-table__body', 'TableBody');\nexport const TableFooter = createPrimitive('tfoot', 'oui-table__footer', 'TableFooter');\nexport const TableRow = createPrimitive('tr', 'oui-table__row', 'TableRow');\nexport const TableCaption = createPrimitive('caption', 'oui-table__caption', 'TableCaption');\n\ntype Align = 'start' | 'center' | 'end';\nexport type SortDirection = 'asc' | 'desc' | false;\n\nexport interface TableHeadProps extends Omit<React.ThHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<th>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment of the header content. */\n align?: Align;\n /** Current sort of this column. Passing it (even `false`) makes the header sortable. */\n sort?: SortDirection;\n /** Called when the sortable header is clicked. */\n onSort?: () => void;\n}\n\n/** Column header cell (`<th>`), optionally a sort button. */\nexport function TableHead({ align = 'start', sort, onSort, className, children, ref, ...props }: TableHeadProps) {\n const sortable = sort !== undefined;\n return (\n <th\n ref={ref}\n scope=\"col\"\n className={cx('oui-table__head', className)}\n data-align={align}\n aria-sort={sort === 'asc' ? 'ascending' : sort === 'desc' ? 'descending' : undefined}\n {...props}\n >\n {sortable ? (\n <button type=\"button\" className=\"oui-table__sort\" data-active={sort ? '' : undefined} onClick={onSort}>\n {children}\n {sort === 'asc' ? <ChevronUpIcon /> : sort === 'desc' ? <ChevronDownIcon /> : <ChevronsUpDownIcon />}\n </button>\n ) : (\n children\n )}\n </th>\n );\n}\n\nexport interface TableCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, 'align'> {\n /** Ref to the `<td>`. */\n ref?: React.Ref<HTMLTableCellElement>;\n /** Horizontal alignment. Defaults to `end` when `numeric`, else `start`. */\n align?: Align;\n /** Tabular figures for numeric columns. */\n numeric?: boolean;\n}\n\n/** Body cell (`<td>`). `numeric` right-aligns and uses tabular figures. */\nexport function TableCell({ align, numeric, className, ref, ...props }: TableCellProps) {\n return (\n <td\n ref={ref}\n className={cx('oui-table__cell', className)}\n data-align={align ?? (numeric ? 'end' : 'start')}\n data-numeric={numeric || undefined}\n {...props}\n />\n );\n}\n"],"mappings":"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"}