@raystack/apsara 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
  2. package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
  3. package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
  4. package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  5. package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +1 -0
  6. package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -1
  7. package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +1 -1
  8. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +20 -0
  9. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -1
  10. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +20 -1
  11. package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  12. package/dist/sidebar/sidebar.cjs +6 -6
  13. package/dist/sidebar/sidebar.cjs.map +1 -1
  14. package/dist/sidebar/sidebar.d.ts +4 -4
  15. package/dist/sidebar/sidebar.js +6 -6
  16. package/dist/sidebar/sidebar.js.map +1 -1
  17. package/dist/style.css +1 -1
  18. package/dist/v1/_virtual/isSameOrAfter.cjs +6 -0
  19. package/dist/v1/_virtual/isSameOrAfter.cjs.map +1 -0
  20. package/dist/v1/_virtual/isSameOrAfter.js +4 -0
  21. package/dist/v1/_virtual/isSameOrAfter.js.map +1 -0
  22. package/dist/v1/_virtual/isSameOrBefore.cjs +6 -0
  23. package/dist/v1/_virtual/isSameOrBefore.cjs.map +1 -0
  24. package/dist/v1/_virtual/isSameOrBefore.js +4 -0
  25. package/dist/v1/_virtual/isSameOrBefore.js.map +1 -0
  26. package/dist/v1/components/calendar/calendar.cjs +1 -1
  27. package/dist/v1/components/calendar/calendar.cjs.map +1 -1
  28. package/dist/v1/components/calendar/calendar.js +1 -1
  29. package/dist/v1/components/calendar/calendar.js.map +1 -1
  30. package/dist/v1/components/calendar/date-picker.cjs +26 -17
  31. package/dist/v1/components/calendar/date-picker.cjs.map +1 -1
  32. package/dist/v1/components/calendar/date-picker.d.ts.map +1 -1
  33. package/dist/v1/components/calendar/date-picker.js +26 -17
  34. package/dist/v1/components/calendar/date-picker.js.map +1 -1
  35. package/dist/v1/components/chip/chip.cjs +3 -3
  36. package/dist/v1/components/chip/chip.cjs.map +1 -1
  37. package/dist/v1/components/chip/chip.d.ts +2 -1
  38. package/dist/v1/components/chip/chip.d.ts.map +1 -1
  39. package/dist/v1/components/chip/chip.js +3 -3
  40. package/dist/v1/components/chip/chip.js.map +1 -1
  41. package/dist/v1/components/data-table/components/content.cjs +81 -0
  42. package/dist/v1/components/data-table/components/content.cjs.map +1 -0
  43. package/dist/v1/components/data-table/components/content.d.ts +3 -0
  44. package/dist/v1/components/data-table/components/content.d.ts.map +1 -0
  45. package/dist/v1/components/data-table/components/content.js +79 -0
  46. package/dist/v1/components/data-table/components/content.js.map +1 -0
  47. package/dist/v1/components/data-table/components/display-properties.cjs +14 -0
  48. package/dist/v1/components/data-table/components/display-properties.cjs.map +1 -0
  49. package/dist/v1/components/data-table/components/display-properties.d.ts +5 -0
  50. package/dist/v1/components/data-table/components/display-properties.d.ts.map +1 -0
  51. package/dist/v1/components/data-table/components/display-properties.js +12 -0
  52. package/dist/v1/components/data-table/components/display-properties.js.map +1 -0
  53. package/dist/v1/components/data-table/components/display-settings.cjs +51 -0
  54. package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -0
  55. package/dist/v1/components/data-table/components/display-settings.d.ts +2 -0
  56. package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -0
  57. package/dist/v1/components/data-table/components/display-settings.js +49 -0
  58. package/dist/v1/components/data-table/components/display-settings.js.map +1 -0
  59. package/dist/v1/components/data-table/components/filters.cjs +44 -0
  60. package/dist/v1/components/data-table/components/filters.cjs.map +1 -0
  61. package/dist/v1/components/data-table/components/filters.d.ts +2 -0
  62. package/dist/v1/components/data-table/components/filters.d.ts.map +1 -0
  63. package/dist/v1/components/data-table/components/filters.js +42 -0
  64. package/dist/v1/components/data-table/components/filters.js.map +1 -0
  65. package/dist/v1/components/data-table/components/grouping.cjs +31 -0
  66. package/dist/v1/components/data-table/components/grouping.cjs.map +1 -0
  67. package/dist/v1/components/data-table/components/grouping.d.ts +9 -0
  68. package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -0
  69. package/dist/v1/components/data-table/components/grouping.js +29 -0
  70. package/dist/v1/components/data-table/components/grouping.js.map +1 -0
  71. package/dist/v1/components/data-table/components/ordering.cjs +24 -0
  72. package/dist/v1/components/data-table/components/ordering.cjs.map +1 -0
  73. package/dist/v1/components/data-table/components/ordering.d.ts +8 -0
  74. package/dist/v1/components/data-table/components/ordering.d.ts.map +1 -0
  75. package/dist/v1/components/data-table/components/ordering.js +22 -0
  76. package/dist/v1/components/data-table/components/ordering.js.map +1 -0
  77. package/dist/v1/components/data-table/components/search.cjs +22 -0
  78. package/dist/v1/components/data-table/components/search.cjs.map +1 -0
  79. package/dist/v1/components/data-table/components/search.d.ts +3 -0
  80. package/dist/v1/components/data-table/components/search.d.ts.map +1 -0
  81. package/dist/v1/components/data-table/components/search.js +20 -0
  82. package/dist/v1/components/data-table/components/search.js.map +1 -0
  83. package/dist/v1/components/data-table/components/toolbar.cjs +15 -0
  84. package/dist/v1/components/data-table/components/toolbar.cjs.map +1 -0
  85. package/dist/v1/components/data-table/components/toolbar.d.ts +4 -0
  86. package/dist/v1/components/data-table/components/toolbar.d.ts.map +1 -0
  87. package/dist/v1/components/data-table/components/toolbar.js +13 -0
  88. package/dist/v1/components/data-table/components/toolbar.js.map +1 -0
  89. package/dist/v1/components/data-table/context.cjs +8 -0
  90. package/dist/v1/components/data-table/context.cjs.map +1 -0
  91. package/dist/v1/components/data-table/context.d.ts +3 -0
  92. package/dist/v1/components/data-table/context.d.ts.map +1 -0
  93. package/dist/v1/components/data-table/context.js +6 -0
  94. package/dist/v1/components/data-table/context.js.map +1 -0
  95. package/dist/v1/components/data-table/data-table.cjs +87 -0
  96. package/dist/v1/components/data-table/data-table.cjs.map +1 -0
  97. package/dist/v1/components/data-table/data-table.d.ts +12 -0
  98. package/dist/v1/components/data-table/data-table.d.ts.map +1 -0
  99. package/dist/v1/components/data-table/data-table.js +85 -0
  100. package/dist/v1/components/data-table/data-table.js.map +1 -0
  101. package/dist/v1/components/data-table/data-table.module.css.cjs +8 -0
  102. package/dist/v1/components/data-table/data-table.module.css.cjs.map +1 -0
  103. package/dist/v1/components/data-table/data-table.module.css.js +4 -0
  104. package/dist/v1/components/data-table/data-table.module.css.js.map +1 -0
  105. package/dist/v1/components/data-table/data-table.types.cjs +9 -0
  106. package/dist/v1/components/data-table/data-table.types.cjs.map +1 -0
  107. package/dist/v1/components/data-table/data-table.types.d.ts +102 -0
  108. package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -0
  109. package/dist/v1/components/data-table/data-table.types.js +7 -0
  110. package/dist/v1/components/data-table/data-table.types.js.map +1 -0
  111. package/dist/v1/components/data-table/hooks/useDataTable.cjs +15 -0
  112. package/dist/v1/components/data-table/hooks/useDataTable.cjs.map +1 -0
  113. package/dist/v1/components/data-table/hooks/useDataTable.d.ts +2 -0
  114. package/dist/v1/components/data-table/hooks/useDataTable.d.ts.map +1 -0
  115. package/dist/v1/components/data-table/hooks/useDataTable.js +13 -0
  116. package/dist/v1/components/data-table/hooks/useDataTable.js.map +1 -0
  117. package/dist/v1/components/data-table/hooks/useFilters.cjs +78 -0
  118. package/dist/v1/components/data-table/hooks/useFilters.cjs.map +1 -0
  119. package/dist/v1/components/data-table/hooks/useFilters.d.ts +9 -0
  120. package/dist/v1/components/data-table/hooks/useFilters.d.ts.map +1 -0
  121. package/dist/v1/components/data-table/hooks/useFilters.js +76 -0
  122. package/dist/v1/components/data-table/hooks/useFilters.js.map +1 -0
  123. package/dist/v1/components/data-table/index.d.ts +4 -0
  124. package/dist/v1/components/data-table/index.d.ts.map +1 -0
  125. package/dist/v1/components/data-table/utils/filter-operations.cjs +83 -0
  126. package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -0
  127. package/dist/v1/components/data-table/utils/filter-operations.d.ts +11 -0
  128. package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -0
  129. package/dist/v1/components/data-table/utils/filter-operations.js +80 -0
  130. package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -0
  131. package/dist/v1/components/data-table/utils/index.cjs +156 -0
  132. package/dist/v1/components/data-table/utils/index.cjs.map +1 -0
  133. package/dist/v1/components/data-table/utils/index.d.ts +14 -0
  134. package/dist/v1/components/data-table/utils/index.d.ts.map +1 -0
  135. package/dist/v1/components/data-table/utils/index.js +147 -0
  136. package/dist/v1/components/data-table/utils/index.js.map +1 -0
  137. package/dist/v1/components/dialog/dialog.cjs +4 -3
  138. package/dist/v1/components/dialog/dialog.cjs.map +1 -1
  139. package/dist/v1/components/dialog/dialog.d.ts +9 -2
  140. package/dist/v1/components/dialog/dialog.d.ts.map +1 -1
  141. package/dist/v1/components/dialog/dialog.js +5 -4
  142. package/dist/v1/components/dialog/dialog.js.map +1 -1
  143. package/dist/v1/components/dialog/dialog.module.css.cjs +1 -1
  144. package/dist/v1/components/dialog/dialog.module.css.js +1 -1
  145. package/dist/v1/components/filter-chip/filter-chip.cjs +28 -19
  146. package/dist/v1/components/filter-chip/filter-chip.cjs.map +1 -1
  147. package/dist/v1/components/filter-chip/filter-chip.d.ts +3 -7
  148. package/dist/v1/components/filter-chip/filter-chip.d.ts.map +1 -1
  149. package/dist/v1/components/filter-chip/filter-chip.js +28 -19
  150. package/dist/v1/components/filter-chip/filter-chip.js.map +1 -1
  151. package/dist/v1/components/icons/assets/filter.svg.cjs +41 -0
  152. package/dist/v1/components/icons/assets/filter.svg.cjs.map +1 -0
  153. package/dist/v1/components/icons/assets/filter.svg.js +20 -0
  154. package/dist/v1/components/icons/assets/filter.svg.js.map +1 -0
  155. package/dist/v1/components/icons/icons.d.ts +3 -0
  156. package/dist/v1/components/icons/icons.d.ts.map +1 -0
  157. package/dist/v1/components/icons/index.d.ts +2 -0
  158. package/dist/v1/components/icons/index.d.ts.map +1 -0
  159. package/dist/v1/components/input-field/input-field.cjs +1 -1
  160. package/dist/v1/components/input-field/input-field.cjs.map +1 -1
  161. package/dist/v1/components/input-field/input-field.js +1 -1
  162. package/dist/v1/components/input-field/input-field.js.map +1 -1
  163. package/dist/v1/components/sidebar/index.d.ts +2 -0
  164. package/dist/v1/components/sidebar/index.d.ts.map +1 -0
  165. package/dist/v1/components/sidebar/sidebar.cjs +47 -0
  166. package/dist/v1/components/sidebar/sidebar.cjs.map +1 -0
  167. package/dist/v1/components/{sidepanel/sidepanel.d.ts → sidebar/sidebar.d.ts} +22 -11
  168. package/dist/v1/components/sidebar/sidebar.d.ts.map +1 -0
  169. package/dist/v1/components/sidebar/sidebar.js +45 -0
  170. package/dist/v1/components/sidebar/sidebar.js.map +1 -0
  171. package/dist/v1/components/sidebar/sidebar.module.css.cjs +8 -0
  172. package/dist/v1/components/sidebar/sidebar.module.css.cjs.map +1 -0
  173. package/dist/v1/components/sidebar/sidebar.module.css.js +4 -0
  174. package/dist/v1/components/sidebar/sidebar.module.css.js.map +1 -0
  175. package/dist/v1/components/table/table.cjs.map +1 -1
  176. package/dist/v1/components/table/table.d.ts +2 -2
  177. package/dist/v1/components/table/table.js.map +1 -1
  178. package/dist/v1/components/tooltip/tooltip.cjs +1 -1
  179. package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
  180. package/dist/v1/components/tooltip/tooltip.js +1 -1
  181. package/dist/v1/components/tooltip/tooltip.js.map +1 -1
  182. package/dist/v1/index.cjs +6 -2
  183. package/dist/v1/index.cjs.map +1 -1
  184. package/dist/v1/index.d.ts +2 -1
  185. package/dist/v1/index.d.ts.map +1 -1
  186. package/dist/v1/index.js +4 -1
  187. package/dist/v1/index.js.map +1 -1
  188. package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
  189. package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
  190. package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
  191. package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
  192. package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +131 -0
  193. package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -0
  194. package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +72 -0
  195. package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -0
  196. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +3338 -0
  197. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -0
  198. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +3299 -0
  199. package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -0
  200. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs +16 -0
  201. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs.map +1 -0
  202. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js +12 -0
  203. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js.map +1 -0
  204. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs +16 -0
  205. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs.map +1 -0
  206. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js +12 -0
  207. package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js.map +1 -0
  208. package/dist/v1/style.css +1 -1
  209. package/dist/v1/types/filters.cjs +39 -0
  210. package/dist/v1/types/filters.cjs.map +1 -0
  211. package/dist/v1/types/filters.d.ts +42 -0
  212. package/dist/v1/types/filters.d.ts.map +1 -0
  213. package/dist/v1/types/filters.js +36 -0
  214. package/dist/v1/types/filters.js.map +1 -0
  215. package/package.json +2 -1
  216. package/dist/v1/components/sidepanel/index.d.ts +0 -2
  217. package/dist/v1/components/sidepanel/index.d.ts.map +0 -1
  218. package/dist/v1/components/sidepanel/sidepanel.cjs +0 -44
  219. package/dist/v1/components/sidepanel/sidepanel.cjs.map +0 -1
  220. package/dist/v1/components/sidepanel/sidepanel.d.ts.map +0 -1
  221. package/dist/v1/components/sidepanel/sidepanel.js +0 -42
  222. package/dist/v1/components/sidepanel/sidepanel.js.map +0 -1
  223. package/dist/v1/components/sidepanel/sidepanel.module.css.cjs +0 -8
  224. package/dist/v1/components/sidepanel/sidepanel.module.css.cjs.map +0 -1
  225. package/dist/v1/components/sidepanel/sidepanel.module.css.js +0 -4
  226. package/dist/v1/components/sidepanel/sidepanel.module.css.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chip.js","sources":["../../../../v1/components/chip/chip.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport styles from \"./chip.module.css\";\n\nconst chip = cva(styles.chip, {\n variants: {\n variant: {\n outline: styles[\"chip-variant-outline\"],\n filled: styles[\"chip-variant-filled\"],\n },\n size: {\n large: styles[\"chip-size-large\"],\n small: styles[\"chip-size-small\"],\n },\n color: {\n neutral: styles[\"chip-color-neutral\"],\n accent: styles[\"chip-color-accent\"],\n },\n },\n defaultVariants: {\n variant: \"outline\",\n size: \"small\",\n color: \"neutral\"\n },\n});\n\ntype ChipProps = VariantProps<typeof chip> & {\n trailingIcon?: ReactNode;\n leadingIcon?: ReactNode;\n isDismissible?: boolean;\n children: ReactNode;\n className?: string;\n onDismiss?: () => void;\n role?: string;\n ariaLabel?: string;\n}\n\nexport const Chip = ({ \n variant,\n size,\n color,\n trailingIcon,\n leadingIcon,\n isDismissible,\n children,\n className,\n onDismiss,\n role = \"status\",\n ariaLabel,\n}: ChipProps) => {\n const handleDismiss = (e: React.MouseEvent) => {\n e.stopPropagation();\n onDismiss?.();\n };\n\n return (\n <span \n className={chip({ variant, size, color, className })}\n role={role}\n aria-label={ariaLabel || (typeof children === 'string' ? children : undefined)}\n >\n {leadingIcon && (\n <span \n className={styles['leading-icon']} \n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {leadingIcon}\n </span>\n )}\n {children}\n {isDismissible ? (\n <button \n onClick={handleDismiss} \n className={styles['dismiss-button']}\n aria-label={`Remove ${typeof children === 'string' ? children : 'item'}`}\n type=\"button\"\n >\n <svg \n width=\"12\" \n height=\"12\" \n viewBox=\"0 0 12 12\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n <path \n fillRule=\"evenodd\" \n clipRule=\"evenodd\" \n d=\"M9.5066 3.3066C9.73115 3.08205 9.73115 2.71798 9.5066 2.49343C9.28205 2.26887 8.91798 2.26887 8.69343 2.49343L6.00001 5.18684L3.3066 2.49343C3.08205 2.26887 2.71798 2.26887 2.49343 2.49343C2.26887 2.71798 2.26887 3.08205 2.49343 3.3066L5.18684 6.00001L2.49343 8.69343C2.26887 8.91798 2.26887 9.28205 2.49343 9.5066C2.71798 9.73115 3.08205 9.73115 3.3066 9.5066L6.00001 6.81318L8.69343 9.5066C8.91798 9.73115 9.28205 9.73115 9.5066 9.5066C9.73115 9.28205 9.73115 8.91798 9.5066 8.69343L6.81318 6.00001L9.5066 3.3066Z\" \n fill=\"currentColor\"\n />\n </svg>\n </button>\n ) : trailingIcon ? (\n <span \n className={styles['trailing-icon']}\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {trailingIcon}\n </span>\n ) : null}\n </span>\n );\n};\n\nChip.displayName = \"Chip\";"],"names":["_jsxs","_jsx"],"mappings":";;;;AAKA,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,MAAM,CAAC,sBAAsB,CAAC;AACvC,YAAA,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAChC,YAAA,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACrC,YAAA,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CAAC,CAAC;AAaI,MAAM,IAAI,GAAG,CAAC,EACnB,OAAO,EACP,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,SAAS,GACC,KAAI;AACd,IAAA,MAAM,aAAa,GAAG,CAAC,CAAmB,KAAI;QAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,SAAS,IAAI,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,QACEA,sBACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,EACE,YAAA,EAAA,SAAS,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAE7E,QAAA,EAAA,CAAA,WAAW,KACVC,qBAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,EACrB,aAAA,EAAA,MAAM,EAClB,IAAI,EAAC,cAAc,EAAA,QAAA,EAElB,WAAW,EACP,CAAA,CACR,EACA,QAAQ,EACR,aAAa,IACZA,kCACE,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EAAA,YAAA,EACvB,UAAU,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA,CAAE,EACxE,IAAI,EAAC,QAAQ,EAEb,QAAA,EAAAA,qBAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,iBACtB,MAAM,EAClB,IAAI,EAAC,cAAc,YAEnBA,qBACE,CAAA,MAAA,EAAA,EAAA,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,qgBAAqgB,EACvgB,IAAI,EAAC,cAAc,GACnB,EACE,CAAA,EAAA,CACC,IACP,YAAY,IACdA,qBACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,iBACtB,MAAM,EAClB,IAAI,EAAC,cAAc,YAElB,YAAY,EAAA,CACR,IACL,IAAI,CAAA,EAAA,CACH,EACP;AACJ,EAAE;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
1
+ {"version":3,"file":"chip.js","sources":["../../../../v1/components/chip/chip.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport styles from \"./chip.module.css\";\n\nconst chip = cva(styles.chip, {\n variants: {\n variant: {\n outline: styles[\"chip-variant-outline\"],\n filled: styles[\"chip-variant-filled\"],\n },\n size: {\n large: styles[\"chip-size-large\"],\n small: styles[\"chip-size-small\"],\n },\n color: {\n neutral: styles[\"chip-color-neutral\"],\n accent: styles[\"chip-color-accent\"],\n },\n },\n defaultVariants: {\n variant: \"outline\",\n size: \"small\",\n color: \"neutral\",\n },\n});\n\ntype ChipProps = VariantProps<typeof chip> & {\n trailingIcon?: ReactNode;\n leadingIcon?: ReactNode;\n isDismissible?: boolean;\n children: ReactNode;\n className?: string;\n onDismiss?: () => void;\n onClick?: () => void;\n role?: string;\n ariaLabel?: string;\n};\n\nexport const Chip = ({\n variant,\n size,\n color,\n trailingIcon,\n leadingIcon,\n isDismissible,\n children,\n className,\n onDismiss,\n onClick,\n role = \"status\",\n ariaLabel,\n}: ChipProps) => {\n const handleDismiss = (e: React.MouseEvent) => {\n e.stopPropagation();\n onDismiss?.();\n };\n\n return (\n <span\n className={chip({ variant, size, color, className })}\n role={role}\n aria-label={\n ariaLabel || (typeof children === \"string\" ? children : undefined)\n }\n onClick={onClick}\n >\n {leadingIcon && (\n <span\n className={styles[\"leading-icon\"]}\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {leadingIcon}\n </span>\n )}\n {children}\n {isDismissible ? (\n <button\n onClick={handleDismiss}\n className={styles[\"dismiss-button\"]}\n aria-label={`Remove ${\n typeof children === \"string\" ? children : \"item\"\n }`}\n type=\"button\"\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.5066 3.3066C9.73115 3.08205 9.73115 2.71798 9.5066 2.49343C9.28205 2.26887 8.91798 2.26887 8.69343 2.49343L6.00001 5.18684L3.3066 2.49343C3.08205 2.26887 2.71798 2.26887 2.49343 2.49343C2.26887 2.71798 2.26887 3.08205 2.49343 3.3066L5.18684 6.00001L2.49343 8.69343C2.26887 8.91798 2.26887 9.28205 2.49343 9.5066C2.71798 9.73115 3.08205 9.73115 3.3066 9.5066L6.00001 6.81318L8.69343 9.5066C8.91798 9.73115 9.28205 9.73115 9.5066 9.5066C9.73115 9.28205 9.73115 8.91798 9.5066 8.69343L6.81318 6.00001L9.5066 3.3066Z\"\n fill=\"currentColor\"\n />\n </svg>\n </button>\n ) : trailingIcon ? (\n <span\n className={styles[\"trailing-icon\"]}\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {trailingIcon}\n </span>\n ) : null}\n </span>\n );\n};\n\nChip.displayName = \"Chip\";\n"],"names":["_jsxs","_jsx"],"mappings":";;;;AAKA,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,MAAM,CAAC,sBAAsB,CAAC;AACvC,YAAA,MAAM,EAAE,MAAM,CAAC,qBAAqB,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC;AAChC,YAAA,KAAK,EAAE,MAAM,CAAC,iBAAiB,CAAC;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,MAAM,CAAC,oBAAoB,CAAC;AACrC,YAAA,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAAC;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CAAC,CAAC;AAcI,MAAM,IAAI,GAAG,CAAC,EACnB,OAAO,EACP,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,SAAS,GACC,KAAI;AACd,IAAA,MAAM,aAAa,GAAG,CAAC,CAAmB,KAAI;QAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,SAAS,IAAI,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,QACEA,sBACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,EAER,YAAA,EAAA,SAAS,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAEpE,OAAO,EAAE,OAAO,EAEf,QAAA,EAAA,CAAA,WAAW,KACVC,gCACE,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,EACrB,aAAA,EAAA,MAAM,EAClB,IAAI,EAAC,cAAc,EAElB,QAAA,EAAA,WAAW,GACP,CACR,EACA,QAAQ,EACR,aAAa,IACZA,qBAAA,CAAA,QAAA,EAAA,EACE,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACvB,YAAA,EAAA,CAAA,OAAA,EACV,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAC5C,CAAE,CAAA,EACF,IAAI,EAAC,QAAQ,YAEbA,qBACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EACtB,aAAA,EAAA,MAAM,EAClB,IAAI,EAAC,cAAc,EAEnB,QAAA,EAAAA,qBAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,qgBAAqgB,EACvgB,IAAI,EAAC,cAAc,EACnB,CAAA,EAAA,CACE,GACC,IACP,YAAY,IACdA,qBACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,iBACtB,MAAM,EAClB,IAAI,EAAC,cAAc,YAElB,YAAY,EAAA,CACR,IACL,IAAI,CAAA,EAAA,CACH,EACP;AACJ,EAAE;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var table = require('../../table/table.cjs');
5
+ var emptyState = require('../../empty-state/empty-state.cjs');
6
+ var reactIcons_esm = require('../../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
7
+ var index = require('../../../node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs');
8
+ var useDataTable = require('../hooks/useDataTable.cjs');
9
+ var index$1 = require('../../../node_modules/.pnpm/react-loading-skeleton@3.4.0_react@18.2.0/node_modules/react-loading-skeleton/dist/index.cjs');
10
+ var React = require('react');
11
+ var badge = require('../../badge/badge.cjs');
12
+ var flex = require('../../flex/flex.cjs');
13
+
14
+ function Headers({ headerGroups = [], className = "", }) {
15
+ return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Header, { className: className, children: headerGroups?.map((headerGroup) => (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Row, { children: headerGroup?.headers?.map((header) => {
16
+ const columnDef = header.column.columnDef;
17
+ return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Head, { colSpan: header.colSpan, className: columnDef.classNames?.header, style: columnDef.styles?.header, children: index.flexRender(columnDef.header, header.getContext()) }, header.id));
18
+ }) }, headerGroup?.id))) }));
19
+ }
20
+ function LoaderRows({ rowCount, columnCount, }) {
21
+ const rows = Array.from({ length: rowCount });
22
+ return rows.map((_, rowIndex) => {
23
+ const columns = Array.from({ length: columnCount });
24
+ return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Row, { children: columns.map((_, colIndex) => (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Cell, { children: jsxRuntime.jsxRuntimeExports.jsx(index$1.default, {}) }, "loading-column-" + colIndex))) }, "loading-row-" + rowIndex));
25
+ });
26
+ }
27
+ function GroupHeader({ colSpan, data, }) {
28
+ return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.SectionHeader, { colSpan: colSpan, children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, align: "center", children: [data?.group_key, data.showGroupCount ? (jsxRuntime.jsxRuntimeExports.jsx(badge.Badge, { variant: "neutral", children: data?.count })) : null] }) }));
29
+ }
30
+ const Rows = React.forwardRef((props, lastRowRef) => {
31
+ const { rows = [] } = props;
32
+ return (jsxRuntime.jsxRuntimeExports.jsx(jsxRuntime.jsxRuntimeExports.Fragment, { children: rows?.map((row, index$1) => {
33
+ const isSelected = row.getIsSelected();
34
+ const cells = row.getVisibleCells() || [];
35
+ const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();
36
+ const isLastRow = index$1 === rows.length - 1;
37
+ const rowKey = row.id + "-" + index$1;
38
+ return isSectionHeadingRow ? (jsxRuntime.jsxRuntimeExports.jsx(GroupHeader, { colSpan: cells.length, data: row.original }, rowKey)) : (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Row, { "data-state": isSelected && "selected", ref: isLastRow ? lastRowRef : undefined, children: cells.map((cell) => {
39
+ const columnDef = cell.column.columnDef;
40
+ return (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Cell, { className: columnDef.classNames?.cell, style: columnDef.styles?.cell, children: index.flexRender(columnDef.cell, cell.getContext()) }, cell.id));
41
+ }) }, rowKey));
42
+ }) }));
43
+ });
44
+ const DefaultEmptyComponent = () => (jsxRuntime.jsxRuntimeExports.jsx(emptyState.EmptyState, { icon: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.TableIcon, {}), heading: "No Data" }));
45
+ function Content({ emptyState, classNames = {}, }) {
46
+ const { table: table$1, columns, mode, isLoading, loadMoreData, loadingRowCount = 3, } = useDataTable.useDataTable();
47
+ const headerGroups = table$1?.getHeaderGroups();
48
+ const { rows = [] } = table$1?.getRowModel();
49
+ const lastRowRef = React.useRef(null);
50
+ const observerRef = React.useRef(null);
51
+ const handleObserver = React.useCallback((entries) => {
52
+ const target = entries[0];
53
+ if (target.isIntersecting && !isLoading) {
54
+ loadMoreData();
55
+ }
56
+ }, [loadMoreData, isLoading]);
57
+ React.useEffect(() => {
58
+ if (mode !== "server")
59
+ return;
60
+ if (observerRef.current) {
61
+ observerRef.current.disconnect();
62
+ }
63
+ observerRef.current = new IntersectionObserver(handleObserver, {
64
+ threshold: 0.1,
65
+ });
66
+ const lastRow = lastRowRef.current;
67
+ if (lastRow) {
68
+ observerRef.current.observe(lastRow);
69
+ }
70
+ return () => {
71
+ if (observerRef.current && lastRow) {
72
+ observerRef.current.unobserve(lastRow);
73
+ observerRef.current.disconnect();
74
+ }
75
+ };
76
+ }, [mode, rows.length, handleObserver]);
77
+ return (jsxRuntime.jsxRuntimeExports.jsxs(table.Table, { className: classNames.table, children: [jsxRuntime.jsxRuntimeExports.jsx(Headers, { headerGroups: headerGroups, className: classNames.header }), jsxRuntime.jsxRuntimeExports.jsx(table.Table.Body, { className: classNames.body, children: rows?.length || isLoading ? (jsxRuntime.jsxRuntimeExports.jsxs(jsxRuntime.jsxRuntimeExports.Fragment, { children: [jsxRuntime.jsxRuntimeExports.jsx(Rows, { rows: rows, ref: lastRowRef }), isLoading ? (jsxRuntime.jsxRuntimeExports.jsx(LoaderRows, { rowCount: loadingRowCount, columnCount: columns.length })) : null] })) : (jsxRuntime.jsxRuntimeExports.jsx(table.Table.Row, { children: jsxRuntime.jsxRuntimeExports.jsx(table.Table.Cell, { colSpan: columns.length, children: emptyState || jsxRuntime.jsxRuntimeExports.jsx(DefaultEmptyComponent, {}) }) })) })] }));
78
+ }
79
+
80
+ exports.Content = Content;
81
+ //# sourceMappingURL=content.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.cjs","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.group_key}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [] } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={columnDef.classNames?.cell}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n table,\n columns,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows rows={rows} ref={lastRowRef} />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={columns.length}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={columns.length}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","Table","flexRender","Skeleton","_jsxs","Flex","Badge","forwardRef","_Fragment","index","EmptyState","TableIcon","table","useDataTable","useRef","useCallback","useEffect"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { DataTableContentProps } from "../data-table.types";
2
+ export declare function Content({ emptyState, classNames, }: DataTableContentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/content.tsx"],"names":[],"mappings":"AAMA,OAAO,EAEL,qBAAqB,EAEtB,MAAM,qBAAqB,CAAC;AA6I7B,wBAAgB,OAAO,CAAC,EACtB,UAAU,EACV,UAAe,GAChB,EAAE,qBAAqB,2CAwEvB"}
@@ -0,0 +1,79 @@
1
+ import { j as jsxRuntimeExports } from '../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
+ import { Table } from '../../table/table.js';
3
+ import { EmptyState } from '../../empty-state/empty-state.js';
4
+ import { TableIcon } from '../../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
5
+ import { flexRender } from '../../../node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js';
6
+ import { useDataTable } from '../hooks/useDataTable.js';
7
+ import Skeleton from '../../../node_modules/.pnpm/react-loading-skeleton@3.4.0_react@18.2.0/node_modules/react-loading-skeleton/dist/index.js';
8
+ import { forwardRef, useRef, useCallback, useEffect } from 'react';
9
+ import { Badge } from '../../badge/badge.js';
10
+ import { Flex } from '../../flex/flex.js';
11
+
12
+ function Headers({ headerGroups = [], className = "", }) {
13
+ return (jsxRuntimeExports.jsx(Table.Header, { className: className, children: headerGroups?.map((headerGroup) => (jsxRuntimeExports.jsx(Table.Row, { children: headerGroup?.headers?.map((header) => {
14
+ const columnDef = header.column.columnDef;
15
+ return (jsxRuntimeExports.jsx(Table.Head, { colSpan: header.colSpan, className: columnDef.classNames?.header, style: columnDef.styles?.header, children: flexRender(columnDef.header, header.getContext()) }, header.id));
16
+ }) }, headerGroup?.id))) }));
17
+ }
18
+ function LoaderRows({ rowCount, columnCount, }) {
19
+ const rows = Array.from({ length: rowCount });
20
+ return rows.map((_, rowIndex) => {
21
+ const columns = Array.from({ length: columnCount });
22
+ return (jsxRuntimeExports.jsx(Table.Row, { children: columns.map((_, colIndex) => (jsxRuntimeExports.jsx(Table.Cell, { children: jsxRuntimeExports.jsx(Skeleton, {}) }, "loading-column-" + colIndex))) }, "loading-row-" + rowIndex));
23
+ });
24
+ }
25
+ function GroupHeader({ colSpan, data, }) {
26
+ return (jsxRuntimeExports.jsx(Table.SectionHeader, { colSpan: colSpan, children: jsxRuntimeExports.jsxs(Flex, { gap: 3, align: "center", children: [data?.group_key, data.showGroupCount ? (jsxRuntimeExports.jsx(Badge, { variant: "neutral", children: data?.count })) : null] }) }));
27
+ }
28
+ const Rows = forwardRef((props, lastRowRef) => {
29
+ const { rows = [] } = props;
30
+ return (jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: rows?.map((row, index) => {
31
+ const isSelected = row.getIsSelected();
32
+ const cells = row.getVisibleCells() || [];
33
+ const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();
34
+ const isLastRow = index === rows.length - 1;
35
+ const rowKey = row.id + "-" + index;
36
+ return isSectionHeadingRow ? (jsxRuntimeExports.jsx(GroupHeader, { colSpan: cells.length, data: row.original }, rowKey)) : (jsxRuntimeExports.jsx(Table.Row, { "data-state": isSelected && "selected", ref: isLastRow ? lastRowRef : undefined, children: cells.map((cell) => {
37
+ const columnDef = cell.column.columnDef;
38
+ return (jsxRuntimeExports.jsx(Table.Cell, { className: columnDef.classNames?.cell, style: columnDef.styles?.cell, children: flexRender(columnDef.cell, cell.getContext()) }, cell.id));
39
+ }) }, rowKey));
40
+ }) }));
41
+ });
42
+ const DefaultEmptyComponent = () => (jsxRuntimeExports.jsx(EmptyState, { icon: jsxRuntimeExports.jsx(TableIcon, {}), heading: "No Data" }));
43
+ function Content({ emptyState, classNames = {}, }) {
44
+ const { table, columns, mode, isLoading, loadMoreData, loadingRowCount = 3, } = useDataTable();
45
+ const headerGroups = table?.getHeaderGroups();
46
+ const { rows = [] } = table?.getRowModel();
47
+ const lastRowRef = useRef(null);
48
+ const observerRef = useRef(null);
49
+ const handleObserver = useCallback((entries) => {
50
+ const target = entries[0];
51
+ if (target.isIntersecting && !isLoading) {
52
+ loadMoreData();
53
+ }
54
+ }, [loadMoreData, isLoading]);
55
+ useEffect(() => {
56
+ if (mode !== "server")
57
+ return;
58
+ if (observerRef.current) {
59
+ observerRef.current.disconnect();
60
+ }
61
+ observerRef.current = new IntersectionObserver(handleObserver, {
62
+ threshold: 0.1,
63
+ });
64
+ const lastRow = lastRowRef.current;
65
+ if (lastRow) {
66
+ observerRef.current.observe(lastRow);
67
+ }
68
+ return () => {
69
+ if (observerRef.current && lastRow) {
70
+ observerRef.current.unobserve(lastRow);
71
+ observerRef.current.disconnect();
72
+ }
73
+ };
74
+ }, [mode, rows.length, handleObserver]);
75
+ return (jsxRuntimeExports.jsxs(Table, { className: classNames.table, children: [jsxRuntimeExports.jsx(Headers, { headerGroups: headerGroups, className: classNames.header }), jsxRuntimeExports.jsx(Table.Body, { className: classNames.body, children: rows?.length || isLoading ? (jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Rows, { rows: rows, ref: lastRowRef }), isLoading ? (jsxRuntimeExports.jsx(LoaderRows, { rowCount: loadingRowCount, columnCount: columns.length })) : null] })) : (jsxRuntimeExports.jsx(Table.Row, { children: jsxRuntimeExports.jsx(Table.Cell, { colSpan: columns.length, children: emptyState || jsxRuntimeExports.jsx(DefaultEmptyComponent, {}) }) })) })] }));
76
+ }
77
+
78
+ export { Content };
79
+ //# sourceMappingURL=content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.js","sources":["../../../../../v1/components/data-table/components/content.tsx"],"sourcesContent":["import { Table } from \"../../table\";\nimport type { Row, HeaderGroup } from \"@tanstack/react-table\";\nimport { EmptyState } from \"../../empty-state\";\nimport { TableIcon } from \"@radix-ui/react-icons\";\nimport { flexRender } from \"@tanstack/react-table\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport {\n DataTableColumnDef,\n DataTableContentProps,\n GroupedData,\n} from \"../data-table.types\";\nimport Skeleton from \"react-loading-skeleton\";\nimport {\n ForwardedRef,\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\nimport { Badge } from \"../../badge\";\nimport { Flex } from \"../../flex\";\n\nfunction Headers<TData>({\n headerGroups = [],\n className = \"\",\n}: {\n headerGroups: HeaderGroup<TData>[];\n className?: string;\n}) {\n return (\n <Table.Header className={className}>\n {headerGroups?.map((headerGroup) => (\n <Table.Row key={headerGroup?.id}>\n {headerGroup?.headers?.map((header) => {\n const columnDef = header.column.columnDef as DataTableColumnDef<\n TData,\n unknown\n >;\n return (\n <Table.Head\n key={header.id}\n colSpan={header.colSpan}\n className={columnDef.classNames?.header}\n style={columnDef.styles?.header}\n >\n {flexRender(columnDef.header, header.getContext())}\n </Table.Head>\n );\n })}\n </Table.Row>\n ))}\n </Table.Header>\n );\n}\n\ninterface RowsProps<TData> {\n rows: Row<TData>[];\n lastRowRef?: ForwardedRef<HTMLTableRowElement>;\n}\n\nfunction LoaderRows({\n rowCount,\n columnCount,\n}: {\n rowCount: number;\n columnCount: number;\n}) {\n const rows = Array.from({ length: rowCount });\n return rows.map((_, rowIndex) => {\n const columns = Array.from({ length: columnCount });\n return (\n <Table.Row key={\"loading-row-\" + rowIndex}>\n {columns.map((_, colIndex) => (\n <Table.Cell key={\"loading-column-\" + colIndex}>\n <Skeleton />\n </Table.Cell>\n ))}\n </Table.Row>\n );\n });\n}\n\nfunction GroupHeader<TData>({\n colSpan,\n data,\n}: {\n colSpan: number;\n data: GroupedData<TData>;\n}) {\n return (\n <Table.SectionHeader colSpan={colSpan}>\n <Flex gap={3} align=\"center\">\n {data?.group_key}\n {data.showGroupCount ? (\n <Badge variant=\"neutral\">{data?.count}</Badge>\n ) : null}\n </Flex>\n </Table.SectionHeader>\n );\n}\n\nconst Rows = forwardRef<HTMLTableRowElement, RowsProps<unknown>>(\n (props, lastRowRef) => {\n const { rows = [] } = props;\n return (\n <>\n {rows?.map((row, index) => {\n const isSelected = row.getIsSelected();\n const cells = row.getVisibleCells() || [];\n const isSectionHeadingRow = row.depth === 0 && row.getIsExpanded();\n const isLastRow = index === rows.length - 1;\n const rowKey = row.id + \"-\" + index;\n return isSectionHeadingRow ? (\n <GroupHeader\n key={rowKey}\n colSpan={cells.length}\n data={row.original as GroupedData<unknown>}\n />\n ) : (\n <Table.Row\n key={rowKey}\n data-state={isSelected && \"selected\"}\n ref={isLastRow ? lastRowRef : undefined}\n >\n {cells.map((cell) => {\n const columnDef = cell.column.columnDef as DataTableColumnDef<\n unknown,\n unknown\n >;\n return (\n <Table.Cell\n key={cell.id}\n className={columnDef.classNames?.cell}\n style={columnDef.styles?.cell}\n >\n {flexRender(columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n })}\n </Table.Row>\n );\n })}\n </>\n );\n }\n);\n\nconst DefaultEmptyComponent = () => (\n <EmptyState icon={<TableIcon />} heading=\"No Data\" />\n);\n\nexport function Content({\n emptyState,\n classNames = {},\n}: DataTableContentProps) {\n const {\n table,\n columns,\n mode,\n isLoading,\n loadMoreData,\n loadingRowCount = 3,\n } = useDataTable();\n const headerGroups = table?.getHeaderGroups();\n const { rows = [] } = table?.getRowModel();\n\n const lastRowRef = useRef<HTMLTableRowElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const handleObserver = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const target = entries[0];\n if (target.isIntersecting && !isLoading) {\n loadMoreData();\n }\n },\n [loadMoreData, isLoading]\n );\n\n useEffect(() => {\n if (mode !== \"server\") return;\n\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n\n observerRef.current = new IntersectionObserver(handleObserver, {\n threshold: 0.1,\n });\n const lastRow = lastRowRef.current;\n if (lastRow) {\n observerRef.current.observe(lastRow);\n }\n\n return () => {\n if (observerRef.current && lastRow) {\n observerRef.current.unobserve(lastRow);\n observerRef.current.disconnect();\n }\n };\n }, [mode, rows.length, handleObserver]);\n\n return (\n <Table className={classNames.table}>\n <Headers headerGroups={headerGroups} className={classNames.header} />\n <Table.Body className={classNames.body}>\n {rows?.length || isLoading ? (\n <>\n <Rows rows={rows} ref={lastRowRef} />\n {isLoading ? (\n <LoaderRows\n rowCount={loadingRowCount}\n columnCount={columns.length}\n />\n ) : null}\n </>\n ) : (\n <Table.Row>\n <Table.Cell colSpan={columns.length}>\n {emptyState || <DefaultEmptyComponent />}\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n );\n}\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var chip = require('../../chip/chip.cjs');
5
+ var flex = require('../../flex/flex.cjs');
6
+ var text = require('../../text/text.cjs');
7
+
8
+ function DisplayProperties({ columns, }) {
9
+ const hidableColumns = columns?.filter((col) => col.columnDef.enableHiding);
10
+ return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", gap: 3, children: [jsxRuntime.jsxRuntimeExports.jsx(text.Text, { children: "Display Properties" }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { gap: 3, children: hidableColumns.map((column) => (jsxRuntime.jsxRuntimeExports.jsx(chip.Chip, { variant: "outline", size: "small", color: column.getIsVisible() ? "accent" : "neutral", onClick: () => column.toggleVisibility(), children: column.columnDef.header || column.id }, column.id))) })] }));
11
+ }
12
+
13
+ exports.DisplayProperties = DisplayProperties;
14
+ //# sourceMappingURL=display-properties.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-properties.cjs","sources":["../../../../../v1/components/data-table/components/display-properties.tsx"],"sourcesContent":["import { Chip } from \"../../chip\";\nimport { Flex } from \"../../flex\";\nimport { Text } from \"../../text\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function DisplayProperties<TData, TValue>({\n columns,\n}: {\n columns: DataTableColumn<TData, TValue>[];\n}) {\n const hidableColumns = columns?.filter((col) => col.columnDef.enableHiding);\n\n return (\n <Flex direction={\"column\"} gap={3}>\n <Text>Display Properties</Text>\n <Flex gap={3}>\n {hidableColumns.map((column) => (\n <Chip\n key={column.id}\n variant=\"outline\"\n size=\"small\"\n color={column.getIsVisible() ? \"accent\" : \"neutral\"}\n onClick={() => column.toggleVisibility()}\n >\n {(column.columnDef.header as string) || column.id}\n </Chip>\n ))}\n </Flex>\n </Flex>\n );\n}\n"],"names":["_jsxs","Flex","_jsx","Text","Chip"],"mappings":";;;;;;;AAKgB,SAAA,iBAAiB,CAAgB,EAC/C,OAAO,GAGR,EAAA;AACC,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAE5E,IAAA,QACEA,iCAAC,CAAAC,SAAI,IAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAC/BC,iCAACC,SAAI,EAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAA0B,EAC/BD,gCAAC,CAAAD,SAAI,IAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EACT,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,MACzBC,gCAAC,CAAAE,SAAI,IAEH,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,SAAS,EACnD,OAAO,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE,EAAA,QAAA,EAEtC,MAAM,CAAC,SAAS,CAAC,MAAiB,IAAI,MAAM,CAAC,EAAE,IAN5C,MAAM,CAAC,EAAE,CAOT,CACR,CAAC,EACG,CAAA,CAAA,EAAA,CACF,EACP;AACJ;;;;"}
@@ -0,0 +1,5 @@
1
+ import { DataTableColumn } from "../data-table.types";
2
+ export declare function DisplayProperties<TData, TValue>({ columns, }: {
3
+ columns: DataTableColumn<TData, TValue>[];
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=display-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-properties.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/display-properties.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAC/C,OAAO,GACR,EAAE;IACD,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;CAC3C,2CAqBA"}
@@ -0,0 +1,12 @@
1
+ import { j as jsxRuntimeExports } from '../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
+ import { Chip } from '../../chip/chip.js';
3
+ import { Flex } from '../../flex/flex.js';
4
+ import { Text } from '../../text/text.js';
5
+
6
+ function DisplayProperties({ columns, }) {
7
+ const hidableColumns = columns?.filter((col) => col.columnDef.enableHiding);
8
+ return (jsxRuntimeExports.jsxs(Flex, { direction: "column", gap: 3, children: [jsxRuntimeExports.jsx(Text, { children: "Display Properties" }), jsxRuntimeExports.jsx(Flex, { gap: 3, children: hidableColumns.map((column) => (jsxRuntimeExports.jsx(Chip, { variant: "outline", size: "small", color: column.getIsVisible() ? "accent" : "neutral", onClick: () => column.toggleVisibility(), children: column.columnDef.header || column.id }, column.id))) })] }));
9
+ }
10
+
11
+ export { DisplayProperties };
12
+ //# sourceMappingURL=display-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-properties.js","sources":["../../../../../v1/components/data-table/components/display-properties.tsx"],"sourcesContent":["import { Chip } from \"../../chip\";\nimport { Flex } from \"../../flex\";\nimport { Text } from \"../../text\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function DisplayProperties<TData, TValue>({\n columns,\n}: {\n columns: DataTableColumn<TData, TValue>[];\n}) {\n const hidableColumns = columns?.filter((col) => col.columnDef.enableHiding);\n\n return (\n <Flex direction={\"column\"} gap={3}>\n <Text>Display Properties</Text>\n <Flex gap={3}>\n {hidableColumns.map((column) => (\n <Chip\n key={column.id}\n variant=\"outline\"\n size=\"small\"\n color={column.getIsVisible() ? \"accent\" : \"neutral\"}\n onClick={() => column.toggleVisibility()}\n >\n {(column.columnDef.header as string) || column.id}\n </Chip>\n ))}\n </Flex>\n </Flex>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;AAKgB,SAAA,iBAAiB,CAAgB,EAC/C,OAAO,GAGR,EAAA;AACC,IAAA,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAE5E,IAAA,QACEA,sBAAC,CAAA,IAAI,IAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAC/BC,sBAAC,IAAI,EAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,CAA0B,EAC/BA,qBAAC,CAAA,IAAI,IAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EACT,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,MACzBA,qBAAC,CAAA,IAAI,IAEH,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,SAAS,EACnD,OAAO,EAAE,MAAM,MAAM,CAAC,gBAAgB,EAAE,EAAA,QAAA,EAEtC,MAAM,CAAC,SAAS,CAAC,MAAiB,IAAI,MAAM,CAAC,EAAE,IAN5C,MAAM,CAAC,EAAE,CAOT,CACR,CAAC,EACG,CAAA,CAAA,EAAA,CACF,EACP;AACJ;;;;"}
@@ -0,0 +1,51 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var flex = require('../../flex/flex.cjs');
5
+ var dataTable_module = require('../data-table.module.css.cjs');
6
+ var button = require('../../button/button.cjs');
7
+ var popover = require('../../popover/popover.cjs');
8
+ var reactIcons_esm = require('../../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
9
+ var useDataTable = require('../hooks/useDataTable.cjs');
10
+ var index = require('../utils/index.cjs');
11
+ var ordering = require('./ordering.cjs');
12
+ var grouping = require('./grouping.cjs');
13
+ var displayProperties = require('./display-properties.cjs');
14
+
15
+ function DisplaySettings() {
16
+ const { table, updateTableQuery, tableQuery, defaultSort, onDisplaySettingsReset, } = useDataTable.useDataTable();
17
+ const columns = table?.getAllColumns();
18
+ const sortableColumns = columns
19
+ ?.filter((col) => col.columnDef.enableSorting)
20
+ ?.map((column) => {
21
+ const id = column.id;
22
+ return {
23
+ label: column.columnDef.header || id,
24
+ id: id,
25
+ };
26
+ });
27
+ function onSortChange(columnId, order) {
28
+ updateTableQuery((query) => {
29
+ return {
30
+ ...query,
31
+ sort: [{ name: columnId, order }],
32
+ };
33
+ });
34
+ }
35
+ function onGroupChange(columnId, order) {
36
+ updateTableQuery((query) => {
37
+ return {
38
+ ...query,
39
+ group_by: [columnId],
40
+ __group_by_sort: order,
41
+ };
42
+ });
43
+ }
44
+ function onReset() {
45
+ onDisplaySettingsReset();
46
+ }
47
+ return (jsxRuntime.jsxRuntimeExports.jsxs(popover.Popover, { children: [jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Trigger, { asChild: true, children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Content, { className: dataTable_module.default["display-popover-content"], align: "end", children: jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", children: [jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { direction: "column", className: dataTable_module.default["display-popover-properties-container"], gap: 5, children: [jsxRuntime.jsxRuntimeExports.jsx(ordering.Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntime.jsxRuntimeExports.jsx(grouping.Grouping, { columns: columns, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || index.defaultGroupOption.id })] }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { className: dataTable_module.default["display-popover-properties-container"], children: jsxRuntime.jsxRuntimeExports.jsx(displayProperties.DisplayProperties, { columns: columns }) }), jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { justify: "end", className: dataTable_module.default["display-popover-reset-container"], children: jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
48
+ }
49
+
50
+ exports.DisplaySettings = DisplaySettings;
51
+ //# sourceMappingURL=display-settings.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-settings.cjs","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport { DataTableColumn, SortOrdersValues } from \"../data-table.types\";\nimport { defaultGroupOption } from \"../utils\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [columnId],\n __group_by_sort: order,\n };\n });\n }\n\n function onReset() {\n onDisplaySettingsReset();\n }\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <Button\n variant={\"outline\"}\n color=\"neutral\"\n size={\"small\"}\n leadingIcon={<MixerHorizontalIcon />}\n >\n Display\n </Button>\n </Popover.Trigger>\n <Popover.Content\n className={styles[\"display-popover-content\"]}\n align=\"end\"\n >\n <Flex direction={\"column\"}>\n <Flex\n direction={\"column\"}\n className={styles[\"display-popover-properties-container\"]}\n gap={5}\n >\n <Ordering\n columnList={sortableColumns}\n onChange={onSortChange}\n value={tableQuery?.sort?.[0] || defaultSort}\n />\n <Grouping\n columns={columns}\n onChange={onGroupChange}\n value={tableQuery?.group_by?.[0] || defaultGroupOption.id}\n />\n </Flex>\n <Flex className={styles[\"display-popover-properties-container\"]}>\n <DisplayProperties columns={columns} />\n </Flex>\n <Flex\n justify={\"end\"}\n className={styles[\"display-popover-reset-container\"]}\n >\n <Button variant={\"text\"} onClick={onReset}>\n Reset to default\n </Button>\n </Flex>\n </Flex>\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["useDataTable","_jsxs","Popover","_jsx","Button","MixerHorizontalIcon","styles","Flex","Ordering","Grouping","defaultGroupOption","DisplayProperties"],"mappings":";;;;;;;;;;;;;;SAYgB,eAAe,GAAA;AAC7B,IAAA,MAAM,EACJ,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,sBAAsB,GACvB,GAAGA,yBAAY,EAAE,CAAC;AACnB,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE,aAAa,EAAsC,CAAC;IAE3E,MAAM,eAAe,GAAG,OAAO;AAC7B,UAAE,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC;AAC9C,UAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AACf,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,OAAO;AACL,YAAA,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE;AACpC,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;AACJ,KAAC,CAAC,CAAC;AAEL,IAAA,SAAS,YAAY,CAAC,QAAgB,EAAE,KAAuB,EAAA;AAC7D,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;aAClC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAuB,EAAA;AAC9D,QAAA,gBAAgB,CAAC,CAAC,KAAK,KAAI;YACzB,OAAO;AACL,gBAAA,GAAG,KAAK;gBACR,QAAQ,EAAE,CAAC,QAAQ,CAAC;AACpB,gBAAA,eAAe,EAAE,KAAK;aACvB,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,SAAS,OAAO,GAAA;AACd,QAAA,sBAAsB,EAAE,CAAC;KAC1B;AAED,IAAA,QACEC,iCAAC,CAAAC,eAAO,eACNC,gCAAC,CAAAD,eAAO,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACtBC,iCAACC,aAAM,EAAA,EACL,OAAO,EAAE,SAAS,EAClB,KAAK,EAAC,SAAS,EACf,IAAI,EAAE,OAAO,EACb,WAAW,EAAED,iCAACE,kCAAmB,EAAA,EAAA,CAAG,EAG7B,QAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CACO,EAClBF,gCAAC,CAAAD,eAAO,CAAC,OAAO,EAAA,EACd,SAAS,EAAEI,wBAAM,CAAC,yBAAyB,CAAC,EAC5C,KAAK,EAAC,KAAK,EAAA,QAAA,EAEXL,kCAACM,SAAI,EAAA,EAAC,SAAS,EAAE,QAAQ,EACvB,QAAA,EAAA,CAAAN,iCAAA,CAACM,SAAI,EACH,EAAA,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAED,wBAAM,CAAC,sCAAsC,CAAC,EACzD,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAENH,iCAACK,iBAAQ,EAAA,EACP,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,UAAU,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,WAAW,EAAA,CAC3C,EACFL,gCAAA,CAACM,iBAAQ,EACP,EAAA,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAIC,wBAAkB,CAAC,EAAE,GACzD,CACG,EAAA,CAAA,EACPP,iCAACI,SAAI,EAAA,EAAC,SAAS,EAAED,wBAAM,CAAC,sCAAsC,CAAC,EAC7D,QAAA,EAAAH,gCAAA,CAACQ,mCAAiB,EAAC,EAAA,OAAO,EAAE,OAAO,EAAA,CAAI,EAClC,CAAA,EACPR,iCAACI,SAAI,EAAA,EACH,OAAO,EAAE,KAAK,EACd,SAAS,EAAED,wBAAM,CAAC,iCAAiC,CAAC,EAAA,QAAA,EAEpDH,iCAACC,aAAM,EAAA,EAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAEhC,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CACJ,IACF,EACS,CAAA,CAAA,EAAA,CACV,EACV;AACJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function DisplaySettings<TData, TValue>(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=display-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-settings.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,6CA2F5C"}
@@ -0,0 +1,49 @@
1
+ import { j as jsxRuntimeExports } from '../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
+ import { Flex } from '../../flex/flex.js';
3
+ import styles from '../data-table.module.css.js';
4
+ import { Button } from '../../button/button.js';
5
+ import { Popover } from '../../popover/popover.js';
6
+ import { MixerHorizontalIcon } from '../../../node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
7
+ import { useDataTable } from '../hooks/useDataTable.js';
8
+ import { defaultGroupOption } from '../utils/index.js';
9
+ import { Ordering } from './ordering.js';
10
+ import { Grouping } from './grouping.js';
11
+ import { DisplayProperties } from './display-properties.js';
12
+
13
+ function DisplaySettings() {
14
+ const { table, updateTableQuery, tableQuery, defaultSort, onDisplaySettingsReset, } = useDataTable();
15
+ const columns = table?.getAllColumns();
16
+ const sortableColumns = columns
17
+ ?.filter((col) => col.columnDef.enableSorting)
18
+ ?.map((column) => {
19
+ const id = column.id;
20
+ return {
21
+ label: column.columnDef.header || id,
22
+ id: id,
23
+ };
24
+ });
25
+ function onSortChange(columnId, order) {
26
+ updateTableQuery((query) => {
27
+ return {
28
+ ...query,
29
+ sort: [{ name: columnId, order }],
30
+ };
31
+ });
32
+ }
33
+ function onGroupChange(columnId, order) {
34
+ updateTableQuery((query) => {
35
+ return {
36
+ ...query,
37
+ group_by: [columnId],
38
+ __group_by_sort: order,
39
+ };
40
+ });
41
+ }
42
+ function onReset() {
43
+ onDisplaySettingsReset();
44
+ }
45
+ return (jsxRuntimeExports.jsxs(Popover, { children: [jsxRuntimeExports.jsx(Popover.Trigger, { asChild: true, children: jsxRuntimeExports.jsx(Button, { variant: "outline", color: "neutral", size: "small", leadingIcon: jsxRuntimeExports.jsx(MixerHorizontalIcon, {}), children: "Display" }) }), jsxRuntimeExports.jsx(Popover.Content, { className: styles["display-popover-content"], align: "end", children: jsxRuntimeExports.jsxs(Flex, { direction: "column", children: [jsxRuntimeExports.jsxs(Flex, { direction: "column", className: styles["display-popover-properties-container"], gap: 5, children: [jsxRuntimeExports.jsx(Ordering, { columnList: sortableColumns, onChange: onSortChange, value: tableQuery?.sort?.[0] || defaultSort }), jsxRuntimeExports.jsx(Grouping, { columns: columns, onChange: onGroupChange, value: tableQuery?.group_by?.[0] || defaultGroupOption.id })] }), jsxRuntimeExports.jsx(Flex, { className: styles["display-popover-properties-container"], children: jsxRuntimeExports.jsx(DisplayProperties, { columns: columns }) }), jsxRuntimeExports.jsx(Flex, { justify: "end", className: styles["display-popover-reset-container"], children: jsxRuntimeExports.jsx(Button, { variant: "text", onClick: onReset, children: "Reset to default" }) })] }) })] }));
46
+ }
47
+
48
+ export { DisplaySettings };
49
+ //# sourceMappingURL=display-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-settings.js","sources":["../../../../../v1/components/data-table/components/display-settings.tsx"],"sourcesContent":["import { Flex } from \"../../flex\";\nimport styles from \"../data-table.module.css\";\nimport { Button } from \"../../button\";\nimport { Popover } from \"../../popover\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport { DataTableColumn, SortOrdersValues } from \"../data-table.types\";\nimport { defaultGroupOption } from \"../utils\";\nimport { Ordering } from \"./ordering\";\nimport { Grouping } from \"./grouping\";\nimport { DisplayProperties } from \"./display-properties\";\n\nexport function DisplaySettings<TData, TValue>() {\n const {\n table,\n updateTableQuery,\n tableQuery,\n defaultSort,\n onDisplaySettingsReset,\n } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const sortableColumns = columns\n ?.filter((col) => col.columnDef.enableSorting)\n ?.map((column) => {\n const id = column.id;\n return {\n label: column.columnDef.header || id,\n id: id,\n };\n });\n\n function onSortChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n sort: [{ name: columnId, order }],\n };\n });\n }\n\n function onGroupChange(columnId: string, order: SortOrdersValues) {\n updateTableQuery((query) => {\n return {\n ...query,\n group_by: [columnId],\n __group_by_sort: order,\n };\n });\n }\n\n function onReset() {\n onDisplaySettingsReset();\n }\n\n return (\n <Popover>\n <Popover.Trigger asChild>\n <Button\n variant={\"outline\"}\n color=\"neutral\"\n size={\"small\"}\n leadingIcon={<MixerHorizontalIcon />}\n >\n Display\n </Button>\n </Popover.Trigger>\n <Popover.Content\n className={styles[\"display-popover-content\"]}\n align=\"end\"\n >\n <Flex direction={\"column\"}>\n <Flex\n direction={\"column\"}\n className={styles[\"display-popover-properties-container\"]}\n gap={5}\n >\n <Ordering\n columnList={sortableColumns}\n onChange={onSortChange}\n value={tableQuery?.sort?.[0] || defaultSort}\n />\n <Grouping\n columns={columns}\n onChange={onGroupChange}\n value={tableQuery?.group_by?.[0] || defaultGroupOption.id}\n />\n </Flex>\n <Flex className={styles[\"display-popover-properties-container\"]}>\n <DisplayProperties columns={columns} />\n </Flex>\n <Flex\n justify={\"end\"}\n className={styles[\"display-popover-reset-container\"]}\n >\n <Button variant={\"text\"} onClick={onReset}>\n Reset to default\n </Button>\n </Flex>\n </Flex>\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.cjs');
4
+ var filterChip = require('../../filter-chip/filter-chip.cjs');
5
+ var iconButton = require('../../icon-button/icon-button.cjs');
6
+ var button = require('../../button/button.cjs');
7
+ var filter = require('../../icons/assets/filter.svg.cjs');
8
+ var dropdownMenu = require('../../dropdown-menu/dropdown-menu.cjs');
9
+ var useDataTable = require('../hooks/useDataTable.cjs');
10
+ var flex = require('../../flex/flex.cjs');
11
+ var useFilters = require('../hooks/useFilters.cjs');
12
+
13
+ function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter, }) {
14
+ const availableFilters = columnList?.filter((col) => !appliedFiltersSet.has(col.id));
15
+ return availableFilters.length > 0 ? (jsxRuntime.jsxRuntimeExports.jsxs(dropdownMenu.DropdownMenu, { children: [jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntime.jsxRuntimeExports.jsx(iconButton.IconButton, { size: 4, children: jsxRuntime.jsxRuntimeExports.jsx(filter.ReactComponent, {}) })) : (jsxRuntime.jsxRuntimeExports.jsx(button.Button, { variant: "text", size: "small", leadingIcon: jsxRuntime.jsxRuntimeExports.jsx(filter.ReactComponent, {}), children: "Filter" })) }), jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Content, { align: "start", children: availableFilters?.map((column) => {
16
+ const columnDef = column.columnDef;
17
+ const id = columnDef.accessorKey || column.id;
18
+ return (jsxRuntime.jsxRuntimeExports.jsx(dropdownMenu.DropdownMenu.Item, { onSelect: () => onAddFilter(column), children: columnDef.header || id }, id));
19
+ }) })] })) : null;
20
+ }
21
+ function Filters() {
22
+ const { table, tableQuery } = useDataTable.useDataTable();
23
+ const columns = table?.getAllColumns();
24
+ const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange, } = useFilters.useFilters();
25
+ const columnList = columns?.filter((column) => column.columnDef.enableColumnFilter);
26
+ const appliedFiltersSet = new Set(tableQuery?.filters?.map((filter) => filter.name));
27
+ const appliedFilters = tableQuery?.filters?.map((filter) => {
28
+ const columnDef = columns?.find((col) => {
29
+ const columnDef = col.columnDef;
30
+ const id = columnDef.accessorKey || col.id;
31
+ return id === filter.name;
32
+ })?.columnDef;
33
+ return {
34
+ columnType: columnDef?.columnType || "text",
35
+ label: columnDef?.header || "",
36
+ options: columnDef?.filterOptions || [],
37
+ ...filter,
38
+ };
39
+ }) || [];
40
+ return (jsxRuntime.jsxRuntimeExports.jsxs(flex.Flex, { gap: 3, children: [jsxRuntime.jsxRuntimeExports.jsx(flex.Flex, { gap: 3, children: appliedFilters.map((filter) => (jsxRuntime.jsxRuntimeExports.jsx(filterChip.FilterChip, { label: filter.label, value: filter.value, onRemove: () => handleRemoveFilter(filter.name), onValueChange: (value) => handleFilterValueChange(filter.name, value), onOperationChange: (operator) => handleFilterOperationChange(filter.name, operator), columnType: filter.columnType, options: filter.options }, filter.name))) }), jsxRuntime.jsxRuntimeExports.jsx(AddFilter, { columnList: columnList, appliedFiltersSet: appliedFiltersSet, onAddFilter: onAddFilter })] }));
41
+ }
42
+
43
+ exports.Filters = Filters;
44
+ //# sourceMappingURL=filters.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.cjs","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { FilterChip } from \"../../filter-chip\";\nimport { DataTableColumn } from \"../data-table.types\";\nimport { IconButton } from \"../../icon-button\";\nimport { Button } from \"../../button\";\nimport { FilterIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../dropdown-menu\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport { Flex } from \"../../flex\";\nimport { FilterOperatorTypes } from \"~/v1/types/filters\";\nimport { useFilters } from \"../hooks/useFilters\";\n\ninterface AddFilterProps<TData, TValue> {\n columnList: DataTableColumn<TData, TValue>[];\n appliedFiltersSet: Set<string>;\n onAddFilter: (column: DataTableColumn<TData, TValue>) => void;\n}\n\nfunction AddFilter<TData, TValue>({\n columnList = [],\n appliedFiltersSet,\n onAddFilter,\n}: AddFilterProps<TData, TValue>) {\n const availableFilters = columnList?.filter(\n (col) => !appliedFiltersSet.has(col.id)\n );\n\n return availableFilters.length > 0 ? (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n {appliedFiltersSet.size > 0 ? (\n <IconButton size={4}>\n <FilterIcon />\n </IconButton>\n ) : (\n <Button variant={\"text\"} size={\"small\"} leadingIcon={<FilterIcon />}>\n Filter\n </Button>\n )}\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {availableFilters?.map((column) => {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n return (\n <DropdownMenu.Item key={id} onSelect={() => onAddFilter(column)}>\n {columnDef.header || id}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu>\n ) : null;\n}\n\nexport function Filters<TData, TValue>() {\n const { table, tableQuery } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n } = useFilters<TData, TValue>();\n\n const columnList = columns?.filter(\n (column) => column.columnDef.enableColumnFilter\n );\n\n const appliedFiltersSet = new Set(\n tableQuery?.filters?.map((filter) => filter.name)\n );\n\n const appliedFilters =\n tableQuery?.filters?.map((filter) => {\n const columnDef = columns?.find((col) => {\n const columnDef = col.columnDef;\n const id = columnDef.accessorKey || col.id;\n return id === filter.name;\n })?.columnDef;\n return {\n columnType: columnDef?.columnType || \"text\",\n label: (columnDef?.header as string) || \"\",\n options: columnDef?.filterOptions || [],\n ...filter,\n };\n }) || [];\n\n return (\n <Flex gap={3}>\n <Flex gap={3}>\n {appliedFilters.map((filter) => (\n <FilterChip\n key={filter.name}\n label={filter.label}\n value={filter.value}\n onRemove={() => handleRemoveFilter(filter.name)}\n onValueChange={(value) =>\n handleFilterValueChange(filter.name, value)\n }\n onOperationChange={(operator) =>\n handleFilterOperationChange(\n filter.name,\n operator as FilterOperatorTypes\n )\n }\n columnType={filter.columnType}\n options={filter.options}\n />\n ))}\n </Flex>\n <AddFilter\n columnList={columnList}\n appliedFiltersSet={appliedFiltersSet}\n onAddFilter={onAddFilter}\n />\n </Flex>\n );\n}\n"],"names":["_jsxs","DropdownMenu","_jsx","IconButton","FilterIcon","Button","useDataTable","useFilters","Flex","FilterChip"],"mappings":";;;;;;;;;;;;AAiBA,SAAS,SAAS,CAAgB,EAChC,UAAU,GAAG,EAAE,EACf,iBAAiB,EACjB,WAAW,GACmB,EAAA;IAC9B,MAAM,gBAAgB,GAAG,UAAU,EAAE,MAAM,CACzC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CACxC,CAAC;AAEF,IAAA,OAAO,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAChCA,iCAAA,CAACC,yBAAY,EACX,EAAA,QAAA,EAAA,CAAAC,gCAAA,CAACD,yBAAY,CAAC,OAAO,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC1B,iBAAiB,CAAC,IAAI,GAAG,CAAC,IACzBC,gCAAA,CAACC,qBAAU,EAAA,EAAC,IAAI,EAAE,CAAC,YACjBD,gCAAC,CAAAE,qBAAU,KAAG,EACH,CAAA,KAEbF,gCAAA,CAACG,aAAM,EAAA,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAEH,gCAAA,CAACE,qBAAU,EAAG,EAAA,CAAA,EAAA,QAAA,EAAA,QAAA,EAAA,CAE1D,CACV,EAAA,CACoB,EACvBF,gCAAC,CAAAD,yBAAY,CAAC,OAAO,IAAC,KAAK,EAAC,OAAO,EAAA,QAAA,EAChC,gBAAgB,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;AAChC,oBAAA,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;oBACnC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC;oBAC9C,QACEC,gCAAC,CAAAD,yBAAY,CAAC,IAAI,IAAU,QAAQ,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAC5D,QAAA,EAAA,SAAS,CAAC,MAAM,IAAI,EAAE,EADD,EAAA,EAAE,CAEN,EACpB;iBACH,CAAC,GACmB,CACV,EAAA,CAAA,IACb,IAAI,CAAC;AACX,CAAC;SAEe,OAAO,GAAA;IACrB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAGK,yBAAY,EAAE,CAAC;AAC7C,IAAA,MAAM,OAAO,GAAG,KAAK,EAAE,aAAa,EAAsC,CAAC;AAE3E,IAAA,MAAM,EACJ,WAAW,EACX,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,GAC5B,GAAGC,qBAAU,EAAiB,CAAC;AAEhC,IAAA,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,CAChC,CAAC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAChD,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAClD,CAAC;IAEF,MAAM,cAAc,GAClB,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,KAAI;QAClC,MAAM,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAI;AACtC,YAAA,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;YAChC,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,IAAI,GAAG,CAAC,EAAE,CAAC;AAC3C,YAAA,OAAO,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC;SAC3B,CAAC,EAAE,SAAS,CAAC;QACd,OAAO;AACL,YAAA,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,MAAM;AAC3C,YAAA,KAAK,EAAG,SAAS,EAAE,MAAiB,IAAI,EAAE;AAC1C,YAAA,OAAO,EAAE,SAAS,EAAE,aAAa,IAAI,EAAE;AACvC,YAAA,GAAG,MAAM;SACV,CAAC;KACH,CAAC,IAAI,EAAE,CAAC;IAEX,QACEP,iCAAC,CAAAQ,SAAI,EAAC,EAAA,GAAG,EAAE,CAAC,EACV,QAAA,EAAA,CAAAN,gCAAA,CAACM,SAAI,EAAA,EAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EACT,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,MACzBN,gCAAC,CAAAO,qBAAU,EAET,EAAA,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAC/C,aAAa,EAAE,CAAC,KAAK,KACnB,uBAAuB,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,EAE7C,iBAAiB,EAAE,CAAC,QAAQ,KAC1B,2BAA2B,CACzB,MAAM,CAAC,IAAI,EACX,QAA+B,CAChC,EAEH,UAAU,EAAE,MAAM,CAAC,UAAU,EAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,EAdlB,EAAA,MAAM,CAAC,IAAI,CAehB,CACH,CAAC,EAAA,CACG,EACPP,gCAAA,CAAC,SAAS,EAAA,EACR,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,EAAA,CACxB,CACG,EAAA,CAAA,EACP;AACJ;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function Filters<TData, TValue>(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"names":[],"mappings":"AAsDA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,6CAgEpC"}
@@ -0,0 +1,42 @@
1
+ import { j as jsxRuntimeExports } from '../../../node_modules/.pnpm/react@18.2.0/node_modules/react/jsx-runtime.js';
2
+ import { FilterChip } from '../../filter-chip/filter-chip.js';
3
+ import { IconButton } from '../../icon-button/icon-button.js';
4
+ import { Button } from '../../button/button.js';
5
+ import { ReactComponent as SvgFilter } from '../../icons/assets/filter.svg.js';
6
+ import { DropdownMenu } from '../../dropdown-menu/dropdown-menu.js';
7
+ import { useDataTable } from '../hooks/useDataTable.js';
8
+ import { Flex } from '../../flex/flex.js';
9
+ import { useFilters } from '../hooks/useFilters.js';
10
+
11
+ function AddFilter({ columnList = [], appliedFiltersSet, onAddFilter, }) {
12
+ const availableFilters = columnList?.filter((col) => !appliedFiltersSet.has(col.id));
13
+ return availableFilters.length > 0 ? (jsxRuntimeExports.jsxs(DropdownMenu, { children: [jsxRuntimeExports.jsx(DropdownMenu.Trigger, { asChild: true, children: appliedFiltersSet.size > 0 ? (jsxRuntimeExports.jsx(IconButton, { size: 4, children: jsxRuntimeExports.jsx(SvgFilter, {}) })) : (jsxRuntimeExports.jsx(Button, { variant: "text", size: "small", leadingIcon: jsxRuntimeExports.jsx(SvgFilter, {}), children: "Filter" })) }), jsxRuntimeExports.jsx(DropdownMenu.Content, { align: "start", children: availableFilters?.map((column) => {
14
+ const columnDef = column.columnDef;
15
+ const id = columnDef.accessorKey || column.id;
16
+ return (jsxRuntimeExports.jsx(DropdownMenu.Item, { onSelect: () => onAddFilter(column), children: columnDef.header || id }, id));
17
+ }) })] })) : null;
18
+ }
19
+ function Filters() {
20
+ const { table, tableQuery } = useDataTable();
21
+ const columns = table?.getAllColumns();
22
+ const { onAddFilter, handleRemoveFilter, handleFilterValueChange, handleFilterOperationChange, } = useFilters();
23
+ const columnList = columns?.filter((column) => column.columnDef.enableColumnFilter);
24
+ const appliedFiltersSet = new Set(tableQuery?.filters?.map((filter) => filter.name));
25
+ const appliedFilters = tableQuery?.filters?.map((filter) => {
26
+ const columnDef = columns?.find((col) => {
27
+ const columnDef = col.columnDef;
28
+ const id = columnDef.accessorKey || col.id;
29
+ return id === filter.name;
30
+ })?.columnDef;
31
+ return {
32
+ columnType: columnDef?.columnType || "text",
33
+ label: columnDef?.header || "",
34
+ options: columnDef?.filterOptions || [],
35
+ ...filter,
36
+ };
37
+ }) || [];
38
+ return (jsxRuntimeExports.jsxs(Flex, { gap: 3, children: [jsxRuntimeExports.jsx(Flex, { gap: 3, children: appliedFilters.map((filter) => (jsxRuntimeExports.jsx(FilterChip, { label: filter.label, value: filter.value, onRemove: () => handleRemoveFilter(filter.name), onValueChange: (value) => handleFilterValueChange(filter.name, value), onOperationChange: (operator) => handleFilterOperationChange(filter.name, operator), columnType: filter.columnType, options: filter.options }, filter.name))) }), jsxRuntimeExports.jsx(AddFilter, { columnList: columnList, appliedFiltersSet: appliedFiltersSet, onAddFilter: onAddFilter })] }));
39
+ }
40
+
41
+ export { Filters };
42
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.js","sources":["../../../../../v1/components/data-table/components/filters.tsx"],"sourcesContent":["import { FilterChip } from \"../../filter-chip\";\nimport { DataTableColumn } from \"../data-table.types\";\nimport { IconButton } from \"../../icon-button\";\nimport { Button } from \"../../button\";\nimport { FilterIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../dropdown-menu\";\nimport { useDataTable } from \"../hooks/useDataTable\";\nimport { Flex } from \"../../flex\";\nimport { FilterOperatorTypes } from \"~/v1/types/filters\";\nimport { useFilters } from \"../hooks/useFilters\";\n\ninterface AddFilterProps<TData, TValue> {\n columnList: DataTableColumn<TData, TValue>[];\n appliedFiltersSet: Set<string>;\n onAddFilter: (column: DataTableColumn<TData, TValue>) => void;\n}\n\nfunction AddFilter<TData, TValue>({\n columnList = [],\n appliedFiltersSet,\n onAddFilter,\n}: AddFilterProps<TData, TValue>) {\n const availableFilters = columnList?.filter(\n (col) => !appliedFiltersSet.has(col.id)\n );\n\n return availableFilters.length > 0 ? (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n {appliedFiltersSet.size > 0 ? (\n <IconButton size={4}>\n <FilterIcon />\n </IconButton>\n ) : (\n <Button variant={\"text\"} size={\"small\"} leadingIcon={<FilterIcon />}>\n Filter\n </Button>\n )}\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {availableFilters?.map((column) => {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n return (\n <DropdownMenu.Item key={id} onSelect={() => onAddFilter(column)}>\n {columnDef.header || id}\n </DropdownMenu.Item>\n );\n })}\n </DropdownMenu.Content>\n </DropdownMenu>\n ) : null;\n}\n\nexport function Filters<TData, TValue>() {\n const { table, tableQuery } = useDataTable();\n const columns = table?.getAllColumns() as DataTableColumn<TData, TValue>[];\n\n const {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n } = useFilters<TData, TValue>();\n\n const columnList = columns?.filter(\n (column) => column.columnDef.enableColumnFilter\n );\n\n const appliedFiltersSet = new Set(\n tableQuery?.filters?.map((filter) => filter.name)\n );\n\n const appliedFilters =\n tableQuery?.filters?.map((filter) => {\n const columnDef = columns?.find((col) => {\n const columnDef = col.columnDef;\n const id = columnDef.accessorKey || col.id;\n return id === filter.name;\n })?.columnDef;\n return {\n columnType: columnDef?.columnType || \"text\",\n label: (columnDef?.header as string) || \"\",\n options: columnDef?.filterOptions || [],\n ...filter,\n };\n }) || [];\n\n return (\n <Flex gap={3}>\n <Flex gap={3}>\n {appliedFilters.map((filter) => (\n <FilterChip\n key={filter.name}\n label={filter.label}\n value={filter.value}\n onRemove={() => handleRemoveFilter(filter.name)}\n onValueChange={(value) =>\n handleFilterValueChange(filter.name, value)\n }\n onOperationChange={(operator) =>\n handleFilterOperationChange(\n filter.name,\n operator as FilterOperatorTypes\n )\n }\n columnType={filter.columnType}\n options={filter.options}\n />\n ))}\n </Flex>\n <AddFilter\n columnList={columnList}\n appliedFiltersSet={appliedFiltersSet}\n onAddFilter={onAddFilter}\n />\n </Flex>\n );\n}\n"],"names":["_jsxs","_jsx","FilterIcon"],"mappings":"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"}