@simplysm/solid 13.0.28 → 13.0.30

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 (379) hide show
  1. package/README.md +15 -9
  2. package/dist/components/data/Pagination.d.ts +4 -5
  3. package/dist/components/data/Pagination.d.ts.map +1 -1
  4. package/dist/components/data/Pagination.js +14 -14
  5. package/dist/components/data/Pagination.js.map +2 -2
  6. package/dist/components/data/Table.js +1 -1
  7. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  8. package/dist/components/data/calendar/Calendar.js +1 -1
  9. package/dist/components/data/calendar/Calendar.js.map +1 -1
  10. package/dist/components/data/kanban/Kanban.d.ts +9 -9
  11. package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
  12. package/dist/components/data/kanban/Kanban.js +6 -6
  13. package/dist/components/data/kanban/Kanban.js.map +2 -2
  14. package/dist/components/data/list/List.d.ts.map +1 -1
  15. package/dist/components/data/list/List.js.map +1 -1
  16. package/dist/components/data/list/ListItem.d.ts.map +1 -1
  17. package/dist/components/data/list/ListItem.js.map +1 -1
  18. package/dist/components/data/permission-table/PermissionTable.d.ts.map +1 -1
  19. package/dist/components/data/permission-table/PermissionTable.js.map +1 -1
  20. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  21. package/dist/components/data/sheet/DataSheet.js +102 -107
  22. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  23. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  24. package/dist/components/data/sheet/DataSheet.styles.js +24 -6
  25. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  26. package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
  27. package/dist/components/data/sheet/DataSheetColumn.js.map +1 -1
  28. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
  29. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
  30. package/dist/components/data/sheet/sheetUtils.d.ts.map +1 -1
  31. package/dist/components/data/sheet/sheetUtils.js.map +1 -1
  32. package/dist/components/data/sheet/types.d.ts +2 -2
  33. package/dist/components/data/sheet/types.d.ts.map +1 -1
  34. package/dist/components/disclosure/Collapse.d.ts.map +1 -1
  35. package/dist/components/disclosure/Collapse.js +0 -3
  36. package/dist/components/disclosure/Collapse.js.map +1 -1
  37. package/dist/components/disclosure/Dialog.d.ts +8 -8
  38. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  39. package/dist/components/disclosure/Dialog.js +64 -69
  40. package/dist/components/disclosure/Dialog.js.map +2 -2
  41. package/dist/components/disclosure/DialogContext.d.ts +4 -4
  42. package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
  43. package/dist/components/disclosure/DialogContext.js.map +1 -1
  44. package/dist/components/disclosure/DialogProvider.d.ts.map +1 -1
  45. package/dist/components/disclosure/DialogProvider.js +8 -8
  46. package/dist/components/disclosure/DialogProvider.js.map +2 -2
  47. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  48. package/dist/components/disclosure/Dropdown.js.map +1 -1
  49. package/dist/components/disclosure/Tabs.d.ts.map +1 -1
  50. package/dist/components/disclosure/Tabs.js.map +1 -1
  51. package/dist/components/display/Alert.d.ts.map +1 -1
  52. package/dist/components/display/Alert.js.map +1 -1
  53. package/dist/components/display/Card.d.ts +0 -1
  54. package/dist/components/display/Card.d.ts.map +1 -1
  55. package/dist/components/display/Card.js +1 -2
  56. package/dist/components/display/Card.js.map +1 -1
  57. package/dist/components/display/Echarts.d.ts +1 -1
  58. package/dist/components/display/Echarts.d.ts.map +1 -1
  59. package/dist/components/display/Echarts.js +2 -2
  60. package/dist/components/display/Echarts.js.map +2 -2
  61. package/dist/components/display/Link.d.ts +5 -0
  62. package/dist/components/display/Link.d.ts.map +1 -0
  63. package/dist/components/display/Link.js +26 -0
  64. package/dist/components/display/Link.js.map +6 -0
  65. package/dist/components/feedback/Progress.d.ts +3 -3
  66. package/dist/components/feedback/Progress.d.ts.map +1 -1
  67. package/dist/components/feedback/Progress.js +1 -1
  68. package/dist/components/feedback/Progress.js.map +2 -2
  69. package/dist/components/feedback/busy/BusyContainer.d.ts +13 -0
  70. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -0
  71. package/dist/components/feedback/{loading/LoadingContainer.js → busy/BusyContainer.js} +20 -13
  72. package/dist/components/feedback/busy/BusyContainer.js.map +6 -0
  73. package/dist/components/feedback/busy/BusyContext.d.ts +11 -0
  74. package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -0
  75. package/dist/components/feedback/busy/BusyContext.js +14 -0
  76. package/dist/components/feedback/busy/BusyContext.js.map +6 -0
  77. package/dist/components/feedback/busy/BusyProvider.d.ts +7 -0
  78. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -0
  79. package/dist/components/feedback/{loading/LoadingProvider.js → busy/BusyProvider.js} +7 -7
  80. package/dist/components/feedback/busy/BusyProvider.js.map +6 -0
  81. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  82. package/dist/components/feedback/notification/NotificationBanner.js +1 -1
  83. package/dist/components/feedback/notification/NotificationBanner.js.map +1 -1
  84. package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
  85. package/dist/components/feedback/notification/NotificationBell.js +4 -2
  86. package/dist/components/feedback/notification/NotificationBell.js.map +2 -2
  87. package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
  88. package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
  89. package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
  90. package/dist/components/feedback/notification/NotificationProvider.js +1 -0
  91. package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
  92. package/dist/components/form-control/Button.d.ts.map +1 -1
  93. package/dist/components/form-control/Button.js +2 -2
  94. package/dist/components/form-control/Button.js.map +1 -1
  95. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  96. package/dist/components/form-control/DropdownTrigger.styles.js +6 -1
  97. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  98. package/dist/components/form-control/Invalid.d.ts +4 -2
  99. package/dist/components/form-control/Invalid.d.ts.map +1 -1
  100. package/dist/components/form-control/Invalid.js +81 -41
  101. package/dist/components/form-control/Invalid.js.map +2 -2
  102. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  103. package/dist/components/form-control/ThemeToggle.js +4 -5
  104. package/dist/components/form-control/ThemeToggle.js.map +2 -2
  105. package/dist/components/form-control/checkbox/Checkbox.d.ts +4 -2
  106. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  107. package/dist/components/form-control/checkbox/Checkbox.js +65 -52
  108. package/dist/components/form-control/checkbox/Checkbox.js.map +2 -2
  109. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts +1 -2
  110. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  111. package/dist/components/form-control/checkbox/Checkbox.styles.js +8 -10
  112. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  113. package/dist/components/form-control/checkbox/CheckboxGroup.d.ts +9 -9
  114. package/dist/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -1
  115. package/dist/components/form-control/checkbox/CheckboxGroup.js +10 -82
  116. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
  117. package/dist/components/form-control/checkbox/Radio.d.ts +4 -2
  118. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  119. package/dist/components/form-control/checkbox/Radio.js +64 -51
  120. package/dist/components/form-control/checkbox/Radio.js.map +2 -2
  121. package/dist/components/form-control/checkbox/RadioGroup.d.ts +9 -9
  122. package/dist/components/form-control/checkbox/RadioGroup.d.ts.map +1 -1
  123. package/dist/components/form-control/checkbox/RadioGroup.js +10 -77
  124. package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
  125. package/dist/components/form-control/color-picker/ColorPicker.d.ts +8 -3
  126. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  127. package/dist/components/form-control/color-picker/ColorPicker.js +43 -26
  128. package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
  129. package/dist/components/form-control/combobox/Combobox.d.ts +8 -8
  130. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  131. package/dist/components/form-control/combobox/Combobox.js +72 -59
  132. package/dist/components/form-control/combobox/Combobox.js.map +2 -2
  133. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  134. package/dist/components/form-control/editor/EditorToolbar.js +3 -2
  135. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  136. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  137. package/dist/components/form-control/editor/RichTextEditor.js.map +1 -1
  138. package/dist/components/form-control/field/DatePicker.d.ts +6 -0
  139. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  140. package/dist/components/form-control/field/DatePicker.js +138 -117
  141. package/dist/components/form-control/field/DatePicker.js.map +2 -2
  142. package/dist/components/form-control/field/DateTimePicker.d.ts +6 -0
  143. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  144. package/dist/components/form-control/field/DateTimePicker.js +138 -115
  145. package/dist/components/form-control/field/DateTimePicker.js.map +2 -2
  146. package/dist/components/form-control/field/Field.styles.d.ts +14 -0
  147. package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
  148. package/dist/components/form-control/field/Field.styles.js +47 -3
  149. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  150. package/dist/components/form-control/field/FieldPlaceholder.d.ts +7 -0
  151. package/dist/components/form-control/field/FieldPlaceholder.d.ts.map +1 -0
  152. package/dist/components/form-control/field/FieldPlaceholder.js +34 -0
  153. package/dist/components/form-control/field/FieldPlaceholder.js.map +6 -0
  154. package/dist/components/form-control/field/NumberInput.d.ts +13 -0
  155. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  156. package/dist/components/form-control/field/NumberInput.js +163 -111
  157. package/dist/components/form-control/field/NumberInput.js.map +2 -2
  158. package/dist/components/form-control/field/TextInput.d.ts +16 -1
  159. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  160. package/dist/components/form-control/field/TextInput.js +177 -114
  161. package/dist/components/form-control/field/TextInput.js.map +2 -2
  162. package/dist/components/form-control/field/Textarea.d.ts +10 -0
  163. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  164. package/dist/components/form-control/field/Textarea.js +156 -121
  165. package/dist/components/form-control/field/Textarea.js.map +2 -2
  166. package/dist/components/form-control/field/TimePicker.d.ts +10 -0
  167. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  168. package/dist/components/form-control/field/TimePicker.js +126 -94
  169. package/dist/components/form-control/field/TimePicker.js.map +2 -2
  170. package/dist/components/form-control/select/Select.d.ts +7 -9
  171. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  172. package/dist/components/form-control/select/Select.js +71 -60
  173. package/dist/components/form-control/select/Select.js.map +2 -2
  174. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  175. package/dist/components/form-control/select/SelectItem.js.map +1 -1
  176. package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
  177. package/dist/components/form-control/state-preset/StatePreset.js +2 -1
  178. package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
  179. package/dist/components/layout/FormGroup.d.ts.map +1 -1
  180. package/dist/components/layout/FormGroup.js.map +1 -1
  181. package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
  182. package/dist/components/layout/sidebar/Sidebar.js +1 -1
  183. package/dist/components/layout/sidebar/Sidebar.js.map +1 -1
  184. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
  185. package/dist/components/layout/sidebar/SidebarContainer.js.map +1 -1
  186. package/dist/components/layout/sidebar/SidebarMenu.js +1 -1
  187. package/dist/components/layout/sidebar/SidebarMenu.js.map +1 -1
  188. package/dist/components/layout/sidebar/SidebarUser.d.ts.map +1 -1
  189. package/dist/components/layout/sidebar/SidebarUser.js +4 -4
  190. package/dist/components/layout/sidebar/SidebarUser.js.map +1 -1
  191. package/dist/components/layout/topbar/Topbar.js +1 -1
  192. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
  193. package/dist/components/layout/topbar/TopbarMenu.js.map +1 -1
  194. package/dist/components/layout/topbar/TopbarUser.d.ts.map +1 -1
  195. package/dist/components/layout/topbar/TopbarUser.js.map +1 -1
  196. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  197. package/dist/helpers/createAppStructure.js +17 -12
  198. package/dist/helpers/createAppStructure.js.map +1 -1
  199. package/dist/helpers/mergeStyles.d.ts.map +1 -1
  200. package/dist/helpers/mergeStyles.js +4 -1
  201. package/dist/helpers/mergeStyles.js.map +1 -1
  202. package/dist/helpers/splitSlots.d.ts.map +1 -1
  203. package/dist/helpers/splitSlots.js.map +1 -1
  204. package/dist/hooks/createControllableSignal.d.ts.map +1 -1
  205. package/dist/hooks/createControllableSignal.js.map +1 -1
  206. package/dist/hooks/createItemTemplate.d.ts +17 -0
  207. package/dist/hooks/createItemTemplate.d.ts.map +1 -0
  208. package/dist/hooks/createItemTemplate.js +40 -0
  209. package/dist/hooks/createItemTemplate.js.map +6 -0
  210. package/dist/hooks/createPointerDrag.d.ts +13 -0
  211. package/dist/hooks/createPointerDrag.d.ts.map +1 -0
  212. package/dist/hooks/createPointerDrag.js +15 -0
  213. package/dist/hooks/createPointerDrag.js.map +6 -0
  214. package/dist/hooks/createSelectionGroup.d.ts +70 -0
  215. package/dist/hooks/createSelectionGroup.d.ts.map +1 -0
  216. package/dist/hooks/createSelectionGroup.js +141 -0
  217. package/dist/hooks/createSelectionGroup.js.map +6 -0
  218. package/dist/hooks/useClipboardValueCopy.js +3 -1
  219. package/dist/hooks/useClipboardValueCopy.js.map +1 -1
  220. package/dist/hooks/useLocalStorage.d.ts +5 -3
  221. package/dist/hooks/useLocalStorage.d.ts.map +1 -1
  222. package/dist/hooks/useLocalStorage.js.map +1 -1
  223. package/dist/hooks/usePrint.d.ts.map +1 -1
  224. package/dist/hooks/usePrint.js +5 -3
  225. package/dist/hooks/usePrint.js.map +1 -1
  226. package/dist/hooks/{createPwaUpdate.d.ts → usePwaUpdate.d.ts} +2 -2
  227. package/dist/hooks/usePwaUpdate.d.ts.map +1 -0
  228. package/dist/hooks/{createPwaUpdate.js → usePwaUpdate.js} +3 -3
  229. package/dist/hooks/usePwaUpdate.js.map +6 -0
  230. package/dist/hooks/useRouterLink.d.ts.map +1 -1
  231. package/dist/hooks/useRouterLink.js.map +1 -1
  232. package/dist/hooks/useSyncConfig.d.ts +3 -3
  233. package/dist/hooks/useSyncConfig.d.ts.map +1 -1
  234. package/dist/hooks/useSyncConfig.js +6 -7
  235. package/dist/hooks/useSyncConfig.js.map +1 -1
  236. package/dist/index.d.ts +5 -6
  237. package/dist/index.d.ts.map +1 -1
  238. package/dist/index.js +6 -7
  239. package/dist/index.js.map +1 -1
  240. package/dist/providers/ConfigContext.d.ts +2 -2
  241. package/dist/providers/ConfigContext.d.ts.map +1 -1
  242. package/dist/providers/InitializeProvider.js +5 -5
  243. package/dist/providers/InitializeProvider.js.map +2 -2
  244. package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
  245. package/dist/providers/ServiceClientProvider.js.map +1 -1
  246. package/dist/providers/ThemeContext.d.ts.map +1 -1
  247. package/dist/providers/ThemeContext.js +2 -1
  248. package/dist/providers/ThemeContext.js.map +2 -2
  249. package/dist/providers/shared-data/SharedDataChangeEvent.d.ts.map +1 -1
  250. package/dist/providers/shared-data/SharedDataChangeEvent.js +1 -3
  251. package/dist/providers/shared-data/SharedDataChangeEvent.js.map +1 -1
  252. package/dist/providers/shared-data/SharedDataContext.d.ts +1 -1
  253. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  254. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  255. package/dist/providers/shared-data/SharedDataProvider.js +6 -6
  256. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  257. package/dist/styles/patterns.styles.d.ts +1 -0
  258. package/dist/styles/patterns.styles.d.ts.map +1 -1
  259. package/dist/styles/patterns.styles.js +12 -1
  260. package/dist/styles/patterns.styles.js.map +1 -1
  261. package/dist/styles/tokens.styles.d.ts +2 -1
  262. package/dist/styles/tokens.styles.d.ts.map +1 -1
  263. package/dist/styles/tokens.styles.js +1 -1
  264. package/dist/styles/tokens.styles.js.map +1 -1
  265. package/docs/data-components.md +34 -5
  266. package/docs/disclosure.md +28 -8
  267. package/docs/display.md +19 -2
  268. package/docs/feedback.md +35 -12
  269. package/docs/form-controls.md +289 -33
  270. package/docs/hooks.md +21 -9
  271. package/docs/layout.md +15 -3
  272. package/docs/providers.md +120 -8
  273. package/docs/styling.md +90 -0
  274. package/package.json +3 -3
  275. package/src/components/data/Pagination.tsx +26 -22
  276. package/src/components/data/Table.tsx +1 -1
  277. package/src/components/data/calendar/Calendar.tsx +19 -5
  278. package/src/components/data/kanban/Kanban.tsx +72 -35
  279. package/src/components/data/list/List.tsx +11 -4
  280. package/src/components/data/list/ListItem.tsx +12 -2
  281. package/src/components/data/permission-table/PermissionTable.tsx +32 -5
  282. package/src/components/data/sheet/DataSheet.styles.ts +24 -6
  283. package/src/components/data/sheet/DataSheet.tsx +215 -149
  284. package/src/components/data/sheet/DataSheetColumn.tsx +5 -1
  285. package/src/components/data/sheet/DataSheetConfigDialog.tsx +27 -5
  286. package/src/components/data/sheet/sheetUtils.ts +12 -3
  287. package/src/components/data/sheet/types.ts +2 -2
  288. package/src/components/disclosure/Collapse.tsx +14 -3
  289. package/src/components/disclosure/Dialog.tsx +122 -106
  290. package/src/components/disclosure/DialogContext.ts +8 -5
  291. package/src/components/disclosure/DialogProvider.tsx +19 -7
  292. package/src/components/disclosure/Dropdown.tsx +12 -2
  293. package/src/components/disclosure/Tabs.tsx +29 -5
  294. package/src/components/display/Alert.tsx +3 -4
  295. package/src/components/display/Card.tsx +1 -2
  296. package/src/components/display/Echarts.tsx +12 -5
  297. package/src/components/display/Link.tsx +22 -0
  298. package/src/components/feedback/Progress.tsx +9 -5
  299. package/src/components/feedback/{loading/LoadingContainer.tsx → busy/BusyContainer.tsx} +52 -19
  300. package/src/components/feedback/busy/BusyContext.ts +20 -0
  301. package/src/components/feedback/{loading/LoadingProvider.tsx → busy/BusyProvider.tsx} +10 -10
  302. package/src/components/feedback/notification/NotificationBanner.tsx +14 -3
  303. package/src/components/feedback/notification/NotificationBell.tsx +21 -15
  304. package/src/components/feedback/notification/NotificationContext.ts +4 -1
  305. package/src/components/feedback/notification/NotificationProvider.tsx +4 -1
  306. package/src/components/form-control/Button.tsx +8 -3
  307. package/src/components/form-control/DropdownTrigger.styles.ts +7 -1
  308. package/src/components/form-control/Invalid.tsx +114 -48
  309. package/src/components/form-control/ThemeToggle.tsx +9 -18
  310. package/src/components/form-control/checkbox/Checkbox.styles.ts +7 -10
  311. package/src/components/form-control/checkbox/Checkbox.tsx +39 -28
  312. package/src/components/form-control/checkbox/CheckboxGroup.tsx +18 -97
  313. package/src/components/form-control/checkbox/Radio.tsx +39 -28
  314. package/src/components/form-control/checkbox/RadioGroup.tsx +18 -92
  315. package/src/components/form-control/color-picker/ColorPicker.tsx +51 -18
  316. package/src/components/form-control/combobox/Combobox.tsx +53 -35
  317. package/src/components/form-control/editor/EditorToolbar.tsx +19 -19
  318. package/src/components/form-control/editor/RichTextEditor.tsx +22 -4
  319. package/src/components/form-control/field/DatePicker.tsx +99 -93
  320. package/src/components/form-control/field/DateTimePicker.tsx +115 -96
  321. package/src/components/form-control/field/Field.styles.ts +62 -3
  322. package/src/components/form-control/field/FieldPlaceholder.tsx +18 -0
  323. package/src/components/form-control/field/NumberInput.tsx +136 -84
  324. package/src/components/form-control/field/TextInput.tsx +135 -88
  325. package/src/components/form-control/field/Textarea.tsx +126 -99
  326. package/src/components/form-control/field/TimePicker.tsx +101 -71
  327. package/src/components/form-control/select/Select.tsx +75 -42
  328. package/src/components/form-control/select/SelectItem.tsx +3 -1
  329. package/src/components/form-control/state-preset/StatePreset.tsx +41 -22
  330. package/src/components/layout/FormGroup.tsx +11 -2
  331. package/src/components/layout/sidebar/Sidebar.tsx +3 -2
  332. package/src/components/layout/sidebar/SidebarContainer.tsx +8 -1
  333. package/src/components/layout/sidebar/SidebarMenu.tsx +8 -2
  334. package/src/components/layout/sidebar/SidebarUser.tsx +12 -7
  335. package/src/components/layout/topbar/Topbar.tsx +1 -1
  336. package/src/components/layout/topbar/TopbarMenu.tsx +27 -5
  337. package/src/components/layout/topbar/TopbarUser.tsx +5 -1
  338. package/src/helpers/createAppStructure.ts +29 -15
  339. package/src/helpers/mergeStyles.ts +6 -2
  340. package/src/helpers/splitSlots.ts +4 -1
  341. package/src/hooks/createControllableSignal.ts +2 -1
  342. package/src/hooks/createItemTemplate.tsx +42 -0
  343. package/src/hooks/createPointerDrag.ts +28 -0
  344. package/src/hooks/createSelectionGroup.tsx +235 -0
  345. package/src/hooks/useClipboardValueCopy.ts +5 -2
  346. package/src/hooks/useLocalStorage.ts +11 -5
  347. package/src/hooks/usePrint.ts +9 -4
  348. package/src/hooks/{createPwaUpdate.ts → usePwaUpdate.ts} +1 -1
  349. package/src/hooks/useRouterLink.ts +3 -1
  350. package/src/hooks/useSyncConfig.ts +9 -13
  351. package/src/index.ts +6 -7
  352. package/src/providers/ConfigContext.ts +2 -2
  353. package/src/providers/InitializeProvider.tsx +4 -4
  354. package/src/providers/ServiceClientProvider.tsx +14 -3
  355. package/src/providers/ThemeContext.tsx +12 -3
  356. package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -3
  357. package/src/providers/shared-data/SharedDataContext.ts +1 -1
  358. package/src/providers/shared-data/SharedDataProvider.tsx +13 -8
  359. package/src/styles/patterns.styles.ts +13 -1
  360. package/src/styles/tokens.styles.ts +2 -1
  361. package/tailwind.config.ts +9 -0
  362. package/tailwind.css +1 -1
  363. package/dist/components/display/Card.css +0 -15
  364. package/dist/components/feedback/loading/LoadingContainer.d.ts +0 -12
  365. package/dist/components/feedback/loading/LoadingContainer.d.ts.map +0 -1
  366. package/dist/components/feedback/loading/LoadingContainer.js.map +0 -6
  367. package/dist/components/feedback/loading/LoadingContext.d.ts +0 -11
  368. package/dist/components/feedback/loading/LoadingContext.d.ts.map +0 -1
  369. package/dist/components/feedback/loading/LoadingContext.js +0 -14
  370. package/dist/components/feedback/loading/LoadingContext.js.map +0 -6
  371. package/dist/components/feedback/loading/LoadingProvider.d.ts +0 -7
  372. package/dist/components/feedback/loading/LoadingProvider.d.ts.map +0 -1
  373. package/dist/components/feedback/loading/LoadingProvider.js.map +0 -6
  374. package/dist/hooks/createPwaUpdate.d.ts.map +0 -1
  375. package/dist/hooks/createPwaUpdate.js.map +0 -6
  376. package/src/components/display/Card.css +0 -15
  377. package/src/components/feedback/loading/LoadingContext.ts +0 -20
  378. /package/dist/components/feedback/{loading/LoadingContainer.css → busy/BusyContainer.css} +0 -0
  379. /package/src/components/feedback/{loading/LoadingContainer.css → busy/BusyContainer.css} +0 -0
@@ -2,19 +2,20 @@ import { template as _$template } from "solid-js/web";
2
2
  import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
3
3
  import { createComponent as _$createComponent } from "solid-js/web";
4
4
  import { setAttribute as _$setAttribute } from "solid-js/web";
5
- import { className as _$className } from "solid-js/web";
6
5
  import { effect as _$effect } from "solid-js/web";
6
+ import { className as _$className } from "solid-js/web";
7
7
  import { insert as _$insert } from "solid-js/web";
8
- import { memo as _$memo } from "solid-js/web";
9
8
  import { spread as _$spread } from "solid-js/web";
10
9
  import { mergeProps as _$mergeProps } from "solid-js/web";
11
- var _tmpl$ = /* @__PURE__ */ _$template(`<input type=time>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><div data-time-field-content>`), _tmpl$3 = /* @__PURE__ */ _$template(`<div><input type=time>`), _tmpl$4 = /* @__PURE__ */ _$template(`<div>`);
10
+ import { memo as _$memo } from "solid-js/web";
11
+ var _tmpl$ = /* @__PURE__ */ _$template(`<div><input type=time>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><div data-time-field-content>`), _tmpl$3 = /* @__PURE__ */ _$template(`<div>`);
12
12
  import clsx from "clsx";
13
- import { Show, splitProps } from "solid-js";
13
+ import { createMemo, Show, splitProps } from "solid-js";
14
14
  import { twMerge } from "tailwind-merge";
15
15
  import { Time } from "@simplysm/core-common";
16
16
  import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
17
- import { fieldBaseClass, fieldSizeClasses, fieldInsetClass, fieldInsetHeightClass, fieldInsetSizeHeightClasses, fieldDisabledClass, fieldInputClass } from "./Field.styles.js";
17
+ import { fieldInputClass, getFieldWrapperClass } from "./Field.styles.js";
18
+ import { Invalid } from "../../form-control/Invalid.js";
18
19
  function formatValue(value, unit) {
19
20
  if (value == null) return "";
20
21
  switch (unit) {
@@ -40,7 +41,7 @@ function parseValue(str, unit) {
40
41
  }
41
42
  }
42
43
  const TimePicker = (props) => {
43
- const [local, rest] = splitProps(props, ["value", "onValueChange", "unit", "title", "disabled", "readonly", "size", "inset", "class", "style"]);
44
+ const [local, rest] = splitProps(props, ["value", "onValueChange", "unit", "title", "disabled", "readonly", "size", "inset", "class", "style", "min", "max", "required", "validate", "touchMode"]);
44
45
  const fieldType = () => local.unit ?? "minute";
45
46
  const [value, setValue] = createControllableSignal({
46
47
  value: () => local.value,
@@ -52,111 +53,142 @@ const TimePicker = (props) => {
52
53
  const parsed = parseValue(newValue, fieldType());
53
54
  setValue(parsed);
54
55
  };
55
- const getWrapperClass = (includeCustomClass) => twMerge(fieldBaseClass, local.size && fieldSizeClasses[local.size], local.disabled && fieldDisabledClass, local.inset && fieldInsetClass + " block", local.inset && (local.size ? fieldInsetSizeHeightClasses[local.size] : fieldInsetHeightClass), includeCustomClass && local.class);
56
+ const getWrapperClass = (includeCustomClass) => getFieldWrapperClass({
57
+ size: local.size,
58
+ disabled: local.disabled,
59
+ inset: local.inset,
60
+ includeCustomClass: includeCustomClass && local.class
61
+ });
56
62
  const isEditable = () => !local.disabled && !local.readonly;
57
63
  const getStep = () => fieldType() === "second" ? "1" : void 0;
58
- return _$createComponent(Show, {
59
- get when() {
60
- return local.inset;
64
+ const errorMsg = createMemo(() => {
65
+ var _a;
66
+ const v = value();
67
+ if (local.required && v === void 0) return "\uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4";
68
+ if (v !== void 0) {
69
+ if (local.min !== void 0 && v.tick < local.min.tick) return `${local.min.toFormatString("HH:mm:ss")}\uBCF4\uB2E4 \uD06C\uAC70\uB098 \uAC19\uC544\uC57C \uD569\uB2C8\uB2E4`;
70
+ if (local.max !== void 0 && v.tick > local.max.tick) return `${local.max.toFormatString("HH:mm:ss")}\uBCF4\uB2E4 \uC791\uAC70\uB098 \uAC19\uC544\uC57C \uD569\uB2C8\uB2E4`;
71
+ }
72
+ return (_a = local.validate) == null ? void 0 : _a.call(local, v);
73
+ });
74
+ return _$createComponent(Invalid, {
75
+ get message() {
76
+ return errorMsg();
61
77
  },
62
- get fallback() {
63
- return (
64
- // standalone 모드
65
- _$createComponent(Show, {
66
- get when() {
67
- return isEditable();
68
- },
69
- get fallback() {
70
- return (() => {
71
- var _el$6 = _tmpl$4();
72
- _$spread(_el$6, _$mergeProps(rest, {
73
- "data-time-field": "",
74
- get ["class"]() {
75
- return twMerge(getWrapperClass(true), "sd-time-field");
76
- },
77
- get style() {
78
- return local.style;
79
- },
80
- get title() {
81
- return local.title;
82
- }
83
- }), false, true);
84
- _$insert(_el$6, () => displayValue() || "\xA0");
85
- return _el$6;
86
- })();
87
- },
88
- get children() {
89
- var _el$4 = _tmpl$3(), _el$5 = _el$4.firstChild;
90
- _$spread(_el$4, _$mergeProps(rest, {
91
- "data-time-field": "",
92
- get ["class"]() {
93
- return getWrapperClass(true);
94
- },
95
- get style() {
96
- return local.style;
97
- }
98
- }), false, true);
99
- _el$5.addEventListener("change", handleChange);
100
- _$className(_el$5, fieldInputClass);
101
- _$effect((_p$) => {
102
- var _v$6 = local.title, _v$7 = getStep();
103
- _v$6 !== _p$.e && _$setAttribute(_el$5, "title", _p$.e = _v$6);
104
- _v$7 !== _p$.t && _$setAttribute(_el$5, "step", _p$.t = _v$7);
105
- return _p$;
106
- }, {
107
- e: void 0,
108
- t: void 0
109
- });
110
- _$effect(() => _el$5.value = displayValue());
111
- return _el$4;
112
- }
113
- })
114
- );
78
+ get variant() {
79
+ return local.inset ? "dot" : "border";
80
+ },
81
+ get touchMode() {
82
+ return local.touchMode;
115
83
  },
116
84
  get children() {
117
- var _el$ = _tmpl$2(), _el$2 = _el$.firstChild;
118
- _$spread(_el$, _$mergeProps(rest, {
119
- "data-time-field": "",
120
- get ["class"]() {
121
- return twMerge(getWrapperClass(false), "relative", local.class);
122
- },
123
- get style() {
124
- return local.style;
125
- }
126
- }), false, true);
127
- _$insert(_el$2, () => displayValue() || "\xA0");
128
- _$insert(_el$, _$createComponent(Show, {
85
+ return _$createComponent(Show, {
129
86
  get when() {
130
- return isEditable();
87
+ return local.inset;
88
+ },
89
+ get fallback() {
90
+ return (
91
+ // standalone 모드
92
+ _$createComponent(Show, {
93
+ get when() {
94
+ return isEditable();
95
+ },
96
+ get fallback() {
97
+ return (() => {
98
+ var _el$7 = _tmpl$3();
99
+ _$spread(_el$7, _$mergeProps(rest, {
100
+ "data-time-field": "",
101
+ get ["class"]() {
102
+ return twMerge(getWrapperClass(true), "sd-time-field");
103
+ },
104
+ get style() {
105
+ return local.style;
106
+ },
107
+ get title() {
108
+ return local.title;
109
+ }
110
+ }), false, true);
111
+ _$insert(_el$7, () => displayValue() || "\xA0");
112
+ return _el$7;
113
+ })();
114
+ },
115
+ get children() {
116
+ var _el$5 = _tmpl$(), _el$6 = _el$5.firstChild;
117
+ _$spread(_el$5, _$mergeProps(rest, {
118
+ "data-time-field": "",
119
+ get ["class"]() {
120
+ return getWrapperClass(true);
121
+ },
122
+ get style() {
123
+ return local.style;
124
+ }
125
+ }), false, true);
126
+ _el$6.addEventListener("change", handleChange);
127
+ _$className(_el$6, fieldInputClass);
128
+ _$effect((_p$) => {
129
+ var _v$7 = local.title, _v$8 = getStep();
130
+ _v$7 !== _p$.e && _$setAttribute(_el$6, "title", _p$.e = _v$7);
131
+ _v$8 !== _p$.t && _$setAttribute(_el$6, "step", _p$.t = _v$8);
132
+ return _p$;
133
+ }, {
134
+ e: void 0,
135
+ t: void 0
136
+ });
137
+ _$effect(() => _el$6.value = displayValue());
138
+ return _el$5;
139
+ }
140
+ })
141
+ );
131
142
  },
132
143
  get children() {
133
- var _el$3 = _tmpl$();
134
- _el$3.addEventListener("change", handleChange);
144
+ var _el$ = _tmpl$2(), _el$2 = _el$.firstChild;
145
+ _$spread(_el$, _$mergeProps(rest, {
146
+ "data-time-field": "",
147
+ get ["class"]() {
148
+ return clsx("relative", local.class);
149
+ },
150
+ get style() {
151
+ return local.style;
152
+ }
153
+ }), false, true);
154
+ _$insert(_el$2, () => displayValue() || "\xA0");
155
+ _$insert(_el$, _$createComponent(Show, {
156
+ get when() {
157
+ return isEditable();
158
+ },
159
+ get children() {
160
+ var _el$3 = _tmpl$(), _el$4 = _el$3.firstChild;
161
+ _el$4.addEventListener("change", handleChange);
162
+ _$className(_el$4, fieldInputClass);
163
+ _$effect((_p$) => {
164
+ var _v$ = twMerge(getWrapperClass(false), "absolute left-0 top-0 size-full"), _v$2 = local.title, _v$3 = getStep();
165
+ _v$ !== _p$.e && _$className(_el$3, _p$.e = _v$);
166
+ _v$2 !== _p$.t && _$setAttribute(_el$4, "title", _p$.t = _v$2);
167
+ _v$3 !== _p$.a && _$setAttribute(_el$4, "step", _p$.a = _v$3);
168
+ return _p$;
169
+ }, {
170
+ e: void 0,
171
+ t: void 0,
172
+ a: void 0
173
+ });
174
+ _$effect(() => _el$4.value = displayValue());
175
+ return _el$3;
176
+ }
177
+ }), null);
135
178
  _$effect((_p$) => {
136
- var _v$ = clsx(fieldInputClass, "absolute left-0 top-0 size-full", "px-2 py-1"), _v$2 = local.title, _v$3 = getStep();
137
- _v$ !== _p$.e && _$className(_el$3, _p$.e = _v$);
138
- _v$2 !== _p$.t && _$setAttribute(_el$3, "title", _p$.t = _v$2);
139
- _v$3 !== _p$.a && _$setAttribute(_el$3, "step", _p$.a = _v$3);
179
+ var _v$4 = getWrapperClass(false), _v$5 = isEditable() ? "hidden" : void 0, _v$6 = local.title;
180
+ _v$4 !== _p$.e && _$className(_el$2, _p$.e = _v$4);
181
+ _v$5 !== _p$.t && _$setStyleProperty(_el$2, "visibility", _p$.t = _v$5);
182
+ _v$6 !== _p$.a && _$setAttribute(_el$2, "title", _p$.a = _v$6);
140
183
  return _p$;
141
184
  }, {
142
185
  e: void 0,
143
186
  t: void 0,
144
187
  a: void 0
145
188
  });
146
- _$effect(() => _el$3.value = displayValue());
147
- return _el$3;
189
+ return _el$;
148
190
  }
149
- }), null);
150
- _$effect((_p$) => {
151
- var _v$4 = isEditable() ? "hidden" : void 0, _v$5 = local.title;
152
- _v$4 !== _p$.e && _$setStyleProperty(_el$2, "visibility", _p$.e = _v$4);
153
- _v$5 !== _p$.t && _$setAttribute(_el$2, "title", _p$.t = _v$5);
154
- return _p$;
155
- }, {
156
- e: void 0,
157
- t: void 0
158
191
  });
159
- return _el$;
160
192
  }
161
193
  });
162
194
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/form-control/field/TimePicker.tsx"],
4
- "mappings": "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",
5
- "names": ["clsx", "Show", "splitProps", "twMerge", "Time", "createControllableSignal", "fieldBaseClass", "fieldSizeClasses", "fieldInsetClass", "fieldInsetHeightClass", "fieldInsetSizeHeightClasses", "fieldDisabledClass", "fieldInputClass", "formatValue", "value", "unit", "toFormatString", "parseValue", "str", "undefined", "match", "exec", "Number", "TimePicker", "props", "local", "rest", "fieldType", "setValue", "onChange", "onValueChange", "displayValue", "handleChange", "e", "newValue", "currentTarget", "parsed", "getWrapperClass", "includeCustomClass", "size", "disabled", "inset", "class", "isEditable", "readonly", "getStep", "_$createComponent", "when", "fallback", "_el$6", "_tmpl$4", "_$spread", "_$mergeProps", "style", "title", "_$insert", "children", "_el$4", "_tmpl$3", "_el$5", "firstChild", "addEventListener", "_$className", "_$effect", "_p$", "_v$6", "_v$7", "_$setAttribute", "t", "_el$", "_tmpl$2", "_el$2", "_el$3", "_tmpl$", "_v$", "_v$2", "_v$3", "a", "_v$4", "_v$5", "_$setStyleProperty"]
4
+ "mappings": "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",
5
+ "names": ["clsx", "createMemo", "Show", "splitProps", "twMerge", "Time", "createControllableSignal", "fieldInputClass", "getFieldWrapperClass", "Invalid", "formatValue", "value", "unit", "toFormatString", "parseValue", "str", "undefined", "match", "exec", "Number", "TimePicker", "props", "local", "rest", "fieldType", "setValue", "onChange", "onValueChange", "displayValue", "handleChange", "e", "newValue", "currentTarget", "parsed", "getWrapperClass", "includeCustomClass", "size", "disabled", "inset", "class", "isEditable", "readonly", "getStep", "errorMsg", "v", "required", "min", "tick", "max", "validate", "_$createComponent", "message", "variant", "touchMode", "children", "when", "fallback", "_el$7", "_tmpl$3", "_$spread", "_$mergeProps", "style", "title", "_$insert", "_el$5", "_tmpl$", "_el$6", "firstChild", "addEventListener", "_$className", "_$effect", "_p$", "_v$7", "_v$8", "_$setAttribute", "t", "_el$", "_tmpl$2", "_el$2", "_el$3", "_el$4", "_v$", "_v$2", "_v$3", "a", "_v$4", "_v$5", "_v$6", "_$setStyleProperty"]
6
6
  }
@@ -11,15 +11,9 @@ declare const SelectAction: ParentComponent<SelectActionProps>;
11
11
  * 드롭다운 상단 커스텀 영역 서브 컴포넌트
12
12
  */
13
13
  declare const SelectHeader: ParentComponent;
14
- /**
15
- * items prop 방식일 아이템 렌더링 템플릿
16
- *
17
- * 함수 참조를 저장하기 위해 전역 Map 사용
18
- */
19
- interface SelectItemTemplateProps<TValue> {
20
- children: (item: TValue, index: number, depth: number) => JSX.Element;
21
- }
22
- declare const SelectItemTemplate: <T>(props: SelectItemTemplateProps<T>) => JSX.Element;
14
+ declare const SelectItemTemplate: (props: {
15
+ children(item: unknown, index: number, depth: number): JSX.Element;
16
+ }) => JSX.Element;
23
17
  interface SelectCommonProps {
24
18
  /** 비활성화 */
25
19
  disabled?: boolean;
@@ -31,6 +25,10 @@ interface SelectCommonProps {
31
25
  size?: ComponentSize;
32
26
  /** 테두리 없는 스타일 */
33
27
  inset?: boolean;
28
+ /** 커스텀 유효성 검사 함수 */
29
+ validate?: (value: unknown) => string | undefined;
30
+ /** touchMode: 포커스 해제 후에만 에러 표시 */
31
+ touchMode?: boolean;
34
32
  /** 커스텀 class */
35
33
  class?: string;
36
34
  /** 커스텀 style */
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/form-control/select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/form-control/select/Select.tsx"],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@ import { effect as _$effect } from "solid-js/web";
6
6
  import { className as _$className } from "solid-js/web";
7
7
  import { memo as _$memo } from "solid-js/web";
8
8
  import { createComponent as _$createComponent } from "solid-js/web";
9
- import { use as _$use } from "solid-js/web";
10
9
  import { insert as _$insert } from "solid-js/web";
10
+ import { use as _$use } from "solid-js/web";
11
11
  import { spread as _$spread } from "solid-js/web";
12
12
  import { mergeProps as _$mergeProps } from "solid-js/web";
13
- var _tmpl$ = /* @__PURE__ */ _$template(`<button>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div data-select-header>`), _tmpl$3 = /* @__PURE__ */ _$template(`<span data-select-item-template style=display:none>`), _tmpl$4 = /* @__PURE__ */ _$template(`<span>`), _tmpl$5 = /* @__PURE__ */ _$template(`<div>`), _tmpl$6 = /* @__PURE__ */ _$template(`<div><div role=combobox aria-haspopup=listbox><div></div><div>`);
14
- import { children, createSignal, For, Show, splitProps } from "solid-js";
13
+ var _tmpl$ = /* @__PURE__ */ _$template(`<button>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div data-select-header>`), _tmpl$3 = /* @__PURE__ */ _$template(`<span>`), _tmpl$4 = /* @__PURE__ */ _$template(`<div>`), _tmpl$5 = /* @__PURE__ */ _$template(`<div><div role=combobox aria-haspopup=listbox><div></div><div>`);
14
+ import { children, createMemo, createSignal, For, Show, splitProps } from "solid-js";
15
15
  import clsx from "clsx";
16
16
  import { twMerge } from "tailwind-merge";
17
17
  import { IconChevronDown } from "@tabler/icons-solidjs";
@@ -24,7 +24,9 @@ import { ripple } from "../../../directives/ripple.js";
24
24
  import { splitSlots } from "../../../helpers/splitSlots.js";
25
25
  import { borderDefault, textMuted } from "../../../styles/tokens.styles.js";
26
26
  import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
27
+ import { createItemTemplate } from "../../../hooks/createItemTemplate.js";
27
28
  import { chevronWrapperClass, getTriggerClass } from "../DropdownTrigger.styles.js";
29
+ import { Invalid } from "../Invalid.js";
28
30
  void ripple;
29
31
  const multiTagClass = clsx("rounded", "bg-base-200 px-1", "dark:bg-base-600");
30
32
  const selectedValueClass = clsx("flex-1", "whitespace-nowrap");
@@ -32,17 +34,12 @@ const SelectAction = (props) => {
32
34
  const [local, rest] = splitProps(props, ["children", "class"]);
33
35
  return (() => {
34
36
  var _el$ = _tmpl$();
37
+ _$use(ripple, _el$, () => true);
35
38
  _$spread(_el$, _$mergeProps(rest, {
36
39
  "type": "button",
37
40
  "data-select-action": "",
38
41
  get ["class"]() {
39
- return twMerge(clsx("border", borderDefault, "px-1.5", "rounded-r", "font-bold text-primary-500", "hover:bg-base-100 dark:hover:bg-base-700"), local.class);
40
- },
41
- "onClick": (e) => {
42
- e.stopPropagation();
43
- if (typeof rest.onClick === "function") {
44
- rest.onClick(e);
45
- }
42
+ return twMerge(clsx("border", borderDefault, "px-1.5", "font-bold text-primary-500", "hover:bg-base-100 dark:hover:bg-base-700", "group-focus-within:border-y-primary-400", "last:group-focus-within:border-r-primary-400", "dark:group-focus-within:border-y-primary-400", "dark:last:group-focus-within:border-r-primary-400", "focus:relative focus:z-10 focus:border-primary-400", "dark:focus:border-primary-400"), local.class);
46
43
  }
47
44
  }), false, true);
48
45
  _$insert(_el$, () => local.children);
@@ -54,16 +51,12 @@ const SelectHeader = (props) => (() => {
54
51
  _$insert(_el$2, () => props.children);
55
52
  return _el$2;
56
53
  })();
57
- const templateFnMap = /* @__PURE__ */ new WeakMap();
58
- const SelectItemTemplate = (props) => (() => {
59
- var _el$3 = _tmpl$3();
60
- _$use((el) => {
61
- templateFnMap.set(el, props.children);
62
- }, _el$3);
63
- return _el$3;
64
- })();
54
+ const {
55
+ TemplateSlot: SelectItemTemplate,
56
+ getTemplate: getSelectItemTemplate
57
+ } = createItemTemplate("data-select-item-template");
65
58
  const Select = (props) => {
66
- const [local, rest] = splitProps(props, ["children", "class", "style", "value", "onValueChange", "multiple", "disabled", "required", "placeholder", "size", "inset", "multiDisplayDirection", "hideSelectAll", "items", "getChildren", "renderValue"]);
59
+ const [local, rest] = splitProps(props, ["children", "class", "style", "value", "onValueChange", "multiple", "disabled", "required", "placeholder", "size", "inset", "multiDisplayDirection", "hideSelectAll", "items", "getChildren", "renderValue", "validate", "touchMode"]);
67
60
  let triggerRef;
68
61
  const [open, setOpen] = createSignal(false);
69
62
  const [getValue, setInternalValue] = createControllableSignal({
@@ -111,6 +104,12 @@ const Select = (props) => {
111
104
  setOpen(true);
112
105
  }
113
106
  };
107
+ const errorMsg = createMemo(() => {
108
+ var _a;
109
+ const v = getValue();
110
+ if (local.required && (v === void 0 || v === null || v === "")) return "\uD544\uC218 \uC785\uB825 \uD56D\uBAA9\uC785\uB2C8\uB2E4";
111
+ return (_a = local.validate) == null ? void 0 : _a.call(local, v);
112
+ });
114
113
  const getTriggerClassName = () => getTriggerClass({
115
114
  size: local.size,
116
115
  disabled: local.disabled,
@@ -121,9 +120,7 @@ const Select = (props) => {
121
120
  const resolved = children(() => innerProps.children);
122
121
  const [slots, items] = splitSlots(resolved, ["selectHeader", "selectAction", "selectItemTemplate"]);
123
122
  const getItemTemplate = () => {
124
- const templateSlots = slots().selectItemTemplate;
125
- if (templateSlots.length === 0) return void 0;
126
- return templateFnMap.get(templateSlots[0]);
123
+ return getSelectItemTemplate(slots().selectItemTemplate);
127
124
  };
128
125
  const renderItems = (itemList, depth) => {
129
126
  const itemTemplate = getItemTemplate();
@@ -169,60 +166,63 @@ const Select = (props) => {
169
166
  const current = getValue();
170
167
  if (current === void 0 || Array.isArray(current) && current.length === 0) {
171
168
  return (() => {
172
- var _el$4 = _tmpl$4();
173
- _$className(_el$4, textMuted);
174
- _$insert(_el$4, () => local.placeholder ?? "");
175
- return _el$4;
169
+ var _el$3 = _tmpl$3();
170
+ _$className(_el$3, textMuted);
171
+ _$insert(_el$3, () => local.placeholder ?? "");
172
+ return _el$3;
176
173
  })();
177
174
  }
178
175
  if (local.multiple && Array.isArray(current)) {
179
176
  const direction = local.multiDisplayDirection ?? "horizontal";
180
177
  return (() => {
181
- var _el$5 = _tmpl$5();
182
- _$insert(_el$5, _$createComponent(For, {
178
+ var _el$4 = _tmpl$4();
179
+ _$insert(_el$4, _$createComponent(For, {
183
180
  each: current,
184
181
  children: (v) => (() => {
185
- var _el$6 = _tmpl$4();
186
- _$className(_el$6, multiTagClass);
187
- _$insert(_el$6, () => renderValue(v));
188
- return _el$6;
182
+ var _el$5 = _tmpl$3();
183
+ _$className(_el$5, multiTagClass);
184
+ _$insert(_el$5, () => renderValue(v));
185
+ return _el$5;
189
186
  })()
190
187
  }));
191
- _$effect(() => _$className(_el$5, clsx("flex gap-1", direction === "vertical" ? "flex-col" : "flex-wrap")));
192
- return _el$5;
188
+ _$effect(() => _$className(_el$4, clsx("flex gap-1", direction === "vertical" ? "flex-col" : "flex-wrap")));
189
+ return _el$4;
193
190
  })();
194
191
  }
195
192
  return renderValue(current);
196
193
  };
197
194
  return (() => {
198
- var _el$7 = _tmpl$6(), _el$8 = _el$7.firstChild, _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
199
- _$spread(_el$7, _$mergeProps(rest, {
195
+ var _el$6 = _tmpl$5(), _el$7 = _el$6.firstChild, _el$8 = _el$7.firstChild, _el$9 = _el$8.nextSibling;
196
+ _$spread(_el$6, _$mergeProps(rest, {
200
197
  "data-select": "",
201
198
  get ["class"]() {
202
- return local.inset ? "flex" : "inline-flex";
199
+ return clsx("group", local.inset ? "flex" : "inline-flex");
203
200
  }
204
201
  }), false, true);
205
- _el$8.$$keydown = handleTriggerKeyDown;
206
- _el$8.$$click = handleTriggerClick;
207
- _$use(ripple, _el$8, () => !local.disabled);
202
+ _el$7.$$keydown = handleTriggerKeyDown;
203
+ _el$7.$$click = handleTriggerClick;
204
+ _$use(ripple, _el$7, () => !local.disabled);
208
205
  var _ref$ = triggerRef;
209
- typeof _ref$ === "function" ? _$use(_ref$, _el$8) : triggerRef = _el$8;
210
- _$className(_el$9, selectedValueClass);
211
- _$insert(_el$9, renderSelectedValue);
212
- _$className(_el$0, chevronWrapperClass);
213
- _$insert(_el$0, _$createComponent(Icon, {
206
+ typeof _ref$ === "function" ? _$use(_ref$, _el$7) : triggerRef = _el$7;
207
+ _$className(_el$8, selectedValueClass);
208
+ _$insert(_el$8, renderSelectedValue);
209
+ _$className(_el$9, chevronWrapperClass);
210
+ _$insert(_el$9, _$createComponent(Icon, {
214
211
  icon: IconChevronDown,
215
212
  size: "1em"
216
213
  }));
217
- _$insert(_el$7, _$createComponent(Show, {
214
+ _$insert(_el$6, _$createComponent(Show, {
218
215
  get when() {
219
216
  return slots().selectAction.length > 0;
220
217
  },
221
218
  get children() {
222
- return slots().selectAction;
219
+ var _el$0 = _tmpl$4();
220
+ _$insert(_el$0, () => slots().selectAction);
221
+ _$effect(() => _$className(_el$0, clsx("contents", "[&>[data-select-action]:last-child]:rounded-r", "[&>[data-select-action]+[data-select-action]]:-ml-px")));
222
+ return _el$0;
223
223
  }
224
224
  }), null);
225
- _$insert(_el$7, _$createComponent(Dropdown, {
225
+ _$insert(_el$6, _$createComponent(Dropdown, {
226
226
  triggerRef: () => triggerRef,
227
227
  get open() {
228
228
  return open();
@@ -257,13 +257,13 @@ const Select = (props) => {
257
257
  }
258
258
  }), null);
259
259
  _$effect((_p$) => {
260
- var _v$ = open(), _v$2 = local.disabled || void 0, _v$3 = local.required || void 0, _v$4 = local.disabled ? -1 : 0, _v$5 = twMerge(getTriggerClassName(), slots().selectAction.length > 0 && "rounded-r-none border-r-0"), _v$6 = local.style;
261
- _v$ !== _p$.e && _$setAttribute(_el$8, "aria-expanded", _p$.e = _v$);
262
- _v$2 !== _p$.t && _$setAttribute(_el$8, "aria-disabled", _p$.t = _v$2);
263
- _v$3 !== _p$.a && _$setAttribute(_el$8, "aria-required", _p$.a = _v$3);
264
- _v$4 !== _p$.o && _$setAttribute(_el$8, "tabindex", _p$.o = _v$4);
265
- _v$5 !== _p$.i && _$className(_el$8, _p$.i = _v$5);
266
- _p$.n = _$style(_el$8, _v$6, _p$.n);
260
+ var _v$ = open(), _v$2 = local.disabled || void 0, _v$3 = local.required || void 0, _v$4 = local.disabled ? -1 : 0, _v$5 = twMerge(getTriggerClassName(), slots().selectAction.length > 0 && clsx("rounded-r-none border-r-0", "group-focus-within:border-primary-400 dark:group-focus-within:border-primary-400")), _v$6 = local.style;
261
+ _v$ !== _p$.e && _$setAttribute(_el$7, "aria-expanded", _p$.e = _v$);
262
+ _v$2 !== _p$.t && _$setAttribute(_el$7, "aria-disabled", _p$.t = _v$2);
263
+ _v$3 !== _p$.a && _$setAttribute(_el$7, "aria-required", _p$.a = _v$3);
264
+ _v$4 !== _p$.o && _$setAttribute(_el$7, "tabindex", _p$.o = _v$4);
265
+ _v$5 !== _p$.i && _$className(_el$7, _p$.i = _v$5);
266
+ _p$.n = _$style(_el$7, _v$6, _p$.n);
267
267
  return _p$;
268
268
  }, {
269
269
  e: void 0,
@@ -273,15 +273,26 @@ const Select = (props) => {
273
273
  i: void 0,
274
274
  n: void 0
275
275
  });
276
- return _el$7;
276
+ return _el$6;
277
277
  })();
278
278
  };
279
- return _$createComponent(SelectContext.Provider, {
280
- value: contextValue,
279
+ return _$createComponent(Invalid, {
280
+ get message() {
281
+ return errorMsg();
282
+ },
283
+ variant: "border",
284
+ get touchMode() {
285
+ return local.touchMode;
286
+ },
281
287
  get children() {
282
- return _$createComponent(SelectInner, {
288
+ return _$createComponent(SelectContext.Provider, {
289
+ value: contextValue,
283
290
  get children() {
284
- return local.children;
291
+ return _$createComponent(SelectInner, {
292
+ get children() {
293
+ return local.children;
294
+ }
295
+ });
285
296
  }
286
297
  });
287
298
  }