@simplysm/solid 13.0.69 → 13.0.71

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 (495) hide show
  1. package/README.md +168 -195
  2. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  3. package/dist/components/data/calendar/Calendar.js +15 -2
  4. package/dist/components/data/calendar/Calendar.js.map +2 -2
  5. package/dist/components/data/kanban/KanbanContext.js +2 -2
  6. package/dist/components/data/kanban/KanbanContext.js.map +1 -1
  7. package/dist/components/data/list/List.d.ts +8 -8
  8. package/dist/components/data/list/ListContext.d.ts +1 -1
  9. package/dist/components/data/list/ListItem.d.ts +15 -15
  10. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  11. package/dist/components/data/sheet/DataSheet.js +6 -4
  12. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  13. package/dist/components/data/sheet/DataSheetConfigDialog.js +8 -8
  14. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
  15. package/dist/components/data/sheet/types.d.ts +4 -4
  16. package/dist/components/data/sheet/types.d.ts.map +1 -1
  17. package/dist/components/disclosure/Collapse.d.ts +4 -4
  18. package/dist/components/disclosure/Dialog.d.ts +24 -24
  19. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  20. package/dist/components/disclosure/Dialog.js +7 -2
  21. package/dist/components/disclosure/Dialog.js.map +2 -2
  22. package/dist/components/disclosure/DialogContext.d.ts +25 -25
  23. package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
  24. package/dist/components/disclosure/DialogContext.js +1 -1
  25. package/dist/components/disclosure/DialogContext.js.map +1 -1
  26. package/dist/components/disclosure/DialogInstanceContext.d.ts +7 -7
  27. package/dist/components/disclosure/DialogInstanceContext.d.ts.map +1 -1
  28. package/dist/components/disclosure/DialogProvider.d.ts +3 -3
  29. package/dist/components/disclosure/Dropdown.d.ts +26 -24
  30. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  31. package/dist/components/disclosure/Dropdown.js +24 -8
  32. package/dist/components/disclosure/Dropdown.js.map +2 -2
  33. package/dist/components/disclosure/Tabs.js +1 -1
  34. package/dist/components/disclosure/Tabs.js.map +1 -1
  35. package/dist/components/disclosure/dialogZIndex.d.ts +9 -7
  36. package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
  37. package/dist/components/disclosure/dialogZIndex.js +4 -0
  38. package/dist/components/disclosure/dialogZIndex.js.map +1 -1
  39. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  40. package/dist/components/features/crud-detail/CrudDetail.js +34 -22
  41. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  42. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  43. package/dist/components/features/crud-sheet/CrudSheet.js +48 -33
  44. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  45. package/dist/components/features/crudRegistry.d.ts +16 -0
  46. package/dist/components/features/crudRegistry.d.ts.map +1 -0
  47. package/dist/components/features/crudRegistry.js +37 -0
  48. package/dist/components/features/crudRegistry.js.map +6 -0
  49. package/dist/components/features/data-select-button/DataSelectButton.d.ts +14 -14
  50. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  51. package/dist/components/features/data-select-button/DataSelectButton.js +27 -9
  52. package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
  53. package/dist/components/features/permission-table/PermissionTable.d.ts +3 -3
  54. package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
  55. package/dist/components/features/permission-table/PermissionTable.js +74 -85
  56. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  57. package/dist/components/features/shared-data/SharedDataSelect.d.ts +12 -12
  58. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  59. package/dist/components/features/shared-data/SharedDataSelect.js +10 -6
  60. package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
  61. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +10 -10
  62. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  63. package/dist/components/features/shared-data/SharedDataSelectList.d.ts +23 -15
  64. package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
  65. package/dist/components/features/shared-data/SharedDataSelectList.js +191 -65
  66. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  67. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +15 -0
  68. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +1 -0
  69. package/dist/components/features/shared-data/SharedDataSelectListContext.js +27 -0
  70. package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +6 -0
  71. package/dist/components/feedback/Progress.d.ts +1 -1
  72. package/dist/components/feedback/Progress.d.ts.map +1 -1
  73. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
  74. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  75. package/dist/components/feedback/busy/BusyContext.d.ts +11 -11
  76. package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -1
  77. package/dist/components/feedback/busy/BusyContext.js +1 -1
  78. package/dist/components/feedback/busy/BusyContext.js.map +1 -1
  79. package/dist/components/feedback/busy/BusyProvider.d.ts +6 -6
  80. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
  81. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  82. package/dist/components/feedback/notification/NotificationBanner.js +7 -3
  83. package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
  84. package/dist/components/feedback/notification/NotificationBell.js +2 -2
  85. package/dist/components/feedback/notification/NotificationBell.js.map +1 -1
  86. package/dist/components/feedback/notification/NotificationContext.d.ts +22 -22
  87. package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
  88. package/dist/components/feedback/notification/NotificationContext.js +1 -1
  89. package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
  90. package/dist/components/feedback/notification/NotificationProvider.d.ts +5 -5
  91. package/dist/components/feedback/notification/NotificationProvider.js +1 -1
  92. package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
  93. package/dist/components/feedback/print/PrintContext.js +1 -1
  94. package/dist/components/feedback/print/PrintContext.js.map +1 -1
  95. package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
  96. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  97. package/dist/components/form-control/ThemeToggle.d.ts +7 -7
  98. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  99. package/dist/components/form-control/ThemeToggle.js +3 -3
  100. package/dist/components/form-control/checkbox/Checkbox.js +1 -1
  101. package/dist/components/form-control/checkbox/CheckboxGroup.js +1 -1
  102. package/dist/components/form-control/checkbox/Radio.js +1 -1
  103. package/dist/components/form-control/checkbox/RadioGroup.js +1 -1
  104. package/dist/components/form-control/color-picker/ColorPicker.d.ts +12 -12
  105. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  106. package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
  107. package/dist/components/form-control/combobox/Combobox.d.ts +22 -22
  108. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  109. package/dist/components/form-control/combobox/Combobox.js +2 -2
  110. package/dist/components/form-control/combobox/ComboboxContext.d.ts +4 -4
  111. package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +1 -1
  112. package/dist/components/form-control/combobox/ComboboxContext.js +1 -1
  113. package/dist/components/form-control/combobox/ComboboxContext.js.map +1 -1
  114. package/dist/components/form-control/combobox/ComboboxItem.d.ts +3 -3
  115. package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +1 -1
  116. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts +14 -14
  117. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
  118. package/dist/components/form-control/date-range-picker/DateRangePicker.js +20 -9
  119. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  120. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  121. package/dist/components/form-control/editor/EditorToolbar.js +65 -20
  122. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  123. package/dist/components/form-control/editor/RichTextEditor.d.ts +6 -6
  124. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  125. package/dist/components/form-control/editor/RichTextEditor.js +1 -1
  126. package/dist/components/form-control/editor/editor.css +5 -5
  127. package/dist/components/form-control/field/DatePicker.d.ts +22 -22
  128. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  129. package/dist/components/form-control/field/DatePicker.js +4 -4
  130. package/dist/components/form-control/field/DatePicker.js.map +1 -1
  131. package/dist/components/form-control/field/DateTimePicker.d.ts +21 -21
  132. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  133. package/dist/components/form-control/field/DateTimePicker.js +4 -4
  134. package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
  135. package/dist/components/form-control/field/FieldPlaceholder.d.ts +1 -1
  136. package/dist/components/form-control/field/FieldPlaceholder.d.ts.map +1 -1
  137. package/dist/components/form-control/field/NumberInput.d.ts +23 -23
  138. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  139. package/dist/components/form-control/field/NumberInput.js +4 -4
  140. package/dist/components/form-control/field/NumberInput.js.map +1 -1
  141. package/dist/components/form-control/field/TextInput.d.ts +25 -25
  142. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  143. package/dist/components/form-control/field/TextInput.js +5 -5
  144. package/dist/components/form-control/field/TextInput.js.map +1 -1
  145. package/dist/components/form-control/field/Textarea.d.ts +19 -19
  146. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  147. package/dist/components/form-control/field/Textarea.js +4 -4
  148. package/dist/components/form-control/field/Textarea.js.map +1 -1
  149. package/dist/components/form-control/field/TimePicker.d.ts +20 -20
  150. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  151. package/dist/components/form-control/field/TimePicker.js +4 -4
  152. package/dist/components/form-control/field/TimePicker.js.map +1 -1
  153. package/dist/components/form-control/numpad/Numpad.d.ts +11 -11
  154. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  155. package/dist/components/form-control/select/Select.d.ts +26 -26
  156. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  157. package/dist/components/form-control/select/Select.js +34 -23
  158. package/dist/components/form-control/select/Select.js.map +2 -2
  159. package/dist/components/form-control/select/SelectContext.d.ts +7 -7
  160. package/dist/components/form-control/select/SelectContext.d.ts.map +1 -1
  161. package/dist/components/form-control/select/SelectContext.js +1 -1
  162. package/dist/components/form-control/select/SelectContext.js.map +1 -1
  163. package/dist/components/form-control/select/SelectItem.d.ts +4 -4
  164. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  165. package/dist/components/form-control/state-preset/StatePreset.js +8 -8
  166. package/dist/components/form-control/state-preset/StatePreset.js.map +1 -1
  167. package/dist/components/layout/FormTable.js +4 -4
  168. package/dist/components/layout/sidebar/Sidebar.d.ts +5 -5
  169. package/dist/components/layout/sidebar/SidebarContainer.d.ts +11 -11
  170. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
  171. package/dist/components/layout/sidebar/SidebarContainer.js +6 -1
  172. package/dist/components/layout/sidebar/SidebarContainer.js.map +2 -2
  173. package/dist/components/layout/sidebar/SidebarContext.d.ts +7 -7
  174. package/dist/components/layout/sidebar/SidebarContext.js +1 -1
  175. package/dist/components/layout/sidebar/SidebarContext.js.map +1 -1
  176. package/dist/components/layout/sidebar/SidebarMenu.d.ts +11 -11
  177. package/dist/components/layout/sidebar/SidebarUser.d.ts +14 -14
  178. package/dist/components/layout/topbar/Topbar.d.ts +6 -6
  179. package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
  180. package/dist/components/layout/topbar/Topbar.js +11 -6
  181. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  182. package/dist/components/layout/topbar/TopbarContainer.d.ts +6 -6
  183. package/dist/components/layout/topbar/TopbarContext.js +2 -2
  184. package/dist/components/layout/topbar/TopbarContext.js.map +1 -1
  185. package/dist/components/layout/topbar/TopbarMenu.d.ts +11 -11
  186. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
  187. package/dist/components/layout/topbar/TopbarMenu.js +5 -1
  188. package/dist/components/layout/topbar/TopbarMenu.js.map +2 -2
  189. package/dist/components/layout/topbar/TopbarUser.d.ts +9 -9
  190. package/dist/directives/ripple.d.ts +5 -5
  191. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  192. package/dist/helpers/createAppStructure.js +7 -3
  193. package/dist/helpers/createAppStructure.js.map +1 -1
  194. package/dist/helpers/createHmrSafeContext.d.ts +3 -0
  195. package/dist/helpers/createHmrSafeContext.d.ts.map +1 -0
  196. package/dist/helpers/createHmrSafeContext.js +10 -0
  197. package/dist/helpers/createHmrSafeContext.js.map +6 -0
  198. package/dist/helpers/createSlotComponent.d.ts +3 -3
  199. package/dist/helpers/mergeStyles.d.ts +8 -8
  200. package/dist/hooks/createControllableSignal.d.ts +10 -10
  201. package/dist/hooks/createControllableStore.d.ts +6 -6
  202. package/dist/hooks/createIMEHandler.d.ts +7 -7
  203. package/dist/hooks/createMountTransition.d.ts +4 -4
  204. package/dist/hooks/createSelectionGroup.d.ts.map +1 -1
  205. package/dist/hooks/createSelectionGroup.js +4 -3
  206. package/dist/hooks/createSelectionGroup.js.map +2 -2
  207. package/dist/hooks/createSlotSignal.d.ts +2 -2
  208. package/dist/hooks/useLocalStorage.d.ts +11 -11
  209. package/dist/hooks/useLogger.d.ts +1 -1
  210. package/dist/hooks/useLogger.d.ts.map +1 -1
  211. package/dist/hooks/useLogger.js +1 -1
  212. package/dist/hooks/useLogger.js.map +1 -1
  213. package/dist/hooks/useRouterLink.d.ts +10 -10
  214. package/dist/hooks/useRouterLink.d.ts.map +1 -1
  215. package/dist/index.d.ts +2 -1
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +2 -1
  218. package/dist/index.js.map +1 -1
  219. package/dist/providers/ClipboardProvider.d.ts +5 -5
  220. package/dist/providers/ConfigContext.d.ts +6 -6
  221. package/dist/providers/ConfigContext.js +2 -2
  222. package/dist/providers/ConfigContext.js.map +1 -1
  223. package/dist/providers/ErrorLoggerProvider.d.ts +3 -3
  224. package/dist/providers/LoggerContext.d.ts +13 -13
  225. package/dist/providers/PwaUpdateProvider.d.ts +4 -4
  226. package/dist/providers/PwaUpdateProvider.js +2 -2
  227. package/dist/providers/PwaUpdateProvider.js.map +1 -1
  228. package/dist/providers/ServiceClientContext.d.ts +8 -8
  229. package/dist/providers/ServiceClientContext.d.ts.map +1 -1
  230. package/dist/providers/ServiceClientContext.js +1 -1
  231. package/dist/providers/ServiceClientContext.js.map +1 -1
  232. package/dist/providers/ServiceClientProvider.d.ts +6 -6
  233. package/dist/providers/ServiceClientProvider.js +7 -7
  234. package/dist/providers/ServiceClientProvider.js.map +1 -1
  235. package/dist/providers/SyncStorageContext.d.ts +14 -14
  236. package/dist/providers/SystemProvider.d.ts.map +1 -1
  237. package/dist/providers/SystemProvider.js +21 -16
  238. package/dist/providers/SystemProvider.js.map +2 -2
  239. package/dist/providers/ThemeContext.d.ts +20 -20
  240. package/dist/providers/ThemeContext.d.ts.map +1 -1
  241. package/dist/providers/ThemeContext.js +1 -1
  242. package/dist/providers/ThemeContext.js.map +1 -1
  243. package/dist/providers/i18n/I18nContext.d.ts +44 -0
  244. package/dist/providers/i18n/I18nContext.d.ts.map +1 -0
  245. package/dist/providers/i18n/I18nContext.js +73 -0
  246. package/dist/providers/i18n/I18nContext.js.map +6 -0
  247. package/dist/providers/i18n/I18nContext.types.d.ts +28 -0
  248. package/dist/providers/i18n/I18nContext.types.d.ts.map +1 -0
  249. package/dist/providers/i18n/I18nContext.types.js +1 -0
  250. package/dist/providers/i18n/I18nContext.types.js.map +6 -0
  251. package/dist/providers/i18n/i18nUtils.d.ts +18 -0
  252. package/dist/providers/i18n/i18nUtils.d.ts.map +1 -0
  253. package/dist/providers/i18n/i18nUtils.js +25 -0
  254. package/dist/providers/i18n/i18nUtils.js.map +6 -0
  255. package/dist/providers/i18n/locales/en.d.ts +163 -0
  256. package/dist/providers/i18n/locales/en.d.ts.map +1 -0
  257. package/dist/providers/i18n/locales/en.js +165 -0
  258. package/dist/providers/i18n/locales/en.js.map +6 -0
  259. package/dist/providers/i18n/locales/ko.d.ts +163 -0
  260. package/dist/providers/i18n/locales/ko.d.ts.map +1 -0
  261. package/dist/providers/i18n/locales/ko.js +165 -0
  262. package/dist/providers/i18n/locales/ko.js.map +6 -0
  263. package/dist/providers/shared-data/SharedDataChangeEvent.d.ts +4 -4
  264. package/dist/providers/shared-data/SharedDataContext.d.ts +28 -28
  265. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  266. package/dist/providers/shared-data/SharedDataContext.js +1 -1
  267. package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
  268. package/dist/providers/shared-data/SharedDataProvider.d.ts +9 -9
  269. package/dist/providers/shared-data/SharedDataProvider.js +4 -4
  270. package/dist/providers/shared-data/SharedDataProvider.js.map +1 -1
  271. package/package.json +9 -8
  272. package/src/components/data/calendar/Calendar.tsx +10 -4
  273. package/src/components/data/kanban/Kanban.tsx +14 -14
  274. package/src/components/data/kanban/KanbanContext.ts +3 -3
  275. package/src/components/data/list/List.tsx +10 -10
  276. package/src/components/data/list/ListContext.ts +1 -1
  277. package/src/components/data/list/ListItem.styles.ts +8 -8
  278. package/src/components/data/list/ListItem.tsx +15 -15
  279. package/src/components/data/sheet/DataSheet.styles.ts +22 -22
  280. package/src/components/data/sheet/DataSheet.tsx +52 -48
  281. package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
  282. package/src/components/data/sheet/DataSheetConfigDialog.tsx +9 -9
  283. package/src/components/data/sheet/sheetUtils.ts +7 -7
  284. package/src/components/data/sheet/types.ts +16 -16
  285. package/src/components/disclosure/Collapse.tsx +11 -11
  286. package/src/components/disclosure/Dialog.tsx +60 -57
  287. package/src/components/disclosure/DialogContext.ts +26 -26
  288. package/src/components/disclosure/DialogInstanceContext.ts +7 -7
  289. package/src/components/disclosure/DialogProvider.tsx +5 -5
  290. package/src/components/disclosure/Dropdown.tsx +89 -75
  291. package/src/components/disclosure/Tabs.tsx +1 -1
  292. package/src/components/disclosure/dialogZIndex.ts +16 -11
  293. package/src/components/display/Echarts.tsx +4 -4
  294. package/src/components/features/address/AddressSearch.tsx +2 -2
  295. package/src/components/features/crud-detail/CrudDetail.tsx +34 -21
  296. package/src/components/features/crud-detail/CrudDetailAfter.tsx +1 -1
  297. package/src/components/features/crud-detail/CrudDetailBefore.tsx +1 -1
  298. package/src/components/features/crud-detail/CrudDetailTools.tsx +1 -1
  299. package/src/components/features/crud-sheet/CrudSheet.tsx +52 -40
  300. package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
  301. package/src/components/features/crud-sheet/CrudSheetFilter.tsx +1 -1
  302. package/src/components/features/crud-sheet/CrudSheetHeader.tsx +1 -1
  303. package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
  304. package/src/components/features/crudRegistry.ts +60 -0
  305. package/src/components/features/data-select-button/DataSelectButton.tsx +34 -32
  306. package/src/components/features/permission-table/PermissionTable.tsx +70 -64
  307. package/src/components/features/shared-data/SharedDataSelect.tsx +24 -22
  308. package/src/components/features/shared-data/SharedDataSelectButton.tsx +10 -10
  309. package/src/components/features/shared-data/SharedDataSelectList.tsx +231 -59
  310. package/src/components/features/shared-data/SharedDataSelectListContext.ts +39 -0
  311. package/src/components/feedback/Progress.tsx +1 -1
  312. package/src/components/feedback/busy/BusyContainer.tsx +6 -6
  313. package/src/components/feedback/busy/BusyContext.ts +12 -12
  314. package/src/components/feedback/busy/BusyProvider.tsx +6 -6
  315. package/src/components/feedback/notification/NotificationBanner.tsx +3 -1
  316. package/src/components/feedback/notification/NotificationBell.tsx +4 -4
  317. package/src/components/feedback/notification/NotificationContext.ts +28 -28
  318. package/src/components/feedback/notification/NotificationProvider.tsx +9 -9
  319. package/src/components/feedback/print/PrintContext.ts +1 -1
  320. package/src/components/form-control/Button.tsx +1 -1
  321. package/src/components/form-control/DropdownTrigger.styles.ts +1 -1
  322. package/src/components/form-control/Invalid.tsx +5 -5
  323. package/src/components/form-control/ThemeToggle.tsx +10 -10
  324. package/src/components/form-control/checkbox/Checkbox.styles.ts +8 -8
  325. package/src/components/form-control/checkbox/Checkbox.tsx +2 -2
  326. package/src/components/form-control/checkbox/CheckboxGroup.tsx +1 -1
  327. package/src/components/form-control/checkbox/Radio.tsx +2 -2
  328. package/src/components/form-control/checkbox/RadioGroup.tsx +1 -1
  329. package/src/components/form-control/color-picker/ColorPicker.tsx +17 -17
  330. package/src/components/form-control/combobox/Combobox.tsx +55 -55
  331. package/src/components/form-control/combobox/ComboboxContext.ts +5 -5
  332. package/src/components/form-control/combobox/ComboboxItem.tsx +3 -3
  333. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +40 -26
  334. package/src/components/form-control/editor/EditorToolbar.tsx +52 -50
  335. package/src/components/form-control/editor/RichTextEditor.tsx +16 -16
  336. package/src/components/form-control/editor/editor.css +5 -5
  337. package/src/components/form-control/field/DatePicker.tsx +39 -39
  338. package/src/components/form-control/field/DateTimePicker.tsx +38 -38
  339. package/src/components/form-control/field/Field.styles.ts +11 -11
  340. package/src/components/form-control/field/FieldPlaceholder.tsx +1 -1
  341. package/src/components/form-control/field/NumberInput.tsx +63 -63
  342. package/src/components/form-control/field/TextInput.tsx +48 -48
  343. package/src/components/form-control/field/Textarea.tsx +32 -32
  344. package/src/components/form-control/field/TimePicker.tsx +37 -37
  345. package/src/components/form-control/numpad/Numpad.tsx +26 -26
  346. package/src/components/form-control/select/Select.tsx +82 -86
  347. package/src/components/form-control/select/SelectContext.ts +8 -8
  348. package/src/components/form-control/select/SelectItem.tsx +5 -5
  349. package/src/components/form-control/state-preset/StatePreset.tsx +13 -13
  350. package/src/components/layout/FormTable.tsx +4 -4
  351. package/src/components/layout/sidebar/Sidebar.tsx +8 -8
  352. package/src/components/layout/sidebar/SidebarContainer.tsx +19 -17
  353. package/src/components/layout/sidebar/SidebarContext.ts +8 -8
  354. package/src/components/layout/sidebar/SidebarMenu.tsx +19 -19
  355. package/src/components/layout/sidebar/SidebarUser.tsx +14 -14
  356. package/src/components/layout/topbar/Topbar.tsx +15 -13
  357. package/src/components/layout/topbar/TopbarContainer.tsx +6 -6
  358. package/src/components/layout/topbar/TopbarContext.ts +2 -2
  359. package/src/components/layout/topbar/TopbarMenu.tsx +18 -16
  360. package/src/components/layout/topbar/TopbarUser.tsx +9 -9
  361. package/src/directives/ripple.ts +8 -8
  362. package/src/helpers/createAppStructure.ts +15 -8
  363. package/src/helpers/createHmrSafeContext.ts +8 -0
  364. package/src/helpers/createSlotComponent.ts +4 -4
  365. package/src/helpers/mergeStyles.ts +11 -11
  366. package/src/hooks/createControllableSignal.ts +11 -11
  367. package/src/hooks/createControllableStore.ts +8 -8
  368. package/src/hooks/createIMEHandler.ts +7 -7
  369. package/src/hooks/createMountTransition.ts +4 -4
  370. package/src/hooks/createSelectionGroup.tsx +5 -3
  371. package/src/hooks/createSlotSignal.ts +2 -2
  372. package/src/hooks/useLocalStorage.ts +13 -13
  373. package/src/hooks/useLogger.ts +2 -2
  374. package/src/hooks/useRouterLink.ts +15 -15
  375. package/src/index.ts +4 -3
  376. package/src/providers/ClipboardProvider.tsx +19 -19
  377. package/src/providers/ConfigContext.tsx +8 -8
  378. package/src/providers/ErrorLoggerProvider.tsx +3 -3
  379. package/src/providers/LoggerContext.tsx +13 -13
  380. package/src/providers/PwaUpdateProvider.tsx +6 -6
  381. package/src/providers/ServiceClientContext.ts +9 -9
  382. package/src/providers/ServiceClientProvider.tsx +15 -15
  383. package/src/providers/SyncStorageContext.tsx +15 -15
  384. package/src/providers/SystemProvider.tsx +15 -12
  385. package/src/providers/ThemeContext.tsx +26 -26
  386. package/src/providers/i18n/I18nContext.tsx +129 -0
  387. package/src/providers/i18n/I18nContext.types.ts +30 -0
  388. package/src/providers/i18n/i18nUtils.ts +38 -0
  389. package/src/providers/i18n/locales/en.ts +161 -0
  390. package/src/providers/i18n/locales/ko.ts +161 -0
  391. package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -4
  392. package/src/providers/shared-data/SharedDataContext.ts +29 -29
  393. package/src/providers/shared-data/SharedDataProvider.tsx +21 -21
  394. package/src/styles/patterns.styles.ts +6 -6
  395. package/src/styles/tokens.styles.ts +5 -5
  396. package/tailwind.config.ts +1 -1
  397. package/tailwind.css +4 -4
  398. package/tests/components/data/List.spec.tsx +689 -0
  399. package/tests/components/data/Pagination.spec.tsx +336 -0
  400. package/tests/components/data/Table.spec.tsx +55 -0
  401. package/tests/components/data/kanban/Kanban.selection.spec.tsx +213 -0
  402. package/tests/components/data/sheet/DataSheet.spec.tsx +645 -0
  403. package/tests/components/disclosure/Collapse.spec.tsx +173 -0
  404. package/tests/components/disclosure/Dialog.spec.tsx +438 -0
  405. package/tests/components/disclosure/DialogProvider.spec.tsx +142 -0
  406. package/tests/components/disclosure/Dropdown.spec.tsx +333 -0
  407. package/tests/components/disclosure/Tabs.spec.tsx +220 -0
  408. package/tests/components/disclosure/dialogZIndex.spec.ts +45 -0
  409. package/tests/components/display/Alert.spec.tsx +47 -0
  410. package/tests/components/display/Barcode.spec.tsx +61 -0
  411. package/tests/components/display/Card.spec.tsx +41 -0
  412. package/tests/components/display/Link.spec.tsx +62 -0
  413. package/tests/components/display/Tag.spec.tsx +47 -0
  414. package/tests/components/features/address/AddressSearch.spec.tsx +45 -0
  415. package/tests/components/features/crud-detail/CrudDetail.spec.tsx +537 -0
  416. package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +491 -0
  417. package/tests/components/features/crudRegistry.spec.ts +119 -0
  418. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +482 -0
  419. package/tests/components/features/permission-table/PermissionTable.spec.tsx +288 -0
  420. package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +448 -0
  421. package/tests/components/feedback/busy/BusyContainer.spec.tsx +80 -0
  422. package/tests/components/feedback/notification/LiveRegion.spec.tsx +52 -0
  423. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +187 -0
  424. package/tests/components/feedback/notification/NotificationBell.spec.tsx +226 -0
  425. package/tests/components/feedback/notification/NotificationContext.spec.tsx +362 -0
  426. package/tests/components/feedback/print/Print.spec.tsx +45 -0
  427. package/tests/components/form-control/Button.spec.tsx +119 -0
  428. package/tests/components/form-control/Invalid.spec.tsx +131 -0
  429. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +137 -0
  430. package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +108 -0
  431. package/tests/components/form-control/checkbox/Radio.spec.tsx +138 -0
  432. package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +108 -0
  433. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +94 -0
  434. package/tests/components/form-control/combobox/Combobox.spec.tsx +253 -0
  435. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +88 -0
  436. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +208 -0
  437. package/tests/components/form-control/field/DatePicker.spec.tsx +381 -0
  438. package/tests/components/form-control/field/DateTimePicker.spec.tsx +383 -0
  439. package/tests/components/form-control/field/NumberInput.spec.tsx +371 -0
  440. package/tests/components/form-control/field/TextInput.spec.tsx +341 -0
  441. package/tests/components/form-control/field/Textarea.spec.tsx +224 -0
  442. package/tests/components/form-control/field/TimePicker.spec.tsx +315 -0
  443. package/tests/components/form-control/numpad/Numpad.spec.tsx +248 -0
  444. package/tests/components/form-control/select/Select.spec.tsx +676 -0
  445. package/tests/components/form-control/select/SelectItem.spec.tsx +174 -0
  446. package/tests/components/layout/FormGroup.spec.tsx +104 -0
  447. package/tests/components/layout/FormTable.spec.tsx +43 -0
  448. package/tests/components/layout/sidebar/Sidebar.spec.tsx +192 -0
  449. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +261 -0
  450. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +219 -0
  451. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +133 -0
  452. package/tests/components/layout/topbar/TopbarActions.spec.tsx +77 -0
  453. package/tests/components/layout/topbar/TopbarContainer.spec.tsx +38 -0
  454. package/tests/components/layout/topbar/createTopbarActions.spec.tsx +66 -0
  455. package/tests/directives/ripple.spec.tsx +130 -0
  456. package/tests/helpers/createAppStructure.spec.tsx +843 -0
  457. package/tests/helpers/mergeStyles.spec.ts +172 -0
  458. package/tests/hooks/createControllableSignal.spec.ts +194 -0
  459. package/tests/hooks/createIMEHandler.spec.ts +80 -0
  460. package/tests/hooks/createMountTransition.spec.ts +86 -0
  461. package/tests/hooks/useLocalStorage.spec.tsx +223 -0
  462. package/tests/hooks/useLogger.spec.tsx +116 -0
  463. package/tests/hooks/usePrint.spec.tsx +134 -0
  464. package/tests/hooks/useRouterLink.spec.tsx +183 -0
  465. package/tests/hooks/useSyncConfig.spec.tsx +304 -0
  466. package/tests/providers/ClipboardProvider.spec.tsx +20 -0
  467. package/tests/providers/ConfigContext.spec.tsx +42 -0
  468. package/tests/providers/ErrorLoggerProvider.spec.tsx +73 -0
  469. package/tests/providers/LoggerContext.spec.tsx +76 -0
  470. package/tests/providers/PwaUpdateProvider.spec.tsx +22 -0
  471. package/tests/providers/ServiceClientContext.spec.tsx +88 -0
  472. package/tests/providers/SyncStorageContext.spec.tsx +77 -0
  473. package/tests/providers/i18n/I18nContext.spec.tsx +110 -0
  474. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +401 -0
  475. package/tests/vitest-env.d.ts +1 -0
  476. package/dist/components/form-control/select-list/SelectList.d.ts +0 -54
  477. package/dist/components/form-control/select-list/SelectList.d.ts.map +0 -1
  478. package/dist/components/form-control/select-list/SelectList.js +0 -280
  479. package/dist/components/form-control/select-list/SelectList.js.map +0 -6
  480. package/dist/components/form-control/select-list/SelectListContext.d.ts +0 -13
  481. package/dist/components/form-control/select-list/SelectListContext.d.ts.map +0 -1
  482. package/dist/components/form-control/select-list/SelectListContext.js +0 -14
  483. package/dist/components/form-control/select-list/SelectListContext.js.map +0 -6
  484. package/docs/data-components.md +0 -782
  485. package/docs/disclosure.md +0 -254
  486. package/docs/display.md +0 -153
  487. package/docs/feedback.md +0 -238
  488. package/docs/form-controls.md +0 -1068
  489. package/docs/helpers.md +0 -54
  490. package/docs/hooks.md +0 -588
  491. package/docs/layout.md +0 -384
  492. package/docs/providers.md +0 -211
  493. package/docs/styling.md +0 -184
  494. package/src/components/form-control/select-list/SelectList.tsx +0 -385
  495. package/src/components/form-control/select-list/SelectListContext.ts +0 -23
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @simplysm/solid
2
2
 
3
- A SolidJS UI component library for enterprise back-office applications such as ERP and MES. Provides components for data-intensive forms, tables, and sidebar layouts with Tailwind CSS styling, dark mode, and responsive design.
3
+ A SolidJS UI component library for enterprise back-office applications such as ERP and MES.
4
4
 
5
5
  ## Installation
6
6
 
7
- ```bash
7
+ ```
8
8
  pnpm add @simplysm/solid
9
9
  ```
10
10
 
@@ -13,232 +13,205 @@ pnpm add @simplysm/solid
13
13
  - `tailwindcss` ^3.4
14
14
 
15
15
  **Optional Peer Dependencies:**
16
- - `echarts` ^6.0 -- Required for Echarts chart components
16
+ - `echarts` ^6.0 Required for Echarts chart components
17
17
 
18
18
  ## Configuration
19
19
 
20
- ### Tailwind CSS
21
-
22
- `@simplysm/solid` provides a Tailwind CSS preset. Register it as a preset in your app's `tailwind.config.ts` to automatically apply custom themes including semantic colors, field sizes, and z-index values.
20
+ Register the Tailwind preset in your app's `tailwind.config.ts`:
23
21
 
24
22
  ```typescript
25
- // tailwind.config.ts
26
23
  import simplysmPreset from "@simplysm/solid/tailwind.config";
27
-
28
24
  export default {
29
25
  darkMode: "class",
30
26
  presets: [simplysmPreset],
31
- content: [
32
- "./src/**/*.{ts,tsx}",
33
- ...simplysmPreset.content,
34
- ],
27
+ content: ["./src/**/*.{ts,tsx}", ...simplysmPreset.content],
35
28
  };
36
29
  ```
37
30
 
38
- ### Provider Setup
39
-
40
- Use `SystemProvider` to wrap your app. It provides all infrastructure providers (config, theme, logger, notification, service client, etc.).
41
-
42
- For programmatic dialogs and printing, add `DialogProvider` and/or `PrintProvider` separately. Place them **below your own Providers** if your dialog/print content needs access to them.
43
-
44
- ```tsx
45
- import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
46
-
47
- function App() {
48
- return (
49
- <SystemProvider clientName="my-app">
50
- {/* Your Providers can go here */}
51
- <DialogProvider>
52
- <PrintProvider>
53
- <AppRoot />
54
- </PrintProvider>
55
- </DialogProvider>
56
- </SystemProvider>
57
- );
58
- }
59
- ```
60
-
61
- > **Why separate?** `DialogProvider` and `PrintProvider` render user-provided components (via `dialog.show(factory)` / `print.toPrinter(factory)`). By placing them below your Providers, the factory content can access your contexts (e.g., auth, data stores). `SystemProvider` provides infrastructure that doesn't render user components.
62
-
63
- | Provider | Required | Must be inside | Description |
64
- |----------|----------|----------------|-------------|
65
- | `SystemProvider` | Yes | (root) | Infrastructure: config, theme, logger, notification, busy, service client, shared data |
66
- | `DialogProvider` | If using `useDialog()` | `SystemProvider` | Programmatic dialog management |
67
- | `PrintProvider` | If using `usePrint()` | `SystemProvider` | Printing and PDF generation |
68
-
69
- ```tsx
70
- import { SystemProvider, DialogProvider, PrintProvider, useServiceClient, useSyncStorage, useLogger, useSharedData } from "@simplysm/solid";
71
- import { onMount } from "solid-js";
72
-
73
- function AppRoot() {
74
- const serviceClient = useServiceClient();
75
-
76
- onMount(async () => {
77
- await serviceClient.connect("main", { port: 3000 });
78
- useSyncStorage()!.configure((origin) => myStorageAdapter);
79
- useLogger().configure((origin) => myLogAdapter);
80
- useSharedData().configure((origin) => definitions);
81
- });
82
- }
83
- ```
84
-
85
- | Prop | Type | Default | Description |
86
- |------|------|---------|-------------|
87
- | `clientName` | `string` | (required) | Client identifier (used as storage key prefix) |
88
- | `busyVariant` | `BusyVariant` | `"spinner"` | Busy overlay display variant (`"spinner"` or `"bar"`) |
89
-
90
- **StorageAdapter interface:**
31
+ Import base CSS in your entry point:
91
32
 
92
33
  ```typescript
93
- interface StorageAdapter {
94
- getItem(key: string): string | null | Promise<string | null>;
95
- setItem(key: string, value: string): void | Promise<unknown>;
96
- removeItem(key: string): void | Promise<void>;
97
- }
34
+ import "@simplysm/solid/tailwind.css";
98
35
  ```
99
36
 
100
- **LogAdapter interface:**
37
+ Wrap your app with providers:
101
38
 
102
- ```typescript
103
- interface LogAdapter {
104
- write(severity: "error" | "warn" | "info" | "log", ...data: any[]): Promise<void> | void;
105
- }
39
+ ```tsx
40
+ import { SystemProvider, DialogProvider, PrintProvider } from "@simplysm/solid";
41
+ <SystemProvider clientName="my-app">
42
+ <DialogProvider>
43
+ <PrintProvider>
44
+ <App />
45
+ </PrintProvider>
46
+ </DialogProvider>
47
+ </SystemProvider>
106
48
  ```
107
49
 
108
- ### Base CSS
50
+ | Provider | Required | Description |
51
+ |----------|----------|-------------|
52
+ | `SystemProvider` | Yes | Infrastructure: config, theme, logger, notification, busy, service client, shared data |
53
+ | `DialogProvider` | If using `useDialog()` | Programmatic dialog management |
54
+ | `PrintProvider` | If using `usePrint()` | Printing and PDF generation |
55
+
56
+ ## Source Index
57
+
58
+ ### Form Control
59
+
60
+ | Source | Exports | Description | Test |
61
+ |--------|---------|-------------|------|
62
+ | `src/components/form-control/Button.tsx` | `ButtonProps`, `Button` | Button with ripple effect, theme/variant/size/inset options | `Button.spec.tsx` |
63
+ | `src/components/form-control/select/Select.tsx` | `SelectProps`, `Select` | Dropdown selection with single/multiple mode, search, hierarchical items | `Select.spec.tsx` |
64
+ | `src/components/form-control/combobox/Combobox.tsx` | `ComboboxProps`, `Combobox` | Autocomplete with async search, debounce, and custom value support | `Combobox.spec.tsx` |
65
+ | `src/components/form-control/field/TextInput.tsx` | `TextInputProps`, `TextInput` | Text input with IME support, format mask, prefix slot, validation | `TextInput.spec.tsx` |
66
+ | `src/components/form-control/field/NumberInput.tsx` | `NumberInputProps`, `NumberInput` | Numeric input with thousand-separator, min/max, prefix slot, validation | `NumberInput.spec.tsx` |
67
+ | `src/components/form-control/field/DatePicker.tsx` | `DatePickerProps`, `DatePicker` | Date input supporting year/month/date units (DateOnly type) | `DatePicker.spec.tsx` |
68
+ | `src/components/form-control/field/DateTimePicker.tsx` | `DateTimePickerProps`, `DateTimePicker` | Date-time input supporting minute/second units (DateTime type) | `DateTimePicker.spec.tsx` |
69
+ | `src/components/form-control/field/TimePicker.tsx` | `TimePickerProps`, `TimePicker` | Time input supporting minute/second units (Time type) | `TimePicker.spec.tsx` |
70
+ | `src/components/form-control/field/Textarea.tsx` | `TextareaProps`, `Textarea` | Auto-height textarea with IME support, minRows, validation | `Textarea.spec.tsx` |
71
+ | `src/components/form-control/field/Field.styles.ts` | `FieldSize`, `fieldBaseClass`, `fieldSizeClasses`, `fieldInsetClass`, `fieldInsetHeightClass`, `fieldInsetSizeHeightClasses`, `fieldDisabledClass`, `textAreaBaseClass`, `textAreaSizeClasses`, `fieldInputClass`, `fieldGapClasses`, `getFieldWrapperClass`, `getTextareaWrapperClass` | Shared Tailwind class tokens and wrapper class generators for field components | - |
72
+ | `src/components/form-control/checkbox/Checkbox.tsx` | `CheckboxProps`, `Checkbox` | Checkbox with ripple, controlled/uncontrolled, inset/inline modes | `Checkbox.spec.tsx` |
73
+ | `src/components/form-control/checkbox/Checkbox.styles.ts` | `CheckboxSize`, `checkboxBaseClass`, `indicatorBaseClass`, `checkedClass`, `checkboxSizeClasses`, `checkboxInsetClass`, `checkboxInsetSizeHeightClasses`, `checkboxInlineClass`, `checkboxDisabledClass` | Tailwind class tokens shared by Checkbox and Radio components | - |
74
+ | `src/components/form-control/checkbox/Radio.tsx` | `RadioProps`, `Radio` | Radio button (single-select variant of Checkbox) with ripple effect | `Radio.spec.tsx` |
75
+ | `src/components/form-control/checkbox/CheckboxGroup.tsx` | `CheckboxGroup` | Group of checkboxes with multi-select value binding and validation | `CheckboxGroup.spec.tsx` |
76
+ | `src/components/form-control/checkbox/RadioGroup.tsx` | `RadioGroup` | Group of radio buttons with single-select value binding and validation | `RadioGroup.spec.tsx` |
77
+ | `src/components/form-control/color-picker/ColorPicker.tsx` | `ColorPickerProps`, `ColorPicker` | Native color picker input (#RRGGBB) with size and inset support | `ColorPicker.spec.tsx` |
78
+ | `src/components/form-control/date-range-picker/DateRangePicker.tsx` | `DateRangePeriodType`, `DateRangePickerProps`, `DateRangePicker` | Date range input with day/month/range period type selection | `DateRangePicker.spec.tsx` |
79
+ | `src/components/form-control/editor/RichTextEditor.tsx` | `RichTextEditorProps`, `RichTextEditor` | WYSIWYG rich text editor (Tiptap) with toolbar, table, image support | - |
80
+ | `src/components/form-control/numpad/Numpad.tsx` | `NumpadProps`, `Numpad` | On-screen numeric keypad with optional ENT/minus buttons | `Numpad.spec.tsx` |
81
+ | `src/components/form-control/state-preset/StatePreset.tsx` | `StatePresetProps`, `StatePreset` | Named state preset chips — save, restore, and overwrite arbitrary values | - |
82
+ | `src/components/form-control/ThemeToggle.tsx` | `ThemeToggleProps`, `ThemeToggle` | Icon button that cycles light/system/dark theme modes | - |
83
+ | `src/components/form-control/Invalid.tsx` | `InvalidProps`, `Invalid` | Validation wrapper that shows border or dot indicator with native form validity | `Invalid.spec.tsx` |
109
84
 
110
- Import the base CSS in your entry point:
111
-
112
- ```typescript
113
- // entry point (e.g., index.tsx)
114
- import "@simplysm/solid/tailwind.css";
115
- ```
85
+ ### Layout
116
86
 
117
- ## Components
118
-
119
- ### Form Controls
120
-
121
- - [`Button`](docs/form-controls.md#button) - Interactive button with Material Design ripple effect
122
- - [`TextInput`](docs/form-controls.md#textinput) - Text input with format mask and IME composition support
123
- - [`NumberInput`](docs/form-controls.md#numberinput) - Number input with thousand separators and decimal places
124
- - [`DatePicker`](docs/form-controls.md#datepicker) - Date input supporting year, month, and date units (`DateOnly` type)
125
- - [`DateTimePicker`](docs/form-controls.md#datetimepicker) - Date-time input supporting minute and second units (`DateTime` type)
126
- - [`TimePicker`](docs/form-controls.md#timepicker) - Time input supporting minute and second units (`Time` type)
127
- - [`DateRangePicker`](docs/form-controls.md#daterangepicker) - Date range input with period type selection (day/month/range)
128
- - [`Textarea`](docs/form-controls.md#textarea) - Multi-line text input with auto-height and IME support
129
- - [`Select`](docs/form-controls.md#select) - Dropdown selection with single/multiple, hierarchical items, and compound components
130
- - [`SelectList`](docs/form-controls.md#selectlist) - List-style single selection with search, pagination, and slot customization
131
- - [`DataSelectButton`](docs/form-controls.md#dataselectbutton) - Modal-based selection button with key-based loading
132
- - [`SharedDataSelect`](docs/form-controls.md#shareddataselect) - SharedData-connected Select wrapper
133
- - [`SharedDataSelectButton`](docs/form-controls.md#shareddataselectbutton) - SharedData-connected DataSelectButton wrapper
134
- - [`SharedDataSelectList`](docs/form-controls.md#shareddataselectlist) - SharedData-connected SelectList wrapper
135
- - [`Combobox`](docs/form-controls.md#combobox) - Autocomplete with async search and debouncing
136
- - [`Checkbox`](docs/form-controls.md#checkbox--radio) / [`Radio`](docs/form-controls.md#checkbox--radio) - Checkbox and radio button
137
- - [`CheckboxGroup`](docs/form-controls.md#checkboxgroup--radiogroup) / [`RadioGroup`](docs/form-controls.md#checkboxgroup--radiogroup) - Group components for multiple/single selection
138
- - [`ColorPicker`](docs/form-controls.md#colorpicker) - Color selection component
139
- - [`ThemeToggle`](docs/form-controls.md#themetoggle) - Dark/light/system theme cycle toggle
140
- - [`RichTextEditor`](docs/form-controls.md#richtexteditor) - Tiptap-based rich text editor with formatting, tables, images
141
- - [`Invalid`](docs/form-controls.md#invalid) - Wrapper component for form validation using native browser validation
142
- - [`Numpad`](docs/form-controls.md#numpad) - Numeric keypad for touch-based input
143
- - [`StatePreset`](docs/form-controls.md#statepreset) - Save/load screen state as presets
87
+ | Source | Exports | Description | Test |
88
+ |--------|---------|-------------|------|
89
+ | `src/components/layout/FormGroup.tsx` | `FormGroupProps`, `FormGroupItemProps`, `FormGroup` | Labeled field group in vertical or inline (horizontal) layout | `FormGroup.spec.tsx` |
90
+ | `src/components/layout/FormTable.tsx` | `FormTableProps`, `FormTable` | Table layout for aligned label/field rows in forms | `FormTable.spec.tsx` |
91
+ | `src/components/layout/sidebar/Sidebar.tsx` | `SidebarProps`, `SidebarContainerProps`, `SidebarMenuProps`, `SidebarUserMenu`, `SidebarUserProps`, `Sidebar` | Collapsible sidebar with slide animation, responsive desktop/mobile behavior | `Sidebar.spec.tsx` |
92
+ | `src/components/layout/sidebar/SidebarContext.ts` | `SM_MEDIA_QUERY`, `SidebarContextValue`, `SidebarContext`, `useSidebarContext`, `useSidebarContextOptional` | Context providing toggle state for Sidebar open/close coordination | - |
93
+ | `src/components/layout/topbar/Topbar.tsx` | `TopbarProps`, `TopbarContainerProps`, `TopbarMenuItem`, `TopbarMenuProps`, `TopbarUserMenu`, `TopbarUserProps`, `Topbar` | App topbar with optional sidebar toggle button and menu/user slots | - |
94
+ | `src/components/layout/topbar/TopbarContext.ts` | `TopbarContextValue`, `TopbarContext`, `useTopbarActionsAccessor`, `createTopbarActions` | Context for injecting page-level action buttons into the topbar | `createTopbarActions.spec.tsx` |
144
95
 
145
96
  ### Data
146
97
 
147
- - [`Table`](docs/data-components.md#table) - Basic HTML table wrapper with consistent styling
148
- - [`DataSheet`](docs/data-components.md#datasheet) - Advanced data table with sorting, pagination, selection, tree expansion, column resize, drag reorder
149
- - [`List`](docs/data-components.md#list) - Tree-view list with keyboard navigation
150
- - [`Pagination`](docs/data-components.md#pagination) - Page navigation component
151
- - [`Calendar`](docs/data-components.md#calendar) - Calendar-style data display
152
- - [`PermissionTable`](docs/data-components.md#permissiontable) - Hierarchical permission management table with cascading checks
153
- - [`CrudSheet`](docs/data-components.md#crudsheet) - CRUD data sheet with search, inline/modal editing, Excel import/export, and select mode
154
- - [`CrudDetail`](docs/data-components.md#cruddetail) - CRUD detail form with load, save, delete, and topbar action integration
155
- - [`Kanban`](docs/layout.md#kanban) - Kanban board with drag-and-drop, lane collapse, multi-select
156
-
157
- ### Layout
158
-
159
- - [`Sidebar`](docs/layout.md#sidebar) - Sidebar navigation with responsive mobile overlay
160
- - [`Topbar`](docs/layout.md#topbar) - Top navigation bar with menus, user dropdown, and actions slot
161
- - [`FormGroup`](docs/layout.md#formgroup) - Form fields layout with labels (vertical/inline)
162
- - [`FormTable`](docs/layout.md#formtable) - Table-based form layout
98
+ | Source | Exports | Description | Test |
99
+ |--------|---------|-------------|------|
100
+ | `src/components/data/Table.tsx` | `TableProps`, `Table` | Simple bordered HTML table with optional inset (borderless) style | `Table.spec.tsx` |
101
+ | `src/components/data/list/List.tsx` | `ListProps`, `List` | Keyboard-navigable list container with tree expand/collapse support | `List.spec.tsx` |
102
+ | `src/components/data/list/ListContext.ts` | `ListContextValue`, `ListContext`, `useListContext` | Context carrying nesting level for recursive List rendering | - |
103
+ | `src/components/data/list/ListItem.styles.ts` | `listItemBaseClass`, `listItemSizeClasses`, `listItemSelectedClass`, `listItemDisabledClass`, `listItemReadonlyClass`, `listItemIndentGuideClass`, `listItemContentClass`, `getListItemSelectedIconClass` | Tailwind class tokens for ListItem states (selected, disabled, readonly, indent) | - |
104
+ | `src/components/data/Pagination.tsx` | `PaginationProps`, `Pagination` | Page navigation bar with first/prev/next/last buttons | `Pagination.spec.tsx` |
105
+ | `src/components/data/sheet/DataSheet.tsx` | `DataSheet` | Feature-rich data grid with sorting, selection, tree expand, reorder, pagination | `DataSheet.spec.tsx` |
106
+ | `src/components/data/sheet/DataSheet.styles.ts` | `dataSheetContainerClass`, `tableClass`, `thClass`, `thContentClass`, `tdClass`, `summaryThClass`, `insetContainerClass`, `insetTableClass`, `defaultContainerClass`, `sortableThClass`, `sortIconClass`, `toolbarClass`, `fixedClass`, `fixedLastClass`, `resizerClass`, `resizeIndicatorClass`, `featureThClass`, `featureTdClass`, `expandIndentGuideClass`, `expandIndentGuideLineClass`, `expandToggleClass`, `selectSingleClass`, `selectSingleSelectedClass`, `selectSingleUnselectedClass`, `reorderHandleClass`, `reorderIndicatorClass`, `featureCellWrapperClass`, `featureCellBodyWrapperClass`, `featureCellClickableClass`, `featureCellBodyClickableClass`, `reorderCellWrapperClass`, `configButtonClass` | Tailwind class tokens for all DataSheet internal visual elements | - |
107
+ | `src/components/data/sheet/types.ts` | `DataSheetProps`, `DataSheetColumnProps`, `DataSheetCellContext`, `SortingDef`, `DataSheetConfig`, `DataSheetConfigColumn`, `DataSheetColumnDef`, `HeaderDef`, `FlatItem`, `DataSheetDragPosition`, `DataSheetReorderEvent`, `DataSheetConfigColumnInfo` | TypeScript types and interfaces for DataSheet props, column defs, and internal structures | - |
108
+ | `src/components/data/calendar/Calendar.tsx` | `CalendarProps`, `Calendar` | Monthly calendar grid that renders arbitrary items on their DateOnly date | - |
109
+ | `src/components/data/kanban/Kanban.tsx` | `KanbanCardProps`, `KanbanLaneProps`, `KanbanProps`, `Kanban` | Kanban board with drag-and-drop card reordering and multi-select | `Kanban.selection.spec.tsx` |
110
+ | `src/components/data/kanban/KanbanContext.ts` | `KanbanCardRef`, `KanbanDropInfo`, `KanbanDropTarget`, `KanbanContextValue`, `KanbanContext`, `useKanbanContext`, `KanbanLaneContextValue`, `KanbanLaneContext`, `useKanbanLaneContext` | Contexts sharing drag state and selection state between Kanban board and lanes | - |
163
111
 
164
112
  ### Display
165
113
 
166
- - [`Card`](docs/display.md#card) - Container with shadow effect
167
- - [`Tag`](docs/display.md#tag) - Inline tag/badge component
168
- - [`Link`](docs/display.md#link) - Inline text link
169
- - [`Alert`](docs/display.md#alert) - Block-level alert/notice component
170
- - [`Icon`](docs/display.md#icon) - Tabler Icons wrapper (scales with surrounding text)
171
- - [`Progress`](docs/display.md#progress) - Progress indicator
172
- - [`Barcode`](docs/display.md#barcode) - Barcode/QR code rendering (100+ barcode types)
173
- - [`Echarts`](docs/display.md#echarts) - Apache ECharts chart wrapper
114
+ | Source | Exports | Description | Test |
115
+ |--------|---------|-------------|------|
116
+ | `src/components/display/Barcode.tsx` | `BarcodeType`, `BarcodeProps`, `Barcode` | Barcode/QR code renderer using bwip-js with many format options | `Barcode.spec.tsx` |
117
+ | `src/components/display/Card.tsx` | `CardProps`, `Card` | Elevated card container with shadow and fade-in animation | `Card.spec.tsx` |
118
+ | `src/components/display/Echarts.tsx` | `EchartsProps`, `Echarts` | Apache ECharts wrapper with resize observer and busy overlay support | - |
119
+ | `src/components/display/Icon.tsx` | `IconProps`, `Icon` | Wrapper for Tabler icon components with size normalization | - |
120
+ | `src/components/display/Tag.tsx` | `TagTheme`, `TagProps`, `Tag` | Inline colored badge/tag with semantic theme options | `Tag.spec.tsx` |
121
+ | `src/components/display/Link.tsx` | `LinkTheme`, `LinkProps`, `Link` | Themed anchor link with disabled state support | `Link.spec.tsx` |
122
+ | `src/components/display/Alert.tsx` | `AlertTheme`, `AlertProps`, `Alert` | Block alert box with semantic theme background colors | `Alert.spec.tsx` |
174
123
 
175
124
  ### Disclosure
176
125
 
177
- - [`Tabs`](docs/disclosure.md#tabs) - Tab navigation component
178
- - [`Collapse`](docs/disclosure.md#collapse) - Content collapse/expand animation
179
- - [`Dropdown`](docs/disclosure.md#dropdown) - Positioned dropdown popup
180
- - [`Dialog`](docs/disclosure.md#dialog) - Modal dialog with drag, resize, floating mode, and programmatic `useDialog`
126
+ | Source | Exports | Description | Test |
127
+ |--------|---------|-------------|------|
128
+ | `src/components/disclosure/Collapse.tsx` | `CollapseProps`, `Collapse` | Animated height-based expand/collapse container | `Collapse.spec.tsx` |
129
+ | `src/components/disclosure/Dropdown.tsx` | `DropdownProps`, `Dropdown` | Positioned floating dropdown with Portal rendering and keyboard navigation | `Dropdown.spec.tsx` |
130
+ | `src/components/disclosure/Dialog.tsx` | `DialogProps`, `Dialog` | Modal dialog with draggable/resizable/closable options and backdrop | `Dialog.spec.tsx` |
131
+ | `src/components/disclosure/DialogContext.ts` | `DialogDefaults`, `DialogShowOptions`, `DialogContextValue`, `DialogDefaultsContext`, `DialogContext`, `useDialog` | Context and hook for opening programmatic dialogs imperatively | - |
132
+ | `src/components/disclosure/DialogInstanceContext.ts` | `DialogInstance`, `DialogInstanceContext`, `useDialogInstance` | Context providing close() to components rendered inside a dialog | - |
133
+ | `src/components/disclosure/DialogProvider.tsx` | `DialogProviderProps`, `DialogProvider` | Provider that manages programmatic dialog stack via useDialog() | `DialogProvider.spec.tsx` |
134
+ | `src/components/disclosure/Tabs.tsx` | `Tabs` | Tab bar with controlled/uncontrolled active tab selection | `Tabs.spec.tsx` |
181
135
 
182
136
  ### Feedback
183
137
 
184
- - [`Notification`](docs/feedback.md#notification) - Notification system with banner and bell (`useNotification`)
185
- - [`Busy`](docs/feedback.md#busy) - Busy overlay with spinner/bar variants (`useBusy`)
186
- - [`Print`](docs/feedback.md#print--useprint) - Browser printing and PDF generation (`usePrint`)
187
-
188
- ## Hooks
189
-
190
- - [`useTheme`](docs/hooks.md#usetheme) - Dark/light/system theme state access
191
- - [`useLocalStorage`](docs/hooks.md#uselocalstorage) - Local-only persistent storage (never syncs)
192
- - [`useSyncConfig`](docs/hooks.md#usesyncconfig) - Syncable config storage (cross-device sync support)
193
- - [`useLogger`](docs/hooks.md#uselogger) - Logging with optional remote adapter
194
- - [`useConfig`](docs/hooks.md#useconfig) - App-wide configuration access
195
- - [`useNotification`](docs/hooks.md#usenotification) - Notification system access
196
- - [`useBusy`](docs/hooks.md#usebusy) - Busy overlay control
197
- - [`usePrint`](docs/hooks.md#useprint) - Printing and PDF generation
198
- - [`useServiceClient`](docs/hooks.md#useserviceclient) - WebSocket RPC client access
199
- - [`useSharedData`](docs/hooks.md#useshareddata) - Shared server-side data access
200
- - [`useDialog`](docs/disclosure.md#dialog) - Programmatic dialog opening
201
- - [`useDialogInstance`](docs/disclosure.md#dialog) - Access dialog instance for closing from inside dialog content
202
- - [`createControllableSignal`](docs/hooks.md#createcontrollablesignal) - Controlled/Uncontrolled signal pattern
203
- - [`createControllableStore`](docs/hooks.md#createcontrollablestore) - Controlled/Uncontrolled store pattern (for objects/arrays)
204
- - [`createMountTransition`](docs/hooks.md#createmounttransition) - Mount/unmount CSS animation hook
205
- - [`createIMEHandler`](docs/hooks.md#createimehandler) - IME composition delay handler
206
- - [`createSlotSignal`](docs/hooks.md#createslotsignal) - Slot registration signal for compound components
207
- - [`createTopbarActions`](docs/layout.md#topbar-actions-slot) - Register actions in nearest Topbar.Container scope
208
- - [`useTopbarActionsAccessor`](docs/layout.md#topbar-actions-slot) - Direct access to topbar actions accessor
209
- - [`useRouterLink`](docs/hooks.md#userouterlink) - Navigation with Ctrl/Shift+click support
210
-
211
- ## Providers
212
-
213
- - [`SystemProvider`](docs/providers.md#systemprovider) - Infrastructure provider (config, theme, logger, notification, busy, service client, shared data)
214
- - [`DialogProvider`](docs/providers.md#dialogprovider) - Programmatic dialog provider (`useDialog`)
215
- - [`PrintProvider`](docs/providers.md#printprovider) - Printing and PDF generation provider (`usePrint`)
216
-
217
- ## Styling
218
-
219
- - [Semantic Colors](docs/styling.md#semantic-colors) - primary, info, success, warning, danger, base
220
- - [Custom Sizes](docs/styling.md#custom-sizes) - Field height classes (h-field, h-field-xs, h-field-sm, h-field-lg, h-field-xl)
221
- - [z-index Layers](docs/styling.md#z-index-layers) - Sidebar, dropdown, modal z-index values
222
- - [Dark Mode](docs/styling.md#dark-mode) - Class-based dark mode with auto-toggle
223
- - [Styling Patterns](docs/styling.md#styling-patterns) - clsx + twMerge usage patterns
224
- - [Exported Style Tokens](docs/styling.md#exported-style-tokens) - TypeScript style constants (ComponentSize, SemanticTheme, themeTokens, fieldSurface, etc.)
225
-
226
- ## Helpers & Directives
227
-
228
- - [`mergeStyles`](docs/helpers.md#mergestyles) - Merge inline style strings and CSSProperties objects
229
- - [`ripple`](docs/helpers.md#ripple-directive) - Material Design ripple effect directive
230
- - [`createAppStructure`](docs/hooks.md#createappstructure) - Declarative app structure (routing, menus, permissions)
231
-
232
- ---
233
-
234
- ## Demo
235
-
236
- Check out real-world usage examples of all components in the `solid-demo` package:
237
-
238
- ```bash
239
- pnpm dev
240
- # http://localhost:40081 (port may vary)
241
- ```
138
+ | Source | Exports | Description | Test |
139
+ |--------|---------|-------------|------|
140
+ | `src/components/feedback/notification/NotificationContext.ts` | `NotificationTheme`, `NotificationAction`, `NotificationItem`, `NotificationOptions`, `NotificationUpdateOptions`, `NotificationContextValue`, `NotificationContext`, `useNotification` | Context and hook for creating/updating/removing toast notifications | `NotificationContext.spec.tsx` |
141
+ | `src/components/feedback/notification/NotificationBell.tsx` | `NotificationBellProps`, `NotificationBell` | Bell icon button that shows notification history dropdown | `NotificationBell.spec.tsx` |
142
+ | `src/components/feedback/notification/NotificationBanner.tsx` | `NotificationBanner` | Fixed top-right banner that displays incoming notifications | `NotificationBanner.spec.tsx` |
143
+ | `src/components/feedback/busy/BusyContext.ts` | `BusyVariant`, `BusyContextValue`, `BusyContext`, `useBusy` | Context and hook for showing/hiding spinner or progress bar overlay | - |
144
+ | `src/components/feedback/busy/BusyContainer.tsx` | `BusyContainerProps`, `BusyContainer` | Container that overlays a spinner or progress bar while busy | `BusyContainer.spec.tsx` |
145
+ | `src/components/feedback/print/PrintContext.ts` | `PrintOptions`, `PrintContextValue`, `PrintContext`, `usePrint` | Context and hook for sending content to printer or exporting as PDF | - |
146
+ | `src/components/feedback/print/PrintProvider.tsx` | `PrintProvider` | Provider that implements toPrinter() and toPdf() via jsPDF and html-to-image | - |
147
+ | `src/components/feedback/print/Print.tsx` | `Print` | Declarative print content wrapper with Print.Page sub-component | `Print.spec.tsx` |
148
+ | `src/components/feedback/print/PrintInstanceContext.ts` | `PrintInstance`, `PrintInstanceContext`, `usePrintInstance` | Context providing ready() callback to print content components | - |
149
+ | `src/components/feedback/Progress.tsx` | `ProgressTheme`, `ProgressProps`, `Progress` | Horizontal progress bar with theme and size options | - |
150
+
151
+ ### Providers
152
+
153
+ | Source | Exports | Description | Test |
154
+ |--------|---------|-------------|------|
155
+ | `src/providers/ConfigContext.tsx` | `AppConfig`, `ConfigContext`, `useConfig`, `ConfigProvider` | App-wide configuration provider (clientName as storage key prefix) | `ConfigContext.spec.tsx` |
156
+ | `src/providers/SyncStorageContext.tsx` | `StorageAdapter`, `SyncStorageContextValue`, `SyncStorageContext`, `useSyncStorage`, `SyncStorageProvider` | Pluggable storage adapter provider (localStorage by default, swappable) | `SyncStorageContext.spec.tsx` |
157
+ | `src/providers/LoggerContext.tsx` | `LogAdapter`, `LoggerContextValue`, `LoggerContext`, `LoggerProvider` | Logger provider with chainable adapter decoration (consola by default) | `LoggerContext.spec.tsx` |
158
+ | `src/providers/ThemeContext.tsx` | `ThemeMode`, `ResolvedTheme`, `useTheme`, `ThemeProvider` | Theme provider managing light/dark/system mode with OS detection | - |
159
+ | `src/providers/ServiceClientContext.ts` | `ServiceClientContextValue`, `ServiceClientContext`, `useServiceClient` | Context for managing named WebSocket service client connections | `ServiceClientContext.spec.tsx` |
160
+ | `src/providers/shared-data/SharedDataContext.ts` | `SharedDataDefinition`, `SharedDataAccessor`, `SharedDataValue`, `SharedDataContext`, `useSharedData` | Context for reactive server-synced shared data with live-update subscriptions | `SharedDataProvider.spec.tsx` |
161
+ | `src/providers/shared-data/SharedDataChangeEvent.ts` | `SharedDataChangeEvent` | Service event definition for broadcasting shared data changes | - |
162
+ | `src/providers/SystemProvider.tsx` | `BusyVariant`, `SystemProvider` | Composite root provider that composes all infrastructure providers | - |
163
+ | `src/providers/i18n/I18nContext.tsx` | `useI18n`, `useI18nOptional`, `I18nProvider` | Internationalization provider with t(), locale management, and localStorage persistence | `I18nContext.spec.tsx` |
164
+ | `src/providers/i18n/I18nContext.types.ts` | `I18nContextValue`, `I18nConfigureOptions`, `FlatDict` | TypeScript types for I18n context value, configure options, and flat dict | - |
165
+
166
+ ### Hooks
167
+
168
+ | Source | Exports | Description | Test |
169
+ |--------|---------|-------------|------|
170
+ | `src/hooks/useLocalStorage.ts` | `useLocalStorage` | Reactive localStorage signal with clientName-prefixed keys | `useLocalStorage.spec.tsx` |
171
+ | `src/hooks/useSyncConfig.ts` | `useSyncConfig` | Persistent config signal synced via SyncStorageProvider (falls back to localStorage) | `useSyncConfig.spec.tsx` |
172
+ | `src/hooks/useLogger.ts` | `Logger`, `useLogger` | Logger hook that delegates to LoggerContext adapter (consola fallback) | `useLogger.spec.tsx` |
173
+ | `src/hooks/createControllableSignal.ts` | `createControllableSignal` | Controlled/uncontrolled signal pattern hook supporting functional setters | `createControllableSignal.spec.ts` |
174
+ | `src/hooks/createControllableStore.ts` | `createControllableStore` | Controlled/uncontrolled store pattern hook for object/array state | - |
175
+ | `src/hooks/createIMEHandler.ts` | `createIMEHandler` | IME composition handler that delays value commit to prevent Korean input breakage | `createIMEHandler.spec.ts` |
176
+ | `src/hooks/createMountTransition.ts` | `createMountTransition` | Mount/unmount animation hook providing mounted and animating signals | `createMountTransition.spec.ts` |
177
+ | `src/hooks/createSlotSignal.ts` | `SlotAccessor`, `createSlotSignal` | Signal factory for registering JSX slot content from child components | - |
178
+ | `src/hooks/useRouterLink.ts` | `RouterLinkOptions`, `useRouterLink` | Router navigation hook with Shift+click new-window support | `useRouterLink.spec.tsx` |
179
+
180
+ ### Styles
181
+
182
+ | Source | Exports | Description | Test |
183
+ |--------|---------|-------------|------|
184
+ | `src/styles/tokens.styles.ts` | `borderDefault`, `borderSubtle`, `bgSurface`, `textDefault`, `textMuted`, `textPlaceholder`, `disabledOpacity`, `ComponentSize`, `ComponentSizeCompact`, `paddingXs`, `paddingSm`, `paddingLg`, `paddingXl`, `SemanticTheme`, `themeTokens` | Design token constants (colors, sizes, themes) as Tailwind class strings | - |
185
+ | `src/styles/patterns.styles.ts` | `iconButtonBase`, `insetFocusOutline`, `insetFocusOutlineSelf`, `insetBase`, `fieldSurface`, `inputBase` | Reusable Tailwind class patterns for icon buttons, inset fields, and input elements | - |
186
+
187
+ ### Directives
188
+
189
+ | Source | Exports | Description | Test |
190
+ |--------|---------|-------------|------|
191
+ | `src/directives/ripple.ts` | `ripple` | SolidJS directive that adds a Material-style ripple effect on click | `ripple.spec.tsx` |
192
+
193
+ ### Helpers
194
+
195
+ | Source | Exports | Description | Test |
196
+ |--------|---------|-------------|------|
197
+ | `src/helpers/mergeStyles.ts` | `mergeStyles` | Merges multiple JSX style objects or strings into a single style object | `mergeStyles.spec.ts` |
198
+ | `src/helpers/createAppStructure.ts` | `AppStructureGroupItem`, `AppStructureLeafItem`, `AppStructureItem`, `AppStructureSubPerm`, `AppMenu`, `AppPerm`, `AppFlatPerm`, `AppRoute`, `AppFlatMenu`, `AppStructure`, `createAppStructure` | Builds typed app route/menu/permission structures from a nested definition tree | `createAppStructure.spec.tsx` |
199
+ | `src/helpers/createSlotComponent.ts` | `createSlotComponent` | Factory for creating slot registration sub-components that inject into parent context | - |
200
+
201
+ ### Features
202
+
203
+ | Source | Exports | Description | Test |
204
+ |--------|---------|-------------|------|
205
+ | `src/components/features/address/AddressSearch.tsx` | `AddressSearchResult`, `AddressSearchContent` | Daum Postcode address search dialog content component | `AddressSearch.spec.tsx` |
206
+ | `src/components/features/shared-data/SharedDataSelect.tsx` | `SharedDataSelectProps`, `SharedDataSelect` | Select dropdown bound to a SharedDataAccessor with search and edit action | - |
207
+ | `src/components/features/shared-data/SharedDataSelectButton.tsx` | `SharedDataSelectButtonProps`, `SharedDataSelectButton` | Button-trigger selector bound to a SharedDataAccessor via modal list | - |
208
+ | `src/components/features/shared-data/SharedDataSelectList.tsx` | `SharedDataSelectListProps`, `SharedDataSelectListComponent`, `SharedDataSelectList` | Paginated list for selecting a single item from a SharedDataAccessor | `SharedDataSelectList.spec.tsx` |
209
+ | `src/components/features/data-select-button/DataSelectButton.tsx` | `DataSelectModalResult`, `DataSelectButtonProps`, `DataSelectButton` | Button that opens a modal dialog for selecting items from an async data source | `DataSelectButton.spec.tsx` |
210
+ | `src/components/features/crud-sheet/CrudSheet.tsx` | `CrudSheet` | Full CRUD data grid with inline/modal edit, Excel import/export, search | `CrudSheet.spec.tsx` |
211
+ | `src/components/features/crud-sheet/types.ts` | `SearchResult`, `InlineEditConfig`, `ModalEditConfig`, `ExcelConfig`, `SelectResult`, `CrudSheetCellContext`, `CrudSheetContext`, `CrudSheetProps`, `CrudSheetColumnDef`, `CrudSheetColumnProps`, `CrudSheetFilterDef`, `CrudSheetToolsDef`, `CrudSheetHeaderDef` | TypeScript types and interfaces for CrudSheet configuration and callbacks | - |
212
+ | `src/components/features/crud-detail/CrudDetail.tsx` | `CrudDetail` | Detail form panel with load/save/refresh lifecycle and change tracking | `CrudDetail.spec.tsx` |
213
+ | `src/components/features/crud-detail/types.ts` | `CrudDetailInfo`, `CrudDetailContext`, `CrudDetailProps`, `CrudDetailToolsDef`, `CrudDetailBeforeDef`, `CrudDetailAfterDef` | TypeScript types and interfaces for CrudDetail props and context | - |
214
+ | `src/components/features/permission-table/PermissionTable.tsx` | `PermissionTableProps`, `collectAllPerms`, `filterByModules`, `changePermCheck`, `PermissionTable` | Permission matrix table for managing role-based access per module/action | `PermissionTable.spec.tsx` |
242
215
 
243
216
  ## License
244
217
 
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\calendar\\Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,GAAG,EAAc,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAKjD,MAAM,WAAW,aAAa,CAAC,MAAM,CAAE,SAAQ,IAAI,CACjD,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACpC,UAAU,CACX;IACC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA4BD,iBAAS,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,eAyGzD;AAED,eAAO,MAAM,QAAQ,qBAAe,CAAC"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\data\\calendar\\Calendar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,GAAG,EAAc,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAMjD,MAAM,WAAW,aAAa,CAAC,MAAM,CAAE,SAAQ,IAAI,CACjD,GAAG,CAAC,cAAc,CAAC,gBAAgB,CAAC,EACpC,UAAU,CACX;IACC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACvD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC;IACzD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AA0BD,iBAAS,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,eAgHzD;AAED,eAAO,MAAM,QAAQ,qBAAe,CAAC"}
@@ -11,7 +11,7 @@ import { DateOnly } from "@simplysm/core-common";
11
11
  import clsx from "clsx";
12
12
  import { twMerge } from "tailwind-merge";
13
13
  import { createControllableSignal } from "../../../hooks/createControllableSignal.js";
14
- const WEEKS = ["\uC77C", "\uC6D4", "\uD654", "\uC218", "\uBAA9", "\uAE08", "\uD1A0"];
14
+ import { useI18nOptional } from "../../../providers/i18n/I18nContext.js";
15
15
  const baseClass = clsx(
16
16
  "w-full",
17
17
  "border-separate border-spacing-0",
@@ -39,11 +39,24 @@ function CalendarBase(props) {
39
39
  value: () => local.yearMonth ?? new DateOnly().setDay(1),
40
40
  onChange: () => local.onYearMonthChange
41
41
  });
42
+ const i18n = useI18nOptional();
43
+ const weekNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
42
44
  const weekHeaders = createMemo(() => {
43
45
  const start = weekStartDay();
44
46
  return Array.from({
45
47
  length: 7
46
- }, (_, i) => WEEKS[(start + i) % 7]);
48
+ }, (_, i) => {
49
+ const key = weekNames[(start + i) % 7];
50
+ return (i18n == null ? void 0 : i18n.t(`calendar.weeks.${key}`)) ?? {
51
+ sun: "Sun",
52
+ mon: "Mon",
53
+ tue: "Tue",
54
+ wed: "Wed",
55
+ thu: "Thu",
56
+ fri: "Fri",
57
+ sat: "Sat"
58
+ }[key];
59
+ });
47
60
  });
48
61
  const dataTable = createMemo(() => {
49
62
  const ym = yearMonth();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/data/calendar/Calendar.tsx"],
4
- "mappings": "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",
5
- "names": ["createMemo", "For", "splitProps", "DateOnly", "clsx", "twMerge", "createControllableSignal", "WEEKS", "baseClass", "notCurrentClass", "dayClass", "notCurrentDayClass", "contentClass", "CalendarBase", "props", "local", "rest", "weekStartDay", "minDaysInFirstWeek", "yearMonth", "value", "setDay", "onChange", "onYearMonthChange", "weekHeaders", "start", "Array", "from", "length", "_", "i", "dataTable", "ym", "items", "getDate", "getItemDate", "itemMap", "Map", "date", "key", "tick", "arr", "get", "push", "item", "index", "set", "firstDate", "getWeekSeqStartDate", "result", "r", "row", "c", "addDays", "getClassName", "class", "_el$", "_tmpl$", "_el$2", "firstChild", "_el$3", "_el$4", "nextSibling", "_$spread", "_$mergeProps", "_$insert", "_$createComponent", "each", "children", "header", "_el$5", "_tmpl$2", "_el$6", "_tmpl$3", "cell", "_el$7", "_tmpl$4", "_el$8", "_el$9", "day", "_$className", "entry", "renderItem", "_$effect", "_p$", "_v$", "month", "_v$2", "e", "t", "undefined", "Calendar"]
4
+ "mappings": "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",
5
+ "names": ["createMemo", "For", "splitProps", "DateOnly", "clsx", "twMerge", "createControllableSignal", "useI18nOptional", "baseClass", "notCurrentClass", "dayClass", "notCurrentDayClass", "contentClass", "CalendarBase", "props", "local", "rest", "weekStartDay", "minDaysInFirstWeek", "yearMonth", "value", "setDay", "onChange", "onYearMonthChange", "i18n", "weekNames", "weekHeaders", "start", "Array", "from", "length", "_", "i", "key", "t", "sun", "mon", "tue", "wed", "thu", "fri", "sat", "dataTable", "ym", "items", "getDate", "getItemDate", "itemMap", "Map", "date", "tick", "arr", "get", "push", "item", "index", "set", "firstDate", "getWeekSeqStartDate", "result", "r", "row", "c", "addDays", "getClassName", "class", "_el$", "_tmpl$", "_el$2", "firstChild", "_el$3", "_el$4", "nextSibling", "_$spread", "_$mergeProps", "_$insert", "_$createComponent", "each", "children", "header", "_el$5", "_tmpl$2", "_el$6", "_tmpl$3", "cell", "_el$7", "_tmpl$4", "_el$8", "_el$9", "day", "_$className", "entry", "renderItem", "_$effect", "_p$", "_v$", "month", "_v$2", "e", "undefined", "Calendar"]
6
6
  }
@@ -3,7 +3,7 @@ const KanbanContext = createContext();
3
3
  function useKanbanContext() {
4
4
  const context = useContext(KanbanContext);
5
5
  if (!context) {
6
- throw new Error("useKanbanContext\uB294 Kanban \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
6
+ throw new Error("useKanbanContext can only be used inside Kanban");
7
7
  }
8
8
  return context;
9
9
  }
@@ -11,7 +11,7 @@ const KanbanLaneContext = createContext();
11
11
  function useKanbanLaneContext() {
12
12
  const context = useContext(KanbanLaneContext);
13
13
  if (!context) {
14
- throw new Error("useKanbanLaneContext\uB294 Kanban.Lane \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
14
+ throw new Error("useKanbanLaneContext can only be used inside Kanban.Lane");
15
15
  }
16
16
  return context;
17
17
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/data/kanban/KanbanContext.ts"],
4
- "mappings": "AAAA,SAAS,eAAe,kBAA8C;AAyC/D,MAAM,gBAAgB,cAAkC;AAExD,SAAS,mBAAuC;AACrD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iHAA2C;AAAA,EAC7D;AACA,SAAO;AACT;AAkBO,MAAM,oBAAoB,cAAsC;AAEhE,SAAS,uBAA+C;AAC7D,QAAM,UAAU,WAAW,iBAAiB;AAC5C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0HAAoD;AAAA,EACtE;AACA,SAAO;AACT;",
4
+ "mappings": "AAAA,SAAS,eAAe,kBAA8C;AAyC/D,MAAM,gBAAgB,cAAkC;AAExD,SAAS,mBAAuC;AACrD,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,iDAAiD;AAAA,EACnE;AACA,SAAO;AACT;AAkBO,MAAM,oBAAoB,cAAsC;AAEhE,SAAS,uBAA+C;AAC7D,QAAM,UAAU,WAAW,iBAAiB;AAC5C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AACA,SAAO;AACT;",
5
5
  "names": []
6
6
  }
@@ -2,19 +2,19 @@ import { type JSX, type ParentComponent } from "solid-js";
2
2
  import { ListItem } from "./ListItem";
3
3
  export interface ListProps extends JSX.HTMLAttributes<HTMLDivElement> {
4
4
  /**
5
- * 투명 배경 스타일 적용
5
+ * Apply transparent background style
6
6
  */
7
7
  inset?: boolean;
8
8
  }
9
9
  /**
10
- * ListItem들을 담는 컨테이너 컴포넌트
10
+ * Container component for ListItems
11
11
  *
12
- * 트리뷰 스타일 키보드 네비게이션 지원:
13
- * - `Space`/`Enter`: 현재 항목 토글
14
- * - `ArrowUp`/`ArrowDown`: 이전/다음 항목으로 포커스 이동
15
- * - `Home`/`End`: 번째/마지막 항목으로 포커스 이동
16
- * - `ArrowRight`: 닫혀있으면 열기, 열려있으면 번째 자식으로 포커스
17
- * - `ArrowLeft`: 열려있으면 닫기, 닫혀있으면 부모로 포커스
12
+ * Supports tree-view style keyboard navigation:
13
+ * - `Space`/`Enter`: toggle current item
14
+ * - `ArrowUp`/`ArrowDown`: move focus to previous/next item
15
+ * - `Home`/`End`: move focus to first/last item
16
+ * - `ArrowRight`: open if closed, or focus first child if open
17
+ * - `ArrowLeft`: close if open, or focus parent if closed
18
18
  *
19
19
  * @example
20
20
  * ```tsx
@@ -1,5 +1,5 @@
1
1
  /**
2
- * List context - 중첩 level 전달용
2
+ * List context - for passing nested level
3
3
  */
4
4
  export interface ListContextValue {
5
5
  level: number;