@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
@@ -39,7 +39,9 @@ export interface RouterLinkOptions {
39
39
  * </ListItem>
40
40
  * ```
41
41
  */
42
- export function useRouterLink(): (options: RouterLinkOptions) => (e: MouseEvent | KeyboardEvent) => void {
42
+ export function useRouterLink(): (
43
+ options: RouterLinkOptions,
44
+ ) => (e: MouseEvent | KeyboardEvent) => void {
43
45
  const navigate = useNavigate();
44
46
 
45
47
  return (options: RouterLinkOptions) => {
@@ -1,4 +1,4 @@
1
- import { type Accessor, type Setter, createEffect, createSignal, onCleanup } from "solid-js";
1
+ import { type Accessor, type Setter, createEffect, createSignal } from "solid-js";
2
2
  import { useConfig } from "../providers/ConfigContext";
3
3
 
4
4
  /**
@@ -9,13 +9,13 @@ import { useConfig } from "../providers/ConfigContext";
9
9
  *
10
10
  * @param key - Storage key for the config value
11
11
  * @param defaultValue - Default value if no stored value exists
12
- * @returns Tuple of [value accessor, value setter, loading state accessor]
12
+ * @returns Tuple of [value accessor, value setter, ready state accessor]
13
13
  *
14
14
  * @example
15
15
  * ```tsx
16
- * const [theme, setTheme, loading] = useSyncConfig("user-theme", "light");
16
+ * const [theme, setTheme, ready] = useSyncConfig("user-theme", "light");
17
17
  *
18
- * <Show when={!loading()}>
18
+ * <Show when={ready()}>
19
19
  * <button onClick={() => setTheme(theme() === "light" ? "dark" : "light")}>
20
20
  * Toggle theme
21
21
  * </button>
@@ -29,7 +29,7 @@ export function useSyncConfig<TValue>(
29
29
  const config = useConfig();
30
30
  const prefixedKey = `${config.clientName}.${key}`;
31
31
  const [value, setValue] = createSignal<TValue>(defaultValue);
32
- const [loading, setLoading] = createSignal(false);
32
+ const [ready, setReady] = createSignal(false);
33
33
 
34
34
  // Initialize from storage
35
35
  const initializeFromStorage = async () => {
@@ -43,11 +43,11 @@ export function useSyncConfig<TValue>(
43
43
  } catch {
44
44
  // Ignore parse errors, keep default value
45
45
  }
46
+ setReady(true);
46
47
  return;
47
48
  }
48
49
 
49
50
  // Use syncStorage asynchronously
50
- setLoading(true);
51
51
  try {
52
52
  const stored = await config.syncStorage.getItem(prefixedKey);
53
53
  if (stored !== null) {
@@ -64,7 +64,7 @@ export function useSyncConfig<TValue>(
64
64
  // Ignore parse errors
65
65
  }
66
66
  } finally {
67
- setLoading(false);
67
+ setReady(true);
68
68
  }
69
69
  };
70
70
 
@@ -73,6 +73,7 @@ export function useSyncConfig<TValue>(
73
73
 
74
74
  // Save to storage whenever value changes
75
75
  createEffect(() => {
76
+ if (!ready()) return; // Don't save until storage has been read
76
77
  const currentValue = value();
77
78
  const serialized = JSON.stringify(currentValue);
78
79
 
@@ -93,10 +94,5 @@ export function useSyncConfig<TValue>(
93
94
  })();
94
95
  });
95
96
 
96
- // Clean up (optional, for consistency)
97
- onCleanup(() => {
98
- // No cleanup needed for storage operations
99
- });
100
-
101
- return [value, setValue, loading];
97
+ return [value, setValue, ready];
102
98
  }
package/src/index.ts CHANGED
@@ -5,11 +5,9 @@ export * from "./components/form-control/Button";
5
5
 
6
6
  // Select
7
7
  export * from "./components/form-control/select/Select";
8
- export * from "./components/form-control/select/SelectContext";
9
8
 
10
9
  // Combobox
11
10
  export * from "./components/form-control/combobox/Combobox";
12
- export * from "./components/form-control/combobox/ComboboxContext";
13
11
 
14
12
  // Field
15
13
  export * from "./components/form-control/field/TextInput";
@@ -72,6 +70,7 @@ export * from "./components/display/Card";
72
70
  export * from "./components/display/Echarts";
73
71
  export * from "./components/display/Icon";
74
72
  export * from "./components/display/Tag";
73
+ export * from "./components/display/Link";
75
74
  export * from "./components/display/Alert";
76
75
 
77
76
  //#endregion
@@ -96,10 +95,10 @@ export * from "./components/feedback/notification/NotificationBell";
96
95
  export * from "./components/feedback/notification/NotificationProvider";
97
96
  export * from "./components/feedback/notification/NotificationBanner";
98
97
 
99
- // Loading
100
- export * from "./components/feedback/loading/LoadingContext";
101
- export * from "./components/feedback/loading/LoadingContainer";
102
- export * from "./components/feedback/loading/LoadingProvider";
98
+ // Busy
99
+ export * from "./components/feedback/busy/BusyContext";
100
+ export * from "./components/feedback/busy/BusyContainer";
101
+ export * from "./components/feedback/busy/BusyProvider";
103
102
 
104
103
  // Print
105
104
  export * from "./components/feedback/print/Print";
@@ -131,7 +130,7 @@ export * from "./hooks/usePrint";
131
130
  export { createControllableSignal } from "./hooks/createControllableSignal";
132
131
  export { createIMEHandler } from "./hooks/createIMEHandler";
133
132
  export { createMountTransition } from "./hooks/createMountTransition";
134
- export { createPwaUpdate } from "./hooks/createPwaUpdate";
133
+ export { usePwaUpdate } from "./hooks/usePwaUpdate";
135
134
  export { useRouterLink } from "./hooks/useRouterLink";
136
135
 
137
136
  //#endregion
@@ -44,9 +44,9 @@ export interface AppConfig {
44
44
  logger?: LogAdapter;
45
45
 
46
46
  /**
47
- * 루트 로딩 오버레이 변형 (기본값: "spinner")
47
+ * 루트 busy 오버레이 변형 (기본값: "spinner")
48
48
  */
49
- loadingVariant?: "spinner" | "bar";
49
+ busyVariant?: "spinner" | "bar";
50
50
  }
51
51
 
52
52
  /**
@@ -5,14 +5,14 @@ import { useClipboardValueCopy } from "../hooks/useClipboardValueCopy";
5
5
  import { ThemeProvider } from "./ThemeContext";
6
6
  import { NotificationProvider } from "../components/feedback/notification/NotificationProvider";
7
7
  import { NotificationBanner } from "../components/feedback/notification/NotificationBanner";
8
- import { LoadingProvider } from "../components/feedback/loading/LoadingProvider";
8
+ import { BusyProvider } from "../components/feedback/busy/BusyProvider";
9
9
 
10
- import { createPwaUpdate } from "../hooks/createPwaUpdate";
10
+ import { usePwaUpdate } from "../hooks/usePwaUpdate";
11
11
  import { useLogger } from "../hooks/useLogger";
12
12
 
13
13
  /** Runs PWA update detection inside NotificationProvider context */
14
14
  function PwaUpdater() {
15
- createPwaUpdate();
15
+ usePwaUpdate();
16
16
  return null;
17
17
  }
18
18
 
@@ -70,7 +70,7 @@ export const InitializeProvider: ParentComponent<{ config: AppConfig }> = (props
70
70
  <NotificationBanner />
71
71
  <GlobalErrorLogger />
72
72
  <PwaUpdater />
73
- <LoadingProvider variant={props.config.loadingVariant}>{props.children}</LoadingProvider>
73
+ <BusyProvider variant={props.config.busyVariant}>{props.children}</BusyProvider>
74
74
  </NotificationProvider>
75
75
  </ThemeProvider>
76
76
  </ConfigContext.Provider>
@@ -1,5 +1,9 @@
1
1
  import { type ParentComponent, onCleanup } from "solid-js";
2
- import { createServiceClient, type ServiceClient, type ServiceConnectionConfig } from "@simplysm/service-client";
2
+ import {
3
+ createServiceClient,
4
+ type ServiceClient,
5
+ type ServiceConnectionConfig,
6
+ } from "@simplysm/service-client";
3
7
  import { ServiceClientContext, type ServiceClientContextValue } from "./ServiceClientContext";
4
8
  import { useConfig } from "./ConfigContext";
5
9
  import { useNotification } from "../components/feedback/notification/NotificationContext";
@@ -19,7 +23,10 @@ export const ServiceClientProvider: ParentComponent = (props) => {
19
23
  clientMap.clear();
20
24
  });
21
25
 
22
- const connect = async (key: string, options?: Partial<ServiceConnectionConfig>): Promise<void> => {
26
+ const connect = async (
27
+ key: string,
28
+ options?: Partial<ServiceConnectionConfig>,
29
+ ): Promise<void> => {
23
30
  if (clientMap.has(key)) {
24
31
  const existing = clientMap.get(key)!;
25
32
  if (!existing.connected) {
@@ -128,5 +135,9 @@ export const ServiceClientProvider: ParentComponent = (props) => {
128
135
  isConnected,
129
136
  };
130
137
 
131
- return <ServiceClientContext.Provider value={contextValue}>{props.children}</ServiceClientContext.Provider>;
138
+ return (
139
+ <ServiceClientContext.Provider value={contextValue}>
140
+ {props.children}
141
+ </ServiceClientContext.Provider>
142
+ );
132
143
  };
@@ -1,4 +1,11 @@
1
- import { createContext, useContext, type ParentComponent, createMemo, createEffect, onCleanup } from "solid-js";
1
+ import {
2
+ createContext,
3
+ useContext,
4
+ type ParentComponent,
5
+ createMemo,
6
+ createEffect,
7
+ onCleanup,
8
+ } from "solid-js";
2
9
  import { createMediaQuery } from "@solid-primitives/media";
3
10
  import { useSyncConfig } from "../hooks/useSyncConfig";
4
11
 
@@ -78,7 +85,7 @@ export function useTheme(): ThemeContextValue {
78
85
  * ```
79
86
  */
80
87
  export const ThemeProvider: ParentComponent = (props) => {
81
- const [mode, setMode] = useSyncConfig<ThemeMode>("theme", "system");
88
+ const [mode, setMode, ready] = useSyncConfig<ThemeMode>("theme", "system");
82
89
 
83
90
  // OS 다크모드 감지
84
91
  const prefersDark = createMediaQuery("(prefers-color-scheme: dark)");
@@ -95,12 +102,14 @@ export const ThemeProvider: ParentComponent = (props) => {
95
102
  // 다음 모드로 순환
96
103
  const cycleMode = () => {
97
104
  const current = mode();
98
- const next: ThemeMode = current === "light" ? "system" : current === "system" ? "dark" : "light";
105
+ const next: ThemeMode =
106
+ current === "light" ? "system" : current === "system" ? "dark" : "light";
99
107
  setMode(next);
100
108
  };
101
109
 
102
110
  // <html>에 dark 클래스 토글
103
111
  createEffect(() => {
112
+ if (!ready()) return; // Don't apply theme until storage has been read
104
113
  const isDark = resolvedTheme() === "dark";
105
114
  document.documentElement.classList.toggle("dark", isDark);
106
115
  });
@@ -1,5 +1,6 @@
1
1
  import { defineEvent } from "@simplysm/service-common";
2
2
 
3
- export const SharedDataChangeEvent = defineEvent<{ name: string; filter: unknown }, (string | number)[] | undefined>(
4
- "SharedDataChangeEvent",
5
- );
3
+ export const SharedDataChangeEvent = defineEvent<
4
+ { name: string; filter: unknown },
5
+ (string | number)[] | undefined
6
+ >("SharedDataChangeEvent");
@@ -18,7 +18,7 @@ export type SharedDataValue<TSharedData extends Record<string, unknown>> = {
18
18
  [K in keyof TSharedData]: SharedDataAccessor<TSharedData[K]>;
19
19
  } & {
20
20
  wait: () => Promise<void>;
21
- loading: Accessor<boolean>;
21
+ busy: Accessor<boolean>;
22
22
  };
23
23
 
24
24
  export const SharedDataContext = createContext<SharedDataValue<Record<string, unknown>>>();
@@ -19,8 +19,8 @@ export function SharedDataProvider<TSharedData extends Record<string, unknown>>(
19
19
  const notification = useNotification();
20
20
  const logger = useLogger();
21
21
 
22
- const [loadingCount, setLoadingCount] = createSignal(0);
23
- const loading: Accessor<boolean> = () => loadingCount() > 0;
22
+ const [busyCount, setBusyCount] = createSignal(0);
23
+ const busy: Accessor<boolean> = () => busyCount() > 0;
24
24
 
25
25
  const signalMap = new Map<string, ReturnType<typeof createSignal<unknown[]>>>();
26
26
  const memoMap = new Map<string, Accessor<Map<string | number, unknown>>>();
@@ -49,7 +49,7 @@ export function SharedDataProvider<TSharedData extends Record<string, unknown>>(
49
49
  const currentVersion = (versionMap.get(name) ?? 0) + 1;
50
50
  versionMap.set(name, currentVersion);
51
51
 
52
- setLoadingCount((c) => c + 1);
52
+ setBusyCount((c) => c + 1);
53
53
  try {
54
54
  const signal = signalMap.get(name);
55
55
  if (!signal) throw new Error(`'${name}'에 대한 공유데이터 저장소가 없습니다.`);
@@ -77,19 +77,22 @@ export function SharedDataProvider<TSharedData extends Record<string, unknown>>(
77
77
  err instanceof Error ? err.message : `'${name}' 데이터를 불러오는 중 오류가 발생했습니다.`,
78
78
  );
79
79
  } finally {
80
- setLoadingCount((c) => c - 1);
80
+ setBusyCount((c) => c - 1);
81
81
  }
82
82
  }
83
83
 
84
84
  async function wait(): Promise<void> {
85
85
  // eslint-disable-next-line solid/reactivity -- waitUntil은 폴링 기반이므로 tracked scope 불필요
86
- await waitUntil(() => loadingCount() <= 0);
86
+ await waitUntil(() => busyCount() <= 0);
87
87
  }
88
88
 
89
89
  const accessors: Record<string, SharedDataAccessor<unknown>> = {};
90
90
 
91
91
  // eslint-disable-next-line solid/reactivity -- definitions는 초기 설정용으로 마운트 시 1회만 읽음
92
- for (const [name, def] of Object.entries(props.definitions) as [string, SharedDataDefinition<unknown>][]) {
92
+ for (const [name, def] of Object.entries(props.definitions) as [
93
+ string,
94
+ SharedDataDefinition<unknown>,
95
+ ][]) {
93
96
  const [items, setItems] = createSignal<unknown[]>([]);
94
97
  // eslint-disable-next-line solid/reactivity -- signal 참조를 Map에 저장하는 것은 반응성 접근이 아님
95
98
  signalMap.set(name, [items, setItems]);
@@ -145,8 +148,10 @@ export function SharedDataProvider<TSharedData extends Record<string, unknown>>(
145
148
  const contextValue = {
146
149
  ...accessors,
147
150
  wait,
148
- loading,
151
+ busy,
149
152
  } as SharedDataValue<Record<string, unknown>>;
150
153
 
151
- return <SharedDataContext.Provider value={contextValue}>{props.children}</SharedDataContext.Provider>;
154
+ return (
155
+ <SharedDataContext.Provider value={contextValue}>{props.children}</SharedDataContext.Provider>
156
+ );
152
157
  }
@@ -1,6 +1,18 @@
1
1
  import clsx from "clsx";
2
2
  import { bgSurface, borderDefault, textDefault, textPlaceholder } from "./tokens.styles";
3
3
 
4
+ // ── 아이콘 버튼 공통 ──
5
+ export const iconButtonBase = clsx(
6
+ "inline-flex items-center justify-center",
7
+ "cursor-pointer",
8
+ "rounded",
9
+ "transition-colors",
10
+ "text-base-600 dark:text-base-300",
11
+ "hover:bg-base-200 dark:hover:bg-base-700",
12
+ "focus:outline-none",
13
+ "focus-visible:ring-2",
14
+ );
15
+
4
16
  // ── inset 포커스 아웃라인 (focus-within 버전: Field, TextArea) ──
5
17
  export const insetFocusOutline = clsx(
6
18
  "focus-within:[outline-style:solid]",
@@ -25,7 +37,7 @@ export const fieldSurface = clsx(
25
37
  "border",
26
38
  borderDefault,
27
39
  "rounded",
28
- "focus-within:border-primary-500",
40
+ "focus-within:border-primary-500 dark:focus-within:border-primary-400",
29
41
  );
30
42
 
31
43
  // ── 입력 요소 공통 ──
@@ -1,6 +1,6 @@
1
1
  // ── 테두리 ──
2
2
  export const borderDefault = "border-base-300 dark:border-base-700";
3
- export const borderSubtle = "border-base-200 dark:border-base-800";
3
+ export const borderSubtle = "border-base-200 dark:border-base-700";
4
4
 
5
5
  // ── 표면 배경 ──
6
6
  export const bgSurface = "bg-white dark:bg-base-900";
@@ -15,6 +15,7 @@ export const disabledOpacity = "cursor-default opacity-50 pointer-events-none";
15
15
 
16
16
  // ── 사이즈 ──
17
17
  export type ComponentSize = "sm" | "lg" | "xl";
18
+ export type ComponentSizeCompact = "sm" | "lg";
18
19
  export const paddingSm = "px-1.5 py-0.5";
19
20
  export const paddingLg = "px-3 py-2";
20
21
  export const paddingXl = "px-4 py-3";
@@ -35,6 +35,15 @@ export default {
35
35
  },
36
36
  height: fieldSizes,
37
37
  size: fieldSizes,
38
+ keyframes: {
39
+ "fade-in": {
40
+ from: { opacity: "0", transform: "translateY(-1rem)" },
41
+ to: { opacity: "1", transform: "translateY(0)" },
42
+ },
43
+ },
44
+ animation: {
45
+ "fade-in": "fade-in 0.6s ease-out both",
46
+ },
38
47
  zIndex: {
39
48
  "sidebar": "100",
40
49
  "sidebar-backdrop": "99",
package/tailwind.css CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
 
10
10
  html.dark {
11
- @apply bg-base-950 text-base-100;
11
+ @apply bg-base-900 text-base-100;
12
12
  }
13
13
 
14
14
  html,
@@ -1,15 +0,0 @@
1
- @keyframes card-in {
2
- from {
3
- opacity: 0;
4
- transform: translateY(-1rem);
5
- }
6
-
7
- to {
8
- opacity: 1;
9
- transform: none;
10
- }
11
- }
12
-
13
- .animate-card-in {
14
- animation: card-in 0.3s ease-out forwards;
15
- }
@@ -1,12 +0,0 @@
1
- import { type ParentComponent, type JSX } from "solid-js";
2
- import { type LoadingVariant } from "./LoadingContext";
3
- import "./LoadingContainer.css";
4
- export interface LoadingContainerProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> {
5
- busy?: boolean;
6
- variant?: LoadingVariant;
7
- message?: string;
8
- progressPercent?: number;
9
- children?: JSX.Element;
10
- }
11
- export declare const LoadingContainer: ParentComponent<LoadingContainerProps>;
12
- //# sourceMappingURL=LoadingContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading/LoadingContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,GAAG,EAAyD,MAAM,UAAU,CAAC;AAGjH,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACjG,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAmCD,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,CAmFnE,CAAC"}
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/feedback/loading/LoadingContainer.tsx"],
4
- "mappings": ";;;;;;;;;;;AAAA,SAAyCA,YAAYC,cAAcC,WAAWC,MAAMC,kBAAkB;AACtG,OAAOC,UAAU;AACjB,SAASC,eAAe;AACxB,SAASC,sBAA2C;AACpD,SAASC,6BAA6B;AACtC,OAAO;AAUP,MAAMC,YAAYJ,KAAK,YAAY,aAAa,6BAA6B,eAAe;AAG5F,MAAMK,kBAAkBL,KACtB,0CACA,UACA,mCACA,iCACF;AAEA,MAAMM,eAAeN,KACnB,UACA,qDACA,kDACA,gBACA,gBACA,aACA,cACF;AAEA,MAAMO,eAAeP,KAAK,UAAU,yBAAyB,kCAAkC;AAE/F,MAAMQ,qBAAqBR,KAAK,yBAAyB,cAAc,2BAA2B;AAElG,MAAMS,mBAAmBT,KACvB,cACA,sCACA,6CACA,aACF;AAEA,MAAMU,oBAAoBV,KAAK,yBAAyB,cAAc,2BAA2B;AAE1F,MAAMW,mBAA4DC,WAAU;AACjF,QAAM,CAACC,OAAOC,IAAI,IAAInB,WAAWiB,OAAO,CAAC,QAAQ,WAAW,WAAW,mBAAmB,SAAS,UAAU,CAAC;AAE9G,QAAMG,aAAahB,WAAWG,cAAc;AAC5C,QAAMc,cAAcA,MAAsBH,MAAMI,YAAWF,yCAAYE,cAAa;AAGpF,QAAM;IAAEC;IAASC;IAAWC;EAAQ,IAAIjB,sBAAsB,MAAM,CAAC,CAACU,MAAMQ,IAAI;AAEhF,QAAMC,sBAAuBC,OAAuB;AAClD,QAAIA,EAAEC,iBAAiB,UAAW;AAClC,QAAI,CAACX,MAAMQ,MAAM;AACfD,cAAQ;IACV;EACF;AAGA,MAAIK;AAEJ7B,eAAa,MAAM;AACjB,UAAM8B,uBAAwBH,OAAqB;AACjD,UAAIV,MAAMQ,MAAM;AACdE,UAAEI,eAAe;AACjBJ,UAAEK,gBAAgB;MACpB;IACF;AAEAH,iBAAaI,iBAAiB,WAAWH,sBAAsB;MAAEI,SAAS;IAAK,CAAC;AAChFjC,cAAU,MAAM4B,aAAaM,oBAAoB,WAAWL,sBAAsB;MAAEI,SAAS;IAAK,CAAC,CAAC;EACtG,CAAC;AAED,QAAME,cAAcA,MAClBhC,KAAKK,iBAAiBc,UAAU,IAAI,oCAAoC,+BAA+B;AAGzG,QAAMc,YAAYA,MAAM;AACtB,QAAIjB,YAAY,MAAM,UAAW,QAAO;AACxC,WAAOhB,KACL,qCACAmB,UAAU,IAAI,2BAA2B,2BAC3C;EACF;AAEA,UAAA,MAAA;AAAA,QAAAe,OAAAC,OAAA;AAAA,QAAAC,QACYX;AAAY,WAAAW,UAAA,aAAAC,MAAAD,OAAAF,IAAA,IAAZT,eAAYS;AAAAI,aAAAJ,MAAAK,aAAA;MAAA,KAAA,OAAA,IAAA;AAAA,eAAStC,QAAQG,WAAWS,MAAM2B,KAAK;MAAC;IAAA,GAAM1B,IAAI,GAAA,OAAA,IAAA;AAAA2B,aAAAP,MAAAQ,kBACrE5C,MAAI;MAAA,IAAC6C,OAAI;AAAA,eAAEzB,QAAQ;MAAC;MAAA,IAAA0B,WAAA;AAAA,YAAAC,QAAAC,QAAA,GAAAC,QAAAF,MAAAG;AAAAH,cAAAhB,iBAAA,iBACyBP,mBAAmB;AAAAmB,iBAAAM,OAAAL,kBAE1D5C,MAAI;UAAA,IAAC6C,OAAI;AAAA,mBAAE3B,YAAY,MAAM;UAAS;UAAA,IAAA4B,WAAA;AAAA,gBAAAK,QAAAd,OAAA;AAAAe,wBAAAD,OACzB3C,YAAY;AAAA,mBAAA2C;UAAA;QAAA,CAAA,GAAA,IAAA;AAAAR,iBAAAM,OAAAL,kBAEzB5C,MAAI;UAAA,IAAC6C,OAAI;AAAA,mBAAEQ,OAAA,MAAAnC,YAAY,MAAM,KAAK,EAAA,KAAIH,MAAMQ;UAAI;UAAA,IAAAuB,WAAA;AAAA,gBAAAQ,QAAAC,QAAA,GAAAC,QAAAF,MAAAJ,YAAAO,QAAAD,MAAAE;AAAAN,wBAAAE,OACnC1C,iBAAiB;AAAA+C,qBAAAC,SAAA;AAAA,kBAAAC,MAElB3D,KAAK,gDAAgD,oCAAoC,GAAC4D,OAM1F5D,KAAK,gDAAgD,2BAA2B;AAAC2D,sBAAAD,IAAAnC,KAAA2B,YAAAI,OAAAI,IAAAnC,IAAAoC,GAAA;AAAAC,uBAAAF,IAAAG,KAAAX,YAAAK,OAAAG,IAAAG,IAAAD,IAAA;AAAA,qBAAAF;YAAA,GAAA;cAAAnC,GAAAuC;cAAAD,GAAAC;YAAA,CAAA;AAAA,mBAAAV;UAAA;QAAA,CAAA,GAAA,IAAA;AAAAX,iBAAAM,OAAAL,kBAO7F5C,MAAI;UAAA,IAAC6C,OAAI;AAAA,mBAAE9B,MAAMkD;UAAO;UAAA,IAAAnB,WAAA;AAAA,gBAAAoB,QAAAC,QAAA,GAAAC,QAAAF,MAAAhB;AAAAE,wBAAAc,OACXzD,YAAY;AAAAkC,qBAAAyB,OAAA,MACJrD,MAAMkD,OAAO;AAAA,mBAAAC;UAAA;QAAA,CAAA,GAAA,IAAA;AAAAvB,iBAAAI,OAAAH,kBAIpC5C,MAAI;UAAA,IAAC6C,OAAI;AAAA,mBAAE9B,MAAMsD,mBAAmB;UAAI;UAAA,IAAAvB,WAAA;AAAA,gBAAAwB,QAAAtB,QAAA,GAAAuB,QAAAD,MAAApB;AAAAE,wBAAAkB,OAC3B5D,kBAAkB;AAAA0C,wBAAAmB,OAChB5D,gBAAgB;AAAAgD,qBAAAa,SAAAC,mBAAAF,OAAA,aAAsB,WAAWxD,MAAMsD,mBAAmB,KAAK,GAAG,GAAG,CAAA;AAAA,mBAAAC;UAAA;QAAA,CAAA,GAAA,IAAA;AAAAX,iBAAAC,SAAA;AAAA,cAAAc,OA7B3FxC,YAAY,GAACyC,OACXxC,UAAU;AAACuC,mBAAAd,IAAAnC,KAAA2B,YAAAL,OAAAa,IAAAnC,IAAAiD,IAAA;AAAAC,mBAAAf,IAAAG,KAAAX,YAAAH,OAAAW,IAAAG,IAAAY,IAAA;AAAA,iBAAAf;QAAA,GAAA;UAAAnC,GAAAuC;UAAAD,GAAAC;QAAA,CAAA;AAAA,eAAAjB;MAAA;IAAA,CAAA,GAAA,IAAA;AAAAJ,aAAAP,MAAA,MAiC1BrB,MAAM+B,UAAQ,IAAA;AAAA,WAAAV;EAAA,GAAA;AAGrB;",
5
- "names": ["splitProps", "createEffect", "onCleanup", "Show", "useContext", "clsx", "twMerge", "LoadingContext", "createMountTransition", "baseClass", "screenBaseClass", "spinnerClass", "messageClass", "progressTrackClass", "progressBarClass", "barIndicatorClass", "LoadingContainer", "props", "local", "rest", "loadingCtx", "currVariant", "variant", "mounted", "animating", "unmount", "busy", "handleTransitionEnd", "e", "propertyName", "containerRef", "handleKeyDownCapture", "preventDefault", "stopPropagation", "addEventListener", "capture", "removeEventListener", "screenClass", "rectClass", "_el$", "_tmpl$", "_ref$", "_$use", "_$spread", "_$mergeProps", "class", "_$insert", "_$createComponent", "when", "children", "_el$2", "_tmpl$4", "_el$3", "firstChild", "_el$4", "_$className", "_$memo", "_el$5", "_tmpl$2", "_el$6", "_el$7", "nextSibling", "_$effect", "_p$", "_v$", "_v$2", "t", "undefined", "message", "_el$8", "_tmpl$3", "_el$9", "progressPercent", "_el$0", "_el$1", "_$p", "_$setStyleProperty", "_v$3", "_v$4"]
6
- }
@@ -1,11 +0,0 @@
1
- import { type Accessor } from "solid-js";
2
- export type LoadingVariant = "spinner" | "bar";
3
- export interface LoadingContextValue {
4
- variant: Accessor<LoadingVariant>;
5
- show: (message?: string) => void;
6
- hide: () => void;
7
- setProgress: (percent: number | undefined) => void;
8
- }
9
- export declare const LoadingContext: import("solid-js").Context<LoadingContextValue | undefined>;
10
- export declare function useLoading(): LoadingContextValue;
11
- //# sourceMappingURL=LoadingContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingContext.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading/LoadingContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CACpD;AAED,eAAO,MAAM,cAAc,6DAAuC,CAAC;AAEnE,wBAAgB,UAAU,IAAI,mBAAmB,CAMhD"}
@@ -1,14 +0,0 @@
1
- import { createContext, useContext } from "solid-js";
2
- const LoadingContext = createContext();
3
- function useLoading() {
4
- const context = useContext(LoadingContext);
5
- if (!context) {
6
- throw new Error("useLoading\uC740 LoadingProvider \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
7
- }
8
- return context;
9
- }
10
- export {
11
- LoadingContext,
12
- useLoading
13
- };
14
- //# sourceMappingURL=LoadingContext.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/feedback/loading/LoadingContext.ts"],
4
- "mappings": "AAAA,SAAS,eAAe,kBAAiC;AAWlD,MAAM,iBAAiB,cAAmC;AAE1D,SAAS,aAAkC;AAChD,QAAM,UAAU,WAAW,cAAc;AACzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,oHAA8C;AAAA,EAChE;AACA,SAAO;AACT;",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- import { type ParentComponent } from "solid-js";
2
- import { type LoadingVariant } from "./LoadingContext";
3
- export interface LoadingProviderProps {
4
- variant?: LoadingVariant;
5
- }
6
- export declare const LoadingProvider: ParentComponent<LoadingProviderProps>;
7
- //# sourceMappingURL=LoadingProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/feedback/loading/LoadingProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAgB,MAAM,UAAU,CAAC;AAG9D,OAAO,EAA4C,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKjG,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,oBAAoB,CA6CjE,CAAC"}
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/feedback/loading/LoadingProvider.tsx"],
4
- "mappings": ";;AAAA,SAA+BA,oBAAoB;AACnD,SAASC,cAAc;AACvB,OAAOC,UAAU;AACjB,SAASC,sBAAqE;AAC9E,SAASC,wBAAwB;AAEjC,MAAMC,eAAeH,KAAK,sBAAsB,qBAAqB,iBAAiB;AAM/E,MAAMI,kBAA0DC,WAAU;AAC/E,QAAM,CAACC,WAAWC,YAAY,IAAIT,aAAa,CAAC;AAChD,QAAM,CAACU,SAASC,UAAU,IAAIX,aAAiC;AAC/D,QAAM,CAACY,UAAUC,WAAW,IAAIb,aAAiC;AAEjE,QAAMc,UAAUA,MAAsBP,MAAMO,WAAW;AAEvD,QAAMC,OAAQC,SAAuB;AACnCP,iBAAcQ,OAAMA,IAAI,CAAC;AACzB,QAAID,QAAQE,QAAW;AACrBP,iBAAWK,GAAG;IAChB;EACF;AAEA,QAAMG,OAAOA,MAAY;AACvB,UAAMC,WAAWC,KAAKC,IAAI,GAAGd,UAAU,IAAI,CAAC;AAC5CC,iBAAaW,QAAQ;AACrB,QAAIA,YAAY,GAAG;AACjBT,iBAAWO,MAAS;AACpBL,kBAAYK,MAAS;IACvB;EACF;AAEA,QAAMK,eAAoC;IACxCT;IACAC;IACAI;IACAN,aAAcW,aAAgCX,YAAYW,OAAO;EACnE;AAEA,SAAAC,kBACGtB,eAAeuB,UAAQ;IAACC,OAAOJ;IAAY,IAAAK,WAAA;AAAA,aAAA,CAAAC,OAAA,MACzCtB,MAAMqB,QAAQ,GAAAH,kBACdxB,QAAM;QAAA,IAAA2B,WAAA;AAAA,iBAAAH,kBACJrB,kBAAgB;YAAA,IACf0B,OAAI;AAAA,qBAAEtB,UAAU,IAAI;YAAC;YAAA,IACrBM,UAAO;AAAA,qBAAEA,QAAQ;YAAC;YAAA,IAClBJ,UAAO;AAAA,qBAAEA,QAAQ;YAAC;YAAA,IAClBqB,kBAAe;AAAA,qBAAEnB,SAAS;YAAC;YAAA,SACpBP;YAAY,IACnB2B,QAAK;AAAA,qBAAE;gBAAE,kBAAkBxB,UAAU,IAAI,IAAI,SAAS;cAAO;YAAC;UAAA,CAAA;QAAA;MAAA,CAAA,CAAA;IAAA;EAAA,CAAA;AAKxE;",
5
- "names": ["createSignal", "Portal", "clsx", "LoadingContext", "LoadingContainer", "overlayClass", "LoadingProvider", "props", "busyCount", "setBusyCount", "message", "setMessage", "progress", "setProgress", "variant", "show", "msg", "c", "undefined", "hide", "newCount", "Math", "max", "contextValue", "percent", "_$createComponent", "Provider", "value", "children", "_$memo", "busy", "progressPercent", "style"]
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"createPwaUpdate.d.ts","sourceRoot":"","sources":["../../src/hooks/createPwaUpdate.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAuDtC"}
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/hooks/createPwaUpdate.ts"],
4
- "mappings": "AAAA,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAEhC,MAAM,kBAAkB,IAAI,KAAK;AAc1B,SAAS,kBAAwB;AACtC,MAAI,OAAO,cAAc,eAAe,EAAE,mBAAmB,WAAY;AAEzE,QAAM,eAAe,gBAAgB;AACrC,MAAI;AAEJ,OAAK,UAAU,cAAc,gBAAgB,EAAE,KAAK,CAAC,iBAAiB;AACpE,QAAI,gBAAgB,KAAM;AAG1B,iBAAa,YAAY,MAAM;AAC7B,WAAK,aAAa,OAAO;AAAA,IAC3B,GAAG,eAAe;AAGlB,QAAI,aAAa,WAAW,MAAM;AAChC,mBAAa,aAAa,OAAO;AAAA,IACnC;AAGA,iBAAa,iBAAiB,eAAe,MAAM;AACjD,YAAM,QAAQ,aAAa;AAC3B,UAAI,SAAS,KAAM;AAEnB,YAAM,iBAAiB,eAAe,MAAM;AAC1C,YAAI,MAAM,UAAU,eAAe,UAAU,cAAc,cAAc,MAAM;AAC7E,uBAAa,KAAK;AAAA,QACpB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AAGD,QAAM,qBAAqB,MAAM;AAC/B,WAAO,SAAS,OAAO;AAAA,EACzB;AACA,YAAU,cAAc,iBAAiB,oBAAoB,kBAAkB;AAE/E,YAAU,MAAM;AACd,QAAI,cAAc,MAAM;AACtB,oBAAc,UAAU;AAAA,IAC1B;AACA,cAAU,cAAc,oBAAoB,oBAAoB,kBAAkB;AAAA,EACpF,CAAC;AAED,WAAS,aAAa,WAAgC;AACpD,iBAAa,KAAK,uEAAgB,2HAA4B;AAAA,MAC5D,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,SAAS,MAAM;AACb,oBAAU,YAAY,EAAE,MAAM,eAAe,CAAC;AAAA,QAChD;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;",
5
- "names": []
6
- }
@@ -1,15 +0,0 @@
1
- @keyframes card-in {
2
- from {
3
- opacity: 0;
4
- transform: translateY(-1rem);
5
- }
6
-
7
- to {
8
- opacity: 1;
9
- transform: none;
10
- }
11
- }
12
-
13
- .animate-card-in {
14
- animation: card-in 0.3s ease-out forwards;
15
- }
@@ -1,20 +0,0 @@
1
- import { createContext, useContext, type Accessor } from "solid-js";
2
-
3
- export type LoadingVariant = "spinner" | "bar";
4
-
5
- export interface LoadingContextValue {
6
- variant: Accessor<LoadingVariant>;
7
- show: (message?: string) => void;
8
- hide: () => void;
9
- setProgress: (percent: number | undefined) => void;
10
- }
11
-
12
- export const LoadingContext = createContext<LoadingContextValue>();
13
-
14
- export function useLoading(): LoadingContextValue {
15
- const context = useContext(LoadingContext);
16
- if (!context) {
17
- throw new Error("useLoading은 LoadingProvider 내부에서만 사용할 수 있습니다");
18
- }
19
- return context;
20
- }