@cascivo/react 1.0.0 → 1.2.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 (646) hide show
  1. package/README.md +5 -4
  2. package/dist/accordion/accordion.js +1 -114
  3. package/dist/accordion/accordion.module.js +1 -10
  4. package/dist/action-sheet/action-sheet.css +1 -1
  5. package/dist/action-sheet/action-sheet.js +1 -91
  6. package/dist/action-sheet/action-sheet.module.js +1 -12
  7. package/dist/alert/alert.js +1 -55
  8. package/dist/alert/alert.module.js +1 -11
  9. package/dist/alert-dialog/alert-dialog.css +1 -1
  10. package/dist/alert-dialog/alert-dialog.js +1 -66
  11. package/dist/alert-dialog/alert-dialog.module.js +1 -11
  12. package/dist/app-shell/app-shell.css +1 -1
  13. package/dist/app-shell/app-shell.js +1 -85
  14. package/dist/app-shell/app-shell.module.js +1 -12
  15. package/dist/aspect-ratio/aspect-ratio.js +1 -20
  16. package/dist/aspect-ratio/aspect-ratio.module.js +1 -6
  17. package/dist/avatar/avatar.js +1 -57
  18. package/dist/avatar/avatar.module.js +1 -8
  19. package/dist/avatar-group/avatar-group.js +1 -24
  20. package/dist/avatar-group/avatar-group.module.js +1 -6
  21. package/dist/badge/badge.js +1 -22
  22. package/dist/badge/badge.module.js +1 -3
  23. package/dist/blockquote/blockquote.js +1 -16
  24. package/dist/blockquote/blockquote.module.js +1 -6
  25. package/dist/bottom-sheet/bottom-sheet.js +1 -111
  26. package/dist/bottom-sheet/bottom-sheet.module.js +1 -14
  27. package/dist/brand/logo/logo.css +1 -0
  28. package/dist/brand/logo/logo.js +1 -0
  29. package/dist/brand/logo/logo.module.js +2 -0
  30. package/dist/breadcrumb/breadcrumb.js +1 -28
  31. package/dist/breadcrumb/breadcrumb.module.js +1 -3
  32. package/dist/button/button.css +1 -1
  33. package/dist/button/button.js +1 -35
  34. package/dist/button/button.module.js +1 -6
  35. package/dist/button-group/button-group.js +1 -39
  36. package/dist/button-group/button-group.module.js +1 -3
  37. package/dist/calendar/calendar-date.js +1 -0
  38. package/dist/calendar/calendar.css +1 -1
  39. package/dist/calendar/calendar.js +1 -199
  40. package/dist/calendar/calendar.module.js +1 -14
  41. package/dist/card/card.js +1 -53
  42. package/dist/card/card.module.js +1 -12
  43. package/dist/carousel/carousel.css +1 -1
  44. package/dist/carousel/carousel.js +1 -138
  45. package/dist/carousel/carousel.module.js +1 -13
  46. package/dist/chat-bubble/chat-bubble.js +1 -31
  47. package/dist/chat-bubble/chat-bubble.module.js +1 -11
  48. package/dist/checkbox/checkbox.js +1 -39
  49. package/dist/checkbox/checkbox.module.js +1 -8
  50. package/dist/checkbox-card/checkbox-card.css +1 -1
  51. package/dist/checkbox-card/checkbox-card.js +1 -50
  52. package/dist/checkbox-card/checkbox-card.module.js +1 -11
  53. package/dist/code/code.js +1 -14
  54. package/dist/code/code.module.js +1 -3
  55. package/dist/code-snippet/code-snippet.js +2 -121
  56. package/dist/code-snippet/code-snippet.module.js +1 -17
  57. package/dist/code-snippet/highlight.js +1 -67
  58. package/dist/collapsible/collapsible.js +1 -47
  59. package/dist/collapsible/collapsible.module.js +1 -7
  60. package/dist/color-picker/color-picker.css +1 -1
  61. package/dist/color-picker/color-picker.js +1 -272
  62. package/dist/color-picker/color-picker.module.js +1 -18
  63. package/dist/color-picker/color.js +1 -0
  64. package/dist/combobox/combobox.css +1 -1
  65. package/dist/combobox/combobox.js +1 -170
  66. package/dist/combobox/combobox.module.js +1 -19
  67. package/dist/combobox/list-nav.js +1 -0
  68. package/dist/combobox/option-list.js +1 -0
  69. package/dist/command-menu/command-menu.js +1 -421
  70. package/dist/command-menu/command-menu.module.js +1 -34
  71. package/dist/comparison/comparison.js +1 -69
  72. package/dist/comparison/comparison.module.js +1 -9
  73. package/dist/contained-list/contained-list.js +1 -41
  74. package/dist/contained-list/contained-list.module.js +1 -11
  75. package/dist/context-menu/context-menu.js +1 -93
  76. package/dist/context-menu/context-menu.module.js +1 -7
  77. package/dist/copy-button/copy-button.js +1 -60
  78. package/dist/copy-button/copy-button.module.js +1 -6
  79. package/dist/data-list/data-list.js +1 -25
  80. package/dist/data-list/data-list.module.js +1 -8
  81. package/dist/data-table/column-filter.js +1 -0
  82. package/dist/data-table/column-layout.js +1 -0
  83. package/dist/data-table/data-table.css +1 -1
  84. package/dist/data-table/data-table.js +1 -398
  85. package/dist/data-table/data-table.module.js +1 -33
  86. package/dist/data-table/grid-keys.js +1 -0
  87. package/dist/data-table/row-group.js +1 -0
  88. package/dist/data-table/row-search.js +1 -0
  89. package/dist/data-table/row-sort.js +1 -0
  90. package/dist/data-table/to-csv.js +3 -0
  91. package/dist/data-table/virtual-window.js +1 -0
  92. package/dist/date-picker/date-picker.css +1 -1
  93. package/dist/date-picker/date-picker.js +1 -224
  94. package/dist/date-picker/date-picker.module.js +1 -23
  95. package/dist/date-picker/parse-date.js +1 -0
  96. package/dist/date-range-picker/date-range-picker.js +1 -196
  97. package/dist/date-range-picker/date-range-picker.module.js +1 -18
  98. package/dist/dock/dock.css +1 -1
  99. package/dist/dock/dock.js +1 -34
  100. package/dist/dock/dock.module.js +1 -8
  101. package/dist/drawer/drawer.js +1 -96
  102. package/dist/drawer/drawer.module.js +1 -13
  103. package/dist/dropdown/dropdown.css +1 -1
  104. package/dist/dropdown/dropdown.js +1 -110
  105. package/dist/dropdown/dropdown.module.js +1 -9
  106. package/dist/editable/editable.js +1 -76
  107. package/dist/editable/editable.module.js +1 -11
  108. package/dist/empty-state/empty-state.js +1 -32
  109. package/dist/empty-state/empty-state.module.js +1 -9
  110. package/dist/fab/fab.css +1 -1
  111. package/dist/fab/fab.js +1 -93
  112. package/dist/fab/fab.module.js +1 -12
  113. package/dist/field/field.css +1 -1
  114. package/dist/field/field.js +1 -53
  115. package/dist/field/field.module.js +1 -7
  116. package/dist/file-uploader/file-uploader.css +1 -1
  117. package/dist/file-uploader/file-uploader.js +1 -123
  118. package/dist/file-uploader/file-uploader.module.js +1 -18
  119. package/dist/filter/filter.css +1 -1
  120. package/dist/filter/filter.js +1 -35
  121. package/dist/filter/filter.module.js +1 -6
  122. package/dist/form/form.js +1 -95
  123. package/dist/form/form.module.js +1 -3
  124. package/dist/header/header.js +1 -44
  125. package/dist/header/header.module.js +1 -11
  126. package/dist/header-panel/header-panel.js +1 -72
  127. package/dist/header-panel/header-panel.module.js +1 -9
  128. package/dist/heading/heading.css +1 -1
  129. package/dist/heading/heading.js +1 -22
  130. package/dist/heading/heading.module.js +1 -3
  131. package/dist/hover-card/hover-card.css +1 -1
  132. package/dist/hover-card/hover-card.js +1 -84
  133. package/dist/hover-card/hover-card.module.js +1 -6
  134. package/dist/icon-button/icon-button.js +1 -19
  135. package/dist/icon-button/icon-button.module.js +1 -3
  136. package/dist/image/image.css +1 -1
  137. package/dist/image/image.js +1 -64
  138. package/dist/image/image.module.js +1 -9
  139. package/dist/index.d.ts +1521 -38
  140. package/dist/indicator/indicator.js +1 -16
  141. package/dist/indicator/indicator.module.js +1 -6
  142. package/dist/infinite-scroll/infinite-scroll.js +1 -49
  143. package/dist/infinite-scroll/infinite-scroll.module.js +1 -7
  144. package/dist/inline-loading/inline-loading.js +1 -74
  145. package/dist/inline-loading/inline-loading.module.js +1 -9
  146. package/dist/input/input.css +1 -1
  147. package/dist/input/input.js +1 -56
  148. package/dist/input/input.module.js +1 -9
  149. package/dist/input-group/input-group.css +1 -1
  150. package/dist/input-group/input-group.js +1 -39
  151. package/dist/input-group/input-group.module.js +1 -9
  152. package/dist/item/item.js +1 -50
  153. package/dist/item/item.module.js +1 -10
  154. package/dist/join/join.js +1 -12
  155. package/dist/join/join.module.js +1 -3
  156. package/dist/kbd/kbd.js +1 -14
  157. package/dist/kbd/kbd.module.js +1 -3
  158. package/dist/label/label.js +1 -23
  159. package/dist/label/label.module.js +1 -7
  160. package/dist/large-title-header/large-title-header.js +1 -38
  161. package/dist/large-title-header/large-title-header.module.js +1 -12
  162. package/dist/layouts/src/auto-grid/auto-grid.js +1 -17
  163. package/dist/layouts/src/auto-grid/auto-grid.module.js +1 -4
  164. package/dist/layouts/src/center/center.js +1 -16
  165. package/dist/layouts/src/center/center.module.js +1 -3
  166. package/dist/layouts/src/columns/columns.js +1 -21
  167. package/dist/layouts/src/columns/columns.module.js +1 -6
  168. package/dist/layouts/src/flex/flex.css +1 -1
  169. package/dist/layouts/src/flex/flex.js +1 -20
  170. package/dist/layouts/src/flex/flex.module.js +1 -3
  171. package/dist/layouts/src/grid/grid.css +1 -1
  172. package/dist/layouts/src/grid/grid.js +1 -55
  173. package/dist/layouts/src/grid/grid.module.js +1 -7
  174. package/dist/layouts/src/page-header/page-header.js +1 -31
  175. package/dist/layouts/src/page-header/page-header.module.js +1 -10
  176. package/dist/layouts/src/spacer/spacer.js +1 -17
  177. package/dist/layouts/src/spacer/spacer.module.js +1 -3
  178. package/dist/link/link.css +1 -1
  179. package/dist/link/link.js +1 -22
  180. package/dist/link/link.module.js +1 -3
  181. package/dist/list/list.js +1 -21
  182. package/dist/list/list.module.js +1 -6
  183. package/dist/log-viewer/log-viewer.css +1 -1
  184. package/dist/log-viewer/log-viewer.js +2 -184
  185. package/dist/log-viewer/log-viewer.module.js +1 -16
  186. package/dist/menu/menu.js +1 -126
  187. package/dist/menu/menu.module.js +1 -8
  188. package/dist/menu-button/menu-button.js +1 -92
  189. package/dist/menu-button/menu-button.module.js +1 -8
  190. package/dist/menubar/menubar.js +1 -103
  191. package/dist/menubar/menubar.module.js +1 -8
  192. package/dist/modal/modal.css +1 -1
  193. package/dist/modal/modal.js +1 -76
  194. package/dist/modal/modal.module.js +1 -12
  195. package/dist/multi-select/list-nav.js +1 -0
  196. package/dist/multi-select/multi-select.css +1 -1
  197. package/dist/multi-select/multi-select.js +1 -106
  198. package/dist/multi-select/multi-select.module.js +1 -15
  199. package/dist/multi-select/option-list.js +1 -0
  200. package/dist/native-select/native-select.css +1 -1
  201. package/dist/native-select/native-select.js +1 -37
  202. package/dist/native-select/native-select.module.js +1 -7
  203. package/dist/navigation-menu/navigation-menu.js +1 -99
  204. package/dist/navigation-menu/navigation-menu.module.js +1 -10
  205. package/dist/node/accordion/accordion.js +1 -114
  206. package/dist/node/accordion/accordion.module.js +1 -10
  207. package/dist/node/action-sheet/action-sheet.js +1 -91
  208. package/dist/node/action-sheet/action-sheet.module.js +1 -12
  209. package/dist/node/alert/alert.js +1 -55
  210. package/dist/node/alert/alert.module.js +1 -11
  211. package/dist/node/alert-dialog/alert-dialog.js +1 -66
  212. package/dist/node/alert-dialog/alert-dialog.module.js +1 -11
  213. package/dist/node/app-shell/app-shell.js +1 -85
  214. package/dist/node/app-shell/app-shell.module.js +1 -12
  215. package/dist/node/aspect-ratio/aspect-ratio.js +1 -20
  216. package/dist/node/aspect-ratio/aspect-ratio.module.js +1 -6
  217. package/dist/node/avatar/avatar.js +1 -57
  218. package/dist/node/avatar/avatar.module.js +1 -8
  219. package/dist/node/avatar-group/avatar-group.js +1 -24
  220. package/dist/node/avatar-group/avatar-group.module.js +1 -6
  221. package/dist/node/badge/badge.js +1 -22
  222. package/dist/node/badge/badge.module.js +1 -3
  223. package/dist/node/blockquote/blockquote.js +1 -16
  224. package/dist/node/blockquote/blockquote.module.js +1 -6
  225. package/dist/node/bottom-sheet/bottom-sheet.js +1 -111
  226. package/dist/node/bottom-sheet/bottom-sheet.module.js +1 -14
  227. package/dist/node/brand/logo/logo.js +1 -0
  228. package/dist/node/brand/logo/logo.module.js +1 -0
  229. package/dist/node/breadcrumb/breadcrumb.js +1 -28
  230. package/dist/node/breadcrumb/breadcrumb.module.js +1 -3
  231. package/dist/node/button/button.js +1 -35
  232. package/dist/node/button/button.module.js +1 -6
  233. package/dist/node/button-group/button-group.js +1 -39
  234. package/dist/node/button-group/button-group.module.js +1 -3
  235. package/dist/node/calendar/calendar-date.js +1 -0
  236. package/dist/node/calendar/calendar.js +1 -199
  237. package/dist/node/calendar/calendar.module.js +1 -14
  238. package/dist/node/card/card.js +1 -53
  239. package/dist/node/card/card.module.js +1 -12
  240. package/dist/node/carousel/carousel.js +1 -138
  241. package/dist/node/carousel/carousel.module.js +1 -13
  242. package/dist/node/chat-bubble/chat-bubble.js +1 -31
  243. package/dist/node/chat-bubble/chat-bubble.module.js +1 -11
  244. package/dist/node/checkbox/checkbox.js +1 -39
  245. package/dist/node/checkbox/checkbox.module.js +1 -8
  246. package/dist/node/checkbox-card/checkbox-card.js +1 -50
  247. package/dist/node/checkbox-card/checkbox-card.module.js +1 -11
  248. package/dist/node/code/code.js +1 -14
  249. package/dist/node/code/code.module.js +1 -3
  250. package/dist/node/code-snippet/code-snippet.js +2 -121
  251. package/dist/node/code-snippet/code-snippet.module.js +1 -17
  252. package/dist/node/code-snippet/highlight.js +1 -67
  253. package/dist/node/collapsible/collapsible.js +1 -47
  254. package/dist/node/collapsible/collapsible.module.js +1 -7
  255. package/dist/node/color-picker/color-picker.js +1 -272
  256. package/dist/node/color-picker/color-picker.module.js +1 -18
  257. package/dist/node/color-picker/color.js +1 -0
  258. package/dist/node/combobox/combobox.js +1 -170
  259. package/dist/node/combobox/combobox.module.js +1 -19
  260. package/dist/node/combobox/list-nav.js +1 -0
  261. package/dist/node/combobox/option-list.js +1 -0
  262. package/dist/node/command-menu/command-menu.js +1 -421
  263. package/dist/node/command-menu/command-menu.module.js +1 -34
  264. package/dist/node/comparison/comparison.js +1 -69
  265. package/dist/node/comparison/comparison.module.js +1 -9
  266. package/dist/node/contained-list/contained-list.js +1 -41
  267. package/dist/node/contained-list/contained-list.module.js +1 -11
  268. package/dist/node/context-menu/context-menu.js +1 -93
  269. package/dist/node/context-menu/context-menu.module.js +1 -7
  270. package/dist/node/copy-button/copy-button.js +1 -60
  271. package/dist/node/copy-button/copy-button.module.js +1 -6
  272. package/dist/node/data-list/data-list.js +1 -25
  273. package/dist/node/data-list/data-list.module.js +1 -8
  274. package/dist/node/data-table/column-filter.js +1 -0
  275. package/dist/node/data-table/column-layout.js +1 -0
  276. package/dist/node/data-table/data-table.js +1 -398
  277. package/dist/node/data-table/data-table.module.js +1 -33
  278. package/dist/node/data-table/grid-keys.js +1 -0
  279. package/dist/node/data-table/row-group.js +1 -0
  280. package/dist/node/data-table/row-search.js +1 -0
  281. package/dist/node/data-table/row-sort.js +1 -0
  282. package/dist/node/data-table/to-csv.js +3 -0
  283. package/dist/node/data-table/virtual-window.js +1 -0
  284. package/dist/node/date-picker/date-picker.js +1 -224
  285. package/dist/node/date-picker/date-picker.module.js +1 -23
  286. package/dist/node/date-picker/parse-date.js +1 -0
  287. package/dist/node/date-range-picker/date-range-picker.js +1 -196
  288. package/dist/node/date-range-picker/date-range-picker.module.js +1 -18
  289. package/dist/node/dock/dock.js +1 -34
  290. package/dist/node/dock/dock.module.js +1 -8
  291. package/dist/node/drawer/drawer.js +1 -96
  292. package/dist/node/drawer/drawer.module.js +1 -13
  293. package/dist/node/dropdown/dropdown.js +1 -110
  294. package/dist/node/dropdown/dropdown.module.js +1 -9
  295. package/dist/node/editable/editable.js +1 -76
  296. package/dist/node/editable/editable.module.js +1 -11
  297. package/dist/node/empty-state/empty-state.js +1 -32
  298. package/dist/node/empty-state/empty-state.module.js +1 -9
  299. package/dist/node/fab/fab.js +1 -93
  300. package/dist/node/fab/fab.module.js +1 -12
  301. package/dist/node/field/field.js +1 -53
  302. package/dist/node/field/field.module.js +1 -7
  303. package/dist/node/file-uploader/file-uploader.js +1 -123
  304. package/dist/node/file-uploader/file-uploader.module.js +1 -18
  305. package/dist/node/filter/filter.js +1 -35
  306. package/dist/node/filter/filter.module.js +1 -6
  307. package/dist/node/form/form.js +1 -95
  308. package/dist/node/form/form.module.js +1 -3
  309. package/dist/node/header/header.js +1 -44
  310. package/dist/node/header/header.module.js +1 -11
  311. package/dist/node/header-panel/header-panel.js +1 -72
  312. package/dist/node/header-panel/header-panel.module.js +1 -9
  313. package/dist/node/heading/heading.js +1 -22
  314. package/dist/node/heading/heading.module.js +1 -3
  315. package/dist/node/hover-card/hover-card.js +1 -84
  316. package/dist/node/hover-card/hover-card.module.js +1 -6
  317. package/dist/node/icon-button/icon-button.js +1 -19
  318. package/dist/node/icon-button/icon-button.module.js +1 -3
  319. package/dist/node/image/image.js +1 -64
  320. package/dist/node/image/image.module.js +1 -9
  321. package/dist/node/indicator/indicator.js +1 -16
  322. package/dist/node/indicator/indicator.module.js +1 -6
  323. package/dist/node/infinite-scroll/infinite-scroll.js +1 -49
  324. package/dist/node/infinite-scroll/infinite-scroll.module.js +1 -7
  325. package/dist/node/inline-loading/inline-loading.js +1 -74
  326. package/dist/node/inline-loading/inline-loading.module.js +1 -9
  327. package/dist/node/input/input.js +1 -56
  328. package/dist/node/input/input.module.js +1 -9
  329. package/dist/node/input-group/input-group.js +1 -39
  330. package/dist/node/input-group/input-group.module.js +1 -9
  331. package/dist/node/item/item.js +1 -50
  332. package/dist/node/item/item.module.js +1 -10
  333. package/dist/node/join/join.js +1 -12
  334. package/dist/node/join/join.module.js +1 -3
  335. package/dist/node/kbd/kbd.js +1 -14
  336. package/dist/node/kbd/kbd.module.js +1 -3
  337. package/dist/node/label/label.js +1 -23
  338. package/dist/node/label/label.module.js +1 -7
  339. package/dist/node/large-title-header/large-title-header.js +1 -38
  340. package/dist/node/large-title-header/large-title-header.module.js +1 -12
  341. package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -17
  342. package/dist/node/layouts/src/auto-grid/auto-grid.module.js +1 -4
  343. package/dist/node/layouts/src/center/center.js +1 -16
  344. package/dist/node/layouts/src/center/center.module.js +1 -3
  345. package/dist/node/layouts/src/columns/columns.js +1 -21
  346. package/dist/node/layouts/src/columns/columns.module.js +1 -6
  347. package/dist/node/layouts/src/flex/flex.js +1 -20
  348. package/dist/node/layouts/src/flex/flex.module.js +1 -3
  349. package/dist/node/layouts/src/grid/grid.js +1 -55
  350. package/dist/node/layouts/src/grid/grid.module.js +1 -7
  351. package/dist/node/layouts/src/page-header/page-header.js +1 -31
  352. package/dist/node/layouts/src/page-header/page-header.module.js +1 -10
  353. package/dist/node/layouts/src/spacer/spacer.js +1 -17
  354. package/dist/node/layouts/src/spacer/spacer.module.js +1 -3
  355. package/dist/node/link/link.js +1 -22
  356. package/dist/node/link/link.module.js +1 -3
  357. package/dist/node/list/list.js +1 -21
  358. package/dist/node/list/list.module.js +1 -6
  359. package/dist/node/log-viewer/log-viewer.js +2 -184
  360. package/dist/node/log-viewer/log-viewer.module.js +1 -16
  361. package/dist/node/menu/menu.js +1 -126
  362. package/dist/node/menu/menu.module.js +1 -8
  363. package/dist/node/menu-button/menu-button.js +1 -92
  364. package/dist/node/menu-button/menu-button.module.js +1 -8
  365. package/dist/node/menubar/menubar.js +1 -103
  366. package/dist/node/menubar/menubar.module.js +1 -8
  367. package/dist/node/modal/modal.js +1 -76
  368. package/dist/node/modal/modal.module.js +1 -12
  369. package/dist/node/multi-select/list-nav.js +1 -0
  370. package/dist/node/multi-select/multi-select.js +1 -106
  371. package/dist/node/multi-select/multi-select.module.js +1 -15
  372. package/dist/node/multi-select/option-list.js +1 -0
  373. package/dist/node/native-select/native-select.js +1 -37
  374. package/dist/node/native-select/native-select.module.js +1 -7
  375. package/dist/node/navigation-menu/navigation-menu.js +1 -99
  376. package/dist/node/navigation-menu/navigation-menu.module.js +1 -10
  377. package/dist/node/notification/notification.js +1 -140
  378. package/dist/node/notification/notification.module.js +1 -11
  379. package/dist/node/number-input/number-input.js +1 -148
  380. package/dist/node/number-input/number-input.module.js +1 -12
  381. package/dist/node/otp-input/otp-input.js +1 -70
  382. package/dist/node/otp-input/otp-input.module.js +1 -6
  383. package/dist/node/overflow-menu/overflow-menu.js +1 -70
  384. package/dist/node/overflow-menu/overflow-menu.module.js +1 -7
  385. package/dist/node/pagination/pagination.js +1 -92
  386. package/dist/node/pagination/pagination.module.js +1 -11
  387. package/dist/node/password-input/password-input.js +1 -81
  388. package/dist/node/password-input/password-input.module.js +1 -11
  389. package/dist/node/popover/popover.js +1 -51
  390. package/dist/node/popover/popover.module.js +1 -6
  391. package/dist/node/popover/use-popover.js +1 -55
  392. package/dist/node/progress/progress.js +1 -16
  393. package/dist/node/progress/progress.module.js +1 -6
  394. package/dist/node/progress-bar/progress-bar.js +1 -42
  395. package/dist/node/progress-bar/progress-bar.module.js +1 -11
  396. package/dist/node/progress-circle/progress-circle.js +1 -46
  397. package/dist/node/progress-circle/progress-circle.module.js +1 -9
  398. package/dist/node/progress-indicator/progress-indicator.js +1 -34
  399. package/dist/node/progress-indicator/progress-indicator.module.js +1 -10
  400. package/dist/node/prose/prose.js +1 -13
  401. package/dist/node/prose/prose.module.js +1 -3
  402. package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -82
  403. package/dist/node/pull-to-refresh/pull-to-refresh.module.js +1 -9
  404. package/dist/node/qr-code/encode.js +1 -583
  405. package/dist/node/qr-code/qr-code.js +1 -41
  406. package/dist/node/qr-code/qr-code.module.js +1 -6
  407. package/dist/node/radial-progress/radial-progress.js +1 -27
  408. package/dist/node/radial-progress/radial-progress.module.js +1 -6
  409. package/dist/node/radio/radio.js +1 -49
  410. package/dist/node/radio/radio.module.js +1 -9
  411. package/dist/node/radio-card/radio-card.js +1 -64
  412. package/dist/node/radio-card/radio-card.module.js +1 -11
  413. package/dist/node/rating-group/rating-group.js +1 -37
  414. package/dist/node/rating-group/rating-group.module.js +1 -6
  415. package/dist/node/react/src/index.js +1 -141
  416. package/dist/node/relative-time/relative-time.js +1 -66
  417. package/dist/node/relative-time/relative-time.module.js +1 -3
  418. package/dist/node/reorder-list/reorder-list.js +1 -143
  419. package/dist/node/reorder-list/reorder-list.module.js +1 -11
  420. package/dist/node/resizable/resizable.js +1 -80
  421. package/dist/node/resizable/resizable.module.js +1 -8
  422. package/dist/node/scroll-area/scroll-area.js +1 -38
  423. package/dist/node/scroll-area/scroll-area.module.js +1 -3
  424. package/dist/node/search/search.js +1 -96
  425. package/dist/node/search/search.module.js +1 -9
  426. package/dist/node/segmented-control/segmented-control.js +1 -43
  427. package/dist/node/segmented-control/segmented-control.module.js +1 -6
  428. package/dist/node/select/select.js +1 -73
  429. package/dist/node/select/select.module.js +1 -11
  430. package/dist/node/separator/separator.js +1 -19
  431. package/dist/node/separator/separator.module.js +1 -3
  432. package/dist/node/sheet/sheet.js +1 -49
  433. package/dist/node/sheet/sheet.module.js +1 -9
  434. package/dist/node/shell-header/shell-header.js +1 -169
  435. package/dist/node/shell-header/shell-header.module.js +1 -24
  436. package/dist/node/side-nav/side-nav.js +1 -334
  437. package/dist/node/side-nav/side-nav.module.js +1 -31
  438. package/dist/node/skeleton/skeleton.js +1 -23
  439. package/dist/node/skeleton/skeleton.module.js +1 -7
  440. package/dist/node/skip-nav/skip-nav.js +1 -28
  441. package/dist/node/skip-nav/skip-nav.module.js +1 -3
  442. package/dist/node/slider/slider.js +1 -30
  443. package/dist/node/slider/slider.module.js +1 -7
  444. package/dist/node/spinner/spinner.js +1 -18
  445. package/dist/node/spinner/spinner.module.js +1 -6
  446. package/dist/node/stack/stack.js +1 -17
  447. package/dist/node/stack/stack.module.js +1 -6
  448. package/dist/node/stat/stat.js +1 -41
  449. package/dist/node/stat/stat.module.js +1 -11
  450. package/dist/node/status/status.js +1 -25
  451. package/dist/node/status/status.module.js +1 -7
  452. package/dist/node/steps/steps.js +1 -35
  453. package/dist/node/steps/steps.module.js +1 -8
  454. package/dist/node/structured-list/structured-list.js +1 -102
  455. package/dist/node/structured-list/structured-list.module.js +1 -12
  456. package/dist/node/swap/swap.js +1 -36
  457. package/dist/node/swap/swap.module.js +1 -7
  458. package/dist/node/swipe-item/swipe-item.js +1 -62
  459. package/dist/node/swipe-item/swipe-item.module.js +1 -12
  460. package/dist/node/switcher/switcher.js +1 -32
  461. package/dist/node/switcher/switcher.module.js +1 -8
  462. package/dist/node/tabs/tabs.js +1 -98
  463. package/dist/node/tabs/tabs.module.js +1 -8
  464. package/dist/node/tag/tag.js +1 -33
  465. package/dist/node/tag/tag.module.js +1 -6
  466. package/dist/node/tags-input/tags-input.js +1 -68
  467. package/dist/node/tags-input/tags-input.module.js +1 -8
  468. package/dist/node/text/text.js +1 -16
  469. package/dist/node/text/text.module.js +1 -3
  470. package/dist/node/textarea/textarea.js +1 -58
  471. package/dist/node/textarea/textarea.module.js +1 -9
  472. package/dist/node/tile/tile.js +1 -39
  473. package/dist/node/tile/tile.module.js +1 -7
  474. package/dist/node/time-picker/time-picker.js +1 -64
  475. package/dist/node/time-picker/time-picker.module.js +1 -9
  476. package/dist/node/timeline/timeline.js +1 -55
  477. package/dist/node/timeline/timeline.module.js +1 -11
  478. package/dist/node/toast/toast.js +1 -85
  479. package/dist/node/toast/toast.module.js +1 -11
  480. package/dist/node/toc/toc.js +1 -43
  481. package/dist/node/toc/toc.module.js +1 -3
  482. package/dist/node/toc/use-toc-from-region.js +1 -18
  483. package/dist/node/toggle/toggle.js +1 -42
  484. package/dist/node/toggle/toggle.module.js +1 -8
  485. package/dist/node/toggle-group/toggle-group.js +1 -55
  486. package/dist/node/toggle-group/toggle-group.module.js +1 -6
  487. package/dist/node/toggletip/toggletip.js +1 -49
  488. package/dist/node/toggletip/toggletip.module.js +1 -7
  489. package/dist/node/tooltip/tooltip.js +1 -58
  490. package/dist/node/tooltip/tooltip.module.js +1 -6
  491. package/dist/node/tree-view/tree-view.js +1 -201
  492. package/dist/node/tree-view/tree-view.module.js +1 -13
  493. package/dist/node/user/user.js +1 -35
  494. package/dist/node/user/user.module.js +1 -9
  495. package/dist/node/virtual-list/virtual-list.js +1 -40
  496. package/dist/node/virtual-list/virtual-list.module.js +1 -7
  497. package/dist/node/visually-hidden/visually-hidden.js +1 -2
  498. package/dist/node/wheel-picker/wheel-picker.js +1 -84
  499. package/dist/node/wheel-picker/wheel-picker.module.js +1 -8
  500. package/dist/notification/notification.js +1 -140
  501. package/dist/notification/notification.module.js +1 -11
  502. package/dist/number-input/number-input.js +1 -148
  503. package/dist/number-input/number-input.module.js +1 -12
  504. package/dist/otp-input/otp-input.js +1 -70
  505. package/dist/otp-input/otp-input.module.js +1 -6
  506. package/dist/overflow-menu/overflow-menu.js +1 -70
  507. package/dist/overflow-menu/overflow-menu.module.js +1 -7
  508. package/dist/pagination/pagination.js +1 -92
  509. package/dist/pagination/pagination.module.js +1 -11
  510. package/dist/password-input/password-input.js +1 -81
  511. package/dist/password-input/password-input.module.js +1 -11
  512. package/dist/popover/popover.js +1 -51
  513. package/dist/popover/popover.module.js +1 -6
  514. package/dist/popover/use-popover.js +1 -55
  515. package/dist/progress/progress.css +1 -1
  516. package/dist/progress/progress.js +1 -16
  517. package/dist/progress/progress.module.js +1 -6
  518. package/dist/progress-bar/progress-bar.css +1 -1
  519. package/dist/progress-bar/progress-bar.js +1 -42
  520. package/dist/progress-bar/progress-bar.module.js +1 -11
  521. package/dist/progress-circle/progress-circle.js +1 -46
  522. package/dist/progress-circle/progress-circle.module.js +1 -9
  523. package/dist/progress-indicator/progress-indicator.css +1 -1
  524. package/dist/progress-indicator/progress-indicator.js +1 -34
  525. package/dist/progress-indicator/progress-indicator.module.js +1 -10
  526. package/dist/prose/prose.css +1 -1
  527. package/dist/prose/prose.js +1 -13
  528. package/dist/prose/prose.module.js +1 -3
  529. package/dist/pull-to-refresh/pull-to-refresh.js +1 -82
  530. package/dist/pull-to-refresh/pull-to-refresh.module.js +1 -9
  531. package/dist/qr-code/encode.js +1 -583
  532. package/dist/qr-code/qr-code.js +1 -41
  533. package/dist/qr-code/qr-code.module.js +1 -6
  534. package/dist/radial-progress/radial-progress.js +1 -27
  535. package/dist/radial-progress/radial-progress.module.js +1 -6
  536. package/dist/radio/radio.js +1 -49
  537. package/dist/radio/radio.module.js +1 -9
  538. package/dist/radio-card/radio-card.css +1 -1
  539. package/dist/radio-card/radio-card.js +1 -64
  540. package/dist/radio-card/radio-card.module.js +1 -11
  541. package/dist/rating-group/rating-group.js +1 -37
  542. package/dist/rating-group/rating-group.module.js +1 -6
  543. package/dist/react/src/index.js +1 -141
  544. package/dist/relative-time/relative-time.js +1 -66
  545. package/dist/relative-time/relative-time.module.js +1 -3
  546. package/dist/reorder-list/reorder-list.css +1 -1
  547. package/dist/reorder-list/reorder-list.js +1 -143
  548. package/dist/reorder-list/reorder-list.module.js +1 -11
  549. package/dist/resizable/resizable.js +1 -80
  550. package/dist/resizable/resizable.module.js +1 -8
  551. package/dist/scroll-area/scroll-area.css +1 -1
  552. package/dist/scroll-area/scroll-area.js +1 -38
  553. package/dist/scroll-area/scroll-area.module.js +1 -3
  554. package/dist/search/search.js +1 -96
  555. package/dist/search/search.module.js +1 -9
  556. package/dist/segmented-control/segmented-control.js +1 -43
  557. package/dist/segmented-control/segmented-control.module.js +1 -6
  558. package/dist/select/select.js +1 -73
  559. package/dist/select/select.module.js +1 -11
  560. package/dist/separator/separator.js +1 -19
  561. package/dist/separator/separator.module.js +1 -3
  562. package/dist/sheet/sheet.js +1 -49
  563. package/dist/sheet/sheet.module.js +1 -9
  564. package/dist/shell-header/shell-header.css +1 -1
  565. package/dist/shell-header/shell-header.js +1 -169
  566. package/dist/shell-header/shell-header.module.js +1 -24
  567. package/dist/side-nav/side-nav.css +1 -1
  568. package/dist/side-nav/side-nav.js +1 -334
  569. package/dist/side-nav/side-nav.module.js +1 -31
  570. package/dist/skeleton/skeleton.css +1 -1
  571. package/dist/skeleton/skeleton.js +1 -23
  572. package/dist/skeleton/skeleton.module.js +1 -7
  573. package/dist/skip-nav/skip-nav.js +1 -28
  574. package/dist/skip-nav/skip-nav.module.js +1 -3
  575. package/dist/slider/slider.js +1 -30
  576. package/dist/slider/slider.module.js +1 -7
  577. package/dist/spinner/spinner.css +1 -1
  578. package/dist/spinner/spinner.js +1 -18
  579. package/dist/spinner/spinner.module.js +1 -6
  580. package/dist/stack/stack.js +1 -17
  581. package/dist/stack/stack.module.js +1 -6
  582. package/dist/stat/stat.js +1 -41
  583. package/dist/stat/stat.module.js +1 -11
  584. package/dist/status/status.css +1 -1
  585. package/dist/status/status.js +1 -25
  586. package/dist/status/status.module.js +1 -7
  587. package/dist/steps/steps.css +1 -1
  588. package/dist/steps/steps.js +1 -35
  589. package/dist/steps/steps.module.js +1 -8
  590. package/dist/structured-list/structured-list.js +1 -102
  591. package/dist/structured-list/structured-list.module.js +1 -12
  592. package/dist/styles.css +401 -55
  593. package/dist/swap/swap.css +1 -1
  594. package/dist/swap/swap.js +1 -36
  595. package/dist/swap/swap.module.js +1 -7
  596. package/dist/swipe-item/swipe-item.js +1 -62
  597. package/dist/swipe-item/swipe-item.module.js +1 -12
  598. package/dist/switcher/switcher.js +1 -32
  599. package/dist/switcher/switcher.module.js +1 -8
  600. package/dist/tabs/tabs.js +1 -98
  601. package/dist/tabs/tabs.module.js +1 -8
  602. package/dist/tag/tag.js +1 -33
  603. package/dist/tag/tag.module.js +1 -6
  604. package/dist/tags-input/tags-input.js +1 -68
  605. package/dist/tags-input/tags-input.module.js +1 -8
  606. package/dist/text/text.css +1 -1
  607. package/dist/text/text.js +1 -16
  608. package/dist/text/text.module.js +1 -3
  609. package/dist/textarea/textarea.css +1 -1
  610. package/dist/textarea/textarea.js +1 -58
  611. package/dist/textarea/textarea.module.js +1 -9
  612. package/dist/tile/tile.css +1 -1
  613. package/dist/tile/tile.js +1 -39
  614. package/dist/tile/tile.module.js +1 -7
  615. package/dist/time-picker/time-picker.js +1 -64
  616. package/dist/time-picker/time-picker.module.js +1 -9
  617. package/dist/timeline/timeline.js +1 -55
  618. package/dist/timeline/timeline.module.js +1 -11
  619. package/dist/toast/toast.css +1 -1
  620. package/dist/toast/toast.js +1 -85
  621. package/dist/toast/toast.module.js +1 -11
  622. package/dist/toc/toc.css +1 -1
  623. package/dist/toc/toc.js +1 -43
  624. package/dist/toc/toc.module.js +1 -3
  625. package/dist/toc/use-toc-from-region.js +1 -18
  626. package/dist/toggle/toggle.js +1 -42
  627. package/dist/toggle/toggle.module.js +1 -8
  628. package/dist/toggle-group/toggle-group.js +1 -55
  629. package/dist/toggle-group/toggle-group.module.js +1 -6
  630. package/dist/toggletip/toggletip.js +1 -49
  631. package/dist/toggletip/toggletip.module.js +1 -7
  632. package/dist/tooltip/tooltip.css +1 -1
  633. package/dist/tooltip/tooltip.js +1 -58
  634. package/dist/tooltip/tooltip.module.js +1 -6
  635. package/dist/tree-view/tree-view.css +1 -1
  636. package/dist/tree-view/tree-view.js +1 -201
  637. package/dist/tree-view/tree-view.module.js +1 -13
  638. package/dist/user/user.js +1 -35
  639. package/dist/user/user.module.js +1 -9
  640. package/dist/virtual-list/virtual-list.js +1 -40
  641. package/dist/virtual-list/virtual-list.module.js +1 -7
  642. package/dist/visually-hidden/visually-hidden.js +1 -2
  643. package/dist/wheel-picker/wheel-picker.js +1 -84
  644. package/dist/wheel-picker/wheel-picker.module.js +1 -8
  645. package/package.json +4 -4
  646. package/readme.body.md +3 -2
@@ -1,398 +1 @@
1
- "use client";
2
-
3
- import { Button as e } from "../button/button.js";
4
- import { Checkbox as t } from "../checkbox/checkbox.js";
5
- import n from "./data-table.module.js";
6
- import { Fragment as r, useId as i, useRef as a } from "react";
7
- import { batch as o, cn as s, useComputed as c, useControllableSignal as l, useSignal as u, useSignalEffect as ee, useSignals as te } from "@cascivo/core";
8
- import { builtin as d, t as f } from "@cascivo/i18n";
9
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
10
- import { flushSync as ne } from "react-dom";
11
- //#region ../components/src/data-table/data-table.tsx
12
- var h = /* @__PURE__ */ new Set();
13
- function g() {
14
- return globalThis.process?.env?.NODE_ENV !== "production";
15
- }
16
- var _ = /* @__PURE__ */ new Set();
17
- function re(e, t, n) {
18
- if (!g()) return;
19
- let r = e.scrollWidth - e.clientWidth;
20
- if (r <= 1) return;
21
- let i = `${n}:${e.clientWidth}`;
22
- _.has(i) || (_.add(i), console.warn(`cascivo DataTable: the table overflows its container (scrollWidth ${e.scrollWidth}px > clientWidth ${e.clientWidth}px, by ${r}px), so the last column is cut off. ` + (t.length > 0 ? `Drop a \`width\` from one of the sized columns (${t.join(", ")}), or lower the \`minWidth\` on the free-form one.` : "Lower the `minWidth` on the widest column.")));
23
- }
24
- function ie(e, t, n) {
25
- g() && (e !== void 0 || t !== void 0 || h.has(n) || (h.add(n), console.warn(`cascivo DataTable: this table has no accessible name (columns: ${n}). Pass \`title\` for a visible caption, or \`ariaLabel\` for a name only screen readers hear.`)));
26
- }
27
- function v(e, t) {
28
- return e[t];
29
- }
30
- function ae(e, t) {
31
- return typeof e == "number" && typeof t == "number" ? e - t : String(e ?? "").localeCompare(String(t ?? ""));
32
- }
33
- function y({ columns: h, rows: g, getRowId: _, sort: y, defaultSort: oe, sortMode: se = "client", onSortChange: ce, searchable: le = !1, pagination: b, selection: x, batchActions: S, renderExpandedRow: C, density: ue = "normal", zebra: de = !1, stickyHeader: fe = !1, loading: w = !1, emptyState: pe, title: T, ariaLabel: me, description: E, labels: D, className: he, virtualized: O = !1, rowHeight: k = 40, windowSize: ge = 20, overscan: _e = 3 }) {
34
- te();
35
- let A = i(), j = {
36
- search: D?.search ?? f(d.dataTable.search),
37
- empty: D?.empty ?? f(d.dataTable.empty),
38
- selectAll: D?.selectAll ?? f(d.dataTable.selectAll),
39
- selectRow: D?.selectRow ?? f(d.dataTable.selectRow),
40
- itemsSelected: (e) => D?.itemsSelected?.(e) ?? f(d.dataTable.itemsSelected, { count: e }),
41
- expandRow: D?.expandRow ?? f(d.dataTable.expandRow),
42
- previousPage: D?.previousPage ?? f(d.dataTable.previousPage),
43
- nextPage: D?.nextPage ?? f(d.dataTable.nextPage)
44
- }, [ve] = l({ value: g }), [ye] = l({ value: h }), [M, be] = l({
45
- value: y,
46
- defaultValue: oe
47
- }), xe = u([]), N = x?.selected ?? xe.value, P = (e) => {
48
- x?.selected === void 0 && (xe.value = e), x?.onChange?.(e);
49
- }, F = u(""), I = u(1), L = u(b?.pageSize ?? 0), R = u(/* @__PURE__ */ new Set()), z = a(null), B = u(0);
50
- ee(() => {
51
- let e = z.current;
52
- if (!e || typeof ResizeObserver > "u") return;
53
- let t = h.filter((e) => e.width !== void 0).map((e) => e.key), n = h.map((e) => e.key).join(","), r = 0, i = new ResizeObserver(() => {
54
- cancelAnimationFrame(r), r = requestAnimationFrame(() => re(e, t, n));
55
- });
56
- return i.observe(e), () => {
57
- cancelAnimationFrame(r), i.disconnect();
58
- };
59
- }), ee(() => {
60
- if (!O) return;
61
- let e = z.current;
62
- if (!e) return;
63
- let t = () => {
64
- ne(() => {
65
- B.value = e.scrollTop;
66
- });
67
- };
68
- return e.addEventListener("scroll", t, { passive: !0 }), () => e.removeEventListener("scroll", t);
69
- });
70
- let Se = c(() => ve.value.map((e, t) => ({
71
- row: e,
72
- id: _ ? _(e) : String(t)
73
- }))), V = c(() => {
74
- let e = F.value.trim().toLowerCase();
75
- if (!e) return Se.value;
76
- let t = ye.value;
77
- return Se.value.filter((n) => t.some((t) => String(v(n.row, t.key) ?? "").toLowerCase().includes(e)));
78
- }), H = c(() => {
79
- let e = M.value;
80
- if (!e || se === "server") return V.value;
81
- let t = V.value.map((e, t) => [e, t]);
82
- return t.sort((t, n) => {
83
- let r = ae(v(t[0].row, e.key), v(n[0].row, e.key));
84
- return e.direction === "desc" && (r = -r), r === 0 ? t[1] - n[1] : r;
85
- }), t.map(([e]) => e);
86
- }), U = c(() => b ? Math.max(1, Math.ceil(V.value.length / L.value)) : 1), W = c(() => Math.min(I.value, U.value)), G = c(() => {
87
- if (!b) return H.value;
88
- let e = (W.value - 1) * L.value;
89
- return H.value.slice(e, e + L.value);
90
- }), K = c(() => O ? Math.floor(B.value / k) : 0), q = c(() => O ? Math.min(K.value + ge + _e * 2, G.value.length) : G.value.length), Ce = c(() => O ? G.value.slice(K.value, q.value) : G.value), we = (e) => {
91
- let t = M.value, n;
92
- n = !t || t.key !== e ? {
93
- key: e,
94
- direction: "asc"
95
- } : t.direction === "asc" ? {
96
- key: e,
97
- direction: "desc"
98
- } : void 0, o(() => {
99
- be(n), I.value = 1;
100
- }), ce?.(n);
101
- }, Te = (e) => {
102
- if (![
103
- "ArrowUp",
104
- "ArrowDown",
105
- "ArrowLeft",
106
- "ArrowRight"
107
- ].includes(e.key)) return;
108
- let t = e.currentTarget, n = Array.from(t.querySelectorAll("th button, td button, td input[type=\"checkbox\"]")), r = n.indexOf(document.activeElement);
109
- if (r === -1) return;
110
- e.preventDefault();
111
- let i = (e) => e.closest("tr"), a;
112
- if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
113
- let t = n[r + (e.key === "ArrowRight" ? 1 : -1)];
114
- t && i(t) === i(n[r]) && (a = t);
115
- } else {
116
- let t = e.key === "ArrowDown" ? 1 : -1, o = n[r];
117
- for (let e = r + t; e >= 0 && e < n.length; e += t) if (i(n[e]) !== i(o)) {
118
- a = n[e];
119
- break;
120
- }
121
- }
122
- a?.focus();
123
- }, Ee = (e) => {
124
- let t = N;
125
- x?.mode === "single" ? P(t.includes(e) ? [] : [e]) : P(t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
126
- }, De = (e) => {
127
- let t = new Set(R.value);
128
- t.has(e) ? t.delete(e) : t.add(e), R.value = t;
129
- }, J = G.value, Oe = R.value, Y = J.length > 0 && J.every((e) => N.includes(e.id)), ke = J.some((e) => N.includes(e.id)), X = Ce.value, Z = K.value, Ae = q.value, je = () => {
130
- let e = J.map((e) => e.id);
131
- P(Y ? N.filter((t) => !e.includes(t)) : [...new Set([...N, ...e])]);
132
- }, Q = h.length + +!!x + +!!C, Me = b && !O && X.length > 0 ? Math.max(0, L.value - X.length) : 0;
133
- ie(T, me, h.map((e) => e.key).join(","));
134
- let Ne = `${A}-title`, Pe = `${A}-description`, $ = V.value.length, Fe = $ === 0 ? 0 : (W.value - 1) * L.value + 1, Ie = $ === 0 ? 0 : Fe + J.length - 1, Le = !!S && S.length > 0 && N.length > 0;
135
- return /* @__PURE__ */ m("div", {
136
- className: s(n.root, he),
137
- "data-density": ue,
138
- "data-zebra": de || void 0,
139
- "data-sticky-header": fe || void 0,
140
- "data-paginated": b ? !0 : void 0,
141
- "data-fixed-layout": h.every((e) => e.width !== void 0) || void 0,
142
- children: [
143
- /* @__PURE__ */ p("span", {
144
- "aria-live": "polite",
145
- className: n.srOnly,
146
- children: N.length > 0 ? j.itemsSelected(N.length) : ""
147
- }),
148
- (T !== void 0 || E !== void 0 || le) && /* @__PURE__ */ m("div", {
149
- className: n.toolbar,
150
- children: [(T !== void 0 || E !== void 0) && /* @__PURE__ */ m("div", {
151
- className: n.heading,
152
- children: [T !== void 0 && /* @__PURE__ */ p("div", {
153
- id: Ne,
154
- className: n.title,
155
- children: T
156
- }), E !== void 0 && /* @__PURE__ */ p("div", {
157
- id: Pe,
158
- className: n.description,
159
- children: E
160
- })]
161
- }), le && /* @__PURE__ */ p("input", {
162
- type: "search",
163
- className: n.search,
164
- "aria-label": j.search,
165
- placeholder: j.search,
166
- value: F.value,
167
- onChange: (e) => {
168
- F.value = e.target.value, I.value = 1;
169
- }
170
- })]
171
- }),
172
- Le && /* @__PURE__ */ m("div", {
173
- className: n.batchBar,
174
- children: [/* @__PURE__ */ p("span", {
175
- className: n.batchCount,
176
- children: j.itemsSelected(N.length)
177
- }), /* @__PURE__ */ p("div", {
178
- className: n.batchActions,
179
- children: S.map((t, n) => /* @__PURE__ */ p(e, {
180
- size: "sm",
181
- variant: "secondary",
182
- onClick: () => t.onClick(N),
183
- children: t.label
184
- }, t.id ?? `${n}-${t.label}`))
185
- })]
186
- }),
187
- /* @__PURE__ */ p("div", {
188
- ref: z,
189
- className: s(n.scroller, O && n.scrollerVirtualized),
190
- children: /* @__PURE__ */ m("table", {
191
- className: n.table,
192
- "aria-labelledby": T === void 0 ? void 0 : Ne,
193
- "aria-label": T === void 0 ? me : void 0,
194
- "aria-describedby": E === void 0 ? void 0 : Pe,
195
- "aria-busy": w || void 0,
196
- "aria-rowcount": O ? J.length : void 0,
197
- onKeyDown: Te,
198
- children: [
199
- /* @__PURE__ */ m("colgroup", { children: [
200
- C && /* @__PURE__ */ p("col", { className: n.controlCol }),
201
- x && /* @__PURE__ */ p("col", { className: n.controlCol }),
202
- h.map((e) => /* @__PURE__ */ p("col", { style: e.width !== void 0 || e.minWidth !== void 0 ? {
203
- ...e.width === void 0 ? {} : { width: e.width },
204
- ...e.minWidth === void 0 ? {} : { minWidth: e.minWidth }
205
- } : void 0 }, e.key))
206
- ] }),
207
- /* @__PURE__ */ p("thead", { children: /* @__PURE__ */ m("tr", { children: [
208
- C && /* @__PURE__ */ p("th", {
209
- scope: "col",
210
- className: n.controlCell,
211
- children: /* @__PURE__ */ p("span", {
212
- className: n.srOnly,
213
- children: j.expandRow
214
- })
215
- }),
216
- x && /* @__PURE__ */ p("th", {
217
- scope: "col",
218
- className: n.controlCell,
219
- children: x.mode === "multi" ? /* @__PURE__ */ p(t, {
220
- "aria-label": j.selectAll,
221
- checked: Y,
222
- indeterminate: ke && !Y,
223
- onChange: je
224
- }) : /* @__PURE__ */ p("span", {
225
- className: n.srOnly,
226
- children: j.selectRow
227
- })
228
- }),
229
- h.map((e) => {
230
- let t = M.value?.key === e.key ? M.value.direction : void 0, r = t === "asc" ? "ascending" : t === "desc" ? "descending" : "none";
231
- return /* @__PURE__ */ p("th", {
232
- scope: "col",
233
- "data-align": e.align ?? "start",
234
- "data-sized": e.width !== void 0 || void 0,
235
- "aria-sort": e.sortable ? r : void 0,
236
- children: e.sortable ? /* @__PURE__ */ p("button", {
237
- type: "button",
238
- className: n.sortButton,
239
- "data-state": r,
240
- onClick: () => we(e.key),
241
- children: e.header
242
- }) : e.header
243
- }, e.key);
244
- })
245
- ] }) }),
246
- /* @__PURE__ */ m("tbody", { children: [
247
- w && Array.from({ length: 5 }, (e, t) => /* @__PURE__ */ p("tr", {
248
- className: n.row,
249
- children: Array.from({ length: Q }, (e, t) => /* @__PURE__ */ p("td", { children: /* @__PURE__ */ p("span", {
250
- className: n.shimmer,
251
- "aria-hidden": "true"
252
- }) }, t))
253
- }, t)),
254
- !w && J.length === 0 && /* @__PURE__ */ p("tr", {
255
- "data-empty-row": !0,
256
- children: /* @__PURE__ */ p("td", {
257
- colSpan: Q,
258
- className: n.emptyCell,
259
- children: pe ?? j.empty
260
- })
261
- }),
262
- !w && O && Z > 0 && /* @__PURE__ */ p("tr", {
263
- "aria-hidden": "true",
264
- style: { height: Z * k }
265
- }),
266
- !w && X.map((e, i) => {
267
- let a = O ? Z + i : i, o = N.includes(e.id), s = Oe.has(e.id);
268
- return /* @__PURE__ */ m(r, { children: [/* @__PURE__ */ m("tr", {
269
- className: n.row,
270
- "data-parity": a % 2 == 0 ? "even" : "odd",
271
- "data-state": o ? "selected" : void 0,
272
- "aria-rowindex": O ? Z + i + 1 : void 0,
273
- children: [
274
- C && /* @__PURE__ */ p("td", {
275
- className: n.controlCell,
276
- children: /* @__PURE__ */ p("button", {
277
- type: "button",
278
- className: n.expandButton,
279
- "aria-expanded": s,
280
- "aria-label": j.expandRow,
281
- "data-state": s ? "open" : "closed",
282
- onClick: () => De(e.id),
283
- children: /* @__PURE__ */ p("span", {
284
- className: n.chevron,
285
- "aria-hidden": "true"
286
- })
287
- })
288
- }),
289
- x && /* @__PURE__ */ p("td", {
290
- className: n.controlCell,
291
- children: /* @__PURE__ */ p(t, {
292
- "aria-label": j.selectRow,
293
- checked: o,
294
- onChange: () => Ee(e.id)
295
- })
296
- }),
297
- h.map((t) => /* @__PURE__ */ p("td", {
298
- "data-align": t.align ?? "start",
299
- "data-sized": t.width !== void 0 || void 0,
300
- children: t.render ? t.render(e.row) : String(v(e.row, t.key) ?? "")
301
- }, t.key))
302
- ]
303
- }), C && /* @__PURE__ */ p("tr", {
304
- className: n.expansionRow,
305
- "data-state": s ? "open" : "closed",
306
- children: /* @__PURE__ */ p("td", {
307
- colSpan: Q,
308
- children: /* @__PURE__ */ p("div", {
309
- className: n.expansionGrid,
310
- "data-state": s ? "open" : "closed",
311
- children: /* @__PURE__ */ p("div", {
312
- className: n.expansionInner,
313
- children: C(e.row)
314
- })
315
- })
316
- })
317
- })] }, e.id);
318
- }),
319
- !w && O && Ae < J.length && /* @__PURE__ */ p("tr", {
320
- "aria-hidden": "true",
321
- style: { height: (J.length - Ae) * k }
322
- }),
323
- Me > 0 && /* @__PURE__ */ p("tr", {
324
- "aria-hidden": "true",
325
- "data-filler-row": !0,
326
- children: /* @__PURE__ */ p("td", {
327
- colSpan: Q,
328
- style: {
329
- blockSize: `calc(var(--_row-height) * ${Me})`,
330
- padding: 0
331
- }
332
- })
333
- })
334
- ] })
335
- ]
336
- })
337
- }),
338
- b && /* @__PURE__ */ m("div", {
339
- className: n.footer,
340
- children: [
341
- b.pageSizeOptions && /* @__PURE__ */ m("label", {
342
- className: n.pageSize,
343
- children: [/* @__PURE__ */ p("span", { children: "Rows per page" }), /* @__PURE__ */ p("select", {
344
- value: L.value,
345
- onChange: (e) => {
346
- L.value = Number(e.target.value), I.value = 1;
347
- },
348
- children: b.pageSizeOptions.map((e) => /* @__PURE__ */ p("option", {
349
- value: e,
350
- children: e
351
- }, e))
352
- })]
353
- }),
354
- /* @__PURE__ */ m("span", {
355
- className: n.range,
356
- children: [
357
- Fe,
358
- "–",
359
- Ie,
360
- " of ",
361
- $
362
- ]
363
- }),
364
- /* @__PURE__ */ m("div", {
365
- className: n.pageButtons,
366
- children: [/* @__PURE__ */ p("button", {
367
- type: "button",
368
- className: n.pageButton,
369
- "aria-label": j.previousPage,
370
- disabled: W.value <= 1,
371
- onClick: () => {
372
- I.value = W.value - 1;
373
- },
374
- children: /* @__PURE__ */ p("span", {
375
- "aria-hidden": "true",
376
- children: "‹"
377
- })
378
- }), /* @__PURE__ */ p("button", {
379
- type: "button",
380
- className: n.pageButton,
381
- "aria-label": j.nextPage,
382
- disabled: W.value >= U.value,
383
- onClick: () => {
384
- I.value = W.value + 1;
385
- },
386
- children: /* @__PURE__ */ p("span", {
387
- "aria-hidden": "true",
388
- children: "›"
389
- })
390
- })]
391
- })
392
- ]
393
- })
394
- ]
395
- });
396
- }
397
- //#endregion
398
- export { y as DataTable };
1
+ "use client";import{Button as e}from"../button/button.js";import{Checkbox as t}from"../checkbox/checkbox.js";import{OverflowMenu as n}from"../overflow-menu/overflow-menu.js";import{Editable as r}from"../editable/editable.js";import{Popover as i,PopoverContent as a,PopoverTrigger as o}from"../popover/popover.js";import s from"./data-table.module.js";import{applyColumnFilters as c,countActiveFilters as l,facetValues as ee,isFilterActive as te,numericExtent as ne}from"./column-filter.js";import{displayColumns as re,moveColumn as ie,pinColumn as ae,resizeColumn as u,stickyOffsets as oe,toggleColumnHidden as se}from"./column-layout.js";import{moveGridFocus as ce}from"./grid-keys.js";import{aggregate as d,groupItems as le,headerSpans as ue}from"./row-group.js";import{createRowSearch as de}from"./row-search.js";import{downloadCsv as fe,toCsv as pe}from"./to-csv.js";import{sortRowsBy as me}from"./row-sort.js";import{computeWindow as he,scrollTopForRow as ge}from"./virtual-window.js";import{Fragment as _e,useId as ve,useRef as f}from"react";import{batch as ye,cn as be,persistedSignal as xe,useComputed as p,useControllableSignal as m,useSignal as h,useSignalEffect as g,useSignals as Se}from"@cascivo/core";import{builtin as _,formatNumber as v,t as y}from"@cascivo/i18n";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{flushSync as Ce}from"react-dom";var we=``;function aggregateCell(e,t){let n=e.aggregate;if(n===void 0)return null;if(typeof n==`function`)return n(t);let r=d(t.map(t=>cellValue(t,e.key)),n);return r===void 0?null:n===`count`?v(r):v(r,{maximumFractionDigits:2})}var Te=new Map;function persistedTableState(e){let t=Te.get(e);return t||(t=xe(`cascivo.data-table.${e}`,{columnState:{}}),Te.set(e,t)),t}var Ee=new Set;function isDev(){return globalThis.process?.env?.NODE_ENV!==`production`}var De=new Set;function warnIfOverflowing(e,t,n){if(!isDev())return;let r=e.scrollWidth-e.clientWidth;if(r<=1)return;let i=`${n}:${e.clientWidth}`;De.has(i)||(De.add(i),console.warn(`cascivo DataTable: the table overflows its container (scrollWidth ${e.scrollWidth}px > clientWidth ${e.clientWidth}px, by ${r}px), so the last column is cut off. `+(t.length>0?`Drop a \`width\` from one of the sized columns (${t.join(`, `)}), or lower the \`minWidth\` on the free-form one.`:"Lower the `minWidth` on the widest column.")))}function warnIfUnnamed(e,t,n){isDev()&&(e!==void 0||t!==void 0||Ee.has(n)||(Ee.add(n),console.warn(`cascivo DataTable: this table has no accessible name (columns: ${n}). Pass \`title\` for a visible caption, or \`ariaLabel\` for a name only screen readers hear.`)))}function cellValue(e,t){return e[t]}function DataTable({columns:d,rows:xe,getRowId:v,sort:Te,defaultSort:Ee,sortMode:De=`client`,onSortChange:Oe,searchable:ke=!1,pagination:S,selection:C,batchActions:Ae,renderExpandedRow:w,filters:je,defaultFilters:Me,onFiltersChange:Ne,noResultsState:Pe,toolbar:Fe,rowActions:T,columnState:Ie,defaultColumnState:Le,onColumnStateChange:Re,columnSettings:E,server:D,multiSort:ze=!1,stateKey:Be,keyboardNavigation:Ve=`row`,onCellEdit:He,groupBy:Ue,totals:We=!1,pinnedRows:Ge,columnGroups:Ke,exportable:qe=!1,density:Je=`normal`,zebra:Ye=!1,stickyHeader:Xe=!1,loading:O=!1,emptyState:Ze,title:k,ariaLabel:Qe,description:A,labels:j,className:$e,virtualized:M=!1,rowHeight:et,windowSize:tt,overscan:nt=3}){Se();let rt=ve(),N={search:j?.search??y(_.dataTable.search),empty:j?.empty??y(_.dataTable.empty),selectAll:j?.selectAll??y(_.dataTable.selectAll),selectRow:j?.selectRow??y(_.dataTable.selectRow),itemsSelected:e=>j?.itemsSelected?.(e)??y(_.dataTable.itemsSelected,{count:e}),expandRow:j?.expandRow??y(_.dataTable.expandRow),previousPage:j?.previousPage??y(_.dataTable.previousPage),nextPage:j?.nextPage??y(_.dataTable.nextPage),columns:j?.columns??y(_.dataTable.columns),actions:j?.actions??y(_.dataTable.actions),noResults:j?.noResults??y(_.dataTable.noResults),clearFilters:j?.clearFilters??y(_.dataTable.clearFilters),filterColumn:e=>j?.filterColumn?.(e)??y(_.dataTable.filterColumn,{column:e}),min:j?.min??y(_.dataTable.min),max:j?.max??y(_.dataTable.max),all:j?.all??y(_.dataTable.all),columnMenu:e=>j?.columnMenu?.(e)??y(_.dataTable.columnMenu,{column:e}),sortAscending:j?.sortAscending??y(_.dataTable.sortAscending),sortDescending:j?.sortDescending??y(_.dataTable.sortDescending),clearSort:j?.clearSort??y(_.dataTable.clearSort),moveLeft:j?.moveLeft??y(_.dataTable.moveLeft),moveRight:j?.moveRight??y(_.dataTable.moveRight),pinStart:j?.pinStart??y(_.dataTable.pinStart),pinEnd:j?.pinEnd??y(_.dataTable.pinEnd),unpin:j?.unpin??y(_.dataTable.unpin),hideColumn:j?.hideColumn??y(_.dataTable.hideColumn),resizeColumn:e=>j?.resizeColumn?.(e)??y(_.dataTable.resizeColumn,{column:e}),editCell:e=>j?.editCell?.(e)??y(_.dataTable.editCell,{column:e}),totals:j?.totals??y(_.dataTable.totals),exportCsv:j?.exportCsv??y(_.dataTable.exportCsv)},[it]=m({value:xe}),[P]=m({value:d}),at=Be===void 0?void 0:persistedTableState(Be),[F,ot]=m({value:Te,defaultValue:at?.value.sort??Ee}),[st]=m({value:(typeof Ue==`string`?[Ue]:Ue??[]).join(we)}),ct=h(new Set),lt=h([]),I=C?.selected??lt.value,setSelected=e=>{C?.selected===void 0&&(lt.value=e),C?.onChange?.(e)},ut=h(``),[dt,L]=m({value:S?.page,defaultValue:1,onChange:S?.onPageChange}),[ft,pt]=m({value:je,defaultValue:Me??{},onChange:Ne}),[R,z]=m({value:Ie,defaultValue:at?.value.columnState??Le??{},onChange:Re});g(()=>{let e={columnState:R.value};F.value&&(e.sort=F.value),at&&(at.value=e)});let mt=p(()=>re(P.value,R.value)),B=f(null),ht=h([]);g(()=>{let e=R.value.pinned;if(!e||Object.keys(e).length===0)return;let t=H.current;if(!t||typeof ResizeObserver>`u`)return;let measure=()=>{let e=t.querySelector(`thead tr:not([data-group-header])`);e&&(ht.value=Array.from(e.children,e=>e.getBoundingClientRect().width))};measure();let n=new ResizeObserver(measure);n.observe(t);let r=t.querySelector(`table`);return r&&n.observe(r),()=>n.disconnect()});let gt=h(null);g(()=>{let e=gt.value;if(!e)return;let t=B.current?getComputedStyle(B.current).direction===`rtl`:!1,onMove=n=>{let r=(n.clientX-e.startX)*(t?-1:1);z(u(R.value,e.key,e.startWidth+r))},onUp=()=>{gt.value=null};return window.addEventListener(`pointermove`,onMove),window.addEventListener(`pointerup`,onUp),()=>{window.removeEventListener(`pointermove`,onMove),window.removeEventListener(`pointerup`,onUp)}});let V=h(S?.pageSize??0),_t=h(new Set),vt=Ve===`grid`,yt=h({row:-1,col:0}),bt=f(!1),H=f(null),xt=h(0),St=h(0),Ct=h(0);g(()=>{let e=H.current;if(!e||typeof ResizeObserver>`u`)return;let t=d.filter(e=>e.width!==void 0).map(e=>e.key),n=d.map(e=>e.key).join(`,`),r=0,i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=requestAnimationFrame(()=>{warnIfOverflowing(e,t,n);let r=e.querySelector(`thead tr[data-group-header]`);e.style.setProperty(`--_group-h`,`${r?r.getBoundingClientRect().height:0}px`);let i=e.querySelector(`thead tr:not([data-group-header])`);i&&e.style.setProperty(`--_head-h`,`${i.getBoundingClientRect().height}px`);let a=e.querySelector(`thead`);a&&e.style.setProperty(`--_thead-h`,`${a.getBoundingClientRect().height}px`)})});return i.observe(e),()=>{cancelAnimationFrame(r),i.disconnect()}}),g(()=>{if(!M)return;let e=H.current;if(!e)return;let onScroll=()=>{Ce(()=>{xt.value=e.scrollTop})};return e.addEventListener(`scroll`,onScroll,{passive:!0}),()=>e.removeEventListener(`scroll`,onScroll)}),g(()=>{if(!M)return;let e=H.current;if(!e||typeof ResizeObserver>`u`)return;let measure=()=>{St.value=e.clientHeight;let t=e.querySelector(`tbody tr[aria-rowindex]`)?.getBoundingClientRect().height??0;t>0&&(Ct.value=t)};measure();let t=new ResizeObserver(measure);t.observe(e);let n=e.querySelector(`table`);return n&&t.observe(n),()=>t.disconnect()});let wt=p(()=>(mt.value,it.value.map((e,t)=>({row:e,id:v?v(e):String(t)})))),Tt=p(()=>{let e=F.value;return!e||De===`server`||D?wt.value:me(wt.value,[e,...e.thenBy??[]].map(e=>({keyOf:t=>cellValue(t.row,e.key),direction:e.direction})))}),Et=p(()=>D?Tt.value:c(Tt.value,ft.value,(e,t)=>cellValue(e.row,t))),Dt=p(()=>{let e=mt.value;return de(t=>{if(t.haystack===void 0){let n=``;for(let r of e)n+=String(cellValue(t.row,r.key)??``)+`\0`;t.haystack=n.toLowerCase()}return t.haystack})});g(()=>{if(!ke)return;let e=wt.value,t=Dt.value,n=typeof requestIdleCallback==`function`,r,i=0,step=()=>{i=t.prime(e,i,2e4),i<e.length&&schedule()},schedule=()=>{r=n?requestIdleCallback(step,{timeout:500}):setTimeout(step,16)};return schedule(),()=>{n?cancelIdleCallback(r):clearTimeout(r)}});let Ot=p(()=>{if(D)return Tt.value;let e=ut.value.trim().toLowerCase();return e?Dt.value.filter(Et.value,e):Et.value}),kt=p(()=>{let e=st.value===``?[]:st.value.split(we);return e.length===0?Ot.value:le(Ot.value,e,(e,t)=>cellValue(e.row,t),ct.value)}),At=p(()=>S?Math.max(1,Math.ceil(kt.value.length/V.value)):1),jt=p(()=>Math.min(dt.value,At.value)),Mt=p(()=>{if(!S||D)return kt.value;let e=(jt.value-1)*V.value;return kt.value.slice(e,e+V.value)}),Nt=p(()=>st.value===``?Mt.value:Mt.value.filter(e=>e.group===void 0)),Pt=p(()=>{let e=new Map,t=P.value.filter(e=>e.aggregate!==void 0);if(t.length===0)return e;let n=Ot.value.map(e=>e.row);for(let r of t)e.set(r.key,aggregateCell(r,n));return e}),Ft=f(D);Ft.current=D;let It=f(!1);g(()=>{let e={sort:F.value,search:ut.value.trim(),filters:ft.value,page:dt.value,pageSize:V.value};if(!It.current){It.current=!0;return}Ft.current?.onQueryChange(e)});let setColumnFilter=(e,t)=>{let n={...ft.value};t&&te(t)?n[e]=t:delete n[e],ye(()=>{pt(n),L(1)})},clearFilters=()=>ye(()=>{pt({}),L(1)}),toggleColumn=e=>z(se(P.value,R.value,e)),onColumnMenu=(e,t)=>{let n=R.value,r=B.current?getComputedStyle(B.current).direction===`rtl`:!1;switch(t){case`sort-asc`:return applySort({key:e.key,direction:`asc`});case`sort-desc`:return applySort({key:e.key,direction:`desc`});case`sort-clear`:return applySort(void 0);case`move-left`:return z(ie(P.value,n,e.key,r?1:-1));case`move-right`:return z(ie(P.value,n,e.key,r?-1:1));case`pin-start`:return z(ae(n,e.key,`start`));case`pin-end`:return z(ae(n,e.key,`end`));case`unpin`:return z(ae(n,e.key,null));case`hide`:return toggleColumn(e.key);default:return}},Lt=h(null),Rt=f(null),facetCache=()=>{let e=wt.value;return Rt.current?.entries!==e&&(Rt.current={entries:e,facets:new Map,extents:new Map}),Rt.current},facetsOf=e=>{let t=facetCache(),n=t.facets.get(e);return n||(n=ee(t.entries,t=>cellValue(t.row,e)),t.facets.set(e,n)),n},extentOf=e=>{let t=facetCache();return t.extents.has(e)||t.extents.set(e,ne(t.entries,t=>cellValue(t.row,e))),t.extents.get(e)},applySort=e=>{ye(()=>{ot(e),L(1)}),Oe?.(e)},cycleSort=(e,t=!1)=>{let n=F.value;if(t&&ze&&n&&n.key!==e){let t=n.thenBy??[],r=t.findIndex(t=>t.key===e),i=r===-1?[...t,{key:e,direction:`asc`}]:t.map((t,n)=>n===r?{key:e,direction:t.direction===`asc`?`desc`:`asc`}:t);return applySort({...n,thenBy:i})}let r;r=!n||n.key!==e?{key:e,direction:`asc`}:n.direction===`asc`?{key:e,direction:`desc`}:void 0,applySort(r)},sortLevelOf=e=>{let t=F.value;if(!t)return;if(t.key===e)return{index:0,direction:t.direction};let n=(t.thenBy??[]).findIndex(t=>t.key===e);return n===-1?void 0:{index:n+1,direction:(t.thenBy??[])[n].direction}},onTableKeyDown=e=>{if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let t=e.currentTarget,n=Array.from(t.querySelectorAll(`th button, td button, td input[type="checkbox"]`)),r=n.indexOf(document.activeElement);if(r===-1)return;e.preventDefault();let row=e=>e.closest(`tr`),i;if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=n[r+(e.key===`ArrowRight`?1:-1)];t&&row(t)===row(n[r])&&(i=t)}else{let t=e.key===`ArrowDown`?1:-1,a=n[r];for(let e=r+t;e>=0&&e<n.length;e+=t)if(row(n[e])!==row(a)){i=n[e];break}}i?.focus()},zt=f(null);zt.current?.ids!==I&&(zt.current={ids:I,set:new Set(I)});let U=zt.current.set,toggleRow=e=>{let t=I;C?.mode===`single`?setSelected(U.has(e)?[]:[e]):setSelected(U.has(e)?t.filter(t=>t!==e):[...t,e])},toggleExpanded=e=>{let t=new Set(_t.value);t.has(e)?t.delete(e):t.add(e),_t.value=t},W=Mt.value,G=Nt.value,Bt=_t.value,Vt=f(null);(Vt.current?.page!==G||Vt.current.set!==U)&&(Vt.current={page:G,set:U,all:G.length>0&&G.every(e=>U.has(e.id)),some:G.some(e=>U.has(e.id))});let Ht=Vt.current.all,Ut=Vt.current.some,Wt=et??(Ct.value>0?Ct.value:40),Gt=tt===void 0?St.value>0?St.value:20*Wt:tt*Wt,K=M?he({scrollTop:xt.value,viewportHeight:Gt,rowHeight:Wt,count:W.length,overscan:nt}):void 0,Kt=K?W.slice(K.start,K.end):W,qt=K?.start??0,toggleAll=()=>{if(Ht){let e=new Set(G.map(e=>e.id));setSelected(I.filter(t=>!e.has(t)))}else{let e=new Set(I);for(let t of G)e.add(t.id);setSelected([...e])}},q=mt.value,J=R.value,Jt=new Set(J.hidden??[]),Yt=E?.visibility===!0,Xt=E!==void 0&&(E.reorderable===!0||E.pinnable===!0||E.visibility===!0),Zt=E?.resizable===!0,Qt=Object.keys(J.widths??{}).length>0,Y=J.pinned??{},X=+!!w+ +!!C,$t=q.some(e=>Y[e.key]===`start`),en=q.some(e=>Y[e.key]===`end`),Z=[...Array.from({length:X},()=>$t?`start`:void 0),...q.map(e=>Y[e.key]),...T?[en?`end`:void 0]:[]],tn=ht.value,nn=tn.length===Z.length?oe(tn,Z):Z.map(()=>void 0),rn=Z.lastIndexOf(`start`),an=Z.indexOf(`end`),pinAttrs=e=>{let t=Z[e];if(!t)return{};let n=nn[e];return{"data-pinned":t,"data-pinned-edge":e===rn||e===an?!0:void 0,style:n===void 0?void 0:t===`start`?{insetInlineStart:n}:{insetInlineEnd:n}}},on=Math.min(yt.value.row,W.length-1),sn={row:on,col:W[on]?.group?X:Math.min(yt.value.col,Z.length-1)},focusCellRef=e=>{e&&bt.current&&(bt.current=!1,e.focus())},gridAttrs=(e,t)=>{if(!vt||e===void 0)return{};let n=sn.row===e&&sn.col===t;return{tabIndex:n?0:-1,"data-cell":`${e},${t}`,ref:n?focusCellRef:void 0,onFocus:()=>{n||(yt.value={row:e,col:t})}}},Q=vt?{tabIndex:-1}:{},cn=Math.max(1,Math.floor(Gt/Wt)),moveFocusTo=e=>{if(bt.current=!0,yt.value=e,K&&e.row>=0&&(e.row<K.start||e.row>=K.end)){let t=H.current;t&&(t.scrollTop=ge(e.row,{viewportHeight:Gt,rowHeight:Wt,count:W.length,overscan:nt}))}},onGridKeyDown=e=>{let t=e.target,n=t.closest(`[data-cell]`);if(!n)return;if(t!==n){e.key===`Escape`&&(e.preventDefault(),n.focus());return}if(e.key===`Enter`||e.key===`F2`){let t=n.querySelector(`button, input, select, a[href], [tabindex]`);if(!t)return;e.preventDefault(),t.focus(),n.hasAttribute(`data-editable`)&&t.click();return}let[r=-1,i=0]=(n.dataset.cell??``).split(`,`).map(Number),a=ce({row:r,col:i},e.key,{rowCount:W.length,colCount:Z.length,pageRows:cn},e.ctrlKey||e.metaKey);a&&(e.preventDefault(),moveFocusTo(W[a.row]?.group?{row:a.row,col:X}:a))},exportCsv=()=>{fe(pe(Ot.value.map(e=>e.row),q.map(e=>({key:e.key,header:e.header})),cellValue),(typeof qe==`object`?qe.filename:void 0)??k??`export`)},toggleGroup=e=>{let t=new Set(ct.value);t.has(e)?t.delete(e):t.add(e),ct.value=t},ln=f(new WeakMap),toEntries=(e,t)=>(e??[]).map((e,n)=>({row:e,id:v?v(e):`${t}-${n}`})),un=toEntries(Ge?.top,`pinned-top`),dn=toEntries(Ge?.bottom,`pinned-bottom`),columnMenuItems=e=>{let t=[];if(e.sortable&&(t.push({id:`sort-asc`,label:N.sortAscending},{id:`sort-desc`,label:N.sortDescending}),F.value?.key===e.key&&t.push({id:`sort-clear`,label:N.clearSort})),E?.reorderable){let n=q.filter(t=>Y[t.key]===Y[e.key]),r=n.indexOf(e);t.push({id:`move-left`,label:N.moveLeft,disabled:r===0},{id:`move-right`,label:N.moveRight,disabled:r===n.length-1})}if(E?.pinnable){let n=Y[e.key];n!==`start`&&t.push({id:`pin-start`,label:N.pinStart}),n!==`end`&&t.push({id:`pin-end`,label:N.pinEnd}),n&&t.push({id:`unpin`,label:N.unpin})}return E?.visibility&&t.push({id:`hide`,label:N.hideColumn,disabled:q.length===1}),t},onResizeKeyDown=(e,t)=>{let n=B.current?getComputedStyle(B.current).direction===`rtl`:!1,r=t.shiftKey?64:16,i=n?`ArrowLeft`:`ArrowRight`,a=n?`ArrowRight`:`ArrowLeft`,o=J.widths?.[e.key]??(t.currentTarget.parentElement?.getBoundingClientRect().width||0);if(t.key===i)z(u(J,e.key,o+r));else if(t.key===a)z(u(J,e.key,o-r));else if(t.key===`Home`)z(u(J,e.key,void 0));else return;t.preventDefault()},fn=l(ft.value),pn=q.some(e=>e.filter!==void 0),mn=q.length+ +!!C+ +!!w+ +!!T,hn=(ut.value.trim()!==``||fn>0)&&(D?!0:xe.length>0),gn=D?D.totalItems??xe.length:kt.value.length,_n=S?Math.max(1,Math.ceil(gn/V.value)):1,$=Math.min(dt.value,_n),vn=S&&!M&&Kt.length>0?Math.max(0,V.value-Kt.length):0;warnIfUnnamed(k,Qe,d.map(e=>e.key).join(`,`));let yn=`${rt}-title`,bn=`${rt}-description`,xn=gn===0?0:($-1)*V.value+1,Sn=gn===0?0:xn+W.length-1,Cn=!!Ae&&Ae.length>0&&I.length>0,renderFilter=n=>{let r=ft.value[n.key],c=N.filterColumn(n.header);switch(n.filter){case`text`:return b(`input`,{type:`search`,className:s.filterInput,"aria-label":c,value:r?.kind===`text`?r.value:``,onChange:e=>setColumnFilter(n.key,{kind:`text`,value:e.target.value})});case`range`:{let e=r?.kind===`range`?r.min:void 0,t=r?.kind===`range`?r.max:void 0,i=extentOf(n.key),parse=e=>e===``?void 0:Number(e);return x(`div`,{className:s.rangeInputs,children:[b(`input`,{type:`number`,className:s.filterInput,"aria-label":`${c}: ${N.min}`,placeholder:i?String(i.min):N.min,value:e??``,onChange:e=>{let r={kind:`range`},i=parse(e.target.value);i!==void 0&&!Number.isNaN(i)&&(r.min=i),t!==void 0&&(r.max=t),setColumnFilter(n.key,r)}}),b(`input`,{type:`number`,className:s.filterInput,"aria-label":`${c}: ${N.max}`,placeholder:i?String(i.max):N.max,value:t??``,onChange:t=>{let r={kind:`range`};e!==void 0&&(r.min=e);let i=parse(t.target.value);i!==void 0&&!Number.isNaN(i)&&(r.max=i),setColumnFilter(n.key,r)}})]})}case`select`:{let l=r?.kind===`select`?r.values:[],ee=Lt.value===n.key;return x(i,{placement:`bottom`,open:ee,onOpenChange:e=>{Lt.value=e?n.key:null},children:[b(o,{asChild:!0,children:b(e,{size:`sm`,variant:`secondary`,"aria-label":c,children:l.length>0?N.itemsSelected(l.length):N.all})}),b(a,{className:s.menu,children:ee&&facetsOf(n.key).map(e=>{let r=l.includes(e.value);return b(t,{label:`${e.value===``?`—`:e.value} (${e.count})`,checked:r,onChange:()=>setColumnFilter(n.key,{kind:`select`,values:r?l.filter(t=>t!==e.value):[...l,e.value]})},e.value)})})]})}default:return null}},renderRow=(e,i,a,o)=>{let c=U.has(e.id),l=Bt.has(e.id);return x(_e,{children:[x(`tr`,{className:s.row,"data-parity":i%2==0?`even`:`odd`,"data-state":c?`selected`:void 0,"aria-rowindex":M&&!o?i+1:void 0,"data-pinned-row":o,style:o===`top`?{"--_pin-index":i}:void 0,children:[w&&b(`td`,{className:s.controlCell,...pinAttrs(0),...gridAttrs(a,0),children:b(`button`,{type:`button`,className:s.expandButton,"aria-expanded":l,"aria-label":N.expandRow,"data-state":l?`open`:`closed`,onClick:()=>toggleExpanded(e.id),...Q,children:b(`span`,{className:s.chevron,"aria-hidden":`true`})})}),C&&b(`td`,{className:s.controlCell,...pinAttrs(+!!w),...gridAttrs(a,+!!w),children:b(t,{"aria-label":N.selectRow,checked:c,onChange:()=>toggleRow(e.id),...Q})}),q.map((t,n)=>{let i=He!==void 0&&t.editable&&!t.render;return b(`td`,{"data-align":t.align??`start`,"data-sized":t.width!==void 0||J.widths?.[t.key]!==void 0||void 0,"data-editable":i||void 0,...pinAttrs(X+n),...gridAttrs(a,X+n),children:t.render?t.render(e.row):i?b(r,{value:String(cellValue(e.row,t.key)??``),onValueChange:n=>He(e.row,t.key,n),"aria-label":N.editCell(t.header),...Q}):String(cellValue(e.row,t.key)??``)},t.key)}),T&&b(`td`,{className:s.controlCell,...pinAttrs(X+q.length),...gridAttrs(a,X+q.length),children:(()=>{let t=T(e.row);return t.length===0?null:b(n,{size:`sm`,ariaLabel:N.actions,items:t.map(e=>({id:e.id,label:e.label,...e.destructive!==void 0&&{destructive:e.destructive},...e.disabled!==void 0&&{disabled:e.disabled},...e.icon!==void 0&&{icon:e.icon}})),onSelect:n=>t.find(e=>e.id===n)?.onSelect(e.row),...Q})})()})]}),w&&b(`tr`,{className:s.expansionRow,"data-state":l?`open`:`closed`,children:b(`td`,{colSpan:mn,children:b(`div`,{className:s.expansionGrid,"data-state":l?`open`:`closed`,children:b(`div`,{className:s.expansionInner,children:w(e.row)})})})})]},e.id)},renderGroupRow=(e,t)=>{let{group:n}=e,r=ln.current.get(e);r||(r=new Map,ln.current.set(e,r));let i=r,a,cellFor=t=>t.aggregate===void 0?null:(i.has(t.key)||(a??=e.leaves.map(e=>e.row),i.set(t.key,aggregateCell(t,a))),i.get(t.key));return x(`tr`,{className:s.groupRow,"data-depth":n.depth,"data-state":n.collapsed?`closed`:`open`,"aria-rowindex":M?t+1:void 0,children:[w&&b(`td`,{className:s.controlCell,...pinAttrs(0)}),C&&b(`td`,{className:s.controlCell,...pinAttrs(+!!w)}),q.map((e,r)=>b(`td`,{"data-align":r===0?`start`:e.align??`start`,...pinAttrs(X+r),...gridAttrs(r===0?t:void 0,X+r),children:r===0?x(`button`,{type:`button`,className:s.groupToggle,"aria-expanded":!n.collapsed,"data-state":n.collapsed?`closed`:`open`,style:{marginInlineStart:`${n.depth*1.25}rem`},onClick:()=>toggleGroup(n.key),...Q,children:[b(`span`,{className:s.chevron,"aria-hidden":`true`}),b(`span`,{children:String(n.value??``)||`—`}),x(`span`,{className:s.groupCount,children:[`(`,n.count,`)`]})]}):cellFor(e)},e.key)),T&&b(`td`,{className:s.controlCell,...pinAttrs(X+q.length)})]},e.id)};return x(`div`,{ref:B,className:be(s.root,$e),"data-density":Je,"data-resized":Qt||void 0,"data-zebra":Ye||void 0,"data-sticky-header":Xe||void 0,"data-paginated":S?!0:void 0,"data-fixed-layout":q.every(e=>e.width!==void 0)||void 0,children:[b(`span`,{"aria-live":`polite`,className:s.srOnly,children:I.length>0?N.itemsSelected(I.length):``}),(k!==void 0||A!==void 0||ke||Fe!==void 0||Yt||qe!==!1||fn>0)&&x(`div`,{className:s.toolbar,children:[(k!==void 0||A!==void 0)&&x(`div`,{className:s.heading,children:[k!==void 0&&b(`div`,{id:yn,className:s.title,children:k}),A!==void 0&&b(`div`,{id:bn,className:s.description,children:A})]}),x(`div`,{className:s.toolbarActions,children:[ke&&b(`input`,{type:`search`,className:s.search,"aria-label":N.search,placeholder:N.search,value:ut.value,onChange:e=>{ye(()=>{ut.value=e.target.value,L(1)})}}),fn>0&&x(e,{size:`sm`,variant:`ghost`,onClick:clearFilters,children:[N.clearFilters,` (`,fn,`)`]}),qe!==!1&&b(e,{size:`sm`,variant:`secondary`,onClick:exportCsv,children:N.exportCsv}),Fe,Yt&&x(i,{placement:`bottom`,children:[b(o,{asChild:!0,children:b(e,{size:`sm`,variant:`secondary`,children:N.columns})}),b(a,{className:s.menu,children:d.map(e=>{let n=!Jt.has(e.key);return b(t,{label:e.header,checked:n,disabled:n&&q.length===1,onChange:()=>toggleColumn(e.key)},e.key)})})]})]})]}),Cn&&x(`div`,{className:s.batchBar,children:[b(`span`,{className:s.batchCount,children:N.itemsSelected(I.length)}),b(`div`,{className:s.batchActions,children:Ae.map((t,n)=>b(e,{size:`sm`,variant:`secondary`,onClick:()=>t.onClick(I),children:t.label},t.id??`${n}-${t.label}`))})]}),b(`div`,{ref:H,className:be(s.scroller,M&&s.scrollerVirtualized),children:x(`table`,{className:s.table,"aria-labelledby":k===void 0?void 0:yn,"aria-label":k===void 0?Qe:void 0,"aria-describedby":A===void 0?void 0:bn,"aria-busy":O||void 0,role:vt?`grid`:void 0,"aria-rowcount":M?W.length:void 0,onKeyDown:vt?onGridKeyDown:onTableKeyDown,children:[x(`colgroup`,{children:[w&&b(`col`,{className:s.controlCol}),C&&b(`col`,{className:s.controlCol}),q.map(e=>{let t=J.widths?.[e.key],n=t===void 0?e.width:`${t}px`;return b(`col`,{style:n!==void 0||e.minWidth!==void 0?{...n===void 0?{}:{width:n},...e.minWidth===void 0?{}:{minWidth:e.minWidth}}:void 0},e.key)}),T&&b(`col`,{className:s.controlCol})]}),x(`thead`,{children:[Ke&&x(`tr`,{"data-group-header":!0,children:[X>0&&b(`th`,{colSpan:X,className:s.controlCell}),ue(q.map(e=>e.key),Ke).map((e,t)=>b(`th`,{scope:`colgroup`,colSpan:e.span,className:s.groupHeader,children:e.header},t)),T&&b(`th`,{className:s.controlCell})]}),x(`tr`,{children:[w&&b(`th`,{scope:`col`,className:s.controlCell,...pinAttrs(0),...gridAttrs(-1,0),children:b(`span`,{className:s.srOnly,children:N.expandRow})}),C&&b(`th`,{scope:`col`,className:s.controlCell,...pinAttrs(+!!w),...gridAttrs(-1,+!!w),children:C.mode===`multi`?b(t,{"aria-label":N.selectAll,checked:Ht,indeterminate:Ut&&!Ht,onChange:toggleAll,...Q}):b(`span`,{className:s.srOnly,children:N.selectRow})}),q.map((e,t)=>{let r=sortLevelOf(e.key),i=r?.direction,a=i===`asc`?`ascending`:i===`desc`?`descending`:`none`,o=r!==void 0&&(F.value?.thenBy?.length??0)>0,c=J.widths?.[e.key];return x(`th`,{scope:`col`,className:s.headerCell,"data-align":e.align??`start`,"data-sized":e.width!==void 0||c!==void 0||void 0,"aria-sort":e.sortable?a:void 0,...pinAttrs(X+t),...gridAttrs(-1,X+t),children:[x(`span`,{className:s.headerInner,children:[e.sortable?x(`button`,{type:`button`,className:s.sortButton,"data-state":a,onClick:t=>cycleSort(e.key,t.shiftKey),...Q,children:[e.header,o&&b(`sup`,{className:s.sortIndex,"aria-hidden":`true`,children:r.index+1})]}):e.header,Xt&&b(n,{size:`sm`,ariaLabel:N.columnMenu(e.header),items:columnMenuItems(e),onSelect:t=>onColumnMenu(e,t),...Q})]}),Zt&&b(`span`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":N.resizeColumn(e.header),"aria-valuenow":c,tabIndex:vt?-1:0,className:s.resizeHandle,"data-state":gt.value?.key===e.key?`resizing`:void 0,onKeyDown:t=>onResizeKeyDown(e,t),onDoubleClick:()=>z(u(J,e.key,void 0)),onPointerDown:t=>{t.preventDefault();let n=t.currentTarget.parentElement;gt.value={key:e.key,startX:t.clientX,startWidth:n?n.getBoundingClientRect().width:0}}})]},e.key)}),T&&b(`th`,{scope:`col`,className:s.controlCell,...pinAttrs(X+q.length),...gridAttrs(-1,X+q.length),children:b(`span`,{className:s.srOnly,children:N.actions})})]}),pn&&x(`tr`,{className:s.filterRow,children:[w&&b(`th`,{...pinAttrs(0)}),C&&b(`th`,{...pinAttrs(+!!w)}),q.map((e,t)=>b(`th`,{"data-align":e.align??`start`,...pinAttrs(X+t),children:e.filter!==void 0&&renderFilter(e)},e.key)),T&&b(`th`,{...pinAttrs(X+q.length)})]})]}),x(`tbody`,{children:[O&&Array.from({length:5},(e,t)=>b(`tr`,{className:s.row,children:Array.from({length:mn},(e,t)=>b(`td`,{children:b(`span`,{className:s.shimmer,"aria-hidden":`true`})},t))},t)),!O&&un.map((e,t)=>renderRow(e,t,void 0,`top`)),!O&&W.length===0&&b(`tr`,{"data-empty-row":!0,children:b(`td`,{colSpan:mn,className:s.emptyCell,children:hn?Pe??N.noResults:Ze??N.empty})}),!O&&K&&K.topPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:K.topPad}}),!O&&Kt.map((e,t)=>{let n=M?qt+t:t;return e.group?renderGroupRow(e,n):renderRow(e,n,n)}),!O&&K&&K.bottomPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:K.bottomPad}}),vn>0&&b(`tr`,{"aria-hidden":`true`,"data-filler-row":!0,children:b(`td`,{colSpan:mn,style:{blockSize:`calc(var(--_row-height) * ${vn})`,padding:0}})}),!O&&dn.map((e,t)=>renderRow(e,t,void 0,`bottom`))]}),We&&b(`tfoot`,{className:s.totals,children:x(`tr`,{"data-totals-row":!0,children:[w&&b(`td`,{className:s.controlCell,...pinAttrs(0)}),C&&b(`td`,{className:s.controlCell,...pinAttrs(+!!w)}),q.map((e,t)=>x(`td`,{"data-align":e.align??`start`,...pinAttrs(X+t),children:[t===0&&b(`span`,{className:e.aggregate===void 0?void 0:s.srOnly,children:N.totals}),Pt.value.get(e.key)]},e.key)),T&&b(`td`,{className:s.controlCell,...pinAttrs(X+q.length)})]})})]})}),S&&x(`div`,{className:s.footer,children:[S.pageSizeOptions&&x(`label`,{className:s.pageSize,children:[b(`span`,{children:`Rows per page`}),b(`select`,{value:V.value,onChange:e=>{ye(()=>{V.value=Number(e.target.value),L(1)})},children:S.pageSizeOptions.map(e=>b(`option`,{value:e,children:e},e))})]}),x(`span`,{className:s.range,children:[xn,`–`,Sn,` of `,gn]}),x(`div`,{className:s.pageButtons,children:[b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.previousPage,disabled:$<=1,onClick:()=>L($-1),children:b(`span`,{"aria-hidden":`true`,children:`‹`})}),b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.nextPage,disabled:$>=_n,onClick:()=>L($+1),children:b(`span`,{"aria-hidden":`true`,children:`›`})})]})]})]})}export{DataTable};
@@ -1,34 +1,2 @@
1
1
  import './data-table.css';
2
- var e = {
3
- root: "_root_1bz3s_2",
4
- toolbar: "_toolbar_1bz3s_26",
5
- heading: "_heading_1bz3s_35",
6
- title: "_title_1bz3s_41",
7
- description: "_description_1bz3s_47",
8
- search: "_search_1bz3s_52",
9
- batchBar: "_batchBar_1bz3s_79",
10
- batchCount: "_batchCount_1bz3s_89",
11
- batchActions: "_batchActions_1bz3s_95",
12
- scroller: "_scroller_1bz3s_101",
13
- scrollerVirtualized: "_scrollerVirtualized_1bz3s_137",
14
- table: "_table_1bz3s_143",
15
- row: "_row_1bz3s_225",
16
- controlCol: "_controlCol_1bz3s_245",
17
- controlCell: "_controlCell_1bz3s_249",
18
- sortButton: "_sortButton_1bz3s_255",
19
- emptyCell: "_emptyCell_1bz3s_303",
20
- expansionRow: "_expansionRow_1bz3s_310",
21
- expansionGrid: "_expansionGrid_1bz3s_316",
22
- expansionInner: "_expansionInner_1bz3s_320",
23
- expandButton: "_expandButton_1bz3s_325",
24
- chevron: "_chevron_1bz3s_348",
25
- shimmer: "_shimmer_1bz3s_363",
26
- footer: "_footer_1bz3s_390",
27
- pageSize: "_pageSize_1bz3s_400",
28
- range: "_range_1bz3s_426",
29
- pageButtons: "_pageButtons_1bz3s_431",
30
- pageButton: "_pageButton_1bz3s_431",
31
- srOnly: "_srOnly_1bz3s_472"
32
- };
33
- //#endregion
34
- export { e as default };
2
+ var e={root:`_root_1tqve_2`,toolbar:`_toolbar_1tqve_26`,heading:`_heading_1tqve_35`,title:`_title_1tqve_41`,description:`_description_1tqve_47`,search:`_search_1tqve_52`,toolbarActions:`_toolbarActions_1tqve_79`,menu:`_menu_1tqve_88`,filterRow:`_filterRow_1tqve_99`,filterInput:`_filterInput_1tqve_106`,rangeInputs:`_rangeInputs_1tqve_126`,batchBar:`_batchBar_1tqve_136`,batchCount:`_batchCount_1tqve_146`,batchActions:`_batchActions_1tqve_152`,scroller:`_scroller_1tqve_158`,scrollerVirtualized:`_scrollerVirtualized_1tqve_194`,table:`_table_1tqve_200`,totals:`_totals_1tqve_306`,groupHeader:`_groupHeader_1tqve_324`,groupRow:`_groupRow_1tqve_336`,groupToggle:`_groupToggle_1tqve_345`,chevron:`_chevron_1tqve_363`,groupCount:`_groupCount_1tqve_367`,row:`_row_1tqve_409`,headerCell:`_headerCell_1tqve_429`,headerInner:`_headerInner_1tqve_433`,resizeHandle:`_resizeHandle_1tqve_442`,controlCol:`_controlCol_1tqve_500`,controlCell:`_controlCell_1tqve_504`,sortButton:`_sortButton_1tqve_510`,sortIndex:`_sortIndex_1tqve_548`,emptyCell:`_emptyCell_1tqve_566`,expansionRow:`_expansionRow_1tqve_573`,expansionGrid:`_expansionGrid_1tqve_579`,expansionInner:`_expansionInner_1tqve_583`,expandButton:`_expandButton_1tqve_588`,shimmer:`_shimmer_1tqve_626`,footer:`_footer_1tqve_647`,pageSize:`_pageSize_1tqve_657`,range:`_range_1tqve_126`,pageButtons:`_pageButtons_1tqve_688`,pageButton:`_pageButton_1tqve_688`,srOnly:`_srOnly_1tqve_744`};export{e as default};
@@ -0,0 +1 @@
1
+ function moveGridFocus(e,t,n,r=!1){let i=n.rowCount-1,a=n.colCount-1,clampRow=e=>Math.max(-1,Math.min(i,e)),clampCol=e=>Math.max(0,Math.min(a,e));switch(t){case`ArrowDown`:return{row:clampRow(e.row+1),col:e.col};case`ArrowUp`:return{row:clampRow(e.row-1),col:e.col};case`ArrowRight`:return{row:e.row,col:clampCol(e.col+1)};case`ArrowLeft`:return{row:e.row,col:clampCol(e.col-1)};case`Home`:return r?{row:clampRow(0),col:0}:{row:e.row,col:0};case`End`:return r?{row:i,col:a}:{row:e.row,col:a};case`PageDown`:return{row:clampRow(e.row+n.pageRows),col:e.col};case`PageUp`:return{row:clampRow(e.row-n.pageRows),col:e.col};default:return}}export{moveGridFocus};
@@ -0,0 +1 @@
1
+ var e=``;function groupItems(t,n,r,i){let a=[],walk=(t,o,s)=>{let c=n[o];if(c===void 0){for(let e of t)a.push(e);return}let l=new Map;for(let e of t){let t=r(e,c),n=String(t??``),i=l.get(n);i?i.rows.push(e):l.set(n,{value:t,rows:[e]})}for(let[t,n]of l){let r=`${s}${c}=${t}`,l=i.has(r);a.push({id:`group${e}${r}`,group:{key:r,column:c,value:n.value,depth:o,count:n.rows.length,collapsed:l},leaves:n.rows}),l||walk(n.rows,o+1,`${r}${e}`)}};return walk(t,0,``),a}function aggregate(e,t){if(t===`count`)return e.length;let n=0,r=0,i=1/0,a=-1/0;for(let t of e){if(t==null||t===``)continue;let e=typeof t==`number`?t:Number(t);Number.isNaN(e)||(r++,n+=e,e<i&&(i=e),e>a&&(a=e))}if(r!==0)switch(t){case`sum`:return n;case`avg`:return n/r;case`min`:return i;default:return a}}function headerSpans(e,t){let n=new Map;for(let e of t)for(let t of e.columns)n.set(t,e.header);let r=[];for(let t of e){let e=n.get(t),i=r[r.length-1];i&&i.header===e?i.span++:r.push({header:e,span:1})}return r}export{aggregate,groupItems,headerSpans};
@@ -0,0 +1 @@
1
+ function createRowSearch(e){let t,n=``,r=[];return{filter(i,a){if(a===``)return t=i,n=``,r=i,i;let o=i===t;if(o&&a===n)return r;let s=o&&n!==``&&a.startsWith(n)?r:i,c=[];for(let t of s)e(t).includes(a)&&c.push(t);return t=i,n=a,r=c,c},prime(t,n,r){let i=Math.min(t.length,n+r);for(let r=n;r<i;r++)e(t[r]);return i}}}export{createRowSearch};
@@ -0,0 +1 @@
1
+ function sortRowsBy(e,t){let n=e.length;if(n<2||t.length===0)return[...e];let r=Array.from({length:n},(e,t)=>t),collect=()=>r.map(t=>e[t]),i=new Intl.Collator().compare,a=[],o=[];for(let s of t){let c=Array.from({length:n}),l=!0;for(let t=0;t<n;t++){let n=s.keyOf(e[t]);c[t]=n,typeof n!=`number`&&(l=!1)}let u=s.direction===`desc`?-1:1,d=new Float64Array(n);if(l)for(let e=0;e<n;e++)d[e]=c[e];else{let e=Array.from({length:n});for(let t=0;t<n;t++)e[t]=String(c[t]??``);if(t.length===1&&mostlyDistinct(e))return r.sort((t,n)=>{let r=i(e[t],e[n]);return r===0?t-n:u*r}),collect();let a=new Map;for(let t=0;t<n;t++)a.set(e[t],0);let o=[...a.keys()].sort(i);for(let e=0;e<o.length;e++)a.set(o[e],e);for(let t=0;t<n;t++)d[t]=a.get(e[t])}a.push(d),o.push(u)}let s=a.length;return r.sort((e,t)=>{for(let n=0;n<s;n++){let r=a[n],i=r[e]-r[t];if(i!==0)return o[n]*i}return e-t}),collect()}function mostlyDistinct(e){let t=Math.min(e.length,2048),n=new Set;for(let r=0;r<t;r++)n.add(e[r]);return n.size>t*.9}export{sortRowsBy};
@@ -0,0 +1,3 @@
1
+ function csvField(e){let t=e==null?``:String(e);return/[",\r\n]/.test(t)?`"${t.replaceAll(`"`,`""`)}"`:t}function toCsv(e,t,n){let r=[t.map(e=>csvField(e.header)).join(`,`)];for(let i of e)r.push(t.map(e=>csvField(n(i,e.key))).join(`,`));return r.join(`\r
2
+ `)+`\r
3
+ `}function downloadCsv(e,t){let n=new Blob([``,e],{type:`text/csv;charset=utf-8`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=t.endsWith(`.csv`)?t:`${t}.csv`,i.click(),URL.revokeObjectURL(r)}export{downloadCsv,toCsv};
@@ -0,0 +1 @@
1
+ function computeWindow(e){let{viewportHeight:t,rowHeight:n,count:r,overscan:i}=e,a=e.maxCanvas??12e6,o=r*n,s=Math.min(o,a);if(r===0)return{start:0,end:0,topPad:0,bottomPad:0,canvasHeight:0,scale:1};let c=Math.max(0,s-t),l=Math.max(0,Math.min(e.scrollTop,c)),u=c>0?Math.max(0,o-t)/c:1,d=l*u,f=Math.min(r-1,Math.floor(d/n)),p=Math.ceil(t/n)+1,m=Math.max(0,f-i),h=Math.min(r,f+p+i),g=d-f*n,_=Math.max(0,l-g-(f-m)*n);return{start:m,end:h,topPad:_,bottomPad:Math.max(0,s-_-(h-m)*n),canvasHeight:s,scale:u}}function scrollTopForRow(e,t){let{viewportHeight:n,rowHeight:r,count:i}=t,a=t.maxCanvas??12e6,o=i*r,s=Math.max(0,Math.min(o,a)-n);if(s===0)return 0;let c=Math.max(0,o-n)/s,l=Math.max(0,e*r-(n-r)/2);return Math.max(0,Math.min(s,Math.round(l/c)))}export{computeWindow,scrollTopForRow};
@@ -1 +1 @@
1
- @layer cascivo.component{._wrapper_g43fz_2{gap:var(--cascivo-space-1);min-inline-size:0;font-family:var(--cascivo-font-sans);flex-direction:column;display:inline-flex;position:relative}._wrapper_g43fz_2[data-size=sm]{--_height:2rem;--_font:var(--cascivo-text-sm);--_px:var(--cascivo-space-3)}._wrapper_g43fz_2[data-size=md]{--_height:2.5rem;--_font:var(--cascivo-text-sm);--_px:var(--cascivo-space-4)}._wrapper_g43fz_2[data-size=lg]{--_height:3rem;--_font:var(--cascivo-text-base);--_px:var(--cascivo-space-4)}._label_g43fz_31{font-size:var(--cascivo-text-sm);font-weight:var(--cascivo-font-medium);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-snug)}._field_g43fz_38{align-items:center;display:flex;position:relative}._trigger_g43fz_44{justify-content:space-between;align-items:center;gap:var(--cascivo-space-2);block-size:var(--_height,2.5rem);min-inline-size:12rem;padding-inline:var(--_px,var(--cascivo-space-4));font-family:var(--cascivo-font-sans);font-size:var(--_font,var(--cascivo-text-sm));color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);cursor:pointer;text-align:start;transition:border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);outline:none;display:flex}._trigger_g43fz_44:hover:not(:disabled){border-color:var(--cascivo-color-border-strong)}._trigger_g43fz_44:focus-visible{border-color:var(--cascivo-color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--cascivo-color-accent) 20%, transparent)}._trigger_g43fz_44:disabled{opacity:.5;cursor:not-allowed}._wrapper_g43fz_2[data-state=error] ._trigger_g43fz_44{border-color:var(--cascivo-color-destructive)}._value_g43fz_82{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._placeholder_g43fz_88{color:var(--cascivo-color-text-subtle)}._icon_g43fz_91{color:var(--cascivo-color-text-muted);font-style:normal}._clear_g43fz_96{cursor:pointer;min-block-size:1.5rem;min-inline-size:1.5rem;color:var(--cascivo-color-text-muted);font-size:var(--cascivo-text-xs);padding:var(--cascivo-space-1);border-radius:var(--cascivo-radius-control);background:0 0;border:none;outline:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;inset-inline-end:var(--cascivo-space-8)}._clear_g43fz_96:hover{color:var(--cascivo-color-text)}._clear_g43fz_96:focus-visible{box-shadow:0 0 0 2px var(--cascivo-color-accent)}._calendar_g43fz_121{z-index:var(--cascivo-z-dropdown);padding:var(--cascivo-space-3);background-color:var(--cascivo-color-surface-overlay);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-overlay);box-shadow:var(--cascivo-shadow-overlay);opacity:0;visibility:hidden;transition:opacity var(--cascivo-motion-enter), translate var(--cascivo-motion-enter), visibility var(--cascivo-motion-enter);position:absolute;inset-block-start:calc(100% + var(--cascivo-space-1));inset-inline-start:0;translate:0 -.25rem}._calendar_g43fz_121[data-state=open]{opacity:1;visibility:visible;translate:0}@starting-style{._calendar_g43fz_121[data-state=open]{opacity:0;translate:0 -.25rem}}._header_g43fz_153{justify-content:space-between;align-items:center;margin-block-end:var(--cascivo-space-2);display:flex}._monthLabel_g43fz_160{font-size:var(--cascivo-text-sm);font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-text)}._navButton_g43fz_166{border-radius:var(--cascivo-radius-control);cursor:pointer;block-size:2rem;inline-size:2rem;color:var(--cascivo-color-text-muted);font-size:var(--cascivo-text-base);background:0 0;border:1px solid #0000;outline:none;justify-content:center;align-items:center;display:inline-flex}._navButton_g43fz_166:hover{background-color:var(--cascivo-color-bg-subtle);color:var(--cascivo-color-text)}._navButton_g43fz_166:focus-visible{border-color:var(--cascivo-color-accent)}._grid_g43fz_188{border-collapse:collapse;inline-size:100%}._weekday_g43fz_193{padding-block:var(--cascivo-space-1);font-size:var(--cascivo-text-xs);font-weight:var(--cascivo-font-medium);color:var(--cascivo-color-text-muted);text-align:center;inline-size:2.25rem}._cell_g43fz_202{text-align:center;padding:2px}._empty_g43fz_206{inline-size:2.25rem}._day_g43fz_210{block-size:2.25rem;inline-size:2.25rem;font-family:var(--cascivo-font-sans);font-size:var(--cascivo-text-sm);color:var(--cascivo-color-text);border-radius:var(--cascivo-radius-control);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;display:flex}._day_g43fz_210:hover:not([aria-disabled]){background-color:var(--cascivo-color-bg-subtle)}._day_g43fz_210:focus-visible{box-shadow:0 0 0 2px var(--cascivo-color-accent)}._day_g43fz_210[data-today]{font-weight:var(--cascivo-font-semibold);color:var(--cascivo-color-accent)}._day_g43fz_210[data-selected]{background-color:var(--cascivo-color-accent);color:var(--cascivo-color-accent-foreground,var(--cascivo-color-text-on-accent))}._day_g43fz_210[aria-disabled]{opacity:.35;cursor:not-allowed}._error_g43fz_245{font-size:var(--cascivo-text-xs);color:var(--cascivo-color-destructive)}._hint_g43fz_249{font-size:var(--cascivo-text-xs);color:var(--cascivo-color-text-muted)}}
1
+ @layer cascivo.component{div:has(>._wrapper_7wyss_3){display:contents}._wrapper_7wyss_3{--cascivo-date-picker-day-today-color:var(--cascivo-color-accent-text);gap:var(--cascivo-space-1);min-inline-size:0;font-family:var(--cascivo-font-sans);flex-direction:column;display:inline-flex;position:relative}._wrapper_7wyss_3[data-size=sm]{--_height:2rem;--_font:var(--cascivo-text-sm);--_px:var(--cascivo-space-3)}._wrapper_7wyss_3[data-size=md]{--_height:2.5rem;--_font:var(--cascivo-text-sm);--_px:var(--cascivo-space-4)}._wrapper_7wyss_3[data-size=lg]{--_height:3rem;--_font:var(--cascivo-text-base);--_px:var(--cascivo-space-4)}._label_7wyss_42{font-size:var(--cascivo-text-sm);font-weight:var(--cascivo-font-medium);color:var(--cascivo-color-text);line-height:var(--cascivo-leading-snug)}._field_7wyss_49{align-items:center;display:flex;position:relative}._trigger_7wyss_55{justify-content:space-between;align-items:center;gap:var(--cascivo-space-2);block-size:var(--_height,2.5rem);min-inline-size:12rem;padding-inline:var(--_px,var(--cascivo-space-4));font-family:var(--cascivo-font-sans);font-size:var(--_font,var(--cascivo-text-sm));color:var(--cascivo-color-text);background-color:var(--cascivo-color-surface);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-field);cursor:pointer;text-align:start;transition:border-color var(--cascivo-duration-150) var(--cascivo-ease-out), box-shadow var(--cascivo-duration-150) var(--cascivo-ease-out);outline:none;display:flex}._trigger_7wyss_55:hover:not(:disabled){border-color:var(--cascivo-color-border-strong)}._trigger_7wyss_55:focus-visible{border-color:var(--cascivo-color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--cascivo-color-accent) 20%, transparent)}._trigger_7wyss_55:disabled{opacity:.5;cursor:not-allowed}._wrapper_7wyss_3[data-state=error] ._trigger_7wyss_55{border-color:var(--cascivo-color-destructive)}._value_7wyss_93{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}._placeholder_7wyss_99{color:var(--cascivo-color-text-subtle)}._clear_7wyss_103{cursor:pointer;min-block-size:1.5rem;min-inline-size:1.5rem;color:var(--cascivo-color-text-muted);font-size:var(--cascivo-text-xs);padding:var(--cascivo-space-1);border-radius:var(--cascivo-radius-control);background:0 0;border:none;outline:none;justify-content:center;align-items:center;display:inline-flex;position:absolute;inset-inline-end:var(--cascivo-space-8)}._clear_7wyss_103:hover{color:var(--cascivo-color-text)}._clear_7wyss_103:focus-visible{box-shadow:0 0 0 2px var(--cascivo-color-accent)}._popup_7wyss_128{z-index:var(--cascivo-z-dropdown);padding:var(--cascivo-space-3);background-color:var(--cascivo-color-surface-overlay);border:1px solid var(--cascivo-color-border);border-radius:var(--cascivo-radius-overlay);box-shadow:var(--cascivo-shadow-overlay);opacity:0;visibility:hidden;transition:opacity var(--cascivo-motion-enter), translate var(--cascivo-motion-enter), visibility var(--cascivo-motion-enter);position:absolute;inset-block-start:calc(100% + var(--cascivo-space-1));inset-inline-start:0;translate:0 -.25rem}._popup_7wyss_128[data-state=open]{opacity:1;visibility:visible;translate:0}@starting-style{._popup_7wyss_128[data-state=open]{opacity:0;translate:0 -.25rem}}._error_7wyss_160{font-size:var(--cascivo-text-xs);color:var(--cascivo-color-destructive)}._hint_7wyss_164{font-size:var(--cascivo-text-xs);color:var(--cascivo-color-text-muted)}._openButton_7wyss_169{border-radius:var(--cascivo-radius-control);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-block-size:1.75rem;min-inline-size:1.75rem;padding:0;display:inline-flex;position:absolute;inset-inline-end:var(--cascivo-space-1)}._openButton_7wyss_169:focus-visible{box-shadow:var(--cascivo-focus-ring);outline:none}._openButton_7wyss_169:disabled{opacity:.5;cursor:not-allowed}._calendarGlyph_7wyss_194,._clearGlyph_7wyss_195{background-color:var(--cascivo-color-text-muted);block-size:1rem;inline-size:1rem;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}._calendarGlyph_7wyss_194{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E")}._clearGlyph_7wyss_195{block-size:.75rem;inline-size:.75rem;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E")}@media (pointer:coarse){._trigger_7wyss_55,._clear_7wyss_103,._openButton_7wyss_169{min-block-size:var(--cascivo-target-min-coarse,2.75rem)}._clear_7wyss_103,._openButton_7wyss_169{min-inline-size:var(--cascivo-target-min-coarse,2.75rem)}}}@media (prefers-reduced-motion:reduce){._popup_7wyss_128{transition-duration:1ms}}@media (forced-colors:active){._popup_7wyss_128{border:1px solid canvastext}._trigger_7wyss_55:focus-visible,._clear_7wyss_103:focus-visible,._openButton_7wyss_169:focus-visible{outline-offset:1px;outline:2px solid highlight}}