@simplysm/solid 13.0.69 → 13.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/README.md +168 -195
  2. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  3. package/dist/components/data/calendar/Calendar.js +15 -2
  4. package/dist/components/data/calendar/Calendar.js.map +2 -2
  5. package/dist/components/data/kanban/KanbanContext.js +2 -2
  6. package/dist/components/data/kanban/KanbanContext.js.map +1 -1
  7. package/dist/components/data/list/List.d.ts +8 -8
  8. package/dist/components/data/list/ListContext.d.ts +1 -1
  9. package/dist/components/data/list/ListItem.d.ts +15 -15
  10. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  11. package/dist/components/data/sheet/DataSheet.js +6 -4
  12. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  13. package/dist/components/data/sheet/DataSheetConfigDialog.js +8 -8
  14. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
  15. package/dist/components/data/sheet/types.d.ts +4 -4
  16. package/dist/components/data/sheet/types.d.ts.map +1 -1
  17. package/dist/components/disclosure/Collapse.d.ts +4 -4
  18. package/dist/components/disclosure/Dialog.d.ts +24 -24
  19. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  20. package/dist/components/disclosure/Dialog.js +7 -2
  21. package/dist/components/disclosure/Dialog.js.map +2 -2
  22. package/dist/components/disclosure/DialogContext.d.ts +25 -25
  23. package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
  24. package/dist/components/disclosure/DialogContext.js +1 -1
  25. package/dist/components/disclosure/DialogContext.js.map +1 -1
  26. package/dist/components/disclosure/DialogInstanceContext.d.ts +7 -7
  27. package/dist/components/disclosure/DialogInstanceContext.d.ts.map +1 -1
  28. package/dist/components/disclosure/DialogProvider.d.ts +3 -3
  29. package/dist/components/disclosure/Dropdown.d.ts +26 -24
  30. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  31. package/dist/components/disclosure/Dropdown.js +24 -8
  32. package/dist/components/disclosure/Dropdown.js.map +2 -2
  33. package/dist/components/disclosure/Tabs.js +1 -1
  34. package/dist/components/disclosure/Tabs.js.map +1 -1
  35. package/dist/components/disclosure/dialogZIndex.d.ts +9 -7
  36. package/dist/components/disclosure/dialogZIndex.d.ts.map +1 -1
  37. package/dist/components/disclosure/dialogZIndex.js +4 -0
  38. package/dist/components/disclosure/dialogZIndex.js.map +1 -1
  39. package/dist/components/features/crud-detail/CrudDetail.d.ts.map +1 -1
  40. package/dist/components/features/crud-detail/CrudDetail.js +34 -22
  41. package/dist/components/features/crud-detail/CrudDetail.js.map +2 -2
  42. package/dist/components/features/crud-sheet/CrudSheet.d.ts.map +1 -1
  43. package/dist/components/features/crud-sheet/CrudSheet.js +48 -33
  44. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  45. package/dist/components/features/crudRegistry.d.ts +16 -0
  46. package/dist/components/features/crudRegistry.d.ts.map +1 -0
  47. package/dist/components/features/crudRegistry.js +37 -0
  48. package/dist/components/features/crudRegistry.js.map +6 -0
  49. package/dist/components/features/data-select-button/DataSelectButton.d.ts +14 -14
  50. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  51. package/dist/components/features/data-select-button/DataSelectButton.js +27 -9
  52. package/dist/components/features/data-select-button/DataSelectButton.js.map +2 -2
  53. package/dist/components/features/permission-table/PermissionTable.d.ts +3 -3
  54. package/dist/components/features/permission-table/PermissionTable.d.ts.map +1 -1
  55. package/dist/components/features/permission-table/PermissionTable.js +74 -85
  56. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  57. package/dist/components/features/shared-data/SharedDataSelect.d.ts +12 -12
  58. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  59. package/dist/components/features/shared-data/SharedDataSelect.js +10 -6
  60. package/dist/components/features/shared-data/SharedDataSelect.js.map +2 -2
  61. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +10 -10
  62. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  63. package/dist/components/features/shared-data/SharedDataSelectList.d.ts +23 -15
  64. package/dist/components/features/shared-data/SharedDataSelectList.d.ts.map +1 -1
  65. package/dist/components/features/shared-data/SharedDataSelectList.js +191 -65
  66. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  67. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts +15 -0
  68. package/dist/components/features/shared-data/SharedDataSelectListContext.d.ts.map +1 -0
  69. package/dist/components/features/shared-data/SharedDataSelectListContext.js +27 -0
  70. package/dist/components/features/shared-data/SharedDataSelectListContext.js.map +6 -0
  71. package/dist/components/feedback/Progress.d.ts +1 -1
  72. package/dist/components/feedback/Progress.d.ts.map +1 -1
  73. package/dist/components/feedback/busy/BusyContainer.d.ts +2 -2
  74. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -1
  75. package/dist/components/feedback/busy/BusyContext.d.ts +11 -11
  76. package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -1
  77. package/dist/components/feedback/busy/BusyContext.js +1 -1
  78. package/dist/components/feedback/busy/BusyContext.js.map +1 -1
  79. package/dist/components/feedback/busy/BusyProvider.d.ts +6 -6
  80. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -1
  81. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  82. package/dist/components/feedback/notification/NotificationBanner.js +7 -3
  83. package/dist/components/feedback/notification/NotificationBanner.js.map +2 -2
  84. package/dist/components/feedback/notification/NotificationBell.js +2 -2
  85. package/dist/components/feedback/notification/NotificationBell.js.map +1 -1
  86. package/dist/components/feedback/notification/NotificationContext.d.ts +22 -22
  87. package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
  88. package/dist/components/feedback/notification/NotificationContext.js +1 -1
  89. package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
  90. package/dist/components/feedback/notification/NotificationProvider.d.ts +5 -5
  91. package/dist/components/feedback/notification/NotificationProvider.js +1 -1
  92. package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
  93. package/dist/components/feedback/print/PrintContext.js +1 -1
  94. package/dist/components/feedback/print/PrintContext.js.map +1 -1
  95. package/dist/components/form-control/DropdownTrigger.styles.d.ts +1 -1
  96. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  97. package/dist/components/form-control/ThemeToggle.d.ts +7 -7
  98. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  99. package/dist/components/form-control/ThemeToggle.js +3 -3
  100. package/dist/components/form-control/checkbox/Checkbox.js +1 -1
  101. package/dist/components/form-control/checkbox/CheckboxGroup.js +1 -1
  102. package/dist/components/form-control/checkbox/Radio.js +1 -1
  103. package/dist/components/form-control/checkbox/RadioGroup.js +1 -1
  104. package/dist/components/form-control/color-picker/ColorPicker.d.ts +12 -12
  105. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  106. package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
  107. package/dist/components/form-control/combobox/Combobox.d.ts +22 -22
  108. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  109. package/dist/components/form-control/combobox/Combobox.js +2 -2
  110. package/dist/components/form-control/combobox/ComboboxContext.d.ts +4 -4
  111. package/dist/components/form-control/combobox/ComboboxContext.d.ts.map +1 -1
  112. package/dist/components/form-control/combobox/ComboboxContext.js +1 -1
  113. package/dist/components/form-control/combobox/ComboboxContext.js.map +1 -1
  114. package/dist/components/form-control/combobox/ComboboxItem.d.ts +3 -3
  115. package/dist/components/form-control/combobox/ComboboxItem.d.ts.map +1 -1
  116. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts +14 -14
  117. package/dist/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -1
  118. package/dist/components/form-control/date-range-picker/DateRangePicker.js +20 -9
  119. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  120. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  121. package/dist/components/form-control/editor/EditorToolbar.js +65 -20
  122. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  123. package/dist/components/form-control/editor/RichTextEditor.d.ts +6 -6
  124. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  125. package/dist/components/form-control/editor/RichTextEditor.js +1 -1
  126. package/dist/components/form-control/editor/editor.css +5 -5
  127. package/dist/components/form-control/field/DatePicker.d.ts +22 -22
  128. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  129. package/dist/components/form-control/field/DatePicker.js +4 -4
  130. package/dist/components/form-control/field/DatePicker.js.map +1 -1
  131. package/dist/components/form-control/field/DateTimePicker.d.ts +21 -21
  132. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  133. package/dist/components/form-control/field/DateTimePicker.js +4 -4
  134. package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
  135. package/dist/components/form-control/field/FieldPlaceholder.d.ts +1 -1
  136. package/dist/components/form-control/field/FieldPlaceholder.d.ts.map +1 -1
  137. package/dist/components/form-control/field/NumberInput.d.ts +23 -23
  138. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  139. package/dist/components/form-control/field/NumberInput.js +4 -4
  140. package/dist/components/form-control/field/NumberInput.js.map +1 -1
  141. package/dist/components/form-control/field/TextInput.d.ts +25 -25
  142. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  143. package/dist/components/form-control/field/TextInput.js +5 -5
  144. package/dist/components/form-control/field/TextInput.js.map +1 -1
  145. package/dist/components/form-control/field/Textarea.d.ts +19 -19
  146. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  147. package/dist/components/form-control/field/Textarea.js +4 -4
  148. package/dist/components/form-control/field/Textarea.js.map +1 -1
  149. package/dist/components/form-control/field/TimePicker.d.ts +20 -20
  150. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  151. package/dist/components/form-control/field/TimePicker.js +4 -4
  152. package/dist/components/form-control/field/TimePicker.js.map +1 -1
  153. package/dist/components/form-control/numpad/Numpad.d.ts +11 -11
  154. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  155. package/dist/components/form-control/select/Select.d.ts +26 -26
  156. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  157. package/dist/components/form-control/select/Select.js +34 -23
  158. package/dist/components/form-control/select/Select.js.map +2 -2
  159. package/dist/components/form-control/select/SelectContext.d.ts +7 -7
  160. package/dist/components/form-control/select/SelectContext.d.ts.map +1 -1
  161. package/dist/components/form-control/select/SelectContext.js +1 -1
  162. package/dist/components/form-control/select/SelectContext.js.map +1 -1
  163. package/dist/components/form-control/select/SelectItem.d.ts +4 -4
  164. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  165. package/dist/components/form-control/state-preset/StatePreset.js +8 -8
  166. package/dist/components/form-control/state-preset/StatePreset.js.map +1 -1
  167. package/dist/components/layout/FormTable.js +4 -4
  168. package/dist/components/layout/sidebar/Sidebar.d.ts +5 -5
  169. package/dist/components/layout/sidebar/SidebarContainer.d.ts +11 -11
  170. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
  171. package/dist/components/layout/sidebar/SidebarContainer.js +6 -1
  172. package/dist/components/layout/sidebar/SidebarContainer.js.map +2 -2
  173. package/dist/components/layout/sidebar/SidebarContext.d.ts +7 -7
  174. package/dist/components/layout/sidebar/SidebarContext.js +1 -1
  175. package/dist/components/layout/sidebar/SidebarContext.js.map +1 -1
  176. package/dist/components/layout/sidebar/SidebarMenu.d.ts +11 -11
  177. package/dist/components/layout/sidebar/SidebarUser.d.ts +14 -14
  178. package/dist/components/layout/topbar/Topbar.d.ts +6 -6
  179. package/dist/components/layout/topbar/Topbar.d.ts.map +1 -1
  180. package/dist/components/layout/topbar/Topbar.js +11 -6
  181. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  182. package/dist/components/layout/topbar/TopbarContainer.d.ts +6 -6
  183. package/dist/components/layout/topbar/TopbarContext.js +2 -2
  184. package/dist/components/layout/topbar/TopbarContext.js.map +1 -1
  185. package/dist/components/layout/topbar/TopbarMenu.d.ts +11 -11
  186. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
  187. package/dist/components/layout/topbar/TopbarMenu.js +5 -1
  188. package/dist/components/layout/topbar/TopbarMenu.js.map +2 -2
  189. package/dist/components/layout/topbar/TopbarUser.d.ts +9 -9
  190. package/dist/directives/ripple.d.ts +5 -5
  191. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  192. package/dist/helpers/createAppStructure.js +7 -3
  193. package/dist/helpers/createAppStructure.js.map +1 -1
  194. package/dist/helpers/createHmrSafeContext.d.ts +3 -0
  195. package/dist/helpers/createHmrSafeContext.d.ts.map +1 -0
  196. package/dist/helpers/createHmrSafeContext.js +10 -0
  197. package/dist/helpers/createHmrSafeContext.js.map +6 -0
  198. package/dist/helpers/createSlotComponent.d.ts +3 -3
  199. package/dist/helpers/mergeStyles.d.ts +8 -8
  200. package/dist/hooks/createControllableSignal.d.ts +10 -10
  201. package/dist/hooks/createControllableStore.d.ts +6 -6
  202. package/dist/hooks/createIMEHandler.d.ts +7 -7
  203. package/dist/hooks/createMountTransition.d.ts +4 -4
  204. package/dist/hooks/createSelectionGroup.d.ts.map +1 -1
  205. package/dist/hooks/createSelectionGroup.js +4 -3
  206. package/dist/hooks/createSelectionGroup.js.map +2 -2
  207. package/dist/hooks/createSlotSignal.d.ts +2 -2
  208. package/dist/hooks/useLocalStorage.d.ts +11 -11
  209. package/dist/hooks/useLogger.d.ts +1 -1
  210. package/dist/hooks/useLogger.d.ts.map +1 -1
  211. package/dist/hooks/useLogger.js +1 -1
  212. package/dist/hooks/useLogger.js.map +1 -1
  213. package/dist/hooks/useRouterLink.d.ts +10 -10
  214. package/dist/hooks/useRouterLink.d.ts.map +1 -1
  215. package/dist/index.d.ts +2 -1
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +2 -1
  218. package/dist/index.js.map +1 -1
  219. package/dist/providers/ClipboardProvider.d.ts +5 -5
  220. package/dist/providers/ConfigContext.d.ts +6 -6
  221. package/dist/providers/ConfigContext.js +2 -2
  222. package/dist/providers/ConfigContext.js.map +1 -1
  223. package/dist/providers/ErrorLoggerProvider.d.ts +3 -3
  224. package/dist/providers/LoggerContext.d.ts +13 -13
  225. package/dist/providers/PwaUpdateProvider.d.ts +4 -4
  226. package/dist/providers/PwaUpdateProvider.js +2 -2
  227. package/dist/providers/PwaUpdateProvider.js.map +1 -1
  228. package/dist/providers/ServiceClientContext.d.ts +8 -8
  229. package/dist/providers/ServiceClientContext.d.ts.map +1 -1
  230. package/dist/providers/ServiceClientContext.js +1 -1
  231. package/dist/providers/ServiceClientContext.js.map +1 -1
  232. package/dist/providers/ServiceClientProvider.d.ts +6 -6
  233. package/dist/providers/ServiceClientProvider.js +7 -7
  234. package/dist/providers/ServiceClientProvider.js.map +1 -1
  235. package/dist/providers/SyncStorageContext.d.ts +14 -14
  236. package/dist/providers/SystemProvider.d.ts.map +1 -1
  237. package/dist/providers/SystemProvider.js +21 -16
  238. package/dist/providers/SystemProvider.js.map +2 -2
  239. package/dist/providers/ThemeContext.d.ts +20 -20
  240. package/dist/providers/ThemeContext.d.ts.map +1 -1
  241. package/dist/providers/ThemeContext.js +1 -1
  242. package/dist/providers/ThemeContext.js.map +1 -1
  243. package/dist/providers/i18n/I18nContext.d.ts +44 -0
  244. package/dist/providers/i18n/I18nContext.d.ts.map +1 -0
  245. package/dist/providers/i18n/I18nContext.js +73 -0
  246. package/dist/providers/i18n/I18nContext.js.map +6 -0
  247. package/dist/providers/i18n/I18nContext.types.d.ts +28 -0
  248. package/dist/providers/i18n/I18nContext.types.d.ts.map +1 -0
  249. package/dist/providers/i18n/I18nContext.types.js +1 -0
  250. package/dist/providers/i18n/I18nContext.types.js.map +6 -0
  251. package/dist/providers/i18n/i18nUtils.d.ts +18 -0
  252. package/dist/providers/i18n/i18nUtils.d.ts.map +1 -0
  253. package/dist/providers/i18n/i18nUtils.js +25 -0
  254. package/dist/providers/i18n/i18nUtils.js.map +6 -0
  255. package/dist/providers/i18n/locales/en.d.ts +163 -0
  256. package/dist/providers/i18n/locales/en.d.ts.map +1 -0
  257. package/dist/providers/i18n/locales/en.js +165 -0
  258. package/dist/providers/i18n/locales/en.js.map +6 -0
  259. package/dist/providers/i18n/locales/ko.d.ts +163 -0
  260. package/dist/providers/i18n/locales/ko.d.ts.map +1 -0
  261. package/dist/providers/i18n/locales/ko.js +165 -0
  262. package/dist/providers/i18n/locales/ko.js.map +6 -0
  263. package/dist/providers/shared-data/SharedDataChangeEvent.d.ts +4 -4
  264. package/dist/providers/shared-data/SharedDataContext.d.ts +28 -28
  265. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  266. package/dist/providers/shared-data/SharedDataContext.js +1 -1
  267. package/dist/providers/shared-data/SharedDataContext.js.map +1 -1
  268. package/dist/providers/shared-data/SharedDataProvider.d.ts +9 -9
  269. package/dist/providers/shared-data/SharedDataProvider.js +4 -4
  270. package/dist/providers/shared-data/SharedDataProvider.js.map +1 -1
  271. package/package.json +9 -8
  272. package/src/components/data/calendar/Calendar.tsx +10 -4
  273. package/src/components/data/kanban/Kanban.tsx +14 -14
  274. package/src/components/data/kanban/KanbanContext.ts +3 -3
  275. package/src/components/data/list/List.tsx +10 -10
  276. package/src/components/data/list/ListContext.ts +1 -1
  277. package/src/components/data/list/ListItem.styles.ts +8 -8
  278. package/src/components/data/list/ListItem.tsx +15 -15
  279. package/src/components/data/sheet/DataSheet.styles.ts +22 -22
  280. package/src/components/data/sheet/DataSheet.tsx +52 -48
  281. package/src/components/data/sheet/DataSheetColumn.tsx +1 -1
  282. package/src/components/data/sheet/DataSheetConfigDialog.tsx +9 -9
  283. package/src/components/data/sheet/sheetUtils.ts +7 -7
  284. package/src/components/data/sheet/types.ts +16 -16
  285. package/src/components/disclosure/Collapse.tsx +11 -11
  286. package/src/components/disclosure/Dialog.tsx +60 -57
  287. package/src/components/disclosure/DialogContext.ts +26 -26
  288. package/src/components/disclosure/DialogInstanceContext.ts +7 -7
  289. package/src/components/disclosure/DialogProvider.tsx +5 -5
  290. package/src/components/disclosure/Dropdown.tsx +89 -75
  291. package/src/components/disclosure/Tabs.tsx +1 -1
  292. package/src/components/disclosure/dialogZIndex.ts +16 -11
  293. package/src/components/display/Echarts.tsx +4 -4
  294. package/src/components/features/address/AddressSearch.tsx +2 -2
  295. package/src/components/features/crud-detail/CrudDetail.tsx +34 -21
  296. package/src/components/features/crud-detail/CrudDetailAfter.tsx +1 -1
  297. package/src/components/features/crud-detail/CrudDetailBefore.tsx +1 -1
  298. package/src/components/features/crud-detail/CrudDetailTools.tsx +1 -1
  299. package/src/components/features/crud-sheet/CrudSheet.tsx +52 -40
  300. package/src/components/features/crud-sheet/CrudSheetColumn.tsx +1 -1
  301. package/src/components/features/crud-sheet/CrudSheetFilter.tsx +1 -1
  302. package/src/components/features/crud-sheet/CrudSheetHeader.tsx +1 -1
  303. package/src/components/features/crud-sheet/CrudSheetTools.tsx +1 -1
  304. package/src/components/features/crudRegistry.ts +60 -0
  305. package/src/components/features/data-select-button/DataSelectButton.tsx +34 -32
  306. package/src/components/features/permission-table/PermissionTable.tsx +70 -64
  307. package/src/components/features/shared-data/SharedDataSelect.tsx +24 -22
  308. package/src/components/features/shared-data/SharedDataSelectButton.tsx +10 -10
  309. package/src/components/features/shared-data/SharedDataSelectList.tsx +231 -59
  310. package/src/components/features/shared-data/SharedDataSelectListContext.ts +39 -0
  311. package/src/components/feedback/Progress.tsx +1 -1
  312. package/src/components/feedback/busy/BusyContainer.tsx +6 -6
  313. package/src/components/feedback/busy/BusyContext.ts +12 -12
  314. package/src/components/feedback/busy/BusyProvider.tsx +6 -6
  315. package/src/components/feedback/notification/NotificationBanner.tsx +3 -1
  316. package/src/components/feedback/notification/NotificationBell.tsx +4 -4
  317. package/src/components/feedback/notification/NotificationContext.ts +28 -28
  318. package/src/components/feedback/notification/NotificationProvider.tsx +9 -9
  319. package/src/components/feedback/print/PrintContext.ts +1 -1
  320. package/src/components/form-control/Button.tsx +1 -1
  321. package/src/components/form-control/DropdownTrigger.styles.ts +1 -1
  322. package/src/components/form-control/Invalid.tsx +5 -5
  323. package/src/components/form-control/ThemeToggle.tsx +10 -10
  324. package/src/components/form-control/checkbox/Checkbox.styles.ts +8 -8
  325. package/src/components/form-control/checkbox/Checkbox.tsx +2 -2
  326. package/src/components/form-control/checkbox/CheckboxGroup.tsx +1 -1
  327. package/src/components/form-control/checkbox/Radio.tsx +2 -2
  328. package/src/components/form-control/checkbox/RadioGroup.tsx +1 -1
  329. package/src/components/form-control/color-picker/ColorPicker.tsx +17 -17
  330. package/src/components/form-control/combobox/Combobox.tsx +55 -55
  331. package/src/components/form-control/combobox/ComboboxContext.ts +5 -5
  332. package/src/components/form-control/combobox/ComboboxItem.tsx +3 -3
  333. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +40 -26
  334. package/src/components/form-control/editor/EditorToolbar.tsx +52 -50
  335. package/src/components/form-control/editor/RichTextEditor.tsx +16 -16
  336. package/src/components/form-control/editor/editor.css +5 -5
  337. package/src/components/form-control/field/DatePicker.tsx +39 -39
  338. package/src/components/form-control/field/DateTimePicker.tsx +38 -38
  339. package/src/components/form-control/field/Field.styles.ts +11 -11
  340. package/src/components/form-control/field/FieldPlaceholder.tsx +1 -1
  341. package/src/components/form-control/field/NumberInput.tsx +63 -63
  342. package/src/components/form-control/field/TextInput.tsx +48 -48
  343. package/src/components/form-control/field/Textarea.tsx +32 -32
  344. package/src/components/form-control/field/TimePicker.tsx +37 -37
  345. package/src/components/form-control/numpad/Numpad.tsx +26 -26
  346. package/src/components/form-control/select/Select.tsx +82 -86
  347. package/src/components/form-control/select/SelectContext.ts +8 -8
  348. package/src/components/form-control/select/SelectItem.tsx +5 -5
  349. package/src/components/form-control/state-preset/StatePreset.tsx +13 -13
  350. package/src/components/layout/FormTable.tsx +4 -4
  351. package/src/components/layout/sidebar/Sidebar.tsx +8 -8
  352. package/src/components/layout/sidebar/SidebarContainer.tsx +19 -17
  353. package/src/components/layout/sidebar/SidebarContext.ts +8 -8
  354. package/src/components/layout/sidebar/SidebarMenu.tsx +19 -19
  355. package/src/components/layout/sidebar/SidebarUser.tsx +14 -14
  356. package/src/components/layout/topbar/Topbar.tsx +15 -13
  357. package/src/components/layout/topbar/TopbarContainer.tsx +6 -6
  358. package/src/components/layout/topbar/TopbarContext.ts +2 -2
  359. package/src/components/layout/topbar/TopbarMenu.tsx +18 -16
  360. package/src/components/layout/topbar/TopbarUser.tsx +9 -9
  361. package/src/directives/ripple.ts +8 -8
  362. package/src/helpers/createAppStructure.ts +15 -8
  363. package/src/helpers/createHmrSafeContext.ts +8 -0
  364. package/src/helpers/createSlotComponent.ts +4 -4
  365. package/src/helpers/mergeStyles.ts +11 -11
  366. package/src/hooks/createControllableSignal.ts +11 -11
  367. package/src/hooks/createControllableStore.ts +8 -8
  368. package/src/hooks/createIMEHandler.ts +7 -7
  369. package/src/hooks/createMountTransition.ts +4 -4
  370. package/src/hooks/createSelectionGroup.tsx +5 -3
  371. package/src/hooks/createSlotSignal.ts +2 -2
  372. package/src/hooks/useLocalStorage.ts +13 -13
  373. package/src/hooks/useLogger.ts +2 -2
  374. package/src/hooks/useRouterLink.ts +15 -15
  375. package/src/index.ts +4 -3
  376. package/src/providers/ClipboardProvider.tsx +19 -19
  377. package/src/providers/ConfigContext.tsx +8 -8
  378. package/src/providers/ErrorLoggerProvider.tsx +3 -3
  379. package/src/providers/LoggerContext.tsx +13 -13
  380. package/src/providers/PwaUpdateProvider.tsx +6 -6
  381. package/src/providers/ServiceClientContext.ts +9 -9
  382. package/src/providers/ServiceClientProvider.tsx +15 -15
  383. package/src/providers/SyncStorageContext.tsx +15 -15
  384. package/src/providers/SystemProvider.tsx +15 -12
  385. package/src/providers/ThemeContext.tsx +26 -26
  386. package/src/providers/i18n/I18nContext.tsx +129 -0
  387. package/src/providers/i18n/I18nContext.types.ts +30 -0
  388. package/src/providers/i18n/i18nUtils.ts +38 -0
  389. package/src/providers/i18n/locales/en.ts +161 -0
  390. package/src/providers/i18n/locales/ko.ts +161 -0
  391. package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -4
  392. package/src/providers/shared-data/SharedDataContext.ts +29 -29
  393. package/src/providers/shared-data/SharedDataProvider.tsx +21 -21
  394. package/src/styles/patterns.styles.ts +6 -6
  395. package/src/styles/tokens.styles.ts +5 -5
  396. package/tailwind.config.ts +1 -1
  397. package/tailwind.css +4 -4
  398. package/tests/components/data/List.spec.tsx +689 -0
  399. package/tests/components/data/Pagination.spec.tsx +336 -0
  400. package/tests/components/data/Table.spec.tsx +55 -0
  401. package/tests/components/data/kanban/Kanban.selection.spec.tsx +213 -0
  402. package/tests/components/data/sheet/DataSheet.spec.tsx +645 -0
  403. package/tests/components/disclosure/Collapse.spec.tsx +173 -0
  404. package/tests/components/disclosure/Dialog.spec.tsx +438 -0
  405. package/tests/components/disclosure/DialogProvider.spec.tsx +142 -0
  406. package/tests/components/disclosure/Dropdown.spec.tsx +333 -0
  407. package/tests/components/disclosure/Tabs.spec.tsx +220 -0
  408. package/tests/components/disclosure/dialogZIndex.spec.ts +45 -0
  409. package/tests/components/display/Alert.spec.tsx +47 -0
  410. package/tests/components/display/Barcode.spec.tsx +61 -0
  411. package/tests/components/display/Card.spec.tsx +41 -0
  412. package/tests/components/display/Link.spec.tsx +62 -0
  413. package/tests/components/display/Tag.spec.tsx +47 -0
  414. package/tests/components/features/address/AddressSearch.spec.tsx +45 -0
  415. package/tests/components/features/crud-detail/CrudDetail.spec.tsx +537 -0
  416. package/tests/components/features/crud-sheet/CrudSheet.spec.tsx +491 -0
  417. package/tests/components/features/crudRegistry.spec.ts +119 -0
  418. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +482 -0
  419. package/tests/components/features/permission-table/PermissionTable.spec.tsx +288 -0
  420. package/tests/components/features/shared-data/SharedDataSelectList.spec.tsx +448 -0
  421. package/tests/components/feedback/busy/BusyContainer.spec.tsx +80 -0
  422. package/tests/components/feedback/notification/LiveRegion.spec.tsx +52 -0
  423. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +187 -0
  424. package/tests/components/feedback/notification/NotificationBell.spec.tsx +226 -0
  425. package/tests/components/feedback/notification/NotificationContext.spec.tsx +362 -0
  426. package/tests/components/feedback/print/Print.spec.tsx +45 -0
  427. package/tests/components/form-control/Button.spec.tsx +119 -0
  428. package/tests/components/form-control/Invalid.spec.tsx +131 -0
  429. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +137 -0
  430. package/tests/components/form-control/checkbox/CheckboxGroup.spec.tsx +108 -0
  431. package/tests/components/form-control/checkbox/Radio.spec.tsx +138 -0
  432. package/tests/components/form-control/checkbox/RadioGroup.spec.tsx +108 -0
  433. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +94 -0
  434. package/tests/components/form-control/combobox/Combobox.spec.tsx +253 -0
  435. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +88 -0
  436. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +208 -0
  437. package/tests/components/form-control/field/DatePicker.spec.tsx +381 -0
  438. package/tests/components/form-control/field/DateTimePicker.spec.tsx +383 -0
  439. package/tests/components/form-control/field/NumberInput.spec.tsx +371 -0
  440. package/tests/components/form-control/field/TextInput.spec.tsx +341 -0
  441. package/tests/components/form-control/field/Textarea.spec.tsx +224 -0
  442. package/tests/components/form-control/field/TimePicker.spec.tsx +315 -0
  443. package/tests/components/form-control/numpad/Numpad.spec.tsx +248 -0
  444. package/tests/components/form-control/select/Select.spec.tsx +676 -0
  445. package/tests/components/form-control/select/SelectItem.spec.tsx +174 -0
  446. package/tests/components/layout/FormGroup.spec.tsx +104 -0
  447. package/tests/components/layout/FormTable.spec.tsx +43 -0
  448. package/tests/components/layout/sidebar/Sidebar.spec.tsx +192 -0
  449. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +261 -0
  450. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +219 -0
  451. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +133 -0
  452. package/tests/components/layout/topbar/TopbarActions.spec.tsx +77 -0
  453. package/tests/components/layout/topbar/TopbarContainer.spec.tsx +38 -0
  454. package/tests/components/layout/topbar/createTopbarActions.spec.tsx +66 -0
  455. package/tests/directives/ripple.spec.tsx +130 -0
  456. package/tests/helpers/createAppStructure.spec.tsx +843 -0
  457. package/tests/helpers/mergeStyles.spec.ts +172 -0
  458. package/tests/hooks/createControllableSignal.spec.ts +194 -0
  459. package/tests/hooks/createIMEHandler.spec.ts +80 -0
  460. package/tests/hooks/createMountTransition.spec.ts +86 -0
  461. package/tests/hooks/useLocalStorage.spec.tsx +223 -0
  462. package/tests/hooks/useLogger.spec.tsx +116 -0
  463. package/tests/hooks/usePrint.spec.tsx +134 -0
  464. package/tests/hooks/useRouterLink.spec.tsx +183 -0
  465. package/tests/hooks/useSyncConfig.spec.tsx +304 -0
  466. package/tests/providers/ClipboardProvider.spec.tsx +20 -0
  467. package/tests/providers/ConfigContext.spec.tsx +42 -0
  468. package/tests/providers/ErrorLoggerProvider.spec.tsx +73 -0
  469. package/tests/providers/LoggerContext.spec.tsx +76 -0
  470. package/tests/providers/PwaUpdateProvider.spec.tsx +22 -0
  471. package/tests/providers/ServiceClientContext.spec.tsx +88 -0
  472. package/tests/providers/SyncStorageContext.spec.tsx +77 -0
  473. package/tests/providers/i18n/I18nContext.spec.tsx +110 -0
  474. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +401 -0
  475. package/tests/vitest-env.d.ts +1 -0
  476. package/dist/components/form-control/select-list/SelectList.d.ts +0 -54
  477. package/dist/components/form-control/select-list/SelectList.d.ts.map +0 -1
  478. package/dist/components/form-control/select-list/SelectList.js +0 -280
  479. package/dist/components/form-control/select-list/SelectList.js.map +0 -6
  480. package/dist/components/form-control/select-list/SelectListContext.d.ts +0 -13
  481. package/dist/components/form-control/select-list/SelectListContext.d.ts.map +0 -1
  482. package/dist/components/form-control/select-list/SelectListContext.js +0 -14
  483. package/dist/components/form-control/select-list/SelectListContext.js.map +0 -6
  484. package/docs/data-components.md +0 -782
  485. package/docs/disclosure.md +0 -254
  486. package/docs/display.md +0 -153
  487. package/docs/feedback.md +0 -238
  488. package/docs/form-controls.md +0 -1068
  489. package/docs/helpers.md +0 -54
  490. package/docs/hooks.md +0 -588
  491. package/docs/layout.md +0 -384
  492. package/docs/providers.md +0 -211
  493. package/docs/styling.md +0 -184
  494. package/src/components/form-control/select-list/SelectList.tsx +0 -385
  495. package/src/components/form-control/select-list/SelectListContext.ts +0 -23
@@ -3,6 +3,7 @@ import { DateOnly } from "@simplysm/core-common";
3
3
  import clsx from "clsx";
4
4
  import { twMerge } from "tailwind-merge";
5
5
  import { createControllableSignal } from "../../../hooks/createControllableSignal";
6
+ import { useI18nOptional } from "../../../providers/i18n/I18nContext";
6
7
 
7
8
  export interface CalendarProps<TValue> extends Omit<
8
9
  JSX.HTMLAttributes<HTMLTableElement>,
@@ -17,8 +18,6 @@ export interface CalendarProps<TValue> extends Omit<
17
18
  minDaysInFirstWeek?: number;
18
19
  }
19
20
 
20
- const WEEKS = ["일", "월", "화", "수", "목", "금", "토"];
21
-
22
21
  const baseClass = clsx(
23
22
  "w-full",
24
23
  "border-separate border-spacing-0",
@@ -63,9 +62,16 @@ function CalendarBase<TValue>(props: CalendarProps<TValue>) {
63
62
  onChange: () => local.onYearMonthChange,
64
63
  });
65
64
 
65
+ const i18n = useI18nOptional();
66
+ const weekNames = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"] as const;
67
+
66
68
  const weekHeaders = createMemo(() => {
67
69
  const start = weekStartDay();
68
- return Array.from({ length: 7 }, (_, i) => WEEKS[(start + i) % 7]);
70
+ return Array.from({ length: 7 }, (_, i) => {
71
+ const key = weekNames[(start + i) % 7];
72
+ return i18n?.t(`calendar.weeks.${key}`) ??
73
+ { sun: "Sun", mon: "Mon", tue: "Tue", wed: "Wed", thu: "Thu", fri: "Fri", sat: "Sat" }[key];
74
+ });
69
75
  });
70
76
 
71
77
  const dataTable = createMemo(() => {
@@ -73,7 +79,7 @@ function CalendarBase<TValue>(props: CalendarProps<TValue>) {
73
79
  const items = local.items;
74
80
  const getDate = local.getItemDate;
75
81
 
76
- // 아이템을 날짜별로 그룹핑 (O(N))
82
+ // Group items by date (O(N))
77
83
  const itemMap = new Map<number, { item: TValue; index: number }[]>();
78
84
  for (let i = 0; i < items.length; i++) {
79
85
  const date = getDate(items[i], i);
@@ -108,7 +108,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
108
108
  }
109
109
  e.dataTransfer?.setData("text/plain", "");
110
110
  const heightOnDrag = hostRef.offsetHeight;
111
- // 브라우저가 드래그 고스트 이미지를 캡처한 숨기기 위해 프레임 지연
111
+ // Delay one frame so the browser can capture the drag ghost image before hiding
112
112
  requestAnimationFrame(() => {
113
113
  boardCtx.setDragCard({
114
114
  value: local.value,
@@ -144,7 +144,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
144
144
  boardCtx.onDropTo(laneCtx.value(), local.value, current?.position ?? "before");
145
145
  };
146
146
 
147
- // Shift+Click 다중 선택 토글
147
+ // Shift+Click multi-select toggle
148
148
  const handleClick = (e: MouseEvent) => {
149
149
  if (longPressed) {
150
150
  e.preventDefault();
@@ -160,7 +160,7 @@ const KanbanCard: ParentComponent<KanbanCardProps> = (props) => {
160
160
  boardCtx.toggleSelection(local.value);
161
161
  };
162
162
 
163
- // Long press → 해당 카드만 단독 선택 (다른 선택 모두 해제)
163
+ // Long press → select only this card (deselect all others)
164
164
  let longPressTimer: ReturnType<typeof setTimeout> | undefined;
165
165
  let longPressed = false;
166
166
 
@@ -329,10 +329,10 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
329
329
  const [dropTarget, setDropTarget] = createSignal<KanbanDropTarget>();
330
330
  const [dragEnterCount, setDragEnterCount] = createSignal(0);
331
331
 
332
- // 드래그 오버 상태: 카운터 > 0 && 드래그 중
332
+ // Drag-over state: counter > 0 && dragging
333
333
  const isDragOverLane = () => dragEnterCount() > 0 && boardCtx.dragCard() != null;
334
334
 
335
- // dragCard 리셋되면 dropTarget, 카운터도 초기화
335
+ // When dragCard resets, also reset dropTarget and counter
336
336
  createEffect(() => {
337
337
  if (!boardCtx.dragCard()) {
338
338
  setDragEnterCount(0);
@@ -340,7 +340,7 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
340
340
  }
341
341
  });
342
342
 
343
- // Lane 이탈 감지: dragenter/dragleave 카운터
343
+ // Lane exit detection: dragenter/dragleave counter
344
344
  const handleLaneDragEnter = () => {
345
345
  setDragEnterCount((c) => c + 1);
346
346
  };
@@ -353,23 +353,23 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
353
353
  }
354
354
  };
355
355
 
356
- // 영역 dragover (카드가 없거나 카드 아래 영역)
356
+ // Empty area dragover (no cards, or below cards)
357
357
  const handleLaneDragOver = (e: DragEvent) => {
358
358
  if (!boardCtx.dragCard()) return;
359
359
  e.preventDefault();
360
360
  };
361
361
 
362
- // 영역 또는 placeholder drop
362
+ // Empty area or placeholder drop
363
363
  const handleLaneDrop = (e: DragEvent) => {
364
364
  if (!boardCtx.dragCard()) return;
365
365
  e.preventDefault();
366
366
 
367
367
  const current = dropTarget();
368
368
  if (current) {
369
- // placeholder 카드 사이 gap drop된 경우 — dropTarget 위치 사용
369
+ // Dropped on placeholder or gap between cardsuse dropTarget position
370
370
  boardCtx.onDropTo(local.value, current.value, current.position);
371
371
  } else {
372
- // 레인에 drop된 경우끝에 추가
372
+ // Dropped onto an empty lane append to end
373
373
  boardCtx.onDropTo(local.value, undefined, undefined);
374
374
  }
375
375
  };
@@ -391,7 +391,7 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
391
391
  const hasHeader = () =>
392
392
  local.collapsible || hasSelectableCards() || title() != null || tools() != null;
393
393
 
394
- // placeholder div (Lane 소유, DOM 직접 제어)
394
+ // Placeholder div (owned by Lane, direct DOM control)
395
395
  let bodyRef: HTMLDivElement | undefined;
396
396
  const placeholderEl = document.createElement("div");
397
397
  placeholderEl.className = placeholderBaseClass;
@@ -407,14 +407,14 @@ const KanbanLane: ParentComponent<KanbanLaneProps> = (props) => {
407
407
  return;
408
408
  }
409
409
 
410
- // placeholder 높이 설정
410
+ // Set placeholder height
411
411
  placeholderEl.style.height = `${dc.heightOnDrag}px`;
412
412
 
413
- // 삽입 위치 계산
413
+ // Calculate insertion position
414
414
  const referenceNode =
415
415
  target.position === "before" ? target.element : target.element.nextElementSibling;
416
416
 
417
- // 이미 올바른 위치면 DOM 조작 생략
417
+ // Skip DOM manipulation if already in the correct position
418
418
  if (placeholderEl.parentNode === bodyRef && placeholderEl.nextSibling === referenceNode) {
419
419
  return;
420
420
  }
@@ -1,7 +1,7 @@
1
1
  import { createContext, useContext, type Accessor, type Setter } from "solid-js";
2
2
  import type { SlotAccessor } from "../../../hooks/createSlotSignal";
3
3
 
4
- // ── 타입 ──────────────────────────────────────────────────────
4
+ // ── Types ──────────────────────────────────────────────────────
5
5
 
6
6
  export interface KanbanCardRef<L = unknown, T = unknown> {
7
7
  value: T | undefined;
@@ -44,7 +44,7 @@ export const KanbanContext = createContext<KanbanContextValue>();
44
44
  export function useKanbanContext(): KanbanContextValue {
45
45
  const context = useContext(KanbanContext);
46
46
  if (!context) {
47
- throw new Error("useKanbanContext Kanban 내부에서만 사용할 있습니다");
47
+ throw new Error("useKanbanContext can only be used inside Kanban");
48
48
  }
49
49
  return context;
50
50
  }
@@ -70,7 +70,7 @@ export const KanbanLaneContext = createContext<KanbanLaneContextValue>();
70
70
  export function useKanbanLaneContext(): KanbanLaneContextValue {
71
71
  const context = useContext(KanbanLaneContext);
72
72
  if (!context) {
73
- throw new Error("useKanbanLaneContext Kanban.Lane 내부에서만 사용할 있습니다");
73
+ throw new Error("useKanbanLaneContext can only be used inside Kanban.Lane");
74
74
  }
75
75
  return context;
76
76
  }
@@ -18,20 +18,20 @@ const insetClass = clsx(
18
18
 
19
19
  export interface ListProps extends JSX.HTMLAttributes<HTMLDivElement> {
20
20
  /**
21
- * 투명 배경 스타일 적용
21
+ * Apply transparent background style
22
22
  */
23
23
  inset?: boolean;
24
24
  }
25
25
 
26
26
  /**
27
- * ListItem들을 담는 컨테이너 컴포넌트
27
+ * Container component for ListItems
28
28
  *
29
- * 트리뷰 스타일 키보드 네비게이션 지원:
30
- * - `Space`/`Enter`: 현재 항목 토글
31
- * - `ArrowUp`/`ArrowDown`: 이전/다음 항목으로 포커스 이동
32
- * - `Home`/`End`: 번째/마지막 항목으로 포커스 이동
33
- * - `ArrowRight`: 닫혀있으면 열기, 열려있으면 번째 자식으로 포커스
34
- * - `ArrowLeft`: 열려있으면 닫기, 닫혀있으면 부모로 포커스
29
+ * Supports tree-view style keyboard navigation:
30
+ * - `Space`/`Enter`: toggle current item
31
+ * - `ArrowUp`/`ArrowDown`: move focus to previous/next item
32
+ * - `Home`/`End`: move focus to first/last item
33
+ * - `ArrowRight`: open if closed, or focus first child if open
34
+ * - `ArrowLeft`: close if open, or focus parent if closed
35
35
  *
36
36
  * @example
37
37
  * ```tsx
@@ -78,7 +78,7 @@ const ListBase: ParentComponent<ListProps> = (props) => {
78
78
  if (!isOpen) {
79
79
  current.click();
80
80
  } else {
81
- // button의 다음 형제 요소(Collapse) 내에서 번째 자식 항목 찾기
81
+ // Find the first child item inside the next sibling (Collapse) of the button
82
82
  const collapse = current.nextElementSibling;
83
83
  const nestedItem = collapse?.querySelector<HTMLElement>("[data-list-item]");
84
84
  nestedItem?.focus();
@@ -92,7 +92,7 @@ const ListBase: ParentComponent<ListProps> = (props) => {
92
92
  if (hasChildren && isOpen) {
93
93
  current.click();
94
94
  } else {
95
- // Collapse 이전 형제가 부모 button
95
+ // The previous sibling of the Collapse is the parent button
96
96
  const parentItem = current.closest("[data-collapse]")
97
97
  ?.previousElementSibling as HTMLElement | null;
98
98
  if (parentItem?.hasAttribute("data-list-item")) {
@@ -1,7 +1,7 @@
1
1
  import { createContext, useContext } from "solid-js";
2
2
 
3
3
  /**
4
- * List context - 중첩 level 전달용
4
+ * List context - for passing nested level
5
5
  */
6
6
  export interface ListContextValue {
7
7
  level: number;
@@ -1,7 +1,7 @@
1
1
  import clsx from "clsx";
2
2
  import { borderDefault, type ComponentSize } from "../../../styles/tokens.styles";
3
3
 
4
- // 기본 아이템 스타일
4
+ // Base item style
5
5
  export const listItemBaseClass = clsx(
6
6
  "flex",
7
7
  "items-center",
@@ -17,7 +17,7 @@ export const listItemBaseClass = clsx(
17
17
  "hover:bg-base-500/10 dark:hover:bg-base-700",
18
18
  );
19
19
 
20
- // 사이즈별 스타일
20
+ // Size-based styles
21
21
  export const listItemSizeClasses: Record<ComponentSize, string> = {
22
22
  xs: clsx("px-0.5 py-0"),
23
23
  sm: clsx("px-1 py-0.5"),
@@ -25,7 +25,7 @@ export const listItemSizeClasses: Record<ComponentSize, string> = {
25
25
  xl: clsx("px-3 py-2"),
26
26
  };
27
27
 
28
- // 선택된 상태
28
+ // Selected state
29
29
  export const listItemSelectedClass = clsx(
30
30
  "bg-primary-100",
31
31
  "dark:bg-primary-800/50",
@@ -34,18 +34,18 @@ export const listItemSelectedClass = clsx(
34
34
  "dark:hover:bg-primary-700",
35
35
  );
36
36
 
37
- // 비활성화 상태
37
+ // Disabled state
38
38
  export const listItemDisabledClass = clsx("pointer-events-none cursor-auto opacity-50");
39
39
 
40
- // 읽기 전용 상태
40
+ // Readonly state
41
41
  export const listItemReadonlyClass = clsx("cursor-auto select-text hover:bg-transparent");
42
42
 
43
- // 들여쓰기 가이드 (중첩 아이템용)
43
+ // Indent guide (for nested items)
44
44
  export const listItemIndentGuideClass = clsx("ml-4 w-2 border-l", borderDefault);
45
45
 
46
- // 아이템 콘텐츠 영역
46
+ // Item content area
47
47
  export const listItemContentClass = clsx("flex flex-1 flex-row", "items-center gap-1", "text-left");
48
48
 
49
- // 선택 아이콘 색상
49
+ // Selection icon color
50
50
  export const getListItemSelectedIconClass = (selected: boolean) =>
51
51
  clsx(selected ? "text-primary-600 dark:text-primary-400" : "text-black/30 dark:text-white/30");
@@ -46,64 +46,64 @@ export interface ListItemProps extends Omit<
46
46
  "onClick"
47
47
  > {
48
48
  /**
49
- * 중첩 리스트의 열림 상태 (controlled 모드)
49
+ * Open state of the nested list (controlled mode)
50
50
  */
51
51
  open?: boolean;
52
52
 
53
53
  /**
54
- * 열림 상태 변경 콜백 (있으면 controlled 모드)
54
+ * Callback for open state change (enables controlled mode)
55
55
  */
56
56
  onOpenChange?: (open: boolean) => void;
57
57
 
58
58
  /**
59
- * 선택된 상태
59
+ * Selected state
60
60
  */
61
61
  selected?: boolean;
62
62
 
63
63
  /**
64
- * 읽기 전용 (클릭 비활성화, 일반 색상 유지)
64
+ * Readonly (click disabled, normal color retained)
65
65
  */
66
66
  readonly?: boolean;
67
67
 
68
68
  /**
69
- * 비활성화 (클릭 불가, 흐려짐)
69
+ * Disabled (unclickable, dimmed)
70
70
  */
71
71
  disabled?: boolean;
72
72
 
73
73
  /**
74
- * 선택 표시 아이콘 컴포넌트 (중첩 List가 없을 때만 표시)
74
+ * Selection icon component (shown only when no nested List)
75
75
  */
76
76
  selectedIcon?: Component<IconProps>;
77
77
 
78
78
  /**
79
- * 아이템 크기
79
+ * Item size
80
80
  */
81
81
  size?: ComponentSize;
82
82
 
83
83
  /**
84
- * 클릭 핸들러 (중첩 List가 없을 호출)
84
+ * Click handler (called when no nested List)
85
85
  */
86
86
  onClick?: (e: MouseEvent) => void;
87
87
  }
88
88
 
89
89
  /**
90
- * 리스트 아이템 컴포넌트
90
+ * List item component
91
91
  *
92
- * `ListItem.Children`으로 중첩 리스트를 포함하면 아코디언 동작을 지원한다.
93
- * controlled 모드로 사용하려면 open onOpenChange 함께 제공한다.
92
+ * Supports accordion behavior when a nested list is included via `ListItem.Children`.
93
+ * Provide both open and onOpenChange for controlled mode.
94
94
  *
95
95
  * @example
96
96
  * ```tsx
97
- * // 기본 사용
97
+ * // Basic usage
98
98
  * <List.Item>Simple item</List.Item>
99
99
  *
100
- * // 선택 상태
100
+ * // Selected state
101
101
  * <List.Item selected>Selected item</List.Item>
102
102
  *
103
- * // 선택 아이콘
103
+ * // Selection icon
104
104
  * <List.Item selectedIcon={IconCheck} selected>Icon selection</List.Item>
105
105
  *
106
- * // 중첩 리스트 (아코디언)
106
+ * // Nested list (accordion)
107
107
  * <List.Item>
108
108
  * Folder
109
109
  * <List.Item.Children>
@@ -44,22 +44,22 @@ export const insetTableClass = clsx(
44
44
 
45
45
  export const defaultContainerClass = clsx("border", borderDefault, "rounded");
46
46
 
47
- // 정렬 가능 헤더 클릭 가능 표시
47
+ // Sortable headershows clickable indicator
48
48
  export const sortableThClass = clsx("cursor-pointer", "hover:underline");
49
49
 
50
- // 정렬 아이콘 영역
50
+ // Sort icon area
51
51
  export const sortIconClass = clsx("px-1 py-0.5", "bg-base-100 dark:bg-base-900");
52
52
 
53
- // 상단 툴바 (설정 버튼 + 페이지네이션)
53
+ // Top toolbar (settings button + pagination)
54
54
  export const toolbarClass = clsx("flex items-center gap-2", "px-2 py-1", "border-b", borderDefault);
55
55
 
56
- // 고정 컬럼 기본 (sticky)
56
+ // Fixed column base (sticky)
57
57
  export const fixedClass = "sticky";
58
58
 
59
- // 고정/비고정 경계 시각 효과고정 컬럼의 마지막 셀에 적용
59
+ // Visual effect for fixed/unfixed boundary applied to last cell of fixed column
60
60
  export const fixedLastClass = clsx("border-r border-r-base-400", "dark:border-r-base-600");
61
61
 
62
- // 리사이저 핸들 (헤더 우측 드래그 영역)
62
+ // Resizer handle (right-side drag area of header cell)
63
63
  export const resizerClass = clsx(
64
64
  "absolute inset-y-0 right-0",
65
65
  "w-1",
@@ -68,7 +68,7 @@ export const resizerClass = clsx(
68
68
  "hover:bg-primary-300 dark:hover:bg-primary-600",
69
69
  );
70
70
 
71
- // 드래그 세로 점선 인디케이터
71
+ // Vertical dashed indicator while dragging
72
72
  export const resizeIndicatorClass = clsx(
73
73
  "absolute inset-y-0",
74
74
  "w-0 border-l-2 border-dashed border-primary-500",
@@ -76,7 +76,7 @@ export const resizeIndicatorClass = clsx(
76
76
  "z-[7]",
77
77
  );
78
78
 
79
- // 기능 컬럼 기본 (확장/선택 컬럼 공통)
79
+ // Feature column base (expand/select column common)
80
80
  export const featureThClass = clsx(
81
81
  "bg-base-100 dark:bg-base-800",
82
82
  "border-b border-r",
@@ -94,13 +94,13 @@ export const featureTdClass = clsx(
94
94
  "h-px",
95
95
  );
96
96
 
97
- // 확장 컬럼 깊이 가이드래퍼 (토글 아이콘과 같은 너비, 세로선 중앙 정렬)
97
+ // Expand column depth guidewrapper (same width as toggle icon, vertically centered line)
98
98
  export const expandIndentGuideClass = clsx("mr-0.5 w-3 self-stretch", "flex justify-end");
99
99
 
100
- // 확장 컬럼 깊이 가이드세로선
100
+ // Expand column depth guidevertical line
101
101
  export const expandIndentGuideLineClass = clsx("w-0 self-stretch", "border-r", borderDefault);
102
102
 
103
- // 확장 토글 버튼
103
+ // Expand toggle button
104
104
  export const expandToggleClass = clsx(
105
105
  "flex items-center justify-center",
106
106
  "size-6",
@@ -109,7 +109,7 @@ export const expandToggleClass = clsx(
109
109
  "hover:bg-base-200 dark:hover:bg-base-600",
110
110
  );
111
111
 
112
- // 선택 컬럼single 모드 아이콘 래퍼
112
+ // Select columnicon wrapper for single mode
113
113
  export const selectSingleClass = clsx(
114
114
  "flex items-center justify-center",
115
115
  "size-6",
@@ -117,13 +117,13 @@ export const selectSingleClass = clsx(
117
117
  "rounded",
118
118
  );
119
119
 
120
- // single 모드선택됨
120
+ // Single modeselected
121
121
  export const selectSingleSelectedClass = clsx("text-primary-500", "dark:text-primary-400");
122
122
 
123
- // single 모드미선택
123
+ // Single modeunselected
124
124
  export const selectSingleUnselectedClass = clsx("text-base-300", "dark:text-base-600");
125
125
 
126
- // 드래그 핸들 기능 컬럼
126
+ // Drag handle feature column
127
127
  export const reorderHandleClass = clsx(
128
128
  "flex items-center justify-center",
129
129
  "size-6",
@@ -132,7 +132,7 @@ export const reorderHandleClass = clsx(
132
132
  "hover:text-base-600 dark:hover:text-base-400",
133
133
  );
134
134
 
135
- // 드래그 인디케이터 (before/after 수평선)
135
+ // Drag indicator (before/after horizontal line)
136
136
  export const reorderIndicatorClass = clsx(
137
137
  "absolute inset-x-0",
138
138
  "h-0 border-t-2 border-primary-500",
@@ -140,31 +140,31 @@ export const reorderIndicatorClass = clsx(
140
140
  "z-[7]",
141
141
  );
142
142
 
143
- // 기능 컬럼 헤더 내부 래퍼 (확장/선택 )
143
+ // Feature column header inner wrapper (expand/select, etc.)
144
144
  export const featureCellWrapperClass = clsx("flex items-center", "px-1");
145
145
 
146
- // 기능 컬럼 바디 내부 래퍼 (확장/선택/재정렬 전체 높이)
146
+ // Feature column body inner wrapper (expand/select/reorder, etc.full height)
147
147
  export const featureCellBodyWrapperClass = clsx("flex h-full items-center", "px-1");
148
148
 
149
- // 기능 컬럼 헤더 클릭 가능 래퍼 (전체 선택 )
149
+ // Feature column header clickable wrapper (select all, etc.)
150
150
  export const featureCellClickableClass = clsx(
151
151
  "flex cursor-pointer items-center justify-center",
152
152
  "px-1",
153
153
  );
154
154
 
155
- // 기능 컬럼 바디 클릭 가능 래퍼 (선택/재정렬 전체 높이)
155
+ // Feature column body clickable wrapper (select/reorder, etc.full height)
156
156
  export const featureCellBodyClickableClass = clsx(
157
157
  "flex h-full cursor-pointer items-center justify-center",
158
158
  "px-1",
159
159
  );
160
160
 
161
- // 재정렬 핸들 래퍼 (touch-none 추가)
161
+ // Reorder handle wrapper (with touch-none added)
162
162
  export const reorderCellWrapperClass = clsx(
163
163
  "flex h-full touch-none items-center justify-center",
164
164
  "px-1",
165
165
  );
166
166
 
167
- // 설정 버튼
167
+ // Settings button
168
168
  export const configButtonClass = clsx(
169
169
  "flex items-center justify-center",
170
170
  "size-6 rounded",