@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
@@ -7,7 +7,9 @@ export function normalizeHeader(header?: string | string[]): string[] {
7
7
  return header;
8
8
  }
9
9
 
10
- export function buildHeaderTable<TItem>(columns: DataSheetColumnDef<TItem>[]): (HeaderDef | null)[][] {
10
+ export function buildHeaderTable<TItem>(
11
+ columns: DataSheetColumnDef<TItem>[],
12
+ ): (HeaderDef | null)[][] {
11
13
  if (columns.length === 0) return [];
12
14
 
13
15
  const maxDepth = Math.max(...columns.map((c) => c.header.length));
@@ -84,7 +86,13 @@ export function buildHeaderTable<TItem>(columns: DataSheetColumnDef<TItem>[]): (
84
86
  }
85
87
 
86
88
  // 같은 병합 그룹에 속하는지 확인 (행 0~endRow까지 같은 텍스트 시퀀스)
87
- function isSameGroup(padded: string[][], colA: number, colB: number, startRow: number, endRow: number): boolean {
89
+ function isSameGroup(
90
+ padded: string[][],
91
+ colA: number,
92
+ colB: number,
93
+ startRow: number,
94
+ endRow: number,
95
+ ): boolean {
88
96
  for (let r = startRow; r < endRow; r++) {
89
97
  if (padded[colA][r] !== padded[colB][r]) return false;
90
98
  }
@@ -152,7 +160,8 @@ export function applySorting<TItem>(items: TItem[], sorts: SortingDef[]): TItem[
152
160
 
153
161
  let result = [...items];
154
162
  for (const sort of [...sorts].reverse()) {
155
- const selector = (item: TItem) => objGetChainValue(item, sort.key) as string | number | undefined;
163
+ const selector = (item: TItem) =>
164
+ objGetChainValue(item, sort.key) as string | number | undefined;
156
165
  result = sort.desc ? result.orderByDesc(selector) : result.orderBy(selector);
157
166
  }
158
167
  return result;
@@ -15,8 +15,8 @@ export interface DataSheetProps<TItem> {
15
15
  autoSort?: boolean;
16
16
 
17
17
  // 페이지네이션
18
- pageIndex?: number;
19
- onPageIndexChange?: (pageIndex: number) => void;
18
+ page?: number;
19
+ onPageChange?: (page: number) => void;
20
20
  totalPageCount?: number;
21
21
  itemsPerPage?: number;
22
22
  displayPageCount?: number;
@@ -1,4 +1,11 @@
1
- import { type JSX, type ParentComponent, splitProps, createSignal, onMount, onCleanup } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ splitProps,
5
+ createSignal,
6
+ onMount,
7
+ onCleanup,
8
+ } from "solid-js";
2
9
  import { createElementSize } from "@solid-primitives/resize-observer";
3
10
  import clsx from "clsx";
4
11
  import { twMerge } from "tailwind-merge";
@@ -23,7 +30,12 @@ export interface CollapseProps extends JSX.HTMLAttributes<HTMLDivElement> {
23
30
  open?: boolean;
24
31
  }
25
32
 
26
- const transitionClass = clsx("transition-[margin-top]", "duration-200", "ease-out", "motion-reduce:transition-none");
33
+ const transitionClass = clsx(
34
+ "transition-[margin-top]",
35
+ "duration-200",
36
+ "ease-out",
37
+ "motion-reduce:transition-none",
38
+ );
27
39
 
28
40
  export const Collapse: ParentComponent<CollapseProps> = (props) => {
29
41
  const [local, rest] = splitProps(props, ["children", "class", "style", "open"]);
@@ -54,7 +66,6 @@ export const Collapse: ParentComponent<CollapseProps> = (props) => {
54
66
  data-collapse
55
67
  class={twMerge("block", local.class)}
56
68
  style={mergeStyles(local.style, { overflow: "hidden" })}
57
- aria-hidden={!isOpen()}
58
69
  >
59
70
  <div
60
71
  ref={setContentRef}
@@ -1,10 +1,20 @@
1
- import { type JSX, type ParentComponent, createEffect, onCleanup, Show, splitProps, For, useContext } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ createEffect,
5
+ onCleanup,
6
+ Show,
7
+ splitProps,
8
+ For,
9
+ useContext,
10
+ } from "solid-js";
2
11
  import { Portal } from "solid-js/web";
3
12
  import clsx from "clsx";
4
13
  import { twMerge } from "tailwind-merge";
5
14
  import { IconX } from "@tabler/icons-solidjs";
6
15
  import { createControllableSignal } from "../../hooks/createControllableSignal";
7
16
  import { createMountTransition } from "../../hooks/createMountTransition";
17
+ import { createPointerDrag } from "../../hooks/createPointerDrag";
8
18
  import { mergeStyles } from "../../helpers/mergeStyles";
9
19
  import { Icon } from "../display/Icon";
10
20
  import { borderSubtle } from "../../styles/tokens.styles";
@@ -34,14 +44,14 @@ export interface DialogProps {
34
44
  float?: boolean;
35
45
  /** 전체 화면 모드 */
36
46
  fill?: boolean;
37
- /** 너비 (px) */
38
- widthPx?: number;
39
- /** 높이 (px) */
40
- heightPx?: number;
41
- /** 최소 너비 (px) */
42
- minWidthPx?: number;
43
- /** 최소 높이 (px) */
44
- minHeightPx?: number;
47
+ /** 너비 */
48
+ width?: number;
49
+ /** 높이 */
50
+ height?: number;
51
+ /** 최소 너비 */
52
+ minWidth?: number;
53
+ /** 최소 높이 */
54
+ minHeight?: number;
45
55
  /** 고정 위치 */
46
56
  position?: "bottom-right" | "top-right";
47
57
  /** 헤더 스타일 */
@@ -58,7 +68,15 @@ export interface DialogProps {
58
68
  children: JSX.Element;
59
69
  }
60
70
 
61
- type ResizeDirection = "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
71
+ type ResizeDirection =
72
+ | "left"
73
+ | "right"
74
+ | "top"
75
+ | "bottom"
76
+ | "top-left"
77
+ | "top-right"
78
+ | "bottom-left"
79
+ | "bottom-right";
62
80
 
63
81
  const RESIZE_DIRECTIONS: ResizeDirection[] = [
64
82
  "left",
@@ -126,10 +144,10 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
126
144
  "movable",
127
145
  "float",
128
146
  "fill",
129
- "widthPx",
130
- "heightPx",
131
- "minWidthPx",
132
- "minHeightPx",
147
+ "width",
148
+ "height",
149
+ "minWidth",
150
+ "minHeight",
133
151
  "position",
134
152
  "headerStyle",
135
153
  "headerAction",
@@ -171,7 +189,8 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
171
189
  let wrapperRef: HTMLDivElement | undefined;
172
190
 
173
191
  const closeOnEscape = () => local.closeOnEscape ?? dialogDefaults?.().closeOnEscape ?? true;
174
- const closeOnBackdrop = () => local.closeOnBackdrop ?? dialogDefaults?.().closeOnBackdrop ?? false;
192
+ const closeOnBackdrop = () =>
193
+ local.closeOnBackdrop ?? dialogDefaults?.().closeOnBackdrop ?? false;
175
194
 
176
195
  // Escape 키 감지
177
196
  createEffect(() => {
@@ -238,8 +257,6 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
238
257
  if ((event.target as HTMLElement).closest("button")) return;
239
258
 
240
259
  const target = event.currentTarget as HTMLElement;
241
- target.setPointerCapture(event.pointerId);
242
-
243
260
  const dialogEl = dialogRef;
244
261
  const wrapperEl = wrapperRef;
245
262
 
@@ -248,42 +265,37 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
248
265
  const startTop = dialogEl.offsetTop;
249
266
  const startLeft = dialogEl.offsetLeft;
250
267
 
251
- const doDrag = (e: PointerEvent): void => {
252
- e.stopPropagation();
253
- e.preventDefault();
254
-
255
- dialogEl.style.position = "absolute";
256
- dialogEl.style.left = `${startLeft + e.clientX - startX}px`;
257
- dialogEl.style.top = `${startTop + e.clientY - startY}px`;
258
- dialogEl.style.right = "auto";
259
- dialogEl.style.bottom = "auto";
260
- dialogEl.style.margin = "0";
261
-
262
- // 화면 밖 방지
263
- if (dialogEl.offsetLeft > wrapperEl.offsetWidth - 100) {
264
- dialogEl.style.left = wrapperEl.offsetWidth - 100 + "px";
265
- }
266
- if (dialogEl.offsetTop > wrapperEl.offsetHeight - 100) {
267
- dialogEl.style.top = wrapperEl.offsetHeight - 100 + "px";
268
- }
269
- if (dialogEl.offsetTop < 0) {
270
- dialogEl.style.top = "0";
271
- }
272
- if (dialogEl.offsetLeft < -dialogEl.offsetWidth + 100) {
273
- dialogEl.style.left = -dialogEl.offsetWidth + 100 + "px";
274
- }
275
- };
276
-
277
- const stopDrag = (e: PointerEvent): void => {
278
- e.stopPropagation();
279
- e.preventDefault();
280
-
281
- target.removeEventListener("pointermove", doDrag);
282
- target.removeEventListener("pointerup", stopDrag);
283
- };
284
-
285
- target.addEventListener("pointermove", doDrag);
286
- target.addEventListener("pointerup", stopDrag);
268
+ createPointerDrag(target, event.pointerId, {
269
+ onMove(e) {
270
+ e.stopPropagation();
271
+ e.preventDefault();
272
+
273
+ dialogEl.style.position = "absolute";
274
+ dialogEl.style.left = `${startLeft + e.clientX - startX}px`;
275
+ dialogEl.style.top = `${startTop + e.clientY - startY}px`;
276
+ dialogEl.style.right = "auto";
277
+ dialogEl.style.bottom = "auto";
278
+ dialogEl.style.margin = "0";
279
+
280
+ // 화면 방지
281
+ if (dialogEl.offsetLeft > wrapperEl.offsetWidth - 100) {
282
+ dialogEl.style.left = wrapperEl.offsetWidth - 100 + "px";
283
+ }
284
+ if (dialogEl.offsetTop > wrapperEl.offsetHeight - 100) {
285
+ dialogEl.style.top = wrapperEl.offsetHeight - 100 + "px";
286
+ }
287
+ if (dialogEl.offsetTop < 0) {
288
+ dialogEl.style.top = "0";
289
+ }
290
+ if (dialogEl.offsetLeft < -dialogEl.offsetWidth + 100) {
291
+ dialogEl.style.left = -dialogEl.offsetWidth + 100 + "px";
292
+ }
293
+ },
294
+ onEnd(e) {
295
+ e.stopPropagation();
296
+ e.preventDefault();
297
+ },
298
+ });
287
299
  };
288
300
 
289
301
  // 리사이즈
@@ -292,8 +304,6 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
292
304
  if (!dialogRef) return;
293
305
 
294
306
  const target = event.currentTarget as HTMLElement;
295
- target.setPointerCapture(event.pointerId);
296
-
297
307
  const dialogEl = dialogRef;
298
308
 
299
309
  const startX = event.clientX;
@@ -303,47 +313,42 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
303
313
  const startTop = dialogEl.offsetTop;
304
314
  const startLeft = dialogEl.offsetLeft;
305
315
 
306
- const doDrag = (e: PointerEvent): void => {
307
- e.stopPropagation();
308
- e.preventDefault();
309
-
310
- if (direction === "top" || direction === "top-right" || direction === "top-left") {
311
- if (dialogEl.style.position === "absolute") {
312
- dialogEl.style.top = startTop + (e.clientY - startY) + "px";
313
- dialogEl.style.bottom = "auto";
316
+ createPointerDrag(target, event.pointerId, {
317
+ onMove(e) {
318
+ e.stopPropagation();
319
+ e.preventDefault();
320
+
321
+ if (direction === "top" || direction === "top-right" || direction === "top-left") {
322
+ if (dialogEl.style.position === "absolute") {
323
+ dialogEl.style.top = startTop + (e.clientY - startY) + "px";
324
+ dialogEl.style.bottom = "auto";
325
+ }
326
+ dialogEl.style.height = `${Math.max(startHeight - (e.clientY - startY), local.minHeight ?? 0)}px`;
314
327
  }
315
- dialogEl.style.height = `${Math.max(startHeight - (e.clientY - startY), local.minHeightPx ?? 0)}px`;
316
- }
317
- if (direction === "bottom" || direction === "bottom-right" || direction === "bottom-left") {
318
- dialogEl.style.height = `${Math.max(startHeight + e.clientY - startY, local.minHeightPx ?? 0)}px`;
319
- }
320
- if (direction === "right" || direction === "bottom-right" || direction === "top-right") {
321
- dialogEl.style.width = `${Math.max(
322
- startWidth + (e.clientX - startX) * (dialogEl.style.position === "absolute" ? 1 : 2),
323
- local.minWidthPx ?? 0,
324
- )}px`;
325
- }
326
- if (direction === "left" || direction === "bottom-left" || direction === "top-left") {
327
- if (dialogEl.style.position === "absolute") {
328
- dialogEl.style.left = startLeft + (e.clientX - startX) + "px";
328
+ if (direction === "bottom" || direction === "bottom-right" || direction === "bottom-left") {
329
+ dialogEl.style.height = `${Math.max(startHeight + e.clientY - startY, local.minHeight ?? 0)}px`;
329
330
  }
330
- dialogEl.style.width = `${Math.max(
331
- startWidth - (e.clientX - startX) * (dialogEl.style.position === "absolute" ? 1 : 2),
332
- local.minWidthPx ?? 0,
333
- )}px`;
334
- }
335
- };
336
-
337
- const stopDrag = (e: PointerEvent): void => {
338
- e.stopPropagation();
339
- e.preventDefault();
340
-
341
- target.removeEventListener("pointermove", doDrag);
342
- target.removeEventListener("pointerup", stopDrag);
343
- };
344
-
345
- target.addEventListener("pointermove", doDrag);
346
- target.addEventListener("pointerup", stopDrag);
331
+ if (direction === "right" || direction === "bottom-right" || direction === "top-right") {
332
+ dialogEl.style.width = `${Math.max(
333
+ startWidth + (e.clientX - startX) * (dialogEl.style.position === "absolute" ? 1 : 2),
334
+ local.minWidth ?? 0,
335
+ )}px`;
336
+ }
337
+ if (direction === "left" || direction === "bottom-left" || direction === "top-left") {
338
+ if (dialogEl.style.position === "absolute") {
339
+ dialogEl.style.left = startLeft + (e.clientX - startX) + "px";
340
+ }
341
+ dialogEl.style.width = `${Math.max(
342
+ startWidth - (e.clientX - startX) * (dialogEl.style.position === "absolute" ? 1 : 2),
343
+ local.minWidth ?? 0,
344
+ )}px`;
345
+ }
346
+ },
347
+ onEnd(e) {
348
+ e.stopPropagation();
349
+ e.preventDefault();
350
+ },
351
+ });
347
352
  };
348
353
 
349
354
  // dialog 인라인 스타일 계산
@@ -354,19 +359,19 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
354
359
  style.width = "100%";
355
360
  style.height = "100%";
356
361
  } else {
357
- if (local.widthPx !== undefined) {
358
- style.width = `${local.widthPx}px`;
362
+ if (local.width !== undefined) {
363
+ style.width = `${local.width}px`;
359
364
  }
360
- if (local.heightPx !== undefined) {
361
- style.height = `${local.heightPx}px`;
365
+ if (local.height !== undefined) {
366
+ style.height = `${local.height}px`;
362
367
  }
363
368
  }
364
369
 
365
- if (local.minWidthPx !== undefined) {
366
- style["min-width"] = `${local.minWidthPx}px`;
370
+ if (local.minWidth !== undefined) {
371
+ style["min-width"] = `${local.minWidth}px`;
367
372
  }
368
- if (local.minHeightPx !== undefined) {
369
- style["min-height"] = `${local.minHeightPx}px`;
373
+ if (local.minHeight !== undefined) {
374
+ style["min-height"] = `${local.minHeight}px`;
370
375
  }
371
376
 
372
377
  // position 모드
@@ -423,7 +428,9 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
423
428
  "mx-auto",
424
429
  "w-fit min-w-[200px]",
425
430
  "bg-white dark:bg-base-800",
426
- local.float ? clsx("shadow-md dark:shadow-black/30", "border", borderSubtle) : "shadow-2xl dark:shadow-black/40",
431
+ local.float
432
+ ? clsx("shadow-md dark:shadow-black/30", "border", borderSubtle)
433
+ : "shadow-2xl dark:shadow-black/40",
427
434
  local.fill ? "rounded-none border-none" : "rounded-lg",
428
435
  "overflow-hidden",
429
436
  "flex flex-col",
@@ -470,10 +477,14 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
470
477
  <div
471
478
  data-modal-header
472
479
  class={clsx(headerClass(), "touch-none")}
473
- style={typeof local.headerStyle === "string" ? mergeStyles(local.headerStyle) : local.headerStyle}
480
+ style={
481
+ typeof local.headerStyle === "string"
482
+ ? mergeStyles(local.headerStyle)
483
+ : local.headerStyle
484
+ }
474
485
  onPointerDown={handleHeaderPointerDown}
475
486
  >
476
- <h5 class={clsx("flex-1", "px-4 py-2", "text-sm font-semibold")}>{local.title}</h5>
487
+ <h5 class={clsx("flex-1", "px-4 py-2", "text-sm font-bold")}>{local.title}</h5>
477
488
  {local.headerAction}
478
489
  <Show when={local.closable ?? true}>
479
490
  <button
@@ -506,7 +517,12 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
506
517
  {(direction) => (
507
518
  <div
508
519
  data-resize-bar={direction}
509
- class={clsx("absolute", "touch-none", resizePositionMap[direction], resizeCursorMap[direction])}
520
+ class={clsx(
521
+ "absolute",
522
+ "touch-none",
523
+ resizePositionMap[direction],
524
+ resizeCursorMap[direction],
525
+ )}
510
526
  onPointerDown={(e) => handleResizeBarPointerDown(e, direction)}
511
527
  />
512
528
  )}
@@ -17,17 +17,20 @@ export interface DialogShowOptions {
17
17
  movable?: boolean;
18
18
  float?: boolean;
19
19
  fill?: boolean;
20
- widthPx?: number;
21
- heightPx?: number;
22
- minWidthPx?: number;
23
- minHeightPx?: number;
20
+ width?: number;
21
+ height?: number;
22
+ minWidth?: number;
23
+ minHeight?: number;
24
24
  position?: "bottom-right" | "top-right";
25
25
  headerStyle?: JSX.CSSProperties | string;
26
26
  canDeactivate?: () => boolean;
27
27
  }
28
28
 
29
29
  export interface DialogContextValue {
30
- show<T = undefined>(factory: () => JSX.Element, options: DialogShowOptions): Promise<T | undefined>;
30
+ show<T = undefined>(
31
+ factory: () => JSX.Element,
32
+ options: DialogShowOptions,
33
+ ): Promise<T | undefined>;
31
34
  }
32
35
 
33
36
  export const DialogContext = createContext<DialogContextValue>();
@@ -1,4 +1,11 @@
1
- import { type Accessor, type ParentComponent, createSignal, For, splitProps, type JSX } from "solid-js";
1
+ import {
2
+ type Accessor,
3
+ type ParentComponent,
4
+ createSignal,
5
+ For,
6
+ splitProps,
7
+ type JSX,
8
+ } from "solid-js";
2
9
  import {
3
10
  DialogContext,
4
11
  DialogDefaultsContext,
@@ -46,7 +53,10 @@ export const DialogProvider: ParentComponent<DialogProviderProps> = (props) => {
46
53
 
47
54
  const [entries, setEntries] = createSignal<DialogEntry[]>([]);
48
55
 
49
- const show = <T,>(factory: () => JSX.Element, options: DialogShowOptions): Promise<T | undefined> => {
56
+ const show = <T,>(
57
+ factory: () => JSX.Element,
58
+ options: DialogShowOptions,
59
+ ): Promise<T | undefined> => {
50
60
  return new Promise<T | undefined>((resolve) => {
51
61
  const id = String(nextId++);
52
62
  const [open, setOpen] = createSignal(true);
@@ -114,15 +124,17 @@ export const DialogProvider: ParentComponent<DialogProviderProps> = (props) => {
114
124
  movable={entry.options.movable}
115
125
  float={entry.options.float}
116
126
  fill={entry.options.fill}
117
- widthPx={entry.options.widthPx}
118
- heightPx={entry.options.heightPx}
119
- minWidthPx={entry.options.minWidthPx}
120
- minHeightPx={entry.options.minHeightPx}
127
+ width={entry.options.width}
128
+ height={entry.options.height}
129
+ minWidth={entry.options.minWidth}
130
+ minHeight={entry.options.minHeight}
121
131
  position={entry.options.position}
122
132
  headerStyle={entry.options.headerStyle}
123
133
  canDeactivate={entry.options.canDeactivate}
124
134
  >
125
- <DialogInstanceContext.Provider value={instance}>{entry.factory()}</DialogInstanceContext.Provider>
135
+ <DialogInstanceContext.Provider value={instance}>
136
+ {entry.factory()}
137
+ </DialogInstanceContext.Provider>
126
138
  </Dialog>
127
139
  );
128
140
  }}
@@ -1,4 +1,12 @@
1
- import { type JSX, type ParentComponent, createSignal, createEffect, onCleanup, Show, splitProps } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ createSignal,
5
+ createEffect,
6
+ onCleanup,
7
+ Show,
8
+ splitProps,
9
+ } from "solid-js";
2
10
  import { createResizeObserver } from "@solid-primitives/resize-observer";
3
11
  import { createMountTransition } from "../../hooks/createMountTransition";
4
12
  import { Portal } from "solid-js/web";
@@ -261,7 +269,9 @@ export const Dropdown: ParentComponent<DropdownProps> = (props) => {
261
269
 
262
270
  const dir = direction();
263
271
  const focusables = [
264
- ...popup.querySelectorAll<HTMLElement>('[tabindex]:not([tabindex="-1"]), button, [data-list-item]'),
272
+ ...popup.querySelectorAll<HTMLElement>(
273
+ '[tabindex]:not([tabindex="-1"]), button, [data-list-item]',
274
+ ),
265
275
  ];
266
276
 
267
277
  if (dir === "down") {
@@ -40,11 +40,18 @@ function TabsTabInner(props: TabsTabProps) {
40
40
  }
41
41
  };
42
42
 
43
- const baseClass = clsx("relative cursor-pointer select-none font-medium", "transition-colors", "-mb-px");
43
+ const baseClass = clsx(
44
+ "relative cursor-pointer select-none font-medium",
45
+ "transition-colors",
46
+ "-mb-px",
47
+ );
44
48
 
45
49
  const stateClass = () =>
46
50
  isSelected()
47
- ? clsx("border-b-2 border-primary-500 text-primary-600", "dark:border-primary-400 dark:text-primary-400")
51
+ ? clsx(
52
+ "border-b-2 border-primary-500 text-primary-600",
53
+ "dark:border-primary-400 dark:text-primary-400",
54
+ )
48
55
  : clsx(
49
56
  "border-b-2 border-transparent",
50
57
  "text-base-500 hover:border-base-300 hover:text-base-700",
@@ -60,7 +67,13 @@ function TabsTabInner(props: TabsTabProps) {
60
67
  aria-selected={isSelected()}
61
68
  aria-disabled={props.disabled ?? false}
62
69
  tabIndex={props.disabled ? -1 : 0}
63
- class={twMerge(baseClass, sizeClasses(), stateClass(), props.disabled && disabledClass, props.class)}
70
+ class={twMerge(
71
+ baseClass,
72
+ sizeClasses(),
73
+ stateClass(),
74
+ props.disabled && disabledClass,
75
+ props.class,
76
+ )}
64
77
  onClick={() => {
65
78
  if (!props.disabled) {
66
79
  ctx.select(props.value);
@@ -97,7 +110,14 @@ interface TabsComponent {
97
110
  }
98
111
 
99
112
  const TabsInner: ParentComponent<TabsProps> = (props) => {
100
- const [local, rest] = splitProps(props, ["value", "onValueChange", "size", "class", "style", "children"]);
113
+ const [local, rest] = splitProps(props, [
114
+ "value",
115
+ "onValueChange",
116
+ "size",
117
+ "class",
118
+ "style",
119
+ "children",
120
+ ]);
101
121
 
102
122
  const [value, setValue] = createControllableSignal<string | undefined>({
103
123
  value: () => local.value,
@@ -112,7 +132,11 @@ const TabsInner: ParentComponent<TabsProps> = (props) => {
112
132
  size: () => local.size,
113
133
  };
114
134
 
115
- const baseClass = clsx("inline-flex items-center gap-1", "border-b border-base-200", "dark:border-base-700");
135
+ const baseClass = clsx(
136
+ "inline-flex items-center gap-1",
137
+ "border-b border-base-200",
138
+ "dark:border-base-700",
139
+ );
116
140
 
117
141
  return (
118
142
  <TabsContext.Provider value={contextValue}>
@@ -11,10 +11,9 @@ export interface AlertProps extends JSX.HTMLAttributes<HTMLDivElement> {
11
11
 
12
12
  const baseClass = clsx("block", "p-3", "rounded");
13
13
 
14
- const themeClasses = Object.fromEntries(Object.entries(themeTokens).map(([theme, t]) => [theme, t.light])) as Record<
15
- AlertTheme,
16
- string
17
- >;
14
+ const themeClasses = Object.fromEntries(
15
+ Object.entries(themeTokens).map(([theme, t]) => [theme, t.light]),
16
+ ) as Record<AlertTheme, string>;
18
17
 
19
18
  export const Alert: ParentComponent<AlertProps> = (props) => {
20
19
  const [local, rest] = splitProps(props, ["children", "class", "theme"]);
@@ -1,7 +1,6 @@
1
1
  import { type JSX, type ParentComponent, splitProps } from "solid-js";
2
2
  import clsx from "clsx";
3
3
  import { twMerge } from "tailwind-merge";
4
- import "./Card.css";
5
4
 
6
5
  export interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {}
7
6
 
@@ -12,7 +11,7 @@ const baseClass = clsx(
12
11
  "shadow focus-within:shadow-md hover:shadow-md",
13
12
  "dark:shadow-black/20 dark:focus-within:shadow-black/30 dark:hover:shadow-black/30",
14
13
  "transition-shadow duration-300",
15
- "animate-card-in",
14
+ "animate-fade-in",
16
15
  );
17
16
 
18
17
  export const Card: ParentComponent<CardProps> = (props) => {
@@ -1,4 +1,11 @@
1
- import { type Component, createEffect, createSignal, onCleanup, splitProps, type JSX } from "solid-js";
1
+ import {
2
+ type Component,
3
+ createEffect,
4
+ createSignal,
5
+ onCleanup,
6
+ splitProps,
7
+ type JSX,
8
+ } from "solid-js";
2
9
  import { createResizeObserver } from "@solid-primitives/resize-observer";
3
10
  import type * as echartsType from "echarts";
4
11
  import clsx from "clsx";
@@ -6,13 +13,13 @@ import { twMerge } from "tailwind-merge";
6
13
 
7
14
  export interface EchartsProps extends JSX.HTMLAttributes<HTMLDivElement> {
8
15
  option: echartsType.EChartsOption;
9
- loading?: boolean;
16
+ busy?: boolean;
10
17
  }
11
18
 
12
19
  const baseClass = clsx("block", "size-full");
13
20
 
14
21
  export const Echarts: Component<EchartsProps> = (props) => {
15
- const [local, rest] = splitProps(props, ["option", "loading", "class"]);
22
+ const [local, rest] = splitProps(props, ["option", "busy", "class"]);
16
23
  let containerRef!: HTMLDivElement;
17
24
  let chart: echartsType.EChartsType | undefined;
18
25
  const [ready, setReady] = createSignal(false);
@@ -33,10 +40,10 @@ export const Echarts: Component<EchartsProps> = (props) => {
33
40
  chart!.setOption(local.option);
34
41
  });
35
42
 
36
- // loading 상태 변경 감지
43
+ // busy 상태 변경 감지
37
44
  createEffect(() => {
38
45
  if (!ready()) return;
39
- if (local.loading) {
46
+ if (local.busy) {
40
47
  chart!.showLoading();
41
48
  } else {
42
49
  chart!.hideLoading();