@atom-learning/components 6.0.0-beta.32 → 6.0.0-beta.34

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 (82) hide show
  1. package/dist/components/banner/Banner.d.ts +2 -2
  2. package/dist/components/banner/banner-regular/BannerRegular.d.ts +95 -91
  3. package/dist/components/banner/banner-slim/BannerSlim.d.ts +95 -91
  4. package/dist/components/button/Button.js +1 -1
  5. package/dist/components/button/Button.js.map +1 -1
  6. package/dist/components/calendar/Calendar.js +1 -1
  7. package/dist/components/carousel/Carousel.d.ts +1 -1
  8. package/dist/components/carousel/CarouselSlider.d.ts +2 -1
  9. package/dist/components/carousel/CarouselSlider.js.map +1 -1
  10. package/dist/components/checkbox-group/CheckboxGroup.d.ts +90 -90
  11. package/dist/components/checkbox-tree/CheckboxTree.d.ts +344 -344
  12. package/dist/components/data-table/DataTable.d.ts +21 -21
  13. package/dist/components/data-table/DataTable.types.d.ts +1 -0
  14. package/dist/components/data-table/DataTable.types.js.map +1 -1
  15. package/dist/components/data-table/DataTableContext.js +1 -1
  16. package/dist/components/data-table/DataTableContext.js.map +1 -1
  17. package/dist/components/data-table/DataTableHead.js +1 -1
  18. package/dist/components/data-table/DataTableHeaderCell.js +1 -1
  19. package/dist/components/data-table/drag-and-drop/DragAndDropTable.js +1 -1
  20. package/dist/components/data-table/pagination/Pagination.js +1 -1
  21. package/dist/components/data-table/pagination/Pagination.js.map +1 -1
  22. package/dist/components/dialog/Dialog.d.ts +2 -2
  23. package/dist/components/dialog/DialogFooter.js +1 -1
  24. package/dist/components/dismissible/index.d.ts +2 -2
  25. package/dist/components/dismissible-group/index.d.ts +3 -3
  26. package/dist/components/index.d.ts +1 -0
  27. package/dist/components/keyboard-shortcut/index.d.ts +2 -2
  28. package/dist/components/loader/Loader.js +1 -1
  29. package/dist/components/markdown-content/components/MarkdownThematicBreak.js +1 -1
  30. package/dist/components/navigation-menu-vertical/NavigationMenuVertical.d.ts +162 -162
  31. package/dist/components/number-input/NumberInput.d.ts +1 -0
  32. package/dist/components/number-input/NumberInput.js +1 -1
  33. package/dist/components/number-input/NumberInput.js.map +1 -1
  34. package/dist/components/number-input/NumberInputStepper.d.ts +2 -1
  35. package/dist/components/number-input/NumberInputStepper.js +1 -1
  36. package/dist/components/number-input/NumberInputStepper.js.map +1 -1
  37. package/dist/components/pagination/PaginationPopover.js +1 -1
  38. package/dist/components/pagination/PaginationPopover.js.map +1 -1
  39. package/dist/components/password-field/PasswordField.js +1 -1
  40. package/dist/components/popover/Popover.d.ts +1 -0
  41. package/dist/components/popover/Popover.js +1 -1
  42. package/dist/components/popover/Popover.js.map +1 -1
  43. package/dist/components/search-input/SearchInput.js +1 -1
  44. package/dist/components/section-message/SectionMessage.js +1 -1
  45. package/dist/components/section-message/SectionMessage.js.map +1 -1
  46. package/dist/components/section-message/SectionMessageDescription.js +1 -1
  47. package/dist/components/section-message/SectionMessageDismiss.js +1 -1
  48. package/dist/components/section-message/SectionMessageIcon.js +1 -1
  49. package/dist/components/section-message/SectionMessageLayout.js +1 -1
  50. package/dist/components/segmented-control/SegmentedControl.d.ts +9 -9
  51. package/dist/components/side-bar/SideBarComponents.d.ts +1 -1
  52. package/dist/components/skeleton-loader/Skeleton.d.ts +5 -0
  53. package/dist/components/skeleton-loader/Skeleton.js +2 -0
  54. package/dist/components/skeleton-loader/Skeleton.js.map +1 -0
  55. package/dist/components/skeleton-loader/SkeletonButton.d.ts +5 -0
  56. package/dist/components/skeleton-loader/SkeletonButton.js +2 -0
  57. package/dist/components/skeleton-loader/SkeletonButton.js.map +1 -0
  58. package/dist/components/skeleton-loader/SkeletonHeading.d.ts +5 -0
  59. package/dist/components/skeleton-loader/SkeletonHeading.js +2 -0
  60. package/dist/components/skeleton-loader/SkeletonHeading.js.map +1 -0
  61. package/dist/components/skeleton-loader/SkeletonTabs.d.ts +6 -0
  62. package/dist/components/skeleton-loader/SkeletonTabs.js +2 -0
  63. package/dist/components/skeleton-loader/SkeletonTabs.js.map +1 -0
  64. package/dist/components/skeleton-loader/index.d.ts +4 -0
  65. package/dist/components/skeleton-loader/index.js +2 -0
  66. package/dist/components/skeleton-loader/index.js.map +1 -0
  67. package/dist/components/sortable/index.d.ts +3 -3
  68. package/dist/components/stepper/StepperStepLabel.d.ts +1 -1
  69. package/dist/components/tile-interactive/TileInteractive.js.map +1 -1
  70. package/dist/components/tile-toggle-group/TileToggleGroupItem.js +1 -1
  71. package/dist/components/tile-toggle-group/TileToggleGroupItem.js.map +1 -1
  72. package/dist/components/toggle-group/ToggleGroupItem.js +1 -1
  73. package/dist/components/toggle-group/ToggleGroupItem.js.map +1 -1
  74. package/dist/components/tree/Tree.d.ts +243 -243
  75. package/dist/docgen.json +1 -1
  76. package/dist/index.cjs.js +1 -1
  77. package/dist/index.cjs.js.map +1 -1
  78. package/dist/index.js +1 -1
  79. package/dist/styled.js +1 -1
  80. package/package.json +1 -1
  81. package/src/index.css +14 -0
  82. package/src/responsive-variant-classes.css +1 -1
@@ -6,7 +6,7 @@
6
6
  export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defaultSort, initialState, disabledRows, enableRowSelection, onRowSelectionChange, children }: {
7
7
  columns: any;
8
8
  defaultSort?: import("./DataTable.types").TDefaultSort;
9
- children: React.ReactNode;
9
+ children: import("react").ReactNode;
10
10
  initialState?: import("./DataTable.types").InitialState;
11
11
  disabledRows?: Record<string, boolean>;
12
12
  enableRowSelection?: boolean | ((row: import("@tanstack/table-core").Row<unknown>) => boolean);
@@ -30,7 +30,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
30
30
  } & {
31
31
  as?: import("react").ElementType;
32
32
  }, "children"> & {
33
- rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void;
33
+ rowAction?: (row: Record<string, unknown>, event: import("react").MouseEvent) => void;
34
34
  }) => import("react").JSX.Element;
35
35
  /** Default table data cell implementation for `DataTable`
36
36
  *
@@ -83,7 +83,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
83
83
  showTotalInFirstColumn?: boolean;
84
84
  totalSuffix?: string;
85
85
  };
86
- rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void;
86
+ rowAction?: (row: Record<string, unknown>, event: import("react").MouseEvent) => void;
87
87
  withContainer?: boolean;
88
88
  } & {
89
89
  className?: string;
@@ -121,7 +121,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
121
121
  stickyOffset?: number;
122
122
  showTotalInFirstColumn?: boolean;
123
123
  totalSuffix?: string;
124
- }) => React.ReactElement;
124
+ }) => import("react").ReactElement;
125
125
  /** Default header implementation for `DataTable`
126
126
  *
127
127
  * Can be configured to make the column sortable. If you need more customisation options,
@@ -142,7 +142,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
142
142
  * you can build your own implementation with `useDataTable` and other UI components.
143
143
  *
144
144
  */
145
- MetaData: ({ copy, ...rest }: React.ComponentProps<typeof import("..").Text> & {
145
+ MetaData: ({ copy, ...rest }: import("react").ComponentProps<typeof import("..").Text> & {
146
146
  copy?: {
147
147
  sorted_by?: string;
148
148
  ascending?: string;
@@ -187,7 +187,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
187
187
  * If you need more customisation, you can compose your own implentation, `asyncDataState`
188
188
  * can be retrieved from `useDataTable`
189
189
  */
190
- Loading: (props: React.ComponentProps<import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
190
+ Loading: (props: import("react").ComponentProps<import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
191
191
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
192
192
  }, "direction" | "align" | "wrap" | "justify" | "gap"> & {
193
193
  direction?: ("row" | "row-reverse" | "column" | "column-reverse" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | Partial<Record<"@initial" | "@sm" | "@md" | "@lg" | "@xl", "row" | "row-reverse" | "column" | "column-reverse" | "inherit" | "initial" | "revert" | "revert-layer" | "unset">>) | undefined;
@@ -215,7 +215,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
215
215
  *
216
216
  */
217
217
  Error: ({ children }: {
218
- children: (retry?: import("./DataTable.types").DataTableContextType["runAsyncData"]) => React.ReactElement;
218
+ children: (retry?: import("./DataTable.types").DataTableContextType["runAsyncData"]) => import("react").ReactElement;
219
219
  }) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
220
220
  /** Empty state implementation for `DataTable`.
221
221
  *
@@ -252,37 +252,37 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
252
252
  checked: boolean | "indeterminate";
253
253
  onCheckedChange: (value: boolean) => void;
254
254
  label?: string;
255
- }) => React.ReactElement;
255
+ }) => import("react").ReactElement;
256
256
  /** Bulk actions for selected rows.
257
257
  *
258
258
  * Renders a toolbar with actions that can be applied to all selected rows
259
259
  */
260
260
  BulkActions: (({ children, ...rest }: {
261
- children: React.ReactElement<React.ComponentProps<({ children }: {
262
- children: React.ReactElement;
263
- }) => React.ReactElement | null>> | React.ReactElement<React.ComponentProps<({ cancelLabel, children }: {
261
+ children: import("react").ReactElement<import("react").ComponentProps<({ children }: {
262
+ children: import("react").ReactElement;
263
+ }) => import("react").ReactElement | null>> | import("react").ReactElement<import("react").ComponentProps<({ cancelLabel, children }: {
264
264
  cancelLabel?: string;
265
- children: React.ReactNode;
266
- }) => import("react").JSX.Element | null>> | [React.ReactElement<React.ComponentProps<({ children }: {
267
- children: React.ReactElement;
268
- }) => React.ReactElement | null>>, React.ReactElement<React.ComponentProps<({ cancelLabel, children }: {
265
+ children: import("react").ReactNode;
266
+ }) => import("react").JSX.Element | null>> | [import("react").ReactElement<import("react").ComponentProps<({ children }: {
267
+ children: import("react").ReactElement;
268
+ }) => import("react").ReactElement | null>>, import("react").ReactElement<import("react").ComponentProps<({ cancelLabel, children }: {
269
269
  cancelLabel?: string;
270
- children: React.ReactNode;
270
+ children: import("react").ReactNode;
271
271
  }) => import("react").JSX.Element | null>>];
272
272
  }) => import("react").JSX.Element) & {
273
273
  DefaultActions: ({ children }: {
274
- children: React.ReactElement;
275
- }) => React.ReactElement | null;
274
+ children: import("react").ReactElement;
275
+ }) => import("react").ReactElement | null;
276
276
  SelectedRowActions: ({ cancelLabel, children }: {
277
277
  cancelLabel?: string;
278
- children: React.ReactNode;
278
+ children: import("react").ReactNode;
279
279
  }) => import("react").JSX.Element | null;
280
280
  };
281
281
  /** Bulk actions for selected rows.
282
282
  *
283
283
  * Renders a toolbar with actions that can be applied to all selected rows
284
284
  */
285
- BulkActionsFloating: (({ children, ...rest }: React.PropsWithChildren<React.ComponentProps<import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
285
+ BulkActionsFloating: (({ children, ...rest }: import("react").PropsWithChildren<import("react").ComponentProps<import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
286
286
  ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
287
287
  }, "direction" | "align" | "wrap" | "justify" | "gap"> & {
288
288
  direction?: ("row" | "row-reverse" | "column" | "column-reverse" | "inherit" | "initial" | "revert" | "revert-layer" | "unset" | Partial<Record<"@initial" | "@sm" | "@md" | "@lg" | "@xl", "row" | "row-reverse" | "column" | "column-reverse" | "inherit" | "initial" | "revert" | "revert-layer" | "unset">>) | undefined;
@@ -298,7 +298,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
298
298
  SelectedRowActions: ({ cancelLabel, showDividers, children }: {
299
299
  cancelLabel?: string;
300
300
  showDividers?: boolean;
301
- children: React.ReactNode;
301
+ children: import("react").ReactNode;
302
302
  }) => import("react").JSX.Element | null;
303
303
  };
304
304
  };
@@ -31,6 +31,7 @@ export type DataTableContextType<T = unknown> = Table<T> & {
31
31
  isSortable: boolean;
32
32
  asyncDataState?: AsyncDataState;
33
33
  runAsyncData?: (options: Partial<TAsyncDataOptions>) => Promise<void>;
34
+ hasAsyncData: boolean;
34
35
  disabledRows?: Record<string, boolean>;
35
36
  enableRowSelection?: boolean | ((row: Row<unknown>) => boolean);
36
37
  rowSelection: RowSelectionState;
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.types.js","sources":["../../../src/components/data-table/DataTable.types.ts"],"sourcesContent":["import type {\n ColumnOrderTableState,\n ColumnPinningTableState,\n ColumnSizingTableState,\n ExpandedTableState,\n FiltersTableState,\n GroupingTableState,\n PaginationTableState,\n Row,\n RowSelectionState,\n RowSelectionTableState,\n SortDirection,\n SortingTableState,\n Table,\n VisibilityTableState\n} from '@tanstack/react-table'\nimport * as React from 'react'\n\nexport enum AsyncDataState {\n NONE = 'none',\n PENDING = 'pending',\n FULFILLED = 'fulfilled',\n REJECTED = 'rejected'\n}\n\nexport type TAsyncDataResult = {\n total: number\n results: TableData\n}\n\nexport type TAsyncDataOptions = {\n pageIndex: number\n pageSize: number\n sortBy?: string\n sortDirection?: SortDirection\n globalFilter?: string\n}\n\nexport type TGetAsyncData = (\n options: TAsyncDataOptions\n) => Promise<TAsyncDataResult | undefined>\n\nexport type TablePosition = {\n top: number | null\n bottom: number | null\n offsetTop: number\n isVisible: boolean\n}\n\nexport type DataTableContextType<T = unknown> = Table<T> & {\n setIsSortable: React.Dispatch<React.SetStateAction<boolean>>\n applyPagination: () => void\n getTotalRows: () => number\n isSortable: boolean\n asyncDataState?: AsyncDataState\n runAsyncData?: (options: Partial<TAsyncDataOptions>) => Promise<void>\n disabledRows?: Record<string, boolean>\n enableRowSelection?: boolean | ((row: Row<unknown>) => boolean)\n rowSelection: RowSelectionState\n tablePosition?: TablePosition\n setTablePosition: React.Dispatch<React.SetStateAction<TablePosition>>\n data: TAsyncDataResult\n columns: any\n tableId: string\n /**\n * Directly update the data array that the table rows are built from.\n * This is useful when re-ordering rows, but is high-risk if you're not sure what you're doing!\n *\n * Note in particular that this value is also updated if you update the value of the `DataTable`'s `data` prop\n * — it's probably best to only use one of those two methods for any given table.\n */\n setData: React.Dispatch<React.SetStateAction<TAsyncDataResult>>\n}\n\nexport type TableData = Array<Record<string, unknown>>\n\nexport type InitialState = Partial<\n VisibilityTableState &\n ColumnOrderTableState &\n ColumnPinningTableState &\n FiltersTableState &\n SortingTableState &\n ExpandedTableState &\n GroupingTableState &\n ColumnSizingTableState &\n PaginationTableState &\n RowSelectionTableState\n>\n\nexport type TDefaultSort = { column: string; direction: SortDirection }\n"],"names":["AsyncDataState"],"mappings":"AAkBO,IAAKA,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,SAAW,WAJDA,IAAAA,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"DataTable.types.js","sources":["../../../src/components/data-table/DataTable.types.ts"],"sourcesContent":["import type {\n ColumnOrderTableState,\n ColumnPinningTableState,\n ColumnSizingTableState,\n ExpandedTableState,\n FiltersTableState,\n GroupingTableState,\n PaginationTableState,\n Row,\n RowSelectionState,\n RowSelectionTableState,\n SortDirection,\n SortingTableState,\n Table,\n VisibilityTableState\n} from '@tanstack/react-table'\nimport * as React from 'react'\n\nexport enum AsyncDataState {\n NONE = 'none',\n PENDING = 'pending',\n FULFILLED = 'fulfilled',\n REJECTED = 'rejected'\n}\n\nexport type TAsyncDataResult = {\n total: number\n results: TableData\n}\n\nexport type TAsyncDataOptions = {\n pageIndex: number\n pageSize: number\n sortBy?: string\n sortDirection?: SortDirection\n globalFilter?: string\n}\n\nexport type TGetAsyncData = (\n options: TAsyncDataOptions\n) => Promise<TAsyncDataResult | undefined>\n\nexport type TablePosition = {\n top: number | null\n bottom: number | null\n offsetTop: number\n isVisible: boolean\n}\n\nexport type DataTableContextType<T = unknown> = Table<T> & {\n setIsSortable: React.Dispatch<React.SetStateAction<boolean>>\n applyPagination: () => void\n getTotalRows: () => number\n isSortable: boolean\n asyncDataState?: AsyncDataState\n runAsyncData?: (options: Partial<TAsyncDataOptions>) => Promise<void>\n hasAsyncData: boolean\n disabledRows?: Record<string, boolean>\n enableRowSelection?: boolean | ((row: Row<unknown>) => boolean)\n rowSelection: RowSelectionState\n tablePosition?: TablePosition\n setTablePosition: React.Dispatch<React.SetStateAction<TablePosition>>\n data: TAsyncDataResult\n columns: any\n tableId: string\n /**\n * Directly update the data array that the table rows are built from.\n * This is useful when re-ordering rows, but is high-risk if you're not sure what you're doing!\n *\n * Note in particular that this value is also updated if you update the value of the `DataTable`'s `data` prop\n * — it's probably best to only use one of those two methods for any given table.\n */\n setData: React.Dispatch<React.SetStateAction<TAsyncDataResult>>\n}\n\nexport type TableData = Array<Record<string, unknown>>\n\nexport type InitialState = Partial<\n VisibilityTableState &\n ColumnOrderTableState &\n ColumnPinningTableState &\n FiltersTableState &\n SortingTableState &\n ExpandedTableState &\n GroupingTableState &\n ColumnSizingTableState &\n PaginationTableState &\n RowSelectionTableState\n>\n\nexport type TDefaultSort = { column: string; direction: SortDirection }\n"],"names":["AsyncDataState"],"mappings":"AAkBO,IAAKA,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,SAAW,WAJDA,IAAAA,GAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{v4 as U}from"@lukeed/uuid";import{useReactTable as Y,getCoreRowModel as q,getPaginationRowModel as H,getSortedRowModel as K,getFilteredRowModel as Q,getExpandedRowModel as W}from"@tanstack/react-table";import*as e from"react";import X from"use-deep-compare-effect";import{AsyncDataState as i}from"./DataTable.types.js";import{getNewAsyncData as Z}from"./getNewAsyncData.js";import{usePagination as _}from"./usePagination.js";import{useSortByColumn as $}from"./useSorting.js";const M=e.createContext(null),ee=({columns:l,data:a=[],getAsyncData:n,defaultSort:T,initialState:g=void 0,disabledRows:x,enableRowSelection:u,onRowSelectionChange:C,children:F})=>{const P=e.useRef(U()),[d,c]=e.useState({results:a??[],total:(a==null?void 0:a.length)??0}),[S,I]=e.useState({}),[N,L]=e.useState({}),[A,G]=e.useState({top:null,bottom:null,offsetTop:0,isVisible:!0}),{isPaginated:s,applyPagination:D,paginationState:o,setPaginationState:k}=_(g==null?void 0:g.pagination),[y,b]=e.useState(i.NONE),[w,z]=e.useState(""),{setIsSortable:O,isSortable:p,sorting:r,setSorting:j}=$(T),m=e.useCallback(async t=>{if(n)try{b(i.PENDING);const f=await Z(n,t,o,r,w);c(f),b(i.FULFILLED)}catch{b(i.REJECTED)}},[n,o==null?void 0:o.pageIndex,o==null?void 0:o.pageSize,r,w]);e.useEffect(()=>{m({})},[m]),X(()=>{a&&c({results:a,total:a.length})},[a]);const R=()=>d.total;Object.keys(S||{}).length>0;const E=Y({columns:l,data:d.results,pageCount:o?Math.ceil(R()/o.pageSize):-1,initialState:g,state:{sorting:r,globalFilter:w,pagination:o,rowSelection:S,expanded:N},manualPagination:n&&s,manualSorting:n&&s,enableSorting:y!==i.PENDING,enableGlobalFilter:!n,enableRowSelection:u,onExpandedChange:L,getSubRows:t=>t.subRows,onRowSelectionChange:t=>{C&&C(t),I(t)},getCoreRowModel:q(),getPaginationRowModel:s?H():void 0,getSortedRowModel:p||r.length?K():void 0,getFilteredRowModel:Q(),getExpandedRowModel:W(),onPaginationChange:s?k:void 0,onSortingChange:j,onGlobalFilterChange:z,globalFilterFn:(t,f,V)=>{const v=B=>B.toLowerCase().includes(V.toLowerCase());if(t.depth>0)return!0;const h=t.getValue(f);switch(typeof h){case"string":return v(h);case"boolean":case"number":return v(String(h));default:return!1}}}),J=e.useMemo(()=>({...E,columns:l,data:d,setData:c,setIsSortable:O,applyPagination:D,getTotalRows:R,isSortable:p,asyncDataState:y,runAsyncData:m,disabledRows:x,enableRowSelection:u,rowSelection:S,tablePosition:A,setTablePosition:G,tableId:P.current}),[E,D,R,p,u,P]);return e.createElement(M.Provider,{value:J},F)},te=()=>{const l=e.useContext(M);if(!l)throw new Error("useDataTable can only be called from inside a DataTableProvider");return l};export{ee as DataTableProvider,te as useDataTable};
1
+ import{v4 as Y}from"@lukeed/uuid";import{useReactTable as j,getCoreRowModel as q,getPaginationRowModel as H,getSortedRowModel as K,getFilteredRowModel as Q,getExpandedRowModel as W}from"@tanstack/react-table";import*as e from"react";import X from"use-deep-compare-effect";import{AsyncDataState as i}from"./DataTable.types.js";import{getNewAsyncData as Z}from"./getNewAsyncData.js";import{usePagination as _}from"./usePagination.js";import{useSortByColumn as $}from"./useSorting.js";const M=e.createContext(null),ee=({columns:l,data:n=[],getAsyncData:t,defaultSort:T,initialState:g=void 0,disabledRows:x,enableRowSelection:u,onRowSelectionChange:h,children:F})=>{const C=e.useRef(Y()),[d,c]=e.useState({results:n??[],total:(n==null?void 0:n.length)??0}),[P,I]=e.useState({}),[N,A]=e.useState({}),[L,G]=e.useState({top:null,bottom:null,offsetTop:0,isVisible:!0}),{isPaginated:s,applyPagination:D,paginationState:a,setPaginationState:z}=_(g==null?void 0:g.pagination),[y,S]=e.useState(i.NONE),[b,k]=e.useState(""),{setIsSortable:B,isSortable:w,sorting:r,setSorting:J}=$(T),m=e.useCallback(async o=>{if(t)try{S(i.PENDING);const R=await Z(t,o,a,r,b);c(R),S(i.FULFILLED)}catch{S(i.REJECTED)}},[t,a==null?void 0:a.pageIndex,a==null?void 0:a.pageSize,r,b]);e.useEffect(()=>{m({})},[m]),X(()=>{n&&c({results:n,total:n.length})},[n]);const p=()=>d.total,E=j({columns:l,data:d.results,pageCount:t&&a?Math.ceil(p()/a.pageSize):-1,initialState:g,state:{sorting:r,globalFilter:b,pagination:a,rowSelection:P,expanded:N},manualPagination:t&&s,manualSorting:t&&s,enableSorting:y!==i.PENDING,enableGlobalFilter:!t,enableRowSelection:u,onExpandedChange:A,getSubRows:o=>o.subRows,onRowSelectionChange:o=>{h&&h(o),I(o)},getCoreRowModel:q(),getPaginationRowModel:s?H():void 0,getSortedRowModel:w||r.length?K():void 0,getFilteredRowModel:Q(),getExpandedRowModel:W(),onPaginationChange:s?z:void 0,onSortingChange:J,onGlobalFilterChange:k,globalFilterFn:(o,R,V)=>{const v=U=>U.toLowerCase().includes(V.toLowerCase());if(o.depth>0)return!0;const f=o.getValue(R);switch(typeof f){case"string":return v(f);case"boolean":case"number":return v(String(f));default:return!1}}}),O=e.useMemo(()=>({...E,columns:l,data:d,setData:c,setIsSortable:B,applyPagination:D,getTotalRows:p,isSortable:w,asyncDataState:y,runAsyncData:m,hasAsyncData:!!t,disabledRows:x,enableRowSelection:u,rowSelection:P,tablePosition:L,setTablePosition:G,tableId:C.current}),[E,D,p,w,u,C,t]);return e.createElement(M.Provider,{value:O},F)},te=()=>{const l=e.useContext(M);if(!l)throw new Error("useDataTable can only be called from inside a DataTableProvider");return l};export{ee as DataTableProvider,te as useDataTable};
2
2
  //# sourceMappingURL=DataTableContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableContext.js","sources":["../../../src/components/data-table/DataTableContext.tsx"],"sourcesContent":["import { v4 as uuid } from '@lukeed/uuid'\nimport type {\n ExpandedState,\n OnChangeFn,\n PaginationState,\n Row,\n RowSelectionState\n} from '@tanstack/react-table'\nimport {\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\nimport * as React from 'react'\nimport useDeepCompareEffect from 'use-deep-compare-effect'\n\nimport {\n AsyncDataState,\n DataTableContextType,\n InitialState,\n TableData,\n TablePosition,\n TAsyncDataOptions,\n TAsyncDataResult,\n TDefaultSort,\n TGetAsyncData\n} from './DataTable.types'\nimport { getNewAsyncData } from './getNewAsyncData'\nimport { usePagination } from './usePagination'\nimport { useSortByColumn } from './useSorting'\n\nconst DataTableContext =\n React.createContext<DataTableContextType<unknown> | null>(null)\n\ntype DataTableProviderProps = {\n columns\n defaultSort?: TDefaultSort\n children: React.ReactNode\n initialState?: InitialState\n disabledRows?: Record<string, boolean>\n enableRowSelection?: boolean | ((row: Row<unknown>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n} & (\n | { data: TableData; getAsyncData?: never }\n | { data?: never; getAsyncData: TGetAsyncData }\n)\n\nexport const DataTableProvider = ({\n columns,\n data: dataProp = [],\n getAsyncData,\n defaultSort,\n initialState = undefined,\n disabledRows,\n enableRowSelection,\n onRowSelectionChange,\n children\n}: DataTableProviderProps): JSX.Element => {\n const tableId = React.useRef(uuid())\n\n const [data, setData] = React.useState<TAsyncDataResult>({\n results: dataProp ?? [],\n total: dataProp?.length ?? 0\n })\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [expanded, setExpanded] = React.useState<ExpandedState>({})\n\n const [tablePosition, setTablePosition] = React.useState<TablePosition>({\n top: null,\n bottom: null,\n offsetTop: 0,\n isVisible: true\n })\n\n const { isPaginated, applyPagination, paginationState, setPaginationState } =\n usePagination(initialState?.pagination)\n\n const [asyncDataState, setAsyncDataState] = React.useState<AsyncDataState>(\n AsyncDataState.NONE\n )\n\n const [globalFilter, setGlobalFilter] = React.useState<string>('')\n\n const { setIsSortable, isSortable, sorting, setSorting } =\n useSortByColumn(defaultSort)\n\n const runAsyncData = React.useCallback(\n async (overrideAsyncDataOptions: Partial<TAsyncDataOptions>) => {\n if (!getAsyncData) return\n\n try {\n setAsyncDataState(AsyncDataState.PENDING)\n\n const newData = await getNewAsyncData(\n getAsyncData,\n overrideAsyncDataOptions,\n paginationState as PaginationState,\n sorting,\n globalFilter\n )\n\n setData(newData as TAsyncDataResult)\n setAsyncDataState(AsyncDataState.FULFILLED)\n } catch (error) {\n setAsyncDataState(AsyncDataState.REJECTED)\n }\n },\n [\n getAsyncData,\n paginationState?.pageIndex,\n paginationState?.pageSize,\n sorting,\n globalFilter\n ]\n )\n\n React.useEffect(() => {\n runAsyncData({})\n }, [runAsyncData])\n\n useDeepCompareEffect(() => {\n if (!dataProp) return\n\n setData({ results: dataProp, total: dataProp.length })\n }, [dataProp])\n\n const getTotalRows = () => data.total\n\n const hasSelectedRows = Object.keys(rowSelection || {}).length > 0\n\n const table = useReactTable<unknown>({\n columns,\n data: data.results,\n pageCount: paginationState\n ? Math.ceil(getTotalRows() / paginationState.pageSize)\n : -1,\n initialState: initialState,\n state: {\n sorting,\n globalFilter,\n pagination: paginationState,\n rowSelection,\n expanded\n },\n manualPagination: getAsyncData && isPaginated,\n manualSorting: getAsyncData && isPaginated,\n enableSorting: asyncDataState !== AsyncDataState.PENDING,\n enableGlobalFilter: !getAsyncData,\n enableRowSelection,\n onExpandedChange: setExpanded,\n getSubRows: (row: Row<unknown>) => row.subRows,\n onRowSelectionChange: (updaterOrValue) => {\n if (onRowSelectionChange) onRowSelectionChange(updaterOrValue)\n setRowSelection(updaterOrValue)\n },\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: isPaginated ? getPaginationRowModel() : undefined,\n getSortedRowModel:\n isSortable || sorting.length ? getSortedRowModel() : undefined,\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n onPaginationChange: isPaginated ? setPaginationState : undefined,\n onSortingChange: setSorting,\n onGlobalFilterChange: setGlobalFilter,\n globalFilterFn: (row, columnId, filterValue) => {\n const checkFilterMatchesCell = (cellValue: string) =>\n cellValue.toLowerCase().includes(filterValue.toLowerCase())\n\n const isSubRow = row.depth > 0\n\n if (isSubRow) return true\n\n const value = row.getValue(columnId)\n switch (typeof value) {\n case 'string':\n return checkFilterMatchesCell(value)\n case 'boolean':\n case 'number':\n return checkFilterMatchesCell(String(value))\n default:\n return false\n }\n }\n })\n\n const value: DataTableContextType = React.useMemo(() => {\n return {\n ...table,\n columns,\n data,\n setData,\n setIsSortable,\n applyPagination,\n getTotalRows,\n isSortable,\n asyncDataState,\n runAsyncData,\n disabledRows,\n enableRowSelection,\n rowSelection,\n tablePosition,\n setTablePosition,\n tableId: tableId.current\n }\n }, [\n table,\n applyPagination,\n getTotalRows,\n isSortable,\n enableRowSelection,\n tableId\n ])\n\n return (\n <DataTableContext.Provider value={value}>\n {children}\n </DataTableContext.Provider>\n )\n}\n\nexport const useDataTable = <T extends Record<string, unknown>>() => {\n const context = React.useContext(DataTableContext) as DataTableContextType<T>\n\n if (!context)\n throw new Error(\n 'useDataTable can only be called from inside a DataTableProvider'\n )\n\n return context\n}\n"],"names":["DataTableContext","React","DataTableProvider","columns","dataProp","getAsyncData","defaultSort","initialState","disabledRows","enableRowSelection","onRowSelectionChange","children","tableId","uuid","data","setData","rowSelection","setRowSelection","expanded","setExpanded","tablePosition","setTablePosition","isPaginated","applyPagination","paginationState","setPaginationState","usePagination","asyncDataState","setAsyncDataState","AsyncDataState","globalFilter","setGlobalFilter","setIsSortable","isSortable","sorting","setSorting","useSortByColumn","runAsyncData","overrideAsyncDataOptions","newData","getNewAsyncData","useDeepCompareEffect","getTotalRows","table","useReactTable","row","updaterOrValue","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","getExpandedRowModel","columnId","filterValue","checkFilterMatchesCell","cellValue","value","useDataTable","context"],"mappings":"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"}
1
+ {"version":3,"file":"DataTableContext.js","sources":["../../../src/components/data-table/DataTableContext.tsx"],"sourcesContent":["import { v4 as uuid } from '@lukeed/uuid'\nimport type {\n ExpandedState,\n OnChangeFn,\n PaginationState,\n Row,\n RowSelectionState\n} from '@tanstack/react-table'\nimport {\n getCoreRowModel,\n getExpandedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\nimport * as React from 'react'\nimport useDeepCompareEffect from 'use-deep-compare-effect'\n\nimport {\n AsyncDataState,\n DataTableContextType,\n InitialState,\n TableData,\n TablePosition,\n TAsyncDataOptions,\n TAsyncDataResult,\n TDefaultSort,\n TGetAsyncData\n} from './DataTable.types'\nimport { getNewAsyncData } from './getNewAsyncData'\nimport { usePagination } from './usePagination'\nimport { useSortByColumn } from './useSorting'\n\nconst DataTableContext =\n React.createContext<DataTableContextType<unknown> | null>(null)\n\ntype DataTableProviderProps = {\n columns\n defaultSort?: TDefaultSort\n children: React.ReactNode\n initialState?: InitialState\n disabledRows?: Record<string, boolean>\n enableRowSelection?: boolean | ((row: Row<unknown>) => boolean)\n onRowSelectionChange?: OnChangeFn<RowSelectionState>\n} & (\n | { data: TableData; getAsyncData?: never }\n | { data?: never; getAsyncData: TGetAsyncData }\n)\n\nexport const DataTableProvider = ({\n columns,\n data: dataProp = [],\n getAsyncData,\n defaultSort,\n initialState = undefined,\n disabledRows,\n enableRowSelection,\n onRowSelectionChange,\n children\n}: DataTableProviderProps): JSX.Element => {\n const tableId = React.useRef(uuid())\n\n const [data, setData] = React.useState<TAsyncDataResult>({\n results: dataProp ?? [],\n total: dataProp?.length ?? 0\n })\n\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n const [expanded, setExpanded] = React.useState<ExpandedState>({})\n\n const [tablePosition, setTablePosition] = React.useState<TablePosition>({\n top: null,\n bottom: null,\n offsetTop: 0,\n isVisible: true\n })\n\n const { isPaginated, applyPagination, paginationState, setPaginationState } =\n usePagination(initialState?.pagination)\n\n const [asyncDataState, setAsyncDataState] = React.useState<AsyncDataState>(\n AsyncDataState.NONE\n )\n\n const [globalFilter, setGlobalFilter] = React.useState<string>('')\n\n const { setIsSortable, isSortable, sorting, setSorting } =\n useSortByColumn(defaultSort)\n\n const runAsyncData = React.useCallback(\n async (overrideAsyncDataOptions: Partial<TAsyncDataOptions>) => {\n if (!getAsyncData) return\n\n try {\n setAsyncDataState(AsyncDataState.PENDING)\n\n const newData = await getNewAsyncData(\n getAsyncData,\n overrideAsyncDataOptions,\n paginationState as PaginationState,\n sorting,\n globalFilter\n )\n\n setData(newData as TAsyncDataResult)\n setAsyncDataState(AsyncDataState.FULFILLED)\n } catch (error) {\n setAsyncDataState(AsyncDataState.REJECTED)\n }\n },\n [\n getAsyncData,\n paginationState?.pageIndex,\n paginationState?.pageSize,\n sorting,\n globalFilter\n ]\n )\n\n React.useEffect(() => {\n runAsyncData({})\n }, [runAsyncData])\n\n useDeepCompareEffect(() => {\n if (!dataProp) return\n\n setData({ results: dataProp, total: dataProp.length })\n }, [dataProp])\n\n const getTotalRows = () => data.total\n\n const table = useReactTable<unknown>({\n columns,\n data: data.results,\n pageCount:\n getAsyncData && paginationState\n ? Math.ceil(getTotalRows() / paginationState.pageSize)\n : -1,\n initialState: initialState,\n state: {\n sorting,\n globalFilter,\n pagination: paginationState,\n rowSelection,\n expanded\n },\n manualPagination: getAsyncData && isPaginated,\n manualSorting: getAsyncData && isPaginated,\n enableSorting: asyncDataState !== AsyncDataState.PENDING,\n enableGlobalFilter: !getAsyncData,\n enableRowSelection,\n onExpandedChange: setExpanded,\n getSubRows: (row: Row<unknown>) => row.subRows,\n onRowSelectionChange: (updaterOrValue) => {\n if (onRowSelectionChange) onRowSelectionChange(updaterOrValue)\n setRowSelection(updaterOrValue)\n },\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: isPaginated ? getPaginationRowModel() : undefined,\n getSortedRowModel:\n isSortable || sorting.length ? getSortedRowModel() : undefined,\n getFilteredRowModel: getFilteredRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n onPaginationChange: isPaginated ? setPaginationState : undefined,\n onSortingChange: setSorting,\n onGlobalFilterChange: setGlobalFilter,\n globalFilterFn: (row, columnId, filterValue) => {\n const checkFilterMatchesCell = (cellValue: string) =>\n cellValue.toLowerCase().includes(filterValue.toLowerCase())\n\n const isSubRow = row.depth > 0\n\n if (isSubRow) return true\n\n const value = row.getValue(columnId)\n switch (typeof value) {\n case 'string':\n return checkFilterMatchesCell(value)\n case 'boolean':\n case 'number':\n return checkFilterMatchesCell(String(value))\n default:\n return false\n }\n }\n })\n\n const value: DataTableContextType = React.useMemo(() => {\n return {\n ...table,\n columns,\n data,\n setData,\n setIsSortable,\n applyPagination,\n getTotalRows,\n isSortable,\n asyncDataState,\n runAsyncData,\n hasAsyncData: !!getAsyncData,\n disabledRows,\n enableRowSelection,\n rowSelection,\n tablePosition,\n setTablePosition,\n tableId: tableId.current\n }\n }, [\n table,\n applyPagination,\n getTotalRows,\n isSortable,\n enableRowSelection,\n tableId,\n getAsyncData\n ])\n\n return (\n <DataTableContext.Provider value={value}>\n {children}\n </DataTableContext.Provider>\n )\n}\n\nexport const useDataTable = <T extends Record<string, unknown>>() => {\n const context = React.useContext(DataTableContext) as DataTableContextType<T>\n\n if (!context)\n throw new Error(\n 'useDataTable can only be called from inside a DataTableProvider'\n )\n\n return context\n}\n"],"names":["DataTableContext","React","DataTableProvider","columns","dataProp","getAsyncData","defaultSort","initialState","disabledRows","enableRowSelection","onRowSelectionChange","children","tableId","uuid","data","setData","rowSelection","setRowSelection","expanded","setExpanded","tablePosition","setTablePosition","isPaginated","applyPagination","paginationState","setPaginationState","usePagination","asyncDataState","setAsyncDataState","AsyncDataState","globalFilter","setGlobalFilter","setIsSortable","isSortable","sorting","setSorting","useSortByColumn","runAsyncData","overrideAsyncDataOptions","newData","getNewAsyncData","useDeepCompareEffect","getTotalRows","table","useReactTable","row","updaterOrValue","getCoreRowModel","getPaginationRowModel","getSortedRowModel","getFilteredRowModel","getExpandedRowModel","columnId","filterValue","checkFilterMatchesCell","cellValue","value","useDataTable","context"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import h from"clsx";import*as t from"react";import{Table as n}from"../table/Table.js";import{DataTableSelectAllRowsCheckbox as D}from"./DataTableSelectAllRowsCheckbox.js";import{useDataTable as N}from"./DataTableContext.js";import{DataTable as A}from"./DataTable.js";const F=({sortable:u=!0,theme:p="light",isSticky:s=!1,stickyOffset:a=0,showTotalInFirstColumn:y,totalSuffix:v,style:E,className:S,...T})=>{var c;const{getHeaderGroups:_,setIsSortable:f,enableRowSelection:w,getCanSomeRowsExpand:R,tablePosition:e,setTablePosition:g}=N();t.useEffect(()=>{f(u)},[u,f]);const o=t.useRef(null),i=t.useRef(null),x=t.useRef(0),[m,C]=t.useState(0),[H,d]=t.useState(!1),b=(c=o==null?void 0:o.current)==null?void 0:c.closest("thead");if(b&&(e==null?void 0:e.offsetTop)===null){const l=b.getBoundingClientRect().height,r=a+l;e&&g({...e,offsetTop:r||0})}return t.useEffect(()=>{if(s&&(!i.current&&o.current&&(i.current=o.current.closest("table")),i.current&&(e==null?void 0:e.top)!==null&&(e==null?void 0:e.bottom)!==null)){const l=(e==null?void 0:e.top)!=null&&(e==null?void 0:e.bottom)!=null&&e.top<a&&e.bottom>100?-e.top+a:0;l!==0&&d(!0),x.current=l,C(l),requestAnimationFrame(()=>{d(!1)})}},[s,a,e]),t.createElement(n.Header,{theme:p,style:{...E,"--header-offset":`${m}px`},...T,className:h("relative","z-3","[&_tr:not(:last-child)>th]:border-b-none","[&_tr:not(:first-child)>th]:rounded-none!",S)},_().map(l=>t.createElement(n.Row,{key:l.id,ref:o,className:s&&m!==0?h("translate-y-(--header-offset)",H?"delay-0ms opacity-0 transition-none":"delay-150ms opacity-100 transition-opacity duration-100","[&_th]:last:before:absolute","[&_th]:last:before:bottom-0","[&_th]:last:before:pointer-events-none","[&_th]:last:before:right-0","[&_th]:last:before:shadow-sm","[&_th]:last:before:top-0","[&_th]:last:before:w-full"):void 0},R()&&t.createElement(n.HeaderCell,{className:"w-10"}),w&&t.createElement(n.HeaderCell,{className:"w-10"},t.createElement(D,null)),l.headers.map((r,k)=>t.createElement(A.HeaderCell,{header:r,key:r.id,includeTotal:k===0&&y,totalSuffix:v})))))};export{F as DataTableHead};
1
+ import h from"clsx";import*as t from"react";import{Table as n}from"../table/Table.js";import{DataTableSelectAllRowsCheckbox as D}from"./DataTableSelectAllRowsCheckbox.js";import{useDataTable as N}from"./DataTableContext.js";import{DataTable as $}from"./DataTable.js";const A=({sortable:u=!0,theme:p="light",isSticky:s=!1,stickyOffset:a=0,showTotalInFirstColumn:y,totalSuffix:v,style:E,className:S,...T})=>{var c;const{getHeaderGroups:_,setIsSortable:f,enableRowSelection:w,getCanSomeRowsExpand:R,tablePosition:e,setTablePosition:g}=N();t.useEffect(()=>{f(u)},[u,f]);const o=t.useRef(null),i=t.useRef(null),x=t.useRef(0),[m,C]=t.useState(0),[H,d]=t.useState(!1),b=(c=o==null?void 0:o.current)==null?void 0:c.closest("thead");if(b&&(e==null?void 0:e.offsetTop)===null){const l=b.getBoundingClientRect().height,r=a+l;e&&g({...e,offsetTop:r||0})}return t.useEffect(()=>{if(s&&(!i.current&&o.current&&(i.current=o.current.closest("table")),i.current&&(e==null?void 0:e.top)!==null&&(e==null?void 0:e.bottom)!==null)){const l=(e==null?void 0:e.top)!=null&&(e==null?void 0:e.bottom)!=null&&e.top<a&&e.bottom>100?-e.top+a:0;l!==0&&d(!0),x.current=l,C(l),requestAnimationFrame(()=>{d(!1)})}},[s,a,e]),t.createElement(n.Header,{theme:p,style:{...E,"--header-offset":`${m}px`},...T,className:h("relative","z-3","[&_tr:not(:last-child)>th]:border-b-none","[&_tr:not(:first-child)>th]:rounded-none!",S)},_().map(l=>t.createElement(n.Row,{key:l.id,ref:o,className:s&&m!==0?h("translate-y-(--header-offset)",H?"delay-0ms opacity-0 transition-none":"delay-150ms opacity-100 transition-opacity duration-100","[&_th]:last:before:absolute","[&_th]:last:before:bottom-0","[&_th]:last:before:pointer-events-none","[&_th]:last:before:right-0","[&_th]:last:before:shadow-sm","[&_th]:last:before:top-0","[&_th]:last:before:w-full"):void 0},R()&&t.createElement(n.HeaderCell,{className:"w-10"}),w&&t.createElement(n.HeaderCell,{className:"w-10"},t.createElement(D,null)),l.headers.map((r,k)=>t.createElement($.HeaderCell,{header:r,key:r.id,includeTotal:k===0&&y,totalSuffix:v})))))};export{A as DataTableHead};
2
2
  //# sourceMappingURL=DataTableHead.js.map
@@ -1,2 +1,2 @@
1
- import{ArrowUp as x,ArrowDown as h}from"@atom-learning/icons";import{flexRender as E}from"@tanstack/react-table";import D from"clsx";import*as o from"react";import{useHover as T}from"react-aria";import{styled as s}from"../../styled.js";import{Flex as c}from"../flex/Flex.js";import{Icon as k}from"../icon/Icon.js";import{Table as C}from"../table/Table.js";import{Text as H}from"../text/Text.js";import{useDataTable as N}from"./DataTableContext.js";const z=s(H,{base:["text-grey-600","whitespace-nowrap","hidden","min-[800px]:block"]}),I=s(C.HeaderCell,{base:[],variants:{isSortable:{true:["*:relative","before:absolute","before:bg-primary-100","before:duration-200","before:ease-in","before:inset-0","before:opacity-0","before:transition-opacity","cursor-pointer","hover:before:opacity-50","relative"]}}}),A={asc:x,desc:h},F=({direction:e})=>o.createElement(k,{is:A[e],size:"sm",className:"stroke-primary-900 absolute left-1"}),K=({header:e,includeTotal:p=!1,totalSuffix:f="items",children:R,className:d,...b})=>{var i,n;const m=e.column.getIsSorted(),{isSortable:t,getRowModel:u}=N(),a=e.column.getCanSort(),g=(n=(i=u())==null?void 0:i.rows)==null?void 0:n.length,{hoverProps:y,isHovered:v}=T({}),S=(r,w)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),w(r))},l=e.column.getToggleSortingHandler();return o.createElement(I,{isSortable:t&&a,colSpan:e.colSpan,onClick:t&&a&&l?l:void 0,onKeyDown:r=>t&&a&&l&&S(r,l),tabIndex:t&&a?0:-1,...y,className:d,...b},o.createElement(c,{align:"center",gap:1,justify:e.colSpan>1?"center":"flex-start"},E(e.column.columnDef.header,e.getContext()),m&&t&&o.createElement(c,{align:"center",className:D("relative","size-6","ml-2",v?"bg-primary-200":"bg-primary-100","rounded-sm")},o.createElement(F,{direction:m})),p&&o.createElement(z,{size:"sm",weight:"normal"},"(",g," ",f,")")))};export{K as DataTableHeaderCell};
1
+ import{ArrowUp as x,ArrowDown as h}from"@atom-learning/icons";import{flexRender as E}from"@tanstack/react-table";import D from"clsx";import*as t from"react";import{useHover as T}from"react-aria";import{styled as s}from"../../styled.js";import{Flex as c}from"../flex/Flex.js";import{Icon as k}from"../icon/Icon.js";import{Table as C}from"../table/Table.js";import{Text as H}from"../text/Text.js";import{useDataTable as N}from"./DataTableContext.js";const z=s(H,{base:["text-grey-600","whitespace-nowrap","hidden","min-[800px]:block"]}),I=s(C.HeaderCell,{base:[],variants:{isSortable:{true:["*:relative","before:absolute","before:bg-primary-100","before:duration-200","before:ease-in","before:inset-0","before:opacity-0","before:transition-opacity","cursor-pointer","hover:before:opacity-50","relative"]}}}),A={asc:x,desc:h},F=({direction:e})=>t.createElement(k,{is:A[e],size:"sm",className:"stroke-primary-900 absolute left-1"}),K=({header:e,includeTotal:p=!1,totalSuffix:f="items",children:R,className:d,...b})=>{var i,n;const m=e.column.getIsSorted(),{isSortable:o,getRowModel:u}=N(),a=e.column.getCanSort(),g=(n=(i=u())==null?void 0:i.rows)==null?void 0:n.length,{hoverProps:y,isHovered:v}=T({}),S=(r,w)=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),w(r))},l=e.column.getToggleSortingHandler();return t.createElement(I,{isSortable:o&&a,colSpan:e.colSpan,onClick:o&&a&&l?l:void 0,onKeyDown:r=>o&&a&&l&&S(r,l),tabIndex:o&&a?0:-1,...y,className:d,...b},t.createElement(c,{align:"center",gap:1,justify:e.colSpan>1?"center":"flex-start"},E(e.column.columnDef.header,e.getContext()),m&&o&&t.createElement(c,{align:"center",className:D("relative","size-6","ml-2",v?"bg-primary-200":"bg-primary-100","rounded-sm")},t.createElement(F,{direction:m})),p&&t.createElement(z,{size:"sm",weight:"normal"},"(",g," ",f,")")))};export{K as DataTableHeaderCell};
2
2
  //# sourceMappingURL=DataTableHeaderCell.js.map
@@ -1,2 +1,2 @@
1
- import{arrayMove as T}from"@dnd-kit/sortable";import E from"clsx";import*as t from"react";import{Sortable as I}from"../../sortable/index.js";import{Table as g}from"../../table/Table.js";import{DataTable as x}from"../DataTable.js";import{AsyncDataState as A}from"../DataTable.types.js";import{useDataTable as C}from"../DataTableContext.js";import{DataTableLoading as N}from"../DataTableLoading.js";import{DragAndDropTableBody as S}from"./DragAndDropTableBody.js";const h=({idColumn:r="id",onDragAndDrop:o,sortable:m,striped:s,theme:i,className:d,...p})=>{const{asyncDataState:c,data:e,setData:D}=C(),u=c===A.PENDING,b=t.useMemo(()=>e.results.map(a=>a[r]),[e]),f=t.useCallback(({oldIndex:a,newIndex:l})=>{const n=T(e.results,a,l),y={results:n,total:e.total};D({results:n,total:e.total}),o==null||o({oldIndex:a,newIndex:l,newData:y})},[e,o]);return t.createElement(I.Root,{onSortChange:f,sortableIds:b},t.createElement(N,null),t.createElement(g,{...p,className:E(d,u&&["opacity-50","pointer-events-none","transition-opacity,duration-250,linear,delay-150"])},t.createElement(x.Head,{theme:i,sortable:m}),t.createElement(S,{striped:s,idColumn:r})))};export{h as DragAndDropTable};
1
+ import{arrayMove as T}from"@dnd-kit/sortable";import E from"clsx";import*as e from"react";import{Sortable as I}from"../../sortable/index.js";import{Table as g}from"../../table/Table.js";import{DataTable as x}from"../DataTable.js";import{AsyncDataState as A}from"../DataTable.types.js";import{useDataTable as C}from"../DataTableContext.js";import{DataTableLoading as N}from"../DataTableLoading.js";import{DragAndDropTableBody as S}from"./DragAndDropTableBody.js";const h=({idColumn:r="id",onDragAndDrop:o,sortable:m,striped:s,theme:i,className:d,...p})=>{const{asyncDataState:c,data:t,setData:D}=C(),u=c===A.PENDING,b=e.useMemo(()=>t.results.map(a=>a[r]),[t]),f=e.useCallback(({oldIndex:a,newIndex:l})=>{const n=T(t.results,a,l),y={results:n,total:t.total};D({results:n,total:t.total}),o==null||o({oldIndex:a,newIndex:l,newData:y})},[t,o]);return e.createElement(I.Root,{onSortChange:f,sortableIds:b},e.createElement(N,null),e.createElement(g,{...p,className:E(d,u&&["opacity-50","pointer-events-none","transition-opacity,duration-250,linear,delay-150"])},e.createElement(x.Head,{theme:i,sortable:m}),e.createElement(S,{striped:s,idColumn:r})))};export{h as DragAndDropTable};
2
2
  //# sourceMappingURL=DragAndDropTable.js.map
@@ -1,2 +1,2 @@
1
- import*as e from"react";import{styled as S}from"../../../styled.js";import{Pagination as w}from"../../pagination/Pagination.js";import{Text as y}from"../../text/Text.js";import{AsyncDataState as E}from"../DataTable.types.js";import{useDataTable as $}from"../DataTableContext.js";const b=S("nav",{base:["flex","flex-col","justify-between","items-center","tabular-nums","flex-wrap","w-full","gap-4","mt-4","md:flex-row"]}),i=({colorScheme:l,...m})=>{const{applyPagination:a,getState:s,getRowModel:g,getPageCount:o,setPageIndex:c,getTotalRows:n,asyncDataState:p}=$();e.useEffect(()=>{a()},[a]);const{pagination:t}=s(),f=p!==E.PENDING&&n()===0,u=o()>1;if(f||!u)return null;const r=t.pageIndex*t.pageSize+1,P=r+g().rows.length-1,d=x=>{c(x-1)};return e.createElement(b,{...m},e.createElement(y,{size:"sm"},`${r.toString()} - ${P.toString()} of ${n()} items`),e.createElement(w,{colorScheme:l,selectedPage:t.pageIndex+1,pagesCount:o(),onSelectedPageChange:d}))};i.displayName="Pagination";export{i as Pagination};
1
+ import*as n from"react";import{styled as E}from"../../../styled.js";import{Pagination as z}from"../../pagination/Pagination.js";import{Text as M}from"../../text/Text.js";import{AsyncDataState as $}from"../DataTable.types.js";import{useDataTable as b}from"../DataTableContext.js";const I=E("nav",{base:["flex","flex-col","justify-between","items-center","tabular-nums","flex-wrap","w-full","gap-4","mt-4","md:flex-row"]}),m=({colorScheme:c,...p})=>{const{applyPagination:i,getState:f,getExpandedRowModel:r,getRowModel:d,setPageIndex:u,getTotalRows:s,getPageCount:l,asyncDataState:h,hasAsyncData:t}=b();n.useEffect(()=>{i()},[i]);const{pagination:e}=f(),w=h!==$.PENDING&&s()===0,x=t?l()>1:r().rows.length/e.pageSize>1;if(w||!x)return null;const a=r().rows.length,o=a===0?0:e.pageIndex*e.pageSize+1,g=d().rows.length,P=t?g===0?o:o+g-1:Math.min(o+e.pageSize-1,a),S=D=>{u(D-1)},y=t?l():Math.max(1,Math.ceil(a/e.pageSize));return n.createElement(I,{...p},n.createElement(M,{size:"sm"},`${o} - ${P} of ${t?s():a} items`),n.createElement(z,{colorScheme:c,selectedPage:e.pageIndex+1,pagesCount:y,onSelectedPageChange:S}))};m.displayName="Pagination";export{m as Pagination};
2
2
  //# sourceMappingURL=Pagination.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sources":["../../../../src/components/data-table/pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/styled'\n\nimport { TcolorScheme } from '../../../experiments/color-scheme'\nimport { Pagination as PaginationComponent } from '../../pagination'\nimport { Text } from '../../text'\nimport { AsyncDataState } from '../DataTable.types'\nimport { useDataTable } from '../DataTableContext'\n\nconst StyledNav = styled('nav', {\n base: [\n 'flex',\n 'flex-col',\n 'justify-between',\n 'items-center',\n 'tabular-nums',\n 'flex-wrap',\n 'w-full',\n 'gap-4',\n 'mt-4',\n 'md:flex-row'\n ]\n})\n\ntype PaginationProps = React.ComponentProps<typeof StyledNav> & {\n colorScheme?: TcolorScheme\n}\n\n/** Applies pagination to parent DataTableProvider and renders UI to switch pages etc */\nexport const Pagination = ({ colorScheme, ...props }: PaginationProps) => {\n const {\n applyPagination,\n getState,\n getRowModel,\n getPageCount,\n setPageIndex,\n getTotalRows,\n asyncDataState\n } = useDataTable()\n\n React.useEffect(() => {\n applyPagination()\n }, [applyPagination])\n\n const { pagination: paginationState } = getState()\n const isPending = asyncDataState === AsyncDataState.PENDING\n const isEmpty = !isPending && getTotalRows() === 0\n\n // Show pagination only if total pages are more than 1\n const showPagination = getPageCount() > 1\n\n if (isEmpty || !showPagination) return null\n\n const recordsCountFrom =\n paginationState.pageIndex * paginationState.pageSize + 1\n const recordsCountTo = recordsCountFrom + getRowModel().rows.length - 1\n\n //indexing for the pagination component is 1 based\n const setPage = (index: number) => {\n setPageIndex(index - 1)\n }\n\n return (\n <StyledNav {...props}>\n <Text size=\"sm\">\n {`${recordsCountFrom.toString()} - ${recordsCountTo.toString()} of ${getTotalRows()} items`}\n </Text>\n <PaginationComponent\n colorScheme={colorScheme}\n selectedPage={paginationState.pageIndex + 1}\n pagesCount={getPageCount()}\n onSelectedPageChange={setPage}\n />\n </StyledNav>\n )\n}\n\nPagination.displayName = 'Pagination'\n"],"names":["StyledNav","styled","Pagination","colorScheme","props","applyPagination","getState","getRowModel","getPageCount","setPageIndex","getTotalRows","asyncDataState","useDataTable","React","paginationState","isEmpty","AsyncDataState","showPagination","recordsCountFrom","recordsCountTo","setPage","index","Text","PaginationComponent"],"mappings":"uRAUA,MAAMA,EAAYC,EAAO,MAAO,CAC9B,KAAM,CACJ,OACA,WACA,kBACA,eACA,eACA,YACA,SACA,QACA,OACA,aACF,CACF,CAAC,EAOYC,EAAa,CAAC,CAAE,YAAAC,EAAa,GAAGC,CAAM,IAAuB,CACxE,KAAM,CACJ,gBAAAC,EACA,SAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,CACF,EAAIC,EAEJC,EAAAA,EAAM,UAAU,IAAM,CACpBR,GACF,EAAG,CAACA,CAAe,CAAC,EAEpB,KAAM,CAAE,WAAYS,CAAgB,EAAIR,EAAS,EAE3CS,EADYJ,IAAmBK,EAAe,SACtBN,EAAAA,IAAmB,EAG3CO,EAAiBT,EAAa,EAAI,EAExC,GAAIO,GAAW,CAACE,EAAgB,OAAO,KAEvC,MAAMC,EACJJ,EAAgB,UAAYA,EAAgB,SAAW,EACnDK,EAAiBD,EAAmBX,IAAc,KAAK,OAAS,EAGhEa,EAAWC,GAAkB,CACjCZ,EAAaY,EAAQ,CAAC,CACxB,EAEA,OACER,EAAA,cAACb,EAAA,CAAW,GAAGI,CAAAA,EACbS,EAAA,cAACS,EAAA,CAAK,KAAK,IAAA,EACR,GAAGJ,EAAiB,UAAU,MAAMC,EAAe,SAAU,CAAA,OAAOT,EAAa,CAAC,QACrF,EACAG,EAAA,cAACU,EAAA,CACC,YAAapB,EACb,aAAcW,EAAgB,UAAY,EAC1C,WAAYN,IACZ,qBAAsBY,CAAAA,CACxB,CACF,CAEJ,EAEAlB,EAAW,YAAc"}
1
+ {"version":3,"file":"Pagination.js","sources":["../../../../src/components/data-table/pagination/Pagination.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { styled } from '~/styled'\n\nimport { TcolorScheme } from '../../../experiments/color-scheme'\nimport { Pagination as PaginationComponent } from '../../pagination'\nimport { Text } from '../../text'\nimport { AsyncDataState } from '../DataTable.types'\nimport { useDataTable } from '../DataTableContext'\n\nconst StyledNav = styled('nav', {\n base: [\n 'flex',\n 'flex-col',\n 'justify-between',\n 'items-center',\n 'tabular-nums',\n 'flex-wrap',\n 'w-full',\n 'gap-4',\n 'mt-4',\n 'md:flex-row'\n ]\n})\n\ntype PaginationProps = React.ComponentProps<typeof StyledNav> & {\n colorScheme?: TcolorScheme\n}\n\n/** Applies pagination to parent DataTableProvider and renders UI to switch pages etc */\nexport const Pagination = ({ colorScheme, ...props }: PaginationProps) => {\n const {\n applyPagination,\n getState,\n getExpandedRowModel,\n getRowModel,\n setPageIndex,\n getTotalRows,\n getPageCount,\n asyncDataState,\n hasAsyncData\n } = useDataTable()\n\n React.useEffect(() => {\n applyPagination()\n }, [applyPagination])\n\n const { pagination: paginationState } = getState()\n const isPending = asyncDataState === AsyncDataState.PENDING\n const isEmpty = !isPending && getTotalRows() === 0\n // Show pagination only if total pages are more than 1\n const showPagination = hasAsyncData\n ? getPageCount() > 1\n : getExpandedRowModel().rows.length / paginationState.pageSize > 1\n\n if (isEmpty || !showPagination) return null\n const totalVisibleRows = getExpandedRowModel().rows.length\n\n const start =\n totalVisibleRows === 0\n ? 0\n : paginationState.pageIndex * paginationState.pageSize + 1\n\n const asyncRowCount = getRowModel().rows.length\n const end = hasAsyncData\n ? asyncRowCount === 0\n ? start\n : start + asyncRowCount - 1\n : Math.min(start + paginationState.pageSize - 1, totalVisibleRows)\n\n // indexing for the pagination component is 1 based\n const setPage = (index: number) => {\n setPageIndex(index - 1)\n }\n\n const pageCount = hasAsyncData\n ? getPageCount()\n : Math.max(1, Math.ceil(totalVisibleRows / paginationState.pageSize))\n\n return (\n <StyledNav {...props}>\n <Text size=\"sm\">{`${start} - ${end} of ${\n hasAsyncData ? getTotalRows() : totalVisibleRows\n } items`}</Text>\n <PaginationComponent\n colorScheme={colorScheme}\n selectedPage={paginationState.pageIndex + 1}\n pagesCount={pageCount}\n onSelectedPageChange={setPage}\n />\n </StyledNav>\n )\n}\n\nPagination.displayName = 'Pagination'\n"],"names":["StyledNav","styled","Pagination","colorScheme","props","applyPagination","getState","getExpandedRowModel","getRowModel","setPageIndex","getTotalRows","getPageCount","asyncDataState","hasAsyncData","useDataTable","React","paginationState","isEmpty","AsyncDataState","showPagination","totalVisibleRows","start","asyncRowCount","end","setPage","index","pageCount","Text","PaginationComponent"],"mappings":"uRAUA,MAAMA,EAAYC,EAAO,MAAO,CAC9B,KAAM,CACJ,OACA,WACA,kBACA,eACA,eACA,YACA,SACA,QACA,OACA,aACF,CACF,CAAC,EAOYC,EAAa,CAAC,CAAE,YAAAC,EAAa,GAAGC,CAAM,IAAuB,CACxE,KAAM,CACJ,gBAAAC,EACA,SAAAC,EACA,oBAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,eAAAC,EACA,aAAAC,CACF,EAAIC,IAEJC,EAAM,UAAU,IAAM,CACpBV,EAAgB,CAClB,EAAG,CAACA,CAAe,CAAC,EAEpB,KAAM,CAAE,WAAYW,CAAgB,EAAIV,EAAS,EAE3CW,EADYL,IAAmBM,EAAe,SACtBR,MAAmB,EAE3CS,EAAiBN,EACnBF,EAAa,EAAI,EACjBJ,EAAsB,EAAA,KAAK,OAASS,EAAgB,SAAW,EAEnE,GAAIC,GAAW,CAACE,EAAgB,OAAO,KACvC,MAAMC,EAAmBb,EAAoB,EAAE,KAAK,OAE9Cc,EACJD,IAAqB,EACjB,EACAJ,EAAgB,UAAYA,EAAgB,SAAW,EAEvDM,EAAgBd,EAAY,EAAE,KAAK,OACnCe,EAAMV,EACRS,IAAkB,EAChBD,EACAA,EAAQC,EAAgB,EAC1B,KAAK,IAAID,EAAQL,EAAgB,SAAW,EAAGI,CAAgB,EAG7DI,EAAWC,GAAkB,CACjChB,EAAagB,EAAQ,CAAC,CACxB,EAEMC,EAAYb,EACdF,EACA,EAAA,KAAK,IAAI,EAAG,KAAK,KAAKS,EAAmBJ,EAAgB,QAAQ,CAAC,EAEtE,OACED,EAAA,cAACf,EAAA,CAAW,GAAGI,CAAAA,EACbW,EAAA,cAACY,EAAA,CAAK,KAAK,IAAM,EAAA,GAAGN,CAAK,MAAME,CAAG,OAChCV,EAAeH,EAAa,EAAIU,CAClC,QAAS,EACTL,EAAA,cAACa,EAAA,CACC,YAAazB,EACb,aAAca,EAAgB,UAAY,EAC1C,WAAYU,EACZ,qBAAsBF,EACxB,CACF,CAEJ,EAEAtB,EAAW,YAAc"}
@@ -13,8 +13,8 @@ export declare const Dialog: import("react").FC<import("@radix-ui/react-dialog")
13
13
  closeDialogText?: string;
14
14
  showCloseButton?: boolean;
15
15
  }) => import("react").JSX.Element;
16
- Heading: ({ className, ...rest }: React.ComponentProps<typeof import("..").Heading>) => import("react").JSX.Element;
17
- Footer: ({ className, ...rest }: React.ComponentProps<typeof import("..").Flex>) => import("react").JSX.Element;
16
+ Heading: ({ className, ...rest }: import("react").ComponentProps<typeof import("..").Heading>) => import("react").JSX.Element;
17
+ Footer: ({ className, ...rest }: import("react").ComponentProps<typeof import("..").Flex>) => import("react").JSX.Element;
18
18
  Description: import("react").ForwardRefExoticComponent<import("@radix-ui/react-dialog").DialogDescriptionProps & import("react").RefAttributes<HTMLParagraphElement>>;
19
19
  Title: import("react").ForwardRefExoticComponent<import("@radix-ui/react-dialog").DialogTitleProps & import("react").RefAttributes<HTMLHeadingElement>>;
20
20
  Trigger: import("react").ForwardRefExoticComponent<import("@radix-ui/react-dialog").DialogTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -1,2 +1,2 @@
1
- import t from"clsx";import*as m from"react";import{Flex as r}from"../flex/Flex.js";const a=({className:o,...e})=>m.createElement(r,{justify:"end",gap:3,...e,className:t("pt-4",o)});export{a as DialogFooter};
1
+ import t from"clsx";import*as m from"react";import{Flex as r}from"../flex/Flex.js";const a=({className:e,...o})=>m.createElement(r,{justify:"end",gap:3,...o,className:t("pt-4",e)});export{a as DialogFooter};
2
2
  //# sourceMappingURL=DialogFooter.js.map
@@ -1,6 +1,6 @@
1
1
  export declare const Dismissible: {
2
- ({ disabled, dismissed, onDismiss, ...rest }: React.PropsWithChildren<import("./DismissibleRoot").IDismissibleRootInternalProps & import("./DismissibleRoot").IDismissibleRootProps>): import("react").JSX.Element;
2
+ ({ disabled, dismissed, onDismiss, ...rest }: import("react").PropsWithChildren<import("./DismissibleRoot").IDismissibleRootInternalProps & import("./DismissibleRoot").IDismissibleRootProps>): import("react").JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
- Trigger: ({ asChild, ...rest }: React.PropsWithChildren<import("./DismissibleTrigger").IDismissibleTriggerProps>) => import("react").JSX.Element;
5
+ Trigger: ({ asChild, ...rest }: import("react").PropsWithChildren<import("./DismissibleTrigger").IDismissibleTriggerProps>) => import("react").JSX.Element;
6
6
  };
@@ -1,7 +1,7 @@
1
1
  export declare const DismissibleGroup: {
2
- ({ as: Component, disabled, onDismiss, ...rest }: React.PropsWithChildren<import("./DismissibleGroupRoot").IDismissibleGroupRootProps>): import("react").JSX.Element;
2
+ ({ as: Component, disabled, onDismiss, ...rest }: import("react").PropsWithChildren<import("./DismissibleGroupRoot").IDismissibleGroupRootProps>): import("react").JSX.Element;
3
3
  displayName: string;
4
4
  } & {
5
- Item: ({ children, value, disabled: itemDisabled, ...rest }: React.PropsWithChildren<import("./DismissibleGroupItem").TDismissibleGroupItemProps>) => import("react").JSX.Element;
6
- Trigger: ({ asChild, ...rest }: React.PropsWithChildren<import("../../components/dismissible/DismissibleTrigger").IDismissibleTriggerProps>) => import("react").JSX.Element;
5
+ Item: ({ children, value, disabled: itemDisabled, ...rest }: import("react").PropsWithChildren<import("./DismissibleGroupItem").TDismissibleGroupItemProps>) => import("react").JSX.Element;
6
+ Trigger: ({ asChild, ...rest }: import("react").PropsWithChildren<import("../../components/dismissible/DismissibleTrigger").IDismissibleTriggerProps>) => import("react").JSX.Element;
7
7
  };
@@ -64,6 +64,7 @@ export { SelectField } from './select-field';
64
64
  export { SideBar, useSidebarState } from './side-bar';
65
65
  export { Slider } from './slider';
66
66
  export { SliderField } from './slider-field';
67
+ export * as Skeleton from './skeleton-loader';
67
68
  export { Sortable } from './sortable';
68
69
  export { Spacer } from './spacer';
69
70
  export { Stepper } from './stepper';
@@ -3,7 +3,7 @@ export declare const KeyboardShortcut: import("react").ForwardRefExoticComponent
3
3
  config: {
4
4
  shortcut: Partial<KeyboardEvent>;
5
5
  action: ({ event, shortcut }: {
6
- event: KeyboardEvent | React.KeyboardEvent<HTMLDivElement>;
6
+ event: KeyboardEvent | import("react").KeyboardEvent<HTMLDivElement>;
7
7
  shortcut: Partial<KeyboardEvent>;
8
8
  }) => void;
9
9
  }[];
@@ -21,7 +21,7 @@ export declare const KeyboardShortcut: import("react").ForwardRefExoticComponent
21
21
  } & {
22
22
  as?: import("react").ElementType;
23
23
  }, "as"> & {
24
- as?: "blockquote" | "caption" | "dd" | "dt" | "figcaption" | "li" | "p" | "span" | "legend" | React.ComponentType | React.ElementType;
24
+ as?: "blockquote" | "caption" | "dd" | "dt" | "figcaption" | "li" | "p" | "span" | "legend" | import("react").ComponentType | import("react").ElementType;
25
25
  }, "ref"> & import("react").RefAttributes<HTMLParagraphElement>, never> & {
26
26
  as?: import("react").ElementType;
27
27
  }): import("react").JSX.Element;
@@ -1,2 +1,2 @@
1
- import*as o from"@radix-ui/react-visually-hidden";import s from"clsx";import*as e from"react";import{Flex as n}from"../flex/Flex.js";import{styled as l}from"../../styled.js";const a=l("div",{base:["animate-pulse","bg-current","rounded-full","animation-duration-900","nth-3:animation-delay-300","nth-4:animation-delay-600"],variants:{size:{sm:["size-1","mx-0.5"],md:["size-1.5","mx-0.5"],lg:["size-2","mx-[3px]"]}}}),c=({className:m,message:i="Loading",size:t="md",...r})=>e.createElement(n,{role:"alert",...r,className:s("justify-center",m)},e.createElement(o.Root,null,i),e.createElement(a,{size:t}),e.createElement(a,{size:t}),e.createElement(a,{size:t}));export{c as Loader};
1
+ import*as s from"@radix-ui/react-visually-hidden";import n from"clsx";import*as e from"react";import{Flex as o}from"../flex/Flex.js";import{styled as l}from"../../styled.js";const a=l("div",{base:["animate-pulse","bg-current","rounded-full","animation-duration-900","nth-3:animation-delay-300","nth-4:animation-delay-600"],variants:{size:{sm:["size-1","mx-0.5"],md:["size-1.5","mx-0.5"],lg:["size-2","mx-[3px]"]}}}),c=({className:m,message:i="Loading",size:t="md",...r})=>e.createElement(o,{role:"alert",...r,className:n("justify-center",m)},e.createElement(s.Root,null,i),e.createElement(a,{size:t}),e.createElement(a,{size:t}),e.createElement(a,{size:t}));export{c as Loader};
2
2
  //# sourceMappingURL=Loader.js.map
@@ -1,2 +1,2 @@
1
- import r from"clsx";import*as m from"react";import{Divider as o}from"../../divider/Divider.js";const a=({className:e})=>m.createElement(o,{className:r("w-full",e)});export{a as MarkdownThematicBreak};
1
+ import r from"clsx";import*as m from"react";import{Divider as a}from"../../divider/Divider.js";const o=({className:e})=>m.createElement(a,{className:r("w-full",e)});export{o as MarkdownThematicBreak};
2
2
  //# sourceMappingURL=MarkdownThematicBreak.js.map