@simplysm/solid 13.0.75 → 13.0.76

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 (742) hide show
  1. package/README.md +4 -4
  2. package/dist/components/data/Pagination.d.ts +2 -2
  3. package/dist/components/data/Pagination.d.ts.map +1 -1
  4. package/dist/components/data/Pagination.js +7 -5
  5. package/dist/components/data/Pagination.js.map +2 -2
  6. package/dist/components/data/Table.d.ts +5 -1
  7. package/dist/components/data/Table.d.ts.map +1 -1
  8. package/dist/components/data/Table.js +64 -22
  9. package/dist/components/data/Table.js.map +2 -2
  10. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  11. package/dist/components/data/calendar/Calendar.js +10 -26
  12. package/dist/components/data/calendar/Calendar.js.map +2 -2
  13. package/dist/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
  14. package/dist/components/data/kanban/Kanban.d.ts +46 -5
  15. package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
  16. package/dist/components/data/kanban/Kanban.js +144 -119
  17. package/dist/components/data/kanban/Kanban.js.map +2 -2
  18. package/dist/components/data/list/List.d.ts.map +1 -1
  19. package/dist/components/data/list/List.js +2 -5
  20. package/dist/components/data/list/List.js.map +2 -2
  21. package/dist/components/data/list/ListItem.d.ts +7 -34
  22. package/dist/components/data/list/ListItem.d.ts.map +1 -1
  23. package/dist/components/data/list/ListItem.js +15 -20
  24. package/dist/components/data/list/ListItem.js.map +2 -2
  25. package/dist/components/data/list/ListItem.styles.d.ts +1 -1
  26. package/dist/components/data/list/ListItem.styles.d.ts.map +1 -1
  27. package/dist/components/data/list/ListItem.styles.js +8 -8
  28. package/dist/components/data/list/ListItem.styles.js.map +1 -1
  29. package/dist/components/data/sheet/DataSheet.d.ts +3 -2
  30. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  31. package/dist/components/data/sheet/DataSheet.js +677 -850
  32. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  33. package/dist/components/data/sheet/DataSheet.styles.d.ts +2 -1
  34. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  35. package/dist/components/data/sheet/DataSheet.styles.js +32 -10
  36. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  37. package/dist/components/data/sheet/DataSheetColumn.d.ts +4 -3
  38. package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
  39. package/dist/components/data/sheet/DataSheetColumn.js +4 -22
  40. package/dist/components/data/sheet/DataSheetColumn.js.map +2 -2
  41. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +1 -0
  42. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
  43. package/dist/components/data/sheet/DataSheetConfigDialog.js +19 -18
  44. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
  45. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +17 -0
  46. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -0
  47. package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +61 -0
  48. package/dist/components/data/sheet/hooks/useDataSheetExpansion.js.map +6 -0
  49. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +29 -0
  50. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -0
  51. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js +101 -0
  52. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js.map +6 -0
  53. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts +17 -0
  54. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +1 -0
  55. package/dist/components/data/sheet/hooks/useDataSheetPaging.js +32 -0
  56. package/dist/components/data/sheet/hooks/useDataSheetPaging.js.map +6 -0
  57. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts +21 -0
  58. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -0
  59. package/dist/components/data/sheet/hooks/useDataSheetReorder.js +112 -0
  60. package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +6 -0
  61. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +22 -0
  62. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -0
  63. package/dist/components/data/sheet/hooks/useDataSheetSelection.js +63 -0
  64. package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +6 -0
  65. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +17 -0
  66. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -0
  67. package/dist/components/data/sheet/hooks/useDataSheetSorting.js +45 -0
  68. package/dist/components/data/sheet/hooks/useDataSheetSorting.js.map +6 -0
  69. package/dist/components/data/sheet/sheetUtils.d.ts +2 -2
  70. package/dist/components/data/sheet/sheetUtils.d.ts.map +1 -1
  71. package/dist/components/data/sheet/sheetUtils.js +5 -5
  72. package/dist/components/data/sheet/sheetUtils.js.map +1 -1
  73. package/dist/components/data/sheet/types.d.ts +7 -8
  74. package/dist/components/data/sheet/types.d.ts.map +1 -1
  75. package/dist/components/disclosure/Collapse.d.ts.map +1 -1
  76. package/dist/components/disclosure/Collapse.js +1 -3
  77. package/dist/components/disclosure/Collapse.js.map +2 -2
  78. package/dist/components/disclosure/Dialog.d.ts +78 -20
  79. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  80. package/dist/components/disclosure/Dialog.js +251 -110
  81. package/dist/components/disclosure/Dialog.js.map +2 -2
  82. package/dist/components/disclosure/Dropdown.d.ts +6 -29
  83. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  84. package/dist/components/disclosure/Dropdown.js +60 -61
  85. package/dist/components/disclosure/Dropdown.js.map +2 -2
  86. package/dist/components/disclosure/Tabs.d.ts +1 -1
  87. package/dist/components/disclosure/Tabs.d.ts.map +1 -1
  88. package/dist/components/disclosure/Tabs.js +16 -17
  89. package/dist/components/disclosure/Tabs.js.map +2 -2
  90. package/dist/components/display/Alert.d.ts +1 -1
  91. package/dist/components/display/Alert.d.ts.map +1 -1
  92. package/dist/components/display/Alert.js +2 -4
  93. package/dist/components/display/Alert.js.map +2 -2
  94. package/dist/components/display/Barcode.d.ts.map +1 -1
  95. package/dist/components/display/Barcode.js +1 -3
  96. package/dist/components/display/Barcode.js.map +2 -2
  97. package/dist/components/display/Card.animate.css +11 -0
  98. package/dist/components/display/Card.d.ts +1 -0
  99. package/dist/components/display/Card.d.ts.map +1 -1
  100. package/dist/components/display/Card.js +3 -2
  101. package/dist/components/display/Card.js.map +2 -2
  102. package/dist/components/display/Echarts.d.ts.map +1 -1
  103. package/dist/components/display/Echarts.js +1 -3
  104. package/dist/components/display/Echarts.js.map +2 -2
  105. package/dist/components/display/Link.d.ts +1 -1
  106. package/dist/components/display/Link.d.ts.map +1 -1
  107. package/dist/components/display/Link.js +3 -4
  108. package/dist/components/display/Link.js.map +2 -2
  109. package/dist/components/display/Tag.d.ts +1 -1
  110. package/dist/components/display/Tag.d.ts.map +1 -1
  111. package/dist/components/display/Tag.js +2 -4
  112. package/dist/components/display/Tag.js.map +2 -2
  113. package/dist/components/features/address/AddressSearch.d.ts +3 -1
  114. package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
  115. package/dist/components/features/address/AddressSearch.js +3 -4
  116. package/dist/components/features/address/AddressSearch.js.map +2 -2
  117. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  118. package/dist/components/features/crud-detail/CrudDetail.js +205 -196
  119. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  120. package/dist/components/features/crud-detail/CrudDetailAfter.d.ts +5 -4
  121. package/dist/components/features/crud-detail/CrudDetailAfter.d.ts.map +1 -1
  122. package/dist/components/features/crud-detail/CrudDetailAfter.js +3 -10
  123. package/dist/components/features/crud-detail/CrudDetailAfter.js.map +2 -2
  124. package/dist/components/features/crud-detail/CrudDetailBefore.d.ts +5 -4
  125. package/dist/components/features/crud-detail/CrudDetailBefore.d.ts.map +1 -1
  126. package/dist/components/features/crud-detail/CrudDetailBefore.js +3 -10
  127. package/dist/components/features/crud-detail/CrudDetailBefore.js.map +2 -2
  128. package/dist/components/features/crud-detail/CrudDetailTools.d.ts +5 -4
  129. package/dist/components/features/crud-detail/CrudDetailTools.d.ts.map +1 -1
  130. package/dist/components/features/crud-detail/CrudDetailTools.js +3 -10
  131. package/dist/components/features/crud-detail/CrudDetailTools.js.map +2 -2
  132. package/dist/components/features/crud-detail/types.d.ts +2 -12
  133. package/dist/components/features/crud-detail/types.d.ts.map +1 -1
  134. package/dist/components/features/crud-sheet/CrudSheet.d.ts +8 -1
  135. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  136. package/dist/components/features/crud-sheet/CrudSheet.js +94 -77
  137. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  138. package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +4 -3
  139. package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
  140. package/dist/components/features/crud-sheet/CrudSheetColumn.js +4 -23
  141. package/dist/components/features/crud-sheet/CrudSheetColumn.js.map +2 -2
  142. package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts +7 -5
  143. package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts.map +1 -1
  144. package/dist/components/features/crud-sheet/CrudSheetFilter.js +4 -8
  145. package/dist/components/features/crud-sheet/CrudSheetFilter.js.map +2 -2
  146. package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts +5 -4
  147. package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts.map +1 -1
  148. package/dist/components/features/crud-sheet/CrudSheetHeader.js +3 -10
  149. package/dist/components/features/crud-sheet/CrudSheetHeader.js.map +2 -2
  150. package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +7 -5
  151. package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
  152. package/dist/components/features/crud-sheet/CrudSheetTools.js +4 -8
  153. package/dist/components/features/crud-sheet/CrudSheetTools.js.map +2 -2
  154. package/dist/components/features/crud-sheet/types.d.ts +6 -36
  155. package/dist/components/features/crud-sheet/types.d.ts.map +1 -1
  156. package/dist/components/features/data-select-button/DataSelectButton.d.ts +23 -26
  157. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  158. package/dist/components/features/data-select-button/DataSelectButton.js +25 -36
  159. package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
  160. package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
  161. package/dist/components/features/permission-table/PermissionTable.js +9 -13
  162. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  163. package/dist/components/features/shared-data/SharedDataSelect.d.ts +17 -12
  164. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  165. package/dist/components/features/shared-data/SharedDataSelect.js +57 -80
  166. package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
  167. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +12 -9
  168. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  169. package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
  170. package/dist/components/features/shared-data/SharedDataSelectList.d.ts +13 -2
  171. package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
  172. package/dist/components/features/shared-data/SharedDataSelectList.js +131 -113
  173. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  174. package/dist/components/feedback/Progress.d.ts +3 -2
  175. package/dist/components/feedback/Progress.d.ts.map +1 -1
  176. package/dist/components/feedback/Progress.js +9 -7
  177. package/dist/components/feedback/Progress.js.map +2 -2
  178. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
  179. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  180. package/dist/components/feedback/busy/BusyContainer.js +35 -32
  181. package/dist/components/feedback/busy/BusyContainer.js.map +2 -2
  182. package/dist/components/feedback/busy/BusyProvider.d.ts +26 -2
  183. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
  184. package/dist/components/feedback/busy/BusyProvider.js +13 -7
  185. package/dist/components/feedback/busy/BusyProvider.js.map +2 -2
  186. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  187. package/dist/components/feedback/notification/NotificationBanner.js +13 -19
  188. package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
  189. package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
  190. package/dist/components/feedback/notification/NotificationBell.js +69 -71
  191. package/dist/components/feedback/notification/NotificationBell.js.map +2 -2
  192. package/dist/components/feedback/notification/NotificationProvider.d.ts +68 -1
  193. package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
  194. package/dist/components/feedback/notification/NotificationProvider.js +13 -4
  195. package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
  196. package/dist/components/feedback/notification/index.d.ts +0 -1
  197. package/dist/components/feedback/notification/index.d.ts.map +1 -1
  198. package/dist/components/feedback/notification/index.js +0 -1
  199. package/dist/components/feedback/notification/index.js.map +1 -1
  200. package/dist/components/feedback/print/PrintProvider.d.ts +14 -1
  201. package/dist/components/feedback/print/PrintProvider.d.ts.map +1 -1
  202. package/dist/components/feedback/print/PrintProvider.js +15 -5
  203. package/dist/components/feedback/print/PrintProvider.js.map +2 -2
  204. package/dist/components/form-control/Button.d.ts +2 -1
  205. package/dist/components/form-control/Button.d.ts.map +1 -1
  206. package/dist/components/form-control/Button.js +9 -8
  207. package/dist/components/form-control/Button.js.map +2 -2
  208. package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
  209. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  210. package/dist/components/form-control/DropdownTrigger.styles.js +16 -16
  211. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  212. package/dist/components/form-control/ThemeToggle.d.ts +2 -1
  213. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  214. package/dist/components/form-control/ThemeToggle.js +71 -74
  215. package/dist/components/form-control/ThemeToggle.js.map +2 -2
  216. package/dist/components/form-control/checkbox/Checkbox.d.ts +1 -1
  217. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  218. package/dist/components/form-control/checkbox/Checkbox.js +14 -95
  219. package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
  220. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts +2 -2
  221. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  222. package/dist/components/form-control/checkbox/Checkbox.styles.js +20 -25
  223. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  224. package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
  225. package/dist/components/form-control/checkbox/CheckboxGroup.js +84 -9
  226. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
  227. package/dist/components/form-control/checkbox/Radio.d.ts +1 -1
  228. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  229. package/dist/components/form-control/checkbox/Radio.js +12 -95
  230. package/dist/components/form-control/checkbox/Radio.js.map +2 -2
  231. package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
  232. package/dist/components/form-control/checkbox/RadioGroup.js +81 -9
  233. package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
  234. package/dist/components/form-control/checkbox/SelectableBase.d.ts +26 -0
  235. package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -0
  236. package/dist/components/form-control/checkbox/SelectableBase.js +100 -0
  237. package/dist/components/form-control/checkbox/SelectableBase.js.map +6 -0
  238. package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +17 -0
  239. package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -0
  240. package/dist/components/form-control/checkbox/SelectionGroupBase.js +53 -0
  241. package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +6 -0
  242. package/dist/components/form-control/color-picker/ColorPicker.d.ts +1 -1
  243. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  244. package/dist/components/form-control/color-picker/ColorPicker.js +3 -15
  245. package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
  246. package/dist/components/form-control/combobox/Combobox.d.ts +26 -47
  247. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  248. package/dist/components/form-control/combobox/Combobox.js +107 -59
  249. package/dist/components/form-control/combobox/Combobox.js.map +2 -2
  250. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
  251. package/dist/components/form-control/date-range-picker/DateRangePicker.js +12 -5
  252. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  253. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  254. package/dist/components/form-control/editor/EditorToolbar.js +358 -211
  255. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  256. package/dist/components/form-control/editor/RichTextEditor.d.ts +1 -1
  257. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  258. package/dist/components/form-control/editor/RichTextEditor.js +10 -10
  259. package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
  260. package/{src/components/form-control/editor/editor.css → dist/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
  261. package/dist/components/form-control/field/DatePicker.d.ts +1 -1
  262. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  263. package/dist/components/form-control/field/DatePicker.js +48 -129
  264. package/dist/components/form-control/field/DatePicker.js.map +2 -2
  265. package/dist/components/form-control/field/DateTimePicker.d.ts +1 -1
  266. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  267. package/dist/components/form-control/field/DateTimePicker.js +48 -129
  268. package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
  269. package/dist/components/form-control/field/Field.styles.d.ts +3 -3
  270. package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
  271. package/dist/components/form-control/field/Field.styles.js +46 -40
  272. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  273. package/dist/components/form-control/field/FieldPlaceholder.js +4 -3
  274. package/dist/components/form-control/field/FieldPlaceholder.js.map +2 -2
  275. package/dist/components/form-control/field/FieldShell.d.ts +37 -0
  276. package/dist/components/form-control/field/FieldShell.d.ts.map +1 -0
  277. package/dist/components/form-control/field/FieldShell.js +124 -0
  278. package/dist/components/form-control/field/FieldShell.js.map +6 -0
  279. package/dist/components/form-control/field/NumberInput.d.ts +8 -6
  280. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  281. package/dist/components/form-control/field/NumberInput.js +86 -192
  282. package/dist/components/form-control/field/NumberInput.js.map +2 -2
  283. package/dist/components/form-control/field/TextInput.d.ts +7 -6
  284. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  285. package/dist/components/form-control/field/TextInput.js +82 -193
  286. package/dist/components/form-control/field/TextInput.js.map +2 -2
  287. package/dist/components/form-control/field/Textarea.d.ts +1 -1
  288. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  289. package/dist/components/form-control/field/Textarea.js +79 -154
  290. package/dist/components/form-control/field/Textarea.js.map +2 -2
  291. package/dist/components/form-control/field/TimePicker.d.ts +1 -1
  292. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  293. package/dist/components/form-control/field/TimePicker.js +44 -121
  294. package/dist/components/form-control/field/TimePicker.js.map +2 -2
  295. package/dist/components/form-control/numpad/Numpad.d.ts +1 -1
  296. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  297. package/dist/components/form-control/numpad/Numpad.js +5 -5
  298. package/dist/components/form-control/numpad/Numpad.js.map +2 -2
  299. package/dist/components/form-control/select/Select.d.ts +54 -35
  300. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  301. package/dist/components/form-control/select/Select.js +215 -114
  302. package/dist/components/form-control/select/Select.js.map +2 -2
  303. package/dist/components/form-control/state-preset/StatePreset.d.ts +2 -2
  304. package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
  305. package/dist/components/form-control/state-preset/StatePreset.js +63 -52
  306. package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
  307. package/dist/components/layout/FormGroup.d.ts +3 -6
  308. package/dist/components/layout/FormGroup.d.ts.map +1 -1
  309. package/dist/components/layout/FormGroup.js +5 -7
  310. package/dist/components/layout/FormGroup.js.map +2 -2
  311. package/dist/components/layout/FormTable.d.ts +7 -1
  312. package/dist/components/layout/FormTable.d.ts.map +1 -1
  313. package/dist/components/layout/FormTable.js +52 -18
  314. package/dist/components/layout/FormTable.js.map +2 -2
  315. package/dist/components/layout/sidebar/Sidebar.d.ts +136 -8
  316. package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
  317. package/dist/components/layout/sidebar/Sidebar.js +341 -21
  318. package/dist/components/layout/sidebar/Sidebar.js.map +2 -2
  319. package/dist/components/layout/topbar/Topbar.d.ts +44 -33
  320. package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
  321. package/dist/components/layout/topbar/Topbar.js +426 -39
  322. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  323. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  324. package/dist/helpers/createAppStructure.js +4 -5
  325. package/dist/helpers/createAppStructure.js.map +1 -1
  326. package/dist/helpers/createSlot.d.ts +3 -0
  327. package/dist/helpers/createSlot.d.ts.map +1 -0
  328. package/dist/helpers/createSlot.js +40 -0
  329. package/dist/helpers/createSlot.js.map +6 -0
  330. package/dist/helpers/createSlots.d.ts +7 -0
  331. package/dist/helpers/createSlots.d.ts.map +1 -0
  332. package/dist/helpers/createSlots.js +34 -0
  333. package/dist/helpers/createSlots.js.map +6 -0
  334. package/dist/hooks/createControllableSignal.d.ts +4 -12
  335. package/dist/hooks/createControllableSignal.d.ts.map +1 -1
  336. package/dist/hooks/createControllableSignal.js +4 -3
  337. package/dist/hooks/createControllableSignal.js.map +1 -1
  338. package/dist/hooks/createControllableStore.d.ts.map +1 -1
  339. package/dist/hooks/createControllableStore.js +3 -4
  340. package/dist/hooks/createControllableStore.js.map +1 -1
  341. package/dist/hooks/useLogger.d.ts +1 -1
  342. package/dist/hooks/useLogger.d.ts.map +1 -1
  343. package/dist/hooks/useLogger.js +1 -1
  344. package/dist/hooks/useSyncConfig.js +1 -1
  345. package/dist/index.d.ts +13 -20
  346. package/dist/index.d.ts.map +1 -1
  347. package/dist/index.js +13 -20
  348. package/dist/index.js.map +1 -1
  349. package/dist/providers/ConfigContext.d.ts.map +1 -1
  350. package/dist/providers/ConfigContext.js +10 -13
  351. package/dist/providers/ConfigContext.js.map +1 -1
  352. package/dist/providers/{LoggerContext.d.ts → LoggerProvider.d.ts} +1 -1
  353. package/dist/providers/LoggerProvider.d.ts.map +1 -0
  354. package/dist/providers/{LoggerContext.js → LoggerProvider.js} +1 -1
  355. package/dist/providers/{LoggerContext.js.map → LoggerProvider.js.map} +1 -1
  356. package/dist/providers/PwaUpdateProvider.js +1 -1
  357. package/dist/providers/ServiceClientProvider.d.ts +22 -0
  358. package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
  359. package/dist/providers/ServiceClientProvider.js +39 -48
  360. package/dist/providers/ServiceClientProvider.js.map +2 -2
  361. package/dist/providers/{SyncStorageContext.d.ts → SyncStorageProvider.d.ts} +1 -1
  362. package/dist/providers/SyncStorageProvider.d.ts.map +1 -0
  363. package/dist/providers/{SyncStorageContext.js → SyncStorageProvider.js} +1 -1
  364. package/dist/providers/{SyncStorageContext.js.map → SyncStorageProvider.js.map} +1 -1
  365. package/dist/providers/SystemProvider.d.ts +1 -1
  366. package/dist/providers/SystemProvider.d.ts.map +1 -1
  367. package/dist/providers/SystemProvider.js +3 -3
  368. package/dist/providers/SystemProvider.js.map +1 -1
  369. package/dist/providers/i18n/{I18nContext.d.ts → I18nProvider.d.ts} +2 -2
  370. package/dist/providers/i18n/I18nProvider.d.ts.map +1 -0
  371. package/dist/providers/i18n/{I18nContext.js → I18nProvider.js} +1 -1
  372. package/dist/providers/i18n/{I18nContext.js.map → I18nProvider.js.map} +1 -1
  373. package/dist/providers/i18n/{I18nContext.types.d.ts → I18nProvider.types.d.ts} +1 -1
  374. package/dist/providers/i18n/I18nProvider.types.d.ts.map +1 -0
  375. package/dist/providers/i18n/I18nProvider.types.js +1 -0
  376. package/dist/providers/shared-data/SharedDataProvider.d.ts +74 -1
  377. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  378. package/dist/providers/shared-data/SharedDataProvider.js +15 -7
  379. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  380. package/dist/styles/base.styles.d.ts +15 -0
  381. package/dist/styles/base.styles.d.ts.map +1 -0
  382. package/dist/styles/base.styles.js +21 -0
  383. package/dist/styles/base.styles.js.map +6 -0
  384. package/dist/styles/control.styles.d.ts +19 -0
  385. package/dist/styles/control.styles.d.ts.map +1 -0
  386. package/dist/styles/control.styles.js +24 -0
  387. package/dist/styles/control.styles.js.map +6 -0
  388. package/dist/styles/theme.styles.d.ts +52 -0
  389. package/dist/styles/theme.styles.d.ts.map +1 -0
  390. package/dist/styles/theme.styles.js +55 -0
  391. package/dist/styles/theme.styles.js.map +6 -0
  392. package/package.json +5 -5
  393. package/src/components/data/Pagination.tsx +9 -9
  394. package/src/components/data/Table.tsx +63 -30
  395. package/src/components/data/calendar/Calendar.tsx +38 -36
  396. package/src/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
  397. package/src/components/data/kanban/Kanban.tsx +118 -84
  398. package/src/components/data/list/List.tsx +5 -16
  399. package/src/components/data/list/ListItem.styles.ts +8 -8
  400. package/src/components/data/list/ListItem.tsx +20 -31
  401. package/src/components/data/sheet/DataSheet.styles.ts +32 -9
  402. package/src/components/data/sheet/DataSheet.tsx +159 -440
  403. package/src/components/data/sheet/DataSheetColumn.tsx +7 -29
  404. package/src/components/data/sheet/DataSheetConfigDialog.tsx +14 -20
  405. package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +85 -0
  406. package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +131 -0
  407. package/src/components/data/sheet/hooks/useDataSheetPaging.ts +51 -0
  408. package/src/components/data/sheet/hooks/useDataSheetReorder.ts +155 -0
  409. package/src/components/data/sheet/hooks/useDataSheetSelection.ts +99 -0
  410. package/src/components/data/sheet/hooks/useDataSheetSorting.ts +68 -0
  411. package/src/components/data/sheet/sheetUtils.ts +5 -5
  412. package/src/components/data/sheet/types.ts +7 -8
  413. package/src/components/disclosure/Collapse.tsx +1 -9
  414. package/src/components/disclosure/Dialog.tsx +242 -41
  415. package/src/components/disclosure/Dropdown.tsx +66 -75
  416. package/src/components/disclosure/Tabs.tsx +23 -32
  417. package/src/components/display/Alert.tsx +2 -5
  418. package/src/components/display/Barcode.tsx +1 -4
  419. package/src/components/display/Card.animate.css +11 -0
  420. package/src/components/display/Card.tsx +10 -11
  421. package/src/components/display/Echarts.tsx +1 -4
  422. package/src/components/display/Link.tsx +3 -5
  423. package/src/components/display/Tag.tsx +2 -5
  424. package/src/components/features/address/AddressSearch.tsx +4 -5
  425. package/src/components/features/crud-detail/CrudDetail.tsx +129 -142
  426. package/src/components/features/crud-detail/CrudDetailAfter.tsx +3 -16
  427. package/src/components/features/crud-detail/CrudDetailBefore.tsx +3 -16
  428. package/src/components/features/crud-detail/CrudDetailTools.tsx +3 -16
  429. package/src/components/features/crud-detail/types.ts +3 -16
  430. package/src/components/features/crud-sheet/CrudSheet.tsx +90 -92
  431. package/src/components/features/crud-sheet/CrudSheetColumn.tsx +7 -30
  432. package/src/components/features/crud-sheet/CrudSheetFilter.tsx +12 -16
  433. package/src/components/features/crud-sheet/CrudSheetHeader.tsx +3 -16
  434. package/src/components/features/crud-sheet/CrudSheetTools.tsx +12 -16
  435. package/src/components/features/crud-sheet/types.ts +6 -40
  436. package/src/components/features/data-select-button/DataSelectButton.tsx +55 -64
  437. package/src/components/features/permission-table/PermissionTable.tsx +9 -13
  438. package/src/components/features/shared-data/SharedDataSelect.tsx +89 -108
  439. package/src/components/features/shared-data/SharedDataSelectButton.tsx +26 -15
  440. package/src/components/features/shared-data/SharedDataSelectList.tsx +55 -32
  441. package/src/components/feedback/Progress.tsx +16 -21
  442. package/src/components/feedback/busy/BusyContainer.tsx +18 -45
  443. package/src/components/feedback/busy/BusyProvider.tsx +40 -7
  444. package/src/components/feedback/notification/NotificationBanner.tsx +13 -32
  445. package/src/components/feedback/notification/NotificationBell.tsx +18 -47
  446. package/src/components/feedback/notification/NotificationProvider.tsx +96 -10
  447. package/src/components/feedback/notification/index.ts +0 -1
  448. package/src/components/feedback/print/PrintProvider.tsx +35 -4
  449. package/src/components/form-control/Button.tsx +11 -29
  450. package/src/components/form-control/DropdownTrigger.styles.ts +16 -17
  451. package/src/components/form-control/ThemeToggle.tsx +18 -15
  452. package/src/components/form-control/checkbox/Checkbox.styles.ts +20 -26
  453. package/src/components/form-control/checkbox/Checkbox.tsx +14 -100
  454. package/src/components/form-control/checkbox/CheckboxGroup.tsx +85 -10
  455. package/src/components/form-control/checkbox/Radio.tsx +14 -103
  456. package/src/components/form-control/checkbox/RadioGroup.tsx +82 -10
  457. package/src/components/form-control/checkbox/SelectableBase.tsx +123 -0
  458. package/src/components/form-control/checkbox/SelectionGroupBase.tsx +57 -0
  459. package/src/components/form-control/color-picker/ColorPicker.tsx +8 -28
  460. package/src/components/form-control/combobox/Combobox.tsx +124 -30
  461. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +5 -5
  462. package/src/components/form-control/editor/EditorToolbar.tsx +105 -82
  463. package/{dist/components/form-control/editor/editor.css → src/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
  464. package/src/components/form-control/editor/RichTextEditor.tsx +14 -29
  465. package/src/components/form-control/field/DatePicker.tsx +30 -72
  466. package/src/components/form-control/field/DateTimePicker.tsx +31 -79
  467. package/src/components/form-control/field/Field.styles.ts +48 -42
  468. package/src/components/form-control/field/FieldPlaceholder.tsx +2 -2
  469. package/src/components/form-control/field/FieldShell.tsx +113 -0
  470. package/src/components/form-control/field/NumberInput.tsx +67 -126
  471. package/src/components/form-control/field/TextInput.tsx +51 -109
  472. package/src/components/form-control/field/Textarea.tsx +64 -108
  473. package/src/components/form-control/field/TimePicker.tsx +29 -70
  474. package/src/components/form-control/numpad/Numpad.tsx +5 -6
  475. package/src/components/form-control/select/Select.tsx +243 -119
  476. package/src/components/form-control/state-preset/StatePreset.tsx +60 -83
  477. package/src/components/layout/FormGroup.tsx +10 -13
  478. package/src/components/layout/FormTable.tsx +40 -19
  479. package/src/components/layout/sidebar/Sidebar.tsx +456 -38
  480. package/src/components/layout/topbar/Topbar.tsx +420 -49
  481. package/src/helpers/createAppStructure.ts +6 -7
  482. package/src/helpers/createSlot.ts +45 -0
  483. package/src/helpers/createSlots.ts +44 -0
  484. package/src/hooks/createControllableSignal.ts +10 -18
  485. package/src/hooks/createControllableStore.ts +3 -4
  486. package/src/hooks/useLogger.ts +1 -1
  487. package/src/hooks/useSyncConfig.ts +1 -1
  488. package/src/index.ts +14 -20
  489. package/src/providers/ConfigContext.tsx +0 -1
  490. package/src/providers/PwaUpdateProvider.tsx +1 -1
  491. package/src/providers/ServiceClientProvider.tsx +59 -53
  492. package/src/providers/SystemProvider.tsx +4 -5
  493. package/src/providers/i18n/{I18nContext.tsx → I18nProvider.tsx} +1 -1
  494. package/src/providers/shared-data/SharedDataProvider.tsx +95 -14
  495. package/src/styles/base.styles.ts +21 -0
  496. package/src/styles/control.styles.ts +25 -0
  497. package/src/styles/theme.styles.ts +54 -0
  498. package/tailwind.config.ts +0 -11
  499. package/tests/components/data/List.spec.tsx +1 -262
  500. package/tests/components/data/Pagination.spec.tsx +0 -75
  501. package/tests/components/data/kanban/Kanban.selection.spec.tsx +1 -17
  502. package/tests/components/data/sheet/DataSheet.spec.tsx +36 -65
  503. package/tests/components/data/sheet/hooks/useDataSheetExpansion.spec.ts +254 -0
  504. package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +488 -0
  505. package/tests/components/data/sheet/hooks/useDataSheetPaging.spec.ts +359 -0
  506. package/tests/components/data/sheet/hooks/useDataSheetReorder.spec.ts +251 -0
  507. package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +345 -0
  508. package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +279 -0
  509. package/tests/components/disclosure/Collapse.spec.tsx +0 -24
  510. package/tests/components/disclosure/Dialog.spec.tsx +4 -54
  511. package/tests/components/disclosure/DialogProvider.spec.tsx +9 -12
  512. package/tests/components/disclosure/Tabs.spec.tsx +0 -99
  513. package/tests/components/display/Barcode.spec.tsx +0 -14
  514. package/tests/components/features/address/AddressSearch.spec.tsx +3 -4
  515. package/tests/components/features/crud-detail/CrudDetail.spec.tsx +12 -74
  516. package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +13 -66
  517. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +51 -29
  518. package/tests/components/features/permission-table/PermissionTable.spec.tsx +5 -30
  519. package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +15 -19
  520. package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +17 -44
  521. package/tests/components/feedback/busy/BusyContainer.spec.tsx +15 -9
  522. package/tests/components/feedback/notification/LiveRegion.spec.tsx +2 -27
  523. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +2 -27
  524. package/tests/components/feedback/notification/NotificationBell.spec.tsx +2 -16
  525. package/tests/components/feedback/notification/NotificationContext.spec.tsx +2 -16
  526. package/tests/components/form-control/Button.spec.tsx +0 -97
  527. package/tests/components/form-control/Invalid.spec.tsx +0 -15
  528. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +1 -47
  529. package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +1 -26
  530. package/tests/components/form-control/checkbox/Radio.spec.tsx +1 -46
  531. package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +1 -26
  532. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +1 -31
  533. package/tests/components/form-control/combobox/Combobox.spec.tsx +5 -49
  534. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +7 -27
  535. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +1 -58
  536. package/tests/components/form-control/field/DatePicker.spec.tsx +5 -93
  537. package/tests/components/form-control/field/DateTimePicker.spec.tsx +5 -86
  538. package/tests/components/form-control/field/FieldShell.spec.tsx +127 -0
  539. package/tests/components/form-control/field/NumberInput.spec.tsx +14 -133
  540. package/tests/components/form-control/field/TextInput.spec.tsx +6 -148
  541. package/tests/components/form-control/field/Textarea.spec.tsx +5 -69
  542. package/tests/components/form-control/field/TimePicker.spec.tsx +5 -84
  543. package/tests/components/form-control/numpad/Numpad.spec.tsx +1 -78
  544. package/tests/components/form-control/select/Select.spec.tsx +9 -59
  545. package/tests/components/form-control/select/SelectItem.spec.tsx +10 -62
  546. package/tests/components/layout/sidebar/Sidebar.spec.tsx +3 -122
  547. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +3 -45
  548. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +1 -74
  549. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +0 -48
  550. package/tests/components/layout/topbar/TopbarActions.spec.tsx +1 -1
  551. package/tests/components/layout/topbar/createTopbarActions.spec.tsx +0 -9
  552. package/tests/helpers/createAppStructure.spec.tsx +0 -26
  553. package/tests/helpers/createSlot.spec.tsx +99 -0
  554. package/tests/helpers/createSlots.spec.tsx +100 -0
  555. package/tests/hooks/createControllableSignal.spec.ts +0 -50
  556. package/tests/hooks/createControllableStore.spec.ts +67 -0
  557. package/tests/hooks/createMountTransition.spec.ts +0 -9
  558. package/tests/hooks/useLocalStorage.spec.tsx +0 -34
  559. package/tests/hooks/useLogger.spec.tsx +1 -18
  560. package/tests/hooks/usePrint.spec.tsx +1 -24
  561. package/tests/hooks/useSyncConfig.spec.tsx +1 -18
  562. package/tests/providers/ErrorLoggerProvider.spec.tsx +1 -11
  563. package/tests/providers/ServiceClientContext.spec.tsx +2 -20
  564. package/tests/providers/i18n/I18nContext.spec.tsx +1 -5
  565. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +13 -13
  566. package/dist/components/data/kanban/KanbanContext.d.ts +0 -43
  567. package/dist/components/data/kanban/KanbanContext.d.ts.map +0 -1
  568. package/dist/components/data/kanban/KanbanContext.js +0 -24
  569. package/dist/components/data/kanban/KanbanContext.js.map +0 -6
  570. package/dist/components/data/sheet/DataSheet.css +0 -44
  571. package/dist/components/disclosure/DialogContext.d.ts +0 -57
  572. package/dist/components/disclosure/DialogContext.d.ts.map +0 -1
  573. package/dist/components/disclosure/DialogContext.js +0 -14
  574. package/dist/components/disclosure/DialogContext.js.map +0 -6
  575. package/dist/components/disclosure/DialogInstanceContext.d.ts +0 -20
  576. package/dist/components/disclosure/DialogInstanceContext.d.ts.map +0 -1
  577. package/dist/components/disclosure/DialogInstanceContext.js +0 -10
  578. package/dist/components/disclosure/DialogInstanceContext.js.map +0 -6
  579. package/dist/components/disclosure/DialogProvider.d.ts +0 -19
  580. package/dist/components/disclosure/DialogProvider.d.ts.map +0 -1
  581. package/dist/components/disclosure/DialogProvider.js +0 -145
  582. package/dist/components/disclosure/DialogProvider.js.map +0 -6
  583. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +0 -15
  584. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +0 -1
  585. package/dist/components/features/shared-data/SharedDataSelectListContext.js +0 -27
  586. package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +0 -6
  587. package/dist/components/feedback/busy/BusyContext.d.ts +0 -29
  588. package/dist/components/feedback/busy/BusyContext.d.ts.map +0 -1
  589. package/dist/components/feedback/busy/BusyContext.js +0 -14
  590. package/dist/components/feedback/busy/BusyContext.js.map +0 -6
  591. package/dist/components/feedback/notification/NotificationContext.d.ts +0 -69
  592. package/dist/components/feedback/notification/NotificationContext.d.ts.map +0 -1
  593. package/dist/components/feedback/notification/NotificationContext.js +0 -14
  594. package/dist/components/feedback/notification/NotificationContext.js.map +0 -6
  595. package/dist/components/feedback/print/PrintContext.d.ts +0 -12
  596. package/dist/components/feedback/print/PrintContext.d.ts.map +0 -1
  597. package/dist/components/feedback/print/PrintContext.js +0 -12
  598. package/dist/components/feedback/print/PrintContext.js.map +0 -6
  599. package/dist/components/feedback/print/PrintInstanceContext.d.ts +0 -6
  600. package/dist/components/feedback/print/PrintInstanceContext.d.ts.map +0 -1
  601. package/dist/components/feedback/print/PrintInstanceContext.js +0 -10
  602. package/dist/components/feedback/print/PrintInstanceContext.js.map +0 -6
  603. package/dist/components/form-control/combobox/ComboboxContext.d.ts +0 -14
  604. package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +0 -1
  605. package/dist/components/form-control/combobox/ComboboxContext.js +0 -14
  606. package/dist/components/form-control/combobox/ComboboxContext.js.map +0 -6
  607. package/dist/components/form-control/combobox/ComboboxItem.d.ts +0 -12
  608. package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +0 -1
  609. package/dist/components/form-control/combobox/ComboboxItem.js +0 -56
  610. package/dist/components/form-control/combobox/ComboboxItem.js.map +0 -6
  611. package/dist/components/form-control/select/SelectContext.d.ts +0 -21
  612. package/dist/components/form-control/select/SelectContext.d.ts.map +0 -1
  613. package/dist/components/form-control/select/SelectContext.js +0 -14
  614. package/dist/components/form-control/select/SelectContext.js.map +0 -6
  615. package/dist/components/form-control/select/SelectItem.d.ts +0 -30
  616. package/dist/components/form-control/select/SelectItem.d.ts.map +0 -1
  617. package/dist/components/form-control/select/SelectItem.js +0 -112
  618. package/dist/components/form-control/select/SelectItem.js.map +0 -6
  619. package/dist/components/layout/sidebar/SidebarContainer.d.ts +0 -34
  620. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +0 -1
  621. package/dist/components/layout/sidebar/SidebarContainer.js +0 -88
  622. package/dist/components/layout/sidebar/SidebarContainer.js.map +0 -6
  623. package/dist/components/layout/sidebar/SidebarContext.d.ts +0 -28
  624. package/dist/components/layout/sidebar/SidebarContext.d.ts.map +0 -1
  625. package/dist/components/layout/sidebar/SidebarContext.js +0 -20
  626. package/dist/components/layout/sidebar/SidebarContext.js.map +0 -6
  627. package/dist/components/layout/sidebar/SidebarMenu.d.ts +0 -35
  628. package/dist/components/layout/sidebar/SidebarMenu.d.ts.map +0 -1
  629. package/dist/components/layout/sidebar/SidebarMenu.js +0 -153
  630. package/dist/components/layout/sidebar/SidebarMenu.js.map +0 -6
  631. package/dist/components/layout/sidebar/SidebarUser.d.ts +0 -48
  632. package/dist/components/layout/sidebar/SidebarUser.d.ts.map +0 -1
  633. package/dist/components/layout/sidebar/SidebarUser.js +0 -128
  634. package/dist/components/layout/sidebar/SidebarUser.js.map +0 -6
  635. package/dist/components/layout/topbar/TopbarActions.d.ts +0 -3
  636. package/dist/components/layout/topbar/TopbarActions.d.ts.map +0 -1
  637. package/dist/components/layout/topbar/TopbarActions.js +0 -17
  638. package/dist/components/layout/topbar/TopbarActions.js.map +0 -6
  639. package/dist/components/layout/topbar/TopbarContainer.d.ts +0 -25
  640. package/dist/components/layout/topbar/TopbarContainer.d.ts.map +0 -1
  641. package/dist/components/layout/topbar/TopbarContainer.js +0 -37
  642. package/dist/components/layout/topbar/TopbarContainer.js.map +0 -6
  643. package/dist/components/layout/topbar/TopbarContext.d.ts +0 -9
  644. package/dist/components/layout/topbar/TopbarContext.d.ts.map +0 -1
  645. package/dist/components/layout/topbar/TopbarContext.js +0 -29
  646. package/dist/components/layout/topbar/TopbarContext.js.map +0 -6
  647. package/dist/components/layout/topbar/TopbarMenu.d.ts +0 -41
  648. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +0 -1
  649. package/dist/components/layout/topbar/TopbarMenu.js +0 -288
  650. package/dist/components/layout/topbar/TopbarMenu.js.map +0 -6
  651. package/dist/components/layout/topbar/TopbarUser.d.ts +0 -35
  652. package/dist/components/layout/topbar/TopbarUser.d.ts.map +0 -1
  653. package/dist/components/layout/topbar/TopbarUser.js +0 -110
  654. package/dist/components/layout/topbar/TopbarUser.js.map +0 -6
  655. package/dist/helpers/createHmrSafeContext.d.ts +0 -3
  656. package/dist/helpers/createHmrSafeContext.d.ts.map +0 -1
  657. package/dist/helpers/createHmrSafeContext.js +0 -10
  658. package/dist/helpers/createHmrSafeContext.js.map +0 -6
  659. package/dist/helpers/createSlotComponent.d.ts +0 -12
  660. package/dist/helpers/createSlotComponent.d.ts.map +0 -1
  661. package/dist/helpers/createSlotComponent.js +0 -13
  662. package/dist/helpers/createSlotComponent.js.map +0 -6
  663. package/dist/hooks/createSelectionGroup.d.ts +0 -70
  664. package/dist/hooks/createSelectionGroup.d.ts.map +0 -1
  665. package/dist/hooks/createSelectionGroup.js +0 -145
  666. package/dist/hooks/createSelectionGroup.js.map +0 -6
  667. package/dist/hooks/createSlotSignal.d.ts +0 -9
  668. package/dist/hooks/createSlotSignal.d.ts.map +0 -1
  669. package/dist/hooks/createSlotSignal.js +0 -10
  670. package/dist/hooks/createSlotSignal.js.map +0 -6
  671. package/dist/providers/LoggerContext.d.ts.map +0 -1
  672. package/dist/providers/ServiceClientContext.d.ts +0 -23
  673. package/dist/providers/ServiceClientContext.d.ts.map +0 -1
  674. package/dist/providers/ServiceClientContext.js +0 -14
  675. package/dist/providers/ServiceClientContext.js.map +0 -6
  676. package/dist/providers/SyncStorageContext.d.ts.map +0 -1
  677. package/dist/providers/i18n/I18nContext.d.ts.map +0 -1
  678. package/dist/providers/i18n/I18nContext.types.d.ts.map +0 -1
  679. package/dist/providers/i18n/I18nContext.types.js +0 -1
  680. package/dist/providers/shared-data/SharedDataContext.d.ts +0 -77
  681. package/dist/providers/shared-data/SharedDataContext.d.ts.map +0 -1
  682. package/dist/providers/shared-data/SharedDataContext.js +0 -14
  683. package/dist/providers/shared-data/SharedDataContext.js.map +0 -6
  684. package/dist/styles/patterns.styles.d.ts +0 -7
  685. package/dist/styles/patterns.styles.d.ts.map +0 -1
  686. package/dist/styles/patterns.styles.js +0 -47
  687. package/dist/styles/patterns.styles.js.map +0 -6
  688. package/dist/styles/tokens.styles.d.ts +0 -23
  689. package/dist/styles/tokens.styles.d.ts.map +0 -1
  690. package/dist/styles/tokens.styles.js +0 -76
  691. package/dist/styles/tokens.styles.js.map +0 -6
  692. package/src/components/data/kanban/KanbanContext.ts +0 -76
  693. package/src/components/data/sheet/DataSheet.css +0 -44
  694. package/src/components/disclosure/DialogContext.ts +0 -69
  695. package/src/components/disclosure/DialogInstanceContext.ts +0 -25
  696. package/src/components/disclosure/DialogProvider.tsx +0 -147
  697. package/src/components/features/shared-data/SharedDataSelectListContext.ts +0 -39
  698. package/src/components/feedback/busy/BusyContext.ts +0 -38
  699. package/src/components/feedback/notification/NotificationContext.ts +0 -95
  700. package/src/components/feedback/print/PrintContext.ts +0 -20
  701. package/src/components/feedback/print/PrintInstanceContext.ts +0 -11
  702. package/src/components/form-control/combobox/ComboboxContext.ts +0 -25
  703. package/src/components/form-control/combobox/ComboboxItem.tsx +0 -69
  704. package/src/components/form-control/select/SelectContext.ts +0 -35
  705. package/src/components/form-control/select/SelectItem.tsx +0 -128
  706. package/src/components/layout/sidebar/SidebarContainer.tsx +0 -123
  707. package/src/components/layout/sidebar/SidebarContext.ts +0 -40
  708. package/src/components/layout/sidebar/SidebarMenu.tsx +0 -182
  709. package/src/components/layout/sidebar/SidebarUser.tsx +0 -142
  710. package/src/components/layout/topbar/TopbarActions.tsx +0 -8
  711. package/src/components/layout/topbar/TopbarContainer.tsx +0 -44
  712. package/src/components/layout/topbar/TopbarContext.ts +0 -36
  713. package/src/components/layout/topbar/TopbarMenu.tsx +0 -227
  714. package/src/components/layout/topbar/TopbarUser.tsx +0 -97
  715. package/src/helpers/createHmrSafeContext.ts +0 -8
  716. package/src/helpers/createSlotComponent.ts +0 -23
  717. package/src/hooks/createSelectionGroup.tsx +0 -241
  718. package/src/hooks/createSlotSignal.ts +0 -14
  719. package/src/providers/ServiceClientContext.ts +0 -32
  720. package/src/providers/shared-data/SharedDataContext.ts +0 -91
  721. package/src/styles/patterns.styles.ts +0 -50
  722. package/src/styles/tokens.styles.ts +0 -86
  723. package/tests/components/data/Table.spec.tsx +0 -55
  724. package/tests/components/display/Alert.spec.tsx +0 -47
  725. package/tests/components/display/Card.spec.tsx +0 -41
  726. package/tests/components/display/Link.spec.tsx +0 -62
  727. package/tests/components/display/Tag.spec.tsx +0 -47
  728. package/tests/components/feedback/print/Print.spec.tsx +0 -45
  729. package/tests/components/layout/FormGroup.spec.tsx +0 -104
  730. package/tests/components/layout/FormTable.spec.tsx +0 -43
  731. package/tests/components/layout/topbar/TopbarContainer.spec.tsx +0 -38
  732. package/tests/providers/ClipboardProvider.spec.tsx +0 -20
  733. package/tests/providers/ConfigContext.spec.tsx +0 -42
  734. package/tests/providers/LoggerContext.spec.tsx +0 -76
  735. package/tests/providers/PwaUpdateProvider.spec.tsx +0 -32
  736. package/tests/providers/SyncStorageContext.spec.tsx +0 -77
  737. /package/dist/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
  738. /package/dist/providers/i18n/{I18nContext.types.js.map → I18nProvider.types.js.map} +0 -0
  739. /package/src/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
  740. /package/src/providers/{LoggerContext.tsx → LoggerProvider.tsx} +0 -0
  741. /package/src/providers/{SyncStorageContext.tsx → SyncStorageProvider.tsx} +0 -0
  742. /package/src/providers/i18n/{I18nContext.types.ts → I18nProvider.types.ts} +0 -0
@@ -1,40 +1,61 @@
1
1
  import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
3
  import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
4
+ import { addEventListener as _$addEventListener } from "solid-js/web";
4
5
  import { use as _$use } from "solid-js/web";
5
6
  import { style as _$style } from "solid-js/web";
6
7
  import { setAttribute as _$setAttribute } from "solid-js/web";
7
8
  import { effect as _$effect } from "solid-js/web";
8
9
  import { insert as _$insert } from "solid-js/web";
10
+ import { createComponent as _$createComponent } from "solid-js/web";
9
11
  import { className as _$className } from "solid-js/web";
10
12
  import { memo as _$memo } from "solid-js/web";
11
- import { createComponent as _$createComponent } from "solid-js/web";
12
13
  var _tmpl$ = /* @__PURE__ */ _$template(`<button title="Sheet Settings"type=button>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><div class=flex-1>`), _tmpl$3 = /* @__PURE__ */ _$template(`<col>`), _tmpl$4 = /* @__PURE__ */ _$template(`<tr>`), _tmpl$5 = /* @__PURE__ */ _$template(`<div><div data-sheet-scroll><table><colgroup></colgroup><thead></thead><tbody></tbody></table><div></div><div data-reorder-indicator style=display:none>`), _tmpl$6 = /* @__PURE__ */ _$template(`<th style=top:0;left:0><div><button type=button>`), _tmpl$7 = /* @__PURE__ */ _$template(`<div>`), _tmpl$8 = /* @__PURE__ */ _$template(`<th style=top:0>`), _tmpl$9 = /* @__PURE__ */ _$template(`<th><div><div class=flex-1>`), _tmpl$0 = /* @__PURE__ */ _$template(`<sub>`), _tmpl$1 = /* @__PURE__ */ _$template(`<th><div>`), _tmpl$10 = /* @__PURE__ */ _$template(`<button type=button>`), _tmpl$11 = /* @__PURE__ */ _$template(`<td style=left:0><div>`), _tmpl$12 = /* @__PURE__ */ _$template(`<td><div><div>`), _tmpl$13 = /* @__PURE__ */ _$template(`<div><div>`), _tmpl$14 = /* @__PURE__ */ _$template(`<td>`);
13
- import { children, createMemo, createSignal, For, Show, splitProps, useContext } from "solid-js";
14
+ import { createMemo, createSignal, For, Show, splitProps, useContext } from "solid-js";
14
15
  import { createResizeObserver } from "@solid-primitives/resize-observer";
15
16
  import clsx from "clsx";
16
17
  import { twMerge } from "tailwind-merge";
17
18
  import { IconArrowsSort, IconChevronDown, IconChevronRight, IconGripVertical, IconSettings, IconSortAscending, IconSortDescending } from "@tabler/icons-solidjs";
18
19
  import "@simplysm/core-browser";
19
- import { isDataSheetColumnDef, DataSheetColumn } from "./DataSheetColumn.js";
20
- import { applySorting, buildHeaderTable, collectAllExpandable, flattenTree } from "./sheetUtils.js";
21
- import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
20
+ import { DataSheetColumn, createColumnSlotsAccessor } from "./DataSheetColumn.js";
21
+ import { DataSheetConfigDialog } from "./DataSheetConfigDialog.js";
22
+ import { buildHeaderTable, normalizeHeader } from "./sheetUtils.js";
22
23
  import { startPointerDrag } from "../../../helpers/startPointerDrag.js";
23
24
  import { Icon } from "../../display/Icon.js";
24
25
  import { Checkbox } from "../../form-control/checkbox/Checkbox.js";
25
26
  import { Pagination } from "../Pagination.js";
26
27
  import { useSyncConfig } from "../../../hooks/useSyncConfig.js";
27
- import { DialogContext } from "../../disclosure/DialogContext.js";
28
- import { useI18n } from "../../../providers/i18n/I18nContext.js";
29
- import "./DataSheet.css";
30
- import { configButtonClass, defaultContainerClass, expandIndentGuideClass, expandIndentGuideLineClass, expandToggleClass, featureCellBodyClickableClass, featureCellBodyWrapperClass, featureCellClickableClass, featureCellWrapperClass, featureTdClass, featureThClass, fixedClass, fixedLastClass, insetContainerClass, insetTableClass, reorderCellWrapperClass, reorderHandleClass, reorderIndicatorClass, resizeIndicatorClass, resizerClass, selectSingleClass, selectSingleSelectedClass, selectSingleUnselectedClass, dataSheetContainerClass, sortableThClass, sortIconClass, summaryThClass, tableClass, tdClass, thClass, thContentClass, toolbarClass } from "./DataSheet.styles.js";
31
- const DataSheet = (props) => {
32
- const [local] = splitProps(props, ["items", "persistKey", "hideConfigBar", "inset", "contentStyle", "sorts", "onSortsChange", "autoSort", "page", "onPageChange", "totalPageCount", "itemsPerPage", "displayPageCount", "expandedItems", "onExpandedItemsChange", "getChildren", "selectMode", "selectedItems", "onSelectedItemsChange", "autoSelect", "isItemSelectable", "cellClass", "cellStyle", "onItemsReorder", "class", "children"]);
28
+ import { DialogContext } from "../../disclosure/Dialog.js";
29
+ import { useI18n } from "../../../providers/i18n/I18nProvider.js";
30
+ import { configButtonClass, defaultContainerClass, expandIndentGuideClass, expandIndentGuideLineClass, expandToggleClass, featureCellBodyClickableClass, featureCellBodyWrapperClass, featureCellClickableClass, featureCellWrapperClass, featureTdClass, featureThClass, fixedClass, fixedLastClass, insetContainerClass, insetTableClass, reorderCellWrapperClass, reorderHandleClass, reorderIndicatorClass, resizeIndicatorClass, resizerClass, selectSingleClass, selectSingleSelectedClass, selectSingleUnselectedClass, dataSheetContainerClass, sortableThClass, sortIconClass, summaryThClass, tableClass, tdClass, thClass, thContentClass, toolbarClass, trRowClass } from "./DataSheet.styles.js";
31
+ import { useDataSheetSorting } from "./hooks/useDataSheetSorting.js";
32
+ import { useDataSheetPaging } from "./hooks/useDataSheetPaging.js";
33
+ import { useDataSheetExpansion } from "./hooks/useDataSheetExpansion.js";
34
+ import { useDataSheetSelection } from "./hooks/useDataSheetSelection.js";
35
+ import { useDataSheetReorder } from "./hooks/useDataSheetReorder.js";
36
+ import { useDataSheetFixedColumns } from "./hooks/useDataSheetFixedColumns.js";
37
+ const DataSheetInner = (props) => {
38
+ const [local] = splitProps(props, ["items", "storageKey", "hideConfigBar", "inset", "contentStyle", "sorts", "onSortsChange", "autoSort", "page", "onPageChange", "totalPageCount", "pageSize", "displayPageCount", "expandedItems", "onExpandedItemsChange", "itemChildren", "selectionMode", "selection", "onSelectionChange", "autoSelect", "itemSelectable", "cellClass", "cellStyle", "onItemsReorder", "class", "children"]);
33
39
  const dialog = useContext(DialogContext);
34
40
  const i18n = useI18n();
35
- const resolved = children(() => local.children);
36
- const columnDefs = createMemo(() => resolved.toArray().filter(isDataSheetColumnDef));
37
- const [config, setConfig] = local.persistKey != null && local.persistKey !== "" ? useSyncConfig(`sheet.${local.persistKey}`, {
41
+ const [rawColumns, ColumnsProvider] = createColumnSlotsAccessor();
42
+ const columnDefs = createMemo(() => rawColumns().map((col) => ({
43
+ key: col.key,
44
+ header: normalizeHeader(col.header),
45
+ headerContent: col.headerContent,
46
+ headerStyle: col.headerStyle,
47
+ summary: col.summary,
48
+ tooltip: col.tooltip,
49
+ cell: col.children,
50
+ class: col.class,
51
+ fixed: col.fixed ?? false,
52
+ hidden: col.hidden ?? false,
53
+ collapse: col.collapse ?? false,
54
+ width: col.width,
55
+ sortable: col.sortable ?? true,
56
+ resizable: col.resizable ?? true
57
+ })));
58
+ const [config, setConfig] = local.storageKey != null && local.storageKey !== "" ? useSyncConfig(`sheet.${local.storageKey}`, {
38
59
  columnRecord: {}
39
60
  }) : createSignal({
40
61
  columnRecord: {}
@@ -78,9 +99,9 @@ const DataSheet = (props) => {
78
99
  async function openConfigDialog() {
79
100
  if (!dialog) return;
80
101
  const {
81
- DataSheetConfigDialog
102
+ DataSheetConfigDialog: ConfigDialog
82
103
  } = await import("./DataSheetConfigDialog");
83
- const allCols = resolved.toArray().filter(isDataSheetColumnDef);
104
+ const allCols = columnDefs();
84
105
  const columnInfos = allCols.filter((col) => !col.collapse).map((col) => ({
85
106
  key: col.key,
86
107
  header: col.header,
@@ -90,12 +111,12 @@ const DataSheet = (props) => {
90
111
  width: col.width
91
112
  }));
92
113
  const currentConfig = config();
93
- const result = await dialog.show(() => _$createComponent(DataSheetConfigDialog, {
114
+ const result = await dialog.show(ConfigDialog, {
94
115
  columnInfos,
95
116
  currentConfig
96
- }), {
117
+ }, {
97
118
  header: "Sheet Settings",
98
- closeOnBackdrop: true,
119
+ closeOnInteractOutside: true,
99
120
  closeOnEscape: true
100
121
  });
101
122
  if (result) {
@@ -104,140 +125,61 @@ const DataSheet = (props) => {
104
125
  }
105
126
  const headerTable = createMemo(() => buildHeaderTable(effectiveColumns()));
106
127
  const hasSummary = createMemo(() => effectiveColumns().some((col) => col.summary != null));
107
- const [sorts, setSorts] = createControllableSignal({
108
- value: () => local.sorts ?? [],
109
- onChange: () => local.onSortsChange
128
+ const {
129
+ sorts,
130
+ toggleSort,
131
+ sortIndex,
132
+ sortedItems
133
+ } = useDataSheetSorting({
134
+ sorts: () => local.sorts,
135
+ onSortsChange: () => local.onSortsChange,
136
+ items: () => local.items,
137
+ autoSort: () => local.autoSort
110
138
  });
111
- function toggleSort(key, multiple) {
112
- const current = sorts();
113
- const existing = current.find((s) => s.key === key);
114
- if (existing) {
115
- if (!existing.desc) {
116
- const updated = current.map((s) => s.key === key ? {
117
- ...s,
118
- desc: true
119
- } : s);
120
- setSorts(multiple ? updated : [{
121
- key,
122
- desc: true
123
- }]);
124
- } else {
125
- const updated = current.filter((s) => s.key !== key);
126
- setSorts(multiple ? updated : []);
127
- }
128
- } else {
129
- const newSort = {
130
- key,
131
- desc: false
132
- };
133
- setSorts(multiple ? [...current, newSort] : [newSort]);
134
- }
135
- }
136
139
  function getSortDef(key) {
137
140
  return sorts().find((s) => s.key === key);
138
141
  }
139
- function getSortIndex(key) {
140
- if (sorts().length <= 1) return void 0;
141
- const idx = sorts().findIndex((s) => s.key === key);
142
- return idx >= 0 ? idx + 1 : void 0;
143
- }
144
- const sortedItems = createMemo(() => {
145
- if (!local.autoSort) return local.items ?? [];
146
- return applySorting(local.items ?? [], sorts());
147
- });
148
- const [currentPage, setCurrentPage] = createControllableSignal({
149
- value: () => local.page ?? 1,
150
- onChange: () => local.onPageChange
151
- });
152
- const effectivePageCount = createMemo(() => {
153
- const ipp = local.itemsPerPage;
154
- if (ipp != null && ipp !== 0 && (local.items ?? []).length > 0) {
155
- return Math.ceil((local.items ?? []).length / ipp);
156
- }
157
- return local.totalPageCount ?? 0;
158
- });
159
- const pagedItems = createMemo(() => {
160
- const ipp = local.itemsPerPage;
161
- if (ipp == null || ipp === 0) return sortedItems();
162
- if ((local.items ?? []).length <= 0) return sortedItems();
163
- const page = currentPage();
164
- return sortedItems().slice((page - 1) * ipp, page * ipp);
142
+ const {
143
+ currentPage,
144
+ setCurrentPage,
145
+ pageCount,
146
+ pagedItems
147
+ } = useDataSheetPaging({
148
+ page: () => local.page,
149
+ onPageChange: () => local.onPageChange,
150
+ pageSize: () => local.pageSize,
151
+ totalPageCount: () => local.totalPageCount,
152
+ items: () => local.items,
153
+ sortedItems
165
154
  });
166
155
  const originalIndexMap = createMemo(() => {
167
156
  const map = /* @__PURE__ */ new Map();
168
157
  (local.items ?? []).forEach((item, i) => map.set(item, i));
169
158
  return map;
170
159
  });
171
- const hasExpandFeature = () => local.getChildren != null;
172
- const hasSelectFeature = () => local.selectMode != null;
173
- const hasReorderFeature = () => local.onItemsReorder != null;
174
- function createTrackedWidth() {
175
- const [width, setWidth] = createSignal(0);
176
- const register = (el) => {
177
- createResizeObserver(el, () => {
178
- setWidth(el.offsetWidth);
179
- });
180
- };
181
- return [width, register];
182
- }
183
- const [expandColWidth, registerExpandColRef] = createTrackedWidth();
184
- const [selectColWidth, registerSelectColRef] = createTrackedWidth();
185
- const [reorderColWidth, registerReorderColRef] = createTrackedWidth();
186
- const selectColLeft = createMemo(() => hasExpandFeature() ? `${expandColWidth()}px` : "0");
187
- const reorderColLeft = createMemo(() => {
188
- let left = 0;
189
- if (hasExpandFeature()) left += expandColWidth();
190
- if (hasSelectFeature()) left += selectColWidth();
191
- return `${left}px`;
192
- });
193
- const columnRefs = /* @__PURE__ */ new Map();
194
- const [columnWidths, setColumnWidths] = createSignal(/* @__PURE__ */ new Map());
195
- const featureColTotalWidth = createMemo(() => {
196
- let w = 0;
197
- if (hasExpandFeature()) w += expandColWidth();
198
- if (hasSelectFeature()) w += selectColWidth();
199
- if (hasReorderFeature()) w += reorderColWidth();
200
- return w;
201
- });
202
- const fixedLeftMap = createMemo(() => {
203
- const map = /* @__PURE__ */ new Map();
204
- const cols = effectiveColumns();
205
- const widths = columnWidths();
206
- let left = featureColTotalWidth();
207
- for (let c = 0; c < cols.length; c++) {
208
- if (!cols[c].fixed) break;
209
- map.set(c, left);
210
- left += widths.get(c) ?? 0;
211
- }
212
- return map;
213
- });
214
- const lastFixedIndex = createMemo(() => {
215
- const cols = effectiveColumns();
216
- let last = -1;
217
- for (let c = 0; c < cols.length; c++) {
218
- if (cols[c].fixed) last = c;
219
- else break;
160
+ const {
161
+ hasExpandFeature,
162
+ hasSelectFeature,
163
+ hasReorderFeature,
164
+ registerExpandColRef,
165
+ registerSelectColRef,
166
+ registerReorderColRef,
167
+ selectColLeft,
168
+ reorderColLeft,
169
+ getFixedStyle,
170
+ isLastFixed,
171
+ registerColumnRef
172
+ } = useDataSheetFixedColumns({
173
+ get itemChildren() {
174
+ return local.itemChildren;
175
+ },
176
+ get selectionMode() {
177
+ return local.selectionMode;
178
+ },
179
+ get onItemsReorder() {
180
+ return local.onItemsReorder;
220
181
  }
221
- return last;
222
- });
223
- function getFixedStyle(colIndex) {
224
- const leftVal = fixedLeftMap().get(colIndex);
225
- if (leftVal == null) return void 0;
226
- return `left: ${leftVal}px`;
227
- }
228
- function isLastFixed(colIndex) {
229
- return colIndex === lastFixedIndex();
230
- }
231
- function registerColumnRef(colIndex, el) {
232
- columnRefs.set(colIndex, el);
233
- createResizeObserver(el, () => {
234
- setColumnWidths((prev) => {
235
- const next = new Map(prev);
236
- next.set(colIndex, el.offsetWidth);
237
- return next;
238
- });
239
- });
240
- }
182
+ }, effectiveColumns);
241
183
  const [resizeIndicatorStyle, setResizeIndicatorStyle] = createSignal({
242
184
  display: "none"
243
185
  });
@@ -306,185 +248,68 @@ const DataSheet = (props) => {
306
248
  const heights = headerRowHeights();
307
249
  return heights.reduce((sum, h) => sum + h, 0);
308
250
  });
309
- const [expandedItems, setExpandedItems] = createControllableSignal({
310
- value: () => local.expandedItems ?? [],
311
- onChange: () => local.onExpandedItemsChange
312
- });
313
- function toggleExpand(item) {
314
- const current = expandedItems();
315
- if (current.includes(item)) {
316
- setExpandedItems(current.filter((i) => i !== item));
317
- } else {
318
- setExpandedItems([...current, item]);
251
+ const {
252
+ expandedItems,
253
+ flatItems,
254
+ toggleExpand,
255
+ isAllExpanded,
256
+ toggleExpandAll
257
+ } = useDataSheetExpansion({
258
+ get expandedItems() {
259
+ return local.expandedItems;
260
+ },
261
+ get onExpandedItemsChange() {
262
+ return local.onExpandedItemsChange;
263
+ },
264
+ get itemChildren() {
265
+ return local.itemChildren;
319
266
  }
320
- }
321
- function toggleExpandAll() {
322
- if (!local.getChildren) return;
323
- const indexMap = originalIndexMap();
324
- const allExpandable = collectAllExpandable(pagedItems(), local.getChildren, (item) => indexMap.get(item) ?? -1);
325
- const isAllExpanded2 = allExpandable.every((item) => expandedItems().includes(item));
326
- setExpandedItems(isAllExpanded2 ? [] : allExpandable);
327
- }
328
- const flatItems = createMemo(() => {
329
- const indexMap = originalIndexMap();
330
- return flattenTree(pagedItems(), expandedItems(), local.getChildren, (item) => indexMap.get(item) ?? -1);
331
- });
332
- const [selectedItems, setSelectedItems] = createControllableSignal({
333
- value: () => local.selectedItems ?? [],
334
- onChange: () => local.onSelectedItemsChange
335
- });
336
- const [lastClickedRow, setLastClickedRow] = createSignal(null);
337
- const [lastClickAction, setLastClickAction] = createSignal("select");
338
- function getItemSelectable(item) {
339
- if (!local.isItemSelectable) return true;
340
- return local.isItemSelectable(item);
341
- }
342
- function toggleSelect(item) {
343
- if (getItemSelectable(item) !== true) return;
344
- const isSelected = selectedItems().includes(item);
345
- setLastClickAction(isSelected ? "deselect" : "select");
346
- if (local.selectMode === "single") {
347
- setSelectedItems(isSelected ? [] : [item]);
348
- } else {
349
- setSelectedItems(isSelected ? selectedItems().filter((i) => i !== item) : [...selectedItems(), item]);
350
- }
351
- }
352
- function toggleSelectAll() {
353
- const selectableItems = displayItems().map((flat) => flat.item).filter((item) => getItemSelectable(item) === true);
354
- const isAllSelected = selectableItems.every((item) => selectedItems().includes(item));
355
- setSelectedItems(isAllSelected ? [] : selectableItems);
356
- }
357
- function rangeSelect(targetRow) {
358
- const lastRow = lastClickedRow();
359
- if (lastRow == null) return;
360
- const start = Math.min(lastRow, targetRow);
361
- const end = Math.max(lastRow, targetRow);
362
- const rangeItems = displayItems().slice(start, end + 1).map((flat) => flat.item).filter((item) => getItemSelectable(item) === true);
363
- if (lastClickAction() === "select") {
364
- const newItems = [...selectedItems()];
365
- for (const item of rangeItems) {
366
- if (!newItems.includes(item)) newItems.push(item);
367
- }
368
- setSelectedItems(newItems);
369
- } else {
370
- setSelectedItems(selectedItems().filter((item) => !rangeItems.includes(item)));
267
+ }, pagedItems, originalIndexMap);
268
+ const displayItems = flatItems;
269
+ const {
270
+ selection,
271
+ setSelection,
272
+ getItemSelectable,
273
+ toggleSelect,
274
+ toggleSelectAll,
275
+ rangeSelect,
276
+ lastClickedRow,
277
+ setLastClickedRow
278
+ } = useDataSheetSelection({
279
+ get selectionMode() {
280
+ return local.selectionMode;
281
+ },
282
+ get selection() {
283
+ return local.selection;
284
+ },
285
+ get onSelectionChange() {
286
+ return local.onSelectionChange;
287
+ },
288
+ get itemSelectable() {
289
+ return local.itemSelectable;
371
290
  }
372
- }
291
+ }, displayItems);
373
292
  function selectItem(item) {
374
293
  if (getItemSelectable(item) !== true) return;
375
- if (local.selectMode === "single") {
376
- setSelectedItems([item]);
294
+ if (local.selectionMode === "single") {
295
+ setSelection([item]);
377
296
  } else {
378
- if (!selectedItems().includes(item)) {
379
- setSelectedItems([...selectedItems(), item]);
297
+ if (!selection().includes(item)) {
298
+ setSelection([...selection(), item]);
380
299
  }
381
300
  }
382
301
  }
383
- const [dragState, setDragState] = createSignal(null);
384
- function isDescendant(parent, child) {
385
- if (!local.getChildren) return false;
386
- const childItems = local.getChildren(parent, 0);
387
- if (!childItems) return false;
388
- for (const c of childItems) {
389
- if (c === child) return true;
390
- if (isDescendant(c, child)) return true;
302
+ const {
303
+ dragState,
304
+ onReorderPointerDown
305
+ } = useDataSheetReorder({
306
+ get onItemsReorder() {
307
+ return local.onItemsReorder;
308
+ },
309
+ get itemChildren() {
310
+ return local.itemChildren;
391
311
  }
392
- return false;
393
- }
394
- function onReorderPointerDown(e, item) {
395
- e.preventDefault();
396
- const target = e.currentTarget;
397
- const tableEl = target.closest("table");
398
- const tbody = tableEl.querySelector("tbody");
399
- const rows = Array.from(tbody.rows);
400
- setDragState({
401
- draggingItem: item,
402
- targetItem: null,
403
- position: null
404
- });
405
- startPointerDrag(target, e.pointerId, {
406
- onMove(ev) {
407
- var _a;
408
- let foundTarget = null;
409
- let foundPosition = null;
410
- for (let i = 0; i < rows.length; i++) {
411
- const row = rows[i];
412
- const rect = row.getBoundingClientRect();
413
- if (ev.clientY < rect.top || ev.clientY > rect.bottom) continue;
414
- if (i >= displayItems().length) break;
415
- const flat = displayItems()[i];
416
- if (flat.item === item) break;
417
- if (isDescendant(item, flat.item)) break;
418
- const relY = ev.clientY - rect.top;
419
- const third = rect.height / 3;
420
- if (relY < third) {
421
- foundPosition = "before";
422
- } else if (relY > third * 2) {
423
- foundPosition = "after";
424
- } else {
425
- foundPosition = local.getChildren ? "inside" : relY < rect.height / 2 ? "before" : "after";
426
- }
427
- foundTarget = flat.item;
428
- break;
429
- }
430
- setDragState({
431
- draggingItem: item,
432
- targetItem: foundTarget,
433
- position: foundPosition
434
- });
435
- for (let i = 0; i < rows.length; i++) {
436
- rows[i].removeAttribute("data-dragging");
437
- rows[i].removeAttribute("data-drag-over");
438
- if (i < displayItems().length) {
439
- const flat = displayItems()[i];
440
- if (flat.item === item) {
441
- rows[i].setAttribute("data-dragging", "");
442
- }
443
- if (flat.item === foundTarget && foundPosition === "inside") {
444
- rows[i].setAttribute("data-drag-over", "inside");
445
- }
446
- }
447
- }
448
- const indicatorEl = (_a = tableEl.closest("[data-sheet-scroll]")) == null ? void 0 : _a.querySelector("[data-reorder-indicator]");
449
- if (indicatorEl) {
450
- if (foundTarget != null && foundPosition != null && foundPosition !== "inside") {
451
- const targetIdx = displayItems().findIndex((f) => f.item === foundTarget);
452
- if (targetIdx >= 0) {
453
- const targetRow = rows[targetIdx];
454
- const containerRect = tableEl.closest("[data-sheet-scroll]").getBoundingClientRect();
455
- const rowRect = targetRow.getBoundingClientRect();
456
- const scrollEl = tableEl.closest("[data-sheet-scroll]");
457
- const top = foundPosition === "before" ? rowRect.top - containerRect.top + scrollEl.scrollTop : rowRect.bottom - containerRect.top + scrollEl.scrollTop;
458
- indicatorEl.style.display = "block";
459
- indicatorEl.style.top = `${top}px`;
460
- }
461
- } else {
462
- indicatorEl.style.display = "none";
463
- }
464
- }
465
- },
466
- onEnd() {
467
- var _a, _b;
468
- const state = dragState();
469
- if ((state == null ? void 0 : state.targetItem) != null && state.position != null) {
470
- (_a = local.onItemsReorder) == null ? void 0 : _a.call(local, {
471
- item: state.draggingItem,
472
- targetItem: state.targetItem,
473
- position: state.position
474
- });
475
- }
476
- for (const row of rows) {
477
- row.removeAttribute("data-dragging");
478
- row.removeAttribute("data-drag-over");
479
- }
480
- const indicatorEl = (_b = tableEl.closest("[data-sheet-scroll]")) == null ? void 0 : _b.querySelector("[data-reorder-indicator]");
481
- if (indicatorEl) {
482
- indicatorEl.style.display = "none";
483
- }
484
- setDragState(null);
485
- }
486
- });
487
- }
312
+ }, displayItems);
488
313
  function onTableKeyDown(e) {
489
314
  if (e.key !== "Enter" || e.altKey || e.ctrlKey || e.metaKey) return;
490
315
  const focused = document.activeElement;
@@ -507,621 +332,623 @@ const DataSheet = (props) => {
507
332
  e.preventDefault();
508
333
  targetFocusable.focus();
509
334
  }
510
- const displayItems = flatItems;
511
- const isExpandColLastFixed = () => hasExpandFeature() && !hasSelectFeature() && !hasReorderFeature() && lastFixedIndex() < 0;
512
- const isSelectColLastFixed = () => hasSelectFeature() && !hasReorderFeature() && lastFixedIndex() < 0;
513
- const isReorderColLastFixed = () => hasReorderFeature() && lastFixedIndex() < 0;
335
+ const isExpandColLastFixed = () => hasExpandFeature() && !hasSelectFeature() && !hasReorderFeature() && isLastFixed(-1);
336
+ const isSelectColLastFixed = () => hasSelectFeature() && !hasReorderFeature() && isLastFixed(-1);
337
+ const isReorderColLastFixed = () => hasReorderFeature() && isLastFixed(-1);
514
338
  const featureHeaderRowspan = createMemo(() => {
515
339
  const headerRows = headerTable().length;
516
340
  const summaryRow = hasSummary() ? 1 : 0;
517
341
  return headerRows + summaryRow;
518
342
  });
519
- const isAllExpanded = createMemo(() => {
520
- if (!local.getChildren) return false;
521
- const indexMap = originalIndexMap();
522
- const allExpandable = collectAllExpandable(pagedItems(), local.getChildren, (item) => indexMap.get(item) ?? -1);
523
- return allExpandable.length > 0 && allExpandable.every((item) => expandedItems().includes(item));
524
- });
525
- return (() => {
526
- var _el$ = _tmpl$5(), _el$5 = _el$.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$1 = _el$7.nextSibling, _el$11 = _el$1.nextSibling, _el$12 = _el$6.nextSibling, _el$13 = _el$12.nextSibling;
527
- _$insert(_el$, _$createComponent(Show, {
528
- get when() {
529
- return _$memo(() => !!!local.hideConfigBar)() && (dialog != null || effectivePageCount() > 1);
530
- },
531
- get children() {
532
- var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild;
533
- _$className(_el$2, toolbarClass);
534
- _$insert(_el$2, _$createComponent(Show, {
343
+ void dragState;
344
+ return _$createComponent(ColumnsProvider, {
345
+ get children() {
346
+ return [_$memo(() => local.children), (() => {
347
+ var _el$ = _tmpl$5(), _el$5 = _el$.firstChild, _el$6 = _el$5.firstChild, _el$7 = _el$6.firstChild, _el$1 = _el$7.nextSibling, _el$11 = _el$1.nextSibling, _el$12 = _el$6.nextSibling, _el$13 = _el$12.nextSibling;
348
+ _$insert(_el$, _$createComponent(Show, {
535
349
  get when() {
536
- return effectivePageCount() > 1;
350
+ return _$memo(() => !!!local.hideConfigBar)() && (dialog != null || pageCount() > 1);
537
351
  },
538
352
  get children() {
539
- return _$createComponent(Pagination, {
540
- get page() {
541
- return currentPage();
542
- },
543
- onPageChange: setCurrentPage,
544
- get totalPageCount() {
545
- return effectivePageCount();
546
- },
547
- get displayPageCount() {
548
- return local.displayPageCount;
353
+ var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild;
354
+ _$className(_el$2, toolbarClass);
355
+ _$insert(_el$2, _$createComponent(Show, {
356
+ get when() {
357
+ return pageCount() > 1;
549
358
  },
550
- size: "sm"
551
- });
359
+ get children() {
360
+ return _$createComponent(Pagination, {
361
+ get page() {
362
+ return currentPage();
363
+ },
364
+ onPageChange: setCurrentPage,
365
+ get totalPageCount() {
366
+ return pageCount();
367
+ },
368
+ get displayPageCount() {
369
+ return local.displayPageCount;
370
+ },
371
+ size: "sm"
372
+ });
373
+ }
374
+ }), _el$3);
375
+ _$insert(_el$2, _$createComponent(Show, {
376
+ when: dialog != null,
377
+ get children() {
378
+ var _el$4 = _tmpl$();
379
+ _el$4.$$click = openConfigDialog;
380
+ _$className(_el$4, configButtonClass);
381
+ _$insert(_el$4, _$createComponent(Icon, {
382
+ icon: IconSettings,
383
+ size: "1em"
384
+ }));
385
+ return _el$4;
386
+ }
387
+ }), null);
388
+ return _el$2;
552
389
  }
553
- }), _el$3);
554
- _$insert(_el$2, _$createComponent(Show, {
555
- when: dialog != null,
556
- get children() {
557
- var _el$4 = _tmpl$();
558
- _el$4.$$click = openConfigDialog;
559
- _$className(_el$4, configButtonClass);
560
- _$insert(_el$4, _$createComponent(Icon, {
561
- icon: IconSettings,
562
- size: "1em"
563
- }));
564
- return _el$4;
390
+ }), _el$5);
391
+ _el$6.$$pointerdown = (e) => {
392
+ if (e.shiftKey && hasSelectFeature()) {
393
+ e.preventDefault();
565
394
  }
566
- }), null);
567
- return _el$2;
568
- }
569
- }), _el$5);
570
- _el$6.$$pointerdown = (e) => {
571
- if (e.shiftKey && hasSelectFeature()) {
572
- e.preventDefault();
573
- }
574
- };
575
- _el$6.$$keydown = onTableKeyDown;
576
- _$insert(_el$7, _$createComponent(Show, {
577
- get when() {
578
- return hasExpandFeature();
579
- },
580
- get children() {
581
- return _tmpl$3();
582
- }
583
- }), null);
584
- _$insert(_el$7, _$createComponent(Show, {
585
- get when() {
586
- return hasSelectFeature();
587
- },
588
- get children() {
589
- return _tmpl$3();
590
- }
591
- }), null);
592
- _$insert(_el$7, _$createComponent(Show, {
593
- get when() {
594
- return hasReorderFeature();
595
- },
596
- get children() {
597
- return _tmpl$3();
598
- }
599
- }), null);
600
- _$insert(_el$7, _$createComponent(For, {
601
- get each() {
602
- return effectiveColumns();
603
- },
604
- children: (col) => (() => {
605
- var _el$14 = _tmpl$3();
606
- _$effect((_$p) => _$style(_el$14, col.width != null ? {
607
- width: col.width
608
- } : void 0, _$p));
609
- return _el$14;
610
- })()
611
- }), null);
612
- _$insert(_el$1, _$createComponent(For, {
613
- get each() {
614
- return headerTable();
615
- },
616
- children: (row, rowIndex) => (() => {
617
- var _el$15 = _tmpl$4();
618
- _$use((el) => registerHeaderRow(rowIndex(), el), _el$15);
619
- _$insert(_el$15, _$createComponent(Show, {
395
+ };
396
+ _el$6.$$keydown = onTableKeyDown;
397
+ _$insert(_el$7, _$createComponent(Show, {
620
398
  get when() {
621
- return _$memo(() => !!hasExpandFeature())() && rowIndex() === 0;
399
+ return hasExpandFeature();
622
400
  },
623
401
  get children() {
624
- var _el$16 = _tmpl$6(), _el$17 = _el$16.firstChild, _el$18 = _el$17.firstChild;
625
- _$use(registerExpandColRef, _el$16);
626
- _$className(_el$17, featureCellWrapperClass);
627
- _el$18.$$click = toggleExpandAll;
628
- _$className(_el$18, expandToggleClass);
629
- _$insert(_el$18, _$createComponent(Icon, {
630
- icon: IconChevronDown,
631
- size: "1em",
632
- get ["class"]() {
633
- return clsx("transition-transform", isAllExpanded() ? "rotate-0" : "-rotate-90");
634
- }
635
- }));
636
- _$effect((_p$) => {
637
- var _v$7 = twMerge(featureThClass, fixedClass, "z-[5]", isExpandColLastFixed() ? fixedLastClass : void 0), _v$8 = featureHeaderRowspan(), _v$9 = isAllExpanded() ? i18n.t("dataSheet.collapseAll") : i18n.t("dataSheet.expandAll");
638
- _v$7 !== _p$.e && _$className(_el$16, _p$.e = _v$7);
639
- _v$8 !== _p$.t && _$setAttribute(_el$16, "rowspan", _p$.t = _v$8);
640
- _v$9 !== _p$.a && _$setAttribute(_el$18, "title", _p$.a = _v$9);
641
- return _p$;
642
- }, {
643
- e: void 0,
644
- t: void 0,
645
- a: void 0
646
- });
647
- return _el$16;
402
+ return _tmpl$3();
648
403
  }
649
404
  }), null);
650
- _$insert(_el$15, _$createComponent(Show, {
405
+ _$insert(_el$7, _$createComponent(Show, {
651
406
  get when() {
652
- return _$memo(() => !!hasSelectFeature())() && rowIndex() === 0;
407
+ return hasSelectFeature();
653
408
  },
654
409
  get children() {
655
- var _el$19 = _tmpl$8();
656
- _$use(registerSelectColRef, _el$19);
657
- _$insert(_el$19, _$createComponent(Show, {
658
- get when() {
659
- return local.selectMode === "multiple";
660
- },
661
- get children() {
662
- var _el$20 = _tmpl$7();
663
- _el$20.$$click = () => toggleSelectAll();
664
- _$className(_el$20, featureCellClickableClass);
665
- _$insert(_el$20, _$createComponent(Checkbox, {
666
- get value() {
667
- const selectableItems = displayItems().map((flat) => flat.item).filter((item) => getItemSelectable(item) === true);
668
- return selectableItems.length > 0 && selectableItems.every((item) => selectedItems().includes(item));
669
- },
670
- inset: true,
671
- "class": "pointer-events-none"
672
- }));
673
- return _el$20;
674
- }
675
- }));
676
- _$effect((_p$) => {
677
- var _v$0 = twMerge(featureThClass, fixedClass, "z-[5]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$1 = featureHeaderRowspan(), _v$10 = selectColLeft();
678
- _v$0 !== _p$.e && _$className(_el$19, _p$.e = _v$0);
679
- _v$1 !== _p$.t && _$setAttribute(_el$19, "rowspan", _p$.t = _v$1);
680
- _v$10 !== _p$.a && _$setStyleProperty(_el$19, "left", _p$.a = _v$10);
681
- return _p$;
682
- }, {
683
- e: void 0,
684
- t: void 0,
685
- a: void 0
686
- });
687
- return _el$19;
410
+ return _tmpl$3();
688
411
  }
689
412
  }), null);
690
- _$insert(_el$15, _$createComponent(Show, {
413
+ _$insert(_el$7, _$createComponent(Show, {
691
414
  get when() {
692
- return _$memo(() => !!hasReorderFeature())() && rowIndex() === 0;
415
+ return hasReorderFeature();
693
416
  },
694
417
  get children() {
695
- var _el$21 = _tmpl$8();
696
- _$use(registerReorderColRef, _el$21);
697
- _$effect((_p$) => {
698
- var _v$11 = twMerge(featureThClass, fixedClass, "z-[5]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$12 = featureHeaderRowspan(), _v$13 = reorderColLeft();
699
- _v$11 !== _p$.e && _$className(_el$21, _p$.e = _v$11);
700
- _v$12 !== _p$.t && _$setAttribute(_el$21, "rowspan", _p$.t = _v$12);
701
- _v$13 !== _p$.a && _$setStyleProperty(_el$21, "left", _p$.a = _v$13);
702
- return _p$;
703
- }, {
704
- e: void 0,
705
- t: void 0,
706
- a: void 0
707
- });
708
- return _el$21;
418
+ return _tmpl$3();
709
419
  }
710
420
  }), null);
711
- _$insert(_el$15, _$createComponent(For, {
712
- each: row,
713
- children: (cell, cellColIndex) => _$createComponent(Show, {
714
- when: cell,
715
- children: (c) => {
716
- const isSortable = () => c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].sortable;
717
- const colKey = () => c().colIndex != null ? effectiveColumns()[c().colIndex].key : void 0;
718
- const isGroupFixed = () => {
719
- if (c().isLastRow) return false;
720
- const start = cellColIndex();
721
- const span = c().colspan;
722
- const cols = effectiveColumns();
723
- for (let i = start; i < start + span && i < cols.length; i++) {
724
- if (!cols[i].fixed) return false;
725
- }
726
- return true;
727
- };
728
- const isCellFixed = () => c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].fixed || isGroupFixed();
729
- const isCellLastFixed = () => {
730
- if (c().isLastRow && c().colIndex != null) return isLastFixed(c().colIndex);
731
- if (isGroupFixed()) {
732
- const lastCol = cellColIndex() + c().colspan - 1;
733
- return isLastFixed(lastCol);
734
- }
735
- return false;
736
- };
737
- const cellStyle = () => {
738
- const parts = [];
739
- const top = headerRowTops()[rowIndex()];
740
- parts.push(`top: ${top}px`);
741
- if (c().isLastRow && c().colIndex != null) {
742
- const left = getFixedStyle(c().colIndex);
743
- if (left != null) parts.push(left);
744
- const col = effectiveColumns()[c().colIndex];
745
- if (col.width != null) parts.push(`max-width: ${col.width}`);
746
- } else if (isGroupFixed()) {
747
- const left = getFixedStyle(cellColIndex());
748
- if (left != null) parts.push(left);
749
- }
750
- return parts.length > 0 ? parts.join("; ") : void 0;
751
- };
752
- return (() => {
753
- var _el$22 = _tmpl$9(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild;
754
- _el$22.$$click = (e) => {
755
- if (!isSortable()) return;
756
- const key = colKey();
757
- if (key == null) return;
758
- toggleSort(key, e.shiftKey || e.ctrlKey);
759
- };
760
- _$use((el) => {
761
- if (c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].fixed) {
762
- registerColumnRef(c().colIndex, el);
763
- }
764
- }, _el$22);
765
- _$insert(_el$24, () => {
766
- var _a, _b;
767
- return ((_b = (_a = c()).headerContent) == null ? void 0 : _b.call(_a)) ?? c().text;
768
- });
769
- _$insert(_el$23, _$createComponent(Show, {
770
- get when() {
771
- return _$memo(() => !!isSortable())() && colKey();
772
- },
773
- children: (key) => {
774
- const sortDef = () => getSortDef(key());
775
- const sortIndex = () => getSortIndex(key());
776
- return (() => {
777
- var _el$26 = _tmpl$7();
778
- _$className(_el$26, sortIconClass);
779
- _$insert(_el$26, _$createComponent(Show, {
780
- get when() {
781
- var _a;
782
- return ((_a = sortDef()) == null ? void 0 : _a.desc) === false;
783
- },
784
- get children() {
785
- return _$createComponent(Icon, {
786
- icon: IconSortAscending
787
- });
788
- }
789
- }), null);
790
- _$insert(_el$26, _$createComponent(Show, {
791
- get when() {
792
- var _a;
793
- return ((_a = sortDef()) == null ? void 0 : _a.desc) === true;
794
- },
795
- get children() {
796
- return _$createComponent(Icon, {
797
- icon: IconSortDescending
798
- });
799
- }
800
- }), null);
801
- _$insert(_el$26, _$createComponent(Show, {
802
- get when() {
803
- return sortDef() == null;
804
- },
805
- get children() {
806
- return _$createComponent(Icon, {
807
- icon: IconArrowsSort,
808
- "class": "opacity-30"
809
- });
810
- }
811
- }), null);
812
- _$insert(_el$26, _$createComponent(Show, {
813
- get when() {
814
- return sortIndex();
815
- },
816
- children: (idx) => (() => {
817
- var _el$27 = _tmpl$0();
818
- _$insert(_el$27, idx);
819
- return _el$27;
820
- })()
821
- }), null);
822
- return _el$26;
823
- })();
824
- }
825
- }), null);
826
- _$insert(_el$22, _$createComponent(Show, {
827
- get when() {
828
- return _$memo(() => !!(c().isLastRow && c().colIndex != null))() && effectiveColumns()[c().colIndex].resizable;
829
- },
830
- get children() {
831
- var _el$25 = _tmpl$7();
832
- _el$25.$$dblclick = (e) => {
833
- e.stopPropagation();
834
- onResizerDoubleClick(effectiveColumns()[c().colIndex].key);
835
- };
836
- _el$25.$$pointerdown = (e) => onResizerPointerdown(e, effectiveColumns()[c().colIndex].key);
837
- _el$25.$$click = (e) => e.stopPropagation();
838
- _$className(_el$25, resizerClass);
839
- return _el$25;
840
- }
841
- }), null);
842
- _$effect((_p$) => {
843
- var _v$14 = twMerge(thClass, fixedClass, isSortable() ? sortableThClass : void 0, isCellFixed() ? "z-[5]" : "z-[3]", isCellLastFixed() ? fixedLastClass : void 0), _v$15 = c().colspan > 1 ? c().colspan : void 0, _v$16 = c().rowspan > 1 ? c().rowspan : void 0, _v$17 = cellStyle(), _v$18 = c().isLastRow && c().colIndex != null ? effectiveColumns()[c().colIndex].tooltip ?? c().text : c().text, _v$19 = clsx("flex items-center gap-2", thContentClass);
844
- _v$14 !== _p$.e && _$className(_el$22, _p$.e = _v$14);
845
- _v$15 !== _p$.t && _$setAttribute(_el$22, "colspan", _p$.t = _v$15);
846
- _v$16 !== _p$.a && _$setAttribute(_el$22, "rowspan", _p$.a = _v$16);
847
- _p$.o = _$style(_el$22, _v$17, _p$.o);
848
- _v$18 !== _p$.i && _$setAttribute(_el$22, "title", _p$.i = _v$18);
849
- _v$19 !== _p$.n && _$className(_el$23, _p$.n = _v$19);
850
- return _p$;
851
- }, {
852
- e: void 0,
853
- t: void 0,
854
- a: void 0,
855
- o: void 0,
856
- i: void 0,
857
- n: void 0
858
- });
859
- return _el$22;
860
- })();
861
- }
862
- })
863
- }), null);
864
- return _el$15;
865
- })()
866
- }), null);
867
- _$insert(_el$1, _$createComponent(Show, {
868
- get when() {
869
- return hasSummary();
870
- },
871
- get children() {
872
- var _el$10 = _tmpl$4();
873
- _$insert(_el$10, _$createComponent(For, {
421
+ _$insert(_el$7, _$createComponent(For, {
874
422
  get each() {
875
423
  return effectiveColumns();
876
424
  },
877
- children: (col, colIndex) => {
878
- const summaryStyle = () => {
879
- const parts = [];
880
- parts.push(`top: ${summaryRowTop()}px`);
881
- const left = getFixedStyle(colIndex());
882
- if (left != null) parts.push(left);
883
- return parts.join("; ");
884
- };
885
- return (() => {
886
- var _el$28 = _tmpl$1(), _el$29 = _el$28.firstChild;
887
- _$className(_el$29, thContentClass);
888
- _$insert(_el$29, () => {
889
- var _a;
890
- return (_a = col.summary) == null ? void 0 : _a.call(col);
891
- });
892
- _$effect((_p$) => {
893
- var _v$20 = twMerge(thClass, summaryThClass, fixedClass, col.fixed ? "z-[5]" : "z-[3]", isLastFixed(colIndex()) ? fixedLastClass : void 0), _v$21 = summaryStyle();
894
- _v$20 !== _p$.e && _$className(_el$28, _p$.e = _v$20);
895
- _p$.t = _$style(_el$28, _v$21, _p$.t);
896
- return _p$;
897
- }, {
898
- e: void 0,
899
- t: void 0
900
- });
901
- return _el$28;
902
- })();
903
- }
904
- }));
905
- return _el$10;
906
- }
907
- }), null);
908
- _$insert(_el$11, _$createComponent(For, {
909
- get each() {
910
- return displayItems();
911
- },
912
- children: (flat) => (() => {
913
- var _el$30 = _tmpl$4();
914
- _el$30.$$click = () => {
915
- if (local.autoSelect === "click") {
916
- selectItem(flat.item);
917
- }
918
- };
919
- _$insert(_el$30, _$createComponent(Show, {
920
- get when() {
921
- return hasExpandFeature();
425
+ children: (col) => (() => {
426
+ var _el$14 = _tmpl$3();
427
+ _$effect((_$p) => _$style(_el$14, col.width != null ? {
428
+ width: col.width.replace(/;/g, "")
429
+ } : void 0, _$p));
430
+ return _el$14;
431
+ })()
432
+ }), null);
433
+ _$insert(_el$1, _$createComponent(For, {
434
+ get each() {
435
+ return headerTable();
922
436
  },
923
- get children() {
924
- var _el$31 = _tmpl$11(), _el$32 = _el$31.firstChild;
925
- _$className(_el$32, featureCellBodyWrapperClass);
926
- _$insert(_el$32, _$createComponent(For, {
927
- get each() {
928
- return Array.from({
929
- length: flat.depth
930
- });
931
- },
932
- children: () => (() => {
933
- var _el$37 = _tmpl$13(), _el$38 = _el$37.firstChild;
934
- _$className(_el$37, expandIndentGuideClass);
935
- _$className(_el$38, expandIndentGuideLineClass);
936
- return _el$37;
937
- })()
938
- }), null);
939
- _$insert(_el$32, _$createComponent(Show, {
437
+ children: (row, rowIndex) => (() => {
438
+ var _el$15 = _tmpl$4();
439
+ _$use((el) => registerHeaderRow(rowIndex(), el), _el$15);
440
+ _$insert(_el$15, _$createComponent(Show, {
940
441
  get when() {
941
- return flat.hasChildren;
442
+ return _$memo(() => !!hasExpandFeature())() && rowIndex() === 0;
942
443
  },
943
444
  get children() {
944
- var _el$33 = _tmpl$10();
945
- _el$33.$$click = () => toggleExpand(flat.item);
946
- _$className(_el$33, expandToggleClass);
947
- _$insert(_el$33, _$createComponent(Icon, {
445
+ var _el$16 = _tmpl$6(), _el$17 = _el$16.firstChild, _el$18 = _el$17.firstChild;
446
+ _$use(registerExpandColRef, _el$16);
447
+ _$className(_el$17, featureCellWrapperClass);
448
+ _$addEventListener(_el$18, "click", toggleExpandAll, true);
449
+ _$className(_el$18, expandToggleClass);
450
+ _$insert(_el$18, _$createComponent(Icon, {
948
451
  icon: IconChevronDown,
949
452
  size: "1em",
950
453
  get ["class"]() {
951
- return clsx("transition-transform", expandedItems().includes(flat.item) ? "rotate-0" : "-rotate-90");
454
+ return clsx("transition-transform", isAllExpanded() ? "rotate-0" : "-rotate-90");
952
455
  }
953
456
  }));
954
- return _el$33;
457
+ _$effect((_p$) => {
458
+ var _v$7 = twMerge(featureThClass, fixedClass, "z-[5]", isExpandColLastFixed() ? fixedLastClass : void 0), _v$8 = featureHeaderRowspan(), _v$9 = isAllExpanded() ? i18n.t("dataSheet.collapseAll") : i18n.t("dataSheet.expandAll");
459
+ _v$7 !== _p$.e && _$className(_el$16, _p$.e = _v$7);
460
+ _v$8 !== _p$.t && _$setAttribute(_el$16, "rowspan", _p$.t = _v$8);
461
+ _v$9 !== _p$.a && _$setAttribute(_el$18, "title", _p$.a = _v$9);
462
+ return _p$;
463
+ }, {
464
+ e: void 0,
465
+ t: void 0,
466
+ a: void 0
467
+ });
468
+ return _el$16;
955
469
  }
956
470
  }), null);
957
- _$effect(() => _$className(_el$31, twMerge(featureTdClass, fixedClass, "z-[2]", isExpandColLastFixed() ? fixedLastClass : void 0)));
958
- return _el$31;
959
- }
960
- }), null);
961
- _$insert(_el$30, _$createComponent(Show, {
962
- get when() {
963
- return hasSelectFeature();
964
- },
965
- get children() {
966
- return (() => {
967
- const selectable = () => getItemSelectable(flat.item);
968
- const isSelected = () => selectedItems().includes(flat.item);
969
- const rowIndex = () => flat.row;
970
- return (() => {
971
- var _el$39 = _tmpl$14();
972
- _$insert(_el$39, _$createComponent(Show, {
471
+ _$insert(_el$15, _$createComponent(Show, {
472
+ get when() {
473
+ return _$memo(() => !!hasSelectFeature())() && rowIndex() === 0;
474
+ },
475
+ get children() {
476
+ var _el$19 = _tmpl$8();
477
+ _$use(registerSelectColRef, _el$19);
478
+ _$insert(_el$19, _$createComponent(Show, {
973
479
  get when() {
974
- return local.selectMode === "multiple";
975
- },
976
- get fallback() {
977
- return (
978
- /* single mode */
979
- _$createComponent(Show, {
980
- get when() {
981
- return selectable() === true;
982
- },
983
- get children() {
984
- var _el$41 = _tmpl$13(), _el$42 = _el$41.firstChild;
985
- _el$41.$$click = () => toggleSelect(flat.item);
986
- _$className(_el$41, featureCellBodyClickableClass);
987
- _$insert(_el$42, _$createComponent(Icon, {
988
- icon: IconChevronRight,
989
- size: "1em"
990
- }));
991
- _$effect(() => _$className(_el$42, twMerge(selectSingleClass, isSelected() ? selectSingleSelectedClass : selectSingleUnselectedClass)));
992
- return _el$41;
993
- }
994
- })
995
- );
480
+ return local.selectionMode === "multiple";
996
481
  },
997
482
  get children() {
998
- var _el$40 = _tmpl$7();
999
- _el$40.$$click = (e) => {
1000
- if (e.shiftKey) {
1001
- rangeSelect(rowIndex());
1002
- } else {
1003
- toggleSelect(flat.item);
1004
- }
1005
- setLastClickedRow(rowIndex());
1006
- };
1007
- _$className(_el$40, featureCellBodyClickableClass);
1008
- _$insert(_el$40, _$createComponent(Checkbox, {
483
+ var _el$20 = _tmpl$7();
484
+ _el$20.$$click = () => toggleSelectAll();
485
+ _$className(_el$20, featureCellClickableClass);
486
+ _$insert(_el$20, _$createComponent(Checkbox, {
1009
487
  get value() {
1010
- return isSelected();
1011
- },
1012
- get disabled() {
1013
- return selectable() !== true;
488
+ const selectableItems = displayItems().map((flat) => flat.item).filter((item) => getItemSelectable(item) === true);
489
+ return selectableItems.length > 0 && selectableItems.every((item) => selection().includes(item));
1014
490
  },
1015
491
  inset: true,
1016
- get ["class"]() {
1017
- return twMerge("pointer-events-none", lastClickedRow() === rowIndex() ? "[&>div]:ring-2 [&>div]:ring-primary-200 dark:[&>div]:ring-primary-700" : void 0);
1018
- }
492
+ "class": "pointer-events-none"
1019
493
  }));
1020
- _$effect(() => _$setAttribute(_el$40, "title", typeof selectable() === "string" ? selectable() : void 0));
1021
- return _el$40;
494
+ return _el$20;
1022
495
  }
1023
496
  }));
1024
497
  _$effect((_p$) => {
1025
- var _v$26 = twMerge(featureTdClass, fixedClass, "z-[2]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$27 = selectColLeft();
1026
- _v$26 !== _p$.e && _$className(_el$39, _p$.e = _v$26);
1027
- _v$27 !== _p$.t && _$setStyleProperty(_el$39, "left", _p$.t = _v$27);
498
+ var _v$0 = twMerge(featureThClass, fixedClass, "z-[5]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$1 = featureHeaderRowspan(), _v$10 = selectColLeft();
499
+ _v$0 !== _p$.e && _$className(_el$19, _p$.e = _v$0);
500
+ _v$1 !== _p$.t && _$setAttribute(_el$19, "rowspan", _p$.t = _v$1);
501
+ _v$10 !== _p$.a && _$setStyleProperty(_el$19, "left", _p$.a = _v$10);
1028
502
  return _p$;
1029
503
  }, {
1030
504
  e: void 0,
1031
- t: void 0
505
+ t: void 0,
506
+ a: void 0
1032
507
  });
1033
- return _el$39;
1034
- })();
1035
- })();
1036
- }
508
+ return _el$19;
509
+ }
510
+ }), null);
511
+ _$insert(_el$15, _$createComponent(Show, {
512
+ get when() {
513
+ return _$memo(() => !!hasReorderFeature())() && rowIndex() === 0;
514
+ },
515
+ get children() {
516
+ var _el$21 = _tmpl$8();
517
+ _$use(registerReorderColRef, _el$21);
518
+ _$effect((_p$) => {
519
+ var _v$11 = twMerge(featureThClass, fixedClass, "z-[5]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$12 = featureHeaderRowspan(), _v$13 = reorderColLeft();
520
+ _v$11 !== _p$.e && _$className(_el$21, _p$.e = _v$11);
521
+ _v$12 !== _p$.t && _$setAttribute(_el$21, "rowspan", _p$.t = _v$12);
522
+ _v$13 !== _p$.a && _$setStyleProperty(_el$21, "left", _p$.a = _v$13);
523
+ return _p$;
524
+ }, {
525
+ e: void 0,
526
+ t: void 0,
527
+ a: void 0
528
+ });
529
+ return _el$21;
530
+ }
531
+ }), null);
532
+ _$insert(_el$15, _$createComponent(For, {
533
+ each: row,
534
+ children: (cell, cellColIndex) => _$createComponent(Show, {
535
+ when: cell,
536
+ children: (c) => {
537
+ const isSortable = () => c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].sortable;
538
+ const colKey = () => c().colIndex != null ? effectiveColumns()[c().colIndex].key : void 0;
539
+ const isGroupFixed = () => {
540
+ if (c().isLastRow) return false;
541
+ const start = cellColIndex();
542
+ const span = c().colspan;
543
+ const cols = effectiveColumns();
544
+ for (let i = start; i < start + span && i < cols.length; i++) {
545
+ if (!cols[i].fixed) return false;
546
+ }
547
+ return true;
548
+ };
549
+ const isCellFixed = () => c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].fixed || isGroupFixed();
550
+ const isCellLastFixed = () => {
551
+ if (c().isLastRow && c().colIndex != null) return isLastFixed(c().colIndex);
552
+ if (isGroupFixed()) {
553
+ const lastCol = cellColIndex() + c().colspan - 1;
554
+ return isLastFixed(lastCol);
555
+ }
556
+ return false;
557
+ };
558
+ const cellStyle = () => {
559
+ const parts = [];
560
+ const top = headerRowTops()[rowIndex()];
561
+ parts.push(`top: ${top}px`);
562
+ if (c().isLastRow && c().colIndex != null) {
563
+ const left = getFixedStyle(c().colIndex);
564
+ if (left != null) parts.push(left);
565
+ const col = effectiveColumns()[c().colIndex];
566
+ if (col.width != null) parts.push(`max-width: ${col.width.replace(/;/g, "")}`);
567
+ } else if (isGroupFixed()) {
568
+ const left = getFixedStyle(cellColIndex());
569
+ if (left != null) parts.push(left);
570
+ }
571
+ return parts.length > 0 ? parts.join("; ") : void 0;
572
+ };
573
+ return (() => {
574
+ var _el$22 = _tmpl$9(), _el$23 = _el$22.firstChild, _el$24 = _el$23.firstChild;
575
+ _el$22.$$click = (e) => {
576
+ if (!isSortable()) return;
577
+ const key = colKey();
578
+ if (key == null) return;
579
+ toggleSort(key, e.shiftKey || e.ctrlKey);
580
+ };
581
+ _$use((el) => {
582
+ if (c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex].fixed) {
583
+ registerColumnRef(c().colIndex, el);
584
+ }
585
+ }, _el$22);
586
+ _$insert(_el$24, () => {
587
+ var _a, _b;
588
+ return ((_b = (_a = c()).headerContent) == null ? void 0 : _b.call(_a)) ?? c().text;
589
+ });
590
+ _$insert(_el$23, _$createComponent(Show, {
591
+ get when() {
592
+ return _$memo(() => !!isSortable())() && colKey();
593
+ },
594
+ children: (key) => {
595
+ const sortDef = () => getSortDef(key());
596
+ const sortIdx = () => sortIndex(key());
597
+ return (() => {
598
+ var _el$26 = _tmpl$7();
599
+ _$className(_el$26, sortIconClass);
600
+ _$insert(_el$26, _$createComponent(Show, {
601
+ get when() {
602
+ var _a;
603
+ return ((_a = sortDef()) == null ? void 0 : _a.desc) === false;
604
+ },
605
+ get children() {
606
+ return _$createComponent(Icon, {
607
+ icon: IconSortAscending
608
+ });
609
+ }
610
+ }), null);
611
+ _$insert(_el$26, _$createComponent(Show, {
612
+ get when() {
613
+ var _a;
614
+ return ((_a = sortDef()) == null ? void 0 : _a.desc) === true;
615
+ },
616
+ get children() {
617
+ return _$createComponent(Icon, {
618
+ icon: IconSortDescending
619
+ });
620
+ }
621
+ }), null);
622
+ _$insert(_el$26, _$createComponent(Show, {
623
+ get when() {
624
+ return sortDef() == null;
625
+ },
626
+ get children() {
627
+ return _$createComponent(Icon, {
628
+ icon: IconArrowsSort,
629
+ "class": "opacity-30"
630
+ });
631
+ }
632
+ }), null);
633
+ _$insert(_el$26, _$createComponent(Show, {
634
+ get when() {
635
+ return sortIdx();
636
+ },
637
+ children: (idx) => (() => {
638
+ var _el$27 = _tmpl$0();
639
+ _$insert(_el$27, idx);
640
+ return _el$27;
641
+ })()
642
+ }), null);
643
+ return _el$26;
644
+ })();
645
+ }
646
+ }), null);
647
+ _$insert(_el$22, _$createComponent(Show, {
648
+ get when() {
649
+ return _$memo(() => !!(c().isLastRow && c().colIndex != null))() && effectiveColumns()[c().colIndex].resizable;
650
+ },
651
+ get children() {
652
+ var _el$25 = _tmpl$7();
653
+ _el$25.$$dblclick = (e) => {
654
+ e.stopPropagation();
655
+ onResizerDoubleClick(effectiveColumns()[c().colIndex].key);
656
+ };
657
+ _el$25.$$pointerdown = (e) => onResizerPointerdown(e, effectiveColumns()[c().colIndex].key);
658
+ _el$25.$$click = (e) => e.stopPropagation();
659
+ _$className(_el$25, resizerClass);
660
+ return _el$25;
661
+ }
662
+ }), null);
663
+ _$effect((_p$) => {
664
+ var _v$14 = twMerge(thClass, fixedClass, isSortable() ? sortableThClass : void 0, isCellFixed() ? "z-[5]" : "z-[3]", isCellLastFixed() ? fixedLastClass : void 0), _v$15 = c().colspan > 1 ? c().colspan : void 0, _v$16 = c().rowspan > 1 ? c().rowspan : void 0, _v$17 = cellStyle(), _v$18 = c().isLastRow && c().colIndex != null ? effectiveColumns()[c().colIndex].tooltip ?? c().text : c().text, _v$19 = clsx("flex items-center gap-2", thContentClass);
665
+ _v$14 !== _p$.e && _$className(_el$22, _p$.e = _v$14);
666
+ _v$15 !== _p$.t && _$setAttribute(_el$22, "colspan", _p$.t = _v$15);
667
+ _v$16 !== _p$.a && _$setAttribute(_el$22, "rowspan", _p$.a = _v$16);
668
+ _p$.o = _$style(_el$22, _v$17, _p$.o);
669
+ _v$18 !== _p$.i && _$setAttribute(_el$22, "title", _p$.i = _v$18);
670
+ _v$19 !== _p$.n && _$className(_el$23, _p$.n = _v$19);
671
+ return _p$;
672
+ }, {
673
+ e: void 0,
674
+ t: void 0,
675
+ a: void 0,
676
+ o: void 0,
677
+ i: void 0,
678
+ n: void 0
679
+ });
680
+ return _el$22;
681
+ })();
682
+ }
683
+ })
684
+ }), null);
685
+ return _el$15;
686
+ })()
1037
687
  }), null);
1038
- _$insert(_el$30, _$createComponent(Show, {
688
+ _$insert(_el$1, _$createComponent(Show, {
1039
689
  get when() {
1040
- return hasReorderFeature();
690
+ return hasSummary();
1041
691
  },
1042
692
  get children() {
1043
- var _el$34 = _tmpl$12(), _el$35 = _el$34.firstChild, _el$36 = _el$35.firstChild;
1044
- _el$35.$$pointerdown = (e) => onReorderPointerDown(e, flat.item);
1045
- _$className(_el$35, reorderCellWrapperClass);
1046
- _$className(_el$36, reorderHandleClass);
1047
- _$insert(_el$36, _$createComponent(Icon, {
1048
- icon: IconGripVertical,
1049
- size: "1em"
693
+ var _el$10 = _tmpl$4();
694
+ _$insert(_el$10, _$createComponent(For, {
695
+ get each() {
696
+ return effectiveColumns();
697
+ },
698
+ children: (col, colIndex) => {
699
+ const summaryStyle = () => {
700
+ const parts = [];
701
+ parts.push(`top: ${summaryRowTop()}px`);
702
+ const left = getFixedStyle(colIndex());
703
+ if (left != null) parts.push(left);
704
+ return parts.join("; ");
705
+ };
706
+ return (() => {
707
+ var _el$28 = _tmpl$1(), _el$29 = _el$28.firstChild;
708
+ _$className(_el$29, thContentClass);
709
+ _$insert(_el$29, () => {
710
+ var _a;
711
+ return (_a = col.summary) == null ? void 0 : _a.call(col);
712
+ });
713
+ _$effect((_p$) => {
714
+ var _v$20 = twMerge(thClass, summaryThClass, fixedClass, col.fixed ? "z-[5]" : "z-[3]", isLastFixed(colIndex()) ? fixedLastClass : void 0), _v$21 = summaryStyle();
715
+ _v$20 !== _p$.e && _$className(_el$28, _p$.e = _v$20);
716
+ _p$.t = _$style(_el$28, _v$21, _p$.t);
717
+ return _p$;
718
+ }, {
719
+ e: void 0,
720
+ t: void 0
721
+ });
722
+ return _el$28;
723
+ })();
724
+ }
1050
725
  }));
1051
- _$effect((_p$) => {
1052
- var _v$22 = twMerge(featureTdClass, fixedClass, "z-[2]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$23 = reorderColLeft();
1053
- _v$22 !== _p$.e && _$className(_el$34, _p$.e = _v$22);
1054
- _v$23 !== _p$.t && _$setStyleProperty(_el$34, "left", _p$.t = _v$23);
1055
- return _p$;
1056
- }, {
1057
- e: void 0,
1058
- t: void 0
1059
- });
1060
- return _el$34;
726
+ return _el$10;
1061
727
  }
1062
728
  }), null);
1063
- _$insert(_el$30, _$createComponent(For, {
729
+ _$insert(_el$11, _$createComponent(For, {
1064
730
  get each() {
1065
- return effectiveColumns();
731
+ return displayItems();
1066
732
  },
1067
- children: (col, colIndex) => (() => {
1068
- var _el$43 = _tmpl$14();
1069
- _$insert(_el$43, () => col.cell({
1070
- item: flat.item,
1071
- index: flat.index,
1072
- row: flat.row,
1073
- depth: flat.depth
1074
- }));
733
+ children: (flat) => (() => {
734
+ var _el$30 = _tmpl$4();
735
+ _el$30.$$click = () => {
736
+ if (local.autoSelect === "click") {
737
+ selectItem(flat.item);
738
+ }
739
+ };
740
+ _$insert(_el$30, _$createComponent(Show, {
741
+ get when() {
742
+ return hasExpandFeature();
743
+ },
744
+ get children() {
745
+ var _el$31 = _tmpl$11(), _el$32 = _el$31.firstChild;
746
+ _$className(_el$32, featureCellBodyWrapperClass);
747
+ _$insert(_el$32, _$createComponent(For, {
748
+ get each() {
749
+ return Array.from({
750
+ length: flat.depth
751
+ });
752
+ },
753
+ children: () => (() => {
754
+ var _el$37 = _tmpl$13(), _el$38 = _el$37.firstChild;
755
+ _$className(_el$37, expandIndentGuideClass);
756
+ _$className(_el$38, expandIndentGuideLineClass);
757
+ return _el$37;
758
+ })()
759
+ }), null);
760
+ _$insert(_el$32, _$createComponent(Show, {
761
+ get when() {
762
+ return flat.hasChildren;
763
+ },
764
+ get children() {
765
+ var _el$33 = _tmpl$10();
766
+ _el$33.$$click = () => toggleExpand(flat.item);
767
+ _$className(_el$33, expandToggleClass);
768
+ _$insert(_el$33, _$createComponent(Icon, {
769
+ icon: IconChevronDown,
770
+ size: "1em",
771
+ get ["class"]() {
772
+ return clsx("transition-transform", expandedItems().includes(flat.item) ? "rotate-0" : "-rotate-90");
773
+ }
774
+ }));
775
+ return _el$33;
776
+ }
777
+ }), null);
778
+ _$effect(() => _$className(_el$31, twMerge(featureTdClass, fixedClass, "z-[2]", isExpandColLastFixed() ? fixedLastClass : void 0)));
779
+ return _el$31;
780
+ }
781
+ }), null);
782
+ _$insert(_el$30, _$createComponent(Show, {
783
+ get when() {
784
+ return hasSelectFeature();
785
+ },
786
+ get children() {
787
+ return (() => {
788
+ const selectable = () => getItemSelectable(flat.item);
789
+ const isSelected = () => selection().includes(flat.item);
790
+ const rowIndex = () => flat.row;
791
+ return (() => {
792
+ var _el$39 = _tmpl$14();
793
+ _$insert(_el$39, _$createComponent(Show, {
794
+ get when() {
795
+ return local.selectionMode === "multiple";
796
+ },
797
+ get fallback() {
798
+ return (
799
+ /* single mode */
800
+ _$createComponent(Show, {
801
+ get when() {
802
+ return selectable() === true;
803
+ },
804
+ get children() {
805
+ var _el$41 = _tmpl$13(), _el$42 = _el$41.firstChild;
806
+ _el$41.$$click = () => toggleSelect(flat.item);
807
+ _$className(_el$41, featureCellBodyClickableClass);
808
+ _$insert(_el$42, _$createComponent(Icon, {
809
+ icon: IconChevronRight,
810
+ size: "1em"
811
+ }));
812
+ _$effect(() => _$className(_el$42, twMerge(selectSingleClass, isSelected() ? selectSingleSelectedClass : selectSingleUnselectedClass)));
813
+ return _el$41;
814
+ }
815
+ })
816
+ );
817
+ },
818
+ get children() {
819
+ var _el$40 = _tmpl$7();
820
+ _el$40.$$click = (e) => {
821
+ if (e.shiftKey) {
822
+ rangeSelect(rowIndex());
823
+ } else {
824
+ toggleSelect(flat.item);
825
+ }
826
+ setLastClickedRow(rowIndex());
827
+ };
828
+ _$className(_el$40, featureCellBodyClickableClass);
829
+ _$insert(_el$40, _$createComponent(Checkbox, {
830
+ get value() {
831
+ return isSelected();
832
+ },
833
+ get disabled() {
834
+ return selectable() !== true;
835
+ },
836
+ inset: true,
837
+ get ["class"]() {
838
+ return twMerge("pointer-events-none", lastClickedRow() === rowIndex() ? "[&>div]:ring-2 [&>div]:ring-primary-200 dark:[&>div]:ring-primary-700" : void 0);
839
+ }
840
+ }));
841
+ _$effect(() => _$setAttribute(_el$40, "title", typeof selectable() === "string" ? selectable() : void 0));
842
+ return _el$40;
843
+ }
844
+ }));
845
+ _$effect((_p$) => {
846
+ var _v$26 = twMerge(featureTdClass, fixedClass, "z-[2]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$27 = selectColLeft();
847
+ _v$26 !== _p$.e && _$className(_el$39, _p$.e = _v$26);
848
+ _v$27 !== _p$.t && _$setStyleProperty(_el$39, "left", _p$.t = _v$27);
849
+ return _p$;
850
+ }, {
851
+ e: void 0,
852
+ t: void 0
853
+ });
854
+ return _el$39;
855
+ })();
856
+ })();
857
+ }
858
+ }), null);
859
+ _$insert(_el$30, _$createComponent(Show, {
860
+ get when() {
861
+ return hasReorderFeature();
862
+ },
863
+ get children() {
864
+ var _el$34 = _tmpl$12(), _el$35 = _el$34.firstChild, _el$36 = _el$35.firstChild;
865
+ _el$35.$$pointerdown = (e) => onReorderPointerDown(e, flat.item);
866
+ _$className(_el$35, reorderCellWrapperClass);
867
+ _$className(_el$36, reorderHandleClass);
868
+ _$insert(_el$36, _$createComponent(Icon, {
869
+ icon: IconGripVertical,
870
+ size: "1em"
871
+ }));
872
+ _$effect((_p$) => {
873
+ var _v$22 = twMerge(featureTdClass, fixedClass, "z-[2]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$23 = reorderColLeft();
874
+ _v$22 !== _p$.e && _$className(_el$34, _p$.e = _v$22);
875
+ _v$23 !== _p$.t && _$setStyleProperty(_el$34, "left", _p$.t = _v$23);
876
+ return _p$;
877
+ }, {
878
+ e: void 0,
879
+ t: void 0
880
+ });
881
+ return _el$34;
882
+ }
883
+ }), null);
884
+ _$insert(_el$30, _$createComponent(For, {
885
+ get each() {
886
+ return effectiveColumns();
887
+ },
888
+ children: (col, colIndex) => (() => {
889
+ var _el$43 = _tmpl$14();
890
+ _$insert(_el$43, () => col.cell({
891
+ item: flat.item,
892
+ index: flat.index,
893
+ row: flat.row,
894
+ depth: flat.depth
895
+ }));
896
+ _$effect((_p$) => {
897
+ var _a, _b;
898
+ var _v$28 = twMerge(tdClass, col.fixed ? clsx(fixedClass, "z-[2]") : void 0, isLastFixed(colIndex()) ? fixedLastClass : void 0, col.class, (_a = local.cellClass) == null ? void 0 : _a.call(local, flat.item, col.key)), _v$29 = [getFixedStyle(colIndex()), col.width != null ? `max-width: ${col.width.replace(/;/g, "")}` : void 0, (_b = local.cellStyle) == null ? void 0 : _b.call(local, flat.item, col.key)].filter(Boolean).join("; ") || void 0;
899
+ _v$28 !== _p$.e && _$className(_el$43, _p$.e = _v$28);
900
+ _p$.t = _$style(_el$43, _v$29, _p$.t);
901
+ return _p$;
902
+ }, {
903
+ e: void 0,
904
+ t: void 0
905
+ });
906
+ return _el$43;
907
+ })()
908
+ }), null);
1075
909
  _$effect((_p$) => {
1076
- var _a, _b;
1077
- var _v$28 = twMerge(tdClass, col.fixed ? clsx(fixedClass, "z-[2]") : void 0, isLastFixed(colIndex()) ? fixedLastClass : void 0, col.class, (_a = local.cellClass) == null ? void 0 : _a.call(local, flat.item, col.key)), _v$29 = [getFixedStyle(colIndex()), col.width != null ? `max-width: ${col.width}` : void 0, (_b = local.cellStyle) == null ? void 0 : _b.call(local, flat.item, col.key)].filter(Boolean).join("; ") || void 0;
1078
- _v$28 !== _p$.e && _$className(_el$43, _p$.e = _v$28);
1079
- _p$.t = _$style(_el$43, _v$29, _p$.t);
910
+ var _v$24 = selection().includes(flat.item) ? "" : void 0, _v$25 = clsx(trRowClass, local.autoSelect === "click" && "cursor-pointer");
911
+ _v$24 !== _p$.e && _$setAttribute(_el$30, "data-selected", _p$.e = _v$24);
912
+ _v$25 !== _p$.t && _$className(_el$30, _p$.t = _v$25);
1080
913
  return _p$;
1081
914
  }, {
1082
915
  e: void 0,
1083
916
  t: void 0
1084
917
  });
1085
- return _el$43;
918
+ return _el$30;
1086
919
  })()
1087
- }), null);
920
+ }));
921
+ _$className(_el$12, resizeIndicatorClass);
922
+ _$className(_el$13, reorderIndicatorClass);
1088
923
  _$effect((_p$) => {
1089
- var _v$24 = selectedItems().includes(flat.item) ? "" : void 0, _v$25 = local.autoSelect === "click" ? "cursor-pointer" : void 0;
1090
- _v$24 !== _p$.e && _$setAttribute(_el$30, "data-selected", _p$.e = _v$24);
1091
- _v$25 !== _p$.t && _$className(_el$30, _p$.t = _v$25);
924
+ var _v$ = local.storageKey ?? "", _v$2 = twMerge("flex flex-col", local.inset ? insetContainerClass : defaultContainerClass, local.class), _v$3 = twMerge(dataSheetContainerClass, "flex-1 min-h-0"), _v$4 = local.contentStyle, _v$5 = twMerge(tableClass, local.inset ? insetTableClass : void 0), _v$6 = resizeIndicatorStyle();
925
+ _v$ !== _p$.e && _$setAttribute(_el$, "data-sheet", _p$.e = _v$);
926
+ _v$2 !== _p$.t && _$className(_el$, _p$.t = _v$2);
927
+ _v$3 !== _p$.a && _$className(_el$5, _p$.a = _v$3);
928
+ _p$.o = _$style(_el$5, _v$4, _p$.o);
929
+ _v$5 !== _p$.i && _$className(_el$6, _p$.i = _v$5);
930
+ _p$.n = _$style(_el$12, _v$6, _p$.n);
1092
931
  return _p$;
1093
932
  }, {
1094
933
  e: void 0,
1095
- t: void 0
934
+ t: void 0,
935
+ a: void 0,
936
+ o: void 0,
937
+ i: void 0,
938
+ n: void 0
1096
939
  });
1097
- return _el$30;
1098
- })()
1099
- }));
1100
- _$className(_el$12, resizeIndicatorClass);
1101
- _$className(_el$13, reorderIndicatorClass);
1102
- _$effect((_p$) => {
1103
- var _v$ = local.persistKey ?? "", _v$2 = twMerge("flex flex-col", local.inset ? insetContainerClass : defaultContainerClass, local.class), _v$3 = twMerge(dataSheetContainerClass, "flex-1 min-h-0"), _v$4 = local.contentStyle, _v$5 = twMerge(tableClass, local.inset ? insetTableClass : void 0), _v$6 = resizeIndicatorStyle();
1104
- _v$ !== _p$.e && _$setAttribute(_el$, "data-sheet", _p$.e = _v$);
1105
- _v$2 !== _p$.t && _$className(_el$, _p$.t = _v$2);
1106
- _v$3 !== _p$.a && _$className(_el$5, _p$.a = _v$3);
1107
- _p$.o = _$style(_el$5, _v$4, _p$.o);
1108
- _v$5 !== _p$.i && _$className(_el$6, _p$.i = _v$5);
1109
- _p$.n = _$style(_el$12, _v$6, _p$.n);
1110
- return _p$;
1111
- }, {
1112
- e: void 0,
1113
- t: void 0,
1114
- a: void 0,
1115
- o: void 0,
1116
- i: void 0,
1117
- n: void 0
1118
- });
1119
- return _el$;
1120
- })();
940
+ return _el$;
941
+ })()];
942
+ }
943
+ });
1121
944
  };
1122
- DataSheet.Column = DataSheetColumn;
945
+ const DataSheet = Object.assign(DataSheetInner, {
946
+ Column: DataSheetColumn,
947
+ ConfigDialog: DataSheetConfigDialog
948
+ });
1123
949
  _$delegateEvents(["click", "keydown", "pointerdown", "dblclick"]);
1124
950
  export {
1125
- DataSheet
951
+ DataSheet,
952
+ DataSheetConfigDialog
1126
953
  };
1127
954
  //# sourceMappingURL=DataSheet.js.map