@cascivo/react 0.18.0 → 1.1.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 (645) hide show
  1. package/README.md +9 -7
  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 -38
  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 -268
  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 -165
  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 -371
  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 -219
  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 -107
  105. package/dist/dropdown/dropdown.module.js +1 -9
  106. package/dist/editable/editable.js +1 -67
  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 -46
  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 -122
  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 +2084 -120
  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 -55
  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.js +1 -20
  169. package/dist/layouts/src/flex/flex.module.js +1 -3
  170. package/dist/layouts/src/grid/grid.css +1 -1
  171. package/dist/layouts/src/grid/grid.js +1 -55
  172. package/dist/layouts/src/grid/grid.module.js +1 -7
  173. package/dist/layouts/src/page-header/page-header.js +1 -31
  174. package/dist/layouts/src/page-header/page-header.module.js +1 -10
  175. package/dist/layouts/src/spacer/spacer.js +1 -17
  176. package/dist/layouts/src/spacer/spacer.module.js +1 -3
  177. package/dist/link/link.css +1 -1
  178. package/dist/link/link.js +1 -22
  179. package/dist/link/link.module.js +1 -3
  180. package/dist/list/list.js +1 -21
  181. package/dist/list/list.module.js +1 -6
  182. package/dist/log-viewer/log-viewer.css +1 -1
  183. package/dist/log-viewer/log-viewer.js +2 -184
  184. package/dist/log-viewer/log-viewer.module.js +1 -16
  185. package/dist/menu/menu.js +1 -126
  186. package/dist/menu/menu.module.js +1 -8
  187. package/dist/menu-button/menu-button.js +1 -92
  188. package/dist/menu-button/menu-button.module.js +1 -8
  189. package/dist/menubar/menubar.js +1 -103
  190. package/dist/menubar/menubar.module.js +1 -8
  191. package/dist/modal/modal.css +1 -1
  192. package/dist/modal/modal.js +1 -76
  193. package/dist/modal/modal.module.js +1 -12
  194. package/dist/multi-select/list-nav.js +1 -0
  195. package/dist/multi-select/multi-select.css +1 -1
  196. package/dist/multi-select/multi-select.js +1 -106
  197. package/dist/multi-select/multi-select.module.js +1 -15
  198. package/dist/multi-select/option-list.js +1 -0
  199. package/dist/native-select/native-select.css +1 -1
  200. package/dist/native-select/native-select.js +1 -37
  201. package/dist/native-select/native-select.module.js +1 -7
  202. package/dist/navigation-menu/navigation-menu.js +1 -99
  203. package/dist/navigation-menu/navigation-menu.module.js +1 -10
  204. package/dist/node/accordion/accordion.js +1 -114
  205. package/dist/node/accordion/accordion.module.js +1 -10
  206. package/dist/node/action-sheet/action-sheet.js +1 -91
  207. package/dist/node/action-sheet/action-sheet.module.js +1 -12
  208. package/dist/node/alert/alert.js +1 -55
  209. package/dist/node/alert/alert.module.js +1 -11
  210. package/dist/node/alert-dialog/alert-dialog.js +1 -66
  211. package/dist/node/alert-dialog/alert-dialog.module.js +1 -11
  212. package/dist/node/app-shell/app-shell.js +1 -85
  213. package/dist/node/app-shell/app-shell.module.js +1 -12
  214. package/dist/node/aspect-ratio/aspect-ratio.js +1 -20
  215. package/dist/node/aspect-ratio/aspect-ratio.module.js +1 -6
  216. package/dist/node/avatar/avatar.js +1 -57
  217. package/dist/node/avatar/avatar.module.js +1 -8
  218. package/dist/node/avatar-group/avatar-group.js +1 -24
  219. package/dist/node/avatar-group/avatar-group.module.js +1 -6
  220. package/dist/node/badge/badge.js +1 -22
  221. package/dist/node/badge/badge.module.js +1 -3
  222. package/dist/node/blockquote/blockquote.js +1 -16
  223. package/dist/node/blockquote/blockquote.module.js +1 -6
  224. package/dist/node/bottom-sheet/bottom-sheet.js +1 -111
  225. package/dist/node/bottom-sheet/bottom-sheet.module.js +1 -14
  226. package/dist/node/brand/logo/logo.js +1 -0
  227. package/dist/node/brand/logo/logo.module.js +1 -0
  228. package/dist/node/breadcrumb/breadcrumb.js +1 -28
  229. package/dist/node/breadcrumb/breadcrumb.module.js +1 -3
  230. package/dist/node/button/button.js +1 -35
  231. package/dist/node/button/button.module.js +1 -6
  232. package/dist/node/button-group/button-group.js +1 -39
  233. package/dist/node/button-group/button-group.module.js +1 -3
  234. package/dist/node/calendar/calendar-date.js +1 -0
  235. package/dist/node/calendar/calendar.js +1 -199
  236. package/dist/node/calendar/calendar.module.js +1 -14
  237. package/dist/node/card/card.js +1 -53
  238. package/dist/node/card/card.module.js +1 -12
  239. package/dist/node/carousel/carousel.js +1 -138
  240. package/dist/node/carousel/carousel.module.js +1 -13
  241. package/dist/node/chat-bubble/chat-bubble.js +1 -31
  242. package/dist/node/chat-bubble/chat-bubble.module.js +1 -11
  243. package/dist/node/checkbox/checkbox.js +1 -38
  244. package/dist/node/checkbox/checkbox.module.js +1 -8
  245. package/dist/node/checkbox-card/checkbox-card.js +1 -50
  246. package/dist/node/checkbox-card/checkbox-card.module.js +1 -11
  247. package/dist/node/code/code.js +1 -14
  248. package/dist/node/code/code.module.js +1 -3
  249. package/dist/node/code-snippet/code-snippet.js +2 -121
  250. package/dist/node/code-snippet/code-snippet.module.js +1 -17
  251. package/dist/node/code-snippet/highlight.js +1 -67
  252. package/dist/node/collapsible/collapsible.js +1 -47
  253. package/dist/node/collapsible/collapsible.module.js +1 -7
  254. package/dist/node/color-picker/color-picker.js +1 -268
  255. package/dist/node/color-picker/color-picker.module.js +1 -18
  256. package/dist/node/color-picker/color.js +1 -0
  257. package/dist/node/combobox/combobox.js +1 -165
  258. package/dist/node/combobox/combobox.module.js +1 -19
  259. package/dist/node/combobox/list-nav.js +1 -0
  260. package/dist/node/combobox/option-list.js +1 -0
  261. package/dist/node/command-menu/command-menu.js +1 -421
  262. package/dist/node/command-menu/command-menu.module.js +1 -34
  263. package/dist/node/comparison/comparison.js +1 -69
  264. package/dist/node/comparison/comparison.module.js +1 -9
  265. package/dist/node/contained-list/contained-list.js +1 -41
  266. package/dist/node/contained-list/contained-list.module.js +1 -11
  267. package/dist/node/context-menu/context-menu.js +1 -93
  268. package/dist/node/context-menu/context-menu.module.js +1 -7
  269. package/dist/node/copy-button/copy-button.js +1 -60
  270. package/dist/node/copy-button/copy-button.module.js +1 -6
  271. package/dist/node/data-list/data-list.js +1 -25
  272. package/dist/node/data-list/data-list.module.js +1 -8
  273. package/dist/node/data-table/column-filter.js +1 -0
  274. package/dist/node/data-table/column-layout.js +1 -0
  275. package/dist/node/data-table/data-table.js +1 -371
  276. package/dist/node/data-table/data-table.module.js +1 -33
  277. package/dist/node/data-table/grid-keys.js +1 -0
  278. package/dist/node/data-table/row-group.js +1 -0
  279. package/dist/node/data-table/row-search.js +1 -0
  280. package/dist/node/data-table/row-sort.js +1 -0
  281. package/dist/node/data-table/to-csv.js +3 -0
  282. package/dist/node/data-table/virtual-window.js +1 -0
  283. package/dist/node/date-picker/date-picker.js +1 -219
  284. package/dist/node/date-picker/date-picker.module.js +1 -23
  285. package/dist/node/date-picker/parse-date.js +1 -0
  286. package/dist/node/date-range-picker/date-range-picker.js +1 -196
  287. package/dist/node/date-range-picker/date-range-picker.module.js +1 -18
  288. package/dist/node/dock/dock.js +1 -34
  289. package/dist/node/dock/dock.module.js +1 -8
  290. package/dist/node/drawer/drawer.js +1 -96
  291. package/dist/node/drawer/drawer.module.js +1 -13
  292. package/dist/node/dropdown/dropdown.js +1 -107
  293. package/dist/node/dropdown/dropdown.module.js +1 -9
  294. package/dist/node/editable/editable.js +1 -67
  295. package/dist/node/editable/editable.module.js +1 -11
  296. package/dist/node/empty-state/empty-state.js +1 -32
  297. package/dist/node/empty-state/empty-state.module.js +1 -9
  298. package/dist/node/fab/fab.js +1 -93
  299. package/dist/node/fab/fab.module.js +1 -12
  300. package/dist/node/field/field.js +1 -46
  301. package/dist/node/field/field.module.js +1 -7
  302. package/dist/node/file-uploader/file-uploader.js +1 -122
  303. package/dist/node/file-uploader/file-uploader.module.js +1 -18
  304. package/dist/node/filter/filter.js +1 -35
  305. package/dist/node/filter/filter.module.js +1 -6
  306. package/dist/node/form/form.js +1 -95
  307. package/dist/node/form/form.module.js +1 -3
  308. package/dist/node/header/header.js +1 -44
  309. package/dist/node/header/header.module.js +1 -11
  310. package/dist/node/header-panel/header-panel.js +1 -72
  311. package/dist/node/header-panel/header-panel.module.js +1 -9
  312. package/dist/node/heading/heading.js +1 -22
  313. package/dist/node/heading/heading.module.js +1 -3
  314. package/dist/node/hover-card/hover-card.js +1 -84
  315. package/dist/node/hover-card/hover-card.module.js +1 -6
  316. package/dist/node/icon-button/icon-button.js +1 -19
  317. package/dist/node/icon-button/icon-button.module.js +1 -3
  318. package/dist/node/image/image.js +1 -64
  319. package/dist/node/image/image.module.js +1 -9
  320. package/dist/node/indicator/indicator.js +1 -16
  321. package/dist/node/indicator/indicator.module.js +1 -6
  322. package/dist/node/infinite-scroll/infinite-scroll.js +1 -49
  323. package/dist/node/infinite-scroll/infinite-scroll.module.js +1 -7
  324. package/dist/node/inline-loading/inline-loading.js +1 -74
  325. package/dist/node/inline-loading/inline-loading.module.js +1 -9
  326. package/dist/node/input/input.js +1 -55
  327. package/dist/node/input/input.module.js +1 -9
  328. package/dist/node/input-group/input-group.js +1 -39
  329. package/dist/node/input-group/input-group.module.js +1 -9
  330. package/dist/node/item/item.js +1 -50
  331. package/dist/node/item/item.module.js +1 -10
  332. package/dist/node/join/join.js +1 -12
  333. package/dist/node/join/join.module.js +1 -3
  334. package/dist/node/kbd/kbd.js +1 -14
  335. package/dist/node/kbd/kbd.module.js +1 -3
  336. package/dist/node/label/label.js +1 -23
  337. package/dist/node/label/label.module.js +1 -7
  338. package/dist/node/large-title-header/large-title-header.js +1 -38
  339. package/dist/node/large-title-header/large-title-header.module.js +1 -12
  340. package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -17
  341. package/dist/node/layouts/src/auto-grid/auto-grid.module.js +1 -4
  342. package/dist/node/layouts/src/center/center.js +1 -16
  343. package/dist/node/layouts/src/center/center.module.js +1 -3
  344. package/dist/node/layouts/src/columns/columns.js +1 -21
  345. package/dist/node/layouts/src/columns/columns.module.js +1 -6
  346. package/dist/node/layouts/src/flex/flex.js +1 -20
  347. package/dist/node/layouts/src/flex/flex.module.js +1 -3
  348. package/dist/node/layouts/src/grid/grid.js +1 -55
  349. package/dist/node/layouts/src/grid/grid.module.js +1 -7
  350. package/dist/node/layouts/src/page-header/page-header.js +1 -31
  351. package/dist/node/layouts/src/page-header/page-header.module.js +1 -10
  352. package/dist/node/layouts/src/spacer/spacer.js +1 -17
  353. package/dist/node/layouts/src/spacer/spacer.module.js +1 -3
  354. package/dist/node/link/link.js +1 -22
  355. package/dist/node/link/link.module.js +1 -3
  356. package/dist/node/list/list.js +1 -21
  357. package/dist/node/list/list.module.js +1 -6
  358. package/dist/node/log-viewer/log-viewer.js +2 -184
  359. package/dist/node/log-viewer/log-viewer.module.js +1 -16
  360. package/dist/node/menu/menu.js +1 -126
  361. package/dist/node/menu/menu.module.js +1 -8
  362. package/dist/node/menu-button/menu-button.js +1 -92
  363. package/dist/node/menu-button/menu-button.module.js +1 -8
  364. package/dist/node/menubar/menubar.js +1 -103
  365. package/dist/node/menubar/menubar.module.js +1 -8
  366. package/dist/node/modal/modal.js +1 -76
  367. package/dist/node/modal/modal.module.js +1 -12
  368. package/dist/node/multi-select/list-nav.js +1 -0
  369. package/dist/node/multi-select/multi-select.js +1 -106
  370. package/dist/node/multi-select/multi-select.module.js +1 -15
  371. package/dist/node/multi-select/option-list.js +1 -0
  372. package/dist/node/native-select/native-select.js +1 -37
  373. package/dist/node/native-select/native-select.module.js +1 -7
  374. package/dist/node/navigation-menu/navigation-menu.js +1 -99
  375. package/dist/node/navigation-menu/navigation-menu.module.js +1 -10
  376. package/dist/node/notification/notification.js +1 -140
  377. package/dist/node/notification/notification.module.js +1 -11
  378. package/dist/node/number-input/number-input.js +1 -147
  379. package/dist/node/number-input/number-input.module.js +1 -12
  380. package/dist/node/otp-input/otp-input.js +1 -70
  381. package/dist/node/otp-input/otp-input.module.js +1 -6
  382. package/dist/node/overflow-menu/overflow-menu.js +1 -70
  383. package/dist/node/overflow-menu/overflow-menu.module.js +1 -7
  384. package/dist/node/pagination/pagination.js +1 -92
  385. package/dist/node/pagination/pagination.module.js +1 -11
  386. package/dist/node/password-input/password-input.js +1 -81
  387. package/dist/node/password-input/password-input.module.js +1 -11
  388. package/dist/node/popover/popover.js +1 -51
  389. package/dist/node/popover/popover.module.js +1 -6
  390. package/dist/node/popover/use-popover.js +1 -55
  391. package/dist/node/progress/progress.js +1 -16
  392. package/dist/node/progress/progress.module.js +1 -6
  393. package/dist/node/progress-bar/progress-bar.js +1 -42
  394. package/dist/node/progress-bar/progress-bar.module.js +1 -11
  395. package/dist/node/progress-circle/progress-circle.js +1 -46
  396. package/dist/node/progress-circle/progress-circle.module.js +1 -9
  397. package/dist/node/progress-indicator/progress-indicator.js +1 -34
  398. package/dist/node/progress-indicator/progress-indicator.module.js +1 -10
  399. package/dist/node/prose/prose.js +1 -13
  400. package/dist/node/prose/prose.module.js +1 -3
  401. package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -82
  402. package/dist/node/pull-to-refresh/pull-to-refresh.module.js +1 -9
  403. package/dist/node/qr-code/encode.js +1 -583
  404. package/dist/node/qr-code/qr-code.js +1 -41
  405. package/dist/node/qr-code/qr-code.module.js +1 -6
  406. package/dist/node/radial-progress/radial-progress.js +1 -27
  407. package/dist/node/radial-progress/radial-progress.module.js +1 -6
  408. package/dist/node/radio/radio.js +1 -48
  409. package/dist/node/radio/radio.module.js +1 -9
  410. package/dist/node/radio-card/radio-card.js +1 -64
  411. package/dist/node/radio-card/radio-card.module.js +1 -11
  412. package/dist/node/rating-group/rating-group.js +1 -37
  413. package/dist/node/rating-group/rating-group.module.js +1 -6
  414. package/dist/node/react/src/index.js +1 -141
  415. package/dist/node/relative-time/relative-time.js +1 -66
  416. package/dist/node/relative-time/relative-time.module.js +1 -3
  417. package/dist/node/reorder-list/reorder-list.js +1 -143
  418. package/dist/node/reorder-list/reorder-list.module.js +1 -11
  419. package/dist/node/resizable/resizable.js +1 -80
  420. package/dist/node/resizable/resizable.module.js +1 -8
  421. package/dist/node/scroll-area/scroll-area.js +1 -38
  422. package/dist/node/scroll-area/scroll-area.module.js +1 -3
  423. package/dist/node/search/search.js +1 -92
  424. package/dist/node/search/search.module.js +1 -9
  425. package/dist/node/segmented-control/segmented-control.js +1 -43
  426. package/dist/node/segmented-control/segmented-control.module.js +1 -6
  427. package/dist/node/select/select.js +1 -72
  428. package/dist/node/select/select.module.js +1 -11
  429. package/dist/node/separator/separator.js +1 -19
  430. package/dist/node/separator/separator.module.js +1 -3
  431. package/dist/node/sheet/sheet.js +1 -49
  432. package/dist/node/sheet/sheet.module.js +1 -9
  433. package/dist/node/shell-header/shell-header.js +1 -169
  434. package/dist/node/shell-header/shell-header.module.js +1 -24
  435. package/dist/node/side-nav/side-nav.js +1 -334
  436. package/dist/node/side-nav/side-nav.module.js +1 -31
  437. package/dist/node/skeleton/skeleton.js +1 -23
  438. package/dist/node/skeleton/skeleton.module.js +1 -7
  439. package/dist/node/skip-nav/skip-nav.js +1 -28
  440. package/dist/node/skip-nav/skip-nav.module.js +1 -3
  441. package/dist/node/slider/slider.js +1 -29
  442. package/dist/node/slider/slider.module.js +1 -7
  443. package/dist/node/spinner/spinner.js +1 -18
  444. package/dist/node/spinner/spinner.module.js +1 -6
  445. package/dist/node/stack/stack.js +1 -17
  446. package/dist/node/stack/stack.module.js +1 -6
  447. package/dist/node/stat/stat.js +1 -41
  448. package/dist/node/stat/stat.module.js +1 -11
  449. package/dist/node/status/status.js +1 -25
  450. package/dist/node/status/status.module.js +1 -7
  451. package/dist/node/steps/steps.js +1 -35
  452. package/dist/node/steps/steps.module.js +1 -8
  453. package/dist/node/structured-list/structured-list.js +1 -102
  454. package/dist/node/structured-list/structured-list.module.js +1 -12
  455. package/dist/node/swap/swap.js +1 -36
  456. package/dist/node/swap/swap.module.js +1 -7
  457. package/dist/node/swipe-item/swipe-item.js +1 -62
  458. package/dist/node/swipe-item/swipe-item.module.js +1 -12
  459. package/dist/node/switcher/switcher.js +1 -32
  460. package/dist/node/switcher/switcher.module.js +1 -8
  461. package/dist/node/tabs/tabs.js +1 -98
  462. package/dist/node/tabs/tabs.module.js +1 -8
  463. package/dist/node/tag/tag.js +1 -33
  464. package/dist/node/tag/tag.module.js +1 -6
  465. package/dist/node/tags-input/tags-input.js +1 -64
  466. package/dist/node/tags-input/tags-input.module.js +1 -8
  467. package/dist/node/text/text.js +1 -16
  468. package/dist/node/text/text.module.js +1 -3
  469. package/dist/node/textarea/textarea.js +1 -57
  470. package/dist/node/textarea/textarea.module.js +1 -9
  471. package/dist/node/tile/tile.js +1 -39
  472. package/dist/node/tile/tile.module.js +1 -7
  473. package/dist/node/time-picker/time-picker.js +1 -63
  474. package/dist/node/time-picker/time-picker.module.js +1 -9
  475. package/dist/node/timeline/timeline.js +1 -55
  476. package/dist/node/timeline/timeline.module.js +1 -11
  477. package/dist/node/toast/toast.js +1 -85
  478. package/dist/node/toast/toast.module.js +1 -11
  479. package/dist/node/toc/toc.js +1 -43
  480. package/dist/node/toc/toc.module.js +1 -3
  481. package/dist/node/toc/use-toc-from-region.js +1 -18
  482. package/dist/node/toggle/toggle.js +1 -41
  483. package/dist/node/toggle/toggle.module.js +1 -8
  484. package/dist/node/toggle-group/toggle-group.js +1 -55
  485. package/dist/node/toggle-group/toggle-group.module.js +1 -6
  486. package/dist/node/toggletip/toggletip.js +1 -49
  487. package/dist/node/toggletip/toggletip.module.js +1 -7
  488. package/dist/node/tooltip/tooltip.js +1 -58
  489. package/dist/node/tooltip/tooltip.module.js +1 -6
  490. package/dist/node/tree-view/tree-view.js +1 -201
  491. package/dist/node/tree-view/tree-view.module.js +1 -13
  492. package/dist/node/user/user.js +1 -35
  493. package/dist/node/user/user.module.js +1 -9
  494. package/dist/node/virtual-list/virtual-list.js +1 -40
  495. package/dist/node/virtual-list/virtual-list.module.js +1 -7
  496. package/dist/node/visually-hidden/visually-hidden.js +1 -2
  497. package/dist/node/wheel-picker/wheel-picker.js +1 -84
  498. package/dist/node/wheel-picker/wheel-picker.module.js +1 -8
  499. package/dist/notification/notification.js +1 -140
  500. package/dist/notification/notification.module.js +1 -11
  501. package/dist/number-input/number-input.js +1 -147
  502. package/dist/number-input/number-input.module.js +1 -12
  503. package/dist/otp-input/otp-input.js +1 -70
  504. package/dist/otp-input/otp-input.module.js +1 -6
  505. package/dist/overflow-menu/overflow-menu.js +1 -70
  506. package/dist/overflow-menu/overflow-menu.module.js +1 -7
  507. package/dist/pagination/pagination.js +1 -92
  508. package/dist/pagination/pagination.module.js +1 -11
  509. package/dist/password-input/password-input.js +1 -81
  510. package/dist/password-input/password-input.module.js +1 -11
  511. package/dist/popover/popover.js +1 -51
  512. package/dist/popover/popover.module.js +1 -6
  513. package/dist/popover/use-popover.js +1 -55
  514. package/dist/progress/progress.css +1 -1
  515. package/dist/progress/progress.js +1 -16
  516. package/dist/progress/progress.module.js +1 -6
  517. package/dist/progress-bar/progress-bar.css +1 -1
  518. package/dist/progress-bar/progress-bar.js +1 -42
  519. package/dist/progress-bar/progress-bar.module.js +1 -11
  520. package/dist/progress-circle/progress-circle.js +1 -46
  521. package/dist/progress-circle/progress-circle.module.js +1 -9
  522. package/dist/progress-indicator/progress-indicator.css +1 -1
  523. package/dist/progress-indicator/progress-indicator.js +1 -34
  524. package/dist/progress-indicator/progress-indicator.module.js +1 -10
  525. package/dist/prose/prose.css +1 -1
  526. package/dist/prose/prose.js +1 -13
  527. package/dist/prose/prose.module.js +1 -3
  528. package/dist/pull-to-refresh/pull-to-refresh.js +1 -82
  529. package/dist/pull-to-refresh/pull-to-refresh.module.js +1 -9
  530. package/dist/qr-code/encode.js +1 -583
  531. package/dist/qr-code/qr-code.js +1 -41
  532. package/dist/qr-code/qr-code.module.js +1 -6
  533. package/dist/radial-progress/radial-progress.js +1 -27
  534. package/dist/radial-progress/radial-progress.module.js +1 -6
  535. package/dist/radio/radio.js +1 -48
  536. package/dist/radio/radio.module.js +1 -9
  537. package/dist/radio-card/radio-card.css +1 -1
  538. package/dist/radio-card/radio-card.js +1 -64
  539. package/dist/radio-card/radio-card.module.js +1 -11
  540. package/dist/rating-group/rating-group.js +1 -37
  541. package/dist/rating-group/rating-group.module.js +1 -6
  542. package/dist/react/src/index.js +1 -141
  543. package/dist/relative-time/relative-time.js +1 -66
  544. package/dist/relative-time/relative-time.module.js +1 -3
  545. package/dist/reorder-list/reorder-list.css +1 -1
  546. package/dist/reorder-list/reorder-list.js +1 -143
  547. package/dist/reorder-list/reorder-list.module.js +1 -11
  548. package/dist/resizable/resizable.js +1 -80
  549. package/dist/resizable/resizable.module.js +1 -8
  550. package/dist/scroll-area/scroll-area.css +1 -1
  551. package/dist/scroll-area/scroll-area.js +1 -38
  552. package/dist/scroll-area/scroll-area.module.js +1 -3
  553. package/dist/search/search.js +1 -92
  554. package/dist/search/search.module.js +1 -9
  555. package/dist/segmented-control/segmented-control.js +1 -43
  556. package/dist/segmented-control/segmented-control.module.js +1 -6
  557. package/dist/select/select.js +1 -72
  558. package/dist/select/select.module.js +1 -11
  559. package/dist/separator/separator.js +1 -19
  560. package/dist/separator/separator.module.js +1 -3
  561. package/dist/sheet/sheet.js +1 -49
  562. package/dist/sheet/sheet.module.js +1 -9
  563. package/dist/shell-header/shell-header.css +1 -1
  564. package/dist/shell-header/shell-header.js +1 -169
  565. package/dist/shell-header/shell-header.module.js +1 -24
  566. package/dist/side-nav/side-nav.css +1 -1
  567. package/dist/side-nav/side-nav.js +1 -334
  568. package/dist/side-nav/side-nav.module.js +1 -31
  569. package/dist/skeleton/skeleton.css +1 -1
  570. package/dist/skeleton/skeleton.js +1 -23
  571. package/dist/skeleton/skeleton.module.js +1 -7
  572. package/dist/skip-nav/skip-nav.js +1 -28
  573. package/dist/skip-nav/skip-nav.module.js +1 -3
  574. package/dist/slider/slider.js +1 -29
  575. package/dist/slider/slider.module.js +1 -7
  576. package/dist/spinner/spinner.css +1 -1
  577. package/dist/spinner/spinner.js +1 -18
  578. package/dist/spinner/spinner.module.js +1 -6
  579. package/dist/stack/stack.js +1 -17
  580. package/dist/stack/stack.module.js +1 -6
  581. package/dist/stat/stat.js +1 -41
  582. package/dist/stat/stat.module.js +1 -11
  583. package/dist/status/status.css +1 -1
  584. package/dist/status/status.js +1 -25
  585. package/dist/status/status.module.js +1 -7
  586. package/dist/steps/steps.css +1 -1
  587. package/dist/steps/steps.js +1 -35
  588. package/dist/steps/steps.module.js +1 -8
  589. package/dist/structured-list/structured-list.js +1 -102
  590. package/dist/structured-list/structured-list.module.js +1 -12
  591. package/dist/styles.css +395 -53
  592. package/dist/swap/swap.css +1 -1
  593. package/dist/swap/swap.js +1 -36
  594. package/dist/swap/swap.module.js +1 -7
  595. package/dist/swipe-item/swipe-item.js +1 -62
  596. package/dist/swipe-item/swipe-item.module.js +1 -12
  597. package/dist/switcher/switcher.js +1 -32
  598. package/dist/switcher/switcher.module.js +1 -8
  599. package/dist/tabs/tabs.js +1 -98
  600. package/dist/tabs/tabs.module.js +1 -8
  601. package/dist/tag/tag.js +1 -33
  602. package/dist/tag/tag.module.js +1 -6
  603. package/dist/tags-input/tags-input.js +1 -64
  604. package/dist/tags-input/tags-input.module.js +1 -8
  605. package/dist/text/text.css +1 -1
  606. package/dist/text/text.js +1 -16
  607. package/dist/text/text.module.js +1 -3
  608. package/dist/textarea/textarea.css +1 -1
  609. package/dist/textarea/textarea.js +1 -57
  610. package/dist/textarea/textarea.module.js +1 -9
  611. package/dist/tile/tile.css +1 -1
  612. package/dist/tile/tile.js +1 -39
  613. package/dist/tile/tile.module.js +1 -7
  614. package/dist/time-picker/time-picker.js +1 -63
  615. package/dist/time-picker/time-picker.module.js +1 -9
  616. package/dist/timeline/timeline.js +1 -55
  617. package/dist/timeline/timeline.module.js +1 -11
  618. package/dist/toast/toast.css +1 -1
  619. package/dist/toast/toast.js +1 -85
  620. package/dist/toast/toast.module.js +1 -11
  621. package/dist/toc/toc.css +1 -1
  622. package/dist/toc/toc.js +1 -43
  623. package/dist/toc/toc.module.js +1 -3
  624. package/dist/toc/use-toc-from-region.js +1 -18
  625. package/dist/toggle/toggle.js +1 -41
  626. package/dist/toggle/toggle.module.js +1 -8
  627. package/dist/toggle-group/toggle-group.js +1 -55
  628. package/dist/toggle-group/toggle-group.module.js +1 -6
  629. package/dist/toggletip/toggletip.js +1 -49
  630. package/dist/toggletip/toggletip.module.js +1 -7
  631. package/dist/tooltip/tooltip.css +1 -1
  632. package/dist/tooltip/tooltip.js +1 -58
  633. package/dist/tooltip/tooltip.module.js +1 -6
  634. package/dist/tree-view/tree-view.css +1 -1
  635. package/dist/tree-view/tree-view.js +1 -201
  636. package/dist/tree-view/tree-view.module.js +1 -13
  637. package/dist/user/user.js +1 -35
  638. package/dist/user/user.module.js +1 -9
  639. package/dist/virtual-list/virtual-list.js +1 -40
  640. package/dist/virtual-list/virtual-list.module.js +1 -7
  641. package/dist/visually-hidden/visually-hidden.js +1 -2
  642. package/dist/wheel-picker/wheel-picker.js +1 -84
  643. package/dist/wheel-picker/wheel-picker.module.js +1 -8
  644. package/package.json +4 -4
  645. package/readme.body.md +7 -5
@@ -1,371 +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
- function h(e, t) {
13
- return e[t];
14
- }
15
- function re(e, t) {
16
- return typeof e == "number" && typeof t == "number" ? e - t : String(e ?? "").localeCompare(String(t ?? ""));
17
- }
18
- function g({ columns: g, rows: ie, getRowId: _, sort: ae, defaultSort: oe, sortMode: se = "client", onSortChange: ce, searchable: v = !1, pagination: y, selection: b, batchActions: x, renderExpandedRow: S, density: le = "normal", zebra: ue = !1, stickyHeader: de = !1, loading: C = !1, emptyState: fe, title: w, description: T, labels: E, className: pe, virtualized: D = !1, rowHeight: O = 40, windowSize: me = 20, overscan: he = 3 }) {
19
- te();
20
- let k = i(), A = {
21
- search: E?.search ?? f(d.dataTable.search),
22
- empty: E?.empty ?? f(d.dataTable.empty),
23
- selectAll: E?.selectAll ?? f(d.dataTable.selectAll),
24
- selectRow: E?.selectRow ?? f(d.dataTable.selectRow),
25
- itemsSelected: (e) => E?.itemsSelected?.(e) ?? f(d.dataTable.itemsSelected, { count: e }),
26
- expandRow: E?.expandRow ?? f(d.dataTable.expandRow),
27
- previousPage: E?.previousPage ?? f(d.dataTable.previousPage),
28
- nextPage: E?.nextPage ?? f(d.dataTable.nextPage)
29
- }, [ge] = l({ value: ie }), [_e] = l({ value: g }), [j, ve] = l({
30
- value: ae,
31
- defaultValue: oe
32
- }), M = u([]), N = b?.selected ?? M.value, P = (e) => {
33
- b?.selected === void 0 && (M.value = e), b?.onChange?.(e);
34
- }, F = u(""), I = u(1), L = u(y?.pageSize ?? 0), R = u(/* @__PURE__ */ new Set()), z = a(null), B = u(0);
35
- ee(() => {
36
- if (!D) return;
37
- let e = z.current;
38
- if (!e) return;
39
- let t = () => {
40
- ne(() => {
41
- B.value = e.scrollTop;
42
- });
43
- };
44
- return e.addEventListener("scroll", t, { passive: !0 }), () => e.removeEventListener("scroll", t);
45
- });
46
- let V = c(() => ge.value.map((e, t) => ({
47
- row: e,
48
- id: _ ? _(e) : String(t)
49
- }))), H = c(() => {
50
- let e = F.value.trim().toLowerCase();
51
- if (!e) return V.value;
52
- let t = _e.value;
53
- return V.value.filter((n) => t.some((t) => String(h(n.row, t.key) ?? "").toLowerCase().includes(e)));
54
- }), U = c(() => {
55
- let e = j.value;
56
- if (!e || se === "server") return H.value;
57
- let t = H.value.map((e, t) => [e, t]);
58
- return t.sort((t, n) => {
59
- let r = re(h(t[0].row, e.key), h(n[0].row, e.key));
60
- return e.direction === "desc" && (r = -r), r === 0 ? t[1] - n[1] : r;
61
- }), t.map(([e]) => e);
62
- }), ye = c(() => y ? Math.max(1, Math.ceil(H.value.length / L.value)) : 1), W = c(() => Math.min(I.value, ye.value)), G = c(() => {
63
- if (!y) return U.value;
64
- let e = (W.value - 1) * L.value;
65
- return U.value.slice(e, e + L.value);
66
- }), K = c(() => D ? Math.floor(B.value / O) : 0), be = c(() => D ? Math.min(K.value + me + he * 2, G.value.length) : G.value.length), xe = c(() => D ? G.value.slice(K.value, be.value) : G.value), Se = (e) => {
67
- let t = j.value, n;
68
- n = !t || t.key !== e ? {
69
- key: e,
70
- direction: "asc"
71
- } : t.direction === "asc" ? {
72
- key: e,
73
- direction: "desc"
74
- } : void 0, o(() => {
75
- ve(n), I.value = 1;
76
- }), ce?.(n);
77
- }, Ce = (e) => {
78
- if (![
79
- "ArrowUp",
80
- "ArrowDown",
81
- "ArrowLeft",
82
- "ArrowRight"
83
- ].includes(e.key)) return;
84
- let t = e.currentTarget, n = Array.from(t.querySelectorAll("th button, td button, td input[type=\"checkbox\"]")), r = n.indexOf(document.activeElement);
85
- if (r === -1) return;
86
- e.preventDefault();
87
- let i = (e) => e.closest("tr"), a;
88
- if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
89
- let t = n[r + (e.key === "ArrowRight" ? 1 : -1)];
90
- t && i(t) === i(n[r]) && (a = t);
91
- } else {
92
- let t = e.key === "ArrowDown" ? 1 : -1, o = n[r];
93
- for (let e = r + t; e >= 0 && e < n.length; e += t) if (i(n[e]) !== i(o)) {
94
- a = n[e];
95
- break;
96
- }
97
- }
98
- a?.focus();
99
- }, we = (e) => {
100
- let t = N;
101
- b?.mode === "single" ? P(t.includes(e) ? [] : [e]) : P(t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
102
- }, Te = (e) => {
103
- let t = new Set(R.value);
104
- t.has(e) ? t.delete(e) : t.add(e), R.value = t;
105
- }, q = G.value, Ee = R.value, J = q.length > 0 && q.every((e) => N.includes(e.id)), De = q.some((e) => N.includes(e.id)), Y = xe.value, X = K.value, Oe = be.value, ke = () => {
106
- let e = q.map((e) => e.id);
107
- P(J ? N.filter((t) => !e.includes(t)) : [...new Set([...N, ...e])]);
108
- }, Z = g.length + +!!b + +!!S, Ae = y && !D && Y.length > 0 ? Math.max(0, L.value - Y.length) : 0, je = `${k}-title`, Me = `${k}-description`, Q = H.value.length, $ = Q === 0 ? 0 : (W.value - 1) * L.value + 1, Ne = Q === 0 ? 0 : $ + q.length - 1, Pe = !!x && x.length > 0 && N.length > 0;
109
- return /* @__PURE__ */ m("div", {
110
- className: s(n.root, pe),
111
- "data-density": le,
112
- "data-zebra": ue || void 0,
113
- "data-sticky-header": de || void 0,
114
- "data-paginated": y ? !0 : void 0,
115
- "data-fixed-layout": g.every((e) => e.width !== void 0) || void 0,
116
- children: [
117
- /* @__PURE__ */ p("span", {
118
- "aria-live": "polite",
119
- className: n.srOnly,
120
- children: N.length > 0 ? A.itemsSelected(N.length) : ""
121
- }),
122
- (w !== void 0 || T !== void 0 || v) && /* @__PURE__ */ m("div", {
123
- className: n.toolbar,
124
- children: [(w !== void 0 || T !== void 0) && /* @__PURE__ */ m("div", {
125
- className: n.heading,
126
- children: [w !== void 0 && /* @__PURE__ */ p("div", {
127
- id: je,
128
- className: n.title,
129
- children: w
130
- }), T !== void 0 && /* @__PURE__ */ p("div", {
131
- id: Me,
132
- className: n.description,
133
- children: T
134
- })]
135
- }), v && /* @__PURE__ */ p("input", {
136
- type: "search",
137
- className: n.search,
138
- "aria-label": A.search,
139
- placeholder: A.search,
140
- value: F.value,
141
- onChange: (e) => {
142
- F.value = e.target.value, I.value = 1;
143
- }
144
- })]
145
- }),
146
- Pe && /* @__PURE__ */ m("div", {
147
- className: n.batchBar,
148
- children: [/* @__PURE__ */ p("span", {
149
- className: n.batchCount,
150
- children: A.itemsSelected(N.length)
151
- }), /* @__PURE__ */ p("div", {
152
- className: n.batchActions,
153
- children: x.map((t, n) => /* @__PURE__ */ p(e, {
154
- size: "sm",
155
- variant: "secondary",
156
- onClick: () => t.onClick(N),
157
- children: t.label
158
- }, t.id ?? `${n}-${t.label}`))
159
- })]
160
- }),
161
- /* @__PURE__ */ p("div", {
162
- ref: D ? z : void 0,
163
- className: s(n.scroller, D && n.scrollerVirtualized),
164
- children: /* @__PURE__ */ m("table", {
165
- className: n.table,
166
- "aria-labelledby": w === void 0 ? void 0 : je,
167
- "aria-describedby": T === void 0 ? void 0 : Me,
168
- "aria-busy": C || void 0,
169
- "aria-rowcount": D ? q.length : void 0,
170
- onKeyDown: Ce,
171
- children: [
172
- /* @__PURE__ */ m("colgroup", { children: [
173
- S && /* @__PURE__ */ p("col", { className: n.controlCol }),
174
- b && /* @__PURE__ */ p("col", { className: n.controlCol }),
175
- g.map((e) => /* @__PURE__ */ p("col", { style: e.width !== void 0 || e.minWidth !== void 0 ? {
176
- ...e.width === void 0 ? {} : { width: e.width },
177
- ...e.minWidth === void 0 ? {} : { minWidth: e.minWidth }
178
- } : void 0 }, e.key))
179
- ] }),
180
- /* @__PURE__ */ p("thead", { children: /* @__PURE__ */ m("tr", { children: [
181
- S && /* @__PURE__ */ p("th", {
182
- scope: "col",
183
- className: n.controlCell,
184
- children: /* @__PURE__ */ p("span", {
185
- className: n.srOnly,
186
- children: A.expandRow
187
- })
188
- }),
189
- b && /* @__PURE__ */ p("th", {
190
- scope: "col",
191
- className: n.controlCell,
192
- children: b.mode === "multi" ? /* @__PURE__ */ p(t, {
193
- "aria-label": A.selectAll,
194
- checked: J,
195
- indeterminate: De && !J,
196
- onChange: ke
197
- }) : /* @__PURE__ */ p("span", {
198
- className: n.srOnly,
199
- children: A.selectRow
200
- })
201
- }),
202
- g.map((e) => {
203
- let t = j.value?.key === e.key ? j.value.direction : void 0, r = t === "asc" ? "ascending" : t === "desc" ? "descending" : "none";
204
- return /* @__PURE__ */ p("th", {
205
- scope: "col",
206
- "data-align": e.align ?? "start",
207
- "data-sized": e.width !== void 0 || void 0,
208
- "aria-sort": e.sortable ? r : void 0,
209
- children: e.sortable ? /* @__PURE__ */ p("button", {
210
- type: "button",
211
- className: n.sortButton,
212
- "data-state": r,
213
- onClick: () => Se(e.key),
214
- children: e.header
215
- }) : e.header
216
- }, e.key);
217
- })
218
- ] }) }),
219
- /* @__PURE__ */ m("tbody", { children: [
220
- C && Array.from({ length: 5 }, (e, t) => /* @__PURE__ */ p("tr", {
221
- className: n.row,
222
- children: Array.from({ length: Z }, (e, t) => /* @__PURE__ */ p("td", { children: /* @__PURE__ */ p("span", {
223
- className: n.shimmer,
224
- "aria-hidden": "true"
225
- }) }, t))
226
- }, t)),
227
- !C && q.length === 0 && /* @__PURE__ */ p("tr", {
228
- "data-empty-row": !0,
229
- children: /* @__PURE__ */ p("td", {
230
- colSpan: Z,
231
- className: n.emptyCell,
232
- children: fe ?? A.empty
233
- })
234
- }),
235
- !C && D && X > 0 && /* @__PURE__ */ p("tr", {
236
- "aria-hidden": "true",
237
- style: { height: X * O }
238
- }),
239
- !C && Y.map((e, i) => {
240
- let a = D ? X + i : i, o = N.includes(e.id), s = Ee.has(e.id);
241
- return /* @__PURE__ */ m(r, { children: [/* @__PURE__ */ m("tr", {
242
- className: n.row,
243
- "data-parity": a % 2 == 0 ? "even" : "odd",
244
- "data-state": o ? "selected" : void 0,
245
- "aria-rowindex": D ? X + i + 1 : void 0,
246
- children: [
247
- S && /* @__PURE__ */ p("td", {
248
- className: n.controlCell,
249
- children: /* @__PURE__ */ p("button", {
250
- type: "button",
251
- className: n.expandButton,
252
- "aria-expanded": s,
253
- "aria-label": A.expandRow,
254
- "data-state": s ? "open" : "closed",
255
- onClick: () => Te(e.id),
256
- children: /* @__PURE__ */ p("span", {
257
- className: n.chevron,
258
- "aria-hidden": "true"
259
- })
260
- })
261
- }),
262
- b && /* @__PURE__ */ p("td", {
263
- className: n.controlCell,
264
- children: /* @__PURE__ */ p(t, {
265
- "aria-label": A.selectRow,
266
- checked: o,
267
- onChange: () => we(e.id)
268
- })
269
- }),
270
- g.map((t) => /* @__PURE__ */ p("td", {
271
- "data-align": t.align ?? "start",
272
- "data-sized": t.width !== void 0 || void 0,
273
- children: t.render ? t.render(e.row) : String(h(e.row, t.key) ?? "")
274
- }, t.key))
275
- ]
276
- }), S && /* @__PURE__ */ p("tr", {
277
- className: n.expansionRow,
278
- "data-state": s ? "open" : "closed",
279
- children: /* @__PURE__ */ p("td", {
280
- colSpan: Z,
281
- children: /* @__PURE__ */ p("div", {
282
- className: n.expansionGrid,
283
- "data-state": s ? "open" : "closed",
284
- children: /* @__PURE__ */ p("div", {
285
- className: n.expansionInner,
286
- children: S(e.row)
287
- })
288
- })
289
- })
290
- })] }, e.id);
291
- }),
292
- !C && D && Oe < q.length && /* @__PURE__ */ p("tr", {
293
- "aria-hidden": "true",
294
- style: { height: (q.length - Oe) * O }
295
- }),
296
- Ae > 0 && /* @__PURE__ */ p("tr", {
297
- "aria-hidden": "true",
298
- "data-filler-row": !0,
299
- children: /* @__PURE__ */ p("td", {
300
- colSpan: Z,
301
- style: {
302
- blockSize: `calc(var(--_row-height) * ${Ae})`,
303
- padding: 0
304
- }
305
- })
306
- })
307
- ] })
308
- ]
309
- })
310
- }),
311
- y && /* @__PURE__ */ m("div", {
312
- className: n.footer,
313
- children: [
314
- y.pageSizeOptions && /* @__PURE__ */ m("label", {
315
- className: n.pageSize,
316
- children: [/* @__PURE__ */ p("span", { children: "Rows per page" }), /* @__PURE__ */ p("select", {
317
- value: L.value,
318
- onChange: (e) => {
319
- L.value = Number(e.target.value), I.value = 1;
320
- },
321
- children: y.pageSizeOptions.map((e) => /* @__PURE__ */ p("option", {
322
- value: e,
323
- children: e
324
- }, e))
325
- })]
326
- }),
327
- /* @__PURE__ */ m("span", {
328
- className: n.range,
329
- children: [
330
- $,
331
- "–",
332
- Ne,
333
- " of ",
334
- Q
335
- ]
336
- }),
337
- /* @__PURE__ */ m("div", {
338
- className: n.pageButtons,
339
- children: [/* @__PURE__ */ p("button", {
340
- type: "button",
341
- className: n.pageButton,
342
- "aria-label": A.previousPage,
343
- disabled: W.value <= 1,
344
- onClick: () => {
345
- I.value = W.value - 1;
346
- },
347
- children: /* @__PURE__ */ p("span", {
348
- "aria-hidden": "true",
349
- children: "‹"
350
- })
351
- }), /* @__PURE__ */ p("button", {
352
- type: "button",
353
- className: n.pageButton,
354
- "aria-label": A.nextPage,
355
- disabled: W.value >= ye.value,
356
- onClick: () => {
357
- I.value = W.value + 1;
358
- },
359
- children: /* @__PURE__ */ p("span", {
360
- "aria-hidden": "true",
361
- children: "›"
362
- })
363
- })]
364
- })
365
- ]
366
- })
367
- ]
368
- });
369
- }
370
- //#endregion
371
- export { g 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 oe,stickyOffsets as se,toggleColumnHidden as ce}from"./column-layout.js";import{moveGridFocus as le}from"./grid-keys.js";import{aggregate as u,groupItems as ue,headerSpans as de}from"./row-group.js";import{createRowSearch as fe}from"./row-search.js";import{downloadCsv as pe,toCsv as me}from"./to-csv.js";import{sortRowsBy as he}from"./row-sort.js";import{computeWindow as ge,scrollTopForRow as _e}from"./virtual-window.js";import{Fragment as ve,useId as ye,useRef as d}from"react";import{batch as f,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 Te(e,t){let n=e.aggregate;if(n===void 0)return null;if(typeof n==`function`)return n(t);let r=u(t.map(t=>S(t,e.key)),n);return r===void 0?null:n===`count`?v(r):v(r,{maximumFractionDigits:2})}var Ee=new Map;function De(e){let t=Ee.get(e);return t||(t=xe(`cascivo.data-table.${e}`,{columnState:{}}),Ee.set(e,t)),t}var Oe=new Set;function ke(){return globalThis.process?.env?.NODE_ENV!==`production`}var Ae=new Set;function je(e,t,n){if(!ke())return;let r=e.scrollWidth-e.clientWidth;if(r<=1)return;let i=`${n}:${e.clientWidth}`;Ae.has(i)||(Ae.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 Me(e,t,n){ke()&&(e!==void 0||t!==void 0||Oe.has(n)||(Oe.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 S(e,t){return e[t]}function Ne({columns:u,rows:xe,getRowId:v,sort:Ee,defaultSort:Oe,sortMode:ke=`client`,onSortChange:Ae,searchable:Ne=!1,pagination:C,selection:w,batchActions:Pe,renderExpandedRow:T,filters:Fe,defaultFilters:Ie,onFiltersChange:Le,noResultsState:Re,toolbar:ze,rowActions:E,columnState:Be,defaultColumnState:Ve,onColumnStateChange:He,columnSettings:D,server:O,multiSort:Ue=!1,stateKey:We,keyboardNavigation:Ge=`row`,onCellEdit:Ke,groupBy:qe,totals:Je=!1,pinnedRows:Ye,columnGroups:Xe,exportable:Ze=!1,density:Qe=`normal`,zebra:$e=!1,stickyHeader:et=!1,loading:k=!1,emptyState:tt,title:A,ariaLabel:nt,description:rt,labels:j,className:it,virtualized:M=!1,rowHeight:at,windowSize:ot,overscan:st=3}){Se();let ct=ye(),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)},[lt]=m({value:xe}),[ut]=m({value:u}),dt=We===void 0?void 0:De(We),[P,ft]=m({value:Ee,defaultValue:dt?.value.sort??Oe}),[pt]=m({value:(typeof qe==`string`?[qe]:qe??[]).join(we)}),mt=h(new Set),ht=h([]),F=w?.selected??ht.value,gt=e=>{w?.selected===void 0&&(ht.value=e),w?.onChange?.(e)},_t=h(``),[vt,I]=m({value:C?.page,defaultValue:1,onChange:C?.onPageChange}),[yt,bt]=m({value:Fe,defaultValue:Ie??{},onChange:Le}),[L,R]=m({value:Be,defaultValue:dt?.value.columnState??Ve??{},onChange:He});g(()=>{let e={columnState:L.value};P.value&&(e.sort=P.value),dt&&(dt.value=e)});let xt=p(()=>re(ut.value,L.value)),z=d(null),St=h([]);g(()=>{let e=L.value.pinned;if(!e||Object.keys(e).length===0)return;let t=V.current;if(!t||typeof ResizeObserver>`u`)return;let n=()=>{let e=t.querySelector(`thead tr:not([data-group-header])`);e&&(St.value=Array.from(e.children,e=>e.getBoundingClientRect().width))};n();let r=new ResizeObserver(n);r.observe(t);let i=t.querySelector(`table`);return i&&r.observe(i),()=>r.disconnect()});let Ct=h(null);g(()=>{let e=Ct.value;if(!e)return;let t=z.current?getComputedStyle(z.current).direction===`rtl`:!1,n=n=>{let r=(n.clientX-e.startX)*(t?-1:1);R(oe(L.value,e.key,e.startWidth+r))},r=()=>{Ct.value=null};return window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),()=>{window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r)}});let B=h(C?.pageSize??0),wt=h(new Set),Tt=Ge===`grid`,Et=h({row:-1,col:0}),Dt=d(!1),V=d(null),Ot=h(0),kt=h(0),At=h(0);g(()=>{let e=V.current;if(!e||typeof ResizeObserver>`u`)return;let t=u.filter(e=>e.width!==void 0).map(e=>e.key),n=u.map(e=>e.key).join(`,`),r=0,i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=requestAnimationFrame(()=>{je(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=V.current;if(!e)return;let t=()=>{Ce(()=>{Ot.value=e.scrollTop})};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)}),g(()=>{if(!M)return;let e=V.current;if(!e||typeof ResizeObserver>`u`)return;let t=()=>{kt.value=e.clientHeight;let t=e.querySelector(`tbody tr[aria-rowindex]`)?.getBoundingClientRect().height??0;t>0&&(At.value=t)};t();let n=new ResizeObserver(t);n.observe(e);let r=e.querySelector(`table`);return r&&n.observe(r),()=>n.disconnect()});let jt=p(()=>(xt.value,lt.value.map((e,t)=>({row:e,id:v?v(e):String(t)})))),Mt=p(()=>{let e=P.value;return!e||ke===`server`||O?jt.value:he(jt.value,[e,...e.thenBy??[]].map(e=>({keyOf:t=>S(t.row,e.key),direction:e.direction})))}),Nt=p(()=>O?Mt.value:c(Mt.value,yt.value,(e,t)=>S(e.row,t))),Pt=p(()=>{let e=xt.value;return fe(t=>{if(t.haystack===void 0){let n=``;for(let r of e)n+=String(S(t.row,r.key)??``)+`\0`;t.haystack=n.toLowerCase()}return t.haystack})});g(()=>{if(!Ne)return;let e=jt.value,t=Pt.value,n=typeof requestIdleCallback==`function`,r,i=0,a=()=>{i=t.prime(e,i,2e4),i<e.length&&o()},o=()=>{r=n?requestIdleCallback(a,{timeout:500}):setTimeout(a,16)};return o(),()=>{n?cancelIdleCallback(r):clearTimeout(r)}});let Ft=p(()=>{if(O)return Mt.value;let e=_t.value.trim().toLowerCase();return e?Pt.value.filter(Nt.value,e):Nt.value}),It=p(()=>{let e=pt.value===``?[]:pt.value.split(we);return e.length===0?Ft.value:ue(Ft.value,e,(e,t)=>S(e.row,t),mt.value)}),Lt=p(()=>C?Math.max(1,Math.ceil(It.value.length/B.value)):1),Rt=p(()=>Math.min(vt.value,Lt.value)),zt=p(()=>{if(!C||O)return It.value;let e=(Rt.value-1)*B.value;return It.value.slice(e,e+B.value)}),Bt=p(()=>pt.value===``?zt.value:zt.value.filter(e=>e.group===void 0)),Vt=p(()=>{let e=new Map,t=ut.value.filter(e=>e.aggregate!==void 0);if(t.length===0)return e;let n=Ft.value.map(e=>e.row);for(let r of t)e.set(r.key,Te(r,n));return e}),Ht=d(O);Ht.current=O;let Ut=d(!1);g(()=>{let e={sort:P.value,search:_t.value.trim(),filters:yt.value,page:vt.value,pageSize:B.value};if(!Ut.current){Ut.current=!0;return}Ht.current?.onQueryChange(e)});let Wt=(e,t)=>{let n={...yt.value};t&&te(t)?n[e]=t:delete n[e],f(()=>{bt(n),I(1)})},Gt=()=>f(()=>{bt({}),I(1)}),Kt=e=>R(ce(ut.value,L.value,e)),qt=(e,t)=>{let n=L.value,r=z.current?getComputedStyle(z.current).direction===`rtl`:!1;switch(t){case`sort-asc`:return $t({key:e.key,direction:`asc`});case`sort-desc`:return $t({key:e.key,direction:`desc`});case`sort-clear`:return $t(void 0);case`move-left`:return R(ie(ut.value,n,e.key,r?1:-1));case`move-right`:return R(ie(ut.value,n,e.key,r?-1:1));case`pin-start`:return R(ae(n,e.key,`start`));case`pin-end`:return R(ae(n,e.key,`end`));case`unpin`:return R(ae(n,e.key,null));case`hide`:return Kt(e.key);default:return}},Jt=h(null),Yt=d(null),Xt=()=>{let e=jt.value;return Yt.current?.entries!==e&&(Yt.current={entries:e,facets:new Map,extents:new Map}),Yt.current},Zt=e=>{let t=Xt(),n=t.facets.get(e);return n||(n=ee(t.entries,t=>S(t.row,e)),t.facets.set(e,n)),n},Qt=e=>{let t=Xt();return t.extents.has(e)||t.extents.set(e,ne(t.entries,t=>S(t.row,e))),t.extents.get(e)},$t=e=>{f(()=>{ft(e),I(1)}),Ae?.(e)},en=(e,t=!1)=>{let n=P.value;if(t&&Ue&&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 $t({...n,thenBy:i})}let r;r=!n||n.key!==e?{key:e,direction:`asc`}:n.direction===`asc`?{key:e,direction:`desc`}:void 0,$t(r)},tn=e=>{let t=P.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}},nn=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 i=e=>e.closest(`tr`),a;if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=n[r+(e.key===`ArrowRight`?1:-1)];t&&i(t)===i(n[r])&&(a=t)}else{let t=e.key===`ArrowDown`?1:-1,o=n[r];for(let e=r+t;e>=0&&e<n.length;e+=t)if(i(n[e])!==i(o)){a=n[e];break}}a?.focus()},rn=d(null);rn.current?.ids!==F&&(rn.current={ids:F,set:new Set(F)});let H=rn.current.set,an=e=>{let t=F;w?.mode===`single`?gt(H.has(e)?[]:[e]):gt(H.has(e)?t.filter(t=>t!==e):[...t,e])},on=e=>{let t=new Set(wt.value);t.has(e)?t.delete(e):t.add(e),wt.value=t},U=zt.value,W=Bt.value,sn=wt.value,cn=d(null);(cn.current?.page!==W||cn.current.set!==H)&&(cn.current={page:W,set:H,all:W.length>0&&W.every(e=>H.has(e.id)),some:W.some(e=>H.has(e.id))});let ln=cn.current.all,un=cn.current.some,dn=at??(At.value>0?At.value:40),fn=ot===void 0?kt.value>0?kt.value:20*dn:ot*dn,G=M?ge({scrollTop:Ot.value,viewportHeight:fn,rowHeight:dn,count:U.length,overscan:st}):void 0,pn=G?U.slice(G.start,G.end):U,mn=G?.start??0,hn=()=>{if(ln){let e=new Set(W.map(e=>e.id));gt(F.filter(t=>!e.has(t)))}else{let e=new Set(F);for(let t of W)e.add(t.id);gt([...e])}},K=xt.value,q=L.value,gn=new Set(q.hidden??[]),_n=D?.visibility===!0,vn=D!==void 0&&(D.reorderable===!0||D.pinnable===!0||D.visibility===!0),yn=D?.resizable===!0,bn=Object.keys(q.widths??{}).length>0,J=q.pinned??{},Y=+!!T+ +!!w,xn=K.some(e=>J[e.key]===`start`),Sn=K.some(e=>J[e.key]===`end`),X=[...Array.from({length:Y},()=>xn?`start`:void 0),...K.map(e=>J[e.key]),...E?[Sn?`end`:void 0]:[]],Cn=St.value,wn=Cn.length===X.length?se(Cn,X):X.map(()=>void 0),Tn=X.lastIndexOf(`start`),En=X.indexOf(`end`),Z=e=>{let t=X[e];if(!t)return{};let n=wn[e];return{"data-pinned":t,"data-pinned-edge":e===Tn||e===En?!0:void 0,style:n===void 0?void 0:t===`start`?{insetInlineStart:n}:{insetInlineEnd:n}}},Dn=Math.min(Et.value.row,U.length-1),On={row:Dn,col:U[Dn]?.group?Y:Math.min(Et.value.col,X.length-1)},kn=e=>{e&&Dt.current&&(Dt.current=!1,e.focus())},Q=(e,t)=>{if(!Tt||e===void 0)return{};let n=On.row===e&&On.col===t;return{tabIndex:n?0:-1,"data-cell":`${e},${t}`,ref:n?kn:void 0,onFocus:()=>{n||(Et.value={row:e,col:t})}}},$=Tt?{tabIndex:-1}:{},An=Math.max(1,Math.floor(fn/dn)),jn=e=>{if(Dt.current=!0,Et.value=e,G&&e.row>=0&&(e.row<G.start||e.row>=G.end)){let t=V.current;t&&(t.scrollTop=_e(e.row,{viewportHeight:fn,rowHeight:dn,count:U.length,overscan:st}))}},Mn=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=le({row:r,col:i},e.key,{rowCount:U.length,colCount:X.length,pageRows:An},e.ctrlKey||e.metaKey);a&&(e.preventDefault(),jn(U[a.row]?.group?{row:a.row,col:Y}:a))},Nn=()=>{pe(me(Ft.value.map(e=>e.row),K.map(e=>({key:e.key,header:e.header})),S),(typeof Ze==`object`?Ze.filename:void 0)??A??`export`)},Pn=e=>{let t=new Set(mt.value);t.has(e)?t.delete(e):t.add(e),mt.value=t},Fn=d(new WeakMap),In=(e,t)=>(e??[]).map((e,n)=>({row:e,id:v?v(e):`${t}-${n}`})),Ln=In(Ye?.top,`pinned-top`),Rn=In(Ye?.bottom,`pinned-bottom`),zn=e=>{let t=[];if(e.sortable&&(t.push({id:`sort-asc`,label:N.sortAscending},{id:`sort-desc`,label:N.sortDescending}),P.value?.key===e.key&&t.push({id:`sort-clear`,label:N.clearSort})),D?.reorderable){let n=K.filter(t=>J[t.key]===J[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(D?.pinnable){let n=J[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 D?.visibility&&t.push({id:`hide`,label:N.hideColumn,disabled:K.length===1}),t},Bn=(e,t)=>{let n=z.current?getComputedStyle(z.current).direction===`rtl`:!1,r=t.shiftKey?64:16,i=n?`ArrowLeft`:`ArrowRight`,a=n?`ArrowRight`:`ArrowLeft`,o=q.widths?.[e.key]??(t.currentTarget.parentElement?.getBoundingClientRect().width||0);if(t.key===i)R(oe(q,e.key,o+r));else if(t.key===a)R(oe(q,e.key,o-r));else if(t.key===`Home`)R(oe(q,e.key,void 0));else return;t.preventDefault()},Vn=l(yt.value),Hn=K.some(e=>e.filter!==void 0),Un=K.length+ +!!w+ +!!T+ +!!E,Wn=(_t.value.trim()!==``||Vn>0)&&(O?!0:xe.length>0),Gn=O?O.totalItems??xe.length:It.value.length,Kn=C?Math.max(1,Math.ceil(Gn/B.value)):1,qn=Math.min(vt.value,Kn),Jn=C&&!M&&pn.length>0?Math.max(0,B.value-pn.length):0;Me(A,nt,u.map(e=>e.key).join(`,`));let Yn=`${ct}-title`,Xn=`${ct}-description`,Zn=Gn===0?0:(qn-1)*B.value+1,Qn=Gn===0?0:Zn+U.length-1,$n=!!Pe&&Pe.length>0&&F.length>0,er=n=>{let r=yt.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=>Wt(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=Qt(n.key),a=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=a(e.target.value);i!==void 0&&!Number.isNaN(i)&&(r.min=i),t!==void 0&&(r.max=t),Wt(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=a(t.target.value);i!==void 0&&!Number.isNaN(i)&&(r.max=i),Wt(n.key,r)}})]})}case`select`:{let l=r?.kind===`select`?r.values:[],ee=Jt.value===n.key;return x(i,{placement:`bottom`,open:ee,onOpenChange:e=>{Jt.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&&Zt(n.key).map(e=>{let r=l.includes(e.value);return b(t,{label:`${e.value===``?`—`:e.value} (${e.count})`,checked:r,onChange:()=>Wt(n.key,{kind:`select`,values:r?l.filter(t=>t!==e.value):[...l,e.value]})},e.value)})})]})}default:return null}},tr=(e,i,a,o)=>{let c=H.has(e.id),l=sn.has(e.id);return x(ve,{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:[T&&b(`td`,{className:s.controlCell,...Z(0),...Q(a,0),children:b(`button`,{type:`button`,className:s.expandButton,"aria-expanded":l,"aria-label":N.expandRow,"data-state":l?`open`:`closed`,onClick:()=>on(e.id),...$,children:b(`span`,{className:s.chevron,"aria-hidden":`true`})})}),w&&b(`td`,{className:s.controlCell,...Z(+!!T),...Q(a,+!!T),children:b(t,{"aria-label":N.selectRow,checked:c,onChange:()=>an(e.id),...$})}),K.map((t,n)=>{let i=Ke!==void 0&&t.editable&&!t.render;return b(`td`,{"data-align":t.align??`start`,"data-sized":t.width!==void 0||q.widths?.[t.key]!==void 0||void 0,"data-editable":i||void 0,...Z(Y+n),...Q(a,Y+n),children:t.render?t.render(e.row):i?b(r,{value:String(S(e.row,t.key)??``),onValueChange:n=>Ke(e.row,t.key,n),"aria-label":N.editCell(t.header),...$}):String(S(e.row,t.key)??``)},t.key)}),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length),...Q(a,Y+K.length),children:(()=>{let t=E(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),...$})})()})]}),T&&b(`tr`,{className:s.expansionRow,"data-state":l?`open`:`closed`,children:b(`td`,{colSpan:Un,children:b(`div`,{className:s.expansionGrid,"data-state":l?`open`:`closed`,children:b(`div`,{className:s.expansionInner,children:T(e.row)})})})})]},e.id)},nr=(e,t)=>{let{group:n}=e,r=Fn.current.get(e);r||(r=new Map,Fn.current.set(e,r));let i=r,a,o=t=>t.aggregate===void 0?null:(i.has(t.key)||(a??=e.leaves.map(e=>e.row),i.set(t.key,Te(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:[T&&b(`td`,{className:s.controlCell,...Z(0)}),w&&b(`td`,{className:s.controlCell,...Z(+!!T)}),K.map((e,r)=>b(`td`,{"data-align":r===0?`start`:e.align??`start`,...Z(Y+r),...Q(r===0?t:void 0,Y+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:()=>Pn(n.key),...$,children:[b(`span`,{className:s.chevron,"aria-hidden":`true`}),b(`span`,{children:String(n.value??``)||`—`}),x(`span`,{className:s.groupCount,children:[`(`,n.count,`)`]})]}):o(e)},e.key)),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length)})]},e.id)};return x(`div`,{ref:z,className:be(s.root,it),"data-density":Qe,"data-resized":bn||void 0,"data-zebra":$e||void 0,"data-sticky-header":et||void 0,"data-paginated":C?!0:void 0,"data-fixed-layout":K.every(e=>e.width!==void 0)||void 0,children:[b(`span`,{"aria-live":`polite`,className:s.srOnly,children:F.length>0?N.itemsSelected(F.length):``}),(A!==void 0||rt!==void 0||Ne||ze!==void 0||_n||Ze!==!1||Vn>0)&&x(`div`,{className:s.toolbar,children:[(A!==void 0||rt!==void 0)&&x(`div`,{className:s.heading,children:[A!==void 0&&b(`div`,{id:Yn,className:s.title,children:A}),rt!==void 0&&b(`div`,{id:Xn,className:s.description,children:rt})]}),x(`div`,{className:s.toolbarActions,children:[Ne&&b(`input`,{type:`search`,className:s.search,"aria-label":N.search,placeholder:N.search,value:_t.value,onChange:e=>{f(()=>{_t.value=e.target.value,I(1)})}}),Vn>0&&x(e,{size:`sm`,variant:`ghost`,onClick:Gt,children:[N.clearFilters,` (`,Vn,`)`]}),Ze!==!1&&b(e,{size:`sm`,variant:`secondary`,onClick:Nn,children:N.exportCsv}),ze,_n&&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:u.map(e=>{let n=!gn.has(e.key);return b(t,{label:e.header,checked:n,disabled:n&&K.length===1,onChange:()=>Kt(e.key)},e.key)})})]})]})]}),$n&&x(`div`,{className:s.batchBar,children:[b(`span`,{className:s.batchCount,children:N.itemsSelected(F.length)}),b(`div`,{className:s.batchActions,children:Pe.map((t,n)=>b(e,{size:`sm`,variant:`secondary`,onClick:()=>t.onClick(F),children:t.label},t.id??`${n}-${t.label}`))})]}),b(`div`,{ref:V,className:be(s.scroller,M&&s.scrollerVirtualized),children:x(`table`,{className:s.table,"aria-labelledby":A===void 0?void 0:Yn,"aria-label":A===void 0?nt:void 0,"aria-describedby":rt===void 0?void 0:Xn,"aria-busy":k||void 0,role:Tt?`grid`:void 0,"aria-rowcount":M?U.length:void 0,onKeyDown:Tt?Mn:nn,children:[x(`colgroup`,{children:[T&&b(`col`,{className:s.controlCol}),w&&b(`col`,{className:s.controlCol}),K.map(e=>{let t=q.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)}),E&&b(`col`,{className:s.controlCol})]}),x(`thead`,{children:[Xe&&x(`tr`,{"data-group-header":!0,children:[Y>0&&b(`th`,{colSpan:Y,className:s.controlCell}),de(K.map(e=>e.key),Xe).map((e,t)=>b(`th`,{scope:`colgroup`,colSpan:e.span,className:s.groupHeader,children:e.header},t)),E&&b(`th`,{className:s.controlCell})]}),x(`tr`,{children:[T&&b(`th`,{scope:`col`,className:s.controlCell,...Z(0),...Q(-1,0),children:b(`span`,{className:s.srOnly,children:N.expandRow})}),w&&b(`th`,{scope:`col`,className:s.controlCell,...Z(+!!T),...Q(-1,+!!T),children:w.mode===`multi`?b(t,{"aria-label":N.selectAll,checked:ln,indeterminate:un&&!ln,onChange:hn,...$}):b(`span`,{className:s.srOnly,children:N.selectRow})}),K.map((e,t)=>{let r=tn(e.key),i=r?.direction,a=i===`asc`?`ascending`:i===`desc`?`descending`:`none`,o=r!==void 0&&(P.value?.thenBy?.length??0)>0,c=q.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,...Z(Y+t),...Q(-1,Y+t),children:[x(`span`,{className:s.headerInner,children:[e.sortable?x(`button`,{type:`button`,className:s.sortButton,"data-state":a,onClick:t=>en(e.key,t.shiftKey),...$,children:[e.header,o&&b(`sup`,{className:s.sortIndex,"aria-hidden":`true`,children:r.index+1})]}):e.header,vn&&b(n,{size:`sm`,ariaLabel:N.columnMenu(e.header),items:zn(e),onSelect:t=>qt(e,t),...$})]}),yn&&b(`span`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":N.resizeColumn(e.header),"aria-valuenow":c,tabIndex:Tt?-1:0,className:s.resizeHandle,"data-state":Ct.value?.key===e.key?`resizing`:void 0,onKeyDown:t=>Bn(e,t),onDoubleClick:()=>R(oe(q,e.key,void 0)),onPointerDown:t=>{t.preventDefault();let n=t.currentTarget.parentElement;Ct.value={key:e.key,startX:t.clientX,startWidth:n?n.getBoundingClientRect().width:0}}})]},e.key)}),E&&b(`th`,{scope:`col`,className:s.controlCell,...Z(Y+K.length),...Q(-1,Y+K.length),children:b(`span`,{className:s.srOnly,children:N.actions})})]}),Hn&&x(`tr`,{className:s.filterRow,children:[T&&b(`th`,{...Z(0)}),w&&b(`th`,{...Z(+!!T)}),K.map((e,t)=>b(`th`,{"data-align":e.align??`start`,...Z(Y+t),children:e.filter!==void 0&&er(e)},e.key)),E&&b(`th`,{...Z(Y+K.length)})]})]}),x(`tbody`,{children:[k&&Array.from({length:5},(e,t)=>b(`tr`,{className:s.row,children:Array.from({length:Un},(e,t)=>b(`td`,{children:b(`span`,{className:s.shimmer,"aria-hidden":`true`})},t))},t)),!k&&Ln.map((e,t)=>tr(e,t,void 0,`top`)),!k&&U.length===0&&b(`tr`,{"data-empty-row":!0,children:b(`td`,{colSpan:Un,className:s.emptyCell,children:Wn?Re??N.noResults:tt??N.empty})}),!k&&G&&G.topPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:G.topPad}}),!k&&pn.map((e,t)=>{let n=M?mn+t:t;return e.group?nr(e,n):tr(e,n,n)}),!k&&G&&G.bottomPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:G.bottomPad}}),Jn>0&&b(`tr`,{"aria-hidden":`true`,"data-filler-row":!0,children:b(`td`,{colSpan:Un,style:{blockSize:`calc(var(--_row-height) * ${Jn})`,padding:0}})}),!k&&Rn.map((e,t)=>tr(e,t,void 0,`bottom`))]}),Je&&b(`tfoot`,{className:s.totals,children:x(`tr`,{"data-totals-row":!0,children:[T&&b(`td`,{className:s.controlCell,...Z(0)}),w&&b(`td`,{className:s.controlCell,...Z(+!!T)}),K.map((e,t)=>x(`td`,{"data-align":e.align??`start`,...Z(Y+t),children:[t===0&&b(`span`,{className:e.aggregate===void 0?void 0:s.srOnly,children:N.totals}),Vt.value.get(e.key)]},e.key)),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length)})]})})]})}),C&&x(`div`,{className:s.footer,children:[C.pageSizeOptions&&x(`label`,{className:s.pageSize,children:[b(`span`,{children:`Rows per page`}),b(`select`,{value:B.value,onChange:e=>{f(()=>{B.value=Number(e.target.value),I(1)})},children:C.pageSizeOptions.map(e=>b(`option`,{value:e,children:e},e))})]}),x(`span`,{className:s.range,children:[Zn,`–`,Qn,` of `,Gn]}),x(`div`,{className:s.pageButtons,children:[b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.previousPage,disabled:qn<=1,onClick:()=>I(qn-1),children:b(`span`,{"aria-hidden":`true`,children:`‹`})}),b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.nextPage,disabled:qn>=Kn,onClick:()=>I(qn+1),children:b(`span`,{"aria-hidden":`true`,children:`›`})})]})]})]})}export{Ne as DataTable};
@@ -1,34 +1,2 @@
1
1
  import './data-table.css';
2
- var e = {
3
- root: "_root_bwapn_2",
4
- toolbar: "_toolbar_bwapn_26",
5
- heading: "_heading_bwapn_35",
6
- title: "_title_bwapn_41",
7
- description: "_description_bwapn_47",
8
- search: "_search_bwapn_52",
9
- batchBar: "_batchBar_bwapn_79",
10
- batchCount: "_batchCount_bwapn_89",
11
- batchActions: "_batchActions_bwapn_95",
12
- scroller: "_scroller_bwapn_101",
13
- scrollerVirtualized: "_scrollerVirtualized_bwapn_111",
14
- table: "_table_bwapn_117",
15
- row: "_row_bwapn_199",
16
- controlCol: "_controlCol_bwapn_219",
17
- controlCell: "_controlCell_bwapn_223",
18
- sortButton: "_sortButton_bwapn_229",
19
- emptyCell: "_emptyCell_bwapn_277",
20
- expansionRow: "_expansionRow_bwapn_284",
21
- expansionGrid: "_expansionGrid_bwapn_290",
22
- expansionInner: "_expansionInner_bwapn_294",
23
- expandButton: "_expandButton_bwapn_299",
24
- chevron: "_chevron_bwapn_322",
25
- shimmer: "_shimmer_bwapn_337",
26
- footer: "_footer_bwapn_364",
27
- pageSize: "_pageSize_bwapn_374",
28
- range: "_range_bwapn_400",
29
- pageButtons: "_pageButtons_bwapn_405",
30
- pageButton: "_pageButton_bwapn_405",
31
- srOnly: "_srOnly_bwapn_446"
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 e(e,t,n,r=!1){let i=n.rowCount-1,a=n.colCount-1,o=e=>Math.max(-1,Math.min(i,e)),s=e=>Math.max(0,Math.min(a,e));switch(t){case`ArrowDown`:return{row:o(e.row+1),col:e.col};case`ArrowUp`:return{row:o(e.row-1),col:e.col};case`ArrowRight`:return{row:e.row,col:s(e.col+1)};case`ArrowLeft`:return{row:e.row,col:s(e.col-1)};case`Home`:return r?{row:o(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:o(e.row+n.pageRows),col:e.col};case`PageUp`:return{row:o(e.row-n.pageRows),col:e.col};default:return}}export{e as moveGridFocus};
@@ -0,0 +1 @@
1
+ var e=``;function t(t,n,r,i){let a=[],o=(t,s,c)=>{let l=n[s];if(l===void 0){for(let e of t)a.push(e);return}let u=new Map;for(let e of t){let t=r(e,l),n=String(t??``),i=u.get(n);i?i.rows.push(e):u.set(n,{value:t,rows:[e]})}for(let[t,n]of u){let r=`${c}${l}=${t}`,u=i.has(r);a.push({id:`group${e}${r}`,group:{key:r,column:l,value:n.value,depth:s,count:n.rows.length,collapsed:u},leaves:n.rows}),u||o(n.rows,s+1,`${r}${e}`)}};return o(t,0,``),a}function n(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 r(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{n as aggregate,t as groupItems,r as headerSpans};
@@ -0,0 +1 @@
1
+ function e(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{e as createRowSearch};
@@ -0,0 +1 @@
1
+ function e(e,n){let r=e.length;if(r<2||n.length===0)return[...e];let i=Array.from({length:r},(e,t)=>t),a=()=>i.map(t=>e[t]),o=new Intl.Collator().compare,s=[],c=[];for(let l of n){let u=Array.from({length:r}),d=!0;for(let t=0;t<r;t++){let n=l.keyOf(e[t]);u[t]=n,typeof n!=`number`&&(d=!1)}let f=l.direction===`desc`?-1:1,p=new Float64Array(r);if(d)for(let e=0;e<r;e++)p[e]=u[e];else{let e=Array.from({length:r});for(let t=0;t<r;t++)e[t]=String(u[t]??``);if(n.length===1&&t(e))return i.sort((t,n)=>{let r=o(e[t],e[n]);return r===0?t-n:f*r}),a();let s=new Map;for(let t=0;t<r;t++)s.set(e[t],0);let c=[...s.keys()].sort(o);for(let e=0;e<c.length;e++)s.set(c[e],e);for(let t=0;t<r;t++)p[t]=s.get(e[t])}s.push(p),c.push(f)}let l=s.length;return i.sort((e,t)=>{for(let n=0;n<l;n++){let r=s[n],i=r[e]-r[t];if(i!==0)return c[n]*i}return e-t}),a()}function t(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{e as sortRowsBy};
@@ -0,0 +1,3 @@
1
+ function e(e){let t=e==null?``:String(e);return/[",\r\n]/.test(t)?`"${t.replaceAll(`"`,`""`)}"`:t}function t(t,n,r){let i=[n.map(t=>e(t.header)).join(`,`)];for(let a of t)i.push(n.map(t=>e(r(a,t.key))).join(`,`));return i.join(`\r
2
+ `)+`\r
3
+ `}function n(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{n as downloadCsv,t as toCsv};
@@ -0,0 +1 @@
1
+ function e(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 t(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{e as computeWindow,t as 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}}