@optimum-intelligence/opti-ui 0.3.0 → 0.5.0

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 (131) hide show
  1. package/README.md +28 -7
  2. package/dist/components/accordion/Accordion.d.ts +12 -0
  3. package/dist/components/accordion/Accordion.js +12 -0
  4. package/dist/components/accordion/Accordion.js.map +1 -1
  5. package/dist/components/alert/Alert.d.ts +4 -0
  6. package/dist/components/alert/Alert.js.map +1 -1
  7. package/dist/components/app-shell/AppShell.d.ts +96 -5
  8. package/dist/components/app-shell/AppShell.js +676 -185
  9. package/dist/components/app-shell/AppShell.js.map +1 -1
  10. package/dist/components/avatar/Avatar.d.ts +8 -0
  11. package/dist/components/avatar/Avatar.js +2 -0
  12. package/dist/components/avatar/Avatar.js.map +1 -1
  13. package/dist/components/badge/Badge.d.ts +10 -3
  14. package/dist/components/badge/Badge.js +17 -28
  15. package/dist/components/badge/Badge.js.map +1 -1
  16. package/dist/components/breadcrumbs/Breadcrumbs.d.ts +1 -0
  17. package/dist/components/breadcrumbs/Breadcrumbs.js.map +1 -1
  18. package/dist/components/button/Button.d.ts +8 -0
  19. package/dist/components/button/Button.js +6 -0
  20. package/dist/components/button/Button.js.map +1 -1
  21. package/dist/components/calendar/Calendar.d.ts +21 -7
  22. package/dist/components/calendar/Calendar.js +285 -212
  23. package/dist/components/calendar/Calendar.js.map +1 -1
  24. package/dist/components/calendar/DateConfig.d.ts +37 -0
  25. package/dist/components/calendar/DateConfig.js +75 -0
  26. package/dist/components/calendar/DateConfig.js.map +1 -0
  27. package/dist/components/calendar/date-utils.d.ts +41 -6
  28. package/dist/components/calendar/date-utils.js +119 -20
  29. package/dist/components/calendar/date-utils.js.map +1 -1
  30. package/dist/components/card/Card.d.ts +13 -0
  31. package/dist/components/card/Card.js +13 -0
  32. package/dist/components/card/Card.js.map +1 -1
  33. package/dist/components/choice/Choice.d.ts +13 -0
  34. package/dist/components/choice/Choice.js +10 -0
  35. package/dist/components/choice/Choice.js.map +1 -1
  36. package/dist/components/combobox/Combobox.d.ts +12 -0
  37. package/dist/components/combobox/Combobox.js.map +1 -1
  38. package/dist/components/command-palette/CommandPalette.d.ts +10 -0
  39. package/dist/components/command-palette/CommandPalette.js.map +1 -1
  40. package/dist/components/data-table/DataTable.d.ts +4 -0
  41. package/dist/components/data-table/DataTable.js.map +1 -1
  42. package/dist/components/data-table/DataTableContent.d.ts +1 -0
  43. package/dist/components/data-table/DataTableContent.js +3 -3
  44. package/dist/components/data-table/DataTableContent.js.map +1 -1
  45. package/dist/components/data-table/DataTableFilters.d.ts +3 -0
  46. package/dist/components/data-table/DataTableFilters.js.map +1 -1
  47. package/dist/components/data-table/types.d.ts +16 -0
  48. package/dist/components/date-picker/DatePicker.d.ts +33 -10
  49. package/dist/components/date-picker/DatePicker.js +315 -279
  50. package/dist/components/date-picker/DatePicker.js.map +1 -1
  51. package/dist/components/date-picker/DateRangePicker.d.ts +12 -4
  52. package/dist/components/date-picker/DateRangePicker.js +240 -206
  53. package/dist/components/date-picker/DateRangePicker.js.map +1 -1
  54. package/dist/components/date-picker/PickerField.d.ts +13 -0
  55. package/dist/components/date-picker/PickerField.js +1 -1
  56. package/dist/components/date-picker/PickerField.js.map +1 -1
  57. package/dist/components/dialog/Dialog.d.ts +5 -0
  58. package/dist/components/dialog/Dialog.js.map +1 -1
  59. package/dist/components/drawer/Drawer.d.ts +10 -0
  60. package/dist/components/drawer/Drawer.js.map +1 -1
  61. package/dist/components/empty-state/EmptyState.d.ts +5 -0
  62. package/dist/components/empty-state/EmptyState.js.map +1 -1
  63. package/dist/components/file-upload/FileUpload.d.ts +21 -0
  64. package/dist/components/file-upload/FileUpload.js.map +1 -1
  65. package/dist/components/input/Input.d.ts +7 -0
  66. package/dist/components/input/Input.js +3 -0
  67. package/dist/components/input/Input.js.map +1 -1
  68. package/dist/components/link/Link.d.ts +1 -0
  69. package/dist/components/link/Link.js.map +1 -1
  70. package/dist/components/menu/Menu.d.ts +6 -0
  71. package/dist/components/menu/Menu.js.map +1 -1
  72. package/dist/components/number-field/NumberField.d.ts +7 -0
  73. package/dist/components/number-field/NumberField.js.map +1 -1
  74. package/dist/components/pagination/Pagination.d.ts +4 -0
  75. package/dist/components/pagination/Pagination.js.map +1 -1
  76. package/dist/components/popover/Popover.d.ts +4 -0
  77. package/dist/components/popover/Popover.js.map +1 -1
  78. package/dist/components/preview-card/PreviewCard.d.ts +4 -0
  79. package/dist/components/preview-card/PreviewCard.js.map +1 -1
  80. package/dist/components/progress/Progress.d.ts +8 -0
  81. package/dist/components/progress/Progress.js.map +1 -1
  82. package/dist/components/scroll-area/ScrollArea.d.ts +1 -0
  83. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  84. package/dist/components/search-input/SearchInput.d.ts +2 -0
  85. package/dist/components/search-input/SearchInput.js.map +1 -1
  86. package/dist/components/select/Select.d.ts +11 -0
  87. package/dist/components/select/Select.js.map +1 -1
  88. package/dist/components/separator/Separator.d.ts +1 -0
  89. package/dist/components/separator/Separator.js +1 -0
  90. package/dist/components/separator/Separator.js.map +1 -1
  91. package/dist/components/skeleton/Skeleton.d.ts +7 -0
  92. package/dist/components/skeleton/Skeleton.js +1 -0
  93. package/dist/components/skeleton/Skeleton.js.map +1 -1
  94. package/dist/components/slider/Slider.d.ts +1 -0
  95. package/dist/components/slider/Slider.js.map +1 -1
  96. package/dist/components/spinner/Spinner.d.ts +2 -0
  97. package/dist/components/spinner/Spinner.js +1 -0
  98. package/dist/components/spinner/Spinner.js.map +1 -1
  99. package/dist/components/stat-card/StatCard.d.ts +4 -0
  100. package/dist/components/stat-card/StatCard.js.map +1 -1
  101. package/dist/components/stepper/Stepper.d.ts +4 -0
  102. package/dist/components/stepper/Stepper.js.map +1 -1
  103. package/dist/components/table/Table.d.ts +24 -1
  104. package/dist/components/table/Table.js +19 -2
  105. package/dist/components/table/Table.js.map +1 -1
  106. package/dist/components/tabs/Tabs.d.ts +1 -0
  107. package/dist/components/tabs/Tabs.js.map +1 -1
  108. package/dist/components/tag/Tag.d.ts +3 -0
  109. package/dist/components/tag/Tag.js.map +1 -1
  110. package/dist/components/toast/Toast.d.ts +2 -0
  111. package/dist/components/toast/Toast.js.map +1 -1
  112. package/dist/components/toggle/Toggle.d.ts +7 -0
  113. package/dist/components/toggle/Toggle.js +1 -0
  114. package/dist/components/toggle/Toggle.js.map +1 -1
  115. package/dist/components/tooltip/Tooltip.d.ts +8 -0
  116. package/dist/components/tooltip/Tooltip.js.map +1 -1
  117. package/dist/components/typography/Typography.d.ts +5 -0
  118. package/dist/components/typography/Typography.js +2 -0
  119. package/dist/components/typography/Typography.js.map +1 -1
  120. package/dist/components.json +5534 -0
  121. package/dist/index.d.ts +1 -0
  122. package/dist/index.js +4 -3
  123. package/dist/llms-full.txt +2707 -0
  124. package/dist/llms.txt +177 -0
  125. package/dist/opti-ui.css +171 -81
  126. package/dist/theme/ThemeProvider.d.ts +1 -0
  127. package/dist/theme/ThemeProvider.js.map +1 -1
  128. package/dist/utils/portal.d.ts +4 -0
  129. package/dist/utils/portal.js +4 -0
  130. package/dist/utils/portal.js.map +1 -1
  131. package/package.json +7 -3
@@ -8,6 +8,7 @@ export { useDataTableContext } from './context';
8
8
  export type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';
9
9
  export type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';
10
10
  export interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {
11
+ /** Ref to the table's root element. */
11
12
  ref?: React.Ref<HTMLDivElement>;
12
13
  /** The table from `useDataTable`. */
13
14
  table: DataTableInstance<T>;
@@ -15,6 +16,7 @@ export interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivEleme
15
16
  /** Provides a table to the parts inside it. */
16
17
  declare function DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>): React.JSX.Element;
17
18
  export interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {
19
+ /** Class name for the search box. */
18
20
  className?: string;
19
21
  }
20
22
  /** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */
@@ -34,11 +36,13 @@ export interface DataTableToolbarContext<T> {
34
36
  table: DataTableInstance<T>;
35
37
  }
36
38
  export interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {
39
+ /** Choices in the rows-per-page select. */
37
40
  pageSizeOptions?: number[];
38
41
  /** Size of the search box and the filters. */
39
42
  controlSize?: DataTableControlSize;
40
43
  /** Extra toolbar content (export, add…). A function receives the processed rows. */
41
44
  toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);
45
+ /** Class name for the table's root element. */
42
46
  className?: string;
43
47
  }
44
48
  declare function DataTableComponent<T>({ density, striped, stickyHeader, layout, maxHeight, virtualized, onEndReached, empty, tableProps, pageSizeOptions, controlSize, toolbar, className, ...options }: DataTableProps<T>): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.js","names":["React","cx","createPrimitive","Pagination","PaginationProps","SearchInput","SearchInputProps","Spinner","DataTableContext","useDataTableContext","DataTableContent","DataTableContentProps","DataTableFilter","DataTableFilters","DataTableControlSize","useDataTable","DataTableInstance","UseDataTableOptions","DataTableVirtualOptions","DataTableFilterProps","DataTableFiltersProps","DataTableRootProps","HTMLAttributes","HTMLDivElement","ref","Ref","table","T","DataTableRoot","t0","$","_c","className","props","t1","t2","loading","rows","length","undefined","t3","t4","DataTableToolbar","DataTableActions","DataTableSearchProps","Omit","DataTableSearch","search","searchDebounce","labels","text","draft","setDraft","useState","seen","setSeen","sent","setSent","next","setSearch","commit","timer","window","setTimeout","clearTimeout","useEffect","next_0","change","t5","t6","clearSearch","DataTableSummary","selection","Set","selected","size","count","pending","selectable","totalCount","filteredCount","DataTablePaginationProps","DataTablePagination","paginated","error","page","pageSize","setPage","setPageSize","DataTableToolbarContext","DataTableProps","pageSizeOptions","controlSize","toolbar","ReactNode","context","DataTableComponent","density","empty","layout","maxHeight","onEndReached","options","stickyHeader","striped","tableProps","virtualized","map","_temp","extra","searchable","Symbol","for","t7","t8","t9","t10","t11","row","DataTable","Object","assign","Root","Toolbar","Search","Filters","Filter","Actions","Summary","Content","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { Pagination, type PaginationProps } from '../pagination/Pagination';\nimport { SearchInput, type SearchInputProps } from '../search-input/SearchInput';\nimport { Spinner } from '../spinner/Spinner';\nimport { DataTableContext, useDataTableContext } from './context';\nimport { DataTableContent, type DataTableContentProps } from './DataTableContent';\nimport { DataTableFilter, DataTableFilters, type DataTableControlSize } from './DataTableFilters';\nimport { useDataTable } from './useDataTable';\nimport type { DataTableInstance, UseDataTableOptions } from './types';\n\nexport { useDataTableContext } from './context';\nexport type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';\nexport type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement>;\n /** The table from `useDataTable`. */\n table: DataTableInstance<T>;\n}\n\n/** Provides a table to the parts inside it. */\nfunction DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>) {\n return (\n <DataTableContext.Provider value={table}>\n <div\n ref={ref}\n className={cx('oui-data-table', className)}\n data-loading={table.loading ? (table.rows.length ? 'refresh' : 'initial') : undefined}\n {...props}\n />\n </DataTableContext.Provider>\n );\n}\n\nconst DataTableToolbar = createPrimitive('div', 'oui-data-table__toolbar', 'DataTableToolbar');\nconst DataTableActions = createPrimitive('div', 'oui-data-table__actions', 'DataTableActions');\n\nexport interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {\n className?: string;\n}\n\n/** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */\nfunction DataTableSearch({ className, ...props }: DataTableSearchProps) {\n const table = useDataTableContext();\n const { search, searchDebounce, labels: text } = table;\n const [draft, setDraft] = React.useState(search);\n const [seen, setSeen] = React.useState(search);\n const [sent, setSent] = React.useState(search);\n\n // Follow a search set from outside (reset, controlled state), but not the echo\n // of our own change: it can arrive after the user has typed further.\n if (seen !== search) {\n setSeen(search);\n if (search !== sent) {\n setSent(search);\n setDraft(search);\n }\n }\n\n const commit = (next: string) => {\n setSent(next);\n table.setSearch(next);\n };\n\n // Typed text that has not been applied yet goes out once the typing pauses.\n React.useEffect(() => {\n if (draft === sent) return;\n const timer = window.setTimeout(() => commit(draft), searchDebounce);\n return () => window.clearTimeout(timer);\n // `commit` is new on every render; only a change of the text restarts the wait.\n }, [draft, sent, searchDebounce]);\n\n const change = (next: string) => {\n setDraft(next);\n if (!searchDebounce || !next) commit(next);\n };\n\n return (\n <SearchInput\n className={cx('oui-data-table__search', className)}\n aria-label={text.search}\n placeholder={text.search}\n clearLabel={text.clearSearch}\n {...props}\n value={draft}\n onValueChange={change}\n />\n );\n}\n\n/** Row count, or the number of selected rows, with a spinner while loading. */\nfunction DataTableSummary({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n const table = useDataTableContext();\n const text = table.labels;\n const selected = new Set(table.selection).size;\n return (\n <>\n {table.loading && <Spinner className=\"oui-data-table__spinner\" label={text.loading} />}\n <span className={cx('oui-data-table__summary', className)} aria-live=\"polite\" {...props}>\n {/* No count before the first rows arrive: \"0 records\" would be wrong. */}\n {table.selectable && selected\n ? text.selected(selected)\n : table.pending\n ? null\n : table.count !== table.totalCount\n ? text.filteredCount(table.count, table.totalCount)\n : text.count(table.count)}\n </span>\n </>\n );\n}\n\nexport interface DataTablePaginationProps\n extends Omit<PaginationProps, 'page' | 'pageSize' | 'total' | 'onPageChange' | 'onPageSizeChange'> {}\n\n/** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */\nfunction DataTablePagination({ className, ...props }: DataTablePaginationProps) {\n const table = useDataTableContext();\n if (!table.paginated || table.count <= 0 || table.error) return null;\n return (\n <Pagination\n className={cx('oui-data-table__pagination', className)}\n variant=\"simple\"\n labels={table.labels}\n {...props}\n page={table.page}\n pageSize={table.pageSize}\n total={table.count}\n onPageChange={table.setPage}\n onPageSizeChange={table.setPageSize}\n />\n );\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface DataTableToolbarContext<T> {\n /** Rows after filters, search and sorting, across all pages. In server mode: the current page. */\n rows: T[];\n /** Ids of the selected rows. */\n selection: string[];\n /** The whole table: filter values, sort, setters. */\n table: DataTableInstance<T>;\n}\n\nexport interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {\n pageSizeOptions?: number[];\n /** Size of the search box and the filters. */\n controlSize?: DataTableControlSize;\n /** Extra toolbar content (export, add…). A function receives the processed rows. */\n toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);\n className?: string;\n}\n\nfunction DataTableComponent<T>({\n density,\n striped,\n stickyHeader,\n layout,\n maxHeight,\n virtualized,\n onEndReached,\n empty,\n tableProps,\n pageSizeOptions,\n controlSize,\n toolbar,\n className,\n ...options\n}: DataTableProps<T>) {\n // A virtualized table shows all its rows in one scrolling list, unless pages are asked for.\n const table = useDataTable({ ...options, paginated: options.paginated ?? !virtualized });\n const extra =\n typeof toolbar === 'function'\n ? toolbar({ rows: table.rows.map(({ row }) => row), selection: table.selection, table })\n : toolbar;\n\n return (\n <DataTableRoot table={table} className={className}>\n <DataTableToolbar>\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilters size={controlSize} />\n <DataTableActions>\n <DataTableSummary />\n {extra}\n </DataTableActions>\n </DataTableToolbar>\n <DataTableContent\n density={density}\n striped={striped}\n stickyHeader={stickyHeader}\n layout={layout}\n maxHeight={maxHeight}\n virtualized={virtualized}\n onEndReached={onEndReached}\n empty={empty}\n tableProps={tableProps}\n />\n <DataTablePagination pageSizeOptions={pageSizeOptions} />\n </DataTableRoot>\n );\n}\n\n/**\n * `<DataTable data={…} columns={…} />` renders a complete table with search,\n * filters, sorting, pagination, row selection, row actions and inline editing;\n * columns declare what they take part in. Every piece of state works\n * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /\n * `selection`), and with `mode=\"server\"` the same state drives an API.\n *\n * For another layout, create the table with `useDataTable` and compose the\n * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,\n * `DataTable.Filters`, `DataTable.Filter`, `DataTable.Actions`,\n * `DataTable.Summary`, `DataTable.Content`, `DataTable.Pagination`.\n */\nexport const DataTable = Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n Filters: DataTableFilters,\n Filter: DataTableFilter,\n Actions: DataTableActions,\n Summary: DataTableSummary,\n Content: DataTableContent,\n Pagination: DataTablePagination,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.js","names":["React","cx","createPrimitive","Pagination","PaginationProps","SearchInput","SearchInputProps","Spinner","DataTableContext","useDataTableContext","DataTableContent","DataTableContentProps","DataTableFilter","DataTableFilters","DataTableControlSize","useDataTable","DataTableInstance","UseDataTableOptions","DataTableVirtualOptions","DataTableFilterProps","DataTableFiltersProps","DataTableRootProps","HTMLAttributes","HTMLDivElement","ref","Ref","table","T","DataTableRoot","t0","$","_c","className","props","t1","t2","loading","rows","length","undefined","t3","t4","DataTableToolbar","DataTableActions","DataTableSearchProps","Omit","DataTableSearch","search","searchDebounce","labels","text","draft","setDraft","useState","seen","setSeen","sent","setSent","next","setSearch","commit","timer","window","setTimeout","clearTimeout","useEffect","next_0","change","t5","t6","clearSearch","DataTableSummary","selection","Set","selected","size","count","pending","selectable","totalCount","filteredCount","DataTablePaginationProps","DataTablePagination","paginated","error","page","pageSize","setPage","setPageSize","DataTableToolbarContext","DataTableProps","pageSizeOptions","controlSize","toolbar","ReactNode","context","DataTableComponent","density","empty","layout","maxHeight","onEndReached","options","stickyHeader","striped","tableProps","virtualized","map","_temp","extra","searchable","Symbol","for","t7","t8","t9","t10","t11","row","DataTable","Object","assign","Root","Toolbar","Search","Filters","Filter","Actions","Summary","Content","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { createPrimitive } from '../../utils/primitive';\nimport { Pagination, type PaginationProps } from '../pagination/Pagination';\nimport { SearchInput, type SearchInputProps } from '../search-input/SearchInput';\nimport { Spinner } from '../spinner/Spinner';\nimport { DataTableContext, useDataTableContext } from './context';\nimport { DataTableContent, type DataTableContentProps } from './DataTableContent';\nimport { DataTableFilter, DataTableFilters, type DataTableControlSize } from './DataTableFilters';\nimport { useDataTable } from './useDataTable';\nimport type { DataTableInstance, UseDataTableOptions } from './types';\n\nexport { useDataTableContext } from './context';\nexport type { DataTableContentProps, DataTableVirtualOptions } from './DataTableContent';\nexport type { DataTableControlSize, DataTableFilterProps, DataTableFiltersProps } from './DataTableFilters';\n\n// ─── Parts ───────────────────────────────────────────────────────────────────\n\nexport interface DataTableRootProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n /** Ref to the table's root element. */\n ref?: React.Ref<HTMLDivElement>;\n /** The table from `useDataTable`. */\n table: DataTableInstance<T>;\n}\n\n/** Provides a table to the parts inside it. */\nfunction DataTableRoot<T>({ table, className, ref, ...props }: DataTableRootProps<T>) {\n return (\n <DataTableContext.Provider value={table}>\n <div\n ref={ref}\n className={cx('oui-data-table', className)}\n data-loading={table.loading ? (table.rows.length ? 'refresh' : 'initial') : undefined}\n {...props}\n />\n </DataTableContext.Provider>\n );\n}\n\nconst DataTableToolbar = createPrimitive('div', 'oui-data-table__toolbar', 'DataTableToolbar');\nconst DataTableActions = createPrimitive('div', 'oui-data-table__actions', 'DataTableActions');\n\nexport interface DataTableSearchProps extends Omit<SearchInputProps, 'value' | 'defaultValue' | 'onValueChange' | 'className'> {\n /** Class name for the search box. */\n className?: string;\n}\n\n/** Search box of the table. Typing applies after the table's `searchDebounce`; clearing applies at once. */\nfunction DataTableSearch({ className, ...props }: DataTableSearchProps) {\n const table = useDataTableContext();\n const { search, searchDebounce, labels: text } = table;\n const [draft, setDraft] = React.useState(search);\n const [seen, setSeen] = React.useState(search);\n const [sent, setSent] = React.useState(search);\n\n // Follow a search set from outside (reset, controlled state), but not the echo\n // of our own change: it can arrive after the user has typed further.\n if (seen !== search) {\n setSeen(search);\n if (search !== sent) {\n setSent(search);\n setDraft(search);\n }\n }\n\n const commit = (next: string) => {\n setSent(next);\n table.setSearch(next);\n };\n\n // Typed text that has not been applied yet goes out once the typing pauses.\n React.useEffect(() => {\n if (draft === sent) return;\n const timer = window.setTimeout(() => commit(draft), searchDebounce);\n return () => window.clearTimeout(timer);\n // `commit` is new on every render; only a change of the text restarts the wait.\n }, [draft, sent, searchDebounce]);\n\n const change = (next: string) => {\n setDraft(next);\n if (!searchDebounce || !next) commit(next);\n };\n\n return (\n <SearchInput\n className={cx('oui-data-table__search', className)}\n aria-label={text.search}\n placeholder={text.search}\n clearLabel={text.clearSearch}\n {...props}\n value={draft}\n onValueChange={change}\n />\n );\n}\n\n/** Row count, or the number of selected rows, with a spinner while loading. */\nfunction DataTableSummary({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) {\n const table = useDataTableContext();\n const text = table.labels;\n const selected = new Set(table.selection).size;\n return (\n <>\n {table.loading && <Spinner className=\"oui-data-table__spinner\" label={text.loading} />}\n <span className={cx('oui-data-table__summary', className)} aria-live=\"polite\" {...props}>\n {/* No count before the first rows arrive: \"0 records\" would be wrong. */}\n {table.selectable && selected\n ? text.selected(selected)\n : table.pending\n ? null\n : table.count !== table.totalCount\n ? text.filteredCount(table.count, table.totalCount)\n : text.count(table.count)}\n </span>\n </>\n );\n}\n\nexport interface DataTablePaginationProps\n extends Omit<PaginationProps, 'page' | 'pageSize' | 'total' | 'onPageChange' | 'onPageSizeChange'> {}\n\n/** Page navigation of the table. Renders nothing when there are no rows, or the table is not paginated. */\nfunction DataTablePagination({ className, ...props }: DataTablePaginationProps) {\n const table = useDataTableContext();\n if (!table.paginated || table.count <= 0 || table.error) return null;\n return (\n <Pagination\n className={cx('oui-data-table__pagination', className)}\n variant=\"simple\"\n labels={table.labels}\n {...props}\n page={table.page}\n pageSize={table.pageSize}\n total={table.count}\n onPageChange={table.setPage}\n onPageSizeChange={table.setPageSize}\n />\n );\n}\n\n// ─── Convenience component ───────────────────────────────────────────────────\n\nexport interface DataTableToolbarContext<T> {\n /** Rows after filters, search and sorting, across all pages. In server mode: the current page. */\n rows: T[];\n /** Ids of the selected rows. */\n selection: string[];\n /** The whole table: filter values, sort, setters. */\n table: DataTableInstance<T>;\n}\n\nexport interface DataTableProps<T> extends UseDataTableOptions<T>, DataTableContentProps {\n /** Choices in the rows-per-page select. */\n pageSizeOptions?: number[];\n /** Size of the search box and the filters. */\n controlSize?: DataTableControlSize;\n /** Extra toolbar content (export, add…). A function receives the processed rows. */\n toolbar?: React.ReactNode | ((context: DataTableToolbarContext<T>) => React.ReactNode);\n /** Class name for the table's root element. */\n className?: string;\n}\n\nfunction DataTableComponent<T>({\n density,\n striped,\n stickyHeader,\n layout,\n maxHeight,\n virtualized,\n onEndReached,\n empty,\n tableProps,\n pageSizeOptions,\n controlSize,\n toolbar,\n className,\n ...options\n}: DataTableProps<T>) {\n // A virtualized table shows all its rows in one scrolling list, unless pages are asked for.\n const table = useDataTable({ ...options, paginated: options.paginated ?? !virtualized });\n const extra =\n typeof toolbar === 'function'\n ? toolbar({ rows: table.rows.map(({ row }) => row), selection: table.selection, table })\n : toolbar;\n\n return (\n <DataTableRoot table={table} className={className}>\n <DataTableToolbar>\n {table.searchable && <DataTableSearch size={controlSize} />}\n <DataTableFilters size={controlSize} />\n <DataTableActions>\n <DataTableSummary />\n {extra}\n </DataTableActions>\n </DataTableToolbar>\n <DataTableContent\n density={density}\n striped={striped}\n stickyHeader={stickyHeader}\n layout={layout}\n maxHeight={maxHeight}\n virtualized={virtualized}\n onEndReached={onEndReached}\n empty={empty}\n tableProps={tableProps}\n />\n <DataTablePagination pageSizeOptions={pageSizeOptions} />\n </DataTableRoot>\n );\n}\n\n/**\n * `<DataTable data={…} columns={…} />` renders a complete table with search,\n * filters, sorting, pagination, row selection, row actions and inline editing;\n * columns declare what they take part in. Every piece of state works\n * uncontrolled or controlled (`search` / `filterValues` / `sort` / `page` /\n * `selection`), and with `mode=\"server\"` the same state drives an API.\n *\n * For another layout, create the table with `useDataTable` and compose the\n * parts: `DataTable.Root`, `DataTable.Toolbar`, `DataTable.Search`,\n * `DataTable.Filters`, `DataTable.Filter`, `DataTable.Actions`,\n * `DataTable.Summary`, `DataTable.Content`, `DataTable.Pagination`.\n */\nexport const DataTable = Object.assign(DataTableComponent, {\n Root: DataTableRoot,\n Toolbar: DataTableToolbar,\n Search: DataTableSearch,\n Filters: DataTableFilters,\n Filter: DataTableFilter,\n Actions: DataTableActions,\n Summary: DataTableSummary,\n Content: DataTableContent,\n Pagination: DataTablePagination,\n});\n"],"mappings":"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"}
@@ -29,6 +29,7 @@ export interface DataTableContentProps extends Pick<TableProps, 'density' | 'str
29
29
  onEndReached?: () => void;
30
30
  /** Replaces the default empty state. */
31
31
  empty?: React.ReactNode;
32
+ /** Props for the underlying `Table` (className, wrapperProps, aria-*). */
32
33
  tableProps?: Omit<TableProps, 'children'>;
33
34
  }
34
35
  /** The table itself, with its loading, empty and error states. */
@@ -13,9 +13,9 @@ import * as React from "react";
13
13
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
14
  //#region src/components/data-table/DataTableContent.tsx
15
15
  var ROW_ESTIMATE = {
16
- compact: 35,
17
- normal: 46,
18
- comfortable: 55
16
+ compact: 31,
17
+ normal: 35,
18
+ comfortable: 46
19
19
  };
20
20
  /** The table itself, with its loading, empty and error states. */
21
21
  function DataTableContent(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableContent.js","names":["React","cx","Button","Checkbox","EmptyState","Skeleton","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TableProps","useDataTableContext","DataTableRow","SizerRow","isTextEditor","pickSizerRows","useColumnLock","usePageHeight","useVirtualRows","ROW_ESTIMATE","compact","normal","comfortable","DataTableVirtualOptions","rowHeight","overscan","DataTableContentProps","Pick","layout","maxHeight","virtualized","onEndReached","empty","ReactNode","tableProps","Omit","DataTableContent","t0","$","_c","density","t1","striped","stickyHeader","t2","t3","undefined","table","labels","text","visibleColumns","columns","loading","error","anchor","setAnchor","useState","reported","useRef","virtual","t4","t5","height","scrolls","stable","hasActions","Boolean","rowActions","editable","deletable","placeholders","pending","Math","min","paginated","pageSize","noMatch","mode","filtered","totalCount","t6","find","id","focused","t7","pageRows","shown","span","length","Number","selectable","t8","map","_temp","columnKey","join","lock","measuring","t9","t10","t11","enabled","count","estimate","viewport","key","rows","t12","end","start","slice","rendered","sizers","allRows","holdsPage","pageHeight","shortPage","page","t13","wrapper","current","scrollHeight","scrollTop","clientHeight","reportEnd","t14","t15","search","t16","sort","t17","direction","t18","filterValues","JSON","stringify","t19","view","t20","closest","parentElement","scrollTo","top","t21","useEffect","t22","wrapper_0","T0","t23","t24","t25","t26","t27","t28","t29","style","width","minWidth","t30","wrapperProps","t31","t32","className","t33","t34","t35","t36","minHeight","t37","event","onScroll","currentTarget","t38","t39","widths","_temp2","t40","t41","t42","selectAll","allSelected","someSelected","checked","toggleAll","t43","t44","column","align","numeric","isSortable","toggleSort","header","actions","t45","t46","before","t47","t48","_","index_0","index","column_0","position","Array","from","t49","entry","index_1","t50","after","t51","entry_0","t52","t53","activeFilterCount","onRetry","reset","errorTitle","retry","noMatchTitle","emptyTitle","emptyDescription","noFilterMatchDescription","noMatchDescription","clearFilters","clearSearch","t54","c","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Button } from '../button/Button';\nimport { Checkbox } from '../choice/Choice';\nimport { EmptyState } from '../empty-state/EmptyState';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableProps } from '../table/Table';\nimport { useDataTableContext } from './context';\nimport { DataTableRow, SizerRow, isTextEditor } from './DataTableRow';\nimport { pickSizerRows, useColumnLock, usePageHeight, useVirtualRows } from './layout';\n\n// Row heights of the three densities, assumed until the first row is measured.\nconst ROW_ESTIMATE = { compact: 35, normal: 46, comfortable: 55 };\n\nexport interface DataTableVirtualOptions {\n /** Height of every row in pixels. Left out, the rows are measured. */\n rowHeight?: number;\n /** Rows rendered beyond each edge of the view (default 8). */\n overscan?: number;\n}\n\nexport interface DataTableContentProps extends Pick<TableProps, 'density' | 'striped' | 'stickyHeader'> {\n /**\n * `stable` (default) measures the columns once and holds their widths, keeps a\n * short last page as tall as a full one, and keeps a row's height while it is\n * edited: nothing moves while the table is used. `auto` leaves the layout to\n * the browser, which fits the columns to the rows on screen.\n */\n layout?: 'stable' | 'auto';\n /** Scrolls the rows inside this height and keeps the header in view. */\n maxHeight?: number | string;\n /**\n * Renders only the rows in view, for thousands of rows without pagination.\n * Rows are one line high: columns fit their longest value, so mark those with\n * long text `truncate`. Scrolls inside `maxHeight` (default `32rem`).\n */\n virtualized?: boolean | DataTableVirtualOptions;\n /**\n * Called when the rows are scrolled near their end, once per row count: load\n * and append the next rows. Needs `maxHeight` or `virtualized`.\n */\n onEndReached?: () => void;\n /** Replaces the default empty state. */\n empty?: React.ReactNode;\n tableProps?: Omit<TableProps, 'children'>;\n}\n\n/** The table itself, with its loading, empty and error states. */\nexport function DataTableContent({\n density = 'normal',\n striped,\n stickyHeader,\n layout = 'stable',\n maxHeight,\n virtualized = false,\n onEndReached,\n empty,\n tableProps,\n}: DataTableContentProps) {\n const table = useDataTableContext();\n const { labels: text, visibleColumns: columns, loading, error } = table;\n // Found by the layout hooks through `closest('table')`.\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\n const reported = React.useRef(-1);\n\n const virtual = virtualized !== false;\n const { rowHeight, overscan = 8 } = typeof virtualized === 'object' ? virtualized : {};\n const height = maxHeight ?? (virtual ? '32rem' : undefined);\n const scrolls = height !== undefined;\n const stable = layout === 'stable' || virtual;\n\n const hasActions = Boolean(table.rowActions) || table.editable || table.deletable;\n const placeholders = table.pending ? Math.min(table.paginated ? table.pageSize : 5, 10) : 0;\n const noMatch = table.mode === 'server' ? table.filtered : table.totalCount > 0;\n const focused = columns.find(isTextEditor)?.id;\n const shown = error ? [] : table.pageRows;\n const span = columns.length + Number(table.selectable) + Number(hasActions);\n\n const columnKey = [density, table.selectable, hasActions, ...columns.map((c) => `${c.id}:${c.width ?? ''}:${c.minWidth ?? ''}`)].join('|');\n const { lock, measuring } = useColumnLock(anchor, stable, columnKey, shown.length > 0);\n const rows = useVirtualRows(anchor, {\n enabled: virtual,\n count: shown.length,\n rowHeight,\n overscan,\n estimate: ROW_ESTIMATE[density],\n viewport: typeof maxHeight === 'number' ? maxHeight : 512,\n key: density,\n });\n const rendered = virtual ? shown.slice(rows.start, rows.end) : shown;\n const sizers = measuring && table.allRows.length > rendered.length ? pickSizerRows(table.allRows, columns) : [];\n\n const holdsPage = stable && table.paginated && !scrolls;\n const pageHeight = usePageHeight(anchor, holdsPage, shown.length === table.pageSize, `${density}|${table.pageSize}`);\n const shortPage = table.page > 1 && shown.length > 0 && shown.length < table.pageSize;\n\n const reportEnd = (wrapper: HTMLElement) => {\n if (!onEndReached || !scrolls || loading || !shown.length || reported.current === shown.length) return;\n if (wrapper.scrollHeight - wrapper.scrollTop - wrapper.clientHeight > 4 * ROW_ESTIMATE[density]) return;\n reported.current = shown.length;\n onEndReached();\n };\n\n // New rows start at the top: the scroll position belonged to the previous ones.\n const view = [table.page, table.search, table.sort?.id, table.sort?.direction, JSON.stringify(table.filterValues)].join('|');\n React.useEffect(() => {\n if (scrolls) anchor?.closest('table')?.parentElement?.scrollTo({ top: 0 });\n }, [anchor, scrolls, view]);\n\n // Rows that do not fill the view cannot be scrolled to their end: ask for more right away.\n React.useEffect(() => {\n const wrapper = anchor?.closest('table')?.parentElement;\n if (wrapper) reportEnd(wrapper);\n });\n\n return (\n <>\n <Table\n density={density}\n striped={striped}\n stickyHeader={stickyHeader ?? scrolls}\n aria-busy={loading || undefined}\n aria-rowcount={virtual ? shown.length + 1 : undefined}\n {...tableProps}\n data-layout={stable ? 'stable' : undefined}\n data-locked={lock ? '' : undefined}\n data-virtualized={virtual ? '' : undefined}\n style={lock ? { width: lock.table, minWidth: '100%', ...tableProps?.style } : tableProps?.style}\n wrapperProps={{\n ...tableProps?.wrapperProps,\n className: cx(scrolls && 'oui-data-table__scroll', tableProps?.wrapperProps?.className),\n style: {\n maxHeight: height,\n minHeight: holdsPage && shortPage ? pageHeight : undefined,\n ...tableProps?.wrapperProps?.style,\n },\n onScroll: (event) => {\n tableProps?.wrapperProps?.onScroll?.(event);\n rows.onScroll(event);\n reportEnd(event.currentTarget);\n },\n }}\n >\n <colgroup ref={setAnchor}>{lock?.widths.map((width, index) => <col key={index} style={{ width }} />)}</colgroup>\n <TableHeader>\n <TableRow aria-rowindex={virtual ? 1 : undefined}>\n {table.selectable && (\n <TableHead className=\"oui-data-table__check\">\n <Checkbox\n size=\"sm\"\n aria-label={text.selectAll}\n checked={table.allSelected}\n indeterminate={table.someSelected}\n disabled={!table.rows.length}\n onCheckedChange={(checked) => table.toggleAll(checked)}\n />\n </TableHead>\n )}\n {columns.map((column) => (\n <TableHead\n key={column.id}\n align={column.align ?? (column.numeric ? 'end' : 'start')}\n style={\n !lock && (column.width !== undefined || column.minWidth !== undefined)\n ? { width: column.width, minWidth: column.minWidth }\n : undefined\n }\n sort={table.isSortable(column) ? (table.sort?.id === column.id ? table.sort.direction : false) : undefined}\n onSort={() => table.toggleSort(column.id)}\n >\n {column.header}\n </TableHead>\n ))}\n {hasActions && (\n <TableHead className=\"oui-data-table__row-actions\">\n <span className=\"oui-visually-hidden\">{text.actions}</span>\n </TableHead>\n )}\n </TableRow>\n </TableHeader>\n {rows.before > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.before }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n <TableBody>\n {Array.from({ length: placeholders }, (_, index) => (\n <TableRow key={index} aria-hidden>\n {table.selectable && <TableCell className=\"oui-data-table__check\" />}\n {columns.map((column, position) => (\n <TableCell key={column.id} align={column.align} numeric={column.numeric}>\n <Skeleton className=\"oui-data-table__skeleton\" width={`${45 + ((index * 3 + position * 5) % 7) * 8}%`} />\n </TableCell>\n ))}\n {hasActions && <TableCell className=\"oui-data-table__row-actions\" />}\n </TableRow>\n ))}\n {rendered.map((entry, index) => (\n <DataTableRow\n key={entry.id}\n table={table}\n entry={entry}\n columns={columns}\n hasActions={hasActions}\n focused={focused}\n index={virtual ? rows.start + index : undefined}\n height={rows.rowHeight}\n />\n ))}\n </TableBody>\n {rows.after > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.after }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n {sizers.length > 0 && (\n <tbody className=\"oui-data-table__sizer\" aria-hidden inert>\n {sizers.map((entry) => (\n <SizerRow key={entry.id} table={table} entry={entry} columns={columns} hasActions={hasActions} />\n ))}\n </tbody>\n )}\n </Table>\n\n {error ? (\n <EmptyState\n role=\"alert\"\n title={text.errorTitle}\n description={error}\n actions={\n table.onRetry ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.onRetry}>\n {text.retry}\n </Button>\n ) : undefined\n }\n />\n ) : (\n !table.rows.length &&\n !loading &&\n (empty ?? (\n <EmptyState\n title={noMatch ? text.noMatchTitle : text.emptyTitle}\n description={\n !noMatch ? text.emptyDescription : table.activeFilterCount ? text.noFilterMatchDescription : text.noMatchDescription\n }\n actions={\n table.filtered ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.reset}>\n {table.activeFilterCount ? text.clearFilters : text.clearSearch}\n </Button>\n ) : undefined\n }\n />\n ))\n )}\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DataTableContent.js","names":["React","cx","Button","Checkbox","EmptyState","Skeleton","Table","TableBody","TableCell","TableHead","TableHeader","TableRow","TableProps","useDataTableContext","DataTableRow","SizerRow","isTextEditor","pickSizerRows","useColumnLock","usePageHeight","useVirtualRows","ROW_ESTIMATE","compact","normal","comfortable","DataTableVirtualOptions","rowHeight","overscan","DataTableContentProps","Pick","layout","maxHeight","virtualized","onEndReached","empty","ReactNode","tableProps","Omit","DataTableContent","t0","$","_c","density","t1","striped","stickyHeader","t2","t3","undefined","table","labels","text","visibleColumns","columns","loading","error","anchor","setAnchor","useState","reported","useRef","virtual","t4","t5","height","scrolls","stable","hasActions","Boolean","rowActions","editable","deletable","placeholders","pending","Math","min","paginated","pageSize","noMatch","mode","filtered","totalCount","t6","find","id","focused","t7","pageRows","shown","span","length","Number","selectable","t8","map","_temp","columnKey","join","lock","measuring","t9","t10","t11","enabled","count","estimate","viewport","key","rows","t12","end","start","slice","rendered","sizers","allRows","holdsPage","pageHeight","shortPage","page","t13","wrapper","current","scrollHeight","scrollTop","clientHeight","reportEnd","t14","t15","search","t16","sort","t17","direction","t18","filterValues","JSON","stringify","t19","view","t20","closest","parentElement","scrollTo","top","t21","useEffect","t22","wrapper_0","T0","t23","t24","t25","t26","t27","t28","t29","style","width","minWidth","t30","wrapperProps","t31","t32","className","t33","t34","t35","t36","minHeight","t37","event","onScroll","currentTarget","t38","t39","widths","_temp2","t40","t41","t42","selectAll","allSelected","someSelected","checked","toggleAll","t43","t44","column","align","numeric","isSortable","toggleSort","header","actions","t45","t46","before","t47","t48","_","index_0","index","column_0","position","Array","from","t49","entry","index_1","t50","after","t51","entry_0","t52","t53","activeFilterCount","onRetry","reset","errorTitle","retry","noMatchTitle","emptyTitle","emptyDescription","noFilterMatchDescription","noMatchDescription","clearFilters","clearSearch","t54","c","_c","_Fragment"],"sources":["../../../src/components/data-table/DataTableContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { Button } from '../button/Button';\nimport { Checkbox } from '../choice/Choice';\nimport { EmptyState } from '../empty-state/EmptyState';\nimport { Skeleton } from '../skeleton/Skeleton';\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, type TableProps } from '../table/Table';\nimport { useDataTableContext } from './context';\nimport { DataTableRow, SizerRow, isTextEditor } from './DataTableRow';\nimport { pickSizerRows, useColumnLock, usePageHeight, useVirtualRows } from './layout';\n\n// Row heights of the three densities, assumed until the first row is measured.\nconst ROW_ESTIMATE = { compact: 31, normal: 35, comfortable: 46 };\n\nexport interface DataTableVirtualOptions {\n /** Height of every row in pixels. Left out, the rows are measured. */\n rowHeight?: number;\n /** Rows rendered beyond each edge of the view (default 8). */\n overscan?: number;\n}\n\nexport interface DataTableContentProps extends Pick<TableProps, 'density' | 'striped' | 'stickyHeader'> {\n /**\n * `stable` (default) measures the columns once and holds their widths, keeps a\n * short last page as tall as a full one, and keeps a row's height while it is\n * edited: nothing moves while the table is used. `auto` leaves the layout to\n * the browser, which fits the columns to the rows on screen.\n */\n layout?: 'stable' | 'auto';\n /** Scrolls the rows inside this height and keeps the header in view. */\n maxHeight?: number | string;\n /**\n * Renders only the rows in view, for thousands of rows without pagination.\n * Rows are one line high: columns fit their longest value, so mark those with\n * long text `truncate`. Scrolls inside `maxHeight` (default `32rem`).\n */\n virtualized?: boolean | DataTableVirtualOptions;\n /**\n * Called when the rows are scrolled near their end, once per row count: load\n * and append the next rows. Needs `maxHeight` or `virtualized`.\n */\n onEndReached?: () => void;\n /** Replaces the default empty state. */\n empty?: React.ReactNode;\n /** Props for the underlying `Table` (className, wrapperProps, aria-*). */\n tableProps?: Omit<TableProps, 'children'>;\n}\n\n/** The table itself, with its loading, empty and error states. */\nexport function DataTableContent({\n density = 'normal',\n striped,\n stickyHeader,\n layout = 'stable',\n maxHeight,\n virtualized = false,\n onEndReached,\n empty,\n tableProps,\n}: DataTableContentProps) {\n const table = useDataTableContext();\n const { labels: text, visibleColumns: columns, loading, error } = table;\n // Found by the layout hooks through `closest('table')`.\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\n const reported = React.useRef(-1);\n\n const virtual = virtualized !== false;\n const { rowHeight, overscan = 8 } = typeof virtualized === 'object' ? virtualized : {};\n const height = maxHeight ?? (virtual ? '32rem' : undefined);\n const scrolls = height !== undefined;\n const stable = layout === 'stable' || virtual;\n\n const hasActions = Boolean(table.rowActions) || table.editable || table.deletable;\n const placeholders = table.pending ? Math.min(table.paginated ? table.pageSize : 5, 10) : 0;\n const noMatch = table.mode === 'server' ? table.filtered : table.totalCount > 0;\n const focused = columns.find(isTextEditor)?.id;\n const shown = error ? [] : table.pageRows;\n const span = columns.length + Number(table.selectable) + Number(hasActions);\n\n const columnKey = [density, table.selectable, hasActions, ...columns.map((c) => `${c.id}:${c.width ?? ''}:${c.minWidth ?? ''}`)].join('|');\n const { lock, measuring } = useColumnLock(anchor, stable, columnKey, shown.length > 0);\n const rows = useVirtualRows(anchor, {\n enabled: virtual,\n count: shown.length,\n rowHeight,\n overscan,\n estimate: ROW_ESTIMATE[density],\n viewport: typeof maxHeight === 'number' ? maxHeight : 512,\n key: density,\n });\n const rendered = virtual ? shown.slice(rows.start, rows.end) : shown;\n const sizers = measuring && table.allRows.length > rendered.length ? pickSizerRows(table.allRows, columns) : [];\n\n const holdsPage = stable && table.paginated && !scrolls;\n const pageHeight = usePageHeight(anchor, holdsPage, shown.length === table.pageSize, `${density}|${table.pageSize}`);\n const shortPage = table.page > 1 && shown.length > 0 && shown.length < table.pageSize;\n\n const reportEnd = (wrapper: HTMLElement) => {\n if (!onEndReached || !scrolls || loading || !shown.length || reported.current === shown.length) return;\n if (wrapper.scrollHeight - wrapper.scrollTop - wrapper.clientHeight > 4 * ROW_ESTIMATE[density]) return;\n reported.current = shown.length;\n onEndReached();\n };\n\n // New rows start at the top: the scroll position belonged to the previous ones.\n const view = [table.page, table.search, table.sort?.id, table.sort?.direction, JSON.stringify(table.filterValues)].join('|');\n React.useEffect(() => {\n if (scrolls) anchor?.closest('table')?.parentElement?.scrollTo({ top: 0 });\n }, [anchor, scrolls, view]);\n\n // Rows that do not fill the view cannot be scrolled to their end: ask for more right away.\n React.useEffect(() => {\n const wrapper = anchor?.closest('table')?.parentElement;\n if (wrapper) reportEnd(wrapper);\n });\n\n return (\n <>\n <Table\n density={density}\n striped={striped}\n stickyHeader={stickyHeader ?? scrolls}\n aria-busy={loading || undefined}\n aria-rowcount={virtual ? shown.length + 1 : undefined}\n {...tableProps}\n data-layout={stable ? 'stable' : undefined}\n data-locked={lock ? '' : undefined}\n data-virtualized={virtual ? '' : undefined}\n style={lock ? { width: lock.table, minWidth: '100%', ...tableProps?.style } : tableProps?.style}\n wrapperProps={{\n ...tableProps?.wrapperProps,\n className: cx(scrolls && 'oui-data-table__scroll', tableProps?.wrapperProps?.className),\n style: {\n maxHeight: height,\n minHeight: holdsPage && shortPage ? pageHeight : undefined,\n ...tableProps?.wrapperProps?.style,\n },\n onScroll: (event) => {\n tableProps?.wrapperProps?.onScroll?.(event);\n rows.onScroll(event);\n reportEnd(event.currentTarget);\n },\n }}\n >\n <colgroup ref={setAnchor}>{lock?.widths.map((width, index) => <col key={index} style={{ width }} />)}</colgroup>\n <TableHeader>\n <TableRow aria-rowindex={virtual ? 1 : undefined}>\n {table.selectable && (\n <TableHead className=\"oui-data-table__check\">\n <Checkbox\n size=\"sm\"\n aria-label={text.selectAll}\n checked={table.allSelected}\n indeterminate={table.someSelected}\n disabled={!table.rows.length}\n onCheckedChange={(checked) => table.toggleAll(checked)}\n />\n </TableHead>\n )}\n {columns.map((column) => (\n <TableHead\n key={column.id}\n align={column.align ?? (column.numeric ? 'end' : 'start')}\n style={\n !lock && (column.width !== undefined || column.minWidth !== undefined)\n ? { width: column.width, minWidth: column.minWidth }\n : undefined\n }\n sort={table.isSortable(column) ? (table.sort?.id === column.id ? table.sort.direction : false) : undefined}\n onSort={() => table.toggleSort(column.id)}\n >\n {column.header}\n </TableHead>\n ))}\n {hasActions && (\n <TableHead className=\"oui-data-table__row-actions\">\n <span className=\"oui-visually-hidden\">{text.actions}</span>\n </TableHead>\n )}\n </TableRow>\n </TableHeader>\n {rows.before > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.before }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n <TableBody>\n {Array.from({ length: placeholders }, (_, index) => (\n <TableRow key={index} aria-hidden>\n {table.selectable && <TableCell className=\"oui-data-table__check\" />}\n {columns.map((column, position) => (\n <TableCell key={column.id} align={column.align} numeric={column.numeric}>\n <Skeleton className=\"oui-data-table__skeleton\" width={`${45 + ((index * 3 + position * 5) % 7) * 8}%`} />\n </TableCell>\n ))}\n {hasActions && <TableCell className=\"oui-data-table__row-actions\" />}\n </TableRow>\n ))}\n {rendered.map((entry, index) => (\n <DataTableRow\n key={entry.id}\n table={table}\n entry={entry}\n columns={columns}\n hasActions={hasActions}\n focused={focused}\n index={virtual ? rows.start + index : undefined}\n height={rows.rowHeight}\n />\n ))}\n </TableBody>\n {rows.after > 0 && (\n <tbody className=\"oui-data-table__spacer\" aria-hidden>\n <tr style={{ height: rows.after }}>\n <td colSpan={span} />\n </tr>\n </tbody>\n )}\n {sizers.length > 0 && (\n <tbody className=\"oui-data-table__sizer\" aria-hidden inert>\n {sizers.map((entry) => (\n <SizerRow key={entry.id} table={table} entry={entry} columns={columns} hasActions={hasActions} />\n ))}\n </tbody>\n )}\n </Table>\n\n {error ? (\n <EmptyState\n role=\"alert\"\n title={text.errorTitle}\n description={error}\n actions={\n table.onRetry ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.onRetry}>\n {text.retry}\n </Button>\n ) : undefined\n }\n />\n ) : (\n !table.rows.length &&\n !loading &&\n (empty ?? (\n <EmptyState\n title={noMatch ? text.noMatchTitle : text.emptyTitle}\n description={\n !noMatch ? text.emptyDescription : table.activeFilterCount ? text.noFilterMatchDescription : text.noMatchDescription\n }\n actions={\n table.filtered ? (\n <Button size=\"sm\" variant=\"secondary\" onClick={table.reset}>\n {table.activeFilterCount ? text.clearFilters : text.clearSearch}\n </Button>\n ) : undefined\n }\n />\n ))\n )}\n </>\n );\n}\n"],"mappings":"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"}
@@ -3,12 +3,15 @@ export type DataTableControlSize = 'sm' | 'md';
3
3
  export interface DataTableFilterProps {
4
4
  /** Id of the filter: the column id, or the `id` given in `filters`. */
5
5
  id: string;
6
+ /** Control height. */
6
7
  size?: DataTableControlSize;
8
+ /** Class name for the filter control. */
7
9
  className?: string;
8
10
  }
9
11
  /** The control of one filter: a dropdown, a toggle chip or a date range picker. */
10
12
  export declare function DataTableFilter({ id, size, className }: DataTableFilterProps): React.JSX.Element | null;
11
13
  export interface DataTableFiltersProps extends React.HTMLAttributes<HTMLDivElement> {
14
+ /** Control height of every filter. */
12
15
  size?: DataTableControlSize;
13
16
  }
14
17
  /** Every filter of the table, with a clear button while any is active. Children are added after the filters. */
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableFilters.js","names":["React","cx","ChevronDownIcon","XIcon","Button","formatDate","DateRange","DateRangePicker","Select","Toggle","useDataTableContext","DataTableControlSize","DataTableFilterProps","id","size","className","DataTableFilter","t0","$","_c","t1","undefined","table","t2","filters","T0","T1","t3","t4","t5","t6","t7","t8","t9","Symbol","for","bb0","t10","candidate","filter","find","value","filterValues","t11","classes","type","t12","pressed","setFilterValue","label","range","next","presets","min","max","locale","start","end","Root","labels","filterAll","options","next_0","t13","Content","map","_temp","option","DataTableFiltersProps","HTMLAttributes","HTMLDivElement","DataTableFilters","children","props","length","activeFilterCount","clearFilters","_c"],"sources":["../../../src/components/data-table/DataTableFilters.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { ChevronDownIcon, XIcon } from '../../icons';\nimport { Button } from '../button/Button';\nimport { formatDate, type DateRange } from '../calendar/date-utils';\nimport { DateRangePicker } from '../date-picker/DateRangePicker';\nimport { Select } from '../select/Select';\nimport { Toggle } from '../toggle/Toggle';\nimport { useDataTableContext } from './context';\n\nexport type DataTableControlSize = 'sm' | 'md';\n\nexport interface DataTableFilterProps {\n /** Id of the filter: the column id, or the `id` given in `filters`. */\n id: string;\n size?: DataTableControlSize;\n className?: string;\n}\n\n/** The control of one filter: a dropdown, a toggle chip or a date range picker. */\nexport function DataTableFilter({ id, size = 'md', className }: DataTableFilterProps) {\n const table = useDataTableContext();\n const filter = table.filters.find((candidate) => candidate.id === id);\n if (!filter) return null;\n const value = table.filterValues[id];\n const classes = cx('oui-data-table__filter', className);\n\n if (filter.type === 'toggle') {\n return (\n <Toggle\n size={size}\n className={classes}\n pressed={value !== undefined}\n onPressedChange={(pressed) => table.setFilterValue(id, pressed || undefined)}\n >\n {filter.label}\n </Toggle>\n );\n }\n\n if (filter.type === 'dateRange') {\n const range = (value as DateRange | undefined) ?? null;\n return (\n <DateRangePicker\n size={size}\n className={classes}\n placeholder={filter.label}\n value={range}\n onValueChange={(next) => table.setFilterValue(id, next ?? undefined)}\n presets={filter.presets}\n min={filter.min}\n max={filter.max}\n locale={table.locale}\n triggerProps={{\n 'aria-label': range ? `${filter.label}: ${formatDate(range.start)} – ${formatDate(range.end)}` : filter.label,\n }}\n />\n );\n }\n\n return (\n <Select.Root\n items={[{ value: null, label: table.labels.filterAll }, ...filter.options]}\n value={(value as string | undefined) ?? null}\n onValueChange={(next) => table.setFilterValue(id, next ?? undefined)}\n >\n <Select.Trigger size={size} className={classes} data-active={value !== undefined ? '' : undefined}>\n <span className=\"oui-data-table__filter-label\">{filter.label}</span>\n <Select.Value />\n <span className=\"oui-select__icon\">\n <ChevronDownIcon />\n </span>\n </Select.Trigger>\n <Select.Content>\n <Select.Item value={null}>{table.labels.filterAll}</Select.Item>\n {filter.options.map((option) => (\n <Select.Item key={option.value} value={option.value}>\n {option.label}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n}\n\nexport interface DataTableFiltersProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: DataTableControlSize;\n}\n\n/** Every filter of the table, with a clear button while any is active. Children are added after the filters. */\nexport function DataTableFilters({ size = 'md', className, children, ...props }: DataTableFiltersProps) {\n const table = useDataTableContext();\n if (!table.filters.length && !children) return null;\n return (\n <div role=\"group\" aria-label={table.labels.filters} className={cx('oui-data-table__filters', className)} {...props}>\n {table.filters.map((filter) => (\n <DataTableFilter key={filter.id} id={filter.id} size={size} />\n ))}\n {children}\n {table.activeFilterCount > 0 && (\n <Button size=\"sm\" variant=\"ghost\" shape=\"rounded\" onClick={table.clearFilters}>\n <XIcon />\n {table.labels.clearFilters}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,SAAOgB,gBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAyB,MAAA,EAAAN,IAAAC,MAAAM,IAAAL,cAAAE;CAAM,MAAAH,OAAAM,OAAAC,KAAAA,IAAA,OAAAD;CACpC,MAAAE,QAAcZ,oBAAoB;CACnB,MAAAa,KAAAD,MAAKE;CAAQ,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAf,EAAA,OAAAH,aAAAG,EAAA,OAAAL,MAAAK,EAAA,OAAAJ,QAAAI,EAAA,OAAAI,OAAA;EACRW,KAAAC,OAAIC,IAAJ,6BAAG;EAACC,KAAA;GAAA,IAAAC;GAAA,IAAAnB,EAAA,QAAAL,IAAA;IADUwB,OAAAC,cAAeA,UAASzB,OAAQA;IAAEK,EAAA,MAAAL;IAAAK,EAAA,MAAAmB;GAAA,OAAAA,MAAAnB,EAAA;GAApE,MAAAqB,SAAehB,GAAaiB,KAAMH,GAAkC;GACpE,IAAI,CAACE,QAAM;IAASN,KAAA;IAAA,MAAAG;GAAI;GACxB,MAAAK,QAAcnB,MAAKoB,aAAc7B;GAAI,IAAA8B;GAAA,IAAAzB,EAAA,QAAAH,WAAA;IACrB4B,MAAA1C,GAAG,0BAA0Bc,SAAS;IAACG,EAAA,MAAAH;IAAAG,EAAA,MAAAyB;GAAA,OAAAA,MAAAzB,EAAA;GAAvD,MAAA0B,UAAgBD;GAEhB,IAAIJ,OAAMM,SAAU,UAAQ;IAAA,IAAAC;IAAA,IAAA5B,EAAA,QAAAL,MAAAK,EAAA,QAAAI,OAAA;KAMLwB,OAAAC,YAAazB,MAAK0B,eAAgBnC,IAAIkC,WAAA1B,KAAAA,CAAoB;KAACH,EAAA,MAAAL;KAAAK,EAAA,MAAAI;KAAAJ,EAAA,MAAA4B;IAAA,OAAAA,MAAA5B,EAAA;IAJ9Ee,KAAA,oBAAC,QAAD;KACQnB;KACK8B,WAAAA;KACF,SAAAH,UAAUpB,KAAAA;KACF,iBAAAyB;KAEhBP,UAAAA,OAAMU;IANF,CAAA;IAAP,MAAAb;GAOS;GAIb,IAAIG,OAAMM,SAAU,aAAW;IAC7B,MAAAK,QAAeT,SAAD;IAAyC,IAAAK;IAAA,IAAA5B,EAAA,QAAAL,MAAAK,EAAA,QAAAI,OAAA;KAOpCwB,OAAAK,SAAU7B,MAAK0B,eAAgBnC,IAAIsC,QAAA9B,KAAAA,CAAiB;KAACH,EAAA,MAAAL;KAAAK,EAAA,MAAAI;KAAAJ,EAAA,MAAA4B;IAAA,OAAAA,MAAA5B,EAAA;IALtEe,KAAA,oBAAC,iBAAD;KACQnB;KACK8B,WAAAA;KACE,aAAAL,OAAMU;KACZC,OAAAA;KACQ,eAAAJ;KACN,SAAAP,OAAMa;KACV,KAAAb,OAAMc;KACN,KAAAd,OAAMe;KACH,QAAAhC,MAAKiC;KACC,cAAA,EAAA,cACEL,QAAA,GAAWX,OAAMU,MAAM,IAAK5C,WAAW6C,MAAKM,KAAM,EAAC,KAAMnD,WAAW6C,MAAKO,GAAI,MAAMlB,OAAMU,MACzG;IAAC,CAAA;IAZH,MAAAb;GAaE;GAKHV,KAAAlB,OAAMkD;GACE7B,KAAA,CAAC;IAAAY,OAAS;IAAIQ,OAAS3B,MAAKqC,OAAOC;GAAW,GAAC,GAAKrB,OAAMsB,OAAQ;GAClE/B,KAACW,SAAD;GAAqC,IAAAvB,EAAA,QAAAL,MAAAK,EAAA,QAAAI,OAAA;IAC7BS,MAAA+B,WAAUxC,MAAK0B,eAAgBnC,IAAIiD,UAAAzC,KAAAA,CAAiB;IAACH,EAAA,MAAAL;IAAAK,EAAA,MAAAI;IAAAJ,EAAA,MAAAa;GAAA,OAAAA,KAAAb,EAAA;GAAA,IAAA4B;GAAA,IAAA5B,EAAA,QAAAgB,OAAAC,IAAA,2BAAA,GAAA;IAIlEW,MAAA,oBAAA,OAAA,OAAA,CAAA,CAAA;IAAgB5B,EAAA,MAAA4B;GAAA,OAAAA,MAAA5B,EAAA;GAAA,IAAA6C;GAAA,IAAA7C,EAAA,QAAAgB,OAAAC,IAAA,2BAAA,GAAA;IAChB4B,MAAA,oBAAA,QAAA;KAAgB,WAAA;KACd,UAAA,oBAAC,iBAAD,CAAgB,CAAA;IACX,CAAA;IAAA7C,EAAA,MAAA6C;GAAA,OAAAA,MAAA7C,EAAA;GALTc,KAAA,qBAAA,OAAA,SAAA;IAAsBlB;IAAiB8B,WAAAA;IAAsB,eAAAH,UAAUpB,KAAAA,IAAV,KAAAA,KAAAA;IAA7D,UAAA;KACE,oBAAA,QAAA;MAAgB,WAAA;MAAgCkB,UAAAA,OAAMU;KAAc,CAAA;KACpEH;KACAiB;IAGF;;GACCtC,KAAAjB,OAAMwD;GAAQ,IAAA9C,EAAA,QAAAI,MAAAqC,OAAAC,WAAA;IACbjC,KAAA,oBAAA,OAAA,MAAA;KAAoB,OAAA;KAAOL,UAAAA,MAAKqC,OAAOC;IAAW,CAAA;IAAc1C,EAAA,MAAAI,MAAAqC,OAAAC;IAAA1C,EAAA,MAAAS;GAAA,OAAAA,KAAAT,EAAA;GAC/DU,KAAAW,OAAMsB,QAAQI,IAAKC,KAInB;EAAC;EAAAhD,EAAA,KAAAH;EAAAG,EAAA,KAAAL;EAAAK,EAAA,KAAAJ;EAAAI,EAAA,KAAAI;EAAAJ,EAAA,KAAAO;EAAAP,EAAA,KAAAQ;EAAAR,EAAA,KAAAS;EAAAT,EAAA,KAAAU;EAAAV,EAAA,KAAAW;EAAAX,EAAA,KAAAY;EAAAZ,EAAA,MAAAa;EAAAb,EAAA,MAAAc;EAAAd,EAAA,MAAAe;CAAA,OAAA;EAAAR,KAAAP,EAAA;EAAAQ,KAAAR,EAAA;EAAAS,KAAAT,EAAA;EAAAU,KAAAV,EAAA;EAAAW,KAAAX,EAAA;EAAAY,KAAAZ,EAAA;EAAAa,KAAAb,EAAA;EAAAc,KAAAd,EAAA;EAAAe,KAAAf,EAAA;CAAA;CAAA,IAAAe,OAAAC,OAAAC,IAAA,6BAAA,GAAA,OAAAF;CAAA,IAAAI;CAAA,IAAAnB,EAAA,QAAAO,MAAAP,EAAA,QAAAS,MAAAT,EAAA,QAAAU,IAAA;EANJS,MAAA,qBAAC,IAAD,EAAA,UAAA,CACEV,IACCC,EAFY,EAAA,CAAA;EAOEV,EAAA,MAAAO;EAAAP,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAmB;CAAA,OAAAA,MAAAnB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,QAAAQ,MAAAR,EAAA,QAAAmB,OAAAnB,EAAA,QAAAW,MAAAX,EAAA,QAAAY,MAAAZ,EAAA,QAAAa,MAAAb,EAAA,QAAAc,IAAA;EAnBnBW,MAAA,qBAAC,IAAD;GACS,OAAAd;GACA,OAAAC;GACQ,eAAAC;GAHjB,UAAA,CAKEC,IAOAK,GAZU;;EAoBEnB,EAAA,MAAAQ;EAAAR,EAAA,MAAAmB;EAAAnB,EAAA,MAAAW;EAAAX,EAAA,MAAAY;EAAAZ,EAAA,MAAAa;EAAAb,EAAA,MAAAc;EAAAd,EAAA,MAAAyB;CAAA,OAAAA,MAAAzB,EAAA;CAAA,OApBdyB;AAoBc;AA7DX,SAAAuB,MAAAC,QAAA;CAAA,OAwDG,oBAAA,OAAA,MAAA;EAAuC,OAAAA,OAAM1B;EAC1C0B,UAAAA,OAAMlB;CACT,GAFkBkB,OAAM1B,KAExB;AAAc;;AAYxB,SAAO8B,iBAAAtD,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAqD;CAAA,IAAAzD;CAAA,IAAA0D;CAAA,IAAArD;CAAA,IAAAF,EAAA,OAAAD,IAAA;EAA0B,CAAA,CAAAH,MAAAM,IAAAL,WAAAyD,UAAA,GAAAC,SAAAxD;EAAqEC,EAAA,KAAAD;EAAAC,EAAA,KAAAsD;EAAAtD,EAAA,KAAAH;EAAAG,EAAA,KAAAuD;EAAAvD,EAAA,KAAAE;CAAA,OAAA;EAAAoD,WAAAtD,EAAA;EAAAH,YAAAG,EAAA;EAAAuD,QAAAvD,EAAA;EAAAE,KAAAF,EAAA;CAAA;CAAnE,MAAAJ,OAAAM,OAAAC,KAAAA,IAAA,OAAAD;CACjC,MAAAE,QAAcZ,oBAAoB;CAClC,IAAI,CAACY,MAAKE,QAAQkD,UAAd,CAA0BF,UAAQ,OAAS;CAEf,MAAAjD,KAAAD,MAAKqC,OAAOnC;CAAQ,IAAAG;CAAA,IAAAT,EAAA,OAAAH,WAAA;EAAaY,KAAA1B,GAAG,2BAA2Bc,SAAS;EAACG,EAAA,KAAAH;EAAAG,EAAA,KAAAS;CAAA,OAAAA,KAAAT,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAJ,QAAAI,EAAA,OAAAI,MAAAE,SAAA;EAAA,IAAAK;EAAA,IAAAX,EAAA,QAAAJ,MAAA;GAClFe,MAAAU,WACjB,oBAAC,iBAAD;IAAqC,IAAAA,OAAM1B;IAAWC;GAAI,GAApCyB,OAAM1B,EAA8B;GAC3DK,EAAA,MAAAJ;GAAAI,EAAA,MAAAW;EAAA,OAAAA,KAAAX,EAAA;EAFAU,KAAAN,MAAKE,QAAQyC,IAAKpC,EAElB;EAACX,EAAA,KAAAJ;EAAAI,EAAA,KAAAI,MAAAE;EAAAN,EAAA,KAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,IAAAW;CAAA,IAAAX,EAAA,QAAAI,MAAAqD,qBAAAzD,EAAA,QAAAI,MAAAsD,gBAAA1D,EAAA,QAAAI,MAAAqC,OAAAiB,cAAA;EAED/C,KAAAP,MAAKqD,oBAAqB,KACzB,qBAAC,QAAD;GAAa,MAAA;GAAa,SAAA;GAAc,OAAA;GAAmB,SAAArD,MAAKsD;GAAhE,UAAA,CACE,oBAAC,OAAD,CAAM,CAAA,GACLtD,MAAKqC,OAAOiB,YAFR;;EAIR1D,EAAA,MAAAI,MAAAqD;EAAAzD,EAAA,MAAAI,MAAAsD;EAAA1D,EAAA,MAAAI,MAAAqC,OAAAiB;EAAA1D,EAAA,MAAAW;CAAA,OAAAA,KAAAX,EAAA;CAAA,IAAAY;CAAA,IAAAZ,EAAA,QAAAsD,YAAAtD,EAAA,QAAAuD,SAAAvD,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAI,MAAAqC,OAAAnC,SAAA;EAVHM,KAAA,qBAAA,OAAA;GAAU,MAAA;GAAoB,cAAAP;GAAiC,WAAAI;GAAwC,GAAM8C;GAA7G,UAAA;IACG7C;IAGA4C;IACA3C;GAMG;;EAAAX,EAAA,MAAAsD;EAAAtD,EAAA,MAAAuD;EAAAvD,EAAA,MAAAS;EAAAT,EAAA,MAAAU;EAAAV,EAAA,MAAAW;EAAAX,EAAA,MAAAI,MAAAqC,OAAAnC;EAAAN,EAAA,MAAAY;CAAA,OAAAA,KAAAZ,EAAA;CAAA,OAXNY;AAWM"}
1
+ {"version":3,"file":"DataTableFilters.js","names":["React","cx","ChevronDownIcon","XIcon","Button","formatDate","DateRange","DateRangePicker","Select","Toggle","useDataTableContext","DataTableControlSize","DataTableFilterProps","id","size","className","DataTableFilter","t0","$","_c","t1","undefined","table","t2","filters","T0","T1","t3","t4","t5","t6","t7","t8","t9","Symbol","for","bb0","t10","candidate","filter","find","value","filterValues","t11","classes","type","t12","pressed","setFilterValue","label","range","next","presets","min","max","locale","start","end","Root","labels","filterAll","options","next_0","t13","Content","map","_temp","option","DataTableFiltersProps","HTMLAttributes","HTMLDivElement","DataTableFilters","children","props","length","activeFilterCount","clearFilters","_c"],"sources":["../../../src/components/data-table/DataTableFilters.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cx } from '../../utils/cx';\nimport { ChevronDownIcon, XIcon } from '../../icons';\nimport { Button } from '../button/Button';\nimport { formatDate, type DateRange } from '../calendar/date-utils';\nimport { DateRangePicker } from '../date-picker/DateRangePicker';\nimport { Select } from '../select/Select';\nimport { Toggle } from '../toggle/Toggle';\nimport { useDataTableContext } from './context';\n\nexport type DataTableControlSize = 'sm' | 'md';\n\nexport interface DataTableFilterProps {\n /** Id of the filter: the column id, or the `id` given in `filters`. */\n id: string;\n /** Control height. */\n size?: DataTableControlSize;\n /** Class name for the filter control. */\n className?: string;\n}\n\n/** The control of one filter: a dropdown, a toggle chip or a date range picker. */\nexport function DataTableFilter({ id, size = 'md', className }: DataTableFilterProps) {\n const table = useDataTableContext();\n const filter = table.filters.find((candidate) => candidate.id === id);\n if (!filter) return null;\n const value = table.filterValues[id];\n const classes = cx('oui-data-table__filter', className);\n\n if (filter.type === 'toggle') {\n return (\n <Toggle\n size={size}\n className={classes}\n pressed={value !== undefined}\n onPressedChange={(pressed) => table.setFilterValue(id, pressed || undefined)}\n >\n {filter.label}\n </Toggle>\n );\n }\n\n if (filter.type === 'dateRange') {\n const range = (value as DateRange | undefined) ?? null;\n return (\n <DateRangePicker\n size={size}\n className={classes}\n placeholder={filter.label}\n value={range}\n onValueChange={(next) => table.setFilterValue(id, next ?? undefined)}\n presets={filter.presets}\n min={filter.min}\n max={filter.max}\n locale={table.locale}\n triggerProps={{\n 'aria-label': range ? `${filter.label}: ${formatDate(range.start)} – ${formatDate(range.end)}` : filter.label,\n }}\n />\n );\n }\n\n return (\n <Select.Root\n items={[{ value: null, label: table.labels.filterAll }, ...filter.options]}\n value={(value as string | undefined) ?? null}\n onValueChange={(next) => table.setFilterValue(id, next ?? undefined)}\n >\n <Select.Trigger size={size} className={classes} data-active={value !== undefined ? '' : undefined}>\n <span className=\"oui-data-table__filter-label\">{filter.label}</span>\n <Select.Value />\n <span className=\"oui-select__icon\">\n <ChevronDownIcon />\n </span>\n </Select.Trigger>\n <Select.Content>\n <Select.Item value={null}>{table.labels.filterAll}</Select.Item>\n {filter.options.map((option) => (\n <Select.Item key={option.value} value={option.value}>\n {option.label}\n </Select.Item>\n ))}\n </Select.Content>\n </Select.Root>\n );\n}\n\nexport interface DataTableFiltersProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Control height of every filter. */\n size?: DataTableControlSize;\n}\n\n/** Every filter of the table, with a clear button while any is active. Children are added after the filters. */\nexport function DataTableFilters({ size = 'md', className, children, ...props }: DataTableFiltersProps) {\n const table = useDataTableContext();\n if (!table.filters.length && !children) return null;\n return (\n <div role=\"group\" aria-label={table.labels.filters} className={cx('oui-data-table__filters', className)} {...props}>\n {table.filters.map((filter) => (\n <DataTableFilter key={filter.id} id={filter.id} size={size} />\n ))}\n {children}\n {table.activeFilterCount > 0 && (\n <Button size=\"sm\" variant=\"ghost\" shape=\"rounded\" onClick={table.clearFilters}>\n <XIcon />\n {table.labels.clearFilters}\n </Button>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -172,6 +172,7 @@ export type DataTableResolvedLabels = Omit<DataTableLabels, keyof PaginationLabe
172
172
  export interface UseDataTableOptions<T> {
173
173
  /** All rows, or in server mode the rows of the current page. */
174
174
  data: T[];
175
+ /** Column definitions: id, header, cell renderer, sorting, filter and layout options. */
175
176
  columns: DataTableColumn<T>[];
176
177
  /**
177
178
  * `server` renders `data` as it is: search, filtering, sorting and pagination are
@@ -192,8 +193,11 @@ export interface UseDataTableOptions<T> {
192
193
  locale?: string;
193
194
  /** Show the search box (default `true`). */
194
195
  searchable?: boolean;
196
+ /** Search text (controlled). */
195
197
  search?: string;
198
+ /** Initial search text when uncontrolled. */
196
199
  defaultSearch?: string;
200
+ /** Called when the search text changes (after `searchDebounce`). */
197
201
  onSearchChange?: (search: string) => void;
198
202
  /** Milliseconds of typing pause before the search applies. Defaults to 300 in server mode, 0 otherwise. */
199
203
  searchDebounce?: number;
@@ -201,24 +205,36 @@ export interface UseDataTableOptions<T> {
201
205
  filter?: (row: T, search: string) => boolean;
202
206
  /** Toolbar filters that are not tied to a column. Columns add theirs with `filter`. */
203
207
  filters?: DataTableFilter<T>[];
208
+ /** Filter values by filter id (controlled). */
204
209
  filterValues?: DataTableFilterValues;
210
+ /** Initial filter values when uncontrolled. */
205
211
  defaultFilterValues?: DataTableFilterValues;
212
+ /** Called with all filter values when one changes or they are cleared. */
206
213
  onFilterValuesChange?: (values: DataTableFilterValues) => void;
214
+ /** Column sort (controlled); `null` for none. */
207
215
  sort?: DataTableSort | null;
216
+ /** Initial sort when uncontrolled. */
208
217
  defaultSort?: DataTableSort | null;
218
+ /** Called when the user sorts a column. */
209
219
  onSortChange?: (sort: DataTableSort | null) => void;
210
220
  /** Paginate rows (default `true`). */
211
221
  paginated?: boolean;
222
+ /** Current page, starting at 1 (controlled). */
212
223
  page?: number;
224
+ /** Called when the page changes. */
213
225
  onPageChange?: (page: number) => void;
226
+ /** Rows per page (controlled). */
214
227
  pageSize?: number;
228
+ /** Initial rows per page when uncontrolled. */
215
229
  defaultPageSize?: number;
230
+ /** Called when the rows per page change. */
216
231
  onPageSizeChange?: (pageSize: number) => void;
217
232
  /**
218
233
  * Selected row ids. Passing `onSelectionChange` adds the checkbox column.
219
234
  * Select-all covers every filtered row, or in server mode the current page.
220
235
  */
221
236
  selection?: string[];
237
+ /** Called with the selected row ids. */
222
238
  onSelectionChange?: (selection: string[]) => void;
223
239
  /** Makes rows clickable and keyboard-activatable (Enter). */
224
240
  onRowClick?: (row: T) => void;
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { type CalendarLabels, type CalendarProps } from '../calendar/Calendar';
3
+ import { type DateGranularity } from '../calendar/date-utils';
3
4
  import { type PickerFieldProps } from './PickerField';
4
5
  export interface DatePickerLabels extends CalendarLabels {
5
6
  today: string;
@@ -23,7 +24,13 @@ interface PickerProps extends PickerFieldProps, Pick<CalendarProps, 'isDateDisab
23
24
  name?: string;
24
25
  /** Show the Clear action. Defaults to `true` unless `required`. */
25
26
  clearable?: boolean;
26
- /** Custom display text for the selected value. */
27
+ /** What the value holds and which picker opens: a year or month grid, a day calendar, or a calendar plus time fields down to the hour, minute or second. The value is cut down to this unit. */
28
+ granularity?: DateGranularity;
29
+ /** Display pattern, e.g. `"DD.MM.YYYY"` or `"MMMM YYYY"` (tokens as in `formatDate`). Defaults to `DateConfigProvider` formats, then an ISO-style pattern for the granularity. */
30
+ format?: string;
31
+ /** IANA zone (`"Europe/Budapest"`) that date-times are shown and edited in. Defaults to `DateConfigProvider`, then the browser's. Ignored for year, month and day granularities. */
32
+ timeZone?: string;
33
+ /** Custom display text for the selected value. Wins over `format`. */
27
34
  formatValue?: (value: string) => React.ReactNode;
28
35
  /** Override texts for localisation. */
29
36
  labels?: Partial<DatePickerLabels>;
@@ -31,20 +38,36 @@ interface PickerProps extends PickerFieldProps, Pick<CalendarProps, 'isDateDisab
31
38
  export interface DatePickerProps extends PickerProps {
32
39
  }
33
40
  /**
34
- * Date field with a calendar popover. Values are ISO dates (`"2026-03-09"`),
35
- * the same format as `<input type="date">`, and are shown the same way.
41
+ * Date field with a calendar popover. Day values are ISO dates (`"2026-03-09"`),
42
+ * the same format as `<input type="date">`. `granularity="month"` or `"year"` opens a
43
+ * month or year grid and stores the period's first day (`"2026-03-01"`); a time
44
+ * granularity behaves like `DateTimePicker`.
45
+ *
46
+ * @example
47
+ * <DatePicker label="Delivery date" value={date} onValueChange={setDate} />
48
+ * <DatePicker label="Billing month" granularity="month" format="MMMM YYYY" />
36
49
  */
37
- export declare function DatePicker(props: DatePickerProps): React.JSX.Element;
50
+ export declare function DatePicker({ granularity, ...props }: DatePickerProps): React.JSX.Element;
38
51
  export interface DateTimePickerProps extends PickerProps {
39
- /** Granularity of the time input in seconds (60 = minutes, 1 = seconds). */
52
+ /** Spacing of the time options in seconds (60 = every minute, 900 = quarter hours, 1 = every second). */
40
53
  step?: number;
41
- /** Time used when a day is picked before any time is set. */
54
+ /** Time (`"09:00"`) used when a day is picked before any time is set. */
42
55
  defaultTime?: string;
56
+ /**
57
+ * Smallest unit shown and stored: `hour`, `minute` or `second`. When omitted, `second`
58
+ * if `step` is not a whole number of minutes, otherwise `minute`.
59
+ * @default 'minute'
60
+ */
61
+ granularity?: 'hour' | 'minute' | 'second';
43
62
  }
44
63
  /**
45
- * Date and time field. Values are local ISO date-times (`"2026-03-09T14:30"`),
46
- * the same format as `<input type="datetime-local">`, shown as `2026-03-09 14:30:00`
47
- * on a 24-hour clock whatever the locale.
64
+ * Date and time field. Values are UTC instants (`"2026-03-09T13:30:00Z"`) shown and
65
+ * edited in `timeZone` (the browser's by default) on a 24-hour clock, as
66
+ * `2026-03-09 14:30`. Values without an offset (`"2026-03-09T14:30"`) are read as
67
+ * wall-clock time in `timeZone`.
68
+ *
69
+ * @example
70
+ * <DateTimePicker label="Departure" value={slot} onValueChange={setSlot} timeZone="Europe/Budapest" />
48
71
  */
49
- export declare function DateTimePicker(props: DateTimePickerProps): React.JSX.Element;
72
+ export declare function DateTimePicker({ granularity, ...props }: DateTimePickerProps): React.JSX.Element;
50
73
  export {};