@simplysm/solid 13.0.0-beta.6

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 (745) hide show
  1. package/.cache/typecheck-browser.tsbuildinfo +1 -0
  2. package/.cache/typecheck-tests-browser.tsbuildinfo +1 -0
  3. package/README.md +1652 -0
  4. package/dist/components/data/Pagination.js +110 -0
  5. package/dist/components/data/Pagination.js.map +7 -0
  6. package/dist/components/data/Table.js +34 -0
  7. package/dist/components/data/Table.js.map +7 -0
  8. package/dist/components/data/calendar/Calendar.js +90 -0
  9. package/dist/components/data/calendar/Calendar.js.map +7 -0
  10. package/dist/components/data/kanban/Kanban.js +367 -0
  11. package/dist/components/data/kanban/Kanban.js.map +7 -0
  12. package/dist/components/data/kanban/KanbanContext.js +24 -0
  13. package/dist/components/data/kanban/KanbanContext.js.map +7 -0
  14. package/dist/components/data/list/List.js +133 -0
  15. package/dist/components/data/list/List.js.map +7 -0
  16. package/dist/components/data/list/ListContext.js +8 -0
  17. package/dist/components/data/list/ListContext.js.map +7 -0
  18. package/dist/components/data/list/ListItem.js +101 -0
  19. package/dist/components/data/list/ListItem.js.map +7 -0
  20. package/dist/components/data/list/ListItem.styles.js +43 -0
  21. package/dist/components/data/list/ListItem.styles.js.map +7 -0
  22. package/dist/components/data/permission-table/PermissionTable.js +189 -0
  23. package/dist/components/data/permission-table/PermissionTable.js.map +7 -0
  24. package/dist/components/data/sheet/DataSheet.js +907 -0
  25. package/dist/components/data/sheet/DataSheet.js.map +7 -0
  26. package/dist/components/data/sheet/DataSheet.styles.js +142 -0
  27. package/dist/components/data/sheet/DataSheet.styles.js.map +7 -0
  28. package/dist/components/data/sheet/DataSheetColumn.js +28 -0
  29. package/dist/components/data/sheet/DataSheetColumn.js.map +7 -0
  30. package/dist/components/data/sheet/DataSheetConfigDialog.js +83 -0
  31. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +7 -0
  32. package/dist/components/data/sheet/sheetUtils.js +125 -0
  33. package/dist/components/data/sheet/sheetUtils.js.map +7 -0
  34. package/dist/components/data/sheet/types.js +1 -0
  35. package/dist/components/data/sheet/types.js.map +7 -0
  36. package/dist/components/disclosure/Collapse.js +45 -0
  37. package/dist/components/disclosure/Collapse.js.map +7 -0
  38. package/dist/components/disclosure/Dialog.js +367 -0
  39. package/dist/components/disclosure/Dialog.js.map +7 -0
  40. package/dist/components/disclosure/DialogContext.js +14 -0
  41. package/dist/components/disclosure/DialogContext.js.map +7 -0
  42. package/dist/components/disclosure/DialogInstanceContext.js +10 -0
  43. package/dist/components/disclosure/DialogInstanceContext.js.map +7 -0
  44. package/dist/components/disclosure/DialogProvider.js +88 -0
  45. package/dist/components/disclosure/DialogProvider.js.map +7 -0
  46. package/dist/components/disclosure/Dropdown.js +244 -0
  47. package/dist/components/disclosure/Dropdown.js.map +7 -0
  48. package/dist/components/disclosure/Tabs.js +75 -0
  49. package/dist/components/disclosure/Tabs.js.map +7 -0
  50. package/dist/components/disclosure/dialogZIndex.js +32 -0
  51. package/dist/components/disclosure/dialogZIndex.js.map +7 -0
  52. package/dist/components/display/Alert.js +18 -0
  53. package/dist/components/display/Alert.js.map +7 -0
  54. package/dist/components/display/Barcode.js +39 -0
  55. package/dist/components/display/Barcode.js.map +7 -0
  56. package/dist/components/display/Card.js +21 -0
  57. package/dist/components/display/Card.js.map +7 -0
  58. package/dist/components/display/Echarts.js +33 -0
  59. package/dist/components/display/Echarts.js.map +7 -0
  60. package/dist/components/display/Icon.js +10 -0
  61. package/dist/components/display/Icon.js.map +7 -0
  62. package/dist/components/display/Tag.js +20 -0
  63. package/dist/components/display/Tag.js.map +7 -0
  64. package/dist/components/feedback/Progress.js +37 -0
  65. package/dist/components/feedback/Progress.js.map +7 -0
  66. package/dist/components/feedback/loading/LoadingContainer.js +83 -0
  67. package/dist/components/feedback/loading/LoadingContainer.js.map +7 -0
  68. package/dist/components/feedback/loading/LoadingContext.js +14 -0
  69. package/dist/components/feedback/loading/LoadingContext.js.map +7 -0
  70. package/dist/components/feedback/loading/LoadingProvider.js +47 -0
  71. package/dist/components/feedback/loading/LoadingProvider.js.map +7 -0
  72. package/dist/components/feedback/notification/NotificationBanner.js +61 -0
  73. package/dist/components/feedback/notification/NotificationBanner.js.map +7 -0
  74. package/dist/components/feedback/notification/NotificationBell.js +85 -0
  75. package/dist/components/feedback/notification/NotificationBell.js.map +7 -0
  76. package/dist/components/feedback/notification/NotificationContext.js +14 -0
  77. package/dist/components/feedback/notification/NotificationContext.js.map +7 -0
  78. package/dist/components/feedback/notification/NotificationProvider.js +101 -0
  79. package/dist/components/feedback/notification/NotificationProvider.js.map +7 -0
  80. package/dist/components/feedback/notification/index.js +5 -0
  81. package/dist/components/feedback/notification/index.js.map +7 -0
  82. package/dist/components/feedback/print/Print.js +12 -0
  83. package/dist/components/feedback/print/Print.js.map +7 -0
  84. package/dist/components/feedback/print/PrintInstanceContext.js +10 -0
  85. package/dist/components/feedback/print/PrintInstanceContext.js.map +7 -0
  86. package/dist/components/form-control/Button.js +74 -0
  87. package/dist/components/form-control/Button.js.map +7 -0
  88. package/dist/components/form-control/DropdownTrigger.styles.js +44 -0
  89. package/dist/components/form-control/DropdownTrigger.styles.js.map +7 -0
  90. package/dist/components/form-control/ThemeToggle.js +57 -0
  91. package/dist/components/form-control/ThemeToggle.js.map +7 -0
  92. package/dist/components/form-control/checkbox/Checkbox.js +78 -0
  93. package/dist/components/form-control/checkbox/Checkbox.js.map +7 -0
  94. package/dist/components/form-control/checkbox/Checkbox.styles.js +57 -0
  95. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +7 -0
  96. package/dist/components/form-control/checkbox/CheckboxGroup.js +65 -0
  97. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +7 -0
  98. package/dist/components/form-control/checkbox/Radio.js +78 -0
  99. package/dist/components/form-control/checkbox/Radio.js.map +7 -0
  100. package/dist/components/form-control/checkbox/RadioGroup.js +60 -0
  101. package/dist/components/form-control/checkbox/RadioGroup.js.map +7 -0
  102. package/dist/components/form-control/color-picker/ColorPicker.js +55 -0
  103. package/dist/components/form-control/color-picker/ColorPicker.js.map +7 -0
  104. package/dist/components/form-control/combobox/Combobox.js +214 -0
  105. package/dist/components/form-control/combobox/Combobox.js.map +7 -0
  106. package/dist/components/form-control/combobox/ComboboxContext.js +14 -0
  107. package/dist/components/form-control/combobox/ComboboxContext.js.map +7 -0
  108. package/dist/components/form-control/combobox/ComboboxItem.js +49 -0
  109. package/dist/components/form-control/combobox/ComboboxItem.js.map +7 -0
  110. package/dist/components/form-control/date-range-picker/DateRangePicker.js +136 -0
  111. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +7 -0
  112. package/dist/components/form-control/editor/EditorToolbar.js +290 -0
  113. package/dist/components/form-control/editor/EditorToolbar.js.map +7 -0
  114. package/dist/components/form-control/editor/RichTextEditor.js +114 -0
  115. package/dist/components/form-control/editor/RichTextEditor.js.map +7 -0
  116. package/dist/components/form-control/field/DatePicker.js +167 -0
  117. package/dist/components/form-control/field/DatePicker.js.map +7 -0
  118. package/dist/components/form-control/field/DateTimePicker.js +168 -0
  119. package/dist/components/form-control/field/DateTimePicker.js.map +7 -0
  120. package/dist/components/form-control/field/Field.styles.js +35 -0
  121. package/dist/components/form-control/field/Field.styles.js.map +7 -0
  122. package/dist/components/form-control/field/NumberInput.js +193 -0
  123. package/dist/components/form-control/field/NumberInput.js.map +7 -0
  124. package/dist/components/form-control/field/TextInput.js +178 -0
  125. package/dist/components/form-control/field/TextInput.js.map +7 -0
  126. package/dist/components/form-control/field/Textarea.js +186 -0
  127. package/dist/components/form-control/field/Textarea.js.map +7 -0
  128. package/dist/components/form-control/field/TimePicker.js +138 -0
  129. package/dist/components/form-control/field/TimePicker.js.map +7 -0
  130. package/dist/components/form-control/numpad/Numpad.js +107 -0
  131. package/dist/components/form-control/numpad/Numpad.js.map +7 -0
  132. package/dist/components/form-control/select/Select.js +196 -0
  133. package/dist/components/form-control/select/Select.js.map +7 -0
  134. package/dist/components/form-control/select/SelectContext.js +14 -0
  135. package/dist/components/form-control/select/SelectContext.js.map +7 -0
  136. package/dist/components/form-control/select/SelectItem.js +65 -0
  137. package/dist/components/form-control/select/SelectItem.js.map +7 -0
  138. package/dist/components/form-control/state-preset/StatePreset.js +195 -0
  139. package/dist/components/form-control/state-preset/StatePreset.js.map +7 -0
  140. package/dist/components/layout/FormGroup.js +34 -0
  141. package/dist/components/layout/FormGroup.js.map +7 -0
  142. package/dist/components/layout/FormTable.js +24 -0
  143. package/dist/components/layout/FormTable.js.map +7 -0
  144. package/dist/components/layout/sidebar/Sidebar.js +63 -0
  145. package/dist/components/layout/sidebar/Sidebar.js.map +7 -0
  146. package/dist/components/layout/sidebar/SidebarContainer.js +70 -0
  147. package/dist/components/layout/sidebar/SidebarContainer.js.map +7 -0
  148. package/dist/components/layout/sidebar/SidebarContext.js +20 -0
  149. package/dist/components/layout/sidebar/SidebarContext.js.map +7 -0
  150. package/dist/components/layout/sidebar/SidebarMenu.js +84 -0
  151. package/dist/components/layout/sidebar/SidebarMenu.js.map +7 -0
  152. package/dist/components/layout/sidebar/SidebarUser.js +51 -0
  153. package/dist/components/layout/sidebar/SidebarUser.js.map +7 -0
  154. package/dist/components/layout/topbar/Topbar.js +48 -0
  155. package/dist/components/layout/topbar/Topbar.js.map +7 -0
  156. package/dist/components/layout/topbar/TopbarContainer.js +13 -0
  157. package/dist/components/layout/topbar/TopbarContainer.js.map +7 -0
  158. package/dist/components/layout/topbar/TopbarMenu.js +106 -0
  159. package/dist/components/layout/topbar/TopbarMenu.js.map +7 -0
  160. package/dist/components/layout/topbar/TopbarUser.js +44 -0
  161. package/dist/components/layout/topbar/TopbarUser.js.map +7 -0
  162. package/dist/core-browser/src/extensions/element-ext.d.ts +98 -0
  163. package/dist/core-browser/src/extensions/element-ext.d.ts.map +1 -0
  164. package/dist/core-browser/src/extensions/html-element-ext.d.ts +54 -0
  165. package/dist/core-browser/src/extensions/html-element-ext.d.ts.map +1 -0
  166. package/dist/core-browser/src/index.d.ts +7 -0
  167. package/dist/core-browser/src/index.d.ts.map +1 -0
  168. package/dist/core-browser/src/utils/blob.d.ts +10 -0
  169. package/dist/core-browser/src/utils/blob.d.ts.map +1 -0
  170. package/dist/core-browser/src/utils/download.d.ts +11 -0
  171. package/dist/core-browser/src/utils/download.d.ts.map +1 -0
  172. package/dist/core-common/src/common.types.d.ts +74 -0
  173. package/dist/core-common/src/common.types.d.ts.map +1 -0
  174. package/dist/core-common/src/env.d.ts +6 -0
  175. package/dist/core-common/src/env.d.ts.map +1 -0
  176. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  177. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  178. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  179. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  180. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  181. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  182. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  183. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  184. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  185. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  186. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  187. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  188. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  189. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  190. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  191. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  192. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  193. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  194. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  195. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  196. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  197. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  198. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  199. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  200. package/dist/core-common/src/index.d.ts +32 -0
  201. package/dist/core-common/src/index.d.ts.map +1 -0
  202. package/dist/core-common/src/types/date-only.d.ts +152 -0
  203. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  204. package/dist/core-common/src/types/date-time.d.ts +96 -0
  205. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  206. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  207. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  208. package/dist/core-common/src/types/time.d.ts +68 -0
  209. package/dist/core-common/src/types/time.d.ts.map +1 -0
  210. package/dist/core-common/src/types/uuid.d.ts +35 -0
  211. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  212. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  213. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  214. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  215. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  216. package/dist/core-common/src/utils/json.d.ts +34 -0
  217. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  218. package/dist/core-common/src/utils/num.d.ts +60 -0
  219. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  220. package/dist/core-common/src/utils/obj.d.ts +258 -0
  221. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  222. package/dist/core-common/src/utils/path.d.ts +23 -0
  223. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  224. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  225. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  226. package/dist/core-common/src/utils/str.d.ts +103 -0
  227. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  228. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  229. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  230. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  231. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  232. package/dist/core-common/src/utils/wait.d.ts +19 -0
  233. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  234. package/dist/core-common/src/utils/xml.d.ts +36 -0
  235. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  236. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  237. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  238. package/dist/directives/ripple.js +106 -0
  239. package/dist/directives/ripple.js.map +7 -0
  240. package/dist/helpers/createAppStructure.js +96 -0
  241. package/dist/helpers/createAppStructure.js.map +7 -0
  242. package/dist/helpers/mergeStyles.js +27 -0
  243. package/dist/helpers/mergeStyles.js.map +7 -0
  244. package/dist/helpers/splitSlots.js +25 -0
  245. package/dist/helpers/splitSlots.js.map +7 -0
  246. package/dist/hooks/createControllableSignal.js +24 -0
  247. package/dist/hooks/createControllableSignal.js.map +7 -0
  248. package/dist/hooks/createIMEHandler.js +50 -0
  249. package/dist/hooks/createIMEHandler.js.map +7 -0
  250. package/dist/hooks/createMountTransition.js +33 -0
  251. package/dist/hooks/createMountTransition.js.map +7 -0
  252. package/dist/hooks/useClipboardValueCopy.js +121 -0
  253. package/dist/hooks/useClipboardValueCopy.js.map +7 -0
  254. package/dist/hooks/usePersisted.js +25 -0
  255. package/dist/hooks/usePersisted.js.map +7 -0
  256. package/dist/hooks/usePrint.js +208 -0
  257. package/dist/hooks/usePrint.js.map +7 -0
  258. package/dist/hooks/useRouterLink.js +24 -0
  259. package/dist/hooks/useRouterLink.js.map +7 -0
  260. package/dist/index.js +94 -0
  261. package/dist/index.js.map +7 -0
  262. package/dist/orm-common/src/db-context.d.ts +669 -0
  263. package/dist/orm-common/src/db-context.d.ts.map +1 -0
  264. package/dist/orm-common/src/errors/db-transaction-error.d.ts +51 -0
  265. package/dist/orm-common/src/errors/db-transaction-error.d.ts.map +1 -0
  266. package/dist/orm-common/src/exec/executable.d.ts +79 -0
  267. package/dist/orm-common/src/exec/executable.d.ts.map +1 -0
  268. package/dist/orm-common/src/exec/queryable.d.ts +708 -0
  269. package/dist/orm-common/src/exec/queryable.d.ts.map +1 -0
  270. package/dist/orm-common/src/exec/search-parser.d.ts +72 -0
  271. package/dist/orm-common/src/exec/search-parser.d.ts.map +1 -0
  272. package/dist/orm-common/src/expr/expr-unit.d.ts +25 -0
  273. package/dist/orm-common/src/expr/expr-unit.d.ts.map +1 -0
  274. package/dist/orm-common/src/expr/expr.d.ts +1369 -0
  275. package/dist/orm-common/src/expr/expr.d.ts.map +1 -0
  276. package/dist/orm-common/src/index.d.ts +32 -0
  277. package/dist/orm-common/src/index.d.ts.map +1 -0
  278. package/dist/orm-common/src/models/system-migration.d.ts +10 -0
  279. package/dist/orm-common/src/models/system-migration.d.ts.map +1 -0
  280. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts +95 -0
  281. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts.map +1 -0
  282. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts +66 -0
  283. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts.map +1 -0
  284. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts +84 -0
  285. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts.map +1 -0
  286. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts +45 -0
  287. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts.map +1 -0
  288. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts +84 -0
  289. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts.map +1 -0
  290. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts +54 -0
  291. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts.map +1 -0
  292. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts +84 -0
  293. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +1 -0
  294. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts +52 -0
  295. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts.map +1 -0
  296. package/dist/orm-common/src/query-builder/query-builder.d.ts +7 -0
  297. package/dist/orm-common/src/query-builder/query-builder.d.ts.map +1 -0
  298. package/dist/orm-common/src/schema/factory/column-builder.d.ts +394 -0
  299. package/dist/orm-common/src/schema/factory/column-builder.d.ts.map +1 -0
  300. package/dist/orm-common/src/schema/factory/index-builder.d.ts +151 -0
  301. package/dist/orm-common/src/schema/factory/index-builder.d.ts.map +1 -0
  302. package/dist/orm-common/src/schema/factory/relation-builder.d.ts +337 -0
  303. package/dist/orm-common/src/schema/factory/relation-builder.d.ts.map +1 -0
  304. package/dist/orm-common/src/schema/procedure-builder.d.ts +202 -0
  305. package/dist/orm-common/src/schema/procedure-builder.d.ts.map +1 -0
  306. package/dist/orm-common/src/schema/table-builder.d.ts +259 -0
  307. package/dist/orm-common/src/schema/table-builder.d.ts.map +1 -0
  308. package/dist/orm-common/src/schema/view-builder.d.ts +183 -0
  309. package/dist/orm-common/src/schema/view-builder.d.ts.map +1 -0
  310. package/dist/orm-common/src/types/column.d.ts +172 -0
  311. package/dist/orm-common/src/types/column.d.ts.map +1 -0
  312. package/dist/orm-common/src/types/db.d.ts +175 -0
  313. package/dist/orm-common/src/types/db.d.ts.map +1 -0
  314. package/dist/orm-common/src/types/expr.d.ts +474 -0
  315. package/dist/orm-common/src/types/expr.d.ts.map +1 -0
  316. package/dist/orm-common/src/types/query-def.d.ts +351 -0
  317. package/dist/orm-common/src/types/query-def.d.ts.map +1 -0
  318. package/dist/orm-common/src/utils/result-parser.d.ts +38 -0
  319. package/dist/orm-common/src/utils/result-parser.d.ts.map +1 -0
  320. package/dist/providers/ConfigContext.js +14 -0
  321. package/dist/providers/ConfigContext.js.map +7 -0
  322. package/dist/providers/InitializeProvider.js +10 -0
  323. package/dist/providers/InitializeProvider.js.map +7 -0
  324. package/dist/providers/ServiceClientContext.js +16 -0
  325. package/dist/providers/ServiceClientContext.js.map +7 -0
  326. package/dist/providers/ServiceClientProvider.js +116 -0
  327. package/dist/providers/ServiceClientProvider.js.map +7 -0
  328. package/dist/providers/ThemeContext.js +48 -0
  329. package/dist/providers/ThemeContext.js.map +7 -0
  330. package/dist/providers/shared-data/SharedDataChangeEvent.js +8 -0
  331. package/dist/providers/shared-data/SharedDataChangeEvent.js.map +7 -0
  332. package/dist/providers/shared-data/SharedDataContext.js +16 -0
  333. package/dist/providers/shared-data/SharedDataContext.js.map +7 -0
  334. package/dist/providers/shared-data/SharedDataProvider.js +115 -0
  335. package/dist/providers/shared-data/SharedDataProvider.js.map +7 -0
  336. package/dist/service-client/src/features/event-client.d.ts +14 -0
  337. package/dist/service-client/src/features/event-client.d.ts.map +1 -0
  338. package/dist/service-client/src/features/file-client.d.ts +13 -0
  339. package/dist/service-client/src/features/file-client.d.ts.map +1 -0
  340. package/dist/service-client/src/features/orm/orm-client-connector.d.ts +10 -0
  341. package/dist/service-client/src/features/orm/orm-client-connector.d.ts.map +1 -0
  342. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts +26 -0
  343. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts.map +1 -0
  344. package/dist/service-client/src/features/orm/orm-connect-config.d.ts +13 -0
  345. package/dist/service-client/src/features/orm/orm-connect-config.d.ts.map +1 -0
  346. package/dist/service-client/src/index.d.ts +12 -0
  347. package/dist/service-client/src/index.d.ts.map +1 -0
  348. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts +23 -0
  349. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts.map +1 -0
  350. package/dist/service-client/src/service-client.d.ts +41 -0
  351. package/dist/service-client/src/service-client.d.ts.map +1 -0
  352. package/dist/service-client/src/transport/service-transport.d.ts +24 -0
  353. package/dist/service-client/src/transport/service-transport.d.ts.map +1 -0
  354. package/dist/service-client/src/transport/socket-provider.d.ts +31 -0
  355. package/dist/service-client/src/transport/socket-provider.d.ts.map +1 -0
  356. package/dist/service-client/src/types/connection-config.d.ts +8 -0
  357. package/dist/service-client/src/types/connection-config.d.ts.map +1 -0
  358. package/dist/service-client/src/types/progress.types.d.ts +10 -0
  359. package/dist/service-client/src/types/progress.types.d.ts.map +1 -0
  360. package/dist/service-common/src/index.d.ts +8 -0
  361. package/dist/service-common/src/index.d.ts.map +1 -0
  362. package/dist/service-common/src/protocol/protocol.types.d.ts +100 -0
  363. package/dist/service-common/src/protocol/protocol.types.d.ts.map +1 -0
  364. package/dist/service-common/src/protocol/service-protocol.d.ts +63 -0
  365. package/dist/service-common/src/protocol/service-protocol.d.ts.map +1 -0
  366. package/dist/service-common/src/service-types/auto-update-service.types.d.ts +17 -0
  367. package/dist/service-common/src/service-types/auto-update-service.types.d.ts.map +1 -0
  368. package/dist/service-common/src/service-types/crypto-service.types.d.ts +22 -0
  369. package/dist/service-common/src/service-types/crypto-service.types.d.ts.map +1 -0
  370. package/dist/service-common/src/service-types/orm-service.types.d.ts +30 -0
  371. package/dist/service-common/src/service-types/orm-service.types.d.ts.map +1 -0
  372. package/dist/service-common/src/service-types/smtp-service.types.d.ts +55 -0
  373. package/dist/service-common/src/service-types/smtp-service.types.d.ts.map +1 -0
  374. package/dist/service-common/src/types.d.ts +43 -0
  375. package/dist/service-common/src/types.d.ts.map +1 -0
  376. package/dist/solid/src/components/data/Pagination.d.ts +12 -0
  377. package/dist/solid/src/components/data/Pagination.d.ts.map +1 -0
  378. package/dist/solid/src/components/data/Table.d.ts +6 -0
  379. package/dist/solid/src/components/data/Table.d.ts.map +1 -0
  380. package/dist/solid/src/components/data/calendar/Calendar.d.ts +15 -0
  381. package/dist/solid/src/components/data/calendar/Calendar.d.ts.map +1 -0
  382. package/dist/solid/src/components/data/kanban/Kanban.d.ts +38 -0
  383. package/dist/solid/src/components/data/kanban/Kanban.d.ts.map +1 -0
  384. package/dist/solid/src/components/data/kanban/KanbanContext.d.ts +40 -0
  385. package/dist/solid/src/components/data/kanban/KanbanContext.d.ts.map +1 -0
  386. package/dist/solid/src/components/data/list/List.d.ts +36 -0
  387. package/dist/solid/src/components/data/list/List.d.ts.map +1 -0
  388. package/dist/solid/src/components/data/list/ListContext.d.ts +9 -0
  389. package/dist/solid/src/components/data/list/ListContext.d.ts.map +1 -0
  390. package/dist/solid/src/components/data/list/ListItem.d.ts +88 -0
  391. package/dist/solid/src/components/data/list/ListItem.d.ts.map +1 -0
  392. package/dist/solid/src/components/data/list/ListItem.styles.d.ts +10 -0
  393. package/dist/solid/src/components/data/list/ListItem.styles.d.ts.map +1 -0
  394. package/dist/solid/src/components/data/permission-table/PermissionTable.d.ts +26 -0
  395. package/dist/solid/src/components/data/permission-table/PermissionTable.d.ts.map +1 -0
  396. package/dist/solid/src/components/data/sheet/DataSheet.d.ts +12 -0
  397. package/dist/solid/src/components/data/sheet/DataSheet.d.ts.map +1 -0
  398. package/dist/solid/src/components/data/sheet/DataSheet.styles.d.ts +33 -0
  399. package/dist/solid/src/components/data/sheet/DataSheet.styles.d.ts.map +1 -0
  400. package/dist/solid/src/components/data/sheet/DataSheetColumn.d.ts +5 -0
  401. package/dist/solid/src/components/data/sheet/DataSheetColumn.d.ts.map +1 -0
  402. package/dist/solid/src/components/data/sheet/DataSheetConfigDialog.d.ts +8 -0
  403. package/dist/solid/src/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -0
  404. package/dist/solid/src/components/data/sheet/sheetUtils.d.ts +7 -0
  405. package/dist/solid/src/components/data/sheet/sheetUtils.d.ts.map +1 -0
  406. package/dist/solid/src/components/data/sheet/types.d.ts +113 -0
  407. package/dist/solid/src/components/data/sheet/types.d.ts.map +1 -0
  408. package/dist/solid/src/components/disclosure/Collapse.d.ts +21 -0
  409. package/dist/solid/src/components/disclosure/Collapse.d.ts.map +1 -0
  410. package/dist/solid/src/components/disclosure/Dialog.d.ts +65 -0
  411. package/dist/solid/src/components/disclosure/Dialog.d.ts.map +1 -0
  412. package/dist/solid/src/components/disclosure/DialogContext.d.ts +30 -0
  413. package/dist/solid/src/components/disclosure/DialogContext.d.ts.map +1 -0
  414. package/dist/solid/src/components/disclosure/DialogInstanceContext.d.ts +6 -0
  415. package/dist/solid/src/components/disclosure/DialogInstanceContext.d.ts.map +1 -0
  416. package/dist/solid/src/components/disclosure/DialogProvider.d.ts +19 -0
  417. package/dist/solid/src/components/disclosure/DialogProvider.d.ts.map +1 -0
  418. package/dist/solid/src/components/disclosure/Dropdown.d.ts +65 -0
  419. package/dist/solid/src/components/disclosure/Dropdown.d.ts.map +1 -0
  420. package/dist/solid/src/components/disclosure/Tabs.d.ts +24 -0
  421. package/dist/solid/src/components/disclosure/Tabs.d.ts.map +1 -0
  422. package/dist/solid/src/components/disclosure/dialogZIndex.d.ts +13 -0
  423. package/dist/solid/src/components/disclosure/dialogZIndex.d.ts.map +1 -0
  424. package/dist/solid/src/components/display/Alert.d.ts +8 -0
  425. package/dist/solid/src/components/display/Alert.d.ts.map +1 -0
  426. package/dist/solid/src/components/display/Barcode.d.ts +8 -0
  427. package/dist/solid/src/components/display/Barcode.d.ts.map +1 -0
  428. package/dist/solid/src/components/display/Card.d.ts +6 -0
  429. package/dist/solid/src/components/display/Card.d.ts.map +1 -0
  430. package/dist/solid/src/components/display/Echarts.d.ts +8 -0
  431. package/dist/solid/src/components/display/Echarts.d.ts.map +1 -0
  432. package/dist/solid/src/components/display/Icon.d.ts +8 -0
  433. package/dist/solid/src/components/display/Icon.d.ts.map +1 -0
  434. package/dist/solid/src/components/display/Tag.d.ts +8 -0
  435. package/dist/solid/src/components/display/Tag.d.ts.map +1 -0
  436. package/dist/solid/src/components/feedback/Progress.d.ts +12 -0
  437. package/dist/solid/src/components/feedback/Progress.d.ts.map +1 -0
  438. package/dist/solid/src/components/feedback/loading/LoadingContainer.d.ts +12 -0
  439. package/dist/solid/src/components/feedback/loading/LoadingContainer.d.ts.map +1 -0
  440. package/dist/solid/src/components/feedback/loading/LoadingContext.d.ts +11 -0
  441. package/dist/solid/src/components/feedback/loading/LoadingContext.d.ts.map +1 -0
  442. package/dist/solid/src/components/feedback/loading/LoadingProvider.d.ts +7 -0
  443. package/dist/solid/src/components/feedback/loading/LoadingProvider.d.ts.map +1 -0
  444. package/dist/solid/src/components/feedback/notification/NotificationBanner.d.ts +3 -0
  445. package/dist/solid/src/components/feedback/notification/NotificationBanner.d.ts.map +1 -0
  446. package/dist/solid/src/components/feedback/notification/NotificationBell.d.ts +6 -0
  447. package/dist/solid/src/components/feedback/notification/NotificationBell.d.ts.map +1 -0
  448. package/dist/solid/src/components/feedback/notification/NotificationContext.d.ts +39 -0
  449. package/dist/solid/src/components/feedback/notification/NotificationContext.d.ts.map +1 -0
  450. package/dist/solid/src/components/feedback/notification/NotificationProvider.d.ts +3 -0
  451. package/dist/solid/src/components/feedback/notification/NotificationProvider.d.ts.map +1 -0
  452. package/dist/solid/src/components/feedback/notification/index.d.ts +5 -0
  453. package/dist/solid/src/components/feedback/notification/index.d.ts.map +1 -0
  454. package/dist/solid/src/components/feedback/print/Print.d.ts +9 -0
  455. package/dist/solid/src/components/feedback/print/Print.d.ts.map +1 -0
  456. package/dist/solid/src/components/feedback/print/PrintInstanceContext.d.ts +6 -0
  457. package/dist/solid/src/components/feedback/print/PrintInstanceContext.d.ts.map +1 -0
  458. package/dist/solid/src/components/form-control/Button.d.ts +14 -0
  459. package/dist/solid/src/components/form-control/Button.d.ts.map +1 -0
  460. package/dist/solid/src/components/form-control/DropdownTrigger.styles.d.ts +14 -0
  461. package/dist/solid/src/components/form-control/DropdownTrigger.styles.d.ts.map +1 -0
  462. package/dist/solid/src/components/form-control/ThemeToggle.d.ts +25 -0
  463. package/dist/solid/src/components/form-control/ThemeToggle.d.ts.map +1 -0
  464. package/dist/solid/src/components/form-control/checkbox/Checkbox.d.ts +16 -0
  465. package/dist/solid/src/components/form-control/checkbox/Checkbox.d.ts.map +1 -0
  466. package/dist/solid/src/components/form-control/checkbox/Checkbox.styles.d.ts +12 -0
  467. package/dist/solid/src/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -0
  468. package/dist/solid/src/components/form-control/checkbox/CheckboxGroup.d.ts +27 -0
  469. package/dist/solid/src/components/form-control/checkbox/CheckboxGroup.d.ts.map +1 -0
  470. package/dist/solid/src/components/form-control/checkbox/Radio.d.ts +16 -0
  471. package/dist/solid/src/components/form-control/checkbox/Radio.d.ts.map +1 -0
  472. package/dist/solid/src/components/form-control/checkbox/RadioGroup.d.ts +27 -0
  473. package/dist/solid/src/components/form-control/checkbox/RadioGroup.d.ts.map +1 -0
  474. package/dist/solid/src/components/form-control/color-picker/ColorPicker.d.ts +29 -0
  475. package/dist/solid/src/components/form-control/color-picker/ColorPicker.d.ts.map +1 -0
  476. package/dist/solid/src/components/form-control/combobox/Combobox.d.ts +80 -0
  477. package/dist/solid/src/components/form-control/combobox/Combobox.d.ts.map +1 -0
  478. package/dist/solid/src/components/form-control/combobox/ComboboxContext.d.ts +11 -0
  479. package/dist/solid/src/components/form-control/combobox/ComboboxContext.d.ts.map +1 -0
  480. package/dist/solid/src/components/form-control/combobox/ComboboxItem.d.ts +12 -0
  481. package/dist/solid/src/components/form-control/combobox/ComboboxItem.d.ts.map +1 -0
  482. package/dist/solid/src/components/form-control/date-range-picker/DateRangePicker.d.ts +55 -0
  483. package/dist/solid/src/components/form-control/date-range-picker/DateRangePicker.d.ts.map +1 -0
  484. package/dist/solid/src/components/form-control/editor/EditorToolbar.d.ts +8 -0
  485. package/dist/solid/src/components/form-control/editor/EditorToolbar.d.ts.map +1 -0
  486. package/dist/solid/src/components/form-control/editor/RichTextEditor.d.ts +21 -0
  487. package/dist/solid/src/components/form-control/editor/RichTextEditor.d.ts.map +1 -0
  488. package/dist/solid/src/components/form-control/field/DatePicker.d.ts +61 -0
  489. package/dist/solid/src/components/form-control/field/DatePicker.d.ts.map +1 -0
  490. package/dist/solid/src/components/form-control/field/DateTimePicker.d.ts +58 -0
  491. package/dist/solid/src/components/form-control/field/DateTimePicker.d.ts.map +1 -0
  492. package/dist/solid/src/components/form-control/field/Field.styles.d.ts +13 -0
  493. package/dist/solid/src/components/form-control/field/Field.styles.d.ts.map +1 -0
  494. package/dist/solid/src/components/form-control/field/NumberInput.d.ts +47 -0
  495. package/dist/solid/src/components/form-control/field/NumberInput.d.ts.map +1 -0
  496. package/dist/solid/src/components/form-control/field/TextInput.d.ts +51 -0
  497. package/dist/solid/src/components/form-control/field/TextInput.d.ts.map +1 -0
  498. package/dist/solid/src/components/form-control/field/Textarea.d.ts +42 -0
  499. package/dist/solid/src/components/form-control/field/Textarea.d.ts.map +1 -0
  500. package/dist/solid/src/components/form-control/field/TimePicker.d.ts +46 -0
  501. package/dist/solid/src/components/form-control/field/TimePicker.d.ts.map +1 -0
  502. package/dist/solid/src/components/form-control/numpad/Numpad.d.ts +28 -0
  503. package/dist/solid/src/components/form-control/numpad/Numpad.d.ts.map +1 -0
  504. package/dist/solid/src/components/form-control/select/Select.d.ts +104 -0
  505. package/dist/solid/src/components/form-control/select/Select.d.ts.map +1 -0
  506. package/dist/solid/src/components/form-control/select/SelectContext.d.ts +14 -0
  507. package/dist/solid/src/components/form-control/select/SelectContext.d.ts.map +1 -0
  508. package/dist/solid/src/components/form-control/select/SelectItem.d.ts +33 -0
  509. package/dist/solid/src/components/form-control/select/SelectItem.d.ts.map +1 -0
  510. package/dist/solid/src/components/form-control/state-preset/StatePreset.d.ts +14 -0
  511. package/dist/solid/src/components/form-control/state-preset/StatePreset.d.ts.map +1 -0
  512. package/dist/solid/src/components/layout/FormGroup.d.ts +14 -0
  513. package/dist/solid/src/components/layout/FormGroup.d.ts.map +1 -0
  514. package/dist/solid/src/components/layout/FormTable.d.ts +5 -0
  515. package/dist/solid/src/components/layout/FormTable.d.ts.map +1 -0
  516. package/dist/solid/src/components/layout/sidebar/Sidebar.d.ts +35 -0
  517. package/dist/solid/src/components/layout/sidebar/Sidebar.d.ts.map +1 -0
  518. package/dist/solid/src/components/layout/sidebar/SidebarContainer.d.ts +34 -0
  519. package/dist/solid/src/components/layout/sidebar/SidebarContainer.d.ts.map +1 -0
  520. package/dist/solid/src/components/layout/sidebar/SidebarContext.d.ts +28 -0
  521. package/dist/solid/src/components/layout/sidebar/SidebarContext.d.ts.map +1 -0
  522. package/dist/solid/src/components/layout/sidebar/SidebarMenu.d.ts +41 -0
  523. package/dist/solid/src/components/layout/sidebar/SidebarMenu.d.ts.map +1 -0
  524. package/dist/solid/src/components/layout/sidebar/SidebarUser.d.ts +36 -0
  525. package/dist/solid/src/components/layout/sidebar/SidebarUser.d.ts.map +1 -0
  526. package/dist/solid/src/components/layout/topbar/Topbar.d.ts +35 -0
  527. package/dist/solid/src/components/layout/topbar/Topbar.d.ts.map +1 -0
  528. package/dist/solid/src/components/layout/topbar/TopbarContainer.d.ts +25 -0
  529. package/dist/solid/src/components/layout/topbar/TopbarContainer.d.ts.map +1 -0
  530. package/dist/solid/src/components/layout/topbar/TopbarMenu.d.ts +41 -0
  531. package/dist/solid/src/components/layout/topbar/TopbarMenu.d.ts.map +1 -0
  532. package/dist/solid/src/components/layout/topbar/TopbarUser.d.ts +35 -0
  533. package/dist/solid/src/components/layout/topbar/TopbarUser.d.ts.map +1 -0
  534. package/dist/solid/src/directives/ripple.d.ts +24 -0
  535. package/dist/solid/src/directives/ripple.d.ts.map +1 -0
  536. package/dist/solid/src/helpers/createAppStructure.d.ts +52 -0
  537. package/dist/solid/src/helpers/createAppStructure.d.ts.map +1 -0
  538. package/dist/solid/src/helpers/mergeStyles.d.ts +27 -0
  539. package/dist/solid/src/helpers/mergeStyles.d.ts.map +1 -0
  540. package/dist/solid/src/helpers/splitSlots.d.ts +25 -0
  541. package/dist/solid/src/helpers/splitSlots.d.ts.map +1 -0
  542. package/dist/solid/src/hooks/createControllableSignal.d.ts +40 -0
  543. package/dist/solid/src/hooks/createControllableSignal.d.ts.map +1 -0
  544. package/dist/solid/src/hooks/createIMEHandler.d.ts +20 -0
  545. package/dist/solid/src/hooks/createIMEHandler.d.ts.map +1 -0
  546. package/dist/solid/src/hooks/createMountTransition.d.ts +14 -0
  547. package/dist/solid/src/hooks/createMountTransition.d.ts.map +1 -0
  548. package/dist/solid/src/hooks/useClipboardValueCopy.d.ts +15 -0
  549. package/dist/solid/src/hooks/useClipboardValueCopy.d.ts.map +1 -0
  550. package/dist/solid/src/hooks/usePersisted.d.ts +26 -0
  551. package/dist/solid/src/hooks/usePersisted.d.ts.map +1 -0
  552. package/dist/solid/src/hooks/usePrint.d.ts +11 -0
  553. package/dist/solid/src/hooks/usePrint.d.ts.map +1 -0
  554. package/dist/solid/src/hooks/useRouterLink.d.ts +38 -0
  555. package/dist/solid/src/hooks/useRouterLink.d.ts.map +1 -0
  556. package/dist/solid/src/index.d.ts +85 -0
  557. package/dist/solid/src/index.d.ts.map +1 -0
  558. package/dist/solid/src/providers/ConfigContext.d.ts +48 -0
  559. package/dist/solid/src/providers/ConfigContext.d.ts.map +1 -0
  560. package/dist/solid/src/providers/InitializeProvider.d.ts +23 -0
  561. package/dist/solid/src/providers/InitializeProvider.d.ts.map +1 -0
  562. package/dist/solid/src/providers/ServiceClientContext.d.ts +10 -0
  563. package/dist/solid/src/providers/ServiceClientContext.d.ts.map +1 -0
  564. package/dist/solid/src/providers/ServiceClientProvider.d.ts +3 -0
  565. package/dist/solid/src/providers/ServiceClientProvider.d.ts.map +1 -0
  566. package/dist/solid/src/providers/ThemeContext.d.ts +65 -0
  567. package/dist/solid/src/providers/ThemeContext.d.ts.map +1 -0
  568. package/dist/solid/src/providers/shared-data/SharedDataChangeEvent.d.ts +8 -0
  569. package/dist/solid/src/providers/shared-data/SharedDataChangeEvent.d.ts.map +1 -0
  570. package/dist/solid/src/providers/shared-data/SharedDataContext.d.ts +22 -0
  571. package/dist/solid/src/providers/shared-data/SharedDataContext.d.ts.map +1 -0
  572. package/dist/solid/src/providers/shared-data/SharedDataProvider.d.ts +9 -0
  573. package/dist/solid/src/providers/shared-data/SharedDataProvider.d.ts.map +1 -0
  574. package/dist/solid/src/styles/patterns.styles.d.ts +6 -0
  575. package/dist/solid/src/styles/patterns.styles.d.ts.map +1 -0
  576. package/dist/solid/src/styles/tokens.styles.d.ts +20 -0
  577. package/dist/solid/src/styles/tokens.styles.d.ts.map +1 -0
  578. package/dist/styles/patterns.styles.js +30 -0
  579. package/dist/styles/patterns.styles.js.map +7 -0
  580. package/dist/styles/tokens.styles.js +72 -0
  581. package/dist/styles/tokens.styles.js.map +7 -0
  582. package/package.json +56 -0
  583. package/src/base.css +78 -0
  584. package/src/components/data/Pagination.tsx +112 -0
  585. package/src/components/data/Table.tsx +43 -0
  586. package/src/components/data/calendar/Calendar.tsx +139 -0
  587. package/src/components/data/kanban/Kanban.css +10 -0
  588. package/src/components/data/kanban/Kanban.tsx +547 -0
  589. package/src/components/data/kanban/KanbanContext.ts +71 -0
  590. package/src/components/data/list/List.tsx +184 -0
  591. package/src/components/data/list/ListContext.ts +12 -0
  592. package/src/components/data/list/ListItem.styles.ts +49 -0
  593. package/src/components/data/list/ListItem.tsx +222 -0
  594. package/src/components/data/permission-table/PermissionTable.tsx +291 -0
  595. package/src/components/data/sheet/DataSheet.css +26 -0
  596. package/src/components/data/sheet/DataSheet.styles.ts +161 -0
  597. package/src/components/data/sheet/DataSheet.tsx +1198 -0
  598. package/src/components/data/sheet/DataSheetColumn.tsx +29 -0
  599. package/src/components/data/sheet/DataSheetConfigDialog.tsx +146 -0
  600. package/src/components/data/sheet/sheetUtils.ts +156 -0
  601. package/src/components/data/sheet/types.ts +143 -0
  602. package/src/components/disclosure/Collapse.tsx +72 -0
  603. package/src/components/disclosure/Dialog.tsx +520 -0
  604. package/src/components/disclosure/DialogContext.ts +39 -0
  605. package/src/components/disclosure/DialogInstanceContext.ts +11 -0
  606. package/src/components/disclosure/DialogProvider.tsx +133 -0
  607. package/src/components/disclosure/Dropdown.tsx +406 -0
  608. package/src/components/disclosure/Tabs.tsx +127 -0
  609. package/src/components/disclosure/dialogZIndex.ts +43 -0
  610. package/src/components/display/Alert.tsx +32 -0
  611. package/src/components/display/Barcode.tsx +158 -0
  612. package/src/components/display/Card.css +14 -0
  613. package/src/components/display/Card.tsx +26 -0
  614. package/src/components/display/Echarts.tsx +45 -0
  615. package/src/components/display/Icon.tsx +13 -0
  616. package/src/components/display/Tag.tsx +31 -0
  617. package/src/components/feedback/Progress.tsx +61 -0
  618. package/src/components/feedback/loading/LoadingContainer.css +19 -0
  619. package/src/components/feedback/loading/LoadingContainer.tsx +132 -0
  620. package/src/components/feedback/loading/LoadingContext.ts +20 -0
  621. package/src/components/feedback/loading/LoadingProvider.tsx +58 -0
  622. package/src/components/feedback/notification/NotificationBanner.tsx +83 -0
  623. package/src/components/feedback/notification/NotificationBell.tsx +132 -0
  624. package/src/components/feedback/notification/NotificationContext.ts +65 -0
  625. package/src/components/feedback/notification/NotificationProvider.tsx +143 -0
  626. package/src/components/feedback/notification/index.ts +4 -0
  627. package/src/components/feedback/print/Print.tsx +21 -0
  628. package/src/components/feedback/print/PrintInstanceContext.ts +11 -0
  629. package/src/components/form-control/Button.tsx +90 -0
  630. package/src/components/form-control/DropdownTrigger.styles.ts +47 -0
  631. package/src/components/form-control/ThemeToggle.tsx +96 -0
  632. package/src/components/form-control/checkbox/Checkbox.styles.ts +66 -0
  633. package/src/components/form-control/checkbox/Checkbox.tsx +106 -0
  634. package/src/components/form-control/checkbox/CheckboxGroup.tsx +116 -0
  635. package/src/components/form-control/checkbox/Radio.tsx +107 -0
  636. package/src/components/form-control/checkbox/RadioGroup.tsx +111 -0
  637. package/src/components/form-control/color-picker/ColorPicker.tsx +96 -0
  638. package/src/components/form-control/combobox/Combobox.tsx +390 -0
  639. package/src/components/form-control/combobox/ComboboxContext.ts +22 -0
  640. package/src/components/form-control/combobox/ComboboxItem.tsx +69 -0
  641. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +215 -0
  642. package/src/components/form-control/editor/EditorToolbar.tsx +348 -0
  643. package/src/components/form-control/editor/RichTextEditor.tsx +173 -0
  644. package/src/components/form-control/editor/editor.css +81 -0
  645. package/src/components/form-control/field/DatePicker.tsx +268 -0
  646. package/src/components/form-control/field/DateTimePicker.tsx +260 -0
  647. package/src/components/form-control/field/Field.styles.ts +42 -0
  648. package/src/components/form-control/field/NumberInput.tsx +328 -0
  649. package/src/components/form-control/field/TextInput.tsx +287 -0
  650. package/src/components/form-control/field/Textarea.tsx +262 -0
  651. package/src/components/form-control/field/TimePicker.tsx +215 -0
  652. package/src/components/form-control/numpad/Numpad.tsx +218 -0
  653. package/src/components/form-control/select/Select.tsx +404 -0
  654. package/src/components/form-control/select/SelectContext.ts +25 -0
  655. package/src/components/form-control/select/SelectItem.tsx +124 -0
  656. package/src/components/form-control/state-preset/StatePreset.tsx +277 -0
  657. package/src/components/layout/FormGroup.tsx +63 -0
  658. package/src/components/layout/FormTable.tsx +29 -0
  659. package/src/components/layout/sidebar/Sidebar.tsx +104 -0
  660. package/src/components/layout/sidebar/SidebarContainer.tsx +115 -0
  661. package/src/components/layout/sidebar/SidebarContext.ts +40 -0
  662. package/src/components/layout/sidebar/SidebarMenu.tsx +181 -0
  663. package/src/components/layout/sidebar/SidebarUser.tsx +107 -0
  664. package/src/components/layout/topbar/Topbar.tsx +93 -0
  665. package/src/components/layout/topbar/TopbarContainer.tsx +40 -0
  666. package/src/components/layout/topbar/TopbarMenu.tsx +206 -0
  667. package/src/components/layout/topbar/TopbarUser.tsx +96 -0
  668. package/src/directives/ripple.ts +151 -0
  669. package/src/helpers/createAppStructure.ts +183 -0
  670. package/src/helpers/mergeStyles.ts +55 -0
  671. package/src/helpers/splitSlots.ts +48 -0
  672. package/src/hooks/createControllableSignal.ts +63 -0
  673. package/src/hooks/createIMEHandler.ts +65 -0
  674. package/src/hooks/createMountTransition.ts +45 -0
  675. package/src/hooks/useClipboardValueCopy.ts +177 -0
  676. package/src/hooks/usePersisted.ts +51 -0
  677. package/src/hooks/usePrint.ts +277 -0
  678. package/src/hooks/useRouterLink.ts +64 -0
  679. package/src/index.ts +117 -0
  680. package/src/providers/ConfigContext.ts +59 -0
  681. package/src/providers/InitializeProvider.tsx +28 -0
  682. package/src/providers/ServiceClientContext.ts +21 -0
  683. package/src/providers/ServiceClientProvider.tsx +132 -0
  684. package/src/providers/ThemeContext.tsx +121 -0
  685. package/src/providers/shared-data/SharedDataChangeEvent.ts +8 -0
  686. package/src/providers/shared-data/SharedDataContext.ts +34 -0
  687. package/src/providers/shared-data/SharedDataProvider.tsx +149 -0
  688. package/src/styles/patterns.styles.ts +32 -0
  689. package/src/styles/tokens.styles.ts +83 -0
  690. package/tailwind.config.ts +50 -0
  691. package/tests/components/data/List.spec.tsx +683 -0
  692. package/tests/components/data/Pagination.spec.tsx +317 -0
  693. package/tests/components/data/Table.spec.tsx +55 -0
  694. package/tests/components/data/kanban/Kanban.selection.spec.tsx +209 -0
  695. package/tests/components/data/permission-table/PermissionTable.spec.tsx +280 -0
  696. package/tests/components/data/sheet/DataSheet.spec.tsx +564 -0
  697. package/tests/components/disclosure/Collapse.spec.tsx +162 -0
  698. package/tests/components/disclosure/Dialog.spec.tsx +319 -0
  699. package/tests/components/disclosure/DialogProvider.spec.tsx +110 -0
  700. package/tests/components/disclosure/Dropdown.spec.tsx +410 -0
  701. package/tests/components/disclosure/Tabs.spec.tsx +220 -0
  702. package/tests/components/display/Alert.spec.tsx +47 -0
  703. package/tests/components/display/Barcode.spec.tsx +61 -0
  704. package/tests/components/display/Card.spec.tsx +41 -0
  705. package/tests/components/display/Tag.spec.tsx +47 -0
  706. package/tests/components/feedback/notification/LiveRegion.spec.tsx +41 -0
  707. package/tests/components/feedback/notification/NotificationBanner.spec.tsx +164 -0
  708. package/tests/components/feedback/notification/NotificationBell.spec.tsx +207 -0
  709. package/tests/components/feedback/notification/NotificationContext.spec.tsx +331 -0
  710. package/tests/components/feedback/print/Print.spec.tsx +45 -0
  711. package/tests/components/form-control/Button.spec.tsx +119 -0
  712. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +120 -0
  713. package/tests/components/form-control/checkbox/Radio.spec.tsx +112 -0
  714. package/tests/components/form-control/color-picker/ColorPicker.spec.tsx +67 -0
  715. package/tests/components/form-control/combobox/Combobox.spec.tsx +174 -0
  716. package/tests/components/form-control/combobox/ComboboxItem.spec.tsx +85 -0
  717. package/tests/components/form-control/date-range-picker/DateRangePicker.spec.tsx +172 -0
  718. package/tests/components/form-control/field/DatePicker.spec.tsx +305 -0
  719. package/tests/components/form-control/field/DateTimePicker.spec.tsx +287 -0
  720. package/tests/components/form-control/field/NumberInput.spec.tsx +276 -0
  721. package/tests/components/form-control/field/TextInput.spec.tsx +258 -0
  722. package/tests/components/form-control/field/Textarea.spec.tsx +181 -0
  723. package/tests/components/form-control/field/TimePicker.spec.tsx +243 -0
  724. package/tests/components/form-control/numpad/Numpad.spec.tsx +238 -0
  725. package/tests/components/form-control/select/Select.spec.tsx +239 -0
  726. package/tests/components/form-control/select/SelectItem.spec.tsx +149 -0
  727. package/tests/components/layout/FormGroup.spec.tsx +104 -0
  728. package/tests/components/layout/FormTable.spec.tsx +43 -0
  729. package/tests/components/layout/sidebar/Sidebar.spec.tsx +190 -0
  730. package/tests/components/layout/sidebar/SidebarContainer.spec.tsx +203 -0
  731. package/tests/components/layout/sidebar/SidebarMenu.spec.tsx +213 -0
  732. package/tests/components/layout/sidebar/SidebarUser.spec.tsx +171 -0
  733. package/tests/directives/ripple.spec.tsx +130 -0
  734. package/tests/helpers/createAppStructure.spec.tsx +338 -0
  735. package/tests/helpers/mergeStyles.spec.ts +163 -0
  736. package/tests/helpers/splitSlots.spec.tsx +188 -0
  737. package/tests/hooks/createControllableSignal.spec.ts +194 -0
  738. package/tests/hooks/createIMEHandler.spec.ts +80 -0
  739. package/tests/hooks/createMountTransition.spec.ts +86 -0
  740. package/tests/hooks/usePersisted.spec.tsx +191 -0
  741. package/tests/hooks/usePrint.spec.tsx +123 -0
  742. package/tests/hooks/useRouterLink.spec.tsx +183 -0
  743. package/tests/providers/ConfigContext.spec.ts +40 -0
  744. package/tests/providers/ServiceClientContext.spec.tsx +83 -0
  745. package/tests/providers/shared-data/SharedDataProvider.spec.tsx +233 -0
@@ -0,0 +1,51 @@
1
+ import { createSignal, For, Show, splitProps } from "solid-js";
2
+ import clsx from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ import { ripple } from "../../../directives/ripple";
5
+ import { Collapse } from "../../disclosure/Collapse";
6
+ import { List } from "../../data/list/List";
7
+ import { ListItem } from "../../data/list/ListItem";
8
+ void ripple;
9
+ const containerClass = clsx("m-2 flex flex-col overflow-hidden rounded bg-white dark:bg-base-800");
10
+ const headerClass = clsx(
11
+ "flex",
12
+ "items-center",
13
+ "p-2",
14
+ "text-left",
15
+ "cursor-pointer",
16
+ "transition-colors",
17
+ "hover:bg-base-100",
18
+ "dark:hover:bg-base-700"
19
+ );
20
+ const headerReadonlyClass = clsx("cursor-default hover:bg-transparent dark:hover:bg-transparent");
21
+ const SidebarUser = (props) => {
22
+ const [local, rest] = splitProps(props, ["children", "class", "menus"]);
23
+ const [open, setOpen] = createSignal(false);
24
+ const hasMenus = () => local.menus !== void 0 && local.menus.length > 0;
25
+ const handleClick = () => {
26
+ if (hasMenus()) {
27
+ setOpen((v) => !v);
28
+ }
29
+ };
30
+ const handleMenuClick = (menu) => {
31
+ setOpen(false);
32
+ menu.onClick();
33
+ };
34
+ const getHeaderClassName = () => twMerge(headerClass, !hasMenus() && headerReadonlyClass, open() && "border-b border-b-base-50");
35
+ const getContainerClassName = () => twMerge(containerClass, local.class);
36
+ return /* @__PURE__ */ React.createElement("div", { ...rest, "data-sidebar-user": true, class: getContainerClassName() }, /* @__PURE__ */ React.createElement(
37
+ "button",
38
+ {
39
+ type: "button",
40
+ "use:ripple": hasMenus(),
41
+ class: getHeaderClassName(),
42
+ onClick: handleClick,
43
+ "aria-expanded": hasMenus() ? open() : void 0
44
+ },
45
+ local.children
46
+ ), /* @__PURE__ */ React.createElement(Show, { when: hasMenus() }, /* @__PURE__ */ React.createElement(Collapse, { open: open() }, /* @__PURE__ */ React.createElement(List, { inset: true }, /* @__PURE__ */ React.createElement(For, { each: local.menus }, (menu) => /* @__PURE__ */ React.createElement(ListItem, { onClick: () => handleMenuClick(menu) }, menu.title))))));
47
+ };
48
+ export {
49
+ SidebarUser
50
+ };
51
+ //# sourceMappingURL=SidebarUser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/layout/sidebar/SidebarUser.tsx"],
4
+ "sourcesContent": ["import { createSignal, For, type JSX, type ParentComponent, Show, splitProps } from \"solid-js\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { ripple } from \"../../../directives/ripple\";\nimport { Collapse } from \"../../disclosure/Collapse\";\nimport { List } from \"../../data/list/List\";\nimport { ListItem } from \"../../data/list/ListItem\";\n\nvoid ripple;\n\nconst containerClass = clsx(\"m-2 flex flex-col overflow-hidden rounded bg-white dark:bg-base-800\");\n\nconst headerClass = clsx(\n \"flex\",\n \"items-center\",\n \"p-2\",\n \"text-left\",\n \"cursor-pointer\",\n \"transition-colors\",\n \"hover:bg-base-100\",\n \"dark:hover:bg-base-700\",\n);\n\nconst headerReadonlyClass = clsx(\"cursor-default hover:bg-transparent dark:hover:bg-transparent\");\n\nexport interface SidebarUserMenu {\n title: string;\n onClick: () => void;\n}\n\nexport interface SidebarUserProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n /**\n * \uB4DC\uB86D\uB2E4\uC6B4 \uBA54\uB274 (\uC788\uC744 \uB54C\uB9CC \uD074\uB9AD \uAC00\uB2A5)\n */\n menus?: SidebarUserMenu[];\n\n /**\n * \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uC601\uC5ED (\uCEE4\uC2A4\uD130\uB9C8\uC774\uC9D5)\n */\n children: JSX.Element;\n}\n\n/**\n * \uC0AC\uC774\uB4DC\uBC14 \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uCEF4\uD3EC\uB10C\uD2B8\n *\n * @remarks\n * - children\uC73C\uB85C \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uC601\uC5ED \uCEE4\uC2A4\uD130\uB9C8\uC774\uC9D5\n * - menus\uAC00 \uC788\uC744 \uB54C\uB9CC \uD074\uB9AD \uAC00\uB2A5 \uBC0F ripple \uD6A8\uACFC \uC801\uC6A9\n * - \uD074\uB9AD \uC2DC \uB4DC\uB86D\uB2E4\uC6B4 \uBA54\uB274 \uD3BC\uCE68/\uC811\uD798\n *\n * @example\n * ```tsx\n * <SidebarUser menus={[\n * { title: \"\uD504\uB85C\uD544\", onClick: () => navigate(\"/profile\") },\n * { title: \"\uB85C\uADF8\uC544\uC6C3\", onClick: handleLogout },\n * ]}>\n * <Avatar src={user.avatar} />\n * <span>{user.name}</span>\n * </SidebarUser>\n * ```\n */\nexport const SidebarUser: ParentComponent<SidebarUserProps> = (props) => {\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"menus\"]);\n\n const [open, setOpen] = createSignal(false);\n\n const hasMenus = () => local.menus !== undefined && local.menus.length > 0;\n\n const handleClick = () => {\n if (hasMenus()) {\n setOpen((v) => !v);\n }\n };\n\n const handleMenuClick = (menu: SidebarUserMenu) => {\n setOpen(false);\n menu.onClick();\n };\n\n const getHeaderClassName = () =>\n twMerge(headerClass, !hasMenus() && headerReadonlyClass, open() && \"border-b border-b-base-50\");\n\n const getContainerClassName = () => twMerge(containerClass, local.class);\n\n return (\n <div {...rest} data-sidebar-user class={getContainerClassName()}>\n <button\n type=\"button\"\n use:ripple={hasMenus()}\n class={getHeaderClassName()}\n onClick={handleClick}\n aria-expanded={hasMenus() ? open() : undefined}\n >\n {local.children}\n </button>\n <Show when={hasMenus()}>\n <Collapse open={open()}>\n <List inset>\n <For each={local.menus}>\n {(menu) => <ListItem onClick={() => handleMenuClick(menu)}>{menu.title}</ListItem>}\n </For>\n </List>\n </Collapse>\n </Show>\n </div>\n );\n};\n"],
5
+ "mappings": "AAAA,SAAS,cAAc,KAAqC,MAAM,kBAAkB;AACpF,OAAO,UAAU;AACjB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,KAAK;AAEL,MAAM,iBAAiB,KAAK,qEAAqE;AAEjG,MAAM,cAAc;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,sBAAsB,KAAK,+DAA+D;AAsCzF,MAAM,cAAiD,CAAC,UAAU;AACvE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC;AAEtE,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAE1C,QAAM,WAAW,MAAM,MAAM,UAAU,UAAa,MAAM,MAAM,SAAS;AAEzE,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,GAAG;AACd,cAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,kBAAkB,CAAC,SAA0B;AACjD,YAAQ,KAAK;AACb,SAAK,QAAQ;AAAA,EACf;AAEA,QAAM,qBAAqB,MACzB,QAAQ,aAAa,CAAC,SAAS,KAAK,qBAAqB,KAAK,KAAK,2BAA2B;AAEhG,QAAM,wBAAwB,MAAM,QAAQ,gBAAgB,MAAM,KAAK;AAEvE,SACE,oCAAC,SAAK,GAAG,MAAM,qBAAiB,MAAC,OAAO,sBAAsB,KAC5D;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY,SAAS;AAAA,MACrB,OAAO,mBAAmB;AAAA,MAC1B,SAAS;AAAA,MACT,iBAAe,SAAS,IAAI,KAAK,IAAI;AAAA;AAAA,IAEpC,MAAM;AAAA,EACT,GACA,oCAAC,QAAK,MAAM,SAAS,KACnB,oCAAC,YAAS,MAAM,KAAK,KACnB,oCAAC,QAAK,OAAK,QACT,oCAAC,OAAI,MAAM,MAAM,SACd,CAAC,SAAS,oCAAC,YAAS,SAAS,MAAM,gBAAgB,IAAI,KAAI,KAAK,KAAM,CACzE,CACF,CACF,CACF,CACF;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,48 @@
1
+ import { splitProps, Show } from "solid-js";
2
+ import { IconMenu2 } from "@tabler/icons-solidjs";
3
+ import clsx from "clsx";
4
+ import { Icon } from "../../display/Icon";
5
+ import { twMerge } from "tailwind-merge";
6
+ import { Button } from "../../form-control/Button";
7
+ import { useSidebarContextOptional } from "../sidebar/SidebarContext";
8
+ import { TopbarContainer } from "./TopbarContainer";
9
+ import { TopbarMenu } from "./TopbarMenu";
10
+ import { TopbarUser } from "./TopbarUser";
11
+ const baseClass = clsx(
12
+ // 레이아웃
13
+ "flex",
14
+ "flex-row",
15
+ "gap-2",
16
+ "items-center",
17
+ // 크기
18
+ "min-h-12",
19
+ "px-2",
20
+ // 배경/테두리
21
+ "bg-white",
22
+ "dark:bg-base-950",
23
+ "border-b",
24
+ "border-base-200",
25
+ "dark:border-base-700",
26
+ // 스크롤
27
+ "overflow-x-auto",
28
+ "overflow-y-hidden",
29
+ // 기타
30
+ "select-none"
31
+ );
32
+ const TopbarBase = (props) => {
33
+ const [local, rest] = splitProps(props, ["children", "class"]);
34
+ const sidebarContext = useSidebarContextOptional();
35
+ const handleToggle = () => {
36
+ sidebarContext == null ? void 0 : sidebarContext.setToggle((v) => !v);
37
+ };
38
+ const getClassName = () => twMerge(baseClass, local.class);
39
+ return /* @__PURE__ */ React.createElement("header", { ...rest, "data-topbar": true, class: getClassName() }, /* @__PURE__ */ React.createElement(Show, { when: sidebarContext }, /* @__PURE__ */ React.createElement(Button, { variant: "ghost", onClick: handleToggle, class: "p-2", "aria-label": "\uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00" }, /* @__PURE__ */ React.createElement(Icon, { icon: IconMenu2, size: "1.5em" }))), local.children);
40
+ };
41
+ const Topbar = TopbarBase;
42
+ Topbar.Container = TopbarContainer;
43
+ Topbar.Menu = TopbarMenu;
44
+ Topbar.User = TopbarUser;
45
+ export {
46
+ Topbar
47
+ };
48
+ //# sourceMappingURL=Topbar.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/layout/topbar/Topbar.tsx"],
4
+ "sourcesContent": ["import { type JSX, type ParentComponent, splitProps, Show } from \"solid-js\";\nimport { IconMenu2 } from \"@tabler/icons-solidjs\";\nimport clsx from \"clsx\";\nimport { Icon } from \"../../display/Icon\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Button } from \"../../form-control/Button\";\nimport { useSidebarContextOptional } from \"../sidebar/SidebarContext\";\nimport { TopbarContainer } from \"./TopbarContainer\";\nimport { TopbarMenu } from \"./TopbarMenu\";\nimport { TopbarUser } from \"./TopbarUser\";\n\nexport type { TopbarContainerProps } from \"./TopbarContainer\";\nexport type { TopbarMenuItem, TopbarMenuProps } from \"./TopbarMenu\";\nexport type { TopbarUserMenu, TopbarUserProps } from \"./TopbarUser\";\n\nconst baseClass = clsx(\n // \uB808\uC774\uC544\uC6C3\n \"flex\",\n \"flex-row\",\n \"gap-2\",\n \"items-center\",\n // \uD06C\uAE30\n \"min-h-12\",\n \"px-2\",\n // \uBC30\uACBD/\uD14C\uB450\uB9AC\n \"bg-white\",\n \"dark:bg-base-950\",\n \"border-b\",\n \"border-base-200\",\n \"dark:border-base-700\",\n // \uC2A4\uD06C\uB864\n \"overflow-x-auto\",\n \"overflow-y-hidden\",\n // \uAE30\uD0C0\n \"select-none\",\n);\n\nexport interface TopbarProps extends JSX.HTMLAttributes<HTMLElement> {\n children: JSX.Element;\n}\n\n/**\n * \uC0C1\uB2E8\uBC14 \uBCF8\uCCB4 \uCEF4\uD3EC\uB10C\uD2B8\n *\n * @remarks\n * - SidebarContext\uAC00 \uC788\uC744 \uACBD\uC6B0 \uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00 \uBC84\uD2BC \uC790\uB3D9 \uD45C\uC2DC\n * - SidebarContainer \uB0B4\uBD80\uC5D0\uC11C \uC0AC\uC6A9\uD558\uBA74 \uD1A0\uAE00 \uBC84\uD2BC\uC774 \uB098\uD0C0\uB0A8\n * - \uB2E8\uB3C5 \uC0AC\uC6A9 \uC2DC \uD1A0\uAE00 \uBC84\uD2BC \uC5C6\uC774 \uC21C\uC218 Topbar\uB85C \uB3D9\uC791\n *\n * @example\n * ```tsx\n * <Topbar>\n * <h1 class=\"text-lg font-bold\">\uC571 \uC774\uB984</h1>\n * <Topbar.Menu menus={menuItems} />\n * <div class=\"flex-1\" />\n * <Topbar.User menus={userMenus}>\uC0AC\uC6A9\uC790</Topbar.User>\n * </Topbar>\n * ```\n */\ninterface TopbarComponent extends ParentComponent<TopbarProps> {\n Container: typeof TopbarContainer;\n Menu: typeof TopbarMenu;\n User: typeof TopbarUser;\n}\n\nconst TopbarBase: ParentComponent<TopbarProps> = (props) => {\n const [local, rest] = splitProps(props, [\"children\", \"class\"]);\n\n // SidebarContext \uC120\uD0DD\uC801 \uC0AC\uC6A9 (Context \uC5C6\uC73C\uBA74 \uD1A0\uAE00 \uBC84\uD2BC \uBBF8\uD45C\uC2DC)\n const sidebarContext = useSidebarContextOptional();\n\n const handleToggle = () => {\n sidebarContext?.setToggle((v) => !v);\n };\n\n const getClassName = () => twMerge(baseClass, local.class);\n\n return (\n <header {...rest} data-topbar class={getClassName()}>\n <Show when={sidebarContext}>\n <Button variant=\"ghost\" onClick={handleToggle} class=\"p-2\" aria-label=\"\uC0AC\uC774\uB4DC\uBC14 \uD1A0\uAE00\">\n <Icon icon={IconMenu2} size=\"1.5em\" />\n </Button>\n </Show>\n {local.children}\n </header>\n );\n};\n\nexport const Topbar = TopbarBase as TopbarComponent;\nTopbar.Container = TopbarContainer;\nTopbar.Menu = TopbarMenu;\nTopbar.User = TopbarUser;\n"],
5
+ "mappings": "AAAA,SAAyC,YAAY,YAAY;AACjE,SAAS,iBAAiB;AAC1B,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAM3B,MAAM,YAAY;AAAA;AAAA,EAEhB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA;AAAA,EAEA;AACF;AA8BA,MAAM,aAA2C,CAAC,UAAU;AAC1D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,OAAO,CAAC;AAG7D,QAAM,iBAAiB,0BAA0B;AAEjD,QAAM,eAAe,MAAM;AACzB,qDAAgB,UAAU,CAAC,MAAM,CAAC;AAAA,EACpC;AAEA,QAAM,eAAe,MAAM,QAAQ,WAAW,MAAM,KAAK;AAEzD,SACE,oCAAC,YAAQ,GAAG,MAAM,eAAW,MAAC,OAAO,aAAa,KAChD,oCAAC,QAAK,MAAM,kBACV,oCAAC,UAAO,SAAQ,SAAQ,SAAS,cAAc,OAAM,OAAM,cAAW,2CACpE,oCAAC,QAAK,MAAM,WAAW,MAAK,SAAQ,CACtC,CACF,GACC,MAAM,QACT;AAEJ;AAEO,MAAM,SAAS;AACtB,OAAO,YAAY;AACnB,OAAO,OAAO;AACd,OAAO,OAAO;",
6
+ "names": []
7
+ }
@@ -0,0 +1,13 @@
1
+ import { splitProps } from "solid-js";
2
+ import clsx from "clsx";
3
+ import { twMerge } from "tailwind-merge";
4
+ const containerClass = clsx("flex h-full flex-col");
5
+ const TopbarContainer = (props) => {
6
+ const [local, rest] = splitProps(props, ["children", "class"]);
7
+ const getClassName = () => twMerge(containerClass, local.class);
8
+ return /* @__PURE__ */ React.createElement("div", { ...rest, "data-topbar-container": true, class: getClassName() }, local.children);
9
+ };
10
+ export {
11
+ TopbarContainer
12
+ };
13
+ //# sourceMappingURL=TopbarContainer.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/layout/topbar/TopbarContainer.tsx"],
4
+ "sourcesContent": ["import { type JSX, type ParentComponent, splitProps } from \"solid-js\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nconst containerClass = clsx(\"flex h-full flex-col\");\n\nexport interface TopbarContainerProps extends JSX.HTMLAttributes<HTMLDivElement> {\n children: JSX.Element;\n}\n\n/**\n * Topbar + \uCF58\uD150\uCE20 \uC601\uC5ED\uC744 \uAC10\uC2F8\uB294 \uB808\uC774\uC544\uC6C3 \uCEE8\uD14C\uC774\uB108\n *\n * @remarks\n * - `flex flex-col h-full` \uAD6C\uC870\uB85C Topbar\uC640 \uCF58\uD150\uCE20\uB97C \uC218\uC9C1 \uBC30\uCE58\n * - Context \uC5C6\uC774 \uC21C\uC218 \uB808\uC774\uC544\uC6C3 \uC5ED\uD560\uB9CC \uC218\uD589\n * - \uBD80\uBAA8 \uC694\uC18C\uC5D0 \uB192\uC774\uAC00 \uC9C0\uC815\uB418\uC5B4\uC57C \uD568\n *\n * @example\n * ```tsx\n * <TopbarContainer>\n * <Topbar>\n * <h1>\uC571 \uC774\uB984</h1>\n * <TopbarMenu menus={menuItems} />\n * </Topbar>\n * <main class=\"flex-1 overflow-auto\">\uCF58\uD150\uCE20</main>\n * </TopbarContainer>\n * ```\n */\nexport const TopbarContainer: ParentComponent<TopbarContainerProps> = (props) => {\n const [local, rest] = splitProps(props, [\"children\", \"class\"]);\n\n const getClassName = () => twMerge(containerClass, local.class);\n\n return (\n <div {...rest} data-topbar-container class={getClassName()}>\n {local.children}\n </div>\n );\n};\n"],
5
+ "mappings": "AAAA,SAAyC,kBAAkB;AAC3D,OAAO,UAAU;AACjB,SAAS,eAAe;AAExB,MAAM,iBAAiB,KAAK,sBAAsB;AAyB3C,MAAM,kBAAyD,CAAC,UAAU;AAC/E,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,OAAO,CAAC;AAE7D,QAAM,eAAe,MAAM,QAAQ,gBAAgB,MAAM,KAAK;AAE9D,SACE,oCAAC,SAAK,GAAG,MAAM,yBAAqB,MAAC,OAAO,aAAa,KACtD,MAAM,QACT;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,106 @@
1
+ import { For, Show, splitProps, createSignal, createMemo } from "solid-js";
2
+ import { useLocation, useNavigate } from "@solidjs/router";
3
+ import { IconChevronDown, IconDotsVertical } from "@tabler/icons-solidjs";
4
+ import { Icon } from "../../display/Icon";
5
+ import clsx from "clsx";
6
+ import { twMerge } from "tailwind-merge";
7
+ import { Button } from "../../form-control/Button";
8
+ import { Dropdown } from "../../disclosure/Dropdown";
9
+ import { List } from "../../data/list/List";
10
+ import { ListItem } from "../../data/list/ListItem";
11
+ const desktopNavBaseClass = clsx("hidden sm:flex", "flex-row gap-1", "items-center");
12
+ const mobileWrapperClass = clsx("flex sm:hidden");
13
+ const menuButtonContentClass = clsx("flex items-center", "gap-1");
14
+ const TopbarMenu = (props) => {
15
+ const [local, rest] = splitProps(props, ["menus", "class"]);
16
+ const [mobileMenuOpen, setMobileMenuOpen] = createSignal(false);
17
+ let mobileButtonRef;
18
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("nav", { ...rest, "data-topbar-menu": true, class: twMerge(desktopNavBaseClass, local.class) }, /* @__PURE__ */ React.createElement(For, { each: local.menus }, (menu) => /* @__PURE__ */ React.createElement(TopbarMenuButton, { menu }))), /* @__PURE__ */ React.createElement("div", { class: mobileWrapperClass }, /* @__PURE__ */ React.createElement(
19
+ Button,
20
+ {
21
+ ref: mobileButtonRef,
22
+ variant: "ghost",
23
+ onClick: () => setMobileMenuOpen((v) => !v),
24
+ "aria-label": "\uBA54\uB274",
25
+ "aria-haspopup": "menu",
26
+ "aria-expanded": mobileMenuOpen()
27
+ },
28
+ /* @__PURE__ */ React.createElement(Icon, { icon: IconDotsVertical, size: "1.25em" })
29
+ ), /* @__PURE__ */ React.createElement(Dropdown, { triggerRef: () => mobileButtonRef, open: mobileMenuOpen(), onOpenChange: setMobileMenuOpen }, /* @__PURE__ */ React.createElement(List, { inset: true }, /* @__PURE__ */ React.createElement(For, { each: local.menus }, (menu) => /* @__PURE__ */ React.createElement(TopbarMenuDropdownItem, { menu, onClose: () => setMobileMenuOpen(false) }))))));
30
+ };
31
+ const TopbarMenuButton = (props) => {
32
+ const location = useLocation();
33
+ const navigate = useNavigate();
34
+ const [open, setOpen] = createSignal(false);
35
+ let buttonRef;
36
+ const hasChildren = () => props.menu.children !== void 0 && props.menu.children.length > 0;
37
+ const isExternalLink = () => {
38
+ var _a;
39
+ return ((_a = props.menu.href) == null ? void 0 : _a.includes("://")) ?? false;
40
+ };
41
+ const isAnyChildSelected = (items) => {
42
+ for (const item of items) {
43
+ if (item.href === location.pathname) return true;
44
+ if (item.children && isAnyChildSelected(item.children)) return true;
45
+ }
46
+ return false;
47
+ };
48
+ const isSelected = createMemo(() => {
49
+ if (props.menu.href === location.pathname) return true;
50
+ if (props.menu.children) {
51
+ return isAnyChildSelected(props.menu.children);
52
+ }
53
+ return false;
54
+ });
55
+ const handleClick = () => {
56
+ if (hasChildren()) {
57
+ setOpen((v) => !v);
58
+ } else if (props.menu.href !== void 0) {
59
+ if (isExternalLink()) {
60
+ window.open(props.menu.href, "_blank", "noopener,noreferrer");
61
+ } else {
62
+ navigate(props.menu.href);
63
+ }
64
+ }
65
+ };
66
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
67
+ Button,
68
+ {
69
+ ref: buttonRef,
70
+ variant: isSelected() ? "solid" : "ghost",
71
+ theme: isSelected() ? "primary" : "base",
72
+ onClick: handleClick,
73
+ class: menuButtonContentClass,
74
+ "aria-haspopup": hasChildren() ? "menu" : void 0,
75
+ "aria-expanded": hasChildren() ? open() : void 0
76
+ },
77
+ /* @__PURE__ */ React.createElement(Show, { when: props.menu.icon }, /* @__PURE__ */ React.createElement(Icon, { icon: props.menu.icon })),
78
+ /* @__PURE__ */ React.createElement("span", null, props.menu.title),
79
+ /* @__PURE__ */ React.createElement(Show, { when: hasChildren() }, /* @__PURE__ */ React.createElement(Icon, { icon: IconChevronDown, size: "1em", class: clsx("transition-transform", open() && "rotate-180") }))
80
+ ), /* @__PURE__ */ React.createElement(Show, { when: hasChildren() }, /* @__PURE__ */ React.createElement(Dropdown, { triggerRef: () => buttonRef, open: open(), onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(List, { inset: true }, /* @__PURE__ */ React.createElement(For, { each: props.menu.children }, (child) => /* @__PURE__ */ React.createElement(TopbarMenuDropdownItem, { menu: child, onClose: () => setOpen(false) }))))));
81
+ };
82
+ const TopbarMenuDropdownItem = (props) => {
83
+ const location = useLocation();
84
+ const navigate = useNavigate();
85
+ const hasChildren = () => props.menu.children !== void 0 && props.menu.children.length > 0;
86
+ const isExternalLink = () => {
87
+ var _a;
88
+ return ((_a = props.menu.href) == null ? void 0 : _a.includes("://")) ?? false;
89
+ };
90
+ const isSelected = () => props.menu.href === location.pathname;
91
+ const handleClick = () => {
92
+ if (props.menu.href !== void 0) {
93
+ if (isExternalLink()) {
94
+ window.open(props.menu.href, "_blank", "noopener,noreferrer");
95
+ } else {
96
+ navigate(props.menu.href);
97
+ }
98
+ props.onClose();
99
+ }
100
+ };
101
+ return /* @__PURE__ */ React.createElement(ListItem, { selected: isSelected(), readonly: props.menu.href === void 0 && hasChildren(), onClick: handleClick }, /* @__PURE__ */ React.createElement(Show, { when: props.menu.icon }, /* @__PURE__ */ React.createElement(Icon, { icon: props.menu.icon })), /* @__PURE__ */ React.createElement("span", { class: "truncate" }, props.menu.title), /* @__PURE__ */ React.createElement(Show, { when: hasChildren() }, /* @__PURE__ */ React.createElement(ListItem.Children, null, /* @__PURE__ */ React.createElement(For, { each: props.menu.children }, (child) => /* @__PURE__ */ React.createElement(TopbarMenuDropdownItem, { menu: child, onClose: props.onClose })))));
102
+ };
103
+ export {
104
+ TopbarMenu
105
+ };
106
+ //# sourceMappingURL=TopbarMenu.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/layout/topbar/TopbarMenu.tsx"],
4
+ "sourcesContent": ["import { type Component, type JSX, For, Show, splitProps, createSignal, createMemo } from \"solid-js\";\nimport { useLocation, useNavigate } from \"@solidjs/router\";\nimport { IconChevronDown, IconDotsVertical, type IconProps } from \"@tabler/icons-solidjs\";\nimport { Icon } from \"../../display/Icon\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Button } from \"../../form-control/Button\";\nimport { Dropdown } from \"../../disclosure/Dropdown\";\nimport { List } from \"../../data/list/List\";\nimport { ListItem } from \"../../data/list/ListItem\";\n\nconst desktopNavBaseClass = clsx(\"hidden sm:flex\", \"flex-row gap-1\", \"items-center\");\nconst mobileWrapperClass = clsx(\"flex sm:hidden\");\nconst menuButtonContentClass = clsx(\"flex items-center\", \"gap-1\");\n\nexport interface TopbarMenuItem {\n title: string;\n href?: string;\n icon?: Component<IconProps>;\n children?: TopbarMenuItem[];\n}\n\nexport interface TopbarMenuProps extends Omit<JSX.HTMLAttributes<HTMLElement>, \"children\"> {\n /**\n * \uBA54\uB274 \uC544\uC774\uD15C \uBC30\uC5F4\n */\n menus: TopbarMenuItem[];\n}\n\n/**\n * Topbar \uB4DC\uB86D\uB2E4\uC6B4 \uBA54\uB274 \uCEF4\uD3EC\uB10C\uD2B8\n *\n * @remarks\n * - children\uC774 \uC788\uB294 \uD56D\uBAA9: \uD074\uB9AD \uC2DC \uB4DC\uB86D\uB2E4\uC6B4 \uD45C\uC2DC\n * - children\uC774 \uC5C6\uB294 \uD56D\uBAA9: \uD074\uB9AD \uC2DC \uBC14\uB85C \uB124\uBE44\uAC8C\uC774\uC158\n * - \uC678\uBD80 \uB9C1\uD06C(://\uD3EC\uD568)\uB294 \uC0C8 \uD0ED\uC5D0\uC11C \uC5F4\uAE30\n * - pathname \uC815\uD655 \uC77C\uCE58\uB85C \uC120\uD0DD \uC0C1\uD0DC \uD310\uB2E8\n * - \uD558\uC704 \uBA54\uB274\uB294 List/ListItem\uC73C\uB85C \uB80C\uB354\uB9C1 (\uBAA8\uB4E0 \uACC4\uCE35 \uD3BC\uCE68)\n *\n * @example\n * ```tsx\n * <TopbarMenu menus={[\n * { title: \"\uB300\uC2DC\uBCF4\uB4DC\", href: \"/dashboard\", icon: IconHome },\n * {\n * title: \"\uBA54\uB2741\",\n * icon: IconFolder,\n * children: [\n * { title: \"\uC11C\uBE0C\uBA54\uB2741\", href: \"/menu1/sub1\" },\n * { title: \"\uC11C\uBE0C\uBA54\uB2742\", href: \"/menu1/sub2\" },\n * ],\n * },\n * ]} />\n * ```\n */\nexport const TopbarMenu: Component<TopbarMenuProps> = (props) => {\n const [local, rest] = splitProps(props, [\"menus\", \"class\"]);\n const [mobileMenuOpen, setMobileMenuOpen] = createSignal(false);\n let mobileButtonRef: HTMLButtonElement | undefined;\n\n return (\n <>\n {/* \uB370\uC2A4\uD06C\uD0D1 \uBA54\uB274 (640px \uC774\uC0C1\uC5D0\uC11C\uB9CC \uD45C\uC2DC) */}\n <nav {...rest} data-topbar-menu class={twMerge(desktopNavBaseClass, local.class)}>\n <For each={local.menus}>{(menu) => <TopbarMenuButton menu={menu} />}</For>\n </nav>\n\n {/* \uBAA8\uBC14\uC77C \uD584\uBC84\uAC70 (640px \uBBF8\uB9CC\uC5D0\uC11C\uB9CC \uD45C\uC2DC) */}\n <div class={mobileWrapperClass}>\n <Button\n ref={mobileButtonRef}\n variant=\"ghost\"\n onClick={() => setMobileMenuOpen((v) => !v)}\n aria-label=\"\uBA54\uB274\"\n aria-haspopup=\"menu\"\n aria-expanded={mobileMenuOpen()}\n >\n <Icon icon={IconDotsVertical} size=\"1.25em\" />\n </Button>\n <Dropdown triggerRef={() => mobileButtonRef} open={mobileMenuOpen()} onOpenChange={setMobileMenuOpen}>\n <List inset>\n <For each={local.menus}>\n {(menu) => <TopbarMenuDropdownItem menu={menu} onClose={() => setMobileMenuOpen(false)} />}\n </For>\n </List>\n </Dropdown>\n </div>\n </>\n );\n};\n\ninterface TopbarMenuButtonProps {\n menu: TopbarMenuItem;\n}\n\nconst TopbarMenuButton: Component<TopbarMenuButtonProps> = (props) => {\n const location = useLocation();\n const navigate = useNavigate();\n\n const [open, setOpen] = createSignal(false);\n let buttonRef: HTMLButtonElement | undefined;\n\n const hasChildren = () => props.menu.children !== undefined && props.menu.children.length > 0;\n const isExternalLink = () => props.menu.href?.includes(\"://\") ?? false;\n\n const isAnyChildSelected = (items: TopbarMenuItem[]): boolean => {\n for (const item of items) {\n if (item.href === location.pathname) return true;\n if (item.children && isAnyChildSelected(item.children)) return true;\n }\n return false;\n };\n\n // \uD604\uC7AC \uBA54\uB274 \uB610\uB294 \uD558\uC704 \uBA54\uB274\uAC00 \uC120\uD0DD\uB418\uC5C8\uB294\uC9C0 \uD655\uC778 (createMemo\uB85C \uCE90\uC2F1)\n const isSelected = createMemo(() => {\n if (props.menu.href === location.pathname) return true;\n if (props.menu.children) {\n return isAnyChildSelected(props.menu.children);\n }\n return false;\n });\n\n const handleClick = () => {\n if (hasChildren()) {\n setOpen((v) => !v);\n } else if (props.menu.href !== undefined) {\n if (isExternalLink()) {\n window.open(props.menu.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n navigate(props.menu.href);\n }\n }\n };\n\n return (\n <>\n <Button\n ref={buttonRef}\n variant={isSelected() ? \"solid\" : \"ghost\"}\n theme={isSelected() ? \"primary\" : \"base\"}\n onClick={handleClick}\n class={menuButtonContentClass}\n aria-haspopup={hasChildren() ? \"menu\" : undefined}\n aria-expanded={hasChildren() ? open() : undefined}\n >\n <Show when={props.menu.icon}>\n <Icon icon={props.menu.icon!} />\n </Show>\n <span>{props.menu.title}</span>\n <Show when={hasChildren()}>\n <Icon icon={IconChevronDown} size=\"1em\" class={clsx(\"transition-transform\", open() && \"rotate-180\")} />\n </Show>\n </Button>\n <Show when={hasChildren()}>\n <Dropdown triggerRef={() => buttonRef} open={open()} onOpenChange={setOpen}>\n <List inset>\n <For each={props.menu.children}>\n {(child) => <TopbarMenuDropdownItem menu={child} onClose={() => setOpen(false)} />}\n </For>\n </List>\n </Dropdown>\n </Show>\n </>\n );\n};\n\ninterface TopbarMenuDropdownItemProps {\n menu: TopbarMenuItem;\n onClose: () => void;\n}\n\nconst TopbarMenuDropdownItem: Component<TopbarMenuDropdownItemProps> = (props) => {\n const location = useLocation();\n const navigate = useNavigate();\n\n const hasChildren = () => props.menu.children !== undefined && props.menu.children.length > 0;\n const isExternalLink = () => props.menu.href?.includes(\"://\") ?? false;\n const isSelected = () => props.menu.href === location.pathname;\n\n const handleClick = () => {\n if (props.menu.href !== undefined) {\n if (isExternalLink()) {\n window.open(props.menu.href, \"_blank\", \"noopener,noreferrer\");\n } else {\n navigate(props.menu.href);\n }\n props.onClose();\n }\n // href\uAC00 \uC5C6\uACE0 children\uB9CC \uC788\uB294 \uACBD\uC6B0 \uD074\uB9AD\uD574\uB3C4 \uB2EB\uD788\uC9C0 \uC54A\uC74C\n };\n\n return (\n <ListItem selected={isSelected()} readonly={props.menu.href === undefined && hasChildren()} onClick={handleClick}>\n <Show when={props.menu.icon}>\n <Icon icon={props.menu.icon!} />\n </Show>\n <span class=\"truncate\">{props.menu.title}</span>\n <Show when={hasChildren()}>\n <ListItem.Children>\n <For each={props.menu.children}>\n {(child) => <TopbarMenuDropdownItem menu={child} onClose={props.onClose} />}\n </For>\n </ListItem.Children>\n </Show>\n </ListItem>\n );\n};\n"],
5
+ "mappings": "AAAA,SAAmC,KAAK,MAAM,YAAY,cAAc,kBAAkB;AAC1F,SAAS,aAAa,mBAAmB;AACzC,SAAS,iBAAiB,wBAAwC;AAClE,SAAS,YAAY;AACrB,OAAO,UAAU;AACjB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,MAAM,sBAAsB,KAAK,kBAAkB,kBAAkB,cAAc;AACnF,MAAM,qBAAqB,KAAK,gBAAgB;AAChD,MAAM,yBAAyB,KAAK,qBAAqB,OAAO;AAyCzD,MAAM,aAAyC,CAAC,UAAU;AAC/D,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,SAAS,OAAO,CAAC;AAC1D,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,aAAa,KAAK;AAC9D,MAAI;AAEJ,SACE,0DAEE,oCAAC,SAAK,GAAG,MAAM,oBAAgB,MAAC,OAAO,QAAQ,qBAAqB,MAAM,KAAK,KAC7E,oCAAC,OAAI,MAAM,MAAM,SAAQ,CAAC,SAAS,oCAAC,oBAAiB,MAAY,CAAG,CACtE,GAGA,oCAAC,SAAI,OAAO,sBACV;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAAA,MAC1C,cAAW;AAAA,MACX,iBAAc;AAAA,MACd,iBAAe,eAAe;AAAA;AAAA,IAE9B,oCAAC,QAAK,MAAM,kBAAkB,MAAK,UAAS;AAAA,EAC9C,GACA,oCAAC,YAAS,YAAY,MAAM,iBAAiB,MAAM,eAAe,GAAG,cAAc,qBACjF,oCAAC,QAAK,OAAK,QACT,oCAAC,OAAI,MAAM,MAAM,SACd,CAAC,SAAS,oCAAC,0BAAuB,MAAY,SAAS,MAAM,kBAAkB,KAAK,GAAG,CAC1F,CACF,CACF,CACF,CACF;AAEJ;AAMA,MAAM,mBAAqD,CAAC,UAAU;AACpE,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,YAAY;AAE7B,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAC1C,MAAI;AAEJ,QAAM,cAAc,MAAM,MAAM,KAAK,aAAa,UAAa,MAAM,KAAK,SAAS,SAAS;AAC5F,QAAM,iBAAiB,MAAG;AAtG5B;AAsG+B,wBAAM,KAAK,SAAX,mBAAiB,SAAS,WAAU;AAAA;AAEjE,QAAM,qBAAqB,CAAC,UAAqC;AAC/D,eAAW,QAAQ,OAAO;AACxB,UAAI,KAAK,SAAS,SAAS,SAAU,QAAO;AAC5C,UAAI,KAAK,YAAY,mBAAmB,KAAK,QAAQ,EAAG,QAAO;AAAA,IACjE;AACA,WAAO;AAAA,EACT;AAGA,QAAM,aAAa,WAAW,MAAM;AAClC,QAAI,MAAM,KAAK,SAAS,SAAS,SAAU,QAAO;AAClD,QAAI,MAAM,KAAK,UAAU;AACvB,aAAO,mBAAmB,MAAM,KAAK,QAAQ;AAAA,IAC/C;AACA,WAAO;AAAA,EACT,CAAC;AAED,QAAM,cAAc,MAAM;AACxB,QAAI,YAAY,GAAG;AACjB,cAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,IACnB,WAAW,MAAM,KAAK,SAAS,QAAW;AACxC,UAAI,eAAe,GAAG;AACpB,eAAO,KAAK,MAAM,KAAK,MAAM,UAAU,qBAAqB;AAAA,MAC9D,OAAO;AACL,iBAAS,MAAM,KAAK,IAAI;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AAEA,SACE,0DACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,SAAS,WAAW,IAAI,UAAU;AAAA,MAClC,OAAO,WAAW,IAAI,YAAY;AAAA,MAClC,SAAS;AAAA,MACT,OAAO;AAAA,MACP,iBAAe,YAAY,IAAI,SAAS;AAAA,MACxC,iBAAe,YAAY,IAAI,KAAK,IAAI;AAAA;AAAA,IAExC,oCAAC,QAAK,MAAM,MAAM,KAAK,QACrB,oCAAC,QAAK,MAAM,MAAM,KAAK,MAAO,CAChC;AAAA,IACA,oCAAC,cAAM,MAAM,KAAK,KAAM;AAAA,IACxB,oCAAC,QAAK,MAAM,YAAY,KACtB,oCAAC,QAAK,MAAM,iBAAiB,MAAK,OAAM,OAAO,KAAK,wBAAwB,KAAK,KAAK,YAAY,GAAG,CACvG;AAAA,EACF,GACA,oCAAC,QAAK,MAAM,YAAY,KACtB,oCAAC,YAAS,YAAY,MAAM,WAAW,MAAM,KAAK,GAAG,cAAc,WACjE,oCAAC,QAAK,OAAK,QACT,oCAAC,OAAI,MAAM,MAAM,KAAK,YACnB,CAAC,UAAU,oCAAC,0BAAuB,MAAM,OAAO,SAAS,MAAM,QAAQ,KAAK,GAAG,CAClF,CACF,CACF,CACF,CACF;AAEJ;AAOA,MAAM,yBAAiE,CAAC,UAAU;AAChF,QAAM,WAAW,YAAY;AAC7B,QAAM,WAAW,YAAY;AAE7B,QAAM,cAAc,MAAM,MAAM,KAAK,aAAa,UAAa,MAAM,KAAK,SAAS,SAAS;AAC5F,QAAM,iBAAiB,MAAG;AA/K5B;AA+K+B,wBAAM,KAAK,SAAX,mBAAiB,SAAS,WAAU;AAAA;AACjE,QAAM,aAAa,MAAM,MAAM,KAAK,SAAS,SAAS;AAEtD,QAAM,cAAc,MAAM;AACxB,QAAI,MAAM,KAAK,SAAS,QAAW;AACjC,UAAI,eAAe,GAAG;AACpB,eAAO,KAAK,MAAM,KAAK,MAAM,UAAU,qBAAqB;AAAA,MAC9D,OAAO;AACL,iBAAS,MAAM,KAAK,IAAI;AAAA,MAC1B;AACA,YAAM,QAAQ;AAAA,IAChB;AAAA,EAEF;AAEA,SACE,oCAAC,YAAS,UAAU,WAAW,GAAG,UAAU,MAAM,KAAK,SAAS,UAAa,YAAY,GAAG,SAAS,eACnG,oCAAC,QAAK,MAAM,MAAM,KAAK,QACrB,oCAAC,QAAK,MAAM,MAAM,KAAK,MAAO,CAChC,GACA,oCAAC,UAAK,OAAM,cAAY,MAAM,KAAK,KAAM,GACzC,oCAAC,QAAK,MAAM,YAAY,KACtB,oCAAC,SAAS,UAAT,MACC,oCAAC,OAAI,MAAM,MAAM,KAAK,YACnB,CAAC,UAAU,oCAAC,0BAAuB,MAAM,OAAO,SAAS,MAAM,SAAS,CAC3E,CACF,CACF,CACF;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,44 @@
1
+ import { createSignal, For, Show, splitProps } from "solid-js";
2
+ import { IconChevronDown } from "@tabler/icons-solidjs";
3
+ import clsx from "clsx";
4
+ import { Icon } from "../../display/Icon";
5
+ import { twMerge } from "tailwind-merge";
6
+ import { Button } from "../../form-control/Button";
7
+ import { Dropdown } from "../../disclosure/Dropdown";
8
+ import { List } from "../../data/list/List";
9
+ import { ListItem } from "../../data/list/ListItem";
10
+ const wrapperBaseClass = clsx("flex items-center");
11
+ const buttonContentClass = clsx("flex items-center", "gap-1");
12
+ const TopbarUser = (props) => {
13
+ const [local, rest] = splitProps(props, ["children", "class", "menus"]);
14
+ const [open, setOpen] = createSignal(false);
15
+ let buttonRef;
16
+ const hasMenus = () => local.menus !== void 0 && local.menus.length > 0;
17
+ const handleClick = () => {
18
+ if (hasMenus()) {
19
+ setOpen((v) => !v);
20
+ }
21
+ };
22
+ const handleMenuClick = (menu) => {
23
+ setOpen(false);
24
+ menu.onClick();
25
+ };
26
+ const getClassName = () => twMerge(wrapperBaseClass, local.class);
27
+ return /* @__PURE__ */ React.createElement("div", { ...rest, "data-topbar-user": true, class: getClassName() }, /* @__PURE__ */ React.createElement(
28
+ Button,
29
+ {
30
+ ref: buttonRef,
31
+ variant: "ghost",
32
+ onClick: handleClick,
33
+ class: buttonContentClass,
34
+ "aria-haspopup": hasMenus() ? "menu" : void 0,
35
+ "aria-expanded": hasMenus() ? open() : void 0
36
+ },
37
+ local.children,
38
+ /* @__PURE__ */ React.createElement(Show, { when: hasMenus() }, /* @__PURE__ */ React.createElement(Icon, { icon: IconChevronDown, size: "1em", class: clsx("transition-transform", open() && "rotate-180") }))
39
+ ), /* @__PURE__ */ React.createElement(Show, { when: hasMenus() }, /* @__PURE__ */ React.createElement(Dropdown, { triggerRef: () => buttonRef, open: open(), onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(List, { inset: true }, /* @__PURE__ */ React.createElement(For, { each: local.menus }, (menu) => /* @__PURE__ */ React.createElement(ListItem, { onClick: () => handleMenuClick(menu) }, menu.title))))));
40
+ };
41
+ export {
42
+ TopbarUser
43
+ };
44
+ //# sourceMappingURL=TopbarUser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/layout/topbar/TopbarUser.tsx"],
4
+ "sourcesContent": ["import { createSignal, For, type JSX, type ParentComponent, Show, splitProps } from \"solid-js\";\nimport { IconChevronDown } from \"@tabler/icons-solidjs\";\nimport clsx from \"clsx\";\nimport { Icon } from \"../../display/Icon\";\nimport { twMerge } from \"tailwind-merge\";\nimport { Button } from \"../../form-control/Button\";\nimport { Dropdown } from \"../../disclosure/Dropdown\";\nimport { List } from \"../../data/list/List\";\nimport { ListItem } from \"../../data/list/ListItem\";\n\nconst wrapperBaseClass = clsx(\"flex items-center\");\nconst buttonContentClass = clsx(\"flex items-center\", \"gap-1\");\n\nexport interface TopbarUserMenu {\n title: string;\n onClick: () => void;\n}\n\nexport interface TopbarUserProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, \"onClick\"> {\n /**\n * \uB4DC\uB86D\uB2E4\uC6B4 \uBA54\uB274 (\uC788\uC744 \uB54C\uB9CC \uB4DC\uB86D\uB2E4\uC6B4 \uD45C\uC2DC)\n */\n menus?: TopbarUserMenu[];\n\n /**\n * \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uC601\uC5ED (\uCEE4\uC2A4\uD130\uB9C8\uC774\uC9D5)\n */\n children: JSX.Element;\n}\n\n/**\n * Topbar \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uCEF4\uD3EC\uB10C\uD2B8\n *\n * @remarks\n * - children\uC73C\uB85C \uC0AC\uC6A9\uC790 \uC815\uBCF4 \uD45C\uC2DC \uCEE4\uC2A4\uD130\uB9C8\uC774\uC9D5\n * - menus\uAC00 \uC788\uC744 \uB54C \uD074\uB9AD \uC2DC Dropdown\uC73C\uB85C \uBA54\uB274 \uD45C\uC2DC\n * - Button\uC758 ghost \uC2A4\uD0C0\uC77C \uC0AC\uC6A9\n *\n * @example\n * ```tsx\n * <TopbarUser menus={[\n * { title: \"\uD504\uB85C\uD544\", onClick: () => navigate(\"/profile\") },\n * { title: \"\uB85C\uADF8\uC544\uC6C3\", onClick: handleLogout },\n * ]}>\n * <span>\uC0AC\uC6A9\uC790\uBA85</span>\n * </TopbarUser>\n * ```\n */\nexport const TopbarUser: ParentComponent<TopbarUserProps> = (props) => {\n const [local, rest] = splitProps(props, [\"children\", \"class\", \"menus\"]);\n\n const [open, setOpen] = createSignal(false);\n let buttonRef: HTMLButtonElement | undefined;\n\n const hasMenus = () => local.menus !== undefined && local.menus.length > 0;\n\n const handleClick = () => {\n if (hasMenus()) {\n setOpen((v) => !v);\n }\n };\n\n const handleMenuClick = (menu: TopbarUserMenu) => {\n setOpen(false);\n menu.onClick();\n };\n\n const getClassName = () => twMerge(wrapperBaseClass, local.class);\n\n return (\n <div {...rest} data-topbar-user class={getClassName()}>\n <Button\n ref={buttonRef}\n variant=\"ghost\"\n onClick={handleClick}\n class={buttonContentClass}\n aria-haspopup={hasMenus() ? \"menu\" : undefined}\n aria-expanded={hasMenus() ? open() : undefined}\n >\n {local.children}\n <Show when={hasMenus()}>\n <Icon icon={IconChevronDown} size=\"1em\" class={clsx(\"transition-transform\", open() && \"rotate-180\")} />\n </Show>\n </Button>\n <Show when={hasMenus()}>\n <Dropdown triggerRef={() => buttonRef} open={open()} onOpenChange={setOpen}>\n <List inset>\n <For each={local.menus}>\n {(menu) => <ListItem onClick={() => handleMenuClick(menu)}>{menu.title}</ListItem>}\n </For>\n </List>\n </Dropdown>\n </Show>\n </div>\n );\n};\n"],
5
+ "mappings": "AAAA,SAAS,cAAc,KAAqC,MAAM,kBAAkB;AACpF,SAAS,uBAAuB;AAChC,OAAO,UAAU;AACjB,SAAS,YAAY;AACrB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAEzB,MAAM,mBAAmB,KAAK,mBAAmB;AACjD,MAAM,qBAAqB,KAAK,qBAAqB,OAAO;AAqCrD,MAAM,aAA+C,CAAC,UAAU;AACrE,QAAM,CAAC,OAAO,IAAI,IAAI,WAAW,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC;AAEtE,QAAM,CAAC,MAAM,OAAO,IAAI,aAAa,KAAK;AAC1C,MAAI;AAEJ,QAAM,WAAW,MAAM,MAAM,UAAU,UAAa,MAAM,MAAM,SAAS;AAEzE,QAAM,cAAc,MAAM;AACxB,QAAI,SAAS,GAAG;AACd,cAAQ,CAAC,MAAM,CAAC,CAAC;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,kBAAkB,CAAC,SAAyB;AAChD,YAAQ,KAAK;AACb,SAAK,QAAQ;AAAA,EACf;AAEA,QAAM,eAAe,MAAM,QAAQ,kBAAkB,MAAM,KAAK;AAEhE,SACE,oCAAC,SAAK,GAAG,MAAM,oBAAgB,MAAC,OAAO,aAAa,KAClD;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,SAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,MACP,iBAAe,SAAS,IAAI,SAAS;AAAA,MACrC,iBAAe,SAAS,IAAI,KAAK,IAAI;AAAA;AAAA,IAEpC,MAAM;AAAA,IACP,oCAAC,QAAK,MAAM,SAAS,KACnB,oCAAC,QAAK,MAAM,iBAAiB,MAAK,OAAM,OAAO,KAAK,wBAAwB,KAAK,KAAK,YAAY,GAAG,CACvG;AAAA,EACF,GACA,oCAAC,QAAK,MAAM,SAAS,KACnB,oCAAC,YAAS,YAAY,MAAM,WAAW,MAAM,KAAK,GAAG,cAAc,WACjE,oCAAC,QAAK,OAAK,QACT,oCAAC,OAAI,MAAM,MAAM,SACd,CAAC,SAAS,oCAAC,YAAS,SAAS,MAAM,gBAAgB,IAAI,KAAI,KAAK,KAAM,CACzE,CACF,CACF,CACF,CACF;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * 요소 bounds 정보 타입
3
+ */
4
+ export interface ElementBounds {
5
+ /** 측정 대상 요소 */
6
+ target: Element;
7
+ /** 뷰포트 기준 상단 위치 */
8
+ top: number;
9
+ /** 뷰포트 기준 왼쪽 위치 */
10
+ left: number;
11
+ /** 요소 너비 */
12
+ width: number;
13
+ /** 요소 높이 */
14
+ height: number;
15
+ }
16
+ declare global {
17
+ interface Element {
18
+ /**
19
+ * 셀렉터로 하위 요소 전체 검색
20
+ *
21
+ * @param selector - CSS 셀렉터
22
+ * @returns 매칭된 요소 배열 (빈 셀렉터는 빈 배열 반환)
23
+ */
24
+ findAll<T extends Element = Element>(selector: string): T[];
25
+ /**
26
+ * 셀렉터로 첫 번째 매칭 요소 검색
27
+ *
28
+ * @param selector - CSS 셀렉터
29
+ * @returns 첫 번째 매칭 요소 또는 undefined (빈 셀렉터는 undefined 반환)
30
+ */
31
+ findFirst<T extends Element = Element>(selector: string): T | undefined;
32
+ /**
33
+ * 요소를 첫 번째 자식으로 삽입
34
+ *
35
+ * @param child - 삽입할 자식 요소
36
+ * @returns 삽입된 자식 요소
37
+ */
38
+ prependChild<T extends Element>(child: T): T;
39
+ /**
40
+ * 모든 부모 요소 목록 반환 (가까운 순서)
41
+ *
42
+ * @returns 부모 요소 배열 (가까운 부모부터 순서대로)
43
+ */
44
+ getParents(): Element[];
45
+ /**
46
+ * 부모 중 첫 번째 포커스 가능 요소 검색 (tabbable 사용)
47
+ *
48
+ * @returns 포커스 가능한 첫 번째 부모 요소 또는 undefined
49
+ */
50
+ findFocusableParent(): HTMLElement | undefined;
51
+ /**
52
+ * 자식 중 첫 번째 포커스 가능 요소 검색 (tabbable 사용)
53
+ *
54
+ * @returns 포커스 가능한 첫 번째 자식 요소 또는 undefined
55
+ */
56
+ findFirstFocusableChild(): HTMLElement | undefined;
57
+ /**
58
+ * 요소가 offset 기준 요소인지 확인 (position: relative/absolute/fixed/sticky)
59
+ *
60
+ * @returns position 속성이 relative, absolute, fixed, sticky 중 하나면 true
61
+ */
62
+ isOffsetElement(): boolean;
63
+ /**
64
+ * 요소가 화면에 보이는지 확인
65
+ *
66
+ * @remarks
67
+ * clientRects 존재 여부, visibility: hidden, opacity: 0 여부를 확인한다.
68
+ *
69
+ * @returns 요소가 화면에 보이면 true
70
+ */
71
+ isVisible(): boolean;
72
+ }
73
+ }
74
+ /**
75
+ * 요소 내용을 클립보드에 복사 (copy 이벤트 핸들러에서 사용)
76
+ *
77
+ * @param event - copy 이벤트 객체
78
+ */
79
+ export declare function copyElement(event: ClipboardEvent): void;
80
+ /**
81
+ * 클립보드 내용을 요소에 붙여넣기 (paste 이벤트 핸들러에서 사용)
82
+ *
83
+ * @remarks
84
+ * 대상 요소 내의 첫 번째 input/textarea를 찾아 전체 값을 클립보드 내용으로 교체한다.
85
+ * 커서 위치나 선택 영역을 고려하지 않는다.
86
+ *
87
+ * @param event - paste 이벤트 객체
88
+ */
89
+ export declare function pasteToElement(event: ClipboardEvent): void;
90
+ /**
91
+ * IntersectionObserver를 사용하여 요소들의 bounds 정보 조회
92
+ *
93
+ * @param els - 대상 요소 배열
94
+ * @param timeout - 타임아웃 (밀리초, 기본: 5000)
95
+ * @throws {TimeoutError} 타임아웃 시간 내에 응답이 없을 경우
96
+ */
97
+ export declare function getBounds(els: Element[], timeout?: number): Promise<ElementBounds[]>;
98
+ //# sourceMappingURL=element-ext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-ext.d.ts","sourceRoot":"","sources":["../../../../../core-browser/src/extensions/element-ext.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO;QACf;;;;;WAKG;QACH,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;QAE5D;;;;;WAKG;QACH,SAAS,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;QAExE;;;;;WAKG;QACH,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;QAE7C;;;;WAIG;QACH,UAAU,IAAI,OAAO,EAAE,CAAC;QAExB;;;;WAIG;QACH,mBAAmB,IAAI,WAAW,GAAG,SAAS,CAAC;QAE/C;;;;WAIG;QACH,uBAAuB,IAAI,WAAW,GAAG,SAAS,CAAC;QAEnD;;;;WAIG;QACH,eAAe,IAAI,OAAO,CAAC;QAE3B;;;;;;;WAOG;QACH,SAAS,IAAI,OAAO,CAAC;KACtB;CACF;AAgED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAUvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAa1D;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAkDhG"}
@@ -0,0 +1,54 @@
1
+ declare global {
2
+ interface HTMLElement {
3
+ /**
4
+ * 강제 리페인트 (reflow 트리거)
5
+ */
6
+ repaint(): void;
7
+ /**
8
+ * 부모 요소 기준 상대 위치 계산 (CSS 포지셔닝용)
9
+ *
10
+ * @remarks
11
+ * 이 함수는 요소의 위치를 부모 요소 기준으로 계산하되, `window.scrollX/Y`를 포함하여
12
+ * CSS `top`/`left` 속성에 직접 사용할 수 있는 문서 기준 좌표를 반환한다.
13
+ *
14
+ * 주요 사용 사례:
15
+ * - 드롭다운, 팝업 등을 `document.body`에 append 후 위치 지정
16
+ * - 스크롤된 페이지에서도 올바르게 동작
17
+ *
18
+ * 계산에 포함되는 요소:
19
+ * - 뷰포트 기준 위치 (getBoundingClientRect)
20
+ * - 문서 스크롤 위치 (window.scrollX/Y)
21
+ * - 부모 요소 내부 스크롤 (parentEl.scrollTop/Left)
22
+ * - 중간 요소들의 border 두께
23
+ * - CSS transform 변환
24
+ *
25
+ * @param parent - 기준이 될 부모 요소 또는 셀렉터 (예: document.body, ".container")
26
+ * @returns CSS top/left 속성에 사용할 수 있는 좌표
27
+ * @throws {ArgumentError} 부모 요소를 찾을 수 없는 경우
28
+ */
29
+ getRelativeOffset(parent: HTMLElement | string): {
30
+ top: number;
31
+ left: number;
32
+ };
33
+ /**
34
+ * 대상이 offset 영역(고정 헤더/고정 열 등)에 가려진 경우, 보이도록 스크롤
35
+ *
36
+ * @remarks
37
+ * 이 함수는 대상이 스크롤 영역의 위쪽/왼쪽 경계를 벗어난 경우만 처리한다.
38
+ * 아래쪽/오른쪽으로 스크롤이 필요한 경우는 브라우저의 기본 포커스 스크롤 동작에 의존한다.
39
+ * 주로 고정 헤더나 고정 열이 있는 테이블에서 포커스 이벤트와 함께 사용된다.
40
+ *
41
+ * @param target - 대상의 컨테이너 내 위치 (offsetTop, offsetLeft)
42
+ * @param offset - 가려지면 안 되는 영역 크기 (예: 고정 헤더 높이, 고정 열 너비)
43
+ */
44
+ scrollIntoViewIfNeeded(target: {
45
+ top: number;
46
+ left: number;
47
+ }, offset?: {
48
+ top: number;
49
+ left: number;
50
+ }): void;
51
+ }
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=html-element-ext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-element-ext.d.ts","sourceRoot":"","sources":["../../../../../core-browser/src/extensions/html-element-ext.ts"],"names":[],"mappings":"AAEA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB;;WAEG;QACH,OAAO,IAAI,IAAI,CAAC;QAEhB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAE/E;;;;;;;;;;WAUG;QACH,sBAAsB,CAAC,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,MAAM,CAAC,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KAC7G;CACF"}
@@ -0,0 +1,7 @@
1
+ import "./extensions/element-ext";
2
+ import "./extensions/html-element-ext";
3
+ export * from "./extensions/element-ext";
4
+ export * from "./extensions/html-element-ext";
5
+ export * from "./utils/blob";
6
+ export * from "./utils/download";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core-browser/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,0BAA0B,CAAC;AAClC,OAAO,+BAA+B,CAAC;AAGvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare namespace BlobUtils {
2
+ /**
3
+ * Blob을 파일로 다운로드
4
+ *
5
+ * @param blob - 다운로드할 Blob 객체
6
+ * @param fileName - 저장될 파일 이름
7
+ */
8
+ function download(blob: Blob, fileName: string): void;
9
+ }
10
+ //# sourceMappingURL=blob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blob.d.ts","sourceRoot":"","sources":["../../../../../core-browser/src/utils/blob.ts"],"names":[],"mappings":"AAAA,yBAAiB,SAAS,CAAC;IACzB;;;;;OAKG;IACH,SAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU3D;CACF"}
@@ -0,0 +1,11 @@
1
+ export interface DownloadProgress {
2
+ receivedLength: number;
3
+ contentLength: number;
4
+ }
5
+ /**
6
+ * URL에서 바이너리 데이터 다운로드 (진행률 콜백 지원)
7
+ */
8
+ export declare function downloadBytes(url: string, options?: {
9
+ onProgress?: (progress: DownloadProgress) => void;
10
+ }): Promise<Uint8Array>;
11
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../../../../core-browser/src/utils/download.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAA;CAAE,GAC9D,OAAO,CAAC,UAAU,CAAC,CAsDrB"}