@simplysm/solid 13.0.75 → 13.0.77

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 (782) hide show
  1. package/README.md +13 -14
  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 +50 -16
  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 +7 -28
  19. package/dist/components/data/list/List.d.ts.map +1 -1
  20. package/dist/components/data/list/List.js +5 -7
  21. package/dist/components/data/list/List.js.map +2 -2
  22. package/dist/components/data/list/ListItem.d.ts +7 -34
  23. package/dist/components/data/list/ListItem.d.ts.map +1 -1
  24. package/dist/components/data/list/ListItem.js +15 -20
  25. package/dist/components/data/list/ListItem.js.map +2 -2
  26. package/dist/components/data/list/ListItem.styles.d.ts +1 -1
  27. package/dist/components/data/list/ListItem.styles.d.ts.map +1 -1
  28. package/dist/components/data/list/ListItem.styles.js +8 -8
  29. package/dist/components/data/list/ListItem.styles.js.map +1 -1
  30. package/dist/components/data/sheet/DataSheet.d.ts +3 -7
  31. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  32. package/dist/components/data/sheet/DataSheet.js +557 -843
  33. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  34. package/dist/components/data/sheet/DataSheet.styles.d.ts +2 -1
  35. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  36. package/dist/components/data/sheet/DataSheet.styles.js +32 -10
  37. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  38. package/dist/components/data/sheet/{types.d.ts → DataSheet.types.d.ts} +14 -9
  39. package/dist/components/data/sheet/DataSheet.types.d.ts.map +1 -0
  40. package/dist/components/data/sheet/DataSheet.types.js +1 -0
  41. package/dist/components/data/sheet/{sheetUtils.d.ts → DataSheet.utils.d.ts} +4 -4
  42. package/dist/components/data/sheet/DataSheet.utils.d.ts.map +1 -0
  43. package/dist/components/data/sheet/{sheetUtils.js → DataSheet.utils.js} +8 -8
  44. package/dist/components/data/sheet/DataSheet.utils.js.map +6 -0
  45. package/dist/components/data/sheet/DataSheetColumn.d.ts +4 -3
  46. package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
  47. package/dist/components/data/sheet/DataSheetColumn.js +4 -22
  48. package/dist/components/data/sheet/DataSheetColumn.js.map +2 -2
  49. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts +2 -1
  50. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
  51. package/dist/components/data/sheet/DataSheetConfigDialog.js +19 -18
  52. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
  53. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts +17 -0
  54. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +1 -0
  55. package/dist/components/data/sheet/hooks/useDataSheetExpansion.js +61 -0
  56. package/dist/components/data/sheet/hooks/useDataSheetExpansion.js.map +6 -0
  57. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts +29 -0
  58. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +1 -0
  59. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js +101 -0
  60. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.js.map +6 -0
  61. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts +27 -0
  62. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +1 -0
  63. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js +173 -0
  64. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.js.map +6 -0
  65. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts +17 -0
  66. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +1 -0
  67. package/dist/components/data/sheet/hooks/useDataSheetPaging.js +32 -0
  68. package/dist/components/data/sheet/hooks/useDataSheetPaging.js.map +6 -0
  69. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts +20 -0
  70. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +1 -0
  71. package/dist/components/data/sheet/hooks/useDataSheetReorder.js +112 -0
  72. package/dist/components/data/sheet/hooks/useDataSheetReorder.js.map +6 -0
  73. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts +22 -0
  74. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +1 -0
  75. package/dist/components/data/sheet/hooks/useDataSheetSelection.js +63 -0
  76. package/dist/components/data/sheet/hooks/useDataSheetSelection.js.map +6 -0
  77. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts +17 -0
  78. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +1 -0
  79. package/dist/components/data/sheet/hooks/useDataSheetSorting.js +45 -0
  80. package/dist/components/data/sheet/hooks/useDataSheetSorting.js.map +6 -0
  81. package/dist/components/disclosure/Collapse.d.ts.map +1 -1
  82. package/dist/components/disclosure/Collapse.js +1 -3
  83. package/dist/components/disclosure/Collapse.js.map +2 -2
  84. package/dist/components/disclosure/Dialog.d.ts +79 -25
  85. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  86. package/dist/components/disclosure/Dialog.js +251 -113
  87. package/dist/components/disclosure/Dialog.js.map +2 -2
  88. package/dist/components/disclosure/Dropdown.d.ts +8 -35
  89. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  90. package/dist/components/disclosure/Dropdown.js +60 -61
  91. package/dist/components/disclosure/Dropdown.js.map +2 -2
  92. package/dist/components/disclosure/Tabs.d.ts +4 -6
  93. package/dist/components/disclosure/Tabs.d.ts.map +1 -1
  94. package/dist/components/disclosure/Tabs.js +16 -17
  95. package/dist/components/disclosure/Tabs.js.map +2 -2
  96. package/dist/components/display/Alert.d.ts +1 -1
  97. package/dist/components/display/Alert.d.ts.map +1 -1
  98. package/dist/components/display/Alert.js +2 -4
  99. package/dist/components/display/Alert.js.map +2 -2
  100. package/dist/components/display/Barcode.d.ts +1 -1
  101. package/dist/components/display/Barcode.d.ts.map +1 -1
  102. package/dist/components/display/Barcode.js +3 -4
  103. package/dist/components/display/Barcode.js.map +2 -2
  104. package/dist/components/display/Barcode.types.d.ts +2 -0
  105. package/dist/components/display/Barcode.types.d.ts.map +1 -0
  106. package/dist/components/display/Barcode.types.js +1 -0
  107. package/dist/components/display/Card.animate.css +11 -0
  108. package/dist/components/display/Card.d.ts +1 -0
  109. package/dist/components/display/Card.d.ts.map +1 -1
  110. package/dist/components/display/Card.js +3 -2
  111. package/dist/components/display/Card.js.map +2 -2
  112. package/dist/components/display/Echarts.d.ts +2 -2
  113. package/dist/components/display/Echarts.d.ts.map +1 -1
  114. package/dist/components/display/Echarts.js +8 -11
  115. package/dist/components/display/Echarts.js.map +2 -2
  116. package/dist/components/display/Link.d.ts +1 -1
  117. package/dist/components/display/Link.d.ts.map +1 -1
  118. package/dist/components/display/Link.js +3 -4
  119. package/dist/components/display/Link.js.map +2 -2
  120. package/dist/components/display/Tag.d.ts +1 -1
  121. package/dist/components/display/Tag.d.ts.map +1 -1
  122. package/dist/components/display/Tag.js +2 -4
  123. package/dist/components/display/Tag.js.map +2 -2
  124. package/dist/components/features/address/AddressSearch.d.ts +3 -1
  125. package/dist/components/features/address/AddressSearch.d.ts.map +1 -1
  126. package/dist/components/features/address/AddressSearch.js +7 -5
  127. package/dist/components/features/address/AddressSearch.js.map +2 -2
  128. package/dist/components/features/crud-detail/CrudDetail.d.ts +12 -13
  129. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  130. package/dist/components/features/crud-detail/CrudDetail.js +218 -206
  131. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  132. package/dist/components/features/crud-detail/{types.d.ts → CrudDetail.types.d.ts} +3 -13
  133. package/dist/components/features/crud-detail/CrudDetail.types.d.ts.map +1 -0
  134. package/dist/components/features/crud-detail/CrudDetail.types.js +1 -0
  135. package/dist/components/features/crud-detail/CrudDetailAfter.d.ts +5 -4
  136. package/dist/components/features/crud-detail/CrudDetailAfter.d.ts.map +1 -1
  137. package/dist/components/features/crud-detail/CrudDetailAfter.js +3 -10
  138. package/dist/components/features/crud-detail/CrudDetailAfter.js.map +2 -2
  139. package/dist/components/features/crud-detail/CrudDetailBefore.d.ts +5 -4
  140. package/dist/components/features/crud-detail/CrudDetailBefore.d.ts.map +1 -1
  141. package/dist/components/features/crud-detail/CrudDetailBefore.js +3 -10
  142. package/dist/components/features/crud-detail/CrudDetailBefore.js.map +2 -2
  143. package/dist/components/features/crud-detail/CrudDetailTools.d.ts +5 -4
  144. package/dist/components/features/crud-detail/CrudDetailTools.d.ts.map +1 -1
  145. package/dist/components/features/crud-detail/CrudDetailTools.js +3 -10
  146. package/dist/components/features/crud-detail/CrudDetailTools.js.map +2 -2
  147. package/dist/components/features/crud-sheet/CrudSheet.d.ts +6 -9
  148. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  149. package/dist/components/features/crud-sheet/CrudSheet.js +147 -141
  150. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  151. package/dist/components/features/crud-sheet/{types.d.ts → CrudSheet.types.d.ts} +14 -44
  152. package/dist/components/features/crud-sheet/CrudSheet.types.d.ts.map +1 -0
  153. package/dist/components/features/crud-sheet/CrudSheet.types.js +1 -0
  154. package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts +4 -3
  155. package/dist/components/features/crud-sheet/CrudSheetColumn.d.ts.map +1 -1
  156. package/dist/components/features/crud-sheet/CrudSheetColumn.js +4 -23
  157. package/dist/components/features/crud-sheet/CrudSheetColumn.js.map +2 -2
  158. package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts +7 -5
  159. package/dist/components/features/crud-sheet/CrudSheetFilter.d.ts.map +1 -1
  160. package/dist/components/features/crud-sheet/CrudSheetFilter.js +4 -8
  161. package/dist/components/features/crud-sheet/CrudSheetFilter.js.map +2 -2
  162. package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts +5 -4
  163. package/dist/components/features/crud-sheet/CrudSheetHeader.d.ts.map +1 -1
  164. package/dist/components/features/crud-sheet/CrudSheetHeader.js +3 -10
  165. package/dist/components/features/crud-sheet/CrudSheetHeader.js.map +2 -2
  166. package/dist/components/features/crud-sheet/CrudSheetTools.d.ts +7 -5
  167. package/dist/components/features/crud-sheet/CrudSheetTools.d.ts.map +1 -1
  168. package/dist/components/features/crud-sheet/CrudSheetTools.js +4 -8
  169. package/dist/components/features/crud-sheet/CrudSheetTools.js.map +2 -2
  170. package/dist/components/features/data-select-button/DataSelectButton.d.ts +25 -28
  171. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  172. package/dist/components/features/data-select-button/DataSelectButton.js +27 -38
  173. package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
  174. package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
  175. package/dist/components/features/permission-table/PermissionTable.js +9 -13
  176. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  177. package/dist/components/features/shared-data/SharedDataSelect.d.ts +20 -19
  178. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  179. package/dist/components/features/shared-data/SharedDataSelect.js +62 -84
  180. package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
  181. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +12 -9
  182. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  183. package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
  184. package/dist/components/features/shared-data/SharedDataSelectList.d.ts +12 -8
  185. package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
  186. package/dist/components/features/shared-data/SharedDataSelectList.js +136 -116
  187. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  188. package/dist/components/feedback/Progress.d.ts +3 -2
  189. package/dist/components/feedback/Progress.d.ts.map +1 -1
  190. package/dist/components/feedback/Progress.js +9 -7
  191. package/dist/components/feedback/Progress.js.map +2 -2
  192. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
  193. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  194. package/dist/components/feedback/busy/BusyContainer.js +35 -32
  195. package/dist/components/feedback/busy/BusyContainer.js.map +2 -2
  196. package/dist/components/feedback/busy/BusyProvider.d.ts +26 -2
  197. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
  198. package/dist/components/feedback/busy/BusyProvider.js +13 -7
  199. package/dist/components/feedback/busy/BusyProvider.js.map +2 -2
  200. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  201. package/dist/components/feedback/notification/NotificationBanner.js +13 -19
  202. package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
  203. package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
  204. package/dist/components/feedback/notification/NotificationBell.js +69 -71
  205. package/dist/components/feedback/notification/NotificationBell.js.map +2 -2
  206. package/dist/components/feedback/notification/NotificationProvider.d.ts +68 -1
  207. package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
  208. package/dist/components/feedback/notification/NotificationProvider.js +22 -5
  209. package/dist/components/feedback/notification/NotificationProvider.js.map +2 -2
  210. package/dist/components/feedback/print/Print.d.ts +4 -6
  211. package/dist/components/feedback/print/Print.d.ts.map +1 -1
  212. package/dist/components/feedback/print/Print.js +3 -2
  213. package/dist/components/feedback/print/Print.js.map +2 -2
  214. package/dist/components/feedback/print/PrintProvider.d.ts +14 -1
  215. package/dist/components/feedback/print/PrintProvider.d.ts.map +1 -1
  216. package/dist/components/feedback/print/PrintProvider.js +16 -5
  217. package/dist/components/feedback/print/PrintProvider.js.map +2 -2
  218. package/dist/components/form-control/Button.d.ts +2 -1
  219. package/dist/components/form-control/Button.d.ts.map +1 -1
  220. package/dist/components/form-control/Button.js +9 -8
  221. package/dist/components/form-control/Button.js.map +2 -2
  222. package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
  223. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  224. package/dist/components/form-control/DropdownTrigger.styles.js +16 -16
  225. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  226. package/dist/components/form-control/Invalid.d.ts +1 -1
  227. package/dist/components/form-control/Invalid.d.ts.map +1 -1
  228. package/dist/components/form-control/Invalid.js +27 -26
  229. package/dist/components/form-control/Invalid.js.map +2 -2
  230. package/dist/components/form-control/ThemeToggle.d.ts +2 -1
  231. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  232. package/dist/components/form-control/ThemeToggle.js +71 -74
  233. package/dist/components/form-control/ThemeToggle.js.map +2 -2
  234. package/dist/components/form-control/checkbox/Checkbox.d.ts +2 -2
  235. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  236. package/dist/components/form-control/checkbox/Checkbox.js +14 -95
  237. package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
  238. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts +2 -2
  239. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  240. package/dist/components/form-control/checkbox/Checkbox.styles.js +20 -25
  241. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  242. package/dist/components/form-control/checkbox/CheckboxGroup.d.ts +10 -10
  243. package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
  244. package/dist/components/form-control/checkbox/CheckboxGroup.js +84 -9
  245. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
  246. package/dist/components/form-control/checkbox/Radio.d.ts +2 -2
  247. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  248. package/dist/components/form-control/checkbox/Radio.js +12 -95
  249. package/dist/components/form-control/checkbox/Radio.js.map +2 -2
  250. package/dist/components/form-control/checkbox/RadioGroup.d.ts +10 -10
  251. package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
  252. package/dist/components/form-control/checkbox/RadioGroup.js +81 -9
  253. package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
  254. package/dist/components/form-control/checkbox/SelectableBase.d.ts +26 -0
  255. package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -0
  256. package/dist/components/form-control/checkbox/SelectableBase.js +100 -0
  257. package/dist/components/form-control/checkbox/SelectableBase.js.map +6 -0
  258. package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts +17 -0
  259. package/dist/components/form-control/checkbox/SelectionGroupBase.d.ts.map +1 -0
  260. package/dist/components/form-control/checkbox/SelectionGroupBase.js +53 -0
  261. package/dist/components/form-control/checkbox/SelectionGroupBase.js.map +6 -0
  262. package/dist/components/form-control/color-picker/ColorPicker.d.ts +3 -3
  263. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  264. package/dist/components/form-control/color-picker/ColorPicker.js +6 -18
  265. package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
  266. package/dist/components/form-control/combobox/Combobox.d.ts +28 -49
  267. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  268. package/dist/components/form-control/combobox/Combobox.js +116 -63
  269. package/dist/components/form-control/combobox/Combobox.js.map +2 -2
  270. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
  271. package/dist/components/form-control/date-range-picker/DateRangePicker.js +16 -9
  272. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  273. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  274. package/dist/components/form-control/editor/EditorToolbar.js +250 -239
  275. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  276. package/dist/components/form-control/editor/RichTextEditor.d.ts +1 -1
  277. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  278. package/dist/components/form-control/editor/RichTextEditor.js +10 -10
  279. package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
  280. package/{src/components/form-control/editor/editor.css → dist/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
  281. package/dist/components/form-control/field/DatePicker.d.ts +3 -3
  282. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  283. package/dist/components/form-control/field/DatePicker.js +50 -131
  284. package/dist/components/form-control/field/DatePicker.js.map +2 -2
  285. package/dist/components/form-control/field/DateTimePicker.d.ts +3 -3
  286. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  287. package/dist/components/form-control/field/DateTimePicker.js +50 -131
  288. package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
  289. package/dist/components/form-control/field/Field.styles.d.ts +3 -3
  290. package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
  291. package/dist/components/form-control/field/Field.styles.js +46 -40
  292. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  293. package/dist/components/form-control/field/FieldPlaceholder.js +4 -3
  294. package/dist/components/form-control/field/FieldPlaceholder.js.map +2 -2
  295. package/dist/components/form-control/field/FieldShell.d.ts +37 -0
  296. package/dist/components/form-control/field/FieldShell.d.ts.map +1 -0
  297. package/dist/components/form-control/field/FieldShell.js +124 -0
  298. package/dist/components/form-control/field/FieldShell.js.map +6 -0
  299. package/dist/components/form-control/field/NumberInput.d.ts +13 -32
  300. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  301. package/dist/components/form-control/field/NumberInput.js +92 -196
  302. package/dist/components/form-control/field/NumberInput.js.map +2 -2
  303. package/dist/components/form-control/field/TextInput.d.ts +14 -29
  304. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  305. package/dist/components/form-control/field/TextInput.js +87 -197
  306. package/dist/components/form-control/field/TextInput.js.map +2 -2
  307. package/dist/components/form-control/field/Textarea.d.ts +3 -3
  308. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  309. package/dist/components/form-control/field/Textarea.js +81 -156
  310. package/dist/components/form-control/field/Textarea.js.map +2 -2
  311. package/dist/components/form-control/field/TimePicker.d.ts +3 -3
  312. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  313. package/dist/components/form-control/field/TimePicker.js +46 -123
  314. package/dist/components/form-control/field/TimePicker.js.map +2 -2
  315. package/dist/components/form-control/numpad/Numpad.d.ts +1 -1
  316. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  317. package/dist/components/form-control/numpad/Numpad.js +5 -5
  318. package/dist/components/form-control/numpad/Numpad.js.map +2 -2
  319. package/dist/components/form-control/select/Select.d.ts +48 -51
  320. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  321. package/dist/components/form-control/select/Select.js +220 -117
  322. package/dist/components/form-control/select/Select.js.map +2 -2
  323. package/dist/components/form-control/state-preset/StatePreset.d.ts +2 -2
  324. package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
  325. package/dist/components/form-control/state-preset/StatePreset.js +68 -57
  326. package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
  327. package/dist/components/layout/FormGroup.d.ts +3 -6
  328. package/dist/components/layout/FormGroup.d.ts.map +1 -1
  329. package/dist/components/layout/FormGroup.js +5 -7
  330. package/dist/components/layout/FormGroup.js.map +2 -2
  331. package/dist/components/layout/FormTable.d.ts +7 -1
  332. package/dist/components/layout/FormTable.d.ts.map +1 -1
  333. package/dist/components/layout/FormTable.js +52 -18
  334. package/dist/components/layout/FormTable.js.map +2 -2
  335. package/dist/components/layout/sidebar/Sidebar.d.ts +60 -29
  336. package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
  337. package/dist/components/layout/sidebar/Sidebar.js +341 -21
  338. package/dist/components/layout/sidebar/Sidebar.js.map +2 -2
  339. package/dist/components/layout/topbar/Topbar.d.ts +44 -33
  340. package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
  341. package/dist/components/layout/topbar/Topbar.js +426 -39
  342. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  343. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  344. package/dist/helpers/createAppStructure.js +4 -5
  345. package/dist/helpers/createAppStructure.js.map +1 -1
  346. package/dist/helpers/createSlot.d.ts +3 -0
  347. package/dist/helpers/createSlot.d.ts.map +1 -0
  348. package/dist/helpers/createSlot.js +40 -0
  349. package/dist/helpers/createSlot.js.map +6 -0
  350. package/dist/helpers/createSlots.d.ts +7 -0
  351. package/dist/helpers/createSlots.d.ts.map +1 -0
  352. package/dist/helpers/createSlots.js +34 -0
  353. package/dist/helpers/createSlots.js.map +6 -0
  354. package/dist/hooks/createControllableSignal.d.ts +4 -12
  355. package/dist/hooks/createControllableSignal.d.ts.map +1 -1
  356. package/dist/hooks/createControllableSignal.js +4 -3
  357. package/dist/hooks/createControllableSignal.js.map +1 -1
  358. package/dist/hooks/createControllableStore.d.ts.map +1 -1
  359. package/dist/hooks/createControllableStore.js +5 -6
  360. package/dist/hooks/createControllableStore.js.map +1 -1
  361. package/dist/hooks/useLogger.d.ts +1 -1
  362. package/dist/hooks/useLogger.d.ts.map +1 -1
  363. package/dist/hooks/useLogger.js +1 -1
  364. package/dist/hooks/useSyncConfig.js +1 -1
  365. package/dist/index.d.ts +17 -23
  366. package/dist/index.d.ts.map +1 -1
  367. package/dist/index.js +17 -23
  368. package/dist/index.js.map +1 -1
  369. package/dist/providers/ConfigContext.d.ts.map +1 -1
  370. package/dist/providers/ConfigContext.js +10 -13
  371. package/dist/providers/ConfigContext.js.map +1 -1
  372. package/dist/providers/{LoggerContext.d.ts → LoggerProvider.d.ts} +1 -1
  373. package/dist/providers/LoggerProvider.d.ts.map +1 -0
  374. package/dist/providers/{LoggerContext.js → LoggerProvider.js} +1 -1
  375. package/dist/providers/{LoggerContext.js.map → LoggerProvider.js.map} +1 -1
  376. package/dist/providers/PwaUpdateProvider.js +1 -1
  377. package/dist/providers/ServiceClientProvider.d.ts +22 -0
  378. package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
  379. package/dist/providers/ServiceClientProvider.js +39 -48
  380. package/dist/providers/ServiceClientProvider.js.map +2 -2
  381. package/dist/providers/{SyncStorageContext.d.ts → SyncStorageProvider.d.ts} +1 -1
  382. package/dist/providers/SyncStorageProvider.d.ts.map +1 -0
  383. package/dist/providers/{SyncStorageContext.js → SyncStorageProvider.js} +1 -1
  384. package/dist/providers/{SyncStorageContext.js.map → SyncStorageProvider.js.map} +1 -1
  385. package/dist/providers/SystemProvider.d.ts +1 -1
  386. package/dist/providers/SystemProvider.d.ts.map +1 -1
  387. package/dist/providers/SystemProvider.js +3 -3
  388. package/dist/providers/SystemProvider.js.map +1 -1
  389. package/dist/providers/i18n/{I18nContext.d.ts → I18nProvider.d.ts} +2 -2
  390. package/dist/providers/i18n/I18nProvider.d.ts.map +1 -0
  391. package/dist/providers/i18n/{I18nContext.js → I18nProvider.js} +1 -1
  392. package/dist/providers/i18n/{I18nContext.js.map → I18nProvider.js.map} +1 -1
  393. package/dist/providers/i18n/{I18nContext.types.d.ts → I18nProvider.types.d.ts} +1 -1
  394. package/dist/providers/i18n/I18nProvider.types.d.ts.map +1 -0
  395. package/dist/providers/i18n/I18nProvider.types.js +1 -0
  396. package/dist/providers/i18n/I18nProvider.types.js.map +6 -0
  397. package/dist/providers/shared-data/SharedDataProvider.d.ts +75 -2
  398. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  399. package/dist/providers/shared-data/SharedDataProvider.js +111 -91
  400. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  401. package/dist/styles/base.styles.d.ts +15 -0
  402. package/dist/styles/base.styles.d.ts.map +1 -0
  403. package/dist/styles/base.styles.js +21 -0
  404. package/dist/styles/base.styles.js.map +6 -0
  405. package/dist/styles/control.styles.d.ts +19 -0
  406. package/dist/styles/control.styles.d.ts.map +1 -0
  407. package/dist/styles/control.styles.js +24 -0
  408. package/dist/styles/control.styles.js.map +6 -0
  409. package/dist/styles/theme.styles.d.ts +52 -0
  410. package/dist/styles/theme.styles.d.ts.map +1 -0
  411. package/dist/styles/theme.styles.js +55 -0
  412. package/dist/styles/theme.styles.js.map +6 -0
  413. package/package.json +5 -5
  414. package/src/components/data/Pagination.tsx +9 -9
  415. package/src/components/data/Table.tsx +63 -30
  416. package/src/components/data/calendar/Calendar.tsx +38 -36
  417. package/src/components/data/kanban/{Kanban.css → Kanban.animate.css} +0 -2
  418. package/src/components/data/kanban/Kanban.tsx +133 -94
  419. package/src/components/data/list/List.tsx +8 -22
  420. package/src/components/data/list/ListItem.styles.ts +8 -8
  421. package/src/components/data/list/ListItem.tsx +20 -31
  422. package/src/components/data/sheet/DataSheet.styles.ts +32 -9
  423. package/src/components/data/sheet/DataSheet.tsx +356 -747
  424. package/src/components/data/sheet/{types.ts → DataSheet.types.ts} +13 -8
  425. package/src/components/data/sheet/{sheetUtils.ts → DataSheet.utils.ts} +8 -8
  426. package/src/components/data/sheet/DataSheetColumn.tsx +7 -29
  427. package/src/components/data/sheet/DataSheetConfigDialog.tsx +15 -21
  428. package/src/components/data/sheet/hooks/useDataSheetExpansion.ts +85 -0
  429. package/src/components/data/sheet/hooks/useDataSheetFixedColumns.ts +131 -0
  430. package/src/components/data/sheet/hooks/useDataSheetHeaderCell.tsx +168 -0
  431. package/src/components/data/sheet/hooks/useDataSheetPaging.ts +51 -0
  432. package/src/components/data/sheet/hooks/useDataSheetReorder.ts +154 -0
  433. package/src/components/data/sheet/hooks/useDataSheetSelection.ts +99 -0
  434. package/src/components/data/sheet/hooks/useDataSheetSorting.ts +68 -0
  435. package/src/components/disclosure/Collapse.tsx +1 -9
  436. package/src/components/disclosure/Dialog.tsx +254 -59
  437. package/src/components/disclosure/Dropdown.tsx +66 -80
  438. package/src/components/disclosure/Tabs.tsx +23 -37
  439. package/src/components/display/Alert.tsx +2 -5
  440. package/src/components/display/Barcode.tsx +5 -117
  441. package/src/components/display/Barcode.types.ts +111 -0
  442. package/src/components/display/Card.animate.css +11 -0
  443. package/src/components/display/Card.tsx +10 -11
  444. package/src/components/display/Echarts.tsx +11 -15
  445. package/src/components/display/Link.tsx +3 -5
  446. package/src/components/display/Tag.tsx +2 -5
  447. package/src/components/features/address/AddressSearch.tsx +24 -7
  448. package/src/components/features/crud-detail/CrudDetail.tsx +135 -165
  449. package/src/components/features/crud-detail/{types.ts → CrudDetail.types.ts} +3 -16
  450. package/src/components/features/crud-detail/CrudDetailAfter.tsx +3 -16
  451. package/src/components/features/crud-detail/CrudDetailBefore.tsx +3 -16
  452. package/src/components/features/crud-detail/CrudDetailTools.tsx +3 -16
  453. package/src/components/features/crud-sheet/CrudSheet.tsx +158 -176
  454. package/src/components/features/crud-sheet/{types.ts → CrudSheet.types.ts} +13 -47
  455. package/src/components/features/crud-sheet/CrudSheetColumn.tsx +7 -30
  456. package/src/components/features/crud-sheet/CrudSheetFilter.tsx +12 -16
  457. package/src/components/features/crud-sheet/CrudSheetHeader.tsx +3 -16
  458. package/src/components/features/crud-sheet/CrudSheetTools.tsx +12 -16
  459. package/src/components/features/data-select-button/DataSelectButton.tsx +57 -66
  460. package/src/components/features/permission-table/PermissionTable.tsx +9 -13
  461. package/src/components/features/shared-data/SharedDataSelect.tsx +97 -127
  462. package/src/components/features/shared-data/SharedDataSelectButton.tsx +22 -14
  463. package/src/components/features/shared-data/SharedDataSelectList.tsx +61 -42
  464. package/src/components/feedback/Progress.tsx +16 -21
  465. package/src/components/feedback/busy/BusyContainer.tsx +18 -45
  466. package/src/components/feedback/busy/BusyProvider.tsx +40 -7
  467. package/src/components/feedback/notification/NotificationBanner.tsx +13 -32
  468. package/src/components/feedback/notification/NotificationBell.tsx +18 -47
  469. package/src/components/feedback/notification/NotificationProvider.tsx +105 -11
  470. package/src/components/feedback/print/Print.tsx +4 -8
  471. package/src/components/feedback/print/PrintProvider.tsx +37 -5
  472. package/src/components/form-control/Button.tsx +11 -29
  473. package/src/components/form-control/DropdownTrigger.styles.ts +16 -17
  474. package/src/components/form-control/Invalid.tsx +33 -29
  475. package/src/components/form-control/ThemeToggle.tsx +18 -15
  476. package/src/components/form-control/checkbox/Checkbox.styles.ts +20 -26
  477. package/src/components/form-control/checkbox/Checkbox.tsx +15 -101
  478. package/src/components/form-control/checkbox/CheckboxGroup.tsx +83 -17
  479. package/src/components/form-control/checkbox/Radio.tsx +15 -104
  480. package/src/components/form-control/checkbox/RadioGroup.tsx +80 -17
  481. package/src/components/form-control/checkbox/SelectableBase.tsx +123 -0
  482. package/src/components/form-control/checkbox/SelectionGroupBase.tsx +57 -0
  483. package/src/components/form-control/color-picker/ColorPicker.tsx +12 -32
  484. package/src/components/form-control/combobox/Combobox.tsx +143 -44
  485. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +10 -10
  486. package/src/components/form-control/editor/EditorToolbar.tsx +120 -217
  487. package/{dist/components/form-control/editor/editor.css → src/components/form-control/editor/RichTextEditor.tiptap.css} +0 -1
  488. package/src/components/form-control/editor/RichTextEditor.tsx +14 -29
  489. package/src/components/form-control/field/DatePicker.tsx +34 -76
  490. package/src/components/form-control/field/DateTimePicker.tsx +35 -83
  491. package/src/components/form-control/field/Field.styles.ts +48 -42
  492. package/src/components/form-control/field/FieldPlaceholder.tsx +2 -2
  493. package/src/components/form-control/field/FieldShell.tsx +113 -0
  494. package/src/components/form-control/field/NumberInput.tsx +75 -137
  495. package/src/components/form-control/field/TextInput.tsx +58 -120
  496. package/src/components/form-control/field/Textarea.tsx +67 -111
  497. package/src/components/form-control/field/TimePicker.tsx +33 -74
  498. package/src/components/form-control/numpad/Numpad.tsx +5 -6
  499. package/src/components/form-control/select/Select.tsx +266 -151
  500. package/src/components/form-control/state-preset/StatePreset.tsx +65 -88
  501. package/src/components/layout/FormGroup.tsx +10 -13
  502. package/src/components/layout/FormTable.tsx +40 -19
  503. package/src/components/layout/sidebar/Sidebar.tsx +456 -44
  504. package/src/components/layout/topbar/Topbar.tsx +420 -49
  505. package/src/helpers/createAppStructure.ts +22 -7
  506. package/src/helpers/createSlot.ts +45 -0
  507. package/src/helpers/createSlots.ts +44 -0
  508. package/src/hooks/createControllableSignal.ts +10 -18
  509. package/src/hooks/createControllableStore.ts +5 -6
  510. package/src/hooks/useLogger.ts +1 -1
  511. package/src/hooks/useSyncConfig.ts +1 -1
  512. package/src/index.ts +18 -23
  513. package/src/providers/ConfigContext.tsx +0 -1
  514. package/src/providers/PwaUpdateProvider.tsx +1 -1
  515. package/src/providers/ServiceClientProvider.tsx +62 -56
  516. package/src/providers/SystemProvider.tsx +4 -5
  517. package/src/providers/i18n/{I18nContext.tsx → I18nProvider.tsx} +1 -1
  518. package/src/providers/shared-data/SharedDataProvider.tsx +228 -124
  519. package/src/styles/base.styles.ts +21 -0
  520. package/src/styles/control.styles.ts +25 -0
  521. package/src/styles/theme.styles.ts +54 -0
  522. package/tailwind.config.ts +0 -11
  523. package/tests/components/data/List.spec.tsx +1 -262
  524. package/tests/components/data/Pagination.spec.tsx +0 -75
  525. package/tests/components/data/kanban/Kanban.selection.spec.tsx +1 -17
  526. package/tests/components/data/sheet/DataSheet.spec.tsx +38 -67
  527. package/tests/components/data/sheet/hooks/useDataSheetExpansion.spec.ts +254 -0
  528. package/tests/components/data/sheet/hooks/useDataSheetFixedColumns.spec.ts +488 -0
  529. package/tests/components/data/sheet/hooks/useDataSheetPaging.spec.ts +359 -0
  530. package/tests/components/data/sheet/hooks/useDataSheetReorder.spec.ts +251 -0
  531. package/tests/components/data/sheet/hooks/useDataSheetSelection.spec.ts +362 -0
  532. package/tests/components/data/sheet/hooks/useDataSheetSorting.spec.ts +279 -0
  533. package/tests/components/disclosure/Collapse.spec.tsx +0 -24
  534. package/tests/components/disclosure/Dialog.spec.tsx +11 -61
  535. package/tests/components/disclosure/DialogProvider.spec.tsx +9 -12
  536. package/tests/components/disclosure/Tabs.spec.tsx +0 -99
  537. package/tests/components/display/Barcode.spec.tsx +15 -15
  538. package/tests/components/features/address/AddressSearch.spec.tsx +3 -4
  539. package/tests/components/features/crud-detail/CrudDetail.spec.tsx +12 -74
  540. package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +19 -72
  541. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +51 -29
  542. package/tests/components/features/permission-table/PermissionTable.spec.tsx +5 -30
  543. package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +15 -19
  544. package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +17 -44
  545. package/tests/components/feedback/busy/BusyContainer.spec.tsx +15 -9
  546. package/tests/components/feedback/notification/LiveRegion.spec.tsx +2 -27
  547. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +2 -27
  548. package/tests/components/feedback/notification/NotificationBell.spec.tsx +2 -16
  549. package/tests/components/feedback/notification/NotificationContext.spec.tsx +2 -16
  550. package/tests/components/form-control/Button.spec.tsx +0 -97
  551. package/tests/components/form-control/Invalid.spec.tsx +5 -20
  552. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +1 -47
  553. package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +1 -26
  554. package/tests/components/form-control/checkbox/Radio.spec.tsx +1 -46
  555. package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +1 -26
  556. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +1 -31
  557. package/tests/components/form-control/combobox/Combobox.spec.tsx +28 -49
  558. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +7 -27
  559. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +1 -58
  560. package/tests/components/form-control/field/DatePicker.spec.tsx +5 -93
  561. package/tests/components/form-control/field/DateTimePicker.spec.tsx +5 -86
  562. package/tests/components/form-control/field/FieldShell.spec.tsx +127 -0
  563. package/tests/components/form-control/field/NumberInput.spec.tsx +14 -133
  564. package/tests/components/form-control/field/TextInput.spec.tsx +6 -148
  565. package/tests/components/form-control/field/Textarea.spec.tsx +5 -69
  566. package/tests/components/form-control/field/TimePicker.spec.tsx +5 -84
  567. package/tests/components/form-control/numpad/Numpad.spec.tsx +1 -78
  568. package/tests/components/form-control/select/Select.spec.tsx +9 -59
  569. package/tests/components/form-control/select/SelectItem.spec.tsx +10 -62
  570. package/tests/components/layout/sidebar/Sidebar.spec.tsx +3 -122
  571. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +3 -45
  572. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +1 -74
  573. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +0 -48
  574. package/tests/components/layout/topbar/TopbarActions.spec.tsx +5 -5
  575. package/tests/components/layout/topbar/{createTopbarActions.spec.tsx → useTopbarActions.spec.tsx} +4 -13
  576. package/tests/helpers/createAppStructure.spec.tsx +0 -26
  577. package/tests/helpers/createSlot.spec.tsx +99 -0
  578. package/tests/helpers/createSlots.spec.tsx +100 -0
  579. package/tests/hooks/createControllableSignal.spec.ts +0 -50
  580. package/tests/hooks/createControllableStore.spec.ts +67 -0
  581. package/tests/hooks/createMountTransition.spec.ts +0 -9
  582. package/tests/hooks/useLocalStorage.spec.tsx +0 -34
  583. package/tests/hooks/useLogger.spec.tsx +1 -18
  584. package/tests/hooks/usePrint.spec.tsx +1 -24
  585. package/tests/hooks/useSyncConfig.spec.tsx +1 -18
  586. package/tests/providers/ErrorLoggerProvider.spec.tsx +1 -11
  587. package/tests/providers/ServiceClientContext.spec.tsx +2 -20
  588. package/tests/providers/i18n/I18nContext.spec.tsx +1 -5
  589. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +143 -21
  590. package/dist/components/data/kanban/KanbanContext.d.ts +0 -43
  591. package/dist/components/data/kanban/KanbanContext.d.ts.map +0 -1
  592. package/dist/components/data/kanban/KanbanContext.js +0 -24
  593. package/dist/components/data/kanban/KanbanContext.js.map +0 -6
  594. package/dist/components/data/sheet/DataSheet.css +0 -44
  595. package/dist/components/data/sheet/sheetUtils.d.ts.map +0 -1
  596. package/dist/components/data/sheet/sheetUtils.js.map +0 -6
  597. package/dist/components/data/sheet/types.d.ts.map +0 -1
  598. package/dist/components/data/sheet/types.js +0 -1
  599. package/dist/components/disclosure/DialogContext.d.ts +0 -57
  600. package/dist/components/disclosure/DialogContext.d.ts.map +0 -1
  601. package/dist/components/disclosure/DialogContext.js +0 -14
  602. package/dist/components/disclosure/DialogContext.js.map +0 -6
  603. package/dist/components/disclosure/DialogInstanceContext.d.ts +0 -20
  604. package/dist/components/disclosure/DialogInstanceContext.d.ts.map +0 -1
  605. package/dist/components/disclosure/DialogInstanceContext.js +0 -10
  606. package/dist/components/disclosure/DialogInstanceContext.js.map +0 -6
  607. package/dist/components/disclosure/DialogProvider.d.ts +0 -19
  608. package/dist/components/disclosure/DialogProvider.d.ts.map +0 -1
  609. package/dist/components/disclosure/DialogProvider.js +0 -145
  610. package/dist/components/disclosure/DialogProvider.js.map +0 -6
  611. package/dist/components/features/crud-detail/types.d.ts.map +0 -1
  612. package/dist/components/features/crud-detail/types.js +0 -1
  613. package/dist/components/features/crud-sheet/types.d.ts.map +0 -1
  614. package/dist/components/features/crud-sheet/types.js +0 -1
  615. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +0 -15
  616. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +0 -1
  617. package/dist/components/features/shared-data/SharedDataSelectListContext.js +0 -27
  618. package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +0 -6
  619. package/dist/components/feedback/busy/BusyContext.d.ts +0 -29
  620. package/dist/components/feedback/busy/BusyContext.d.ts.map +0 -1
  621. package/dist/components/feedback/busy/BusyContext.js +0 -14
  622. package/dist/components/feedback/busy/BusyContext.js.map +0 -6
  623. package/dist/components/feedback/notification/NotificationContext.d.ts +0 -69
  624. package/dist/components/feedback/notification/NotificationContext.d.ts.map +0 -1
  625. package/dist/components/feedback/notification/NotificationContext.js +0 -14
  626. package/dist/components/feedback/notification/NotificationContext.js.map +0 -6
  627. package/dist/components/feedback/notification/index.d.ts +0 -5
  628. package/dist/components/feedback/notification/index.d.ts.map +0 -1
  629. package/dist/components/feedback/notification/index.js +0 -5
  630. package/dist/components/feedback/notification/index.js.map +0 -6
  631. package/dist/components/feedback/print/PrintContext.d.ts +0 -12
  632. package/dist/components/feedback/print/PrintContext.d.ts.map +0 -1
  633. package/dist/components/feedback/print/PrintContext.js +0 -12
  634. package/dist/components/feedback/print/PrintContext.js.map +0 -6
  635. package/dist/components/feedback/print/PrintInstanceContext.d.ts +0 -6
  636. package/dist/components/feedback/print/PrintInstanceContext.d.ts.map +0 -1
  637. package/dist/components/feedback/print/PrintInstanceContext.js +0 -10
  638. package/dist/components/feedback/print/PrintInstanceContext.js.map +0 -6
  639. package/dist/components/form-control/combobox/ComboboxContext.d.ts +0 -14
  640. package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +0 -1
  641. package/dist/components/form-control/combobox/ComboboxContext.js +0 -14
  642. package/dist/components/form-control/combobox/ComboboxContext.js.map +0 -6
  643. package/dist/components/form-control/combobox/ComboboxItem.d.ts +0 -12
  644. package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +0 -1
  645. package/dist/components/form-control/combobox/ComboboxItem.js +0 -56
  646. package/dist/components/form-control/combobox/ComboboxItem.js.map +0 -6
  647. package/dist/components/form-control/select/SelectContext.d.ts +0 -21
  648. package/dist/components/form-control/select/SelectContext.d.ts.map +0 -1
  649. package/dist/components/form-control/select/SelectContext.js +0 -14
  650. package/dist/components/form-control/select/SelectContext.js.map +0 -6
  651. package/dist/components/form-control/select/SelectItem.d.ts +0 -30
  652. package/dist/components/form-control/select/SelectItem.d.ts.map +0 -1
  653. package/dist/components/form-control/select/SelectItem.js +0 -112
  654. package/dist/components/form-control/select/SelectItem.js.map +0 -6
  655. package/dist/components/layout/sidebar/SidebarContainer.d.ts +0 -34
  656. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +0 -1
  657. package/dist/components/layout/sidebar/SidebarContainer.js +0 -88
  658. package/dist/components/layout/sidebar/SidebarContainer.js.map +0 -6
  659. package/dist/components/layout/sidebar/SidebarContext.d.ts +0 -28
  660. package/dist/components/layout/sidebar/SidebarContext.d.ts.map +0 -1
  661. package/dist/components/layout/sidebar/SidebarContext.js +0 -20
  662. package/dist/components/layout/sidebar/SidebarContext.js.map +0 -6
  663. package/dist/components/layout/sidebar/SidebarMenu.d.ts +0 -35
  664. package/dist/components/layout/sidebar/SidebarMenu.d.ts.map +0 -1
  665. package/dist/components/layout/sidebar/SidebarMenu.js +0 -153
  666. package/dist/components/layout/sidebar/SidebarMenu.js.map +0 -6
  667. package/dist/components/layout/sidebar/SidebarUser.d.ts +0 -48
  668. package/dist/components/layout/sidebar/SidebarUser.d.ts.map +0 -1
  669. package/dist/components/layout/sidebar/SidebarUser.js +0 -128
  670. package/dist/components/layout/sidebar/SidebarUser.js.map +0 -6
  671. package/dist/components/layout/topbar/TopbarActions.d.ts +0 -3
  672. package/dist/components/layout/topbar/TopbarActions.d.ts.map +0 -1
  673. package/dist/components/layout/topbar/TopbarActions.js +0 -17
  674. package/dist/components/layout/topbar/TopbarActions.js.map +0 -6
  675. package/dist/components/layout/topbar/TopbarContainer.d.ts +0 -25
  676. package/dist/components/layout/topbar/TopbarContainer.d.ts.map +0 -1
  677. package/dist/components/layout/topbar/TopbarContainer.js +0 -37
  678. package/dist/components/layout/topbar/TopbarContainer.js.map +0 -6
  679. package/dist/components/layout/topbar/TopbarContext.d.ts +0 -9
  680. package/dist/components/layout/topbar/TopbarContext.d.ts.map +0 -1
  681. package/dist/components/layout/topbar/TopbarContext.js +0 -29
  682. package/dist/components/layout/topbar/TopbarContext.js.map +0 -6
  683. package/dist/components/layout/topbar/TopbarMenu.d.ts +0 -41
  684. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +0 -1
  685. package/dist/components/layout/topbar/TopbarMenu.js +0 -288
  686. package/dist/components/layout/topbar/TopbarMenu.js.map +0 -6
  687. package/dist/components/layout/topbar/TopbarUser.d.ts +0 -35
  688. package/dist/components/layout/topbar/TopbarUser.d.ts.map +0 -1
  689. package/dist/components/layout/topbar/TopbarUser.js +0 -110
  690. package/dist/components/layout/topbar/TopbarUser.js.map +0 -6
  691. package/dist/helpers/createHmrSafeContext.d.ts +0 -3
  692. package/dist/helpers/createHmrSafeContext.d.ts.map +0 -1
  693. package/dist/helpers/createHmrSafeContext.js +0 -10
  694. package/dist/helpers/createHmrSafeContext.js.map +0 -6
  695. package/dist/helpers/createSlotComponent.d.ts +0 -12
  696. package/dist/helpers/createSlotComponent.d.ts.map +0 -1
  697. package/dist/helpers/createSlotComponent.js +0 -13
  698. package/dist/helpers/createSlotComponent.js.map +0 -6
  699. package/dist/hooks/createSelectionGroup.d.ts +0 -70
  700. package/dist/hooks/createSelectionGroup.d.ts.map +0 -1
  701. package/dist/hooks/createSelectionGroup.js +0 -145
  702. package/dist/hooks/createSelectionGroup.js.map +0 -6
  703. package/dist/hooks/createSlotSignal.d.ts +0 -9
  704. package/dist/hooks/createSlotSignal.d.ts.map +0 -1
  705. package/dist/hooks/createSlotSignal.js +0 -10
  706. package/dist/hooks/createSlotSignal.js.map +0 -6
  707. package/dist/providers/LoggerContext.d.ts.map +0 -1
  708. package/dist/providers/ServiceClientContext.d.ts +0 -23
  709. package/dist/providers/ServiceClientContext.d.ts.map +0 -1
  710. package/dist/providers/ServiceClientContext.js +0 -14
  711. package/dist/providers/ServiceClientContext.js.map +0 -6
  712. package/dist/providers/SyncStorageContext.d.ts.map +0 -1
  713. package/dist/providers/i18n/I18nContext.d.ts.map +0 -1
  714. package/dist/providers/i18n/I18nContext.types.d.ts.map +0 -1
  715. package/dist/providers/i18n/I18nContext.types.js +0 -1
  716. package/dist/providers/shared-data/SharedDataContext.d.ts +0 -77
  717. package/dist/providers/shared-data/SharedDataContext.d.ts.map +0 -1
  718. package/dist/providers/shared-data/SharedDataContext.js +0 -14
  719. package/dist/providers/shared-data/SharedDataContext.js.map +0 -6
  720. package/dist/styles/patterns.styles.d.ts +0 -7
  721. package/dist/styles/patterns.styles.d.ts.map +0 -1
  722. package/dist/styles/patterns.styles.js +0 -47
  723. package/dist/styles/patterns.styles.js.map +0 -6
  724. package/dist/styles/tokens.styles.d.ts +0 -23
  725. package/dist/styles/tokens.styles.d.ts.map +0 -1
  726. package/dist/styles/tokens.styles.js +0 -76
  727. package/dist/styles/tokens.styles.js.map +0 -6
  728. package/src/components/data/kanban/KanbanContext.ts +0 -76
  729. package/src/components/data/sheet/DataSheet.css +0 -44
  730. package/src/components/disclosure/DialogContext.ts +0 -69
  731. package/src/components/disclosure/DialogInstanceContext.ts +0 -25
  732. package/src/components/disclosure/DialogProvider.tsx +0 -147
  733. package/src/components/features/shared-data/SharedDataSelectListContext.ts +0 -39
  734. package/src/components/feedback/busy/BusyContext.ts +0 -38
  735. package/src/components/feedback/notification/NotificationContext.ts +0 -95
  736. package/src/components/feedback/notification/index.ts +0 -4
  737. package/src/components/feedback/print/PrintContext.ts +0 -20
  738. package/src/components/feedback/print/PrintInstanceContext.ts +0 -11
  739. package/src/components/form-control/combobox/ComboboxContext.ts +0 -25
  740. package/src/components/form-control/combobox/ComboboxItem.tsx +0 -69
  741. package/src/components/form-control/select/SelectContext.ts +0 -35
  742. package/src/components/form-control/select/SelectItem.tsx +0 -128
  743. package/src/components/layout/sidebar/SidebarContainer.tsx +0 -123
  744. package/src/components/layout/sidebar/SidebarContext.ts +0 -40
  745. package/src/components/layout/sidebar/SidebarMenu.tsx +0 -182
  746. package/src/components/layout/sidebar/SidebarUser.tsx +0 -142
  747. package/src/components/layout/topbar/TopbarActions.tsx +0 -8
  748. package/src/components/layout/topbar/TopbarContainer.tsx +0 -44
  749. package/src/components/layout/topbar/TopbarContext.ts +0 -36
  750. package/src/components/layout/topbar/TopbarMenu.tsx +0 -227
  751. package/src/components/layout/topbar/TopbarUser.tsx +0 -97
  752. package/src/helpers/createHmrSafeContext.ts +0 -8
  753. package/src/helpers/createSlotComponent.ts +0 -23
  754. package/src/hooks/createSelectionGroup.tsx +0 -241
  755. package/src/hooks/createSlotSignal.ts +0 -14
  756. package/src/providers/ServiceClientContext.ts +0 -32
  757. package/src/providers/shared-data/SharedDataContext.ts +0 -91
  758. package/src/styles/patterns.styles.ts +0 -50
  759. package/src/styles/tokens.styles.ts +0 -86
  760. package/tests/components/data/Table.spec.tsx +0 -55
  761. package/tests/components/display/Alert.spec.tsx +0 -47
  762. package/tests/components/display/Card.spec.tsx +0 -41
  763. package/tests/components/display/Link.spec.tsx +0 -62
  764. package/tests/components/display/Tag.spec.tsx +0 -47
  765. package/tests/components/feedback/print/Print.spec.tsx +0 -45
  766. package/tests/components/layout/FormGroup.spec.tsx +0 -104
  767. package/tests/components/layout/FormTable.spec.tsx +0 -43
  768. package/tests/components/layout/topbar/TopbarContainer.spec.tsx +0 -38
  769. package/tests/providers/ClipboardProvider.spec.tsx +0 -20
  770. package/tests/providers/ConfigContext.spec.tsx +0 -42
  771. package/tests/providers/LoggerContext.spec.tsx +0 -76
  772. package/tests/providers/PwaUpdateProvider.spec.tsx +0 -32
  773. package/tests/providers/SyncStorageContext.spec.tsx +0 -77
  774. /package/dist/components/data/sheet/{types.js.map → DataSheet.types.js.map} +0 -0
  775. /package/dist/components/{features/crud-detail/types.js.map → display/Barcode.types.js.map} +0 -0
  776. /package/dist/components/features/{crud-sheet/types.js.map → crud-detail/CrudDetail.types.js.map} +0 -0
  777. /package/dist/{providers/i18n/I18nContext.types.js.map → components/features/crud-sheet/CrudSheet.types.js.map} +0 -0
  778. /package/dist/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
  779. /package/src/components/feedback/busy/{BusyContainer.css → BusyContainer.animate.css} +0 -0
  780. /package/src/providers/{LoggerContext.tsx → LoggerProvider.tsx} +0 -0
  781. /package/src/providers/{SyncStorageContext.tsx → SyncStorageProvider.tsx} +0 -0
  782. /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
- import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
3
+ import { addEventListener as _$addEventListener } from "solid-js/web";
4
4
  import { use as _$use } from "solid-js/web";
5
+ import { memo as _$memo } from "solid-js/web";
5
6
  import { style as _$style } from "solid-js/web";
7
+ import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
6
8
  import { setAttribute as _$setAttribute } from "solid-js/web";
7
9
  import { effect as _$effect } from "solid-js/web";
8
10
  import { insert as _$insert } from "solid-js/web";
9
- import { className as _$className } from "solid-js/web";
10
- import { memo as _$memo } from "solid-js/web";
11
11
  import { createComponent as _$createComponent } from "solid-js/web";
12
- 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";
12
+ import { className as _$className } from "solid-js/web";
13
+ var _tmpl$ = /* @__PURE__ */ _$template(`<button type=button>`), _tmpl$2 = /* @__PURE__ */ _$template(`<td style=left:0><div>`), _tmpl$3 = /* @__PURE__ */ _$template(`<div><div>`), _tmpl$4 = /* @__PURE__ */ _$template(`<div>`), _tmpl$5 = /* @__PURE__ */ _$template(`<td>`), _tmpl$6 = /* @__PURE__ */ _$template(`<td><div><div>`), _tmpl$7 = /* @__PURE__ */ _$template(`<tr>`), _tmpl$8 = /* @__PURE__ */ _$template(`<th><div>`), _tmpl$9 = /* @__PURE__ */ _$template(`<button title="Sheet Settings"type=button>`), _tmpl$0 = /* @__PURE__ */ _$template(`<div><div class=flex-1>`), _tmpl$1 = /* @__PURE__ */ _$template(`<col>`), _tmpl$10 = /* @__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$11 = /* @__PURE__ */ _$template(`<th style=top:0;left:0><div><button type=button>`), _tmpl$12 = /* @__PURE__ */ _$template(`<th style=top:0>`);
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
- import { IconArrowsSort, IconChevronDown, IconChevronRight, IconGripVertical, IconSettings, IconSortAscending, IconSortDescending } from "@tabler/icons-solidjs";
18
+ import { IconChevronDown, IconChevronRight, IconGripVertical, IconSettings } 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 { buildHeaderTable, normalizeHeader } from "./DataSheet.utils.js";
22
22
  import { startPointerDrag } from "../../../helpers/startPointerDrag.js";
23
23
  import { Icon } from "../../display/Icon.js";
24
24
  import { Checkbox } from "../../form-control/checkbox/Checkbox.js";
25
25
  import { Pagination } from "../Pagination.js";
26
26
  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"]);
27
+ import { DialogContext } from "../../disclosure/Dialog.js";
28
+ import { useI18n } from "../../../providers/i18n/I18nProvider.js";
29
+ 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";
30
+ import { useDataSheetSorting } from "./hooks/useDataSheetSorting.js";
31
+ import { useDataSheetPaging } from "./hooks/useDataSheetPaging.js";
32
+ import { useDataSheetExpansion } from "./hooks/useDataSheetExpansion.js";
33
+ import { useDataSheetSelection } from "./hooks/useDataSheetSelection.js";
34
+ import { useDataSheetReorder } from "./hooks/useDataSheetReorder.js";
35
+ import { useDataSheetFixedColumns } from "./hooks/useDataSheetFixedColumns.js";
36
+ import { useDataSheetHeaderCell } from "./hooks/useDataSheetHeaderCell.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", "isItemSelectable", "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 isItemSelectable() {
289
+ return local.isItemSelectable;
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,370 +332,175 @@ 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));
343
+ void dragState;
344
+ const {
345
+ renderHeaderCell
346
+ } = useDataSheetHeaderCell({
347
+ effectiveColumns,
348
+ headerRowTops,
349
+ getFixedStyle,
350
+ isLastFixed,
351
+ registerColumnRef,
352
+ toggleSort,
353
+ getSortDef,
354
+ sortIndex,
355
+ onResizerPointerdown,
356
+ onResizerDoubleClick,
357
+ thClass,
358
+ fixedClass,
359
+ sortableThClass,
360
+ fixedLastClass,
361
+ thContentClass,
362
+ resizerClass,
363
+ sortIconClass
524
364
  });
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, {
535
- get when() {
536
- return effectivePageCount() > 1;
537
- },
538
- 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;
549
- },
550
- size: "sm"
551
- });
552
- }
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;
565
- }
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, {
620
- get when() {
621
- return _$memo(() => !!hasExpandFeature())() && rowIndex() === 0;
622
- },
623
- 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;
648
- }
649
- }), null);
650
- _$insert(_el$15, _$createComponent(Show, {
651
- get when() {
652
- return _$memo(() => !!hasSelectFeature())() && rowIndex() === 0;
653
- },
654
- get children() {
655
- var _el$19 = _tmpl$8();
656
- _$use(registerSelectColRef, _el$19);
657
- _$insert(_el$19, _$createComponent(Show, {
365
+ function renderExpandCell(flatItem) {
366
+ return (() => {
367
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild;
368
+ _$className(_el$2, featureCellBodyWrapperClass);
369
+ _$insert(_el$2, _$createComponent(For, {
370
+ get each() {
371
+ return Array.from({
372
+ length: flatItem.depth
373
+ });
374
+ },
375
+ children: () => (() => {
376
+ var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild;
377
+ _$className(_el$4, expandIndentGuideClass);
378
+ _$className(_el$5, expandIndentGuideLineClass);
379
+ return _el$4;
380
+ })()
381
+ }), null);
382
+ _$insert(_el$2, _$createComponent(Show, {
383
+ get when() {
384
+ return flatItem.hasChildren;
385
+ },
386
+ get children() {
387
+ var _el$3 = _tmpl$();
388
+ _el$3.$$click = () => toggleExpand(flatItem.item);
389
+ _$className(_el$3, expandToggleClass);
390
+ _$insert(_el$3, _$createComponent(Icon, {
391
+ icon: IconChevronDown,
392
+ size: "1em",
393
+ get ["class"]() {
394
+ return clsx("transition-transform", expandedItems().includes(flatItem.item) ? "rotate-0" : "-rotate-90");
395
+ }
396
+ }));
397
+ return _el$3;
398
+ }
399
+ }), null);
400
+ _$effect(() => _$className(_el$, twMerge(featureTdClass, fixedClass, "z-[2]", isExpandColLastFixed() ? fixedLastClass : void 0)));
401
+ return _el$;
402
+ })();
403
+ }
404
+ function renderSelectCell(flatItem) {
405
+ const selectable = () => getItemSelectable(flatItem.item);
406
+ const isSelected = () => selection().includes(flatItem.item);
407
+ const rowIndex = () => flatItem.row;
408
+ return (() => {
409
+ var _el$6 = _tmpl$5();
410
+ _$insert(_el$6, _$createComponent(Show, {
411
+ get when() {
412
+ return local.selectionMode === "multiple";
413
+ },
414
+ get fallback() {
415
+ return (
416
+ /* single mode */
417
+ _$createComponent(Show, {
658
418
  get when() {
659
- return local.selectMode === "multiple";
419
+ return selectable() === true;
660
420
  },
661
421
  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"
422
+ var _el$8 = _tmpl$3(), _el$9 = _el$8.firstChild;
423
+ _el$8.$$click = () => toggleSelect(flatItem.item);
424
+ _$className(_el$8, featureCellBodyClickableClass);
425
+ _$insert(_el$9, _$createComponent(Icon, {
426
+ icon: IconChevronRight,
427
+ size: "1em"
672
428
  }));
673
- return _el$20;
429
+ _$effect(() => _$className(_el$9, twMerge(selectSingleClass, isSelected() ? selectSingleSelectedClass : selectSingleUnselectedClass)));
430
+ return _el$8;
674
431
  }
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;
688
- }
689
- }), null);
690
- _$insert(_el$15, _$createComponent(Show, {
691
- get when() {
692
- return _$memo(() => !!hasReorderFeature())() && rowIndex() === 0;
693
- },
694
- 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;
709
- }
710
- }), 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
- })();
432
+ })
433
+ );
434
+ },
435
+ get children() {
436
+ var _el$7 = _tmpl$4();
437
+ _el$7.$$click = (e) => {
438
+ if (e.shiftKey) {
439
+ rangeSelect(rowIndex());
440
+ } else {
441
+ toggleSelect(flatItem.item);
861
442
  }
862
- })
863
- }), null);
864
- return _el$15;
865
- })()
866
- }), null);
867
- _$insert(_el$1, _$createComponent(Show, {
443
+ setLastClickedRow(rowIndex());
444
+ };
445
+ _$className(_el$7, featureCellBodyClickableClass);
446
+ _$insert(_el$7, _$createComponent(Checkbox, {
447
+ get value() {
448
+ return isSelected();
449
+ },
450
+ get disabled() {
451
+ return selectable() !== true;
452
+ },
453
+ inset: true,
454
+ get ["class"]() {
455
+ return twMerge("pointer-events-none", lastClickedRow() === rowIndex() ? "[&>div]:ring-2 [&>div]:ring-primary-200 dark:[&>div]:ring-primary-700" : void 0);
456
+ }
457
+ }));
458
+ _$effect(() => _$setAttribute(_el$7, "title", typeof selectable() === "string" ? selectable() : void 0));
459
+ return _el$7;
460
+ }
461
+ }));
462
+ _$effect((_p$) => {
463
+ var _v$ = twMerge(featureTdClass, fixedClass, "z-[2]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$2 = selectColLeft();
464
+ _v$ !== _p$.e && _$className(_el$6, _p$.e = _v$);
465
+ _v$2 !== _p$.t && _$setStyleProperty(_el$6, "left", _p$.t = _v$2);
466
+ return _p$;
467
+ }, {
468
+ e: void 0,
469
+ t: void 0
470
+ });
471
+ return _el$6;
472
+ })();
473
+ }
474
+ function renderReorderCell(flatItem) {
475
+ return (() => {
476
+ var _el$0 = _tmpl$6(), _el$1 = _el$0.firstChild, _el$10 = _el$1.firstChild;
477
+ _el$1.$$pointerdown = (e) => onReorderPointerDown(e, flatItem.item);
478
+ _$className(_el$1, reorderCellWrapperClass);
479
+ _$className(_el$10, reorderHandleClass);
480
+ _$insert(_el$10, _$createComponent(Icon, {
481
+ icon: IconGripVertical,
482
+ size: "1em"
483
+ }));
484
+ _$effect((_p$) => {
485
+ var _v$3 = twMerge(featureTdClass, fixedClass, "z-[2]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$4 = reorderColLeft();
486
+ _v$3 !== _p$.e && _$className(_el$0, _p$.e = _v$3);
487
+ _v$4 !== _p$.t && _$setStyleProperty(_el$0, "left", _p$.t = _v$4);
488
+ return _p$;
489
+ }, {
490
+ e: void 0,
491
+ t: void 0
492
+ });
493
+ return _el$0;
494
+ })();
495
+ }
496
+ function renderSummaryRow() {
497
+ return _$createComponent(Show, {
868
498
  get when() {
869
499
  return hasSummary();
870
500
  },
871
501
  get children() {
872
- var _el$10 = _tmpl$4();
873
- _$insert(_el$10, _$createComponent(For, {
502
+ var _el$11 = _tmpl$7();
503
+ _$insert(_el$11, _$createComponent(For, {
874
504
  get each() {
875
505
  return effectiveColumns();
876
506
  },
@@ -883,244 +513,328 @@ const DataSheet = (props) => {
883
513
  return parts.join("; ");
884
514
  };
885
515
  return (() => {
886
- var _el$28 = _tmpl$1(), _el$29 = _el$28.firstChild;
887
- _$className(_el$29, thContentClass);
888
- _$insert(_el$29, () => {
516
+ var _el$12 = _tmpl$8(), _el$13 = _el$12.firstChild;
517
+ _$className(_el$13, thContentClass);
518
+ _$insert(_el$13, () => {
889
519
  var _a;
890
520
  return (_a = col.summary) == null ? void 0 : _a.call(col);
891
521
  });
892
522
  _$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);
523
+ var _v$5 = twMerge(thClass, summaryThClass, fixedClass, col.fixed ? "z-[5]" : "z-[3]", isLastFixed(colIndex()) ? fixedLastClass : void 0), _v$6 = summaryStyle();
524
+ _v$5 !== _p$.e && _$className(_el$12, _p$.e = _v$5);
525
+ _p$.t = _$style(_el$12, _v$6, _p$.t);
896
526
  return _p$;
897
527
  }, {
898
528
  e: void 0,
899
529
  t: void 0
900
530
  });
901
- return _el$28;
531
+ return _el$12;
902
532
  })();
903
533
  }
904
534
  }));
905
- return _el$10;
535
+ return _el$11;
906
536
  }
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);
537
+ });
538
+ }
539
+ return _$createComponent(ColumnsProvider, {
540
+ get children() {
541
+ return [_$memo(() => local.children), (() => {
542
+ var _el$14 = _tmpl$10(), _el$18 = _el$14.firstChild, _el$19 = _el$18.firstChild, _el$20 = _el$19.firstChild, _el$24 = _el$20.nextSibling, _el$25 = _el$24.nextSibling, _el$26 = _el$19.nextSibling, _el$27 = _el$26.nextSibling;
543
+ _$insert(_el$14, _$createComponent(Show, {
544
+ get when() {
545
+ return _$memo(() => !!!local.hideConfigBar)() && (dialog != null || pageCount() > 1);
546
+ },
547
+ get children() {
548
+ var _el$15 = _tmpl$0(), _el$16 = _el$15.firstChild;
549
+ _$className(_el$15, toolbarClass);
550
+ _$insert(_el$15, _$createComponent(Show, {
551
+ get when() {
552
+ return pageCount() > 1;
553
+ },
554
+ get children() {
555
+ return _$createComponent(Pagination, {
556
+ get page() {
557
+ return currentPage();
558
+ },
559
+ onPageChange: setCurrentPage,
560
+ get totalPageCount() {
561
+ return pageCount();
562
+ },
563
+ get displayPageCount() {
564
+ return local.displayPageCount;
565
+ },
566
+ size: "sm"
567
+ });
568
+ }
569
+ }), _el$16);
570
+ _$insert(_el$15, _$createComponent(Show, {
571
+ when: dialog != null,
572
+ get children() {
573
+ var _el$17 = _tmpl$9();
574
+ _el$17.$$click = openConfigDialog;
575
+ _$className(_el$17, configButtonClass);
576
+ _$insert(_el$17, _$createComponent(Icon, {
577
+ icon: IconSettings,
578
+ size: "1em"
579
+ }));
580
+ return _el$17;
581
+ }
582
+ }), null);
583
+ return _el$15;
584
+ }
585
+ }), _el$18);
586
+ _el$19.$$pointerdown = (e) => {
587
+ if (e.shiftKey && hasSelectFeature()) {
588
+ e.preventDefault();
917
589
  }
918
590
  };
919
- _$insert(_el$30, _$createComponent(Show, {
591
+ _el$19.$$keydown = onTableKeyDown;
592
+ _$insert(_el$20, _$createComponent(Show, {
920
593
  get when() {
921
594
  return hasExpandFeature();
922
595
  },
923
596
  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, {
597
+ return _tmpl$1();
598
+ }
599
+ }), null);
600
+ _$insert(_el$20, _$createComponent(Show, {
601
+ get when() {
602
+ return hasSelectFeature();
603
+ },
604
+ get children() {
605
+ return _tmpl$1();
606
+ }
607
+ }), null);
608
+ _$insert(_el$20, _$createComponent(Show, {
609
+ get when() {
610
+ return hasReorderFeature();
611
+ },
612
+ get children() {
613
+ return _tmpl$1();
614
+ }
615
+ }), null);
616
+ _$insert(_el$20, _$createComponent(For, {
617
+ get each() {
618
+ return effectiveColumns();
619
+ },
620
+ children: (col) => (() => {
621
+ var _el$28 = _tmpl$1();
622
+ _$effect((_$p) => _$style(_el$28, col.width != null ? {
623
+ width: col.width.replace(/;/g, "")
624
+ } : void 0, _$p));
625
+ return _el$28;
626
+ })()
627
+ }), null);
628
+ _$insert(_el$24, _$createComponent(For, {
629
+ get each() {
630
+ return headerTable();
631
+ },
632
+ children: (row, rowIndex) => (() => {
633
+ var _el$29 = _tmpl$7();
634
+ _$use((el) => registerHeaderRow(rowIndex(), el), _el$29);
635
+ _$insert(_el$29, _$createComponent(Show, {
940
636
  get when() {
941
- return flat.hasChildren;
637
+ return _$memo(() => !!hasExpandFeature())() && rowIndex() === 0;
942
638
  },
943
639
  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, {
640
+ var _el$30 = _tmpl$11(), _el$31 = _el$30.firstChild, _el$32 = _el$31.firstChild;
641
+ _$use(registerExpandColRef, _el$30);
642
+ _$className(_el$31, featureCellWrapperClass);
643
+ _$addEventListener(_el$32, "click", toggleExpandAll, true);
644
+ _$className(_el$32, expandToggleClass);
645
+ _$insert(_el$32, _$createComponent(Icon, {
948
646
  icon: IconChevronDown,
949
647
  size: "1em",
950
648
  get ["class"]() {
951
- return clsx("transition-transform", expandedItems().includes(flat.item) ? "rotate-0" : "-rotate-90");
649
+ return clsx("transition-transform", isAllExpanded() ? "rotate-0" : "-rotate-90");
952
650
  }
953
651
  }));
954
- return _el$33;
652
+ _$effect((_p$) => {
653
+ var _v$11 = twMerge(featureThClass, fixedClass, "z-[5]", isExpandColLastFixed() ? fixedLastClass : void 0), _v$12 = featureHeaderRowspan(), _v$13 = isAllExpanded() ? i18n.t("dataSheet.collapseAll") : i18n.t("dataSheet.expandAll");
654
+ _v$11 !== _p$.e && _$className(_el$30, _p$.e = _v$11);
655
+ _v$12 !== _p$.t && _$setAttribute(_el$30, "rowspan", _p$.t = _v$12);
656
+ _v$13 !== _p$.a && _$setAttribute(_el$32, "title", _p$.a = _v$13);
657
+ return _p$;
658
+ }, {
659
+ e: void 0,
660
+ t: void 0,
661
+ a: void 0
662
+ });
663
+ return _el$30;
955
664
  }
956
665
  }), 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, {
666
+ _$insert(_el$29, _$createComponent(Show, {
667
+ get when() {
668
+ return _$memo(() => !!hasSelectFeature())() && rowIndex() === 0;
669
+ },
670
+ get children() {
671
+ var _el$33 = _tmpl$12();
672
+ _$use(registerSelectColRef, _el$33);
673
+ _$insert(_el$33, _$createComponent(Show, {
973
674
  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
- );
675
+ return local.selectionMode === "multiple";
996
676
  },
997
677
  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, {
678
+ var _el$34 = _tmpl$4();
679
+ _el$34.$$click = () => toggleSelectAll();
680
+ _$className(_el$34, featureCellClickableClass);
681
+ _$insert(_el$34, _$createComponent(Checkbox, {
1009
682
  get value() {
1010
- return isSelected();
1011
- },
1012
- get disabled() {
1013
- return selectable() !== true;
683
+ const selectableItems = displayItems().map((flat) => flat.item).filter((item) => getItemSelectable(item) === true);
684
+ return selectableItems.length > 0 && selectableItems.every((item) => selection().includes(item));
1014
685
  },
1015
686
  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
- }
687
+ "class": "pointer-events-none"
1019
688
  }));
1020
- _$effect(() => _$setAttribute(_el$40, "title", typeof selectable() === "string" ? selectable() : void 0));
1021
- return _el$40;
689
+ return _el$34;
1022
690
  }
1023
691
  }));
1024
692
  _$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);
693
+ var _v$14 = twMerge(featureThClass, fixedClass, "z-[5]", isSelectColLastFixed() ? fixedLastClass : void 0), _v$15 = featureHeaderRowspan(), _v$16 = selectColLeft();
694
+ _v$14 !== _p$.e && _$className(_el$33, _p$.e = _v$14);
695
+ _v$15 !== _p$.t && _$setAttribute(_el$33, "rowspan", _p$.t = _v$15);
696
+ _v$16 !== _p$.a && _$setStyleProperty(_el$33, "left", _p$.a = _v$16);
1028
697
  return _p$;
1029
698
  }, {
1030
699
  e: void 0,
1031
- t: void 0
700
+ t: void 0,
701
+ a: void 0
1032
702
  });
1033
- return _el$39;
1034
- })();
1035
- })();
1036
- }
1037
- }), null);
1038
- _$insert(_el$30, _$createComponent(Show, {
1039
- get when() {
1040
- return hasReorderFeature();
1041
- },
1042
- 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"
1050
- }));
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;
1061
- }
703
+ return _el$33;
704
+ }
705
+ }), null);
706
+ _$insert(_el$29, _$createComponent(Show, {
707
+ get when() {
708
+ return _$memo(() => !!hasReorderFeature())() && rowIndex() === 0;
709
+ },
710
+ get children() {
711
+ var _el$35 = _tmpl$12();
712
+ _$use(registerReorderColRef, _el$35);
713
+ _$effect((_p$) => {
714
+ var _v$17 = twMerge(featureThClass, fixedClass, "z-[5]", isReorderColLastFixed() ? fixedLastClass : void 0), _v$18 = featureHeaderRowspan(), _v$19 = reorderColLeft();
715
+ _v$17 !== _p$.e && _$className(_el$35, _p$.e = _v$17);
716
+ _v$18 !== _p$.t && _$setAttribute(_el$35, "rowspan", _p$.t = _v$18);
717
+ _v$19 !== _p$.a && _$setStyleProperty(_el$35, "left", _p$.a = _v$19);
718
+ return _p$;
719
+ }, {
720
+ e: void 0,
721
+ t: void 0,
722
+ a: void 0
723
+ });
724
+ return _el$35;
725
+ }
726
+ }), null);
727
+ _$insert(_el$29, _$createComponent(For, {
728
+ each: row,
729
+ children: (cell, cellColIndex) => _$createComponent(Show, {
730
+ when: cell,
731
+ children: (c) => renderHeaderCell(c(), cellColIndex(), rowIndex())
732
+ })
733
+ }), null);
734
+ return _el$29;
735
+ })()
1062
736
  }), null);
1063
- _$insert(_el$30, _$createComponent(For, {
737
+ _$insert(_el$24, renderSummaryRow, null);
738
+ _$insert(_el$25, _$createComponent(For, {
1064
739
  get each() {
1065
- return effectiveColumns();
740
+ return displayItems();
1066
741
  },
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
- }));
742
+ children: (flat) => (() => {
743
+ var _el$36 = _tmpl$7();
744
+ _el$36.$$click = () => {
745
+ if (local.autoSelect) {
746
+ selectItem(flat.item);
747
+ }
748
+ };
749
+ _$insert(_el$36, _$createComponent(Show, {
750
+ get when() {
751
+ return hasExpandFeature();
752
+ },
753
+ get children() {
754
+ return renderExpandCell(flat);
755
+ }
756
+ }), null);
757
+ _$insert(_el$36, _$createComponent(Show, {
758
+ get when() {
759
+ return hasSelectFeature();
760
+ },
761
+ get children() {
762
+ return renderSelectCell(flat);
763
+ }
764
+ }), null);
765
+ _$insert(_el$36, _$createComponent(Show, {
766
+ get when() {
767
+ return hasReorderFeature();
768
+ },
769
+ get children() {
770
+ return renderReorderCell(flat);
771
+ }
772
+ }), null);
773
+ _$insert(_el$36, _$createComponent(For, {
774
+ get each() {
775
+ return effectiveColumns();
776
+ },
777
+ children: (col, colIndex) => (() => {
778
+ var _el$37 = _tmpl$5();
779
+ _$insert(_el$37, () => col.cell({
780
+ item: flat.item,
781
+ index: flat.index,
782
+ row: flat.row,
783
+ depth: flat.depth
784
+ }));
785
+ _$effect((_p$) => {
786
+ var _a, _b;
787
+ var _v$22 = 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$23 = [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;
788
+ _v$22 !== _p$.e && _$className(_el$37, _p$.e = _v$22);
789
+ _p$.t = _$style(_el$37, _v$23, _p$.t);
790
+ return _p$;
791
+ }, {
792
+ e: void 0,
793
+ t: void 0
794
+ });
795
+ return _el$37;
796
+ })()
797
+ }), null);
1075
798
  _$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);
799
+ var _v$20 = selection().includes(flat.item) ? "" : void 0, _v$21 = clsx(trRowClass, local.autoSelect && "cursor-pointer");
800
+ _v$20 !== _p$.e && _$setAttribute(_el$36, "data-selected", _p$.e = _v$20);
801
+ _v$21 !== _p$.t && _$className(_el$36, _p$.t = _v$21);
1080
802
  return _p$;
1081
803
  }, {
1082
804
  e: void 0,
1083
805
  t: void 0
1084
806
  });
1085
- return _el$43;
807
+ return _el$36;
1086
808
  })()
1087
- }), null);
809
+ }));
810
+ _$className(_el$26, resizeIndicatorClass);
811
+ _$className(_el$27, reorderIndicatorClass);
1088
812
  _$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);
813
+ var _v$7 = local.storageKey ?? "", _v$8 = twMerge("flex flex-col", local.inset ? insetContainerClass : defaultContainerClass, local.class), _v$9 = twMerge(dataSheetContainerClass, "flex-1 min-h-0"), _v$0 = local.contentStyle, _v$1 = twMerge(tableClass, local.inset ? insetTableClass : void 0), _v$10 = resizeIndicatorStyle();
814
+ _v$7 !== _p$.e && _$setAttribute(_el$14, "data-sheet", _p$.e = _v$7);
815
+ _v$8 !== _p$.t && _$className(_el$14, _p$.t = _v$8);
816
+ _v$9 !== _p$.a && _$className(_el$18, _p$.a = _v$9);
817
+ _p$.o = _$style(_el$18, _v$0, _p$.o);
818
+ _v$1 !== _p$.i && _$className(_el$19, _p$.i = _v$1);
819
+ _p$.n = _$style(_el$26, _v$10, _p$.n);
1092
820
  return _p$;
1093
821
  }, {
1094
822
  e: void 0,
1095
- t: void 0
823
+ t: void 0,
824
+ a: void 0,
825
+ o: void 0,
826
+ i: void 0,
827
+ n: void 0
1096
828
  });
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
- })();
829
+ return _el$14;
830
+ })()];
831
+ }
832
+ });
1121
833
  };
1122
- DataSheet.Column = DataSheetColumn;
1123
- _$delegateEvents(["click", "keydown", "pointerdown", "dblclick"]);
834
+ const DataSheet = Object.assign(DataSheetInner, {
835
+ Column: DataSheetColumn
836
+ });
837
+ _$delegateEvents(["click", "pointerdown", "keydown"]);
1124
838
  export {
1125
839
  DataSheet
1126
840
  };