@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,122 +1,238 @@
1
1
  import {
2
2
  children,
3
+ createContext,
3
4
  createEffect,
4
5
  createMemo,
5
6
  createSignal,
6
7
  For,
8
+ type Accessor,
7
9
  type JSX,
8
10
  type ParentComponent,
9
11
  onCleanup,
10
12
  Show,
11
13
  splitProps,
14
+ useContext,
12
15
  } from "solid-js";
13
16
  import clsx from "clsx";
14
17
  import { twMerge } from "tailwind-merge";
15
- import { IconChevronDown } from "@tabler/icons-solidjs";
18
+ import { IconChevronDown, IconCheck } from "@tabler/icons-solidjs";
16
19
  import { Icon } from "../../display/Icon";
17
20
  import { Dropdown } from "../../disclosure/Dropdown";
18
21
  import { List } from "../../data/list/List";
19
- import { SelectContext, type SelectContextValue } from "./SelectContext";
20
- import { useSelectContext } from "./SelectContext";
21
- import { SelectItem } from "./SelectItem";
22
+ import { Collapse } from "../../disclosure/Collapse";
22
23
  import { ripple } from "../../../directives/ripple";
23
- import {
24
- borderDefault,
25
- borderSubtle,
26
- type ComponentSize,
27
- textMuted,
28
- } from "../../../styles/tokens.styles";
24
+ import { bg, border, text } from "../../../styles/base.styles";
25
+ import { type ComponentSize, pad } from "../../../styles/control.styles";
26
+ import { themeTokens } from "../../../styles/theme.styles";
29
27
  import { createControllableSignal } from "../../../hooks/createControllableSignal";
30
- import { createSlotSignal } from "../../../hooks/createSlotSignal";
28
+ import { createSlot } from "../../../helpers/createSlot";
31
29
  import { chevronWrapperClass, getTriggerClass } from "../DropdownTrigger.styles";
32
30
  import { Invalid } from "../Invalid";
33
31
  import { TextInput } from "../field/TextInput";
34
- import { useI18n } from "../../../providers/i18n/I18nContext";
32
+ import { useI18n } from "../../../providers/i18n/I18nProvider";
33
+ import {
34
+ listItemBaseClass,
35
+ listItemSelectedClass,
36
+ listItemDisabledClass,
37
+ listItemIndentGuideClass,
38
+ listItemContentClass,
39
+ getListItemSelectedIconClass,
40
+ } from "../../data/list/ListItem.styles";
35
41
 
36
42
  void ripple;
37
43
 
38
- // Select-specific styles
39
- const multiTagClass = clsx("rounded", "bg-base-200 px-1", "dark:bg-base-600");
40
- const selectedValueClass = clsx("flex-1", "whitespace-nowrap");
44
+ //#region Module-level slots
41
45
 
42
- // Search input styles (override TextInput wrapper)
43
- const searchInputClass = clsx(
44
- "w-full",
45
- "rounded-none",
46
- "border-0 border-b",
47
- borderSubtle
48
- );
46
+ const [SelectHeader, createHeaderSlotAccessor] = createSlot<{ children: JSX.Element }>();
47
+ const [SelectItemChildren, createItemChildrenSlotAccessor] = createSlot<{ children: JSX.Element }>();
49
48
 
50
- // Select all/deselect all button area styles
51
- const selectAllBarClass = clsx("flex gap-2", "border-b", borderSubtle, "px-2 py-1", "text-xs");
49
+ //#endregion
52
50
 
53
- // Select all/deselect all button styles
54
- const selectAllBtnClass = clsx(
55
- "text-primary-500",
56
- "hover:text-primary-600 dark:hover:text-primary-400",
57
- "cursor-pointer",
58
- );
51
+ //#region SelectContext
59
52
 
60
- /**
61
- * Select right-side action sub-component
62
- */
63
- interface SelectActionProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {}
53
+ export interface SelectContextValue<TValue = unknown> {
54
+ /** Whether multiple select mode is enabled */
55
+ multiple: Accessor<boolean>;
56
+
57
+ /** Check if value is selected */
58
+ isSelected: (value: TValue) => boolean;
59
+
60
+ /** Toggle value selection/deselection */
61
+ toggleValue: (value: TValue) => void;
62
+
63
+ /** Close dropdown */
64
+ closeDropdown: () => void;
65
+
66
+ /** Register item template */
67
+ setItemTemplate: (fn: ((...args: unknown[]) => JSX.Element) | undefined) => void;
68
+ }
69
+
70
+ export const SelectContext = createContext<SelectContextValue>();
71
+ const SelectCtx = SelectContext;
72
+
73
+ function useSelectContext<TValue = unknown>(): SelectContextValue<TValue> {
74
+ const context = useContext(SelectCtx);
75
+ if (!context) {
76
+ throw new Error("useSelectContext can only be used inside Select component");
77
+ }
78
+ return context as SelectContextValue<TValue>;
79
+ }
80
+
81
+ //#endregion
82
+
83
+ //#region SelectAction
64
84
 
65
- const SelectAction: ParentComponent<SelectActionProps> = (props) => {
85
+ interface SelectActionProps extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "type"> {
86
+ children?: JSX.Element;
87
+ }
88
+
89
+ const [SelectActionSlot, createActionSlotAccessor] = createSlot<{ children: JSX.Element }>();
90
+
91
+ const SelectAction = (props: SelectActionProps) => {
66
92
  const [local, rest] = splitProps(props, ["children", "class"]);
67
- const ctx = useSelectContext();
68
93
 
69
- ctx.setAction(() => (
70
- <button
71
- {...rest}
72
- type="button"
73
- data-select-action
74
- use:ripple
75
- class={twMerge(
76
- clsx(
77
- "border",
78
- borderDefault,
79
- "px-1.5",
80
- "font-bold text-primary-500",
81
- "hover:bg-base-100 dark:hover:bg-base-700",
82
- "group-focus-within:border-y-primary-400",
83
- "last:group-focus-within:border-r-primary-400",
84
- "dark:group-focus-within:border-y-primary-400",
85
- "dark:last:group-focus-within:border-r-primary-400",
86
- "focus:relative focus:z-10 focus:border-primary-400",
87
- "dark:focus:border-primary-400",
88
- ),
89
- local.class,
90
- )}
91
- >
92
- {local.children}
93
- </button>
94
- ));
95
- onCleanup(() => ctx.setAction(undefined));
96
- return null;
97
- };
94
+ const handleClick: JSX.EventHandlerUnion<HTMLButtonElement, MouseEvent> = (e) => {
95
+ if (typeof rest.onClick === "function") {
96
+ rest.onClick(e);
97
+ } else if (rest.onClick && typeof rest.onClick === "object") {
98
+ rest.onClick[0](rest.onClick[1], e);
99
+ }
100
+ };
98
101
 
99
- /**
100
- * Dropdown top custom area sub-component
101
- */
102
- const SelectHeader: ParentComponent = (props) => {
103
- const ctx = useSelectContext();
104
- // eslint-disable-next-line solid/reactivity -- Save as slot accessor, called from JSX tracked scope
105
- ctx.setHeader(() => props.children);
106
- onCleanup(() => ctx.setHeader(undefined));
107
- return null;
102
+ return (
103
+ <SelectActionSlot>
104
+ <button
105
+ {...rest}
106
+ type="button"
107
+ onClick={handleClick}
108
+ class={twMerge("p-2", themeTokens.base.hoverBg, local.class)}
109
+ data-select-action
110
+ >
111
+ {local.children}
112
+ </button>
113
+ </SelectActionSlot>
114
+ );
108
115
  };
109
116
 
117
+ //#endregion
118
+
119
+ const selectAllBtnClass = clsx(
120
+ "text-primary-500",
121
+ "hover:text-primary-600 dark:hover:text-primary-400",
122
+ "cursor-pointer",
123
+ );
124
+
110
125
  const SelectItemTemplate = <TArgs extends unknown[]>(props: {
111
126
  children: (...args: TArgs) => JSX.Element;
112
127
  }) => {
113
128
  const ctx = useSelectContext();
114
- // eslint-disable-next-line solid/reactivity -- Store render function in signal, called from JSX tracked scope
115
129
  ctx.setItemTemplate(props.children as (...args: unknown[]) => JSX.Element);
116
130
  onCleanup(() => ctx.setItemTemplate(undefined));
117
131
  return null;
118
132
  };
119
133
 
134
+ //#region SelectItem
135
+
136
+ export interface SelectItemProps<TValue = unknown> extends Omit<
137
+ JSX.ButtonHTMLAttributes<HTMLButtonElement>,
138
+ "value" | "onClick"
139
+ > {
140
+ /** Item value */
141
+ value: TValue;
142
+
143
+ /** Disabled state */
144
+ disabled?: boolean;
145
+ }
146
+
147
+ /**
148
+ * Selectable item within Select dropdown
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * <Select.Item value={item}>{item.name}</Select.Item>
153
+ *
154
+ * // Nested items
155
+ * <Select.Item value={parent}>
156
+ * {parent.name}
157
+ * <Select.Item.Children>
158
+ * <Select.Item value={child}>{child.name}</Select.Item>
159
+ * </Select.Item.Children>
160
+ * </Select.Item>
161
+ * ```
162
+ */
163
+ const SelectItemInner = <TValue,>(
164
+ props: SelectItemProps<TValue> & { children?: JSX.Element },
165
+ ) => {
166
+ const [local, rest] = splitProps(props, ["children", "class", "value", "disabled"]);
167
+
168
+ const context = useSelectContext<TValue>();
169
+
170
+ const [childrenSlot, ItemChildrenProvider] = createItemChildrenSlotAccessor();
171
+ const hasChildren = () => childrenSlot() !== undefined;
172
+ const isSelected = () => context.isSelected(local.value);
173
+ const useRipple = () => !local.disabled;
174
+
175
+ const handleClick = () => {
176
+ if (local.disabled) return;
177
+
178
+ context.toggleValue(local.value);
179
+
180
+ // Close dropdown only in single select mode
181
+ if (!context.multiple()) {
182
+ context.closeDropdown();
183
+ }
184
+ };
185
+
186
+ const getClassName = () =>
187
+ twMerge(
188
+ listItemBaseClass,
189
+ isSelected() && listItemSelectedClass,
190
+ local.disabled && listItemDisabledClass,
191
+ local.class,
192
+ );
193
+
194
+ const getCheckIconClass = () => getListItemSelectedIconClass(isSelected());
195
+
196
+ return (
197
+ <ItemChildrenProvider>
198
+ <button
199
+ {...rest}
200
+ type="button"
201
+ use:ripple={useRipple()}
202
+ class={getClassName()}
203
+ data-select-item
204
+ data-list-item
205
+ role="option"
206
+ aria-selected={isSelected() || undefined}
207
+ aria-disabled={local.disabled || undefined}
208
+ tabIndex={local.disabled ? -1 : 0}
209
+ onClick={handleClick}
210
+ >
211
+ <Show when={context.multiple() && !hasChildren()}>
212
+ <Icon icon={IconCheck} class={getCheckIconClass()} />
213
+ </Show>
214
+ <span class={listItemContentClass}>{local.children}</span>
215
+ </button>
216
+ <Show when={hasChildren()}>
217
+ <Collapse open={true}>
218
+ <div class="flex">
219
+ <div class={listItemIndentGuideClass} />
220
+ <List inset class="flex-1">
221
+ {childrenSlot()!.children}
222
+ </List>
223
+ </div>
224
+ </Collapse>
225
+ </Show>
226
+ </ItemChildrenProvider>
227
+ );
228
+ };
229
+
230
+ const SelectItem = Object.assign(SelectItemInner, {
231
+ Children: SelectItemChildren,
232
+ });
233
+
234
+ //#endregion
235
+
120
236
  // Props definition
121
237
 
122
238
  // Common Props (except value, onValueChange, multiple)
@@ -139,14 +255,14 @@ interface SelectCommonProps<TValue = unknown> {
139
255
  /** Custom validation function */
140
256
  validate?: (value: unknown) => string | undefined;
141
257
 
142
- /** touchMode: Show error only after blur */
143
- touchMode?: boolean;
258
+ /** lazyValidation: Show error only after blur */
259
+ lazyValidation?: boolean;
144
260
 
145
261
  /** Search text extraction function (shows search input when set) */
146
- getSearchText?: (item: TValue) => string;
262
+ itemSearchText?: (item: TValue) => string;
147
263
 
148
264
  /** Function to determine if item is hidden */
149
- getIsHidden?: (item: TValue) => boolean;
265
+ isItemHidden?: (item: TValue) => boolean;
150
266
 
151
267
  /** Custom class */
152
268
  class?: string;
@@ -164,10 +280,10 @@ interface SelectSingleBaseProps<TValue> extends SelectCommonProps<TValue> {
164
280
  value?: TValue;
165
281
 
166
282
  /** Value change callback */
167
- onValueChange?: (value: TValue) => void;
283
+ onValueChange?: (value: TValue | undefined) => void;
168
284
 
169
285
  /** Display direction for multiple select (not used in single select) */
170
- multiDisplayDirection?: never;
286
+ tagDirection?: never;
171
287
 
172
288
  /** Hide select all button (not used in single select) */
173
289
  hideSelectAll?: never;
@@ -185,7 +301,7 @@ interface SelectMultipleBaseProps<TValue> extends SelectCommonProps<TValue> {
185
301
  onValueChange?: (value: TValue[]) => void;
186
302
 
187
303
  /** Display direction for multiple select */
188
- multiDisplayDirection?: "horizontal" | "vertical";
304
+ tagDirection?: "horizontal" | "vertical";
189
305
 
190
306
  /** Hide select all button */
191
307
  hideSelectAll?: boolean;
@@ -194,7 +310,7 @@ interface SelectMultipleBaseProps<TValue> extends SelectCommonProps<TValue> {
194
310
  // items mode
195
311
  interface SelectWithItemsPropsBase<TValue> {
196
312
  items: TValue[];
197
- getChildren?: (item: TValue, index: number, depth: number) => TValue[] | undefined;
313
+ itemChildren?: (item: TValue, index: number, depth: number) => TValue[] | undefined;
198
314
  renderValue?: (value: TValue) => JSX.Element;
199
315
  children?: JSX.Element;
200
316
  }
@@ -202,7 +318,7 @@ interface SelectWithItemsPropsBase<TValue> {
202
318
  // children mode
203
319
  interface SelectWithChildrenPropsBase<TValue> {
204
320
  items?: never;
205
- getChildren?: never;
321
+ itemChildren?: never;
206
322
  renderValue: (value: TValue) => JSX.Element;
207
323
  children: JSX.Element;
208
324
  }
@@ -213,13 +329,6 @@ export type SelectProps<TValue = unknown> =
213
329
  | (SelectMultipleBaseProps<TValue> & SelectWithItemsPropsBase<TValue>)
214
330
  | (SelectMultipleBaseProps<TValue> & SelectWithChildrenPropsBase<TValue>);
215
331
 
216
- interface SelectComponent {
217
- <TValue = unknown>(props: SelectProps<TValue>): JSX.Element;
218
- Item: typeof SelectItem;
219
- Action: typeof SelectAction;
220
- Header: typeof SelectHeader;
221
- ItemTemplate: typeof SelectItemTemplate;
222
- }
223
332
 
224
333
  /**
225
334
  * Select component
@@ -240,8 +349,8 @@ interface SelectComponent {
240
349
  * </Select>
241
350
  * ```
242
351
  */
243
- export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
244
- const [local, rest] = splitProps(props as SelectProps<T> & { children?: JSX.Element }, [
352
+ const SelectInnerComponent = <TValue,>(props: SelectProps<TValue>) => {
353
+ const [local, rest] = splitProps(props as SelectProps<TValue> & { children?: JSX.Element }, [
245
354
  "children",
246
355
  "class",
247
356
  "style",
@@ -253,15 +362,15 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
253
362
  "placeholder",
254
363
  "size",
255
364
  "inset",
256
- "multiDisplayDirection",
365
+ "tagDirection",
257
366
  "hideSelectAll",
258
367
  "items",
259
- "getChildren",
368
+ "itemChildren",
260
369
  "renderValue",
261
370
  "validate",
262
- "touchMode",
263
- "getSearchText",
264
- "getIsHidden",
371
+ "lazyValidation",
372
+ "itemSearchText",
373
+ "isItemHidden",
265
374
  ]);
266
375
 
267
376
  const i18n = useI18n();
@@ -278,14 +387,14 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
278
387
  });
279
388
 
280
389
  // Manage selected value (controlled/uncontrolled pattern)
281
- type ValueType = T | T[] | undefined;
390
+ type ValueType = TValue | TValue[] | undefined;
282
391
  const [value, setValue] = createControllableSignal<ValueType>({
283
392
  value: () => local.value,
284
393
  onChange: () => local.onValueChange as ((v: ValueType) => void) | undefined,
285
394
  } as Parameters<typeof createControllableSignal<ValueType>>[0]);
286
395
 
287
396
  // Check if value is selected
288
- const isSelected = (itemValue: T): boolean => {
397
+ const isSelected = (itemValue: TValue): boolean => {
289
398
  const current = value();
290
399
  if (current === undefined) return false;
291
400
 
@@ -296,17 +405,17 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
296
405
  };
297
406
 
298
407
  // Toggle value
299
- const toggleValue = (itemValue: T) => {
408
+ const toggleValue = (itemValue: TValue) => {
300
409
  if (local.multiple) {
301
- const current = (value() as T[] | undefined) ?? [];
410
+ const current = (value() as TValue[] | undefined) ?? [];
302
411
  const idx = current.indexOf(itemValue);
303
412
  if (idx >= 0) {
304
- setValue([...current.slice(0, idx), ...current.slice(idx + 1)] as T[]);
413
+ setValue([...current.slice(0, idx), ...current.slice(idx + 1)]);
305
414
  } else {
306
- setValue([...current, itemValue] as T[]);
415
+ setValue([...current, itemValue]);
307
416
  }
308
417
  } else {
309
- setValue(itemValue);
418
+ setValue(itemValue as any);
310
419
  }
311
420
  };
312
421
 
@@ -315,9 +424,9 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
315
424
  setOpen(false);
316
425
  };
317
426
 
318
- // Slot signals
319
- const [header, setHeader] = createSlotSignal();
320
- const [action, setAction] = createSlotSignal();
427
+ // Slot accessors
428
+ const [header, HeaderProvider] = createHeaderSlotAccessor();
429
+ const [action, ActionProvider] = createActionSlotAccessor();
321
430
  const [itemTemplate, _setItemTemplate] = createSignal<
322
431
  ((...args: unknown[]) => JSX.Element) | undefined
323
432
  >();
@@ -325,13 +434,11 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
325
434
  _setItemTemplate(() => fn);
326
435
 
327
436
  // Context value
328
- const contextValue: SelectContextValue<T> = {
437
+ const contextValue: SelectContextValue<TValue> = {
329
438
  multiple: () => local.multiple ?? false,
330
439
  isSelected,
331
440
  toggleValue,
332
441
  closeDropdown,
333
- setHeader,
334
- setAction,
335
442
  setItemTemplate,
336
443
  };
337
444
 
@@ -363,21 +470,21 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
363
470
  });
364
471
 
365
472
  // Search filtering (supports hierarchical structure)
366
- const filteredItems = createMemo((): T[] | undefined => {
473
+ const filteredItems = createMemo((): TValue[] | undefined => {
367
474
  if (!local.items) return undefined;
368
- if (!local.getSearchText || !searchText()) return local.items;
475
+ if (!local.itemSearchText || !searchText()) return local.items;
369
476
 
370
477
  const terms = searchText().trim().split(" ").filter(Boolean);
371
478
  if (terms.length === 0) return local.items;
372
479
 
373
480
  // Include parent when child matches in hierarchical structure
374
- const matchesSearch = (item: T): boolean => {
375
- const text = local.getSearchText!(item).toLowerCase();
376
- if (terms.every((t) => text.includes(t.toLowerCase()))) return true;
481
+ const matchesSearch = (item: TValue): boolean => {
482
+ const itemText = local.itemSearchText!(item).toLowerCase();
483
+ if (terms.every((t) => itemText.includes(t.toLowerCase()))) return true;
377
484
 
378
485
  // Show parent if any child matches
379
- if (local.getChildren) {
380
- const itemChildren = local.getChildren(item, 0, 0);
486
+ if (local.itemChildren) {
487
+ const itemChildren = local.itemChildren(item, 0, 0);
381
488
  if (itemChildren?.some((child) => matchesSearch(child))) return true;
382
489
  }
383
490
 
@@ -388,13 +495,13 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
388
495
  });
389
496
 
390
497
  // Items with hidden filter applied
391
- const visibleItems = createMemo((): T[] | undefined => {
498
+ const visibleItems = createMemo((): TValue[] | undefined => {
392
499
  const items = filteredItems();
393
- if (!items || !local.getIsHidden) return items;
500
+ if (!items || !local.isItemHidden) return items;
394
501
 
395
502
  return items.filter((item) => {
396
503
  // Show hidden item if selected (with strikethrough)
397
- if (local.getIsHidden!(item)) {
504
+ if (local.isItemHidden!(item)) {
398
505
  return isSelected(item);
399
506
  }
400
507
  return true;
@@ -410,38 +517,38 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
410
517
 
411
518
  // Deselect all
412
519
  const handleDeselectAll = () => {
413
- setValue([] as unknown as T[]);
520
+ setValue([] as TValue[]);
414
521
  };
415
522
 
416
523
  // Inner component: resolve children inside Provider to trigger slot registration
417
- const SelectInner: ParentComponent = (innerProps) => {
524
+ const SelectInnerRender: ParentComponent = (innerProps) => {
418
525
  // Resolve children() to trigger sub-component registration (Header, Action, ItemTemplate return null)
419
526
  const resolved = children(() => innerProps.children);
420
527
 
421
528
  // Extract itemTemplate function
422
529
  const getItemTemplate = ():
423
- | ((item: T, index: number, depth: number) => JSX.Element)
530
+ | ((item: TValue, index: number, depth: number) => JSX.Element)
424
531
  | undefined => {
425
- return itemTemplate() as ((item: T, index: number, depth: number) => JSX.Element) | undefined;
532
+ return itemTemplate() as ((item: TValue, index: number, depth: number) => JSX.Element) | undefined;
426
533
  };
427
534
 
428
535
  // Render items recursively
429
- const renderItems = (itemList: T[], depth: number): JSX.Element => {
536
+ const renderItems = (itemList: TValue[], depth: number): JSX.Element => {
430
537
  const tpl = getItemTemplate();
431
538
  return (
432
539
  <For each={itemList}>
433
540
  {(item, index) => {
434
- const hidden = () => local.getIsHidden?.(item) ?? false;
541
+ const hidden = () => local.isItemHidden?.(item) ?? false;
435
542
  return (
436
543
  <SelectItem value={item} class={hidden() ? "line-through opacity-60" : undefined}>
437
544
  {tpl ? tpl(item, index(), depth) : String(item)}
438
- <Show when={local.getChildren?.(item, index(), depth)} keyed>
545
+ <Show when={local.itemChildren?.(item, index(), depth)} keyed>
439
546
  {(itemChildren) => {
440
547
  // Apply hidden filter to child list
441
548
  const visibleChildren = () => {
442
- if (!local.getIsHidden) return itemChildren;
549
+ if (!local.isItemHidden) return itemChildren;
443
550
  return itemChildren.filter((child) => {
444
- if (local.getIsHidden!(child)) return isSelected(child);
551
+ if (local.isItemHidden!(child)) return isSelected(child);
445
552
  return true;
446
553
  });
447
554
  };
@@ -462,7 +569,7 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
462
569
  };
463
570
 
464
571
  // Render selected value (reuse itemTemplate when in items mode)
465
- const renderValue = (renderVal: T): JSX.Element => {
572
+ const renderValue = (renderVal: TValue): JSX.Element => {
466
573
  if (local.renderValue) {
467
574
  return local.renderValue(renderVal);
468
575
  }
@@ -478,19 +585,19 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
478
585
  const current = value();
479
586
 
480
587
  if (current === undefined || (Array.isArray(current) && current.length === 0)) {
481
- return <span class={textMuted}>{local.placeholder ?? ""}</span>;
588
+ return <span class={text.muted}>{local.placeholder ?? ""}</span>;
482
589
  }
483
590
 
484
591
  if (local.multiple && Array.isArray(current)) {
485
- const direction = local.multiDisplayDirection ?? "horizontal";
592
+ const direction = local.tagDirection ?? "horizontal";
486
593
  return (
487
594
  <div class={clsx("flex gap-1", direction === "vertical" ? "flex-col" : "flex-wrap")}>
488
- <For each={current}>{(v) => <span class={multiTagClass}>{renderValue(v)}</span>}</For>
595
+ <For each={current}>{(v) => <span class={clsx("rounded px-1", bg.subtle)}>{renderValue(v)}</span>}</For>
489
596
  </div>
490
597
  );
491
598
  }
492
599
 
493
- return renderValue(current as T);
600
+ return renderValue(current as TValue);
494
601
  };
495
602
 
496
603
  // Show unset item: single select + not required + items mode
@@ -523,26 +630,26 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
523
630
  style={local.style}
524
631
  onKeyDown={handleTriggerKeyDown}
525
632
  >
526
- <div class={selectedValueClass}>{renderSelectedValue()}</div>
633
+ <div class="flex-1 whitespace-nowrap">{renderSelectedValue()}</div>
527
634
  <div class={chevronWrapperClass}>
528
635
  <Icon icon={IconChevronDown} size="1em" />
529
636
  </div>
530
637
  </div>
531
638
  </Dropdown.Trigger>
532
639
  <Dropdown.Content>
533
- <Show when={header()}>{header()!()}</Show>
640
+ <Show when={header()}>{header()!.children}</Show>
534
641
  {/* Search input */}
535
- <Show when={local.getSearchText && local.items}>
642
+ <Show when={local.itemSearchText && local.items}>
536
643
  <TextInput
537
644
  value={searchText()}
538
645
  onValueChange={setSearchText}
539
646
  placeholder={i18n.t("select.searchPlaceholder")}
540
- class={searchInputClass}
647
+ class={clsx("w-full rounded-none border-0 border-b", border.subtle)}
541
648
  />
542
649
  </Show>
543
650
  {/* Select all/deselect buttons */}
544
651
  <Show when={showSelectAllBar()}>
545
- <div class={selectAllBarClass}>
652
+ <div class={clsx("flex gap-2 border-b", border.subtle, pad.default, "text-xs")}>
546
653
  <button
547
654
  type="button"
548
655
  data-select-all
@@ -565,8 +672,8 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
565
672
  <Show when={local.items} fallback={resolved()}>
566
673
  {/* Unset item */}
567
674
  <Show when={showUnsetItem()}>
568
- <SelectItem value={undefined as T}>
569
- <span class={textMuted}>{i18n.t("select.unset")}</span>
675
+ <SelectItem value={undefined as TValue}>
676
+ <span class={text.muted}>{i18n.t("select.unset")}</span>
570
677
  </SelectItem>
571
678
  </Show>
572
679
  {renderItems(visibleItems() ?? [], 0)}
@@ -582,7 +689,7 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
582
689
  "[&>[data-select-action]+[data-select-action]]:-ml-px",
583
690
  )}
584
691
  >
585
- {action()!()}
692
+ {action()!.children}
586
693
  </div>
587
694
  </Show>
588
695
  </div>
@@ -590,15 +697,23 @@ export const Select: SelectComponent = <T,>(props: SelectProps<T>) => {
590
697
  };
591
698
 
592
699
  return (
593
- <Invalid message={errorMsg()} variant="border" touchMode={local.touchMode}>
594
- <SelectContext.Provider value={contextValue as SelectContextValue}>
595
- <SelectInner>{local.children}</SelectInner>
596
- </SelectContext.Provider>
700
+ <Invalid message={errorMsg()} variant="border" lazyValidation={local.lazyValidation}>
701
+ <SelectCtx.Provider value={contextValue as SelectContextValue}>
702
+ <HeaderProvider>
703
+ <ActionProvider>
704
+ <SelectInnerRender>{local.children}</SelectInnerRender>
705
+ </ActionProvider>
706
+ </HeaderProvider>
707
+ </SelectCtx.Provider>
597
708
  </Invalid>
598
709
  );
599
710
  };
600
711
 
601
- Select.Item = SelectItem;
602
- Select.Action = SelectAction;
603
- Select.Header = SelectHeader;
604
- Select.ItemTemplate = SelectItemTemplate;
712
+ //#region Export
713
+ export const Select = Object.assign(SelectInnerComponent, {
714
+ Item: SelectItem,
715
+ Header: SelectHeader,
716
+ Action: SelectAction,
717
+ ItemTemplate: SelectItemTemplate,
718
+ });
719
+ //#endregion