@simplysm/solid 13.0.69 → 13.0.70

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 (477) hide show
  1. package/README.md +168 -195
  2. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  3. package/dist/components/data/calendar/Calendar.js +15 -2
  4. package/dist/components/data/calendar/Calendar.js.map +2 -2
  5. package/dist/components/data/kanban/KanbanContext.js +2 -2
  6. package/dist/components/data/kanban/KanbanContext.js.map +1 -1
  7. package/dist/components/data/list/List.d.ts +8 -8
  8. package/dist/components/data/list/ListContext.d.ts +1 -1
  9. package/dist/components/data/list/ListItem.d.ts +15 -15
  10. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  11. package/dist/components/data/sheet/DataSheet.js +6 -4
  12. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  13. package/dist/components/data/sheet/DataSheetConfigDialog.js +8 -8
  14. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
  15. package/dist/components/data/sheet/types.d.ts +4 -4
  16. package/dist/components/data/sheet/types.d.ts.map +1 -1
  17. package/dist/components/disclosure/Collapse.d.ts +4 -4
  18. package/dist/components/disclosure/Dialog.d.ts +24 -24
  19. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  20. package/dist/components/disclosure/Dialog.js +7 -2
  21. package/dist/components/disclosure/Dialog.js.map +2 -2
  22. package/dist/components/disclosure/DialogContext.d.ts +25 -25
  23. package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
  24. package/dist/components/disclosure/DialogContext.js +1 -1
  25. package/dist/components/disclosure/DialogContext.js.map +1 -1
  26. package/dist/components/disclosure/DialogInstanceContext.d.ts +7 -7
  27. package/dist/components/disclosure/DialogInstanceContext.d.ts.map +1 -1
  28. package/dist/components/disclosure/DialogProvider.d.ts +3 -3
  29. package/dist/components/disclosure/Dropdown.d.ts +24 -24
  30. package/dist/components/disclosure/Tabs.js +1 -1
  31. package/dist/components/disclosure/Tabs.js.map +1 -1
  32. package/dist/components/disclosure/dialogZIndex.d.ts +7 -7
  33. package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
  34. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  35. package/dist/components/features/crud-detail/CrudDetail.js +19 -16
  36. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  37. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  38. package/dist/components/features/crud-sheet/CrudSheet.js +34 -28
  39. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  40. package/dist/components/features/data-select-button/DataSelectButton.d.ts +14 -14
  41. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  42. package/dist/components/features/data-select-button/DataSelectButton.js +27 -9
  43. package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
  44. package/dist/components/features/permission-table/PermissionTable.d.ts +3 -3
  45. package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
  46. package/dist/components/features/permission-table/PermissionTable.js +6 -2
  47. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  48. package/dist/components/features/shared-data/SharedDataSelect.d.ts +12 -12
  49. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  50. package/dist/components/features/shared-data/SharedDataSelect.js +8 -2
  51. package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
  52. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +10 -10
  53. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  54. package/dist/components/features/shared-data/SharedDataSelectList.d.ts +23 -13
  55. package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
  56. package/dist/components/features/shared-data/SharedDataSelectList.js +219 -58
  57. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  58. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +15 -0
  59. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +1 -0
  60. package/dist/components/features/shared-data/SharedDataSelectListContext.js +27 -0
  61. package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +6 -0
  62. package/dist/components/feedback/Progress.d.ts +1 -1
  63. package/dist/components/feedback/Progress.d.ts.map +1 -1
  64. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
  65. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  66. package/dist/components/feedback/busy/BusyContext.d.ts +11 -11
  67. package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -1
  68. package/dist/components/feedback/busy/BusyContext.js +1 -1
  69. package/dist/components/feedback/busy/BusyContext.js.map +1 -1
  70. package/dist/components/feedback/busy/BusyProvider.d.ts +6 -6
  71. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
  72. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  73. package/dist/components/feedback/notification/NotificationBanner.js +7 -3
  74. package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
  75. package/dist/components/feedback/notification/NotificationBell.js +2 -2
  76. package/dist/components/feedback/notification/NotificationBell.js.map +1 -1
  77. package/dist/components/feedback/notification/NotificationContext.d.ts +22 -22
  78. package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
  79. package/dist/components/feedback/notification/NotificationContext.js +1 -1
  80. package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
  81. package/dist/components/feedback/notification/NotificationProvider.d.ts +5 -5
  82. package/dist/components/feedback/notification/NotificationProvider.js +1 -1
  83. package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
  84. package/dist/components/feedback/print/PrintContext.js +1 -1
  85. package/dist/components/feedback/print/PrintContext.js.map +1 -1
  86. package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
  87. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  88. package/dist/components/form-control/ThemeToggle.d.ts +7 -7
  89. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  90. package/dist/components/form-control/ThemeToggle.js +3 -3
  91. package/dist/components/form-control/checkbox/Checkbox.js +1 -1
  92. package/dist/components/form-control/checkbox/CheckboxGroup.js +1 -1
  93. package/dist/components/form-control/checkbox/Radio.js +1 -1
  94. package/dist/components/form-control/checkbox/RadioGroup.js +1 -1
  95. package/dist/components/form-control/color-picker/ColorPicker.d.ts +12 -12
  96. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  97. package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
  98. package/dist/components/form-control/combobox/Combobox.d.ts +22 -22
  99. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  100. package/dist/components/form-control/combobox/Combobox.js +2 -2
  101. package/dist/components/form-control/combobox/ComboboxContext.d.ts +4 -4
  102. package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +1 -1
  103. package/dist/components/form-control/combobox/ComboboxContext.js +1 -1
  104. package/dist/components/form-control/combobox/ComboboxContext.js.map +1 -1
  105. package/dist/components/form-control/combobox/ComboboxItem.d.ts +3 -3
  106. package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +1 -1
  107. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts +14 -14
  108. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
  109. package/dist/components/form-control/date-range-picker/DateRangePicker.js +20 -9
  110. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  111. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  112. package/dist/components/form-control/editor/EditorToolbar.js +65 -20
  113. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  114. package/dist/components/form-control/editor/RichTextEditor.d.ts +6 -6
  115. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  116. package/dist/components/form-control/editor/RichTextEditor.js +1 -1
  117. package/dist/components/form-control/editor/editor.css +5 -5
  118. package/dist/components/form-control/field/DatePicker.d.ts +22 -22
  119. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  120. package/dist/components/form-control/field/DatePicker.js +4 -4
  121. package/dist/components/form-control/field/DatePicker.js.map +1 -1
  122. package/dist/components/form-control/field/DateTimePicker.d.ts +21 -21
  123. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  124. package/dist/components/form-control/field/DateTimePicker.js +4 -4
  125. package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
  126. package/dist/components/form-control/field/FieldPlaceholder.d.ts +1 -1
  127. package/dist/components/form-control/field/FieldPlaceholder.d.ts.map +1 -1
  128. package/dist/components/form-control/field/NumberInput.d.ts +23 -23
  129. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  130. package/dist/components/form-control/field/NumberInput.js +4 -4
  131. package/dist/components/form-control/field/NumberInput.js.map +1 -1
  132. package/dist/components/form-control/field/TextInput.d.ts +25 -25
  133. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  134. package/dist/components/form-control/field/TextInput.js +5 -5
  135. package/dist/components/form-control/field/TextInput.js.map +1 -1
  136. package/dist/components/form-control/field/Textarea.d.ts +19 -19
  137. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  138. package/dist/components/form-control/field/Textarea.js +4 -4
  139. package/dist/components/form-control/field/Textarea.js.map +1 -1
  140. package/dist/components/form-control/field/TimePicker.d.ts +20 -20
  141. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  142. package/dist/components/form-control/field/TimePicker.js +4 -4
  143. package/dist/components/form-control/field/TimePicker.js.map +1 -1
  144. package/dist/components/form-control/numpad/Numpad.d.ts +11 -11
  145. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  146. package/dist/components/form-control/select/Select.d.ts +26 -26
  147. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  148. package/dist/components/form-control/select/Select.js +34 -23
  149. package/dist/components/form-control/select/Select.js.map +2 -2
  150. package/dist/components/form-control/select/SelectContext.d.ts +7 -7
  151. package/dist/components/form-control/select/SelectContext.d.ts.map +1 -1
  152. package/dist/components/form-control/select/SelectContext.js +1 -1
  153. package/dist/components/form-control/select/SelectContext.js.map +1 -1
  154. package/dist/components/form-control/select/SelectItem.d.ts +4 -4
  155. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  156. package/dist/components/form-control/state-preset/StatePreset.js +8 -8
  157. package/dist/components/form-control/state-preset/StatePreset.js.map +1 -1
  158. package/dist/components/layout/FormTable.js +4 -4
  159. package/dist/components/layout/sidebar/Sidebar.d.ts +5 -5
  160. package/dist/components/layout/sidebar/SidebarContainer.d.ts +11 -11
  161. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
  162. package/dist/components/layout/sidebar/SidebarContainer.js +6 -1
  163. package/dist/components/layout/sidebar/SidebarContainer.js.map +2 -2
  164. package/dist/components/layout/sidebar/SidebarContext.d.ts +7 -7
  165. package/dist/components/layout/sidebar/SidebarContext.js +1 -1
  166. package/dist/components/layout/sidebar/SidebarContext.js.map +1 -1
  167. package/dist/components/layout/sidebar/SidebarMenu.d.ts +11 -11
  168. package/dist/components/layout/sidebar/SidebarUser.d.ts +14 -14
  169. package/dist/components/layout/topbar/Topbar.d.ts +6 -6
  170. package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
  171. package/dist/components/layout/topbar/Topbar.js +11 -6
  172. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  173. package/dist/components/layout/topbar/TopbarContainer.d.ts +6 -6
  174. package/dist/components/layout/topbar/TopbarContext.js +2 -2
  175. package/dist/components/layout/topbar/TopbarContext.js.map +1 -1
  176. package/dist/components/layout/topbar/TopbarMenu.d.ts +11 -11
  177. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
  178. package/dist/components/layout/topbar/TopbarMenu.js +5 -1
  179. package/dist/components/layout/topbar/TopbarMenu.js.map +2 -2
  180. package/dist/components/layout/topbar/TopbarUser.d.ts +9 -9
  181. package/dist/directives/ripple.d.ts +5 -5
  182. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  183. package/dist/helpers/createAppStructure.js +4 -1
  184. package/dist/helpers/createAppStructure.js.map +1 -1
  185. package/dist/helpers/createSlotComponent.d.ts +3 -3
  186. package/dist/helpers/mergeStyles.d.ts +8 -8
  187. package/dist/hooks/createControllableSignal.d.ts +10 -10
  188. package/dist/hooks/createControllableStore.d.ts +6 -6
  189. package/dist/hooks/createIMEHandler.d.ts +7 -7
  190. package/dist/hooks/createMountTransition.d.ts +4 -4
  191. package/dist/hooks/createSelectionGroup.js +1 -1
  192. package/dist/hooks/createSelectionGroup.js.map +1 -1
  193. package/dist/hooks/createSlotSignal.d.ts +2 -2
  194. package/dist/hooks/useLocalStorage.d.ts +11 -11
  195. package/dist/hooks/useLogger.d.ts +1 -1
  196. package/dist/hooks/useLogger.d.ts.map +1 -1
  197. package/dist/hooks/useLogger.js +1 -1
  198. package/dist/hooks/useLogger.js.map +1 -1
  199. package/dist/hooks/useRouterLink.d.ts +10 -10
  200. package/dist/hooks/useRouterLink.d.ts.map +1 -1
  201. package/dist/index.d.ts +2 -1
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +2 -1
  204. package/dist/index.js.map +1 -1
  205. package/dist/providers/ClipboardProvider.d.ts +5 -5
  206. package/dist/providers/ConfigContext.d.ts +6 -6
  207. package/dist/providers/ConfigContext.js +2 -2
  208. package/dist/providers/ConfigContext.js.map +1 -1
  209. package/dist/providers/ErrorLoggerProvider.d.ts +3 -3
  210. package/dist/providers/LoggerContext.d.ts +13 -13
  211. package/dist/providers/PwaUpdateProvider.d.ts +4 -4
  212. package/dist/providers/PwaUpdateProvider.js +2 -2
  213. package/dist/providers/PwaUpdateProvider.js.map +1 -1
  214. package/dist/providers/ServiceClientContext.d.ts +8 -8
  215. package/dist/providers/ServiceClientContext.d.ts.map +1 -1
  216. package/dist/providers/ServiceClientContext.js +1 -1
  217. package/dist/providers/ServiceClientContext.js.map +1 -1
  218. package/dist/providers/ServiceClientProvider.d.ts +6 -6
  219. package/dist/providers/ServiceClientProvider.js +7 -7
  220. package/dist/providers/ServiceClientProvider.js.map +1 -1
  221. package/dist/providers/SyncStorageContext.d.ts +14 -14
  222. package/dist/providers/SystemProvider.d.ts.map +1 -1
  223. package/dist/providers/SystemProvider.js +21 -16
  224. package/dist/providers/SystemProvider.js.map +2 -2
  225. package/dist/providers/ThemeContext.d.ts +20 -20
  226. package/dist/providers/ThemeContext.d.ts.map +1 -1
  227. package/dist/providers/ThemeContext.js +1 -1
  228. package/dist/providers/ThemeContext.js.map +1 -1
  229. package/dist/providers/i18n/I18nContext.d.ts +44 -0
  230. package/dist/providers/i18n/I18nContext.d.ts.map +1 -0
  231. package/dist/providers/i18n/I18nContext.js +73 -0
  232. package/dist/providers/i18n/I18nContext.js.map +6 -0
  233. package/dist/providers/i18n/I18nContext.types.d.ts +28 -0
  234. package/dist/providers/i18n/I18nContext.types.d.ts.map +1 -0
  235. package/dist/providers/i18n/I18nContext.types.js +1 -0
  236. package/dist/providers/i18n/I18nContext.types.js.map +6 -0
  237. package/dist/providers/i18n/i18nUtils.d.ts +18 -0
  238. package/dist/providers/i18n/i18nUtils.d.ts.map +1 -0
  239. package/dist/providers/i18n/i18nUtils.js +25 -0
  240. package/dist/providers/i18n/i18nUtils.js.map +6 -0
  241. package/dist/providers/i18n/locales/en.d.ts +163 -0
  242. package/dist/providers/i18n/locales/en.d.ts.map +1 -0
  243. package/dist/providers/i18n/locales/en.js +165 -0
  244. package/dist/providers/i18n/locales/en.js.map +6 -0
  245. package/dist/providers/i18n/locales/ko.d.ts +163 -0
  246. package/dist/providers/i18n/locales/ko.d.ts.map +1 -0
  247. package/dist/providers/i18n/locales/ko.js +165 -0
  248. package/dist/providers/i18n/locales/ko.js.map +6 -0
  249. package/dist/providers/shared-data/SharedDataChangeEvent.d.ts +4 -4
  250. package/dist/providers/shared-data/SharedDataContext.d.ts +28 -28
  251. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  252. package/dist/providers/shared-data/SharedDataContext.js +1 -1
  253. package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
  254. package/dist/providers/shared-data/SharedDataProvider.d.ts +9 -9
  255. package/dist/providers/shared-data/SharedDataProvider.js +4 -4
  256. package/dist/providers/shared-data/SharedDataProvider.js.map +1 -1
  257. package/package.json +8 -8
  258. package/src/components/data/calendar/Calendar.tsx +10 -4
  259. package/src/components/data/kanban/Kanban.tsx +14 -14
  260. package/src/components/data/kanban/KanbanContext.ts +3 -3
  261. package/src/components/data/list/List.tsx +10 -10
  262. package/src/components/data/list/ListContext.ts +1 -1
  263. package/src/components/data/list/ListItem.styles.ts +8 -8
  264. package/src/components/data/list/ListItem.tsx +15 -15
  265. package/src/components/data/sheet/DataSheet.styles.ts +22 -22
  266. package/src/components/data/sheet/DataSheet.tsx +52 -48
  267. package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
  268. package/src/components/data/sheet/DataSheetConfigDialog.tsx +9 -9
  269. package/src/components/data/sheet/sheetUtils.ts +7 -7
  270. package/src/components/data/sheet/types.ts +16 -16
  271. package/src/components/disclosure/Collapse.tsx +11 -11
  272. package/src/components/disclosure/Dialog.tsx +60 -57
  273. package/src/components/disclosure/DialogContext.ts +26 -26
  274. package/src/components/disclosure/DialogInstanceContext.ts +7 -7
  275. package/src/components/disclosure/DialogProvider.tsx +5 -5
  276. package/src/components/disclosure/Dropdown.tsx +64 -64
  277. package/src/components/disclosure/Tabs.tsx +1 -1
  278. package/src/components/disclosure/dialogZIndex.ts +11 -11
  279. package/src/components/display/Echarts.tsx +4 -4
  280. package/src/components/features/address/AddressSearch.tsx +2 -2
  281. package/src/components/features/crud-detail/CrudDetail.tsx +18 -16
  282. package/src/components/features/crud-detail/CrudDetailAfter.tsx +1 -1
  283. package/src/components/features/crud-detail/CrudDetailBefore.tsx +1 -1
  284. package/src/components/features/crud-detail/CrudDetailTools.tsx +1 -1
  285. package/src/components/features/crud-sheet/CrudSheet.tsx +39 -37
  286. package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
  287. package/src/components/features/crud-sheet/CrudSheetFilter.tsx +1 -1
  288. package/src/components/features/crud-sheet/CrudSheetHeader.tsx +1 -1
  289. package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
  290. package/src/components/features/data-select-button/DataSelectButton.tsx +34 -32
  291. package/src/components/features/permission-table/PermissionTable.tsx +22 -19
  292. package/src/components/features/shared-data/SharedDataSelect.tsx +22 -20
  293. package/src/components/features/shared-data/SharedDataSelectButton.tsx +10 -10
  294. package/src/components/features/shared-data/SharedDataSelectList.tsx +245 -48
  295. package/src/components/features/shared-data/SharedDataSelectListContext.ts +39 -0
  296. package/src/components/feedback/Progress.tsx +1 -1
  297. package/src/components/feedback/busy/BusyContainer.tsx +6 -6
  298. package/src/components/feedback/busy/BusyContext.ts +12 -12
  299. package/src/components/feedback/busy/BusyProvider.tsx +6 -6
  300. package/src/components/feedback/notification/NotificationBanner.tsx +3 -1
  301. package/src/components/feedback/notification/NotificationBell.tsx +4 -4
  302. package/src/components/feedback/notification/NotificationContext.ts +28 -28
  303. package/src/components/feedback/notification/NotificationProvider.tsx +9 -9
  304. package/src/components/feedback/print/PrintContext.ts +1 -1
  305. package/src/components/form-control/Button.tsx +1 -1
  306. package/src/components/form-control/DropdownTrigger.styles.ts +1 -1
  307. package/src/components/form-control/Invalid.tsx +5 -5
  308. package/src/components/form-control/ThemeToggle.tsx +10 -10
  309. package/src/components/form-control/checkbox/Checkbox.styles.ts +8 -8
  310. package/src/components/form-control/checkbox/Checkbox.tsx +2 -2
  311. package/src/components/form-control/checkbox/CheckboxGroup.tsx +1 -1
  312. package/src/components/form-control/checkbox/Radio.tsx +2 -2
  313. package/src/components/form-control/checkbox/RadioGroup.tsx +1 -1
  314. package/src/components/form-control/color-picker/ColorPicker.tsx +17 -17
  315. package/src/components/form-control/combobox/Combobox.tsx +55 -55
  316. package/src/components/form-control/combobox/ComboboxContext.ts +5 -5
  317. package/src/components/form-control/combobox/ComboboxItem.tsx +3 -3
  318. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +40 -26
  319. package/src/components/form-control/editor/EditorToolbar.tsx +52 -50
  320. package/src/components/form-control/editor/RichTextEditor.tsx +16 -16
  321. package/src/components/form-control/editor/editor.css +5 -5
  322. package/src/components/form-control/field/DatePicker.tsx +39 -39
  323. package/src/components/form-control/field/DateTimePicker.tsx +38 -38
  324. package/src/components/form-control/field/Field.styles.ts +11 -11
  325. package/src/components/form-control/field/FieldPlaceholder.tsx +1 -1
  326. package/src/components/form-control/field/NumberInput.tsx +63 -63
  327. package/src/components/form-control/field/TextInput.tsx +48 -48
  328. package/src/components/form-control/field/Textarea.tsx +32 -32
  329. package/src/components/form-control/field/TimePicker.tsx +37 -37
  330. package/src/components/form-control/numpad/Numpad.tsx +26 -26
  331. package/src/components/form-control/select/Select.tsx +84 -84
  332. package/src/components/form-control/select/SelectContext.ts +8 -8
  333. package/src/components/form-control/select/SelectItem.tsx +5 -5
  334. package/src/components/form-control/state-preset/StatePreset.tsx +13 -13
  335. package/src/components/layout/FormTable.tsx +4 -4
  336. package/src/components/layout/sidebar/Sidebar.tsx +8 -8
  337. package/src/components/layout/sidebar/SidebarContainer.tsx +19 -17
  338. package/src/components/layout/sidebar/SidebarContext.ts +8 -8
  339. package/src/components/layout/sidebar/SidebarMenu.tsx +19 -19
  340. package/src/components/layout/sidebar/SidebarUser.tsx +14 -14
  341. package/src/components/layout/topbar/Topbar.tsx +15 -13
  342. package/src/components/layout/topbar/TopbarContainer.tsx +6 -6
  343. package/src/components/layout/topbar/TopbarContext.ts +2 -2
  344. package/src/components/layout/topbar/TopbarMenu.tsx +18 -16
  345. package/src/components/layout/topbar/TopbarUser.tsx +9 -9
  346. package/src/directives/ripple.ts +8 -8
  347. package/src/helpers/createAppStructure.ts +12 -6
  348. package/src/helpers/createSlotComponent.ts +4 -4
  349. package/src/helpers/mergeStyles.ts +11 -11
  350. package/src/hooks/createControllableSignal.ts +11 -11
  351. package/src/hooks/createControllableStore.ts +8 -8
  352. package/src/hooks/createIMEHandler.ts +7 -7
  353. package/src/hooks/createMountTransition.ts +4 -4
  354. package/src/hooks/createSelectionGroup.tsx +1 -1
  355. package/src/hooks/createSlotSignal.ts +2 -2
  356. package/src/hooks/useLocalStorage.ts +13 -13
  357. package/src/hooks/useLogger.ts +2 -2
  358. package/src/hooks/useRouterLink.ts +15 -15
  359. package/src/index.ts +4 -3
  360. package/src/providers/ClipboardProvider.tsx +19 -19
  361. package/src/providers/ConfigContext.tsx +8 -8
  362. package/src/providers/ErrorLoggerProvider.tsx +3 -3
  363. package/src/providers/LoggerContext.tsx +13 -13
  364. package/src/providers/PwaUpdateProvider.tsx +6 -6
  365. package/src/providers/ServiceClientContext.ts +9 -9
  366. package/src/providers/ServiceClientProvider.tsx +15 -15
  367. package/src/providers/SyncStorageContext.tsx +15 -15
  368. package/src/providers/SystemProvider.tsx +15 -12
  369. package/src/providers/ThemeContext.tsx +26 -26
  370. package/src/providers/i18n/I18nContext.tsx +129 -0
  371. package/src/providers/i18n/I18nContext.types.ts +30 -0
  372. package/src/providers/i18n/i18nUtils.ts +38 -0
  373. package/src/providers/i18n/locales/en.ts +161 -0
  374. package/src/providers/i18n/locales/ko.ts +161 -0
  375. package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -4
  376. package/src/providers/shared-data/SharedDataContext.ts +29 -29
  377. package/src/providers/shared-data/SharedDataProvider.tsx +21 -21
  378. package/src/styles/patterns.styles.ts +6 -6
  379. package/src/styles/tokens.styles.ts +5 -5
  380. package/tailwind.config.ts +1 -1
  381. package/tailwind.css +4 -4
  382. package/tests/components/data/List.spec.tsx +689 -0
  383. package/tests/components/data/Pagination.spec.tsx +336 -0
  384. package/tests/components/data/Table.spec.tsx +55 -0
  385. package/tests/components/data/kanban/Kanban.selection.spec.tsx +213 -0
  386. package/tests/components/data/sheet/DataSheet.spec.tsx +645 -0
  387. package/tests/components/disclosure/Collapse.spec.tsx +173 -0
  388. package/tests/components/disclosure/Dialog.spec.tsx +438 -0
  389. package/tests/components/disclosure/DialogProvider.spec.tsx +142 -0
  390. package/tests/components/disclosure/Dropdown.spec.tsx +213 -0
  391. package/tests/components/disclosure/Tabs.spec.tsx +220 -0
  392. package/tests/components/display/Alert.spec.tsx +47 -0
  393. package/tests/components/display/Barcode.spec.tsx +61 -0
  394. package/tests/components/display/Card.spec.tsx +41 -0
  395. package/tests/components/display/Link.spec.tsx +62 -0
  396. package/tests/components/display/Tag.spec.tsx +47 -0
  397. package/tests/components/features/address/AddressSearch.spec.tsx +45 -0
  398. package/tests/components/features/crud-detail/CrudDetail.spec.tsx +537 -0
  399. package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +491 -0
  400. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +482 -0
  401. package/tests/components/features/permission-table/PermissionTable.spec.tsx +288 -0
  402. package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +463 -0
  403. package/tests/components/feedback/busy/BusyContainer.spec.tsx +80 -0
  404. package/tests/components/feedback/notification/LiveRegion.spec.tsx +52 -0
  405. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +187 -0
  406. package/tests/components/feedback/notification/NotificationBell.spec.tsx +226 -0
  407. package/tests/components/feedback/notification/NotificationContext.spec.tsx +362 -0
  408. package/tests/components/feedback/print/Print.spec.tsx +45 -0
  409. package/tests/components/form-control/Button.spec.tsx +119 -0
  410. package/tests/components/form-control/Invalid.spec.tsx +131 -0
  411. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +137 -0
  412. package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +108 -0
  413. package/tests/components/form-control/checkbox/Radio.spec.tsx +138 -0
  414. package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +108 -0
  415. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +94 -0
  416. package/tests/components/form-control/combobox/Combobox.spec.tsx +253 -0
  417. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +88 -0
  418. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +208 -0
  419. package/tests/components/form-control/field/DatePicker.spec.tsx +381 -0
  420. package/tests/components/form-control/field/DateTimePicker.spec.tsx +383 -0
  421. package/tests/components/form-control/field/NumberInput.spec.tsx +371 -0
  422. package/tests/components/form-control/field/TextInput.spec.tsx +341 -0
  423. package/tests/components/form-control/field/Textarea.spec.tsx +224 -0
  424. package/tests/components/form-control/field/TimePicker.spec.tsx +315 -0
  425. package/tests/components/form-control/numpad/Numpad.spec.tsx +248 -0
  426. package/tests/components/form-control/select/Select.spec.tsx +676 -0
  427. package/tests/components/form-control/select/SelectItem.spec.tsx +174 -0
  428. package/tests/components/layout/FormGroup.spec.tsx +104 -0
  429. package/tests/components/layout/FormTable.spec.tsx +43 -0
  430. package/tests/components/layout/sidebar/Sidebar.spec.tsx +192 -0
  431. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +261 -0
  432. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +219 -0
  433. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +133 -0
  434. package/tests/components/layout/topbar/TopbarActions.spec.tsx +77 -0
  435. package/tests/components/layout/topbar/TopbarContainer.spec.tsx +38 -0
  436. package/tests/components/layout/topbar/createTopbarActions.spec.tsx +66 -0
  437. package/tests/directives/ripple.spec.tsx +130 -0
  438. package/tests/helpers/createAppStructure.spec.tsx +843 -0
  439. package/tests/helpers/mergeStyles.spec.ts +172 -0
  440. package/tests/hooks/createControllableSignal.spec.ts +194 -0
  441. package/tests/hooks/createIMEHandler.spec.ts +80 -0
  442. package/tests/hooks/createMountTransition.spec.ts +86 -0
  443. package/tests/hooks/useLocalStorage.spec.tsx +223 -0
  444. package/tests/hooks/useLogger.spec.tsx +116 -0
  445. package/tests/hooks/usePrint.spec.tsx +134 -0
  446. package/tests/hooks/useRouterLink.spec.tsx +183 -0
  447. package/tests/hooks/useSyncConfig.spec.tsx +304 -0
  448. package/tests/providers/ClipboardProvider.spec.tsx +20 -0
  449. package/tests/providers/ConfigContext.spec.tsx +42 -0
  450. package/tests/providers/ErrorLoggerProvider.spec.tsx +73 -0
  451. package/tests/providers/LoggerContext.spec.tsx +76 -0
  452. package/tests/providers/PwaUpdateProvider.spec.tsx +22 -0
  453. package/tests/providers/ServiceClientContext.spec.tsx +88 -0
  454. package/tests/providers/SyncStorageContext.spec.tsx +77 -0
  455. package/tests/providers/i18n/I18nContext.spec.tsx +110 -0
  456. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +401 -0
  457. package/tests/vitest-env.d.ts +1 -0
  458. package/dist/components/form-control/select-list/SelectList.d.ts +0 -54
  459. package/dist/components/form-control/select-list/SelectList.d.ts.map +0 -1
  460. package/dist/components/form-control/select-list/SelectList.js +0 -280
  461. package/dist/components/form-control/select-list/SelectList.js.map +0 -6
  462. package/dist/components/form-control/select-list/SelectListContext.d.ts +0 -13
  463. package/dist/components/form-control/select-list/SelectListContext.d.ts.map +0 -1
  464. package/dist/components/form-control/select-list/SelectListContext.js +0 -14
  465. package/dist/components/form-control/select-list/SelectListContext.js.map +0 -6
  466. package/docs/data-components.md +0 -782
  467. package/docs/disclosure.md +0 -254
  468. package/docs/display.md +0 -153
  469. package/docs/feedback.md +0 -238
  470. package/docs/form-controls.md +0 -1068
  471. package/docs/helpers.md +0 -54
  472. package/docs/hooks.md +0 -588
  473. package/docs/layout.md +0 -384
  474. package/docs/providers.md +0 -211
  475. package/docs/styling.md +0 -184
  476. package/src/components/form-control/select-list/SelectList.tsx +0 -385
  477. package/src/components/form-control/select-list/SelectListContext.ts +0 -23
@@ -1,22 +1,22 @@
1
1
  import { type JSX, type ParentComponent } from "solid-js";
2
2
  declare const SelectItemChildren: ParentComponent;
3
3
  export interface SelectItemProps<TValue = unknown> extends Omit<JSX.ButtonHTMLAttributes<HTMLButtonElement>, "value" | "onClick"> {
4
- /** 아이템의 */
4
+ /** Item value */
5
5
  value: TValue;
6
- /** 비활성화 */
6
+ /** Disabled state */
7
7
  disabled?: boolean;
8
8
  }
9
9
  interface SelectItemComponent<TValue = unknown> extends ParentComponent<SelectItemProps<TValue>> {
10
10
  Children: typeof SelectItemChildren;
11
11
  }
12
12
  /**
13
- * Select 드롭다운 내의 선택 가능한 아이템
13
+ * Selectable item within Select dropdown
14
14
  *
15
15
  * @example
16
16
  * ```tsx
17
17
  * <Select.Item value={item}>{item.name}</Select.Item>
18
18
  *
19
- * // 중첩 아이템
19
+ * // Nested items
20
20
  * <Select.Item value={parent}>
21
21
  * {parent.name}
22
22
  * <Select.Item.Children>
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\form-control\\select\\SelectItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,KAAK,eAAe,EAAoB,MAAM,UAAU,CAAC;AA2B3F,QAAA,MAAM,kBAAkB,iBAAwE,CAAC;AAEjG,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,IAAI,CAC7D,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC3C,OAAO,GAAG,SAAS,CACpB;IACC,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9F,QAAQ,EAAE,OAAO,kBAAkB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,EAAE,mBAiExB,CAAC"}
1
+ {"version":3,"file":"SelectItem.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\form-control\\select\\SelectItem.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,GAAG,EAAE,KAAK,eAAe,EAAoB,MAAM,UAAU,CAAC;AA2B3F,QAAA,MAAM,kBAAkB,iBAAwE,CAAC;AAEjG,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,IAAI,CAC7D,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC3C,OAAO,GAAG,SAAS,CACpB;IACC,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,mBAAmB,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9F,QAAQ,EAAE,OAAO,kBAAkB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU,EAAE,mBAiExB,CAAC"}
@@ -7,7 +7,7 @@ import { effect as _$effect } from "solid-js/web";
7
7
  import { use as _$use } from "solid-js/web";
8
8
  import { insert as _$insert } from "solid-js/web";
9
9
  import { createComponent as _$createComponent } from "solid-js/web";
10
- var _tmpl$ = /* @__PURE__ */ _$template(`<input type=text placeholder=\uC774\uB984... autocomplete=one-time-code>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><button type=button title="\uD504\uB9AC\uC14B \uCD94\uAC00">`), _tmpl$3 = /* @__PURE__ */ _$template(`<span><button type=button></button><button type=button title="\uD604\uC7AC \uC0C1\uD0DC\uB85C \uB36E\uC5B4\uC4F0\uAE30"></button><button type=button title="\uD504\uB9AC\uC14B \uC0AD\uC81C">`);
10
+ var _tmpl$ = /* @__PURE__ */ _$template(`<input type=text placeholder=Name... autocomplete=one-time-code>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div><button type=button title="Add preset">`), _tmpl$3 = /* @__PURE__ */ _$template(`<span><button type=button></button><button type=button title="Overwrite with current state"></button><button type=button title="Delete preset">`);
11
11
  import { createSignal, For, Show, splitProps } from "solid-js";
12
12
  import { twMerge } from "tailwind-merge";
13
13
  import clsx from "clsx";
@@ -74,7 +74,7 @@ function StatePresetInner(props) {
74
74
  return;
75
75
  }
76
76
  if (presets().some((p) => p.name === name)) {
77
- notification.warning("\uC774\uB984 \uC911\uBCF5", "\uAC19\uC740 \uC774\uB984\uC758 \uD504\uB9AC\uC14B\uC774 \uC774\uBBF8 \uC874\uC7AC\uD569\uB2C8\uB2E4.");
77
+ notification.warning("Duplicate name", "A preset with this name already exists.");
78
78
  return;
79
79
  }
80
80
  const newPreset = {
@@ -82,7 +82,7 @@ function StatePresetInner(props) {
82
82
  state: objClone(local.value)
83
83
  };
84
84
  setPresets([...presets(), newPreset]);
85
- notification.info("\uD504\uB9AC\uC14B \uC800\uC7A5", `"${name}" \uD504\uB9AC\uC14B\uC774 \uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4.`);
85
+ notification.info("Preset saved", `Preset "${name}" has been saved.`);
86
86
  setAdding(false);
87
87
  setInputValue("");
88
88
  }
@@ -99,9 +99,9 @@ function StatePresetInner(props) {
99
99
  state: objClone(local.value)
100
100
  } : p);
101
101
  setPresets(updated);
102
- const notiId = notification.info("\uD504\uB9AC\uC14B \uB36E\uC5B4\uC4F0\uAE30", `"${presetName}" \uD504\uB9AC\uC14B\uC774 \uD604\uC7AC \uC0C1\uD0DC\uB85C \uC5C5\uB370\uC774\uD2B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4.`, {
102
+ const notiId = notification.info("Preset overwritten", `Preset "${presetName}" has been updated with the current state.`, {
103
103
  action: {
104
- label: "\uC2E4\uD589 \uCDE8\uC18C",
104
+ label: "Undo",
105
105
  onClick: () => {
106
106
  setPresets(snapshot);
107
107
  notification.remove(notiId);
@@ -114,9 +114,9 @@ function StatePresetInner(props) {
114
114
  const presetName = snapshot[index].name;
115
115
  const updated = snapshot.filter((_, i) => i !== index);
116
116
  setPresets(updated);
117
- const notiId = notification.info("\uD504\uB9AC\uC14B \uC0AD\uC81C", `"${presetName}" \uD504\uB9AC\uC14B\uC774 \uC0AD\uC81C\uB418\uC5C8\uC2B5\uB2C8\uB2E4.`, {
117
+ const notiId = notification.info("Preset deleted", `Preset "${presetName}" has been deleted.`, {
118
118
  action: {
119
- label: "\uC2E4\uD589 \uCDE8\uC18C",
119
+ label: "Undo",
120
120
  onClick: () => {
121
121
  setPresets(snapshot);
122
122
  notification.remove(notiId);
@@ -165,7 +165,7 @@ function StatePresetInner(props) {
165
165
  size: iconSize
166
166
  }));
167
167
  _$effect((_p$) => {
168
- var _v$4 = resolvedChipClass(), _v$5 = `"${preset.name}" \uD504\uB9AC\uC14B \uC801\uC6A9`, _v$6 = resolvedIconBtnClass(), _v$7 = resolvedIconBtnClass();
168
+ var _v$4 = resolvedChipClass(), _v$5 = `Apply preset "${preset.name}"`, _v$6 = resolvedIconBtnClass(), _v$7 = resolvedIconBtnClass();
169
169
  _v$4 !== _p$.e && _$className(_el$4, _p$.e = _v$4);
170
170
  _v$5 !== _p$.t && _$setAttribute(_el$5, "title", _p$.t = _v$5);
171
171
  _v$6 !== _p$.a && _$className(_el$6, _p$.a = _v$6);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/form-control/state-preset/StatePreset.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["createSignal", "For", "Show", "splitProps", "twMerge", "clsx", "IconDeviceFloppy", "IconStar", "IconX", "objClone", "objEqual", "useSyncConfig", "useNotification", "Icon", "textPlaceholder", "iconButtonBase", "baseClass", "chipClass", "chipDefaultClass", "chipSizeClasses", "xs", "sm", "lg", "xl", "chipNameBtnClass", "iconBtnClass", "iconBtnDefaultClass", "iconBtnSizeClasses", "starBtnClass", "starBtnDefaultClass", "starBtnSizeClasses", "inputClass", "inputDefaultClass", "inputSizeClasses", "iconSize", "StatePresetInner", "props", "local", "notification", "presets", "setPresets", "presetKey", "adding", "setAdding", "inputValue", "setInputValue", "handleStartAdd", "handleCancelAdd", "handleConfirmAdd", "name", "trim", "some", "p", "warning", "newPreset", "state", "value", "info", "handleRestore", "preset", "onValueChange", "handleOverwrite", "index", "snapshot", "presetName", "updated", "map", "i", "notiId", "action", "label", "onClick", "remove", "handleDelete", "filter", "_", "handleInputKeyDown", "e", "key", "preventDefault", "containerClass", "class", "resolvedChipClass", "size", "resolvedIconBtnClass", "resolvedStarBtnClass", "resolvedInputClass", "_el$", "_tmpl$2", "_el$2", "firstChild", "$$click", "_$insert", "_$createComponent", "icon", "each", "children", "_el$4", "_tmpl$3", "_el$5", "_el$6", "nextSibling", "_el$7", "_$className", "_$effect", "_p$", "_v$4", "_v$5", "_v$6", "_v$7", "t", "_$setAttribute", "a", "o", "undefined", "when", "_el$3", "_tmpl$", "addEventListener", "$$keydown", "$$input", "currentTarget", "_$use", "el", "requestAnimationFrame", "focus", "_v$", "_v$2", "style", "_v$3", "_$style", "StatePreset", "_$delegateEvents"]
6
6
  }
@@ -8,15 +8,15 @@ import clsx from "clsx";
8
8
  import { twMerge } from "tailwind-merge";
9
9
  const baseClass = clsx(
10
10
  "border-separate border-spacing-0 border-0",
11
- // 모든 셀: 수직 중앙, 오른쪽/아래 패딩
11
+ // All cells: vertical center, right/bottom padding
12
12
  "[&_td]:align-middle [&_th]:align-middle",
13
13
  "[&_td]:pr-1.5 [&_th]:pr-1.5",
14
14
  "[&_td]:pb-1 [&_th]:pb-1",
15
- // 행의 마지막 셀: 오른쪽 패딩 제거
15
+ // Last cell in row: remove right padding
16
16
  "[&_tr>*:last-child]:pr-0",
17
- // 마지막 셀: 아래 패딩 제거
17
+ // Cells in last row: remove bottom padding
18
18
  "[&_tr:last-child>*]:pb-0",
19
- // th: 오른쪽 정렬, 콘텐츠 너비, 줄바꿈 방지
19
+ // th: right align, content width, prevent wrapping
20
20
  "[&_th]:w-0 [&_th]:whitespace-nowrap [&_th]:pl-1 [&_th]:text-right"
21
21
  );
22
22
  const FormTable = (props) => {
@@ -9,18 +9,18 @@ export interface SidebarProps extends JSX.HTMLAttributes<HTMLElement> {
9
9
  children: JSX.Element;
10
10
  }
11
11
  /**
12
- * 사이드바 본체 컴포넌트
12
+ * Sidebar body component
13
13
  *
14
14
  * @remarks
15
- * - SidebarContainer 내부에서 사용해야 (`position: absolute`로 컨테이너에 종속)
16
- * - Context에서 toggle 상태를 읽어 열림/닫힘 애니메이션 적용
17
- * - 토글 버튼 미포함 - useSidebarContext().setToggle로 외부에서 제어
15
+ * - Must be used inside SidebarContainer (`position: absolute` dependency)
16
+ * - Reads toggle state from Context to apply open/close animation
17
+ * - Does not include toggle button - controlled externally via useSidebarContext().setToggle
18
18
  *
19
19
  * @example
20
20
  * ```tsx
21
21
  * <Sidebar>
22
22
  * <Sidebar.User menus={userMenus}>
23
- * <span>사용자</span>
23
+ * <span>User</span>
24
24
  * </Sidebar.User>
25
25
  * <Sidebar.Menu menus={menuItems} />
26
26
  * </Sidebar>
@@ -3,17 +3,17 @@ export interface SidebarContainerProps extends JSX.HTMLAttributes<HTMLDivElement
3
3
  children: JSX.Element;
4
4
  }
5
5
  /**
6
- * 사이드바 컨테이너 컴포넌트
6
+ * Sidebar container component
7
7
  *
8
8
  * @remarks
9
- * - `position: relative`로 Sidebar를 포함하는 컨테이너 역할
10
- * - 부모 요소에 높이가 지정되어야 (`h-full` 사용)
11
- * - 콘텐츠 영역의 `overflow-auto`는 사용자가 직접 적용해야
12
- * - SidebarContext.Provider로 toggle 상태 공유
13
- * - toggle 상태는 메모리에만 유지 (페이지 새로고침 초기화)
14
- * - 데스크탑(640px+)에서 padding-left + transition으로 콘텐츠 확장/축소
15
- * - 모바일(640px-)에서 backdrop 렌더링 클릭 시 닫기
16
- * - 페이지 이동 모바일에서 자동 닫기
9
+ * - Acts as container with `position: relative` for Sidebar
10
+ * - Parent element must have height specified (use `h-full`)
11
+ * - Content area's `overflow-auto` must be applied by user
12
+ * - Shares toggle state via SidebarContext.Provider
13
+ * - Toggle state is kept in memory only (reset on page refresh)
14
+ * - On desktop (640px+): uses padding-left + transition to expand/collapse content
15
+ * - On mobile (640px-): renders backdrop and closes on click
16
+ * - Auto closes on mobile when page navigates
17
17
  *
18
18
  * @example
19
19
  * ```tsx
@@ -21,11 +21,11 @@ export interface SidebarContainerProps extends JSX.HTMLAttributes<HTMLDivElement
21
21
  * <SidebarContainer>
22
22
  * <Sidebar>
23
23
  * <SidebarUser menus={userMenus}>
24
- * <span>사용자</span>
24
+ * <span>User</span>
25
25
  * </SidebarUser>
26
26
  * <SidebarMenu menus={menuItems} />
27
27
  * </Sidebar>
28
- * <main class="h-full overflow-auto">콘텐츠</main>
28
+ * <main class="h-full overflow-auto">Content</main>
29
29
  * </SidebarContainer>
30
30
  * </div>
31
31
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarContainer.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,eAAe,EAKrB,MAAM,UAAU,CAAC;AAqBlB,MAAM,WAAW,qBAAsB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/E,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,CA4DnE,CAAC"}
1
+ {"version":3,"file":"SidebarContainer.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\sidebar\\SidebarContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,eAAe,EAKrB,MAAM,UAAU,CAAC;AAsBlB,MAAM,WAAW,qBAAsB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/E,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,CA6DnE,CAAC"}
@@ -2,11 +2,13 @@ import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
3
  import { insert as _$insert } from "solid-js/web";
4
4
  import { createComponent as _$createComponent } from "solid-js/web";
5
+ import { setAttribute as _$setAttribute } from "solid-js/web";
6
+ import { effect as _$effect } from "solid-js/web";
5
7
  import { className as _$className } from "solid-js/web";
6
8
  import { memo as _$memo } from "solid-js/web";
7
9
  import { spread as _$spread } from "solid-js/web";
8
10
  import { mergeProps as _$mergeProps } from "solid-js/web";
9
- var _tmpl$ = /* @__PURE__ */ _$template(`<div role=button aria-label="\uC0AC\uC774\uB4DC\uBC14 \uB2EB\uAE30"tabindex=0>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div>`);
11
+ var _tmpl$ = /* @__PURE__ */ _$template(`<div role=button tabindex=0>`), _tmpl$2 = /* @__PURE__ */ _$template(`<div>`);
10
12
  import { Show, splitProps, createMemo, createSignal } from "solid-js";
11
13
  import { useBeforeLeave } from "@solidjs/router";
12
14
  import { createMediaQuery } from "@solid-primitives/media";
@@ -14,10 +16,12 @@ import clsx from "clsx";
14
16
  import { twMerge } from "tailwind-merge";
15
17
  import { SidebarContext, SM_MEDIA_QUERY } from "./SidebarContext.js";
16
18
  import { mergeStyles } from "../../../helpers/mergeStyles.js";
19
+ import { useI18nOptional } from "../../../providers/i18n/I18nContext.js";
17
20
  const backdropClass = clsx("absolute", "top-0", "left-0", "right-0", "bottom-0", "z-sidebar-backdrop", "bg-black/50", "sm:hidden");
18
21
  const containerClass = clsx("relative h-full transition-[padding-left] duration-100");
19
22
  const SidebarContainer = (props) => {
20
23
  const [local, rest] = splitProps(props, ["children", "class", "style"]);
24
+ const i18n = useI18nOptional();
21
25
  const [toggle, setToggle] = createSignal(false);
22
26
  const isDesktop = createMediaQuery(SM_MEDIA_QUERY);
23
27
  const isOpen = createMemo(() => {
@@ -69,6 +73,7 @@ const SidebarContainer = (props) => {
69
73
  _el$2.$$keydown = (e) => e.key === "Escape" && handleBackdropClick();
70
74
  _el$2.$$click = handleBackdropClick;
71
75
  _$className(_el$2, backdropClass);
76
+ _$effect(() => _$setAttribute(_el$2, "aria-label", (i18n == null ? void 0 : i18n.t("sidebar.closeSidebar")) ?? "Close sidebar"));
72
77
  return _el$2;
73
78
  }
74
79
  }), null);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/layout/sidebar/SidebarContainer.tsx"],
4
- "mappings": ";;;;;;;;;AAAA,SAGEA,MACAC,YACAC,YACAC,oBACK;AACP,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AACjC,OAAOC,UAAU;AACjB,SAASC,eAAe;AACxB,SAASC,gBAAgBC,sBAAsB;AAC/C,SAASC,mBAAmB;AAE5B,MAAMC,gBAAgBL,KACpB,YACA,SACA,UACA,WACA,YACA,sBACA,eACA,WACF;AAEA,MAAMM,iBAAiBN,KAAK,wDAAwD;AAkC7E,MAAMO,mBAA4DC,WAAU;AACjF,QAAM,CAACC,OAAOC,IAAI,IAAIf,WAAWa,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC;AAEtE,QAAM,CAACG,QAAQC,SAAS,IAAIf,aAAa,KAAK;AAG9C,QAAMgB,YAAYd,iBAAiBI,cAAc;AAGjD,QAAMW,SAASlB,WAAW,MAAM;AAC9B,QAAIiB,UAAU,GAAG;AACf,aAAO,CAACF,OAAO;IACjB;AACA,WAAOA,OAAO;EAChB,CAAC;AAGD,QAAMI,sBAAsBA,MAAM;AAChCH,cAAU,KAAK;EACjB;AAGAd,iBAAe,MAAM;AACnB,QAAI,CAACe,UAAU,KAAKF,OAAO,GAAG;AAC5BC,gBAAU,KAAK;IACjB;EACF,CAAC;AAGD,QAAMI,iBAAiBA,MAAM;AAC3B,QAAIH,UAAU,KAAKC,OAAO,GAAG;AAC3B,aAAO;IACT;AACA,WAAOG;EACT;AAEA,QAAMC,eAAeA,MAAMjB,QAAQK,gBAAgBG,MAAMU,KAAK;AAE9D,SAAAC,kBACGlB,eAAemB,UAAQ;IAACC,OAAO;MAAEX;MAAQC;IAAU;IAAC,IAAAW,WAAA;AAAA,UAAAC,OAAAC,QAAA;AAAAC,eAAAF,MAAAG,aAE7CjB,MAAI;QAAA,0BAAA;QAAA,KAAA,OAAA,IAAA;AAAA,iBAEDQ,aAAa;QAAC;QAAA,IACrBU,QAAK;AAAA,iBAAExB,YAAYK,MAAMmB,OAAO;YAAE,gBAAgBZ,eAAe;UAAE,CAAC;QAAC;MAAA,CAAA,GAAA,OAAA,IAAA;AAAAa,eAAAL,MAAA,MAEpEf,MAAMc,UAAQ,IAAA;AAAAM,eAAAL,MAAAJ,kBACd1B,MAAI;QAAA,IAACoC,OAAI;AAAA,iBAAEC,OAAA,MAAA,CAAA,CAAA,CAAClB,UAAU,CAAC,EAAA,KAAIC,OAAO;QAAC;QAAA,IAAAS,WAAA;AAAA,cAAAS,QAAAC,OAAA;AAAAD,gBAAAE,YAIpBC,OAAMA,EAAEC,QAAQ,YAAYrB,oBAAoB;AAACiB,gBAAAK,UADpDtB;AAAmBuB,sBAAAN,OADrB3B,aAAa;AAAA,iBAAA2B;QAAA;MAAA,CAAA,GAAA,IAAA;AAAA,aAAAR;IAAA;EAAA,CAAA;AAWhC;AAAEe,iBAAA,CAAA,SAAA,SAAA,CAAA;",
5
- "names": ["Show", "splitProps", "createMemo", "createSignal", "useBeforeLeave", "createMediaQuery", "clsx", "twMerge", "SidebarContext", "SM_MEDIA_QUERY", "mergeStyles", "backdropClass", "containerClass", "SidebarContainer", "props", "local", "rest", "toggle", "setToggle", "isDesktop", "isOpen", "handleBackdropClick", "getPaddingLeft", "undefined", "getClassName", "class", "_$createComponent", "Provider", "value", "children", "_el$", "_tmpl$2", "_$spread", "_$mergeProps", "style", "_$insert", "when", "_$memo", "_el$2", "_tmpl$", "$$keydown", "e", "key", "$$click", "_$className", "_$delegateEvents"]
4
+ "mappings": ";;;;;;;;;;;AAAA,SAGEA,MACAC,YACAC,YACAC,oBACK;AACP,SAASC,sBAAsB;AAC/B,SAASC,wBAAwB;AACjC,OAAOC,UAAU;AACjB,SAASC,eAAe;AACxB,SAASC,gBAAgBC,sBAAsB;AAC/C,SAASC,mBAAmB;AAC5B,SAASC,uBAAuB;AAEhC,MAAMC,gBAAgBN,KACpB,YACA,SACA,UACA,WACA,YACA,sBACA,eACA,WACF;AAEA,MAAMO,iBAAiBP,KAAK,wDAAwD;AAkC7E,MAAMQ,mBAA4DC,WAAU;AACjF,QAAM,CAACC,OAAOC,IAAI,IAAIhB,WAAWc,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC;AAEtE,QAAMG,OAAOP,gBAAgB;AAC7B,QAAM,CAACQ,QAAQC,SAAS,IAAIjB,aAAa,KAAK;AAG9C,QAAMkB,YAAYhB,iBAAiBI,cAAc;AAGjD,QAAMa,SAASpB,WAAW,MAAM;AAC9B,QAAImB,UAAU,GAAG;AACf,aAAO,CAACF,OAAO;IACjB;AACA,WAAOA,OAAO;EAChB,CAAC;AAGD,QAAMI,sBAAsBA,MAAM;AAChCH,cAAU,KAAK;EACjB;AAGAhB,iBAAe,MAAM;AACnB,QAAI,CAACiB,UAAU,KAAKF,OAAO,GAAG;AAC5BC,gBAAU,KAAK;IACjB;EACF,CAAC;AAGD,QAAMI,iBAAiBA,MAAM;AAC3B,QAAIH,UAAU,KAAKC,OAAO,GAAG;AAC3B,aAAO;IACT;AACA,WAAOG;EACT;AAEA,QAAMC,eAAeA,MAAMnB,QAAQM,gBAAgBG,MAAMW,KAAK;AAE9D,SAAAC,kBACGpB,eAAeqB,UAAQ;IAACC,OAAO;MAAEX;MAAQC;IAAU;IAAC,IAAAW,WAAA;AAAA,UAAAC,OAAAC,QAAA;AAAAC,eAAAF,MAAAG,aAE7ClB,MAAI;QAAA,0BAAA;QAAA,KAAA,OAAA,IAAA;AAAA,iBAEDS,aAAa;QAAC;QAAA,IACrBU,QAAK;AAAA,iBAAE1B,YAAYM,MAAMoB,OAAO;YAAE,gBAAgBZ,eAAe;UAAE,CAAC;QAAC;MAAA,CAAA,GAAA,OAAA,IAAA;AAAAa,eAAAL,MAAA,MAEpEhB,MAAMe,UAAQ,IAAA;AAAAM,eAAAL,MAAAJ,kBACd5B,MAAI;QAAA,IAACsC,OAAI;AAAA,iBAAEC,OAAA,MAAA,CAAA,CAAA,CAAClB,UAAU,CAAC,EAAA,KAAIC,OAAO;QAAC;QAAA,IAAAS,WAAA;AAAA,cAAAS,QAAAC,OAAA;AAAAD,gBAAAE,YAIpBC,OAAMA,EAAEC,QAAQ,YAAYrB,oBAAoB;AAACiB,gBAAAK,UADpDtB;AAAmBuB,sBAAAN,OADrB5B,aAAa;AAAAmC,mBAAA,MAAAC,eAAAR,OAAA,eAIRtB,6BAAM+B,EAAE,4BAA2B,eAAe,CAAA;AAAA,iBAAAT;QAAA;MAAA,CAAA,GAAA,IAAA;AAAA,aAAAR;IAAA;EAAA,CAAA;AAO1E;AAAEkB,iBAAA,CAAA,SAAA,SAAA,CAAA;",
5
+ "names": ["Show", "splitProps", "createMemo", "createSignal", "useBeforeLeave", "createMediaQuery", "clsx", "twMerge", "SidebarContext", "SM_MEDIA_QUERY", "mergeStyles", "useI18nOptional", "backdropClass", "containerClass", "SidebarContainer", "props", "local", "rest", "i18n", "toggle", "setToggle", "isDesktop", "isOpen", "handleBackdropClick", "getPaddingLeft", "undefined", "getClassName", "class", "_$createComponent", "Provider", "value", "children", "_el$", "_tmpl$2", "_$spread", "_$mergeProps", "style", "_$insert", "when", "_$memo", "_el$2", "_tmpl$", "$$keydown", "e", "key", "$$click", "_$className", "_$effect", "_$setAttribute", "t", "_$delegateEvents"]
6
6
  }
@@ -1,16 +1,16 @@
1
1
  import { type Accessor, type Setter } from "solid-js";
2
2
  /**
3
- * Tailwind sm: breakpoint에 해당하는 미디어 쿼리
3
+ * Media query corresponding to Tailwind sm: breakpoint
4
4
  * @see tailwind.config.ts screens.sm (640px)
5
5
  */
6
6
  export declare const SM_MEDIA_QUERY = "(min-width: 640px)";
7
7
  /**
8
- * 사이드바 toggle 상태 공유 Context
8
+ * Sidebar toggle state shared Context
9
9
  *
10
10
  * @remarks
11
- * toggle 시맨틱:
12
- * - `toggle=false` (기본값): 데스크탑(640px+)에서 열림, 모바일(640px-)에서 닫힘
13
- * - `toggle=true`: 데스크탑(640px+)에서 닫힘, 모바일(640px-)에서 열림 (오버레이)
11
+ * toggle semantics:
12
+ * - `toggle=false` (default): open on desktop (640px+), closed on mobile (640px-)
13
+ * - `toggle=true`: closed on desktop (640px+), open on mobile (640px-) as overlay
14
14
  */
15
15
  export interface SidebarContextValue {
16
16
  toggle: Accessor<boolean>;
@@ -19,10 +19,10 @@ export interface SidebarContextValue {
19
19
  export declare const SidebarContext: import("solid-js").Context<SidebarContextValue | undefined>;
20
20
  export declare function useSidebarContext(): SidebarContextValue;
21
21
  /**
22
- * SidebarContext를 선택적으로 사용 (Context 없으면 undefined 반환)
22
+ * Optionally use SidebarContext (returns undefined if no Context)
23
23
  *
24
24
  * @remarks
25
- * SidebarContainer 외부에서도 사용 가능한 컴포넌트(예: Topbar)에서 사용
25
+ * Used in components that can be used outside SidebarContainer (e.g., Topbar)
26
26
  */
27
27
  export declare function useSidebarContextOptional(): SidebarContextValue | undefined;
28
28
  //# sourceMappingURL=SidebarContext.d.ts.map
@@ -4,7 +4,7 @@ const SidebarContext = createContext();
4
4
  function useSidebarContext() {
5
5
  const context = useContext(SidebarContext);
6
6
  if (!context) {
7
- throw new Error("useSidebarContext\uB294 SidebarContainer \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
7
+ throw new Error("useSidebarContext can only be used inside SidebarContainer");
8
8
  }
9
9
  return context;
10
10
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/layout/sidebar/SidebarContext.ts"],
4
- "mappings": "AAAA,SAAS,eAAe,kBAA8C;AAM/D,MAAM,iBAAiB;AAevB,MAAM,iBAAiB,cAAmC;AAE1D,SAAS,oBAAyC;AACvD,QAAM,UAAU,WAAW,cAAc;AACzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,4HAAsD;AAAA,EACxE;AACA,SAAO;AACT;AAQO,SAAS,4BAA6D;AAC3E,SAAO,WAAW,cAAc;AAClC;",
4
+ "mappings": "AAAA,SAAS,eAAe,kBAA8C;AAM/D,MAAM,iBAAiB;AAevB,MAAM,iBAAiB,cAAmC;AAE1D,SAAS,oBAAyC;AACvD,QAAM,UAAU,WAAW,cAAc;AACzC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,4DAA4D;AAAA,EAC9E;AACA,SAAO;AACT;AAQO,SAAS,4BAA6D;AAC3E,SAAO,WAAW,cAAc;AAClC;",
5
5
  "names": []
6
6
  }
@@ -2,30 +2,30 @@ import { type Component, type JSX } from "solid-js";
2
2
  import type { AppMenu } from "../../../helpers/createAppStructure";
3
3
  export interface SidebarMenuProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "children"> {
4
4
  /**
5
- * 메뉴 아이템 배열
5
+ * Menu items array
6
6
  */
7
7
  menus: AppMenu[];
8
8
  }
9
9
  /**
10
- * 사이드바 메뉴 컴포넌트
10
+ * Sidebar menu component
11
11
  *
12
12
  * @remarks
13
- * - "MENU" 헤더 고정 표시
14
- * - List/ListItem으로 재귀적 메뉴 렌더링
15
- * - pathname 정확 일치로 선택 상태 판단 (query string 무시)
16
- * - 선택된 메뉴의 부모들은 초기 렌더링 자동 펼침
17
- * - 외부 링크(://포함) 탭에서 열기
13
+ * - "MENU" header always shown
14
+ * - Recursive menu rendering with List/ListItem
15
+ * - Selection state determined by exact pathname match (ignores query string)
16
+ * - Parent items of selected menu automatically open on initial render
17
+ * - External links (containing ://) open in new tab
18
18
  *
19
19
  * @example
20
20
  * ```tsx
21
21
  * <SidebarMenu menus={[
22
- * { title: "대시보드", href: "/dashboard", icon: IconHome },
22
+ * { title: "Dashboard", href: "/dashboard", icon: IconHome },
23
23
  * {
24
- * title: "설정",
24
+ * title: "Settings",
25
25
  * icon: IconSettings,
26
26
  * children: [
27
- * { title: "프로필", href: "/settings/profile" },
28
- * { title: "보안", href: "/settings/security" },
27
+ * { title: "Profile", href: "/settings/profile" },
28
+ * { title: "Security", href: "/settings/security" },
29
29
  * ],
30
30
  * },
31
31
  * ]} />
@@ -6,40 +6,40 @@ export interface SidebarUserMenu {
6
6
  }
7
7
  export interface SidebarUserProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onClick"> {
8
8
  /**
9
- * 사용자 이름 (필수)
9
+ * User name (required)
10
10
  */
11
11
  name: string;
12
12
  /**
13
- * 아바타 아이콘 (미입력 기본 사용자 아이콘)
13
+ * Avatar icon (defaults to user icon if not provided)
14
14
  */
15
15
  icon?: Component<TablerIconProps>;
16
16
  /**
17
- * 부가 정보 (이메일 등, 미입력 이름만 표시)
17
+ * Additional information (email, etc.; shows name only if not provided)
18
18
  */
19
19
  description?: string;
20
20
  /**
21
- * 드롭다운 메뉴 (있을 때만 클릭 가능)
21
+ * Dropdown menu (clickable only when provided)
22
22
  */
23
23
  menus?: SidebarUserMenu[];
24
24
  }
25
25
  /**
26
- * 사이드바 사용자 정보 컴포넌트
26
+ * Sidebar user information component
27
27
  *
28
28
  * @remarks
29
- * - name, icon, description props로 사용자 정보 표시
30
- * - icon 미입력 기본 사용자 아이콘 표시
31
- * - description 미입력 이름만 세로 중앙 정렬
32
- * - menus가 있을 때만 클릭 가능 ripple 효과 적용
33
- * - 클릭 드롭다운 메뉴 펼침/접힘
29
+ * - Displays user info via name, icon, description props
30
+ * - Shows default user icon if icon not provided
31
+ * - Shows name only with vertical centering if description not provided
32
+ * - Clickable and ripple effect apply only when menus provided
33
+ * - Click toggles dropdown menu
34
34
  *
35
35
  * @example
36
36
  * ```tsx
37
37
  * <SidebarUser
38
- * name="홍길동"
39
- * description="hong@example.com"
38
+ * name="John Doe"
39
+ * description="john@example.com"
40
40
  * menus={[
41
- * { title: "프로필", onClick: () => navigate("/profile") },
42
- * { title: "로그아웃", onClick: handleLogout },
41
+ * { title: "Profile", onClick: () => navigate("/profile") },
42
+ * { title: "Logout", onClick: handleLogout },
43
43
  * ]}
44
44
  * />
45
45
  * ```
@@ -10,20 +10,20 @@ export interface TopbarProps extends JSX.HTMLAttributes<HTMLElement> {
10
10
  children: JSX.Element;
11
11
  }
12
12
  /**
13
- * 상단바 본체 컴포넌트
13
+ * Topbar main component
14
14
  *
15
15
  * @remarks
16
- * - SidebarContext가 있을 경우 사이드바 토글 버튼 자동 표시
17
- * - SidebarContainer 내부에서 사용하면 토글 버튼이 나타남
18
- * - 단독 사용 토글 버튼 없이 순수 Topbar로 동작
16
+ * - Automatically shows sidebar toggle button if SidebarContext exists
17
+ * - Toggle button appears when used inside SidebarContainer
18
+ * - Acts as pure Topbar without toggle button when used standalone
19
19
  *
20
20
  * @example
21
21
  * ```tsx
22
22
  * <Topbar>
23
- * <h1 class="text-lg font-bold">앱 이름</h1>
23
+ * <h1 class="text-lg font-bold">App Name</h1>
24
24
  * <Topbar.Menu menus={menuItems} />
25
25
  * <div class="flex-1" />
26
- * <Topbar.User menus={userMenus}>사용자</Topbar.User>
26
+ * <Topbar.User menus={userMenus}>User</Topbar.User>
27
27
  * </Topbar>
28
28
  * ```
29
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\topbar\\Topbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAoB,MAAM,UAAU,CAAC;AAO5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAwBpE,MAAM,WAAW,WAAY,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IAClE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,UAAU,eAAgB,SAAQ,eAAe,CAAC,WAAW,CAAC;IAC5D,OAAO,EAAE,OAAO,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,eAAe,CAAC;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,IAAI,EAAE,OAAO,UAAU,CAAC;CACzB;AA0BD,eAAO,MAAM,MAAM,EAAiB,eAAe,CAAC"}
1
+ {"version":3,"file":"Topbar.d.ts","sourceRoot":"","sources":["..\\..\\..\\..\\src\\components\\layout\\topbar\\Topbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,eAAe,EAAoB,MAAM,UAAU,CAAC;AAQ5E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAwBpE,MAAM,WAAW,WAAY,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IAClE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,UAAU,eAAgB,SAAQ,eAAe,CAAC,WAAW,CAAC;IAC5D,OAAO,EAAE,OAAO,aAAa,CAAC;IAC9B,SAAS,EAAE,OAAO,eAAe,CAAC;IAClC,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,IAAI,EAAE,OAAO,UAAU,CAAC;CACzB;AA2BD,eAAO,MAAM,MAAM,EAAiB,eAAe,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { template as _$template } from "solid-js/web";
2
2
  import { insert as _$insert } from "solid-js/web";
3
3
  import { createComponent as _$createComponent } from "solid-js/web";
4
+ import { memo as _$memo } from "solid-js/web";
4
5
  import { spread as _$spread } from "solid-js/web";
5
6
  import { mergeProps as _$mergeProps } from "solid-js/web";
6
7
  var _tmpl$ = /* @__PURE__ */ _$template(`<header>`);
@@ -11,34 +12,36 @@ import { Icon } from "../../display/Icon.js";
11
12
  import { twMerge } from "tailwind-merge";
12
13
  import { Button } from "../../form-control/Button.js";
13
14
  import { useSidebarContextOptional } from "../sidebar/SidebarContext.js";
15
+ import { useI18nOptional } from "../../../providers/i18n/I18nContext.js";
14
16
  import { TopbarActions } from "./TopbarActions.js";
15
17
  import { TopbarContainer } from "./TopbarContainer.js";
16
18
  import { TopbarMenu } from "./TopbarMenu.js";
17
19
  import { TopbarUser } from "./TopbarUser.js";
18
20
  const baseClass = clsx(
19
- // 레이아웃
21
+ // Layout
20
22
  "flex",
21
23
  "flex-row",
22
24
  "gap-2",
23
25
  "items-center",
24
- // 크기
26
+ // Size
25
27
  "min-h-12",
26
28
  "px-2",
27
- // 배경/테두리
29
+ // Background/border
28
30
  "bg-white",
29
31
  "dark:bg-base-900",
30
32
  "border-b",
31
33
  "border-base-200",
32
34
  "dark:border-base-700",
33
- // 스크롤
35
+ // Scroll
34
36
  "overflow-x-auto",
35
37
  "overflow-y-hidden",
36
- // 기타
38
+ // Other
37
39
  "select-none"
38
40
  );
39
41
  const TopbarBase = (props) => {
40
42
  const [local, rest] = splitProps(props, ["children", "class"]);
41
43
  const sidebarContext = useSidebarContextOptional();
44
+ const i18n = useI18nOptional();
42
45
  const handleToggle = () => {
43
46
  sidebarContext == null ? void 0 : sidebarContext.setToggle((v) => !v);
44
47
  };
@@ -58,7 +61,9 @@ const TopbarBase = (props) => {
58
61
  variant: "ghost",
59
62
  onClick: handleToggle,
60
63
  "class": "p-2",
61
- "aria-label": "\uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00",
64
+ get ["aria-label"]() {
65
+ return (i18n == null ? void 0 : i18n.t("topbar.toggleSidebar")) ?? "Toggle sidebar";
66
+ },
62
67
  get children() {
63
68
  return _$createComponent(Icon, {
64
69
  icon: IconMenu2,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/layout/topbar/Topbar.tsx"],
4
- "mappings": ";;;;;;AAAA,SAAyCA,YAAYC,YAAY;AACjE,SAASC,iBAAiB;AAC1B,OAAOC,UAAU;AACjB,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,iCAAiC;AAC1C,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,kBAAkB;AAC3B,SAASC,kBAAkB;AAM3B,MAAMC,YAAYT;;EAEhB;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;AACF;AA+BA,MAAMU,aAA4CC,WAAU;AAC1D,QAAM,CAACC,OAAOC,IAAI,IAAIhB,WAAWc,OAAO,CAAC,YAAY,OAAO,CAAC;AAG7D,QAAMG,iBAAiBV,0BAA0B;AAEjD,QAAMW,eAAeA,MAAM;AACzBD,qDAAgBE,UAAWC,OAAM,CAACA;EACpC;AAEA,QAAMC,eAAeA,MAAMhB,QAAQO,WAAWG,MAAMO,KAAK;AAEzD,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAA;AAAAC,aAAAF,MAAAG,aACcV,MAAI;MAAA,eAAA;MAAA,KAAA,OAAA,IAAA;AAAA,eAAqBK,aAAa;MAAC;IAAA,CAAA,GAAA,OAAA,IAAA;AAAAM,aAAAJ,MAAAK,kBAChD3B,MAAI;MAAC4B,MAAMZ;MAAc,IAAAa,WAAA;AAAA,eAAAF,kBACvBtB,QAAM;UAACyB,SAAO;UAASC,SAASd;UAAY,SAAA;UAAA,cAAA;UAAA,IAAAY,WAAA;AAAA,mBAAAF,kBAC1CxB,MAAI;cAAC6B,MAAM/B;cAAWgC,MAAI;YAAA,CAAA;UAAA;QAAA,CAAA;MAAA;IAAA,CAAA,GAAA,IAAA;AAAAP,aAAAJ,MAAA,MAG9BR,MAAMe,UAAQ,IAAA;AAAA,WAAAP;EAAA,GAAA;AAGrB;AAEO,MAAMY,SAAStB;AACtBsB,OAAOC,UAAU5B;AACjB2B,OAAOE,YAAY5B;AACnB0B,OAAOG,OAAO5B;AACdyB,OAAOI,OAAO5B;",
5
- "names": ["splitProps", "Show", "IconMenu2", "clsx", "Icon", "twMerge", "Button", "useSidebarContextOptional", "TopbarActions", "TopbarContainer", "TopbarMenu", "TopbarUser", "baseClass", "TopbarBase", "props", "local", "rest", "sidebarContext", "handleToggle", "setToggle", "v", "getClassName", "class", "_el$", "_tmpl$", "_$spread", "_$mergeProps", "_$insert", "_$createComponent", "when", "children", "variant", "onClick", "icon", "size", "Topbar", "Actions", "Container", "Menu", "User"]
4
+ "mappings": ";;;;;;;AAAA,SAAyCA,YAAYC,YAAY;AACjE,SAASC,iBAAiB;AAC1B,OAAOC,UAAU;AACjB,SAASC,YAAY;AACrB,SAASC,eAAe;AACxB,SAASC,cAAc;AACvB,SAASC,iCAAiC;AAC1C,SAASC,uBAAuB;AAChC,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,kBAAkB;AAC3B,SAASC,kBAAkB;AAM3B,MAAMC,YAAYV;;EAEhB;EACA;EACA;EACA;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACA;;EAEA;AACF;AA+BA,MAAMW,aAA4CC,WAAU;AAC1D,QAAM,CAACC,OAAOC,IAAI,IAAIjB,WAAWe,OAAO,CAAC,YAAY,OAAO,CAAC;AAG7D,QAAMG,iBAAiBX,0BAA0B;AACjD,QAAMY,OAAOX,gBAAgB;AAE7B,QAAMY,eAAeA,MAAM;AACzBF,qDAAgBG,UAAWC,OAAM,CAACA;EACpC;AAEA,QAAMC,eAAeA,MAAMlB,QAAQQ,WAAWG,MAAMQ,KAAK;AAEzD,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAA;AAAAC,aAAAF,MAAAG,aACcX,MAAI;MAAA,eAAA;MAAA,KAAA,OAAA,IAAA;AAAA,eAAqBM,aAAa;MAAC;IAAA,CAAA,GAAA,OAAA,IAAA;AAAAM,aAAAJ,MAAAK,kBAChD7B,MAAI;MAAC8B,MAAMb;MAAc,IAAAc,WAAA;AAAA,eAAAF,kBACvBxB,QAAM;UAAC2B,SAAO;UAASC,SAASd;UAAY,SAAA;UAAA,KAAA,YAAA,IAAA;AAAA,oBAA0BD,6BAAMgB,EAAE,4BAA2B;UAAgB;UAAA,IAAAH,WAAA;AAAA,mBAAAF,kBACvH1B,MAAI;cAACgC,MAAMlC;cAAWmC,MAAI;YAAA,CAAA;UAAA;QAAA,CAAA;MAAA;IAAA,CAAA,GAAA,IAAA;AAAAR,aAAAJ,MAAA,MAG9BT,MAAMgB,UAAQ,IAAA;AAAA,WAAAP;EAAA,GAAA;AAGrB;AAEO,MAAMa,SAASxB;AACtBwB,OAAOC,UAAU9B;AACjB6B,OAAOE,YAAY9B;AACnB4B,OAAOG,OAAO9B;AACd2B,OAAOI,OAAO9B;",
5
+ "names": ["splitProps", "Show", "IconMenu2", "clsx", "Icon", "twMerge", "Button", "useSidebarContextOptional", "useI18nOptional", "TopbarActions", "TopbarContainer", "TopbarMenu", "TopbarUser", "baseClass", "TopbarBase", "props", "local", "rest", "sidebarContext", "i18n", "handleToggle", "setToggle", "v", "getClassName", "class", "_el$", "_tmpl$", "_$spread", "_$mergeProps", "_$insert", "_$createComponent", "when", "children", "variant", "onClick", "t", "icon", "size", "Topbar", "Actions", "Container", "Menu", "User"]
6
6
  }
@@ -3,21 +3,21 @@ export interface TopbarContainerProps extends JSX.HTMLAttributes<HTMLDivElement>
3
3
  children: JSX.Element;
4
4
  }
5
5
  /**
6
- * Topbar + 콘텐츠 영역을 감싸는 레이아웃 컨테이너
6
+ * Layout container wrapping Topbar and content area
7
7
  *
8
8
  * @remarks
9
- * - `flex flex-col h-full` 구조로 Topbar 콘텐츠를 수직 배치
10
- * - TopbarContext.Provider로 actions 상태 공유
11
- * - 부모 요소에 높이가 지정되어야
9
+ * - Uses `flex flex-col h-full` structure to vertically layout Topbar and content
10
+ * - Shares actions state via TopbarContext.Provider
11
+ * - Parent element must have height specified
12
12
  *
13
13
  * @example
14
14
  * ```tsx
15
15
  * <TopbarContainer>
16
16
  * <Topbar>
17
- * <h1>앱 이름</h1>
17
+ * <h1>App Name</h1>
18
18
  * <TopbarMenu menus={menuItems} />
19
19
  * </Topbar>
20
- * <main class="flex-1 overflow-auto">콘텐츠</main>
20
+ * <main class="flex-1 overflow-auto">Content</main>
21
21
  * </TopbarContainer>
22
22
  * ```
23
23
  */
@@ -7,14 +7,14 @@ const TopbarContext = createContext();
7
7
  function useTopbarActionsAccessor() {
8
8
  const context = useContext(TopbarContext);
9
9
  if (!context) {
10
- throw new Error("useTopbarActionsAccessor\uB294 Topbar.Container \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
10
+ throw new Error("useTopbarActionsAccessor can only be used inside Topbar.Container");
11
11
  }
12
12
  return context.actions;
13
13
  }
14
14
  function createTopbarActions(accessor) {
15
15
  const context = useContext(TopbarContext);
16
16
  if (!context) {
17
- throw new Error("createTopbarActions\uB294 Topbar.Container \uB0B4\uBD80\uC5D0\uC11C\uB9CC \uC0AC\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4");
17
+ throw new Error("createTopbarActions can only be used inside Topbar.Container");
18
18
  }
19
19
  context.setActions(() => accessor());
20
20
  onCleanup(() => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/layout/topbar/TopbarContext.ts"],
4
- "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAOA,MAAM,gBAAgB,cAAkC;AAExD,SAAS,2BAA8D;AAC5E,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,mIAA6D;AAAA,EAC/E;AACA,SAAO,QAAQ;AACjB;AAEO,SAAS,oBAAoB,UAAmC;AACrE,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,8HAAwD;AAAA,EAC1E;AAEA,UAAQ,WAAW,MAAM,SAAS,CAAC;AAEnC,YAAU,MAAM;AACd,YAAQ,WAAW,MAAS;AAAA,EAC9B,CAAC;AACH;",
4
+ "mappings": "AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAOA,MAAM,gBAAgB,cAAkC;AAExD,SAAS,2BAA8D;AAC5E,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,mEAAmE;AAAA,EACrF;AACA,SAAO,QAAQ;AACjB;AAEO,SAAS,oBAAoB,UAAmC;AACrE,QAAM,UAAU,WAAW,aAAa;AACxC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,8DAA8D;AAAA,EAChF;AAEA,UAAQ,WAAW,MAAM,SAAS,CAAC;AAEnC,YAAU,MAAM;AACd,YAAQ,WAAW,MAAS;AAAA,EAC9B,CAAC;AACH;",
5
5
  "names": []
6
6
  }