@mage-ui/components 1.0.68 → 1.0.70

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 (110) hide show
  1. package/dist/components/controls/checkbox/Checkbox.d.mts +1 -1
  2. package/dist/components/controls/checkbox/Checkbox.d.mts.map +1 -1
  3. package/dist/components/controls/checkbox/Checkbox.mjs +1 -1
  4. package/dist/components/controls/checkbox/Checkbox.mjs.map +1 -1
  5. package/dist/components/controls/dropdown/Dropdown.d.mts +2 -0
  6. package/dist/components/controls/dropdown/Dropdown.d.mts.map +1 -1
  7. package/dist/components/controls/dropdown/Dropdown.mjs +1 -1
  8. package/dist/components/controls/dropdown/Dropdown.mjs.map +1 -1
  9. package/dist/components/controls/dropdown/DropdownContextProvider.d.mts +2 -0
  10. package/dist/components/controls/dropdown/DropdownContextProvider.d.mts.map +1 -1
  11. package/dist/components/controls/dropdown/DropdownContextProvider.mjs +1 -1
  12. package/dist/components/controls/dropdown/DropdownContextProvider.mjs.map +1 -1
  13. package/dist/components/controls/dropdown/combobox/ComboboxOptions.mjs +1 -1
  14. package/dist/components/controls/dropdown/combobox/ComboboxOptions.mjs.map +1 -1
  15. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.d.mts +64 -0
  16. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.d.mts.map +1 -0
  17. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.mjs +2 -0
  18. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.mjs.map +1 -0
  19. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBody.mjs +2 -0
  20. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBody.mjs.map +1 -0
  21. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBulkBar.mjs +2 -0
  22. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBulkBar.mjs.map +1 -0
  23. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableColumns.mjs +2 -0
  24. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableColumns.mjs.map +1 -0
  25. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableHeader.mjs +2 -0
  26. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableHeader.mjs.map +1 -0
  27. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.d.mts +20 -0
  28. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.d.mts.map +1 -0
  29. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.mjs +2 -0
  30. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.mjs.map +1 -0
  31. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableRootContainer.mjs +2 -0
  32. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableRootContainer.mjs.map +1 -0
  33. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.d.mts +24 -0
  34. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.d.mts.map +1 -0
  35. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.mjs +2 -0
  36. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.mjs.map +1 -0
  37. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableViewport.mjs +2 -0
  38. package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableViewport.mjs.map +1 -0
  39. package/dist/components/data-display/datatables/datatable-stateless/index.d.mts +6 -0
  40. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTable.mjs +2 -0
  41. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTable.mjs.map +1 -0
  42. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.d.mts +21 -0
  43. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.d.mts.map +1 -0
  44. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.mjs +2 -0
  45. package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.mjs.map +1 -0
  46. package/dist/components/data-display/datatables/index.d.mts +5 -0
  47. package/dist/components/data-display/icons/icon/Icon.mjs +1 -1
  48. package/dist/components/data-display/icons/icon/Icon.mjs.map +1 -1
  49. package/dist/components/data-display/icons/icon-raw/IconRaw.mjs +1 -1
  50. package/dist/components/data-display/icons/icon-raw/IconRaw.mjs.map +1 -1
  51. package/dist/components/data-display/icons/icon-svg/IconSvg.mjs +1 -1
  52. package/dist/components/data-display/icons/icon-svg/IconSvg.mjs.map +1 -1
  53. package/dist/components/data-display/index.d.mts +15 -9
  54. package/dist/components/data-display/kanban/Kanban.d.mts +5 -1
  55. package/dist/components/data-display/kanban/Kanban.d.mts.map +1 -1
  56. package/dist/components/data-display/kanban/Kanban.mjs +1 -1
  57. package/dist/components/data-display/kanban/Kanban.mjs.map +1 -1
  58. package/dist/components/data-display/kanban/KanbanCard.d.mts +4 -0
  59. package/dist/components/data-display/kanban/KanbanCard.d.mts.map +1 -1
  60. package/dist/components/data-display/kanban/KanbanCard.mjs +1 -1
  61. package/dist/components/data-display/kanban/KanbanCard.mjs.map +1 -1
  62. package/dist/components/data-display/kanban/KanbanCardAdder.mjs +1 -1
  63. package/dist/components/data-display/kanban/kanbanUtils.mjs +1 -1
  64. package/dist/components/data-display/kanban/kanbanUtils.mjs.map +1 -1
  65. package/dist/components/data-display/table/Table.d.mts +1 -1
  66. package/dist/components/data-display/table/Table.mjs.map +1 -1
  67. package/dist/components/data-display/table/TableBody.d.mts +3 -3
  68. package/dist/components/data-display/table/TableBody.d.mts.map +1 -1
  69. package/dist/components/data-display/table/TableBody.mjs +1 -1
  70. package/dist/components/data-display/table/TableBody.mjs.map +1 -1
  71. package/dist/components/data-display/table/TableCaption.d.mts +3 -3
  72. package/dist/components/data-display/table/TableCaption.d.mts.map +1 -1
  73. package/dist/components/data-display/table/TableCaption.mjs.map +1 -1
  74. package/dist/components/data-display/table/TableCell.d.mts +3 -4
  75. package/dist/components/data-display/table/TableCell.d.mts.map +1 -1
  76. package/dist/components/data-display/table/TableCell.mjs.map +1 -1
  77. package/dist/components/data-display/table/TableFoot.d.mts +3 -3
  78. package/dist/components/data-display/table/TableFoot.d.mts.map +1 -1
  79. package/dist/components/data-display/table/TableFoot.mjs.map +1 -1
  80. package/dist/components/data-display/table/TableHead.d.mts +3 -3
  81. package/dist/components/data-display/table/TableHead.d.mts.map +1 -1
  82. package/dist/components/data-display/table/TableHead.mjs.map +1 -1
  83. package/dist/components/data-display/table/TableHeaderCell.d.mts +3 -3
  84. package/dist/components/data-display/table/TableHeaderCell.d.mts.map +1 -1
  85. package/dist/components/data-display/table/TableHeaderCell.mjs.map +1 -1
  86. package/dist/components/data-display/table/{TableTypes.d.mts → TableRoot.d.mts} +4 -4
  87. package/dist/components/data-display/table/TableRoot.d.mts.map +1 -0
  88. package/dist/components/data-display/table/TableRoot.mjs.map +1 -1
  89. package/dist/components/data-display/table/TableRow.d.mts +3 -3
  90. package/dist/components/data-display/table/TableRow.d.mts.map +1 -1
  91. package/dist/components/data-display/table/TableRow.mjs.map +1 -1
  92. package/dist/components/index.d.mts +15 -9
  93. package/dist/components/misc/scroll-area/ScrollArea.d.mts +1 -1
  94. package/dist/components/misc/scroll-area/ScrollArea.d.mts.map +1 -1
  95. package/dist/components/misc/scroll-area/ScrollArea.mjs.map +1 -1
  96. package/dist/components/misc/virtual/Virtual.d.mts +2 -1
  97. package/dist/components/misc/virtual/Virtual.d.mts.map +1 -1
  98. package/dist/components/misc/virtual/Virtual.mjs +1 -1
  99. package/dist/components/misc/virtual/Virtual.mjs.map +1 -1
  100. package/dist/components/navigations/index.d.mts +1 -0
  101. package/dist/components/navigations/pagination/Pagination.d.mts +35 -0
  102. package/dist/components/navigations/pagination/Pagination.d.mts.map +1 -0
  103. package/dist/components/navigations/pagination/Pagination.mjs +2 -0
  104. package/dist/components/navigations/pagination/Pagination.mjs.map +1 -0
  105. package/dist/hooks/useElementOuterSize.mjs +2 -0
  106. package/dist/hooks/useElementOuterSize.mjs.map +1 -0
  107. package/dist/index.d.mts +16 -10
  108. package/dist/index.mjs +1 -1
  109. package/package.json +4 -3
  110. package/dist/components/data-display/table/TableTypes.d.mts.map +0 -1
@@ -3,6 +3,7 @@ import { ComponentProps, ReactNode } from "react";
3
3
 
4
4
  //#region src/components/controls/checkbox/Checkbox.d.ts
5
5
  type CheckboxProps = Omit<ComponentProps<'input'>, 'size' | 'children'> & {
6
+ indeterminate?: boolean;
6
7
  label?: ReactNode;
7
8
  error?: string;
8
9
  classNames?: {
@@ -28,7 +29,6 @@ declare const Checkbox: {
28
29
  hiddenLabel,
29
30
  error,
30
31
  required,
31
- value,
32
32
  ...props
33
33
  }: CheckboxProps): ReactNode;
34
34
  displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.mts","names":[],"sources":["../../../../src/components/controls/checkbox/Checkbox.tsx"],"mappings":";;;;KAsBY,aAAA,GAAgB,IAAA,CAC1B,cAAA;EAGA,KAAA,GAAQ,SAAA;EACR,KAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,KAAA;IACA,IAAA;IACA,KAAA;IACA,IAAA;IACA,SAAA;IACA,YAAA;IACA,aAAA;IACA,KAAA;IACA,WAAA;IACA,KAAA;EAAA;EAEF,WAAA;AAAA;AAAA,cAGW,QAAA;EAAA;;;;;;;;KAQV,aAAA,GAAgB,SAAA"}
1
+ {"version":3,"file":"Checkbox.d.mts","names":[],"sources":["../../../../src/components/controls/checkbox/Checkbox.tsx"],"mappings":";;;;KAsBY,aAAA,GAAgB,IAAA,CAC1B,cAAA;EAGA,aAAA;EACA,KAAA,GAAQ,SAAA;EACR,KAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,KAAA;IACA,IAAA;IACA,KAAA;IACA,IAAA;IACA,SAAA;IACA,YAAA;IACA,aAAA;IACA,KAAA;IACA,WAAA;IACA,KAAA;EAAA;EAEF,WAAA;AAAA;AAAA,cAGW,QAAA;EAAA;;;;;;;KAOV,aAAA,GAAgB,SAAA"}
@@ -1,2 +1,2 @@
1
- import{CheckboxGroup as e}from"../checkbox-group/CheckboxGroup.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{checkbox as n,checkboxBody as r,checkboxBodyError as i,checkboxDescription as a,checkboxError as o,checkboxIcon as s,checkboxInner as c,checkboxInput as l,checkboxLabel as u,checkboxLabelRequired as d,checkboxLabelWrapper as f,checkboxRoot as p}from"@mage-ui/styled-system/recipes";import{Checkbox as m}from"@mantine/core";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{visuallyHidden as v}from"@mage-ui/styled-system/patterns";const y=({classNames:e,label:y,hiddenLabel:b,error:x,required:S,value:C,...w})=>g(m,{classNames:{root:t(e?.checkbox??n(),e?.root??p()),input:t(e?.input??l(),`peer`),icon:e?.icon??s(),inner:e?.inner??c(),body:t(e?.body??r(),x&&(e?.bodyError??i())),labelWrapper:e?.labelWrapper??f(),label:t(e?.label??u(),b&&v()),description:e?.description??a(),error:e?.error??o()},label:_(h,{children:[y,g(()=>S?_(`span`,{className:e?.labelRequired??d(),children:[` `,`*`]}):null,{})]}),checked:!!C,...w});y.displayName=`Checkbox`,y.Group=e;export{y as Checkbox};
1
+ import{CheckboxGroup as e}from"../checkbox-group/CheckboxGroup.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{checkbox as n,checkboxBody as r,checkboxBodyError as i,checkboxDescription as a,checkboxError as o,checkboxIcon as s,checkboxInner as c,checkboxInput as l,checkboxLabel as u,checkboxLabelRequired as d,checkboxLabelWrapper as f,checkboxRoot as p}from"@mage-ui/styled-system/recipes";import{Checkbox as m}from"@mantine/core";import{Fragment as h,jsx as g,jsxs as _}from"react/jsx-runtime";import{visuallyHidden as v}from"@mage-ui/styled-system/patterns";const y=({classNames:e,label:y,hiddenLabel:b,error:x,required:S,...C})=>g(m,{classNames:{root:t(e?.checkbox??n(),e?.root??p()),input:t(e?.input??l(),`peer`),icon:e?.icon??s(),inner:e?.inner??c(),body:t(e?.body??r(),x&&(e?.bodyError??i())),labelWrapper:e?.labelWrapper??f(),label:t(e?.label??u(),b&&v()),description:e?.description??a(),error:e?.error??o()},label:_(h,{children:[y,g(()=>S?_(`span`,{className:e?.labelRequired??d(),children:[` `,`*`]}):null,{})]}),...C});y.displayName=`Checkbox`,y.Group=e;export{y as Checkbox};
2
2
  //# sourceMappingURL=Checkbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.mjs","names":["Checkbox","MantineCheckbox"],"sources":["../../../../src/components/controls/checkbox/Checkbox.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { visuallyHidden } from '@mage-ui/styled-system/patterns';\nimport {\n checkbox,\n checkboxBody,\n checkboxBodyError,\n checkboxDescription,\n checkboxError,\n checkboxIcon,\n checkboxInner,\n checkboxInput,\n checkboxLabel,\n checkboxLabelRequired,\n checkboxLabelWrapper,\n checkboxRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { Checkbox as MantineCheckbox } from '@mantine/core';\n\nimport { CheckboxGroup } from '../checkbox-group/CheckboxGroup';\n\nexport type CheckboxProps = Omit<\n ComponentProps<'input'>,\n 'size' | 'children'\n> & {\n label?: ReactNode;\n error?: string;\n classNames?: {\n checkbox?: string;\n root?: string;\n input?: string;\n icon?: string;\n inner?: string;\n body?: string;\n bodyError?: string;\n labelWrapper?: string;\n labelRequired?: string;\n label?: string;\n description?: string;\n error?: string;\n };\n hiddenLabel?: boolean;\n};\n\nexport const Checkbox = ({\n classNames,\n label,\n hiddenLabel,\n error,\n required,\n value,\n ...props\n}: CheckboxProps): ReactNode => {\n const RequiredAsterisk = () =>\n required ? (\n <span className={classNames?.labelRequired ?? checkboxLabelRequired()}>\n {' '}\n *\n </span>\n ) : null;\n\n return (\n <MantineCheckbox\n classNames={{\n root: cx(\n classNames?.checkbox ?? checkbox(),\n classNames?.root ?? checkboxRoot(),\n ),\n input: cx(classNames?.input ?? checkboxInput(), 'peer'),\n icon: classNames?.icon ?? checkboxIcon(),\n inner: classNames?.inner ?? checkboxInner(),\n body: cx(\n classNames?.body ?? checkboxBody(),\n error && (classNames?.bodyError ?? checkboxBodyError()),\n ),\n labelWrapper: classNames?.labelWrapper ?? checkboxLabelWrapper(),\n label: cx(\n classNames?.label ?? checkboxLabel(),\n hiddenLabel && visuallyHidden(),\n ),\n description: classNames?.description ?? checkboxDescription(),\n error: classNames?.error ?? checkboxError(),\n }}\n label={\n <>\n {label}\n <RequiredAsterisk />\n </>\n }\n checked={!!value}\n {...props}\n />\n );\n};\n\nCheckbox.displayName = 'Checkbox';\nCheckbox.Group = CheckboxGroup;\n"],"mappings":"+jBA6CA,MAAaA,GAAY,CACvB,aACA,QACA,cACA,QACA,WACA,QACA,GAAG,KAWD,EAACC,EAAAA,CACC,WAAY,CACV,KAAM,EACJ,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CACD,MAAO,EAAG,GAAY,OAAS,GAAe,CAAE,OAAO,CACvD,KAAM,GAAY,MAAQ,GAAc,CACxC,MAAO,GAAY,OAAS,GAAe,CAC3C,KAAM,EACJ,GAAY,MAAQ,GAAc,CAClC,IAAU,GAAY,WAAa,GAAmB,EACvD,CACD,aAAc,GAAY,cAAgB,GAAsB,CAChE,MAAO,EACL,GAAY,OAAS,GAAe,CACpC,GAAe,GAAgB,CAChC,CACD,YAAa,GAAY,aAAe,GAAqB,CAC7D,MAAO,GAAY,OAAS,GAAe,CAC5C,CACD,MACE,EAAA,EAAA,CAAA,SAAA,CACG,EACD,MAhCN,EACE,EAAC,OAAA,CAAK,UAAW,GAAY,eAAiB,GAAuB,WAClE,IAAI,IAAA,EAEA,CACL,KA2BG,EAAA,CAAmB,CAAA,CAAA,CACnB,CAEL,QAAS,CAAC,CAAC,EACX,GAAI,GACJ,CAIN,EAAS,YAAc,WACvB,EAAS,MAAQ"}
1
+ {"version":3,"file":"Checkbox.mjs","names":["Checkbox","MantineCheckbox"],"sources":["../../../../src/components/controls/checkbox/Checkbox.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { visuallyHidden } from '@mage-ui/styled-system/patterns';\nimport {\n checkbox,\n checkboxBody,\n checkboxBodyError,\n checkboxDescription,\n checkboxError,\n checkboxIcon,\n checkboxInner,\n checkboxInput,\n checkboxLabel,\n checkboxLabelRequired,\n checkboxLabelWrapper,\n checkboxRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { Checkbox as MantineCheckbox } from '@mantine/core';\n\nimport { CheckboxGroup } from '../checkbox-group/CheckboxGroup';\n\nexport type CheckboxProps = Omit<\n ComponentProps<'input'>,\n 'size' | 'children'\n> & {\n indeterminate?: boolean;\n label?: ReactNode;\n error?: string;\n classNames?: {\n checkbox?: string;\n root?: string;\n input?: string;\n icon?: string;\n inner?: string;\n body?: string;\n bodyError?: string;\n labelWrapper?: string;\n labelRequired?: string;\n label?: string;\n description?: string;\n error?: string;\n };\n hiddenLabel?: boolean;\n};\n\nexport const Checkbox = ({\n classNames,\n label,\n hiddenLabel,\n error,\n required,\n ...props\n}: CheckboxProps): ReactNode => {\n const RequiredAsterisk = () =>\n required ? (\n <span className={classNames?.labelRequired ?? checkboxLabelRequired()}>\n {' '}\n *\n </span>\n ) : null;\n\n return (\n <MantineCheckbox\n classNames={{\n root: cx(\n classNames?.checkbox ?? checkbox(),\n classNames?.root ?? checkboxRoot(),\n ),\n input: cx(classNames?.input ?? checkboxInput(), 'peer'),\n icon: classNames?.icon ?? checkboxIcon(),\n inner: classNames?.inner ?? checkboxInner(),\n body: cx(\n classNames?.body ?? checkboxBody(),\n error && (classNames?.bodyError ?? checkboxBodyError()),\n ),\n labelWrapper: classNames?.labelWrapper ?? checkboxLabelWrapper(),\n label: cx(\n classNames?.label ?? checkboxLabel(),\n hiddenLabel && visuallyHidden(),\n ),\n description: classNames?.description ?? checkboxDescription(),\n error: classNames?.error ?? checkboxError(),\n }}\n label={\n <>\n {label}\n <RequiredAsterisk />\n </>\n }\n {...props}\n />\n );\n};\n\nCheckbox.displayName = 'Checkbox';\nCheckbox.Group = CheckboxGroup;\n"],"mappings":"+jBA8CA,MAAaA,GAAY,CACvB,aACA,QACA,cACA,QACA,WACA,GAAG,KAWD,EAACC,EAAAA,CACC,WAAY,CACV,KAAM,EACJ,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CACD,MAAO,EAAG,GAAY,OAAS,GAAe,CAAE,OAAO,CACvD,KAAM,GAAY,MAAQ,GAAc,CACxC,MAAO,GAAY,OAAS,GAAe,CAC3C,KAAM,EACJ,GAAY,MAAQ,GAAc,CAClC,IAAU,GAAY,WAAa,GAAmB,EACvD,CACD,aAAc,GAAY,cAAgB,GAAsB,CAChE,MAAO,EACL,GAAY,OAAS,GAAe,CACpC,GAAe,GAAgB,CAChC,CACD,YAAa,GAAY,aAAe,GAAqB,CAC7D,MAAO,GAAY,OAAS,GAAe,CAC5C,CACD,MACE,EAAA,EAAA,CAAA,SAAA,CACG,EACD,MAhCN,EACE,EAAC,OAAA,CAAK,UAAW,GAAY,eAAiB,GAAuB,WAClE,IAAI,IAAA,EAEA,CACL,KA2BG,EAAA,CAAmB,CAAA,CAAA,CACnB,CAEL,GAAI,GACJ,CAIN,EAAS,YAAc,WACvB,EAAS,MAAQ"}
@@ -31,6 +31,8 @@ type DropdownProps = {
31
31
  dropdownHeight?: number | string;
32
32
  shouldFilter?: boolean;
33
33
  dropdownTopSlot?: ReactNode;
34
+ defaultValue?: DropdownValue;
35
+ onChange?: (value: DropdownValue) => void;
34
36
  } & DataAttributes;
35
37
  //#endregion
36
38
  export { DropdownProps };
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"mappings":";;;;;;;;KAoBK,cAAA;EAAA,CACF,GAAA;AAAA;AAAA,KAGS,aAAA;EACV,QAAA,EAAU,SAAA;EACV,YAAA;EACA,WAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA;IACA,MAAA;EAAA;EAEF,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,eAAA,GAAkB,OAAA,CAChB,IAAA,CAAK,uBAAA;IAEL,UAAA,GAAa,IAAA,CACX,WAAA,CAAY,uBAAA;MAGZ,0BAAA;IAAA;EAAA;EAGJ,cAAA;EACA,YAAA;EACA,eAAA,GAAkB,SAAA;AAAA,IAChB,cAAA"}
1
+ {"version":3,"file":"Dropdown.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"mappings":";;;;;;;;KAoBK,cAAA;EAAA,CACF,GAAA;AAAA;AAAA,KAGS,aAAA;EACV,QAAA,EAAU,SAAA;EACV,YAAA;EACA,WAAA;EACA,UAAA;IACE,QAAA;IACA,IAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA;IACA,MAAA;EAAA;EAEF,MAAA,EAAQ,SAAA;EACR,OAAA,EAAS,aAAA;EACT,eAAA,GAAkB,OAAA,CAChB,IAAA,CAAK,uBAAA;IAEL,UAAA,GAAa,IAAA,CACX,WAAA,CAAY,uBAAA;MAGZ,0BAAA;IAAA;EAAA;EAGJ,cAAA;EACA,YAAA;EACA,eAAA,GAAkB,SAAA;EAClB,YAAA,GAAe,aAAA;EACf,QAAA,IAAY,KAAA,EAAO,aAAA;AAAA,IACjB,cAAA"}
@@ -1,2 +1,2 @@
1
- import{ScrollAreaAutosize as e}from"../../misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{DropdownContextProvider as t,useDropdownContext as n}from"./DropdownContextProvider.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{dropdown as i,dropdownEmpty as a,dropdownOption as o,dropdownOptions as s,dropdownRoot as c,dropdownScrollAreaAutosize as l}from"@mage-ui/styled-system/recipes";import{Combobox as u}from"@mantine/core";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({children:t,classNames:p,target:m,scrollAreaProps:h,dropdownHeight:g=192,dropdownTopSlot:_,...v})=>{let{store:y,setValue:b}=n(),x=Object.fromEntries(Object.entries(v).filter(([e])=>e.startsWith(`data-`))),S=Object.fromEntries(Object.entries(v).filter(([e])=>!e.startsWith(`data-`)));return f(u,{width:`target`,store:y,withinPortal:!0,keepMounted:!1,onOptionSubmit:e=>{b(e)},classNames:{dropdown:r(p?.dropdown??i(),p?.root??c()),options:p?.options??s(),option:p?.option??o(),empty:p?.empty??a(),search:p?.search},...S,children:[d(u.Target,{children:m}),f(u.Dropdown,{...x,children:[_&&_,d(e,{type:`scroll`,mah:g,classNames:{scrollArea:h?.classNames?.dropdownScrollAreaAutosize??l()},...h,children:t})]})]})};function m({options:e,shouldFilter:n=!0,...r}){return d(t,{options:e,shouldFilter:n,children:d(p,{...r})})}m.Options=u.Options,m.Options.displayName=`Dropdown.Options`,m.Option=u.Option,m.Option.displayName=`Dropdown.Option`,m.Empty=u.Empty,m.Empty.displayName=`Dropdown.Empty`,m.Search=u.Search,m.Search.displayName=`Dropdown.Search`,m.EventsTarget=u.EventsTarget,m.EventsTarget.displayName=`Dropdown.EventsTarget`;export{m as Dropdown};
1
+ import{ScrollAreaAutosize as e}from"../../misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{DropdownContextProvider as t,useDropdownContext as n}from"./DropdownContextProvider.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{dropdown as i,dropdownEmpty as a,dropdownOption as o,dropdownOptions as s,dropdownRoot as c,dropdownScrollAreaAutosize as l}from"@mage-ui/styled-system/recipes";import{Combobox as u}from"@mantine/core";import{jsx as d,jsxs as f}from"react/jsx-runtime";const p=({children:t,classNames:p,target:m,scrollAreaProps:h,dropdownHeight:g=192,dropdownTopSlot:_,...v})=>{let{store:y,setValue:b}=n(),x=Object.fromEntries(Object.entries(v).filter(([e])=>e.startsWith(`data-`))),S=Object.fromEntries(Object.entries(v).filter(([e])=>!e.startsWith(`data-`)));return f(u,{width:`target`,store:y,withinPortal:!0,keepMounted:!1,onOptionSubmit:e=>{b(e)},classNames:{dropdown:r(p?.dropdown??i(),p?.root??c()),options:p?.options??s(),option:p?.option??o(),empty:p?.empty??a(),search:p?.search},...S,children:[d(u.Target,{children:m}),f(u.Dropdown,{...x,children:[_&&_,d(e,{type:`scroll`,mah:g,classNames:{scrollArea:h?.classNames?.dropdownScrollAreaAutosize??l()},...h,children:t})]})]})};function m({options:e,shouldFilter:n=!0,defaultValue:r,onChange:i,...a}){return d(t,{options:e,shouldFilter:n,defaultValue:r,onChange:i,children:d(p,{...a})})}m.Options=u.Options,m.Options.displayName=`Dropdown.Options`,m.Option=u.Option,m.Option.displayName=`Dropdown.Option`,m.Empty=u.Empty,m.Empty.displayName=`Dropdown.Empty`,m.Search=u.Search,m.Search.displayName=`Dropdown.Search`,m.EventsTarget=u.EventsTarget,m.EventsTarget.displayName=`Dropdown.EventsTarget`;export{m as Dropdown};
2
2
  //# sourceMappingURL=Dropdown.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.mjs","names":["MantineCombobox"],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dropdown,\n dropdownEmpty,\n dropdownOption,\n dropdownOptions,\n dropdownRoot,\n dropdownScrollAreaAutosize,\n} from '@mage-ui/styled-system/recipes';\nimport { Combobox as MantineCombobox } from '@mantine/core';\n\nimport { ScrollAreaAutosize, type ScrollAreaAutosizeProps } from '../../misc';\nimport {\n DropdownContextProvider,\n type DropdownValue,\n useDropdownContext,\n} from './DropdownContextProvider';\n\ntype DataAttributes = {\n [key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type DropdownProps = {\n children: ReactNode;\n withinPortal?: boolean;\n keepMounted?: boolean;\n classNames?: {\n dropdown?: string;\n root?: string;\n options?: string;\n option?: string;\n empty?: string;\n search?: string;\n };\n target: ReactNode;\n options: DropdownValue[];\n scrollAreaProps?: Partial<\n Omit<ScrollAreaAutosizeProps, 'children' | 'classNames'>\n > & {\n classNames?: Omit<\n NonNullable<ScrollAreaAutosizeProps['classNames']>,\n 'scrollArea'\n > & {\n dropdownScrollAreaAutosize?: string;\n };\n };\n dropdownHeight?: number | string;\n shouldFilter?: boolean;\n dropdownTopSlot?: ReactNode;\n} & DataAttributes;\n\nconst DropdownContent = ({\n children,\n classNames,\n target,\n scrollAreaProps,\n dropdownHeight = 192,\n dropdownTopSlot,\n ...props\n}: Omit<DropdownProps, 'options'>) => {\n const { store, setValue } = useDropdownContext();\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith('data-')),\n ) as DataAttributes;\n const comboboxProps = Object.fromEntries(\n Object.entries(props).filter(([key]) => !key.startsWith('data-')),\n );\n\n return (\n <MantineCombobox\n width='target'\n store={store}\n withinPortal={true}\n keepMounted={false}\n onOptionSubmit={(option) => {\n setValue(option);\n }}\n classNames={{\n dropdown: cx(\n classNames?.dropdown ?? dropdown(),\n classNames?.root ?? dropdownRoot(),\n ),\n options: classNames?.options ?? dropdownOptions(),\n option: classNames?.option ?? dropdownOption(),\n empty: classNames?.empty ?? dropdownEmpty(),\n search: classNames?.search,\n }}\n {...comboboxProps}\n >\n <MantineCombobox.Target>{target}</MantineCombobox.Target>\n <MantineCombobox.Dropdown {...dataAttributes}>\n {dropdownTopSlot && dropdownTopSlot}\n <ScrollAreaAutosize\n type='scroll'\n mah={dropdownHeight}\n classNames={{\n scrollArea:\n scrollAreaProps?.classNames?.dropdownScrollAreaAutosize ??\n dropdownScrollAreaAutosize(),\n }}\n {...scrollAreaProps}\n >\n {children}\n </ScrollAreaAutosize>\n </MantineCombobox.Dropdown>\n </MantineCombobox>\n );\n};\n\nexport function Dropdown({\n options,\n shouldFilter = true,\n ...props\n}: DropdownProps) {\n return (\n <DropdownContextProvider options={options} shouldFilter={shouldFilter}>\n <DropdownContent {...props} />\n </DropdownContextProvider>\n );\n}\n\nDropdown.Options = MantineCombobox.Options;\nDropdown.Options.displayName = 'Dropdown.Options';\nDropdown.Option = MantineCombobox.Option;\nDropdown.Option.displayName = 'Dropdown.Option';\nDropdown.Empty = MantineCombobox.Empty;\nDropdown.Empty.displayName = 'Dropdown.Empty';\nDropdown.Search = MantineCombobox.Search;\nDropdown.Search.displayName = 'Dropdown.Search';\nDropdown.EventsTarget = MantineCombobox.EventsTarget;\nDropdown.EventsTarget.displayName = 'Dropdown.EventsTarget';\n"],"mappings":"+eAqDA,MAAM,GAAmB,CACvB,WACA,aACA,SACA,kBACA,iBAAiB,IACjB,kBACA,GAAG,KACiC,CACpC,GAAM,CAAE,QAAO,YAAa,GAAoB,CAC1C,EAAiB,OAAO,YAC5B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,EAAI,WAAW,QAAQ,CAAC,CACjE,CACK,EAAgB,OAAO,YAC3B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,CAAC,EAAI,WAAW,QAAQ,CAAC,CAClE,CAED,OACE,EAACA,EAAAA,CACC,MAAM,SACC,QACP,aAAc,GACd,YAAa,GACb,eAAiB,GAAW,CAC1B,EAAS,EAAO,EAElB,WAAY,CACV,SAAU,EACR,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CACD,QAAS,GAAY,SAAW,GAAiB,CACjD,OAAQ,GAAY,QAAU,GAAgB,CAC9C,MAAO,GAAY,OAAS,GAAe,CAC3C,OAAQ,GAAY,OACrB,CACD,GAAI,YAEJ,EAACA,EAAgB,OAAA,CAAA,SAAQ,EAAA,CAAgC,CACzD,EAACA,EAAgB,SAAA,CAAS,GAAI,YAC3B,GAAmB,EACpB,EAAC,EAAA,CACC,KAAK,SACL,IAAK,EACL,WAAY,CACV,WACE,GAAiB,YAAY,4BAC7B,GAA4B,CAC/B,CACD,GAAI,EAEH,YACkB,CAAA,EACI,CAAA,EACX,EAItB,SAAgB,EAAS,CACvB,UACA,eAAe,GACf,GAAG,GACa,CAChB,OACE,EAAC,EAAA,CAAiC,UAAuB,wBACvD,EAAC,EAAA,CAAgB,GAAI,EAAA,CAAS,EACN,CAI9B,EAAS,QAAUA,EAAgB,QACnC,EAAS,QAAQ,YAAc,mBAC/B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,MAAQA,EAAgB,MACjC,EAAS,MAAM,YAAc,iBAC7B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,aAAeA,EAAgB,aACxC,EAAS,aAAa,YAAc"}
1
+ {"version":3,"file":"Dropdown.mjs","names":["MantineCombobox"],"sources":["../../../../src/components/controls/dropdown/Dropdown.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dropdown,\n dropdownEmpty,\n dropdownOption,\n dropdownOptions,\n dropdownRoot,\n dropdownScrollAreaAutosize,\n} from '@mage-ui/styled-system/recipes';\nimport { Combobox as MantineCombobox } from '@mantine/core';\n\nimport { ScrollAreaAutosize, type ScrollAreaAutosizeProps } from '../../misc';\nimport {\n DropdownContextProvider,\n type DropdownValue,\n useDropdownContext,\n} from './DropdownContextProvider';\n\ntype DataAttributes = {\n [key: `data-${string}`]: string | number | boolean | undefined;\n};\n\nexport type DropdownProps = {\n children: ReactNode;\n withinPortal?: boolean;\n keepMounted?: boolean;\n classNames?: {\n dropdown?: string;\n root?: string;\n options?: string;\n option?: string;\n empty?: string;\n search?: string;\n };\n target: ReactNode;\n options: DropdownValue[];\n scrollAreaProps?: Partial<\n Omit<ScrollAreaAutosizeProps, 'children' | 'classNames'>\n > & {\n classNames?: Omit<\n NonNullable<ScrollAreaAutosizeProps['classNames']>,\n 'scrollArea'\n > & {\n dropdownScrollAreaAutosize?: string;\n };\n };\n dropdownHeight?: number | string;\n shouldFilter?: boolean;\n dropdownTopSlot?: ReactNode;\n defaultValue?: DropdownValue;\n onChange?: (value: DropdownValue) => void;\n} & DataAttributes;\n\nconst DropdownContent = ({\n children,\n classNames,\n target,\n scrollAreaProps,\n dropdownHeight = 192,\n dropdownTopSlot,\n ...props\n}: Omit<DropdownProps, 'options' | 'defaultValue' | 'onChange'>) => {\n const { store, setValue } = useDropdownContext();\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith('data-')),\n ) as DataAttributes;\n const comboboxProps = Object.fromEntries(\n Object.entries(props).filter(([key]) => !key.startsWith('data-')),\n );\n\n return (\n <MantineCombobox\n width='target'\n store={store}\n withinPortal={true}\n keepMounted={false}\n onOptionSubmit={(option) => {\n setValue(option);\n }}\n classNames={{\n dropdown: cx(\n classNames?.dropdown ?? dropdown(),\n classNames?.root ?? dropdownRoot(),\n ),\n options: classNames?.options ?? dropdownOptions(),\n option: classNames?.option ?? dropdownOption(),\n empty: classNames?.empty ?? dropdownEmpty(),\n search: classNames?.search,\n }}\n {...comboboxProps}\n >\n <MantineCombobox.Target>{target}</MantineCombobox.Target>\n <MantineCombobox.Dropdown {...dataAttributes}>\n {dropdownTopSlot && dropdownTopSlot}\n <ScrollAreaAutosize\n type='scroll'\n mah={dropdownHeight}\n classNames={{\n scrollArea:\n scrollAreaProps?.classNames?.dropdownScrollAreaAutosize ??\n dropdownScrollAreaAutosize(),\n }}\n {...scrollAreaProps}\n >\n {children}\n </ScrollAreaAutosize>\n </MantineCombobox.Dropdown>\n </MantineCombobox>\n );\n};\n\nexport function Dropdown({\n options,\n shouldFilter = true,\n defaultValue,\n onChange,\n ...props\n}: DropdownProps) {\n return (\n <DropdownContextProvider\n options={options}\n shouldFilter={shouldFilter}\n defaultValue={defaultValue}\n onChange={onChange}\n >\n <DropdownContent {...props} />\n </DropdownContextProvider>\n );\n}\n\nDropdown.Options = MantineCombobox.Options;\nDropdown.Options.displayName = 'Dropdown.Options';\nDropdown.Option = MantineCombobox.Option;\nDropdown.Option.displayName = 'Dropdown.Option';\nDropdown.Empty = MantineCombobox.Empty;\nDropdown.Empty.displayName = 'Dropdown.Empty';\nDropdown.Search = MantineCombobox.Search;\nDropdown.Search.displayName = 'Dropdown.Search';\nDropdown.EventsTarget = MantineCombobox.EventsTarget;\nDropdown.EventsTarget.displayName = 'Dropdown.EventsTarget';\n"],"mappings":"+eAuDA,MAAM,GAAmB,CACvB,WACA,aACA,SACA,kBACA,iBAAiB,IACjB,kBACA,GAAG,KAC+D,CAClE,GAAM,CAAE,QAAO,YAAa,GAAoB,CAC1C,EAAiB,OAAO,YAC5B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,EAAI,WAAW,QAAQ,CAAC,CACjE,CACK,EAAgB,OAAO,YAC3B,OAAO,QAAQ,EAAM,CAAC,QAAQ,CAAC,KAAS,CAAC,EAAI,WAAW,QAAQ,CAAC,CAClE,CAED,OACE,EAACA,EAAAA,CACC,MAAM,SACC,QACP,aAAc,GACd,YAAa,GACb,eAAiB,GAAW,CAC1B,EAAS,EAAO,EAElB,WAAY,CACV,SAAU,EACR,GAAY,UAAY,GAAU,CAClC,GAAY,MAAQ,GAAc,CACnC,CACD,QAAS,GAAY,SAAW,GAAiB,CACjD,OAAQ,GAAY,QAAU,GAAgB,CAC9C,MAAO,GAAY,OAAS,GAAe,CAC3C,OAAQ,GAAY,OACrB,CACD,GAAI,YAEJ,EAACA,EAAgB,OAAA,CAAA,SAAQ,EAAA,CAAgC,CACzD,EAACA,EAAgB,SAAA,CAAS,GAAI,YAC3B,GAAmB,EACpB,EAAC,EAAA,CACC,KAAK,SACL,IAAK,EACL,WAAY,CACV,WACE,GAAiB,YAAY,4BAC7B,GAA4B,CAC/B,CACD,GAAI,EAEH,YACkB,CAAA,EACI,CAAA,EACX,EAItB,SAAgB,EAAS,CACvB,UACA,eAAe,GACf,eACA,WACA,GAAG,GACa,CAChB,OACE,EAAC,EAAA,CACU,UACK,eACA,eACJ,oBAEV,EAAC,EAAA,CAAgB,GAAI,EAAA,CAAS,EACN,CAI9B,EAAS,QAAUA,EAAgB,QACnC,EAAS,QAAQ,YAAc,mBAC/B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,MAAQA,EAAgB,MACjC,EAAS,MAAM,YAAc,iBAC7B,EAAS,OAASA,EAAgB,OAClC,EAAS,OAAO,YAAc,kBAC9B,EAAS,aAAeA,EAAgB,aACxC,EAAS,aAAa,YAAc"}
@@ -1,10 +1,12 @@
1
1
  import "@mantine/core";
2
2
  import "react/jsx-runtime";
3
+ import { ReactNode } from "react";
3
4
 
4
5
  //#region src/components/controls/dropdown/DropdownContextProvider.d.ts
5
6
  type DropdownValue = {
6
7
  id: string | number;
7
8
  value: string | number | undefined | null;
9
+ render?: ReactNode;
8
10
  };
9
11
  //#endregion
10
12
  export { DropdownValue };
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContextProvider.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"mappings":";;;;KAIY,aAAA;EACV,EAAA;EACA,KAAA;AAAA"}
1
+ {"version":3,"file":"DropdownContextProvider.d.mts","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"mappings":";;;;;KAKY,aAAA;EACV,EAAA;EACA,KAAA;EACA,MAAA,GAAS,SAAA;AAAA"}
@@ -1,2 +1,2 @@
1
- import{useCombobox as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";import{createContext as n,useContext as r,useState as i}from"react";const a=n({store:{},value:{id:``,value:``},query:void 0,setValue:()=>{},setQuery:()=>{},options:[]});function o(){let e=r(a);if(!e)throw Error(`useDropdownContext must be used within DropdownContextProvider`);return e}function s({children:n,options:r,shouldFilter:o=!0}){let[s,c]=i(void 0),[l,u]=i({id:``,value:``}),d=e({scrollBehavior:`smooth`,onDropdownClose:()=>d.resetSelectedOption()}),f=s&&o?r.filter(e=>e.value?.toString().toLowerCase().trim().includes(s?.toLowerCase().trim())):r;return t(a.Provider,{value:{store:d,value:l,setValue:e=>{let t=r.find(t=>t.value===e);u(e&&!t?{id:``,value:e}:t??{id:``,value:``}),c(void 0),d.closeDropdown()},query:s,setQuery:c,options:f},children:n})}export{s as DropdownContextProvider,o as useDropdownContext};
1
+ import{useCombobox as e}from"@mantine/core";import{jsx as t}from"react/jsx-runtime";import{createContext as n,useContext as r,useState as i}from"react";const a=n({store:{},value:{id:``,value:``},query:void 0,setValue:()=>{},setQuery:()=>{},options:[]});function o(){let e=r(a);if(!e)throw Error(`useDropdownContext must be used within DropdownContextProvider`);return e}function s({children:n,options:r,shouldFilter:o=!0,defaultValue:s,onChange:c}){let[l,u]=i(void 0),[d,f]=i(s??{id:``,value:``}),p=e({scrollBehavior:`smooth`,onDropdownClose:()=>p.resetSelectedOption()}),m=l&&o?r.filter(e=>e.value?.toString().toLowerCase().trim().includes(l?.toLowerCase().trim())):r;return t(a.Provider,{value:{store:p,value:d,setValue:e=>{let t=r.find(t=>t.value===e),n;n=e&&!t?{id:``,value:e}:t??{id:``,value:``},f(n),c?.(n),u(void 0),p.closeDropdown()},query:l,setQuery:u,options:m},children:n})}export{s as DropdownContextProvider,o as useDropdownContext};
2
2
  //# sourceMappingURL=DropdownContextProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownContextProvider.mjs","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"sourcesContent":["import { createContext, useContext, useState } from 'react';\n\nimport { type ComboboxStore, useCombobox } from '@mantine/core';\n\nexport type DropdownValue = {\n id: string | number;\n value: string | number | undefined | null;\n};\n\ntype DropdownContextType = {\n store: ComboboxStore;\n value: DropdownValue;\n setValue: (value: string | undefined) => void;\n query: string | undefined;\n setQuery: (query: string | undefined) => void;\n options: DropdownValue[];\n};\n\nconst DropdownContext = createContext<DropdownContextType>({\n store: {} as ComboboxStore,\n value: { id: '', value: '' },\n query: undefined,\n setValue: () => {},\n setQuery: () => {},\n options: [],\n});\n\nexport function useDropdownContext(): DropdownContextType {\n const ctx = useContext(DropdownContext);\n if (!ctx)\n throw new Error(\n 'useDropdownContext must be used within DropdownContextProvider',\n );\n return ctx;\n}\n\nexport function DropdownContextProvider({\n children,\n options,\n shouldFilter = true,\n}: {\n children: React.ReactNode;\n options: DropdownValue[];\n shouldFilter?: boolean;\n}) {\n const [query, setQuery] = useState<string | undefined>(undefined);\n const [value, setValue] = useState<DropdownValue>({\n id: '',\n value: '',\n });\n\n const store = useCombobox({\n scrollBehavior: 'smooth',\n onDropdownClose: () => store.resetSelectedOption(),\n });\n\n const filteredOptions =\n query && shouldFilter\n ? options.filter((item) =>\n item.value\n ?.toString()\n .toLowerCase()\n .trim()\n .includes(query?.toLowerCase().trim()),\n )\n : options;\n\n const handleValueChange = (value: string | undefined) => {\n const option = options.find((option) => option.value === value);\n\n if (value && !option) {\n setValue({ id: '', value: value });\n } else {\n setValue(option ?? { id: '', value: '' });\n }\n\n setQuery(undefined);\n store.closeDropdown();\n };\n\n return (\n <DropdownContext.Provider\n value={{\n store,\n value,\n setValue: handleValueChange,\n query,\n setQuery,\n options: filteredOptions,\n }}\n >\n {children}\n </DropdownContext.Provider>\n );\n}\n"],"mappings":"wJAkBA,MAAM,EAAkB,EAAmC,CACzD,MAAO,EAAE,CACT,MAAO,CAAE,GAAI,GAAI,MAAO,GAAI,CAC5B,MAAO,IAAA,GACP,aAAgB,GAChB,aAAgB,GAChB,QAAS,EAAE,CACZ,CAAC,CAEF,SAAgB,GAA0C,CACxD,IAAM,EAAM,EAAW,EAAgB,CACvC,GAAI,CAAC,EACH,MAAU,MACR,iEACD,CACH,OAAO,EAGT,SAAgB,EAAwB,CACtC,WACA,UACA,eAAe,IAKd,CACD,GAAM,CAAC,EAAO,GAAY,EAA6B,IAAA,GAAU,CAC3D,CAAC,EAAO,GAAY,EAAwB,CAChD,GAAI,GACJ,MAAO,GACR,CAAC,CAEI,EAAQ,EAAY,CACxB,eAAgB,SAChB,oBAAuB,EAAM,qBAAqB,CACnD,CAAC,CAEI,EACJ,GAAS,EACL,EAAQ,OAAQ,GACd,EAAK,OACD,UAAU,CACX,aAAa,CACb,MAAM,CACN,SAAS,GAAO,aAAa,CAAC,MAAM,CAAC,CACzC,CACD,EAeN,OACE,EAAC,EAAgB,SAAA,CACf,MAAO,CACL,QACA,QACA,SAlBqB,GAA8B,CACvD,IAAM,EAAS,EAAQ,KAAM,GAAW,EAAO,QAAU,EAAM,CAG7D,EADE,GAAS,CAAC,EACH,CAAE,GAAI,GAAW,QAAO,CAExB,GAAU,CAAE,GAAI,GAAI,MAAO,GAAI,CAAC,CAG3C,EAAS,IAAA,GAAU,CACnB,EAAM,eAAe,EASjB,QACA,WACA,QAAS,EACV,CAEA,YACwB"}
1
+ {"version":3,"file":"DropdownContextProvider.mjs","names":[],"sources":["../../../../src/components/controls/dropdown/DropdownContextProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { createContext, useContext, useState } from 'react';\n\nimport { type ComboboxStore, useCombobox } from '@mantine/core';\n\nexport type DropdownValue = {\n id: string | number;\n value: string | number | undefined | null;\n render?: ReactNode;\n};\n\ntype DropdownContextType = {\n store: ComboboxStore;\n value: DropdownValue;\n setValue: (value: string | undefined) => void;\n query: string | undefined;\n setQuery: (query: string | undefined) => void;\n options: DropdownValue[];\n};\n\nconst DropdownContext = createContext<DropdownContextType>({\n store: {} as ComboboxStore,\n value: { id: '', value: '' },\n query: undefined,\n setValue: () => {},\n setQuery: () => {},\n options: [],\n});\n\nexport function useDropdownContext(): DropdownContextType {\n const ctx = useContext(DropdownContext);\n if (!ctx)\n throw new Error(\n 'useDropdownContext must be used within DropdownContextProvider',\n );\n return ctx;\n}\n\nexport function DropdownContextProvider({\n children,\n options,\n shouldFilter = true,\n defaultValue,\n onChange,\n}: {\n children: React.ReactNode;\n options: DropdownValue[];\n shouldFilter?: boolean;\n defaultValue?: DropdownValue;\n onChange?: (value: DropdownValue) => void;\n}) {\n const [query, setQuery] = useState<string | undefined>(undefined);\n\n const initialValue = defaultValue ?? { id: '', value: '' };\n\n const [value, setValue] = useState<DropdownValue>(initialValue);\n\n const store = useCombobox({\n scrollBehavior: 'smooth',\n onDropdownClose: () => store.resetSelectedOption(),\n });\n\n const filteredOptions =\n query && shouldFilter\n ? options.filter((item) =>\n item.value\n ?.toString()\n .toLowerCase()\n .trim()\n .includes(query?.toLowerCase().trim()),\n )\n : options;\n\n const handleValueChange = (value: string | undefined) => {\n const option = options.find((option) => option.value === value);\n\n let newValue: DropdownValue;\n if (value && !option) {\n newValue = { id: '', value: value };\n } else {\n newValue = option ?? { id: '', value: '' };\n }\n\n setValue(newValue);\n onChange?.(newValue);\n\n setQuery(undefined);\n store.closeDropdown();\n };\n\n return (\n <DropdownContext.Provider\n value={{\n store,\n value,\n setValue: handleValueChange,\n query,\n setQuery,\n options: filteredOptions,\n }}\n >\n {children}\n </DropdownContext.Provider>\n );\n}\n"],"mappings":"wJAoBA,MAAM,EAAkB,EAAmC,CACzD,MAAO,EAAE,CACT,MAAO,CAAE,GAAI,GAAI,MAAO,GAAI,CAC5B,MAAO,IAAA,GACP,aAAgB,GAChB,aAAgB,GAChB,QAAS,EAAE,CACZ,CAAC,CAEF,SAAgB,GAA0C,CACxD,IAAM,EAAM,EAAW,EAAgB,CACvC,GAAI,CAAC,EACH,MAAU,MACR,iEACD,CACH,OAAO,EAGT,SAAgB,EAAwB,CACtC,WACA,UACA,eAAe,GACf,eACA,YAOC,CACD,GAAM,CAAC,EAAO,GAAY,EAA6B,IAAA,GAAU,CAI3D,CAAC,EAAO,GAAY,EAFL,GAAgB,CAAE,GAAI,GAAI,MAAO,GAAI,CAEK,CAEzD,EAAQ,EAAY,CACxB,eAAgB,SAChB,oBAAuB,EAAM,qBAAqB,CACnD,CAAC,CAEI,EACJ,GAAS,EACL,EAAQ,OAAQ,GACd,EAAK,OACD,UAAU,CACX,aAAa,CACb,MAAM,CACN,SAAS,GAAO,aAAa,CAAC,MAAM,CAAC,CACzC,CACD,EAmBN,OACE,EAAC,EAAgB,SAAA,CACf,MAAO,CACL,QACA,QACA,SAtBqB,GAA8B,CACvD,IAAM,EAAS,EAAQ,KAAM,GAAW,EAAO,QAAU,EAAM,CAE3D,EACJ,AAGE,EAHE,GAAS,CAAC,EACD,CAAE,GAAI,GAAW,QAAO,CAExB,GAAU,CAAE,GAAI,GAAI,MAAO,GAAI,CAG5C,EAAS,EAAS,CAClB,IAAW,EAAS,CAEpB,EAAS,IAAA,GAAU,CACnB,EAAM,eAAe,EASjB,QACA,WACA,QAAS,EACV,CAEA,YACwB"}
@@ -1,2 +1,2 @@
1
- import{useDropdownContext as e}from"../DropdownContextProvider.mjs";import{Dropdown as t}from"../Dropdown.mjs";import{ComboboxCreatableOption as n}from"./ComboboxCreatableOption.mjs";import{ComboboxEmptyOption as r}from"./ComboboxEmptyOption.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({creatableProps:o,emptyProps:s})=>{let{options:c}=e(),{creatable:l}=o,u=c.map(e=>i(t.Option,{id:e.id.toString(),value:e.value?.toString(),onMouseDown:e=>e.preventDefault(),children:e.value?.toString()},e.id));return a(t.Options,{children:[u,l&&i(n,{...o}),!l&&c.length===0&&i(r,{...s})]})};export{o as ComboboxOptions};
1
+ import{useDropdownContext as e}from"../DropdownContextProvider.mjs";import{Dropdown as t}from"../Dropdown.mjs";import{ComboboxCreatableOption as n}from"./ComboboxCreatableOption.mjs";import{ComboboxEmptyOption as r}from"./ComboboxEmptyOption.mjs";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({creatableProps:o,emptyProps:s})=>{let{options:c,value:l}=e(),{creatable:u}=o,d=c.map(e=>i(t.Option,{id:e.id.toString(),value:e.value?.toString(),onMouseDown:e=>e.preventDefault(),active:e.id===l.id,children:e.render??e.value?.toString()},e.id));return a(t.Options,{children:[d,u&&i(n,{...o}),!u&&c.length===0&&i(r,{...s})]})};export{o as ComboboxOptions};
2
2
  //# sourceMappingURL=ComboboxOptions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxOptions.mjs","names":[],"sources":["../../../../../src/components/controls/dropdown/combobox/ComboboxOptions.tsx"],"sourcesContent":["import { Dropdown } from '../Dropdown';\nimport type { DropdownValue } from '../DropdownContextProvider';\nimport { useDropdownContext } from '../DropdownContextProvider';\nimport {\n ComboboxCreatableOption,\n type ComboboxCreatableOptionProps,\n} from './ComboboxCreatableOption';\nimport {\n ComboboxEmptyOption,\n type ComboboxEmptyOptionProps,\n} from './ComboboxEmptyOption';\n\nexport const ComboboxOptions = ({\n creatableProps,\n emptyProps,\n}: {\n creatableProps: ComboboxCreatableOptionProps;\n emptyProps: ComboboxEmptyOptionProps;\n}) => {\n const { options } = useDropdownContext();\n const { creatable } = creatableProps;\n\n const optionsList = options.map((item: DropdownValue) => {\n return (\n <Dropdown.Option\n id={item.id.toString()}\n value={item.value?.toString() as string}\n key={item.id}\n onMouseDown={(e) => e.preventDefault()}\n >\n {item.value?.toString()}\n </Dropdown.Option>\n );\n });\n\n return (\n <Dropdown.Options>\n {optionsList}\n {creatable && <ComboboxCreatableOption {...creatableProps} />}\n {!creatable && options.length === 0 && (\n <ComboboxEmptyOption {...emptyProps} />\n )}\n </Dropdown.Options>\n );\n};\n"],"mappings":"ySAYA,MAAa,GAAmB,CAC9B,iBACA,gBAII,CACJ,GAAM,CAAE,WAAY,GAAoB,CAClC,CAAE,aAAc,EAEhB,EAAc,EAAQ,IAAK,GAE7B,EAAC,EAAS,OAAA,CACR,GAAI,EAAK,GAAG,UAAU,CACtB,MAAO,EAAK,OAAO,UAAU,CAE7B,YAAc,GAAM,EAAE,gBAAgB,UAErC,EAAK,OAAO,UAAU,EAHlB,EAAK,GAIM,CAEpB,CAEF,OACE,EAAC,EAAS,QAAA,CAAA,SAAA,CACP,EACA,GAAa,EAAC,EAAA,CAAwB,GAAI,EAAA,CAAkB,CAC5D,CAAC,GAAa,EAAQ,SAAW,GAChC,EAAC,EAAA,CAAoB,GAAI,EAAA,CAAc,GAExB"}
1
+ {"version":3,"file":"ComboboxOptions.mjs","names":[],"sources":["../../../../../src/components/controls/dropdown/combobox/ComboboxOptions.tsx"],"sourcesContent":["import { Dropdown } from '../Dropdown';\nimport type { DropdownValue } from '../DropdownContextProvider';\nimport { useDropdownContext } from '../DropdownContextProvider';\nimport {\n ComboboxCreatableOption,\n type ComboboxCreatableOptionProps,\n} from './ComboboxCreatableOption';\nimport {\n ComboboxEmptyOption,\n type ComboboxEmptyOptionProps,\n} from './ComboboxEmptyOption';\n\nexport const ComboboxOptions = ({\n creatableProps,\n emptyProps,\n}: {\n creatableProps: ComboboxCreatableOptionProps;\n emptyProps: ComboboxEmptyOptionProps;\n}) => {\n const { options, value } = useDropdownContext();\n const { creatable } = creatableProps;\n\n const optionsList = options.map((item: DropdownValue) => {\n return (\n <Dropdown.Option\n id={item.id.toString()}\n value={item.value?.toString() as string}\n key={item.id}\n onMouseDown={(e) => e.preventDefault()}\n active={item.id === value.id}\n >\n {item.render ?? item.value?.toString()}\n </Dropdown.Option>\n );\n });\n\n return (\n <Dropdown.Options>\n {optionsList}\n {creatable && <ComboboxCreatableOption {...creatableProps} />}\n {!creatable && options.length === 0 && (\n <ComboboxEmptyOption {...emptyProps} />\n )}\n </Dropdown.Options>\n );\n};\n"],"mappings":"ySAYA,MAAa,GAAmB,CAC9B,iBACA,gBAII,CACJ,GAAM,CAAE,UAAS,SAAU,GAAoB,CACzC,CAAE,aAAc,EAEhB,EAAc,EAAQ,IAAK,GAE7B,EAAC,EAAS,OAAA,CACR,GAAI,EAAK,GAAG,UAAU,CACtB,MAAO,EAAK,OAAO,UAAU,CAE7B,YAAc,GAAM,EAAE,gBAAgB,CACtC,OAAQ,EAAK,KAAO,EAAM,YAEzB,EAAK,QAAU,EAAK,OAAO,UAAU,EAJjC,EAAK,GAKM,CAEpB,CAEF,OACE,EAAC,EAAS,QAAA,CAAA,SAAA,CACP,EACA,GAAa,EAAC,EAAA,CAAwB,GAAI,EAAA,CAAkB,CAC5D,CAAC,GAAa,EAAQ,SAAW,GAChC,EAAC,EAAA,CAAoB,GAAI,EAAA,CAAc,GAExB"}
@@ -0,0 +1,64 @@
1
+ import { TableClassNames, TableProps } from "../../table/TableRoot.mjs";
2
+ import "../../table/Table.mjs";
3
+ import { StatelessDataTableSlots } from "./StatelessDataTableSlotRow.mjs";
4
+ import { ReactNode } from "react";
5
+ import { ColumnDef, ExpandedState, OnChangeFn, PaginationState, RowSelectionState, SortingState, TableOptions } from "@tanstack/react-table";
6
+
7
+ //#region src/components/data-display/datatables/datatable-stateless/StatelessDataTable.d.ts
8
+ type StatelessDataTableSortingConfig = {
9
+ state: SortingState;
10
+ onChange: OnChangeFn<SortingState>;
11
+ };
12
+ type StatelessDataTablePaginationConfig = {
13
+ state: PaginationState;
14
+ onChange: OnChangeFn<PaginationState>;
15
+ pageCount: number;
16
+ rowCount?: number;
17
+ };
18
+ type StatelessDataTableSelectionConfig<Data = unknown> = {
19
+ state: RowSelectionState;
20
+ onChange: OnChangeFn<RowSelectionState>;
21
+ getRowId?: (row: Data) => string;
22
+ isRowDisabled?: (row: Data) => boolean;
23
+ bulkActions?: (selectedIds: string[]) => ReactNode;
24
+ };
25
+ type StatelessDataTableExpansionConfig<Data = unknown> = {
26
+ state: ExpandedState;
27
+ onChange: OnChangeFn<ExpandedState>;
28
+ renderContent: (row: Data) => ReactNode;
29
+ };
30
+ type StatelessDataTableTableConfig = Pick<TableProps, 'layout' | 'striped' | 'highlightOnHover' | 'stickyHeader' | 'withTableBorder' | 'withColumnBorders' | 'withRowBorders' | 'scrollable'>;
31
+ type StatelessDataTableClassNames = {
32
+ dataTable?: string;
33
+ root?: string;
34
+ slotRow?: string;
35
+ bulkBar?: string;
36
+ loading?: string;
37
+ empty?: string;
38
+ table?: TableClassNames;
39
+ };
40
+ type StatelessDataTableManagedOptions<Data> = Partial<Omit<TableOptions<Data>, 'columns' | 'data' | 'enableRowSelection' | 'enableSorting' | 'getCoreRowModel' | 'getExpandedRowModel' | 'getPaginationRowModel' | 'getRowId' | 'getSortedRowModel' | 'manualPagination' | 'manualSorting' | 'onExpandedChange' | 'onPaginationChange' | 'onRowSelectionChange' | 'onSortingChange' | 'pageCount' | 'rowCount' | 'state'>>;
41
+ type StatelessDataTableProps<Data> = {
42
+ data: Data[];
43
+ columns: ColumnDef<Data, unknown>[];
44
+ sorting?: StatelessDataTableSortingConfig;
45
+ pagination?: StatelessDataTablePaginationConfig;
46
+ selection?: StatelessDataTableSelectionConfig<Data>;
47
+ expansion?: StatelessDataTableExpansionConfig<Data>;
48
+ loading?: boolean;
49
+ onRefresh?: () => void | Promise<void>;
50
+ slots?: StatelessDataTableSlots<Data>;
51
+ classNames?: StatelessDataTableClassNames;
52
+ options?: StatelessDataTableManagedOptions<Data>;
53
+ } & StatelessDataTableTableConfig;
54
+ declare const StatelessDataTable: <Data>({
55
+ classNames,
56
+ slots,
57
+ loading,
58
+ selection,
59
+ expansion,
60
+ ...props
61
+ }: StatelessDataTableProps<Data>) => ReactNode;
62
+ //#endregion
63
+ export { StatelessDataTable, StatelessDataTableClassNames, StatelessDataTableExpansionConfig, StatelessDataTablePaginationConfig, StatelessDataTableProps, StatelessDataTableSelectionConfig, StatelessDataTableSortingConfig, StatelessDataTableTableConfig };
64
+ //# sourceMappingURL=StatelessDataTable.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTable.d.mts","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTable.tsx"],"mappings":";;;;;;;KAgCY,+BAAA;EACV,KAAA,EAAO,YAAA;EACP,QAAA,EAAU,UAAA,CAAW,YAAA;AAAA;AAAA,KAGX,kCAAA;EACV,KAAA,EAAO,eAAA;EACP,QAAA,EAAU,UAAA,CAAW,eAAA;EACrB,SAAA;EACA,QAAA;AAAA;AAAA,KAGU,iCAAA;EACV,KAAA,EAAO,iBAAA;EACP,QAAA,EAAU,UAAA,CAAW,iBAAA;EACrB,QAAA,IAAY,GAAA,EAAK,IAAA;EACjB,aAAA,IAAiB,GAAA,EAAK,IAAA;EACtB,WAAA,IAAe,WAAA,eAA0B,SAAA;AAAA;AAAA,KAG/B,iCAAA;EACV,KAAA,EAAO,aAAA;EACP,QAAA,EAAU,UAAA,CAAW,aAAA;EACrB,aAAA,GAAgB,GAAA,EAAK,IAAA,KAAS,SAAA;AAAA;AAAA,KAGpB,6BAAA,GAAgC,IAAA,CAC1C,UAAA;AAAA,KAWU,4BAAA;EACV,SAAA;EACA,IAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;EACA,KAAA,GAAQ,eAAA;AAAA;AAAA,KAGL,gCAAA,SAAyC,OAAA,CAC5C,IAAA,CACE,YAAA,CAAa,IAAA;AAAA,KAsBL,uBAAA;EACV,IAAA,EAAM,IAAA;EACN,OAAA,EAAS,SAAA,CAAU,IAAA;EACnB,OAAA,GAAU,+BAAA;EACV,UAAA,GAAa,kCAAA;EACb,SAAA,GAAY,iCAAA,CAAkC,IAAA;EAC9C,SAAA,GAAY,iCAAA,CAAkC,IAAA;EAC9C,OAAA;EACA,SAAA,gBAAyB,OAAA;EACzB,KAAA,GAAQ,uBAAA,CAAwB,IAAA;EAChC,UAAA,GAAa,4BAAA;EACb,OAAA,GAAU,gCAAA,CAAiC,IAAA;AAAA,IACzC,6BAAA;AAAA,cAES,kBAAA;EAA6B,UAAA;EAAA,KAAA;EAAA,OAAA;EAAA,SAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAOvC,uBAAA,CAAwB,IAAA,MAAQ,SAAA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"../../table/Table.mjs";import{StatelessDataTableBody as t}from"./StatelessDataTableBody.mjs";import{StatelessDataTableBulkBar as n}from"./StatelessDataTableBulkBar.mjs";import{StatelessDataTableHeader as r}from"./StatelessDataTableHeader.mjs";import{StatelessDataTableRootContainer as i}from"./StatelessDataTableRootContainer.mjs";import{StatelessDataTableSlotRow as a}from"./StatelessDataTableSlotRow.mjs";import{StatelessDataTableViewport as o}from"./StatelessDataTableViewport.mjs";import{useStatelessDataTable as s}from"./useStatelessDataTable.mjs";import{StatelessDataTableContextProvider as c}from"./useStatelessDataTableContext.mjs";import{jsx as l,jsxs as u}from"react/jsx-runtime";const d=({classNames:d,slots:f,loading:p,selection:m,expansion:h,...g})=>{let{headerRef:_,headerHeight:v,layout:y,slotProps:b,table:x}=s({...g,loading:p,selection:m,expansion:h});return l(c,{value:b,children:u(i,{busy:p,classNames:d,children:[l(a,{slot:f?.top,slotProps:b,className:d?.slotRow}),l(o,{loading:p,headerHeight:v,loadingClassName:d?.loading,children:u(e,{...g,layout:y,classNames:d?.table,children:[l(r,{headerGroups:x.getHeaderGroups(),totalSize:x.getTotalSize(),theadRef:_}),l(t,{rows:x.getRowModel().rows,colCount:x.getVisibleLeafColumns().length,loading:p,empty:f?.empty,slotProps:b,emptyClassName:d?.empty,expansion:h,selection:m})]})}),l(a,{slot:f?.bottom,slotProps:b,className:d?.slotRow}),l(n,{selectedIds:b.selectedIds,className:d?.bulkBar,selection:m})]})})};export{d as StatelessDataTable};
2
+ //# sourceMappingURL=StatelessDataTable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTable.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTable.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type {\n ColumnDef,\n ExpandedState,\n OnChangeFn,\n PaginationState,\n RowSelectionState,\n SortingState,\n TableOptions,\n} from '@tanstack/react-table';\n\nimport {\n Table,\n type TableClassNames,\n type TableProps,\n} from '../../table/Table';\nimport { StatelessDataTableBody } from './StatelessDataTableBody';\nimport { StatelessDataTableBulkBar } from './StatelessDataTableBulkBar';\nimport { StatelessDataTableHeader } from './StatelessDataTableHeader';\nimport { StatelessDataTableRootContainer } from './StatelessDataTableRootContainer';\nimport {\n StatelessDataTableSlotRow,\n type StatelessDataTableSlots,\n} from './StatelessDataTableSlotRow';\nimport { StatelessDataTableViewport } from './StatelessDataTableViewport';\nimport { useStatelessDataTable } from './useStatelessDataTable';\nimport {\n StatelessDataTableContextProvider,\n type StatelessDataTableContextValue,\n} from './useStatelessDataTableContext';\n\nexport type StatelessDataTableSortingConfig = {\n state: SortingState;\n onChange: OnChangeFn<SortingState>;\n};\n\nexport type StatelessDataTablePaginationConfig = {\n state: PaginationState;\n onChange: OnChangeFn<PaginationState>;\n pageCount: number;\n rowCount?: number;\n};\n\nexport type StatelessDataTableSelectionConfig<Data = unknown> = {\n state: RowSelectionState;\n onChange: OnChangeFn<RowSelectionState>;\n getRowId?: (row: Data) => string;\n isRowDisabled?: (row: Data) => boolean;\n bulkActions?: (selectedIds: string[]) => ReactNode;\n};\n\nexport type StatelessDataTableExpansionConfig<Data = unknown> = {\n state: ExpandedState;\n onChange: OnChangeFn<ExpandedState>;\n renderContent: (row: Data) => ReactNode;\n};\n\nexport type StatelessDataTableTableConfig = Pick<\n TableProps,\n | 'layout'\n | 'striped'\n | 'highlightOnHover'\n | 'stickyHeader'\n | 'withTableBorder'\n | 'withColumnBorders'\n | 'withRowBorders'\n | 'scrollable'\n>;\n\nexport type StatelessDataTableClassNames = {\n dataTable?: string;\n root?: string;\n slotRow?: string;\n bulkBar?: string;\n loading?: string;\n empty?: string;\n table?: TableClassNames;\n};\n\ntype StatelessDataTableManagedOptions<Data> = Partial<\n Omit<\n TableOptions<Data>,\n | 'columns'\n | 'data'\n | 'enableRowSelection'\n | 'enableSorting'\n | 'getCoreRowModel'\n | 'getExpandedRowModel'\n | 'getPaginationRowModel'\n | 'getRowId'\n | 'getSortedRowModel'\n | 'manualPagination'\n | 'manualSorting'\n | 'onExpandedChange'\n | 'onPaginationChange'\n | 'onRowSelectionChange'\n | 'onSortingChange'\n | 'pageCount'\n | 'rowCount'\n | 'state'\n >\n>;\n\nexport type StatelessDataTableProps<Data> = {\n data: Data[];\n columns: ColumnDef<Data, unknown>[];\n sorting?: StatelessDataTableSortingConfig;\n pagination?: StatelessDataTablePaginationConfig;\n selection?: StatelessDataTableSelectionConfig<Data>;\n expansion?: StatelessDataTableExpansionConfig<Data>;\n loading?: boolean;\n onRefresh?: () => void | Promise<void>;\n slots?: StatelessDataTableSlots<Data>;\n classNames?: StatelessDataTableClassNames;\n options?: StatelessDataTableManagedOptions<Data>;\n} & StatelessDataTableTableConfig;\n\nexport const StatelessDataTable = <Data,>({\n classNames,\n slots,\n loading,\n selection,\n expansion,\n ...props\n}: StatelessDataTableProps<Data>): ReactNode => {\n const { headerRef, headerHeight, layout, slotProps, table } =\n useStatelessDataTable({\n ...props,\n loading,\n selection,\n expansion,\n });\n\n return (\n <StatelessDataTableContextProvider\n value={slotProps as unknown as StatelessDataTableContextValue<unknown>}\n >\n <StatelessDataTableRootContainer busy={loading} classNames={classNames}>\n <StatelessDataTableSlotRow\n slot={slots?.top}\n slotProps={slotProps}\n className={classNames?.slotRow}\n />\n\n <StatelessDataTableViewport\n loading={loading}\n headerHeight={headerHeight}\n loadingClassName={classNames?.loading}\n >\n <Table {...props} layout={layout} classNames={classNames?.table}>\n <StatelessDataTableHeader\n headerGroups={table.getHeaderGroups()}\n totalSize={table.getTotalSize()}\n theadRef={headerRef}\n />\n <StatelessDataTableBody\n rows={table.getRowModel().rows}\n colCount={table.getVisibleLeafColumns().length}\n loading={loading}\n empty={slots?.empty}\n slotProps={slotProps}\n emptyClassName={classNames?.empty}\n expansion={expansion}\n selection={selection}\n />\n </Table>\n </StatelessDataTableViewport>\n\n <StatelessDataTableSlotRow\n slot={slots?.bottom}\n slotProps={slotProps}\n className={classNames?.slotRow}\n />\n\n <StatelessDataTableBulkBar\n selectedIds={slotProps.selectedIds}\n className={classNames?.bulkBar}\n selection={selection}\n />\n </StatelessDataTableRootContainer>\n </StatelessDataTableContextProvider>\n );\n};\n"],"mappings":"ysBAsHA,MAAa,GAA6B,CACxC,aACA,QACA,UACA,YACA,YACA,GAAG,KAC2C,CAC9C,GAAM,CAAE,YAAW,eAAc,SAAQ,YAAW,SAClD,EAAsB,CACpB,GAAG,EACH,UACA,YACA,YACD,CAAC,CAEJ,OACE,EAAC,EAAA,CACC,MAAO,WAEP,EAAC,EAAA,CAAgC,KAAM,EAAqB,uBAC1D,EAAC,EAAA,CACC,KAAM,GAAO,IACF,YACX,UAAW,GAAY,SACvB,CAEF,EAAC,EAAA,CACU,UACK,eACd,iBAAkB,GAAY,iBAE9B,EAAC,EAAA,CAAM,GAAI,EAAe,SAAQ,WAAY,GAAY,gBACxD,EAAC,EAAA,CACC,aAAc,EAAM,iBAAiB,CACrC,UAAW,EAAM,cAAc,CAC/B,SAAU,GACV,CACF,EAAC,EAAA,CACC,KAAM,EAAM,aAAa,CAAC,KAC1B,SAAU,EAAM,uBAAuB,CAAC,OAC/B,UACT,MAAO,GAAO,MACH,YACX,eAAgB,GAAY,MACjB,YACA,aACX,CAAA,EACI,EACmB,CAE7B,EAAC,EAAA,CACC,KAAM,GAAO,OACF,YACX,UAAW,GAAY,SACvB,CAEF,EAAC,EAAA,CACC,YAAa,EAAU,YACvB,UAAW,GAAY,QACZ,aACX,GAC8B,EACA"}
@@ -0,0 +1,2 @@
1
+ import{Table as e}from"../../table/Table.mjs";import{dataTableEmpty as t}from"@mage-ui/styled-system/recipes";import{jsx as n}from"react/jsx-runtime";import{flexRender as r}from"@tanstack/react-table";const i=({rows:i,colCount:a,loading:o,empty:s,slotProps:c,emptyClassName:l,expansion:u,selection:d})=>{let f=!o&&i.length===0,p=typeof s==`function`?s(c):s??`No results found`,m=i.flatMap(t=>{let i=n(e.Row,{"data-selected":t.getIsSelected()||void 0,"data-disabled":d&&!t.getCanSelect()||void 0,"data-expanded":t.getIsExpanded()||void 0,children:t.getVisibleCells().map(t=>n(e.Cell,{children:r(t.column.columnDef.cell,t.getContext())},t.id))},`row-${t.id}`);return!u||!t.getIsExpanded()?[i]:[i,n(e.Row,{id:`stateless-data-table-expanded-${t.id}`,children:n(e.Cell,{colSpan:a,style:{padding:0},children:u.renderContent(t.original)})},`expanded-${t.id}`)]});return n(e.Body,{children:f?n(e.Row,{children:n(e.Cell,{colSpan:a,classNames:{td:l??t()},children:p})}):m})};export{i as StatelessDataTableBody};
2
+ //# sourceMappingURL=StatelessDataTableBody.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableBody.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableBody.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableEmpty } from '@mage-ui/styled-system/recipes';\nimport { flexRender, type Row } from '@tanstack/react-table';\n\nimport { Table } from '../../table/Table';\nimport type {\n StatelessDataTableExpansionConfig,\n StatelessDataTableSelectionConfig,\n} from './StatelessDataTable';\nimport type {\n StatelessDataTableSlotContent,\n StatelessDataTableSlotRenderProps,\n} from './StatelessDataTableSlotRow';\n\ntype StatelessDataTableBodyProps<Data> = {\n rows: Row<Data>[];\n colCount: number;\n loading?: boolean;\n empty?: StatelessDataTableSlotContent<Data>;\n slotProps: StatelessDataTableSlotRenderProps<Data>;\n emptyClassName?: string;\n expansion?: StatelessDataTableExpansionConfig<Data>;\n selection?: StatelessDataTableSelectionConfig<Data>;\n};\n\nexport const StatelessDataTableBody = <Data,>({\n rows,\n colCount,\n loading,\n empty,\n slotProps,\n emptyClassName,\n expansion,\n selection,\n}: StatelessDataTableBodyProps<Data>): ReactNode => {\n const showEmptyState = !loading && rows.length === 0;\n const emptyContent =\n typeof empty === 'function'\n ? empty(slotProps)\n : (empty ?? 'No results found');\n const bodyRows = rows.flatMap((row) => {\n const baseRow = (\n <Table.Row\n key={`row-${row.id}`}\n data-selected={row.getIsSelected() || undefined}\n data-disabled={(selection && !row.getCanSelect()) || undefined}\n data-expanded={row.getIsExpanded() || undefined}\n >\n {row.getVisibleCells().map((cell) => (\n <Table.Cell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n ))}\n </Table.Row>\n );\n\n if (!expansion || !row.getIsExpanded()) {\n return [baseRow];\n }\n\n return [\n baseRow,\n <Table.Row\n key={`expanded-${row.id}`}\n id={`stateless-data-table-expanded-${row.id}`}\n >\n <Table.Cell colSpan={colCount} style={{ padding: 0 }}>\n {expansion.renderContent(row.original)}\n </Table.Cell>\n </Table.Row>,\n ];\n });\n\n return (\n <Table.Body>\n {showEmptyState ? (\n <Table.Row>\n <Table.Cell\n colSpan={colCount}\n classNames={{ td: emptyClassName ?? dataTableEmpty() }}\n >\n {emptyContent}\n </Table.Cell>\n </Table.Row>\n ) : (\n bodyRows\n )}\n </Table.Body>\n );\n};\n"],"mappings":"yMA0BA,MAAa,GAAiC,CAC5C,OACA,WACA,UACA,QACA,YACA,iBACA,YACA,eACkD,CAClD,IAAM,EAAiB,CAAC,GAAW,EAAK,SAAW,EAC7C,EACJ,OAAO,GAAU,WACb,EAAM,EAAU,CACf,GAAS,mBACV,EAAW,EAAK,QAAS,GAAQ,CACrC,IAAM,EACJ,EAAC,EAAM,IAAA,CAEL,gBAAe,EAAI,eAAe,EAAI,IAAA,GACtC,gBAAgB,GAAa,CAAC,EAAI,cAAc,EAAK,IAAA,GACrD,gBAAe,EAAI,eAAe,EAAI,IAAA,YAErC,EAAI,iBAAiB,CAAC,IAAK,GAC1B,EAAC,EAAM,KAAA,CAAA,SACJ,EAAW,EAAK,OAAO,UAAU,KAAM,EAAK,YAAY,CAAC,CAAA,CAD3C,EAAK,GAET,CACb,EATG,OAAO,EAAI,KAUN,CAOd,MAJI,CAAC,GAAa,CAAC,EAAI,eAAe,CAC7B,CAAC,EAAQ,CAGX,CACL,EACA,EAAC,EAAM,IAAA,CAEL,GAAI,iCAAiC,EAAI,cAEzC,EAAC,EAAM,KAAA,CAAK,QAAS,EAAU,MAAO,CAAE,QAAS,EAAG,UACjD,EAAU,cAAc,EAAI,SAAS,EAC3B,EALR,YAAY,EAAI,KAMX,CACb,EACD,CAEF,OACE,EAAC,EAAM,KAAA,CAAA,SACJ,EACC,EAAC,EAAM,IAAA,CAAA,SACL,EAAC,EAAM,KAAA,CACL,QAAS,EACT,WAAY,CAAE,GAAI,GAAkB,GAAgB,CAAE,UAErD,GACU,CAAA,CACH,CAEZ,EAAA,CAES"}
@@ -0,0 +1,2 @@
1
+ import{dataTableBulkBar as e}from"@mage-ui/styled-system/recipes";import{jsxs as t}from"react/jsx-runtime";const n=({selectedIds:n,className:r,selection:i})=>!i?.bulkActions||n.length===0?null:t(`div`,{className:r??e(),children:[t(`span`,{children:[n.length,` selected`]}),i.bulkActions(n)]});export{n as StatelessDataTableBulkBar};
2
+ //# sourceMappingURL=StatelessDataTableBulkBar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableBulkBar.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableBulkBar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableBulkBar } from '@mage-ui/styled-system/recipes';\n\nimport type { StatelessDataTableSelectionConfig } from './StatelessDataTable';\n\ntype StatelessDataTableBulkBarProps<Data> = {\n selectedIds: string[];\n className?: string;\n selection?: StatelessDataTableSelectionConfig<Data>;\n};\n\nexport const StatelessDataTableBulkBar = <Data,>({\n selectedIds,\n className,\n selection,\n}: StatelessDataTableBulkBarProps<Data>): ReactNode => {\n if (!selection?.bulkActions || selectedIds.length === 0) {\n return null;\n }\n\n return (\n <div className={className ?? dataTableBulkBar()}>\n <span>{selectedIds.length} selected</span>\n {selection.bulkActions(selectedIds)}\n </div>\n );\n};\n"],"mappings":"2GAYA,MAAa,GAAoC,CAC/C,cACA,YACA,eAEI,CAAC,GAAW,aAAe,EAAY,SAAW,EAC7C,KAIP,EAAC,MAAA,CAAI,UAAW,GAAa,GAAkB,WAC7C,EAAC,OAAA,CAAA,SAAA,CAAM,EAAY,OAAO,YAAA,CAAA,CAAgB,CACzC,EAAU,YAAY,EAAY,CAAA,EAC/B"}
@@ -0,0 +1,2 @@
1
+ import{Checkbox as e}from"../../../controls/checkbox/Checkbox.mjs";import{jsx as t}from"react/jsx-runtime";const n=()=>({id:`_select`,size:40,header:({table:n})=>{let r=n.getRowModel().rows,i=r.filter(e=>e.getCanSelect()),a=i.filter(e=>e.getIsSelected()).length,o=r.some(e=>!e.getCanSelect()),s=i.length>0&&a===i.length;return t(e,{"aria-label":`Select all rows`,checked:s&&!o,indeterminate:a>0&&(!s||o),onChange:()=>{n.toggleAllRowsSelected(!s)}})},cell:({row:n})=>t(e,{"aria-label":`Select row ${n.index+1}`,checked:n.getIsSelected(),disabled:!n.getCanSelect(),onChange:n.getToggleSelectedHandler()})}),r=()=>({id:`_expand`,size:40,header:()=>null,cell:({row:e})=>t(`button`,{type:`button`,onClick:e.getToggleExpandedHandler(),"aria-expanded":e.getIsExpanded(),"aria-controls":`stateless-data-table-expanded-${e.id}`,"aria-label":e.getIsExpanded()?`Collapse row`:`Expand row`,style:{cursor:`pointer`,background:`none`,border:`none`,padding:0,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:`transform 0.2s`,transform:e.getIsExpanded()?`rotate(90deg)`:`rotate(0deg)`},children:t(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:t(`path`,{d:`M6 4l4 4-4 4`,stroke:`currentColor`,strokeWidth:`1.5`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`})})})});export{r as getStatelessDataTableExpandColumn,n as getStatelessDataTableSelectColumn};
2
+ //# sourceMappingURL=StatelessDataTableColumns.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableColumns.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableColumns.tsx"],"sourcesContent":["import type { ColumnDef } from '@tanstack/react-table';\n\nimport { Checkbox } from '../../../controls/checkbox/Checkbox';\n\nexport const getStatelessDataTableSelectColumn = <Data,>(): ColumnDef<\n Data,\n unknown\n> => ({\n id: '_select',\n size: 40,\n header: ({ table }) => {\n const rows = table.getRowModel().rows;\n const selectableRows = rows.filter((row) => row.getCanSelect());\n const selectedSelectableCount = selectableRows.filter((row) =>\n row.getIsSelected(),\n ).length;\n const hasDisabledRows = rows.some((row) => !row.getCanSelect());\n const allSelectableSelected =\n selectableRows.length > 0 &&\n selectedSelectableCount === selectableRows.length;\n\n return (\n <Checkbox\n aria-label='Select all rows'\n checked={allSelectableSelected && !hasDisabledRows}\n indeterminate={\n selectedSelectableCount > 0 &&\n (!allSelectableSelected || hasDisabledRows)\n }\n onChange={() => {\n table.toggleAllRowsSelected(!allSelectableSelected);\n }}\n />\n );\n },\n cell: ({ row }) => (\n <Checkbox\n aria-label={`Select row ${row.index + 1}`}\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n />\n ),\n});\n\nexport const getStatelessDataTableExpandColumn = <Data,>(): ColumnDef<\n Data,\n unknown\n> => ({\n id: '_expand',\n size: 40,\n header: () => null,\n cell: ({ row }) => (\n <button\n type='button'\n onClick={row.getToggleExpandedHandler()}\n aria-expanded={row.getIsExpanded()}\n aria-controls={`stateless-data-table-expanded-${row.id}`}\n aria-label={row.getIsExpanded() ? 'Collapse row' : 'Expand row'}\n style={{\n cursor: 'pointer',\n background: 'none',\n border: 'none',\n padding: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'transform 0.2s',\n transform: row.getIsExpanded() ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n >\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='currentColor'\n aria-hidden='true'\n focusable='false'\n >\n <path\n d='M6 4l4 4-4 4'\n stroke='currentColor'\n strokeWidth='1.5'\n fill='none'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n </button>\n ),\n});\n"],"mappings":"2GAIA,MAAa,OAGP,CACJ,GAAI,UACJ,KAAM,GACN,QAAS,CAAE,WAAY,CACrB,IAAM,EAAO,EAAM,aAAa,CAAC,KAC3B,EAAiB,EAAK,OAAQ,GAAQ,EAAI,cAAc,CAAC,CACzD,EAA0B,EAAe,OAAQ,GACrD,EAAI,eAAe,CACpB,CAAC,OACI,EAAkB,EAAK,KAAM,GAAQ,CAAC,EAAI,cAAc,CAAC,CACzD,EACJ,EAAe,OAAS,GACxB,IAA4B,EAAe,OAE7C,OACE,EAAC,EAAA,CACC,aAAW,kBACX,QAAS,GAAyB,CAAC,EACnC,cACE,EAA0B,IACzB,CAAC,GAAyB,GAE7B,aAAgB,CACd,EAAM,sBAAsB,CAAC,EAAsB,GAErD,EAGN,MAAO,CAAE,SACP,EAAC,EAAA,CACC,aAAY,cAAc,EAAI,MAAQ,IACtC,QAAS,EAAI,eAAe,CAC5B,SAAU,CAAC,EAAI,cAAc,CAC7B,SAAU,EAAI,0BAA0B,EACxC,CAEL,EAEY,OAGP,CACJ,GAAI,UACJ,KAAM,GACN,WAAc,KACd,MAAO,CAAE,SACP,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EAAI,0BAA0B,CACvC,gBAAe,EAAI,eAAe,CAClC,gBAAe,iCAAiC,EAAI,KACpD,aAAY,EAAI,eAAe,CAAG,eAAiB,aACnD,MAAO,CACL,OAAQ,UACR,WAAY,OACZ,OAAQ,OACR,QAAS,EACT,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,WAAY,iBACZ,UAAW,EAAI,eAAe,CAAG,gBAAkB,eACpD,UAED,EAAC,MAAA,CACC,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,eACL,cAAY,OACZ,UAAU,iBAEV,EAAC,OAAA,CACC,EAAE,eACF,OAAO,eACP,YAAY,MACZ,KAAK,OACL,cAAc,QACd,eAAe,SACf,EACE,EACC,CAEZ"}
@@ -0,0 +1,2 @@
1
+ import{VisuallyHidden as e}from"../../../misc/visually-hidden/VisuallyHidden.mjs";import{Table as t}from"../../table/Table.mjs";import{jsx as n,jsxs as r}from"react/jsx-runtime";import{flexRender as i}from"@tanstack/react-table";const a={width:`100%`,display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:`0.5rem`,padding:0,border:`none`,background:`none`,color:`inherit`,font:`inherit`,textAlign:`inherit`,cursor:`pointer`,outline:`none`},o=e=>e===`asc`?`ascending`:e===`desc`?`descending`:`none`,s=e=>e===`asc`?`Sorted ascending`:e===`desc`?`Sorted descending`:`Activate to sort`,c=({headerGroups:c,totalSize:l,theadRef:u})=>n(t.Head,{ref:u,children:c.map(c=>n(t.Row,{children:c.headers.map(c=>{let u=c.column.getCanSort(),d=c.column.getIsSorted(),f=l>0?`${c.getSize()/l*100}%`:void 0;return n(t.HeaderCell,{scope:`col`,style:{width:f},"aria-sort":u?o(d):void 0,"data-sortable":u||void 0,"data-sort":d||void 0,children:c.isPlaceholder?null:u?r(`button`,{type:`button`,onClick:c.column.getToggleSortingHandler(),style:a,children:[n(`span`,{children:i(c.column.columnDef.header,c.getContext())}),n(`span`,{"aria-hidden":!0,children:d===`asc`?`↑`:d===`desc`?`↓`:``}),n(e,{children:s(d)})]}):i(c.column.columnDef.header,c.getContext())},c.id)})},c.id))});export{c as StatelessDataTableHeader};
2
+ //# sourceMappingURL=StatelessDataTableHeader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableHeader.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableHeader.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode, Ref } from 'react';\n\nimport { flexRender, type HeaderGroup } from '@tanstack/react-table';\n\nimport { VisuallyHidden } from '../../../misc/visually-hidden/VisuallyHidden';\nimport { Table } from '../../table/Table';\n\ntype StatelessDataTableHeaderProps<Data> = {\n headerGroups: HeaderGroup<Data>[];\n totalSize: number;\n theadRef?: Ref<HTMLTableSectionElement>;\n};\n\nconst sortButtonStyle: CSSProperties = {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '0.5rem',\n padding: 0,\n border: 'none',\n background: 'none',\n color: 'inherit',\n font: 'inherit',\n textAlign: 'inherit',\n cursor: 'pointer',\n outline: 'none',\n};\n\nconst getAriaSort = (sorted: false | 'asc' | 'desc') => {\n if (sorted === 'asc') return 'ascending';\n if (sorted === 'desc') return 'descending';\n return 'none';\n};\n\nconst getSortStatusText = (sorted: false | 'asc' | 'desc') => {\n if (sorted === 'asc') return 'Sorted ascending';\n if (sorted === 'desc') return 'Sorted descending';\n return 'Activate to sort';\n};\n\nexport const StatelessDataTableHeader = <Data,>({\n headerGroups,\n totalSize,\n theadRef,\n}: StatelessDataTableHeaderProps<Data>): ReactNode => (\n <Table.Head ref={theadRef}>\n {headerGroups.map((headerGroup) => (\n <Table.Row key={headerGroup.id}>\n {headerGroup.headers.map((header) => {\n const canSort = header.column.getCanSort();\n const sorted = header.column.getIsSorted();\n const width =\n totalSize > 0\n ? `${(header.getSize() / totalSize) * 100}%`\n : undefined;\n\n return (\n <Table.HeaderCell\n key={header.id}\n scope='col'\n style={{ width }}\n aria-sort={canSort ? getAriaSort(sorted) : undefined}\n data-sortable={canSort || undefined}\n data-sort={sorted || undefined}\n >\n {header.isPlaceholder ? null : canSort ? (\n <button\n type='button'\n onClick={header.column.getToggleSortingHandler()}\n style={sortButtonStyle}\n >\n <span>\n {flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </span>\n <span aria-hidden>\n {sorted === 'asc' ? '↑' : sorted === 'desc' ? '↓' : ''}\n </span>\n <VisuallyHidden>{getSortStatusText(sorted)}</VisuallyHidden>\n </button>\n ) : (\n flexRender(header.column.columnDef.header, header.getContext())\n )}\n </Table.HeaderCell>\n );\n })}\n </Table.Row>\n ))}\n </Table.Head>\n);\n"],"mappings":"qOAaA,MAAM,EAAiC,CACrC,MAAO,OACP,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,IAAK,SACL,QAAS,EACT,OAAQ,OACR,WAAY,OACZ,MAAO,UACP,KAAM,UACN,UAAW,UACX,OAAQ,UACR,QAAS,OACV,CAEK,EAAe,GACf,IAAW,MAAc,YACzB,IAAW,OAAe,aACvB,OAGH,EAAqB,GACrB,IAAW,MAAc,mBACzB,IAAW,OAAe,oBACvB,mBAGI,GAAmC,CAC9C,eACA,YACA,cAEA,EAAC,EAAM,KAAA,CAAK,IAAK,WACd,EAAa,IAAK,GACjB,EAAC,EAAM,IAAA,CAAA,SACJ,EAAY,QAAQ,IAAK,GAAW,CACnC,IAAM,EAAU,EAAO,OAAO,YAAY,CACpC,EAAS,EAAO,OAAO,aAAa,CACpC,EACJ,EAAY,EACR,GAAI,EAAO,SAAS,CAAG,EAAa,IAAI,GACxC,IAAA,GAEN,OACE,EAAC,EAAM,WAAA,CAEL,MAAM,MACN,MAAO,CAAE,QAAO,CAChB,YAAW,EAAU,EAAY,EAAO,CAAG,IAAA,GAC3C,gBAAe,GAAW,IAAA,GAC1B,YAAW,GAAU,IAAA,YAEpB,EAAO,cAAgB,KAAO,EAC7B,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EAAO,OAAO,yBAAyB,CAChD,MAAO,YAEP,EAAC,OAAA,CAAA,SACE,EACC,EAAO,OAAO,UAAU,OACxB,EAAO,YAAY,CACpB,CAAA,CACI,CACP,EAAC,OAAA,CAAK,cAAA,YACH,IAAW,MAAQ,IAAM,IAAW,OAAS,IAAM,IAC/C,CACP,EAAC,EAAA,CAAA,SAAgB,EAAkB,EAAO,CAAA,CAAkB,GACrD,CAET,EAAW,EAAO,OAAO,UAAU,OAAQ,EAAO,YAAY,CAAC,EAzB5D,EAAO,GA2BK,EAErB,CAAA,CAxCY,EAAY,GAyChB,CACZ,EACS"}
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from "react";
2
+
3
+ //#region src/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.d.ts
4
+ type StatelessDataTablePageSizeProps = {
5
+ value: number;
6
+ options: number[];
7
+ onChange: (size: number) => void;
8
+ label?: string;
9
+ className?: string;
10
+ };
11
+ declare const StatelessDataTablePageSize: ({
12
+ value,
13
+ options,
14
+ onChange,
15
+ label,
16
+ className
17
+ }: StatelessDataTablePageSizeProps) => ReactNode;
18
+ //#endregion
19
+ export { StatelessDataTablePageSize, StatelessDataTablePageSizeProps };
20
+ //# sourceMappingURL=StatelessDataTablePageSize.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTablePageSize.d.mts","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.tsx"],"mappings":";;;KAIY,+BAAA;EACV,KAAA;EACA,OAAA;EACA,QAAA,GAAW,IAAA;EACX,KAAA;EACA,SAAA;AAAA;AAAA,cAGW,0BAAA;EAA8B,KAAA;EAAA,OAAA;EAAA,QAAA;EAAA,KAAA;EAAA;AAAA,GAMxC,+BAAA,KAAkC,SAAA"}
@@ -0,0 +1,2 @@
1
+ import{dataTablePageSize as e}from"@mage-ui/styled-system/recipes";import{jsx as t,jsxs as n}from"react/jsx-runtime";const r=({value:r,options:i,onChange:a,label:o=`Rows per page`,className:s})=>n(`label`,{className:s??e(),children:[t(`span`,{children:o}),t(`select`,{value:r,onChange:e=>a(Number(e.target.value)),children:i.map(e=>t(`option`,{value:e,children:e},e))})]});export{r as StatelessDataTablePageSize};
2
+ //# sourceMappingURL=StatelessDataTablePageSize.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTablePageSize.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTablePageSize } from '@mage-ui/styled-system/recipes';\n\nexport type StatelessDataTablePageSizeProps = {\n value: number;\n options: number[];\n onChange: (size: number) => void;\n label?: string;\n className?: string;\n};\n\nexport const StatelessDataTablePageSize = ({\n value,\n options,\n onChange,\n label = 'Rows per page',\n className,\n}: StatelessDataTablePageSizeProps): ReactNode => (\n <label className={className ?? dataTablePageSize()}>\n <span>{label}</span>\n <select value={value} onChange={(e) => onChange(Number(e.target.value))}>\n {options.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </label>\n);\n"],"mappings":"qHAYA,MAAa,GAA8B,CACzC,QACA,UACA,WACA,QAAQ,gBACR,eAEA,EAAC,QAAA,CAAM,UAAW,GAAa,GAAmB,WAChD,EAAC,OAAA,CAAA,SAAM,EAAA,CAAa,CACpB,EAAC,SAAA,CAAc,QAAO,SAAW,GAAM,EAAS,OAAO,EAAE,OAAO,MAAM,CAAC,UACpE,EAAQ,IAAK,GACZ,EAAC,SAAA,CAAkB,MAAO,WACvB,GADU,EAEJ,CACT,EACK,CAAA,EACH"}
@@ -0,0 +1,2 @@
1
+ import{cx as e}from"@mage-ui/styled-system/css";import{dataTable as t,dataTableRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r}from"react/jsx-runtime";const i=({busy:i,classNames:a,children:o})=>r(`div`,{"aria-busy":i||void 0,className:e(a?.dataTable??t(),a?.root??n()),children:o});export{i as StatelessDataTableRootContainer};
2
+ //# sourceMappingURL=StatelessDataTableRootContainer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableRootContainer.mjs","names":["dataTableRecipe"],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableRootContainer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dataTable as dataTableRecipe,\n dataTableRoot,\n} from '@mage-ui/styled-system/recipes';\n\nimport type { StatelessDataTableClassNames } from './StatelessDataTable';\n\nexport type StatelessDataTableRootContainerProps = {\n busy?: boolean;\n classNames?: StatelessDataTableClassNames;\n children: ReactNode;\n};\n\nexport const StatelessDataTableRootContainer = ({\n busy,\n classNames,\n children,\n}: StatelessDataTableRootContainerProps): ReactNode => {\n return (\n <div\n aria-busy={busy || undefined}\n className={cx(\n classNames?.dataTable ?? dataTableRecipe(),\n classNames?.root ?? dataTableRoot(),\n )}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"sKAgBA,MAAa,GAAmC,CAC9C,OACA,aACA,cAGE,EAAC,MAAA,CACC,YAAW,GAAQ,IAAA,GACnB,UAAW,EACT,GAAY,WAAaA,GAAiB,CAC1C,GAAY,MAAQ,GAAe,CACpC,CAEA,YACG"}
@@ -0,0 +1,24 @@
1
+ import { StatelessDataTableContextValue } from "./useStatelessDataTableContext.mjs";
2
+ import { ReactNode } from "react";
3
+
4
+ //#region src/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.d.ts
5
+ type StatelessDataTableSlotRenderProps<Data> = StatelessDataTableContextValue<Data>;
6
+ type StatelessDataTableSlotContent<Data> = ReactNode | ((props: StatelessDataTableSlotRenderProps<Data>) => ReactNode);
7
+ type StatelessDataTableSlots<Data = unknown> = {
8
+ top?: StatelessDataTableSlotContent<Data>;
9
+ bottom?: StatelessDataTableSlotContent<Data>;
10
+ empty?: StatelessDataTableSlotContent<Data>;
11
+ };
12
+ type StatelessDataTableSlotRowProps<Data> = {
13
+ slot?: StatelessDataTableSlotContent<Data>;
14
+ slotProps: StatelessDataTableSlotRenderProps<Data>;
15
+ className?: string;
16
+ };
17
+ declare const StatelessDataTableSlotRow: <Data>({
18
+ slot,
19
+ slotProps,
20
+ className
21
+ }: StatelessDataTableSlotRowProps<Data>) => ReactNode;
22
+ //#endregion
23
+ export { StatelessDataTableSlotContent, StatelessDataTableSlotRenderProps, StatelessDataTableSlotRow, StatelessDataTableSlotRowProps, StatelessDataTableSlots };
24
+ //# sourceMappingURL=StatelessDataTableSlotRow.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableSlotRow.d.mts","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.tsx"],"mappings":";;;;KAMY,iCAAA,SACV,8BAAA,CAA+B,IAAA;AAAA,KAErB,6BAAA,SACR,SAAA,KACE,KAAA,EAAO,iCAAA,CAAkC,IAAA,MAAU,SAAA;AAAA,KAE7C,uBAAA;EACV,GAAA,GAAM,6BAAA,CAA8B,IAAA;EACpC,MAAA,GAAS,6BAAA,CAA8B,IAAA;EACvC,KAAA,GAAQ,6BAAA,CAA8B,IAAA;AAAA;AAAA,KAG5B,8BAAA;EACV,IAAA,GAAO,6BAAA,CAA8B,IAAA;EACrC,SAAA,EAAW,iCAAA,CAAkC,IAAA;EAC7C,SAAA;AAAA;AAAA,cAGW,yBAAA;EAAoC,IAAA;EAAA,SAAA;EAAA;AAAA,GAI9C,8BAAA,CAA+B,IAAA,MAAQ,SAAA"}
@@ -0,0 +1,2 @@
1
+ import{dataTableSlotRow as e}from"@mage-ui/styled-system/recipes";import{jsx as t}from"react/jsx-runtime";const n=({slot:n,slotProps:r,className:i})=>{if(n==null)return null;let a=typeof n==`function`?n(r):n;return a==null||a===!1?null:t(`div`,{className:i??e(),children:a})};export{n as StatelessDataTableSlotRow};
2
+ //# sourceMappingURL=StatelessDataTableSlotRow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableSlotRow.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableSlotRow } from '@mage-ui/styled-system/recipes';\n\nimport type { StatelessDataTableContextValue } from './useStatelessDataTableContext';\n\nexport type StatelessDataTableSlotRenderProps<Data> =\n StatelessDataTableContextValue<Data>;\n\nexport type StatelessDataTableSlotContent<Data> =\n | ReactNode\n | ((props: StatelessDataTableSlotRenderProps<Data>) => ReactNode);\n\nexport type StatelessDataTableSlots<Data = unknown> = {\n top?: StatelessDataTableSlotContent<Data>;\n bottom?: StatelessDataTableSlotContent<Data>;\n empty?: StatelessDataTableSlotContent<Data>;\n};\n\nexport type StatelessDataTableSlotRowProps<Data> = {\n slot?: StatelessDataTableSlotContent<Data>;\n slotProps: StatelessDataTableSlotRenderProps<Data>;\n className?: string;\n};\n\nexport const StatelessDataTableSlotRow = <Data,>({\n slot,\n slotProps,\n className,\n}: StatelessDataTableSlotRowProps<Data>): ReactNode => {\n if (slot === null || slot === undefined) {\n return null;\n }\n\n const content = typeof slot === 'function' ? slot(slotProps) : slot;\n\n if (content === null || content === undefined || content === false) {\n return null;\n }\n\n return <div className={className ?? dataTableSlotRow()}>{content}</div>;\n};\n"],"mappings":"0GAyBA,MAAa,GAAoC,CAC/C,OACA,YACA,eACqD,CACrD,GAAI,GAAS,KACX,OAAO,KAGT,IAAM,EAAU,OAAO,GAAS,WAAa,EAAK,EAAU,CAAG,EAM/D,OAJI,GAAY,MAAiC,IAAY,GACpD,KAGF,EAAC,MAAA,CAAI,UAAW,GAAa,GAAkB,UAAG,GAAc"}
@@ -0,0 +1,2 @@
1
+ import{dataTableLoading as e}from"@mage-ui/styled-system/recipes";import{jsx as t,jsxs as n}from"react/jsx-runtime";const r=({loading:r,headerHeight:i,loadingClassName:a,children:o})=>n(`div`,{style:{position:`relative`},children:[r&&i>0?t(`div`,{className:a??e(),style:{top:`${i}px`}}):null,o]});export{r as StatelessDataTableViewport};
2
+ //# sourceMappingURL=StatelessDataTableViewport.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatelessDataTableViewport.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/StatelessDataTableViewport.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableLoading } from '@mage-ui/styled-system/recipes';\n\nexport type StatelessDataTableViewportProps = {\n loading?: boolean;\n headerHeight: number;\n loadingClassName?: string;\n children: ReactNode;\n};\n\nexport const StatelessDataTableViewport = ({\n loading,\n headerHeight,\n loadingClassName,\n children,\n}: StatelessDataTableViewportProps): ReactNode => {\n return (\n <div style={{ position: 'relative' }}>\n {loading && headerHeight > 0 ? (\n <div\n className={loadingClassName ?? dataTableLoading()}\n style={{ top: `${headerHeight}px` }}\n />\n ) : null}\n {children}\n </div>\n );\n};\n"],"mappings":"oHAWA,MAAa,GAA8B,CACzC,UACA,eACA,mBACA,cAGE,EAAC,MAAA,CAAI,MAAO,CAAE,SAAU,WAAY,WACjC,GAAW,EAAe,EACzB,EAAC,MAAA,CACC,UAAW,GAAoB,GAAkB,CACjD,MAAO,CAAE,IAAK,GAAG,EAAa,IAAK,EACnC,CACA,KACH,EAAA,EACG"}
@@ -0,0 +1,6 @@
1
+ import { StatelessDataTableContextProvider, StatelessDataTableContextValue, useStatelessDataTableContext } from "./useStatelessDataTableContext.mjs";
2
+ import { StatelessDataTableSlotContent, StatelessDataTableSlotRenderProps, StatelessDataTableSlotRow, StatelessDataTableSlotRowProps, StatelessDataTableSlots } from "./StatelessDataTableSlotRow.mjs";
3
+ import { StatelessDataTable, StatelessDataTableClassNames, StatelessDataTableExpansionConfig, StatelessDataTablePaginationConfig, StatelessDataTableProps, StatelessDataTableSelectionConfig, StatelessDataTableSortingConfig, StatelessDataTableTableConfig } from "./StatelessDataTable.mjs";
4
+ import { StatelessDataTablePageSize, StatelessDataTablePageSizeProps } from "./StatelessDataTablePageSize.mjs";
5
+ import { ColumnDef as ColumnDef$1, ExpandedState as ExpandedState$1, PaginationState as PaginationState$1, RowSelectionState as RowSelectionState$1, SortingState as SortingState$1 } from "@tanstack/react-table";
6
+ export { type ColumnDef$1 as ColumnDef, type ExpandedState$1 as ExpandedState, type PaginationState$1 as PaginationState, type RowSelectionState$1 as RowSelectionState, type SortingState$1 as SortingState };
@@ -0,0 +1,2 @@
1
+ import{useElementOuterSize as e}from"../../../../hooks/useElementOuterSize.mjs";import{getStatelessDataTableExpandColumn as t,getStatelessDataTableSelectColumn as n}from"./StatelessDataTableColumns.mjs";import{getCoreRowModel as r,getExpandedRowModel as i,useReactTable as a}from"@tanstack/react-table";const o=({data:o,columns:s,sorting:c,pagination:l,selection:u,expansion:d,loading:f,onRefresh:p,options:m,layout:h})=>{let g=h??`fixed`,_=u?.isRowDisabled,{ref:v,height:y}=e(),b=a({data:o,columns:[...d?[t()]:[],...u?[n()]:[],...s],getCoreRowModel:r(),enableSorting:!!c,...c&&{manualSorting:!0,onSortingChange:c.onChange},...l&&{manualPagination:!0,onPaginationChange:l.onChange,pageCount:l.pageCount,...l.rowCount!==void 0&&{rowCount:l.rowCount}},...u&&{enableRowSelection:_?e=>!_(e.original):!0,onRowSelectionChange:u.onChange,...u.getRowId&&{getRowId:e=>u.getRowId?.(e)??``}},...d&&{enableExpanding:!0,getRowCanExpand:()=>!0,getExpandedRowModel:i(),onExpandedChange:d.onChange},...m,state:{...c&&{sorting:c.state},...l&&{pagination:l.state},...u&&{rowSelection:u.state},...d&&{expanded:d.state}}}),x=u?Object.entries(u.state).filter(([,e])=>e).map(([e])=>e):[];return{headerRef:v,headerHeight:y,layout:g,slotProps:{table:b,refresh:()=>{p?.()},loading:f,selectedIds:x,selectedCount:x.length,sorting:c,pagination:l,selection:u,expansion:d},table:b}};export{o as useStatelessDataTable};
2
+ //# sourceMappingURL=useStatelessDataTable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatelessDataTable.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/useStatelessDataTable.ts"],"sourcesContent":["import {\n getCoreRowModel,\n getExpandedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\n\nimport { useElementOuterSize } from '../../../../hooks/useElementOuterSize';\nimport type { StatelessDataTableProps } from './StatelessDataTable';\nimport {\n getStatelessDataTableExpandColumn,\n getStatelessDataTableSelectColumn,\n} from './StatelessDataTableColumns';\nimport type { StatelessDataTableContextValue } from './useStatelessDataTableContext';\n\ntype UseStatelessDataTableResult<Data> = {\n headerRef: ReturnType<\n typeof useElementOuterSize<HTMLTableSectionElement>\n >['ref'];\n headerHeight: number;\n layout: 'auto' | 'fixed';\n slotProps: StatelessDataTableContextValue<Data>;\n table: StatelessDataTableContextValue<Data>['table'];\n};\n\nexport const useStatelessDataTable = <Data>({\n data,\n columns,\n sorting,\n pagination,\n selection,\n expansion,\n loading,\n onRefresh,\n options,\n layout: providedLayout,\n}: StatelessDataTableProps<Data>): UseStatelessDataTableResult<Data> => {\n const layout = providedLayout ?? 'fixed';\n const isRowDisabled = selection?.isRowDisabled;\n const { ref: headerRef, height: headerHeight } =\n useElementOuterSize<HTMLTableSectionElement>();\n\n const allColumns = [\n ...(expansion ? [getStatelessDataTableExpandColumn<Data>()] : []),\n ...(selection ? [getStatelessDataTableSelectColumn<Data>()] : []),\n ...columns,\n ];\n\n const table = useReactTable<Data>({\n data,\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n enableSorting: Boolean(sorting),\n ...(sorting && {\n manualSorting: true,\n onSortingChange: sorting.onChange,\n }),\n ...(pagination && {\n manualPagination: true,\n onPaginationChange: pagination.onChange,\n pageCount: pagination.pageCount,\n ...(pagination.rowCount !== undefined && {\n rowCount: pagination.rowCount,\n }),\n }),\n ...(selection && {\n enableRowSelection: isRowDisabled\n ? (row) => !isRowDisabled(row.original)\n : true,\n onRowSelectionChange: selection.onChange,\n ...(selection.getRowId && {\n getRowId: (row: Data) => selection.getRowId?.(row) ?? '',\n }),\n }),\n ...(expansion && {\n enableExpanding: true,\n getRowCanExpand: () => true,\n getExpandedRowModel: getExpandedRowModel(),\n onExpandedChange: expansion.onChange,\n }),\n ...options,\n state: {\n ...(sorting && { sorting: sorting.state }),\n ...(pagination && { pagination: pagination.state }),\n ...(selection && { rowSelection: selection.state }),\n ...(expansion && { expanded: expansion.state }),\n },\n });\n\n const selectedIds = selection\n ? Object.entries(selection.state)\n .filter(([, isSelected]) => isSelected)\n .map(([id]) => id)\n : [];\n\n const refresh = () => {\n void onRefresh?.();\n };\n\n const slotProps = {\n table,\n refresh,\n loading,\n selectedIds,\n selectedCount: selectedIds.length,\n sorting,\n pagination,\n selection,\n expansion,\n } satisfies StatelessDataTableContextValue<Data>;\n\n return {\n headerRef,\n headerHeight,\n layout,\n slotProps,\n table,\n };\n};\n"],"mappings":"+SAwBA,MAAa,GAA+B,CAC1C,OACA,UACA,UACA,aACA,YACA,YACA,UACA,YACA,UACA,OAAQ,KAC8D,CACtE,IAAM,EAAS,GAAkB,QAC3B,EAAgB,GAAW,cAC3B,CAAE,IAAK,EAAW,OAAQ,GAC9B,GAA8C,CAQ1C,EAAQ,EAAoB,CAChC,OACA,QARiB,CACjB,GAAI,EAAY,CAAC,GAAyC,CAAC,CAAG,EAAE,CAChE,GAAI,EAAY,CAAC,GAAyC,CAAC,CAAG,EAAE,CAChE,GAAG,EACJ,CAKC,gBAAiB,GAAiB,CAClC,cAAe,EAAQ,EACvB,GAAI,GAAW,CACb,cAAe,GACf,gBAAiB,EAAQ,SAC1B,CACD,GAAI,GAAc,CAChB,iBAAkB,GAClB,mBAAoB,EAAW,SAC/B,UAAW,EAAW,UACtB,GAAI,EAAW,WAAa,IAAA,IAAa,CACvC,SAAU,EAAW,SACtB,CACF,CACD,GAAI,GAAa,CACf,mBAAoB,EACf,GAAQ,CAAC,EAAc,EAAI,SAAS,CACrC,GACJ,qBAAsB,EAAU,SAChC,GAAI,EAAU,UAAY,CACxB,SAAW,GAAc,EAAU,WAAW,EAAI,EAAI,GACvD,CACF,CACD,GAAI,GAAa,CACf,gBAAiB,GACjB,oBAAuB,GACvB,oBAAqB,GAAqB,CAC1C,iBAAkB,EAAU,SAC7B,CACD,GAAG,EACH,MAAO,CACL,GAAI,GAAW,CAAE,QAAS,EAAQ,MAAO,CACzC,GAAI,GAAc,CAAE,WAAY,EAAW,MAAO,CAClD,GAAI,GAAa,CAAE,aAAc,EAAU,MAAO,CAClD,GAAI,GAAa,CAAE,SAAU,EAAU,MAAO,CAC/C,CACF,CAAC,CAEI,EAAc,EAChB,OAAO,QAAQ,EAAU,MAAM,CAC5B,QAAQ,EAAG,KAAgB,EAAW,CACtC,KAAK,CAAC,KAAQ,EAAG,CACpB,EAAE,CAkBN,MAAO,CACL,YACA,eACA,SACA,UAhBgB,CAChB,QACA,YANoB,CACf,KAAa,EAMlB,UACA,cACA,cAAe,EAAY,OAC3B,UACA,aACA,YACA,YACD,CAOC,QACD"}
@@ -0,0 +1,21 @@
1
+ import { StatelessDataTableExpansionConfig, StatelessDataTablePaginationConfig, StatelessDataTableSelectionConfig, StatelessDataTableSortingConfig } from "./StatelessDataTable.mjs";
2
+ import * as react from "react";
3
+ import * as _tanstack_react_table0 from "@tanstack/react-table";
4
+
5
+ //#region src/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.d.ts
6
+ type StatelessDataTableContextValue<Data> = {
7
+ table: _tanstack_react_table0.Table<Data>;
8
+ refresh: () => void;
9
+ loading?: boolean;
10
+ selectedIds: string[];
11
+ selectedCount: number;
12
+ sorting?: StatelessDataTableSortingConfig;
13
+ pagination?: StatelessDataTablePaginationConfig;
14
+ selection?: StatelessDataTableSelectionConfig<Data>;
15
+ expansion?: StatelessDataTableExpansionConfig<Data>;
16
+ };
17
+ declare const useStatelessDataTableContext: <Data>() => StatelessDataTableContextValue<Data>;
18
+ declare const StatelessDataTableContextProvider: react.Provider<StatelessDataTableContextValue<unknown> | null>;
19
+ //#endregion
20
+ export { StatelessDataTableContextProvider, StatelessDataTableContextValue, useStatelessDataTableContext };
21
+ //# sourceMappingURL=useStatelessDataTableContext.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatelessDataTableContext.d.mts","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.ts"],"mappings":";;;;;KASY,8BAAA;EACV,KAAA,EAAiD,sBAAA,CAAV,KAAA,CAAM,IAAA;EAC7C,OAAA;EACA,OAAA;EACA,WAAA;EACA,aAAA;EACA,OAAA,GAAU,+BAAA;EACV,UAAA,GAAa,kCAAA;EACb,SAAA,GAAY,iCAAA,CAAkC,IAAA;EAC9C,SAAA,GAAY,iCAAA,CAAkC,IAAA;AAAA;AAAA,cAMnC,4BAAA,cAER,8BAAA,CAA+B,IAAA;AAAA,cAYvB,iCAAA,EAAiC,KAAA,CAAA,QAAA,CAAA,8BAAA"}
@@ -0,0 +1,2 @@
1
+ import{createContext as e,useContext as t}from"react";const n=e(null),r=()=>{let e=t(n);if(!e)throw Error(`useStatelessDataTableContext must be used within <StatelessDataTable> or one of its slots.`);return e},i=n.Provider;export{i as StatelessDataTableContextProvider,r as useStatelessDataTableContext};
2
+ //# sourceMappingURL=useStatelessDataTableContext.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatelessDataTableContext.mjs","names":[],"sources":["../../../../../src/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type {\n StatelessDataTableExpansionConfig,\n StatelessDataTablePaginationConfig,\n StatelessDataTableSelectionConfig,\n StatelessDataTableSortingConfig,\n} from './StatelessDataTable';\n\nexport type StatelessDataTableContextValue<Data> = {\n table: import('@tanstack/react-table').Table<Data>;\n refresh: () => void;\n loading?: boolean;\n selectedIds: string[];\n selectedCount: number;\n sorting?: StatelessDataTableSortingConfig;\n pagination?: StatelessDataTablePaginationConfig;\n selection?: StatelessDataTableSelectionConfig<Data>;\n expansion?: StatelessDataTableExpansionConfig<Data>;\n};\n\nconst StatelessDataTableContext =\n createContext<StatelessDataTableContextValue<unknown> | null>(null);\n\nexport const useStatelessDataTableContext = <\n Data,\n>(): StatelessDataTableContextValue<Data> => {\n const context = useContext(StatelessDataTableContext);\n\n if (!context) {\n throw new Error(\n 'useStatelessDataTableContext must be used within <StatelessDataTable> or one of its slots.',\n );\n }\n\n return context as StatelessDataTableContextValue<Data>;\n};\n\nexport const StatelessDataTableContextProvider =\n StatelessDataTableContext.Provider;\n"],"mappings":"sDAqBA,MAAM,EACJ,EAA8D,KAAK,CAExD,MAEgC,CAC3C,IAAM,EAAU,EAAW,EAA0B,CAErD,GAAI,CAAC,EACH,MAAU,MACR,6FACD,CAGH,OAAO,GAGI,EACX,EAA0B"}
@@ -0,0 +1,5 @@
1
+ import { StatelessDataTableContextProvider, StatelessDataTableContextValue, useStatelessDataTableContext } from "./datatable-stateless/useStatelessDataTableContext.mjs";
2
+ import { StatelessDataTableSlotContent, StatelessDataTableSlotRenderProps, StatelessDataTableSlotRow, StatelessDataTableSlotRowProps, StatelessDataTableSlots } from "./datatable-stateless/StatelessDataTableSlotRow.mjs";
3
+ import { StatelessDataTable, StatelessDataTableClassNames, StatelessDataTableExpansionConfig, StatelessDataTablePaginationConfig, StatelessDataTableProps, StatelessDataTableSelectionConfig, StatelessDataTableSortingConfig, StatelessDataTableTableConfig } from "./datatable-stateless/StatelessDataTable.mjs";
4
+ import { StatelessDataTablePageSize, StatelessDataTablePageSizeProps } from "./datatable-stateless/StatelessDataTablePageSize.mjs";
5
+ import { ColumnDef, ExpandedState, PaginationState, RowSelectionState, SortingState } from "./datatable-stateless/index.mjs";
@@ -1,2 +1,2 @@
1
- import{IconRaw as e}from"../icon-raw/IconRaw.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{icon as n,iconIconRaw as r,iconIconRawRoot as i,iconRoot as a}from"@mage-ui/styled-system/recipes";import{jsx as o}from"react/jsx-runtime";const s=({path:s,name:c,classNames:l})=>o(`span`,{className:t(l?.icon??n(),l?.root??a()),"aria-hidden":`true`,children:o(e,{classNames:{iconRaw:l?.iconRaw?.iconRaw??r(),root:l?.iconRaw?.root??i()},path:s,name:c})});export{s as Icon};
1
+ import{IconRaw as e}from"../icon-raw/IconRaw.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{icon as n,iconIconRaw as r,iconIconRawRoot as i,iconRoot as a}from"@mage-ui/styled-system/recipes";import{jsx as o}from"react/jsx-runtime";const s=({path:s,name:c,classNames:l})=>o(`span`,{className:t(l?.icon??n(),l?.root??a()),children:o(e,{classNames:{iconRaw:l?.iconRaw?.iconRaw??r(),root:l?.iconRaw?.root??i()},path:s,name:c})});export{s as Icon};
2
2
  //# sourceMappingURL=Icon.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon/Icon.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n type IconVariantProps,\n icon,\n iconIconRaw,\n iconIconRawRoot,\n iconRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { IconRaw } from '@/components/data-display/icons/icon-raw/IconRaw';\n\nexport type IconProps = {\n name: string;\n path: string;\n classNames?: {\n icon?: string;\n root?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n} & IconVariantProps;\n\nexport const Icon = ({ path, name, classNames }: IconProps): ReactNode => {\n return (\n <span\n className={cx(classNames?.icon ?? icon(), classNames?.root ?? iconRoot())}\n aria-hidden='true'\n >\n <IconRaw\n classNames={{\n iconRaw: classNames?.iconRaw?.iconRaw ?? iconIconRaw(),\n root: classNames?.iconRaw?.root ?? iconIconRawRoot(),\n }}\n path={path}\n name={name}\n />\n </span>\n );\n};\n"],"mappings":"oPAyBA,MAAa,GAAQ,CAAE,OAAM,OAAM,gBAE/B,EAAC,OAAA,CACC,UAAW,EAAG,GAAY,MAAQ,GAAM,CAAE,GAAY,MAAQ,GAAU,CAAC,CACzE,cAAY,gBAEZ,EAAC,EAAA,CACC,WAAY,CACV,QAAS,GAAY,SAAS,SAAW,GAAa,CACtD,KAAM,GAAY,SAAS,MAAQ,GAAiB,CACrD,CACK,OACA,QACN,EACG"}
1
+ {"version":3,"file":"Icon.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon/Icon.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n type IconVariantProps,\n icon,\n iconIconRaw,\n iconIconRawRoot,\n iconRoot,\n} from '@mage-ui/styled-system/recipes';\nimport { IconRaw } from '@/components/data-display/icons/icon-raw/IconRaw';\n\nexport type IconProps = {\n name: string;\n path: string;\n classNames?: {\n icon?: string;\n root?: string;\n iconRaw?: {\n iconRaw?: string;\n root?: string;\n };\n };\n} & IconVariantProps;\n\nexport const Icon = ({ path, name, classNames }: IconProps): ReactNode => {\n return (\n <span\n className={cx(classNames?.icon ?? icon(), classNames?.root ?? iconRoot())}\n >\n <IconRaw\n classNames={{\n iconRaw: classNames?.iconRaw?.iconRaw ?? iconIconRaw(),\n root: classNames?.iconRaw?.root ?? iconIconRawRoot(),\n }}\n path={path}\n name={name}\n />\n </span>\n );\n};\n"],"mappings":"oPAyBA,MAAa,GAAQ,CAAE,OAAM,OAAM,gBAE/B,EAAC,OAAA,CACC,UAAW,EAAG,GAAY,MAAQ,GAAM,CAAE,GAAY,MAAQ,GAAU,CAAC,UAEzE,EAAC,EAAA,CACC,WAAY,CACV,QAAS,GAAY,SAAS,SAAW,GAAa,CACtD,KAAM,GAAY,SAAS,MAAQ,GAAiB,CACrD,CACK,OACA,QACN,EACG"}
@@ -1,2 +1,2 @@
1
- import{cx as e}from"@mage-ui/styled-system/css";import{iconRaw as t,iconRawRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({path:a,name:o,classNames:s,...c})=>i(`svg`,{...c,className:e(s?.iconRaw??t(),s?.root??n(),c.className),children:[r(`title`,{children:o}),r(`use`,{href:`${a}#${o}`})]});export{a as IconRaw};
1
+ import{cx as e}from"@mage-ui/styled-system/css";import{iconRaw as t,iconRawRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r}from"react/jsx-runtime";const i=({path:i,name:a,classNames:o,...s})=>r(`svg`,{...s,className:e(o?.iconRaw??t(),o?.root??n(),s.className),"aria-hidden":`true`,focusable:`false`,children:r(`use`,{href:`${i}#${a}`})});export{i as IconRaw};
2
2
  //# sourceMappingURL=IconRaw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconRaw.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-raw/IconRaw.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { iconRaw, iconRawRoot } from '@mage-ui/styled-system/recipes';\n\nexport type IconRawProps = ComponentPropsWithoutRef<'svg'> & {\n path: string;\n name: string;\n classNames?: {\n iconRaw?: string;\n root?: string;\n };\n};\n\nexport const IconRaw = ({\n path,\n name,\n classNames,\n ...props\n}: IconRawProps): ReactNode => {\n return (\n <svg\n {...props}\n className={cx(\n classNames?.iconRaw ?? iconRaw(),\n classNames?.root ?? iconRawRoot(),\n props.className,\n )}\n >\n <title>{name}</title>\n <use href={`${path}#${name}`} />\n </svg>\n );\n};\n"],"mappings":"4KAcA,MAAa,GAAW,CACtB,OACA,OACA,aACA,GAAG,KAGD,EAAC,MAAA,CACC,GAAI,EACJ,UAAW,EACT,GAAY,SAAW,GAAS,CAChC,GAAY,MAAQ,GAAa,CACjC,EAAM,UACP,WAED,EAAC,QAAA,CAAA,SAAO,EAAA,CAAa,CACrB,EAAC,MAAA,CAAI,KAAM,GAAG,EAAK,GAAG,IAAA,CAAU,CAAA,EAC5B"}
1
+ {"version":3,"file":"IconRaw.mjs","names":[],"sources":["../../../../../src/components/data-display/icons/icon-raw/IconRaw.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport { iconRaw, iconRawRoot } from '@mage-ui/styled-system/recipes';\n\nexport type IconRawProps = ComponentPropsWithoutRef<'svg'> & {\n path: string;\n name: string;\n classNames?: {\n iconRaw?: string;\n root?: string;\n };\n};\n\nexport const IconRaw = ({\n path,\n name,\n classNames,\n ...props\n}: IconRawProps): ReactNode => {\n return (\n <svg\n {...props}\n className={cx(\n classNames?.iconRaw ?? iconRaw(),\n classNames?.root ?? iconRawRoot(),\n props.className,\n )}\n aria-hidden='true'\n focusable='false'\n >\n <use href={`${path}#${name}`} />\n </svg>\n );\n};\n"],"mappings":"kKAcA,MAAa,GAAW,CACtB,OACA,OACA,aACA,GAAG,KAGD,EAAC,MAAA,CACC,GAAI,EACJ,UAAW,EACT,GAAY,SAAW,GAAS,CAChC,GAAY,MAAQ,GAAa,CACjC,EAAM,UACP,CACD,cAAY,OACZ,UAAU,iBAEV,EAAC,MAAA,CAAI,KAAM,GAAG,EAAK,GAAG,IAAA,CAAU,EAC5B"}
@@ -1,2 +1,2 @@
1
- import{cx as e}from"@mage-ui/styled-system/css";import{iconSvg as t,iconSvgRoot as n,iconSvgSvg as r}from"@mage-ui/styled-system/recipes";import{jsx as i}from"react/jsx-runtime";const a=({classNames:a,children:o,width:s,height:c,viewBox:l})=>i(`span`,{className:e(a?.iconSvg??t(),a?.root??n()),"aria-hidden":`true`,children:i(`svg`,{className:a?.svg??r(),width:s,height:c,viewBox:l,"aria-hidden":`true`,focusable:`false`,xmlns:`http://www.w3.org/2000/svg`,children:o})});export{a as IconSvg};
1
+ import{cx as e}from"@mage-ui/styled-system/css";import{iconSvg as t,iconSvgRoot as n,iconSvgSvg as r}from"@mage-ui/styled-system/recipes";import{jsx as i}from"react/jsx-runtime";const a=({classNames:a,children:o,width:s,height:c,viewBox:l})=>i(`span`,{className:e(a?.iconSvg??t(),a?.root??n()),children:i(`svg`,{className:a?.svg??r(),width:s,height:c,viewBox:l,"aria-hidden":`true`,focusable:`false`,xmlns:`http://www.w3.org/2000/svg`,children:o})});export{a as IconSvg};
2
2
  //# sourceMappingURL=IconSvg.mjs.map