@simplysm/solid 13.0.28 → 13.0.29

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 (278) hide show
  1. package/README.md +6 -5
  2. package/dist/components/data/Pagination.d.ts.map +1 -1
  3. package/dist/components/data/Pagination.js.map +1 -1
  4. package/dist/components/data/calendar/Calendar.d.ts.map +1 -1
  5. package/dist/components/data/calendar/Calendar.js.map +1 -1
  6. package/dist/components/data/kanban/Kanban.d.ts.map +1 -1
  7. package/dist/components/data/kanban/Kanban.js +2 -2
  8. package/dist/components/data/kanban/Kanban.js.map +2 -2
  9. package/dist/components/data/list/List.d.ts.map +1 -1
  10. package/dist/components/data/list/List.js.map +1 -1
  11. package/dist/components/data/list/ListItem.d.ts.map +1 -1
  12. package/dist/components/data/list/ListItem.js.map +1 -1
  13. package/dist/components/data/permission-table/PermissionTable.d.ts.map +1 -1
  14. package/dist/components/data/permission-table/PermissionTable.js.map +1 -1
  15. package/dist/components/data/sheet/DataSheet.d.ts.map +1 -1
  16. package/dist/components/data/sheet/DataSheet.js.map +1 -1
  17. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  18. package/dist/components/data/sheet/DataSheet.styles.js +23 -5
  19. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  20. package/dist/components/data/sheet/DataSheetColumn.d.ts.map +1 -1
  21. package/dist/components/data/sheet/DataSheetColumn.js.map +1 -1
  22. package/dist/components/data/sheet/DataSheetConfigDialog.d.ts.map +1 -1
  23. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +1 -1
  24. package/dist/components/data/sheet/sheetUtils.d.ts.map +1 -1
  25. package/dist/components/data/sheet/sheetUtils.js.map +1 -1
  26. package/dist/components/disclosure/Collapse.d.ts.map +1 -1
  27. package/dist/components/disclosure/Collapse.js +0 -3
  28. package/dist/components/disclosure/Collapse.js.map +1 -1
  29. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  30. package/dist/components/disclosure/Dialog.js.map +1 -1
  31. package/dist/components/disclosure/DialogContext.d.ts.map +1 -1
  32. package/dist/components/disclosure/DialogContext.js.map +1 -1
  33. package/dist/components/disclosure/DialogProvider.d.ts.map +1 -1
  34. package/dist/components/disclosure/DialogProvider.js.map +1 -1
  35. package/dist/components/disclosure/Dropdown.d.ts.map +1 -1
  36. package/dist/components/disclosure/Dropdown.js.map +1 -1
  37. package/dist/components/disclosure/Tabs.d.ts.map +1 -1
  38. package/dist/components/disclosure/Tabs.js.map +1 -1
  39. package/dist/components/display/Alert.d.ts.map +1 -1
  40. package/dist/components/display/Alert.js.map +1 -1
  41. package/dist/components/display/Card.d.ts +0 -1
  42. package/dist/components/display/Card.d.ts.map +1 -1
  43. package/dist/components/display/Card.js +1 -2
  44. package/dist/components/display/Card.js.map +1 -1
  45. package/dist/components/display/Echarts.d.ts +1 -1
  46. package/dist/components/display/Echarts.d.ts.map +1 -1
  47. package/dist/components/display/Echarts.js +2 -2
  48. package/dist/components/display/Echarts.js.map +2 -2
  49. package/dist/components/display/Link.d.ts +5 -0
  50. package/dist/components/display/Link.d.ts.map +1 -0
  51. package/dist/components/display/Link.js +26 -0
  52. package/dist/components/display/Link.js.map +6 -0
  53. package/dist/components/feedback/busy/BusyContainer.d.ts +12 -0
  54. package/dist/components/feedback/busy/BusyContainer.d.ts.map +1 -0
  55. package/dist/components/feedback/{loading/LoadingContainer.js → busy/BusyContainer.js} +7 -7
  56. package/dist/components/feedback/busy/BusyContainer.js.map +6 -0
  57. package/dist/components/feedback/busy/BusyContext.d.ts +11 -0
  58. package/dist/components/feedback/busy/BusyContext.d.ts.map +1 -0
  59. package/dist/components/feedback/busy/BusyContext.js +14 -0
  60. package/dist/components/feedback/busy/BusyContext.js.map +6 -0
  61. package/dist/components/feedback/busy/BusyProvider.d.ts +7 -0
  62. package/dist/components/feedback/busy/BusyProvider.d.ts.map +1 -0
  63. package/dist/components/feedback/{loading/LoadingProvider.js → busy/BusyProvider.js} +7 -7
  64. package/dist/components/feedback/busy/BusyProvider.js.map +6 -0
  65. package/dist/components/feedback/notification/NotificationBanner.d.ts.map +1 -1
  66. package/dist/components/feedback/notification/NotificationBanner.js.map +1 -1
  67. package/dist/components/feedback/notification/NotificationBell.d.ts.map +1 -1
  68. package/dist/components/feedback/notification/NotificationBell.js.map +1 -1
  69. package/dist/components/feedback/notification/NotificationContext.d.ts.map +1 -1
  70. package/dist/components/feedback/notification/NotificationContext.js.map +1 -1
  71. package/dist/components/feedback/notification/NotificationProvider.d.ts.map +1 -1
  72. package/dist/components/feedback/notification/NotificationProvider.js.map +1 -1
  73. package/dist/components/form-control/Button.d.ts.map +1 -1
  74. package/dist/components/form-control/Button.js +2 -2
  75. package/dist/components/form-control/Button.js.map +1 -1
  76. package/dist/components/form-control/DropdownTrigger.styles.d.ts.map +1 -1
  77. package/dist/components/form-control/DropdownTrigger.styles.js +6 -1
  78. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  79. package/dist/components/form-control/Invalid.d.ts.map +1 -1
  80. package/dist/components/form-control/Invalid.js +1 -1
  81. package/dist/components/form-control/Invalid.js.map +1 -1
  82. package/dist/components/form-control/ThemeToggle.d.ts.map +1 -1
  83. package/dist/components/form-control/ThemeToggle.js.map +1 -1
  84. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  85. package/dist/components/form-control/checkbox/Checkbox.styles.js +5 -1
  86. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  87. package/dist/components/form-control/color-picker/ColorPicker.d.ts.map +1 -1
  88. package/dist/components/form-control/color-picker/ColorPicker.js.map +1 -1
  89. package/dist/components/form-control/combobox/Combobox.d.ts.map +1 -1
  90. package/dist/components/form-control/combobox/Combobox.js +5 -5
  91. package/dist/components/form-control/combobox/Combobox.js.map +2 -2
  92. package/dist/components/form-control/editor/EditorToolbar.d.ts.map +1 -1
  93. package/dist/components/form-control/editor/EditorToolbar.js.map +1 -1
  94. package/dist/components/form-control/editor/RichTextEditor.d.ts.map +1 -1
  95. package/dist/components/form-control/editor/RichTextEditor.js.map +1 -1
  96. package/dist/components/form-control/field/DatePicker.d.ts.map +1 -1
  97. package/dist/components/form-control/field/DatePicker.js.map +1 -1
  98. package/dist/components/form-control/field/DateTimePicker.d.ts.map +1 -1
  99. package/dist/components/form-control/field/DateTimePicker.js.map +1 -1
  100. package/dist/components/form-control/field/Field.styles.d.ts.map +1 -1
  101. package/dist/components/form-control/field/Field.styles.js +17 -3
  102. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  103. package/dist/components/form-control/field/NumberInput.d.ts +3 -0
  104. package/dist/components/form-control/field/NumberInput.d.ts.map +1 -1
  105. package/dist/components/form-control/field/NumberInput.js +23 -5
  106. package/dist/components/form-control/field/NumberInput.js.map +2 -2
  107. package/dist/components/form-control/field/TextInput.d.ts +4 -1
  108. package/dist/components/form-control/field/TextInput.d.ts.map +1 -1
  109. package/dist/components/form-control/field/TextInput.js +23 -6
  110. package/dist/components/form-control/field/TextInput.js.map +2 -2
  111. package/dist/components/form-control/field/Textarea.d.ts.map +1 -1
  112. package/dist/components/form-control/field/Textarea.js.map +1 -1
  113. package/dist/components/form-control/field/TimePicker.d.ts.map +1 -1
  114. package/dist/components/form-control/field/TimePicker.js.map +1 -1
  115. package/dist/components/form-control/select/Select.d.ts.map +1 -1
  116. package/dist/components/form-control/select/Select.js.map +1 -1
  117. package/dist/components/form-control/select/SelectItem.d.ts.map +1 -1
  118. package/dist/components/form-control/select/SelectItem.js.map +1 -1
  119. package/dist/components/form-control/state-preset/StatePreset.d.ts.map +1 -1
  120. package/dist/components/form-control/state-preset/StatePreset.js.map +1 -1
  121. package/dist/components/layout/FormGroup.d.ts.map +1 -1
  122. package/dist/components/layout/FormGroup.js.map +1 -1
  123. package/dist/components/layout/sidebar/Sidebar.d.ts.map +1 -1
  124. package/dist/components/layout/sidebar/Sidebar.js +1 -1
  125. package/dist/components/layout/sidebar/Sidebar.js.map +1 -1
  126. package/dist/components/layout/sidebar/SidebarContainer.d.ts.map +1 -1
  127. package/dist/components/layout/sidebar/SidebarContainer.js.map +1 -1
  128. package/dist/components/layout/sidebar/SidebarMenu.js.map +1 -1
  129. package/dist/components/layout/sidebar/SidebarUser.d.ts.map +1 -1
  130. package/dist/components/layout/sidebar/SidebarUser.js +2 -2
  131. package/dist/components/layout/sidebar/SidebarUser.js.map +1 -1
  132. package/dist/components/layout/topbar/Topbar.js +1 -1
  133. package/dist/components/layout/topbar/TopbarMenu.d.ts.map +1 -1
  134. package/dist/components/layout/topbar/TopbarMenu.js.map +1 -1
  135. package/dist/components/layout/topbar/TopbarUser.d.ts.map +1 -1
  136. package/dist/components/layout/topbar/TopbarUser.js.map +1 -1
  137. package/dist/helpers/createAppStructure.d.ts.map +1 -1
  138. package/dist/helpers/createAppStructure.js +17 -12
  139. package/dist/helpers/createAppStructure.js.map +1 -1
  140. package/dist/helpers/mergeStyles.d.ts.map +1 -1
  141. package/dist/helpers/mergeStyles.js +4 -1
  142. package/dist/helpers/mergeStyles.js.map +1 -1
  143. package/dist/helpers/splitSlots.d.ts.map +1 -1
  144. package/dist/helpers/splitSlots.js.map +1 -1
  145. package/dist/hooks/createControllableSignal.d.ts.map +1 -1
  146. package/dist/hooks/createControllableSignal.js.map +1 -1
  147. package/dist/hooks/useClipboardValueCopy.js +3 -1
  148. package/dist/hooks/useClipboardValueCopy.js.map +1 -1
  149. package/dist/hooks/useLocalStorage.d.ts.map +1 -1
  150. package/dist/hooks/useLocalStorage.js.map +1 -1
  151. package/dist/hooks/usePrint.d.ts.map +1 -1
  152. package/dist/hooks/usePrint.js +5 -3
  153. package/dist/hooks/usePrint.js.map +1 -1
  154. package/dist/hooks/useRouterLink.d.ts.map +1 -1
  155. package/dist/hooks/useRouterLink.js.map +1 -1
  156. package/dist/hooks/useSyncConfig.d.ts +3 -3
  157. package/dist/hooks/useSyncConfig.js +4 -4
  158. package/dist/hooks/useSyncConfig.js.map +1 -1
  159. package/dist/index.d.ts +4 -3
  160. package/dist/index.d.ts.map +1 -1
  161. package/dist/index.js +4 -3
  162. package/dist/index.js.map +1 -1
  163. package/dist/providers/ConfigContext.d.ts +2 -2
  164. package/dist/providers/ConfigContext.d.ts.map +1 -1
  165. package/dist/providers/InitializeProvider.js +3 -3
  166. package/dist/providers/InitializeProvider.js.map +2 -2
  167. package/dist/providers/ServiceClientProvider.d.ts.map +1 -1
  168. package/dist/providers/ServiceClientProvider.js.map +1 -1
  169. package/dist/providers/ThemeContext.d.ts.map +1 -1
  170. package/dist/providers/ThemeContext.js.map +1 -1
  171. package/dist/providers/shared-data/SharedDataChangeEvent.d.ts.map +1 -1
  172. package/dist/providers/shared-data/SharedDataChangeEvent.js +1 -3
  173. package/dist/providers/shared-data/SharedDataChangeEvent.js.map +1 -1
  174. package/dist/providers/shared-data/SharedDataContext.d.ts +1 -1
  175. package/dist/providers/shared-data/SharedDataContext.d.ts.map +1 -1
  176. package/dist/providers/shared-data/SharedDataProvider.d.ts.map +1 -1
  177. package/dist/providers/shared-data/SharedDataProvider.js +6 -6
  178. package/dist/providers/shared-data/SharedDataProvider.js.map +2 -2
  179. package/dist/styles/patterns.styles.js +1 -1
  180. package/dist/styles/tokens.styles.d.ts +1 -1
  181. package/dist/styles/tokens.styles.js +1 -1
  182. package/docs/display.md +19 -2
  183. package/docs/feedback.md +10 -10
  184. package/docs/hooks.md +6 -6
  185. package/docs/layout.md +3 -3
  186. package/docs/providers.md +1 -1
  187. package/package.json +3 -3
  188. package/src/components/data/Pagination.tsx +6 -1
  189. package/src/components/data/calendar/Calendar.tsx +18 -4
  190. package/src/components/data/kanban/Kanban.tsx +62 -18
  191. package/src/components/data/list/List.tsx +11 -4
  192. package/src/components/data/list/ListItem.tsx +12 -2
  193. package/src/components/data/permission-table/PermissionTable.tsx +32 -5
  194. package/src/components/data/sheet/DataSheet.styles.ts +23 -5
  195. package/src/components/data/sheet/DataSheet.tsx +100 -25
  196. package/src/components/data/sheet/DataSheetColumn.tsx +5 -1
  197. package/src/components/data/sheet/DataSheetConfigDialog.tsx +27 -5
  198. package/src/components/data/sheet/sheetUtils.ts +12 -3
  199. package/src/components/disclosure/Collapse.tsx +14 -3
  200. package/src/components/disclosure/Dialog.tsx +35 -6
  201. package/src/components/disclosure/DialogContext.ts +4 -1
  202. package/src/components/disclosure/DialogProvider.tsx +15 -3
  203. package/src/components/disclosure/Dropdown.tsx +12 -2
  204. package/src/components/disclosure/Tabs.tsx +29 -5
  205. package/src/components/display/Alert.tsx +3 -4
  206. package/src/components/display/Card.tsx +1 -2
  207. package/src/components/display/Echarts.tsx +12 -5
  208. package/src/components/display/Link.tsx +22 -0
  209. package/src/components/feedback/{loading/LoadingContainer.tsx → busy/BusyContainer.tsx} +43 -14
  210. package/src/components/feedback/busy/BusyContext.ts +20 -0
  211. package/src/components/feedback/{loading/LoadingProvider.tsx → busy/BusyProvider.tsx} +10 -10
  212. package/src/components/feedback/notification/NotificationBanner.tsx +13 -2
  213. package/src/components/feedback/notification/NotificationBell.tsx +17 -3
  214. package/src/components/feedback/notification/NotificationContext.ts +4 -1
  215. package/src/components/feedback/notification/NotificationProvider.tsx +3 -1
  216. package/src/components/form-control/Button.tsx +8 -3
  217. package/src/components/form-control/DropdownTrigger.styles.ts +7 -1
  218. package/src/components/form-control/Invalid.tsx +5 -1
  219. package/src/components/form-control/ThemeToggle.tsx +6 -2
  220. package/src/components/form-control/checkbox/Checkbox.styles.ts +5 -1
  221. package/src/components/form-control/color-picker/ColorPicker.tsx +15 -2
  222. package/src/components/form-control/combobox/Combobox.tsx +16 -8
  223. package/src/components/form-control/editor/EditorToolbar.tsx +16 -5
  224. package/src/components/form-control/editor/RichTextEditor.tsx +22 -4
  225. package/src/components/form-control/field/DatePicker.tsx +5 -1
  226. package/src/components/form-control/field/DateTimePicker.tsx +8 -1
  227. package/src/components/form-control/field/Field.styles.ts +17 -3
  228. package/src/components/form-control/field/NumberInput.tsx +24 -0
  229. package/src/components/form-control/field/TextInput.tsx +28 -5
  230. package/src/components/form-control/field/Textarea.tsx +2 -1
  231. package/src/components/form-control/field/TimePicker.tsx +5 -1
  232. package/src/components/form-control/select/Select.tsx +32 -7
  233. package/src/components/form-control/select/SelectItem.tsx +3 -1
  234. package/src/components/form-control/state-preset/StatePreset.tsx +39 -14
  235. package/src/components/layout/FormGroup.tsx +11 -2
  236. package/src/components/layout/sidebar/Sidebar.tsx +3 -2
  237. package/src/components/layout/sidebar/SidebarContainer.tsx +8 -1
  238. package/src/components/layout/sidebar/SidebarMenu.tsx +7 -1
  239. package/src/components/layout/sidebar/SidebarUser.tsx +9 -4
  240. package/src/components/layout/topbar/Topbar.tsx +1 -1
  241. package/src/components/layout/topbar/TopbarMenu.tsx +27 -5
  242. package/src/components/layout/topbar/TopbarUser.tsx +5 -1
  243. package/src/helpers/createAppStructure.ts +29 -15
  244. package/src/helpers/mergeStyles.ts +6 -2
  245. package/src/helpers/splitSlots.ts +4 -1
  246. package/src/hooks/createControllableSignal.ts +2 -1
  247. package/src/hooks/useClipboardValueCopy.ts +5 -2
  248. package/src/hooks/useLocalStorage.ts +3 -1
  249. package/src/hooks/usePrint.ts +9 -4
  250. package/src/hooks/useRouterLink.ts +3 -1
  251. package/src/hooks/useSyncConfig.ts +7 -7
  252. package/src/index.ts +5 -4
  253. package/src/providers/ConfigContext.ts +2 -2
  254. package/src/providers/InitializeProvider.tsx +2 -2
  255. package/src/providers/ServiceClientProvider.tsx +14 -3
  256. package/src/providers/ThemeContext.tsx +10 -2
  257. package/src/providers/shared-data/SharedDataChangeEvent.ts +4 -3
  258. package/src/providers/shared-data/SharedDataContext.ts +1 -1
  259. package/src/providers/shared-data/SharedDataProvider.tsx +13 -8
  260. package/src/styles/patterns.styles.ts +1 -1
  261. package/src/styles/tokens.styles.ts +1 -1
  262. package/tailwind.config.ts +9 -0
  263. package/tailwind.css +1 -1
  264. package/dist/components/display/Card.css +0 -15
  265. package/dist/components/feedback/loading/LoadingContainer.d.ts +0 -12
  266. package/dist/components/feedback/loading/LoadingContainer.d.ts.map +0 -1
  267. package/dist/components/feedback/loading/LoadingContainer.js.map +0 -6
  268. package/dist/components/feedback/loading/LoadingContext.d.ts +0 -11
  269. package/dist/components/feedback/loading/LoadingContext.d.ts.map +0 -1
  270. package/dist/components/feedback/loading/LoadingContext.js +0 -14
  271. package/dist/components/feedback/loading/LoadingContext.js.map +0 -6
  272. package/dist/components/feedback/loading/LoadingProvider.d.ts +0 -7
  273. package/dist/components/feedback/loading/LoadingProvider.d.ts.map +0 -1
  274. package/dist/components/feedback/loading/LoadingProvider.js.map +0 -6
  275. package/src/components/display/Card.css +0 -15
  276. package/src/components/feedback/loading/LoadingContext.ts +0 -20
  277. /package/dist/components/feedback/{loading/LoadingContainer.css → busy/BusyContainer.css} +0 -0
  278. /package/src/components/feedback/{loading/LoadingContainer.css → busy/BusyContainer.css} +0 -0
@@ -1,4 +1,13 @@
1
- import { children, createMemo, createSignal, For, type JSX, Show, splitProps, useContext } from "solid-js";
1
+ import {
2
+ children,
3
+ createMemo,
4
+ createSignal,
5
+ For,
6
+ type JSX,
7
+ Show,
8
+ splitProps,
9
+ useContext,
10
+ } from "solid-js";
2
11
  import { createResizeObserver } from "@solid-primitives/resize-observer";
3
12
  import clsx from "clsx";
4
13
  import { twMerge } from "tailwind-merge";
@@ -157,7 +166,9 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
157
166
 
158
167
  const { DataSheetConfigDialog } = await import("./DataSheetConfigDialog");
159
168
 
160
- const allCols = resolved.toArray().filter(isDataSheetColumnDef) as unknown as DataSheetColumnDef<T>[];
169
+ const allCols = resolved
170
+ .toArray()
171
+ .filter(isDataSheetColumnDef) as unknown as DataSheetColumnDef<T>[];
161
172
 
162
173
  const columnInfos: DataSheetConfigColumnInfo[] = allCols
163
174
  .filter((col) => !col.collapse)
@@ -359,7 +370,9 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
359
370
  target.setPointerCapture(event.pointerId);
360
371
 
361
372
  const th = target.closest("th")!;
362
- const container = th.closest("[data-sheet]")!.querySelector("[data-sheet-scroll]") as HTMLElement;
373
+ const container = th
374
+ .closest("[data-sheet]")!
375
+ .querySelector("[data-sheet-scroll]") as HTMLElement;
363
376
  const startX = event.clientX;
364
377
  const startWidth = th.offsetWidth;
365
378
 
@@ -484,7 +497,9 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
484
497
  if (local.selectMode === "single") {
485
498
  setSelectedItems(isSelected ? [] : [item]);
486
499
  } else {
487
- setSelectedItems(isSelected ? selectedItems().filter((i) => i !== item) : [...selectedItems(), item]);
500
+ setSelectedItems(
501
+ isSelected ? selectedItems().filter((i) => i !== item) : [...selectedItems(), item],
502
+ );
488
503
  }
489
504
  }
490
505
 
@@ -584,7 +599,11 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
584
599
  } else if (relY > third * 2) {
585
600
  foundPosition = "after";
586
601
  } else {
587
- foundPosition = local.getChildren ? "inside" : relY < rect.height / 2 ? "before" : "after";
602
+ foundPosition = local.getChildren
603
+ ? "inside"
604
+ : relY < rect.height / 2
605
+ ? "before"
606
+ : "after";
588
607
  }
589
608
  foundTarget = flat.item;
590
609
  break;
@@ -707,7 +726,8 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
707
726
  hasExpandFeature() && !hasSelectFeature() && !hasReorderFeature() && lastFixedIndex() < 0;
708
727
 
709
728
  // 선택 기능 컬럼이 "마지막 고정"인지 (일반 고정 컬럼이 없고, 선택 컬럼이 가장 오른쪽 기능 컬럼일 때)
710
- const isSelectColLastFixed = () => hasSelectFeature() && !hasReorderFeature() && lastFixedIndex() < 0;
729
+ const isSelectColLastFixed = () =>
730
+ hasSelectFeature() && !hasReorderFeature() && lastFixedIndex() < 0;
711
731
 
712
732
  const isReorderColLastFixed = () => hasReorderFeature() && lastFixedIndex() < 0;
713
733
 
@@ -722,13 +742,19 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
722
742
  const isAllExpanded = createMemo(() => {
723
743
  if (!local.getChildren) return false;
724
744
  const allExpandable = collectAllExpandable(pagedItems(), local.getChildren);
725
- return allExpandable.length > 0 && allExpandable.every((item) => expandedItems().includes(item));
745
+ return (
746
+ allExpandable.length > 0 && allExpandable.every((item) => expandedItems().includes(item))
747
+ );
726
748
  });
727
749
 
728
750
  return (
729
751
  <div
730
752
  data-sheet={local.persistKey ?? ""}
731
- class={twMerge("flex flex-col", local.inset ? insetContainerClass : defaultContainerClass, local.class)}
753
+ class={twMerge(
754
+ "flex flex-col",
755
+ local.inset ? insetContainerClass : defaultContainerClass,
756
+ local.class,
757
+ )}
732
758
  >
733
759
  <Show when={!local.hideConfigBar && (modal != null || effectivePageCount() > 1)}>
734
760
  <div class={toolbarClass}>
@@ -743,13 +769,22 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
743
769
  </Show>
744
770
  <div class="flex-1" />
745
771
  <Show when={modal != null}>
746
- <button class={configButtonClass} onClick={openConfigModal} title="시트 설정" type="button">
772
+ <button
773
+ class={configButtonClass}
774
+ onClick={openConfigModal}
775
+ title="시트 설정"
776
+ type="button"
777
+ >
747
778
  <Icon icon={IconSettings} size="1em" />
748
779
  </button>
749
780
  </Show>
750
781
  </div>
751
782
  </Show>
752
- <div data-sheet-scroll class={twMerge(dataSheetContainerClass, "flex-1 min-h-0")} style={local.contentStyle}>
783
+ <div
784
+ data-sheet-scroll
785
+ class={twMerge(dataSheetContainerClass, "flex-1 min-h-0")}
786
+ style={local.contentStyle}
787
+ >
753
788
  <table
754
789
  class={twMerge(tableClass, local.inset ? insetTableClass : undefined)}
755
790
  onKeyDown={onTableKeyDown}
@@ -800,7 +835,10 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
800
835
  <Icon
801
836
  icon={IconChevronDown}
802
837
  size="1em"
803
- class={clsx("transition-transform", isAllExpanded() ? "rotate-0" : "-rotate-90")}
838
+ class={clsx(
839
+ "transition-transform",
840
+ isAllExpanded() ? "rotate-0" : "-rotate-90",
841
+ )}
804
842
  />
805
843
  </button>
806
844
  </div>
@@ -863,9 +901,13 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
863
901
  <Show when={cell}>
864
902
  {(c) => {
865
903
  const isSortable = () =>
866
- c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex!].sortable;
904
+ c().isLastRow &&
905
+ c().colIndex != null &&
906
+ effectiveColumns()[c().colIndex!].sortable;
867
907
  const colKey = () =>
868
- c().colIndex != null ? effectiveColumns()[c().colIndex!].key : undefined;
908
+ c().colIndex != null
909
+ ? effectiveColumns()[c().colIndex!].key
910
+ : undefined;
869
911
 
870
912
  // 그룹 헤더의 고정 여부: colspan 범위 내 모든 컬럼이 fixed인지
871
913
  const isGroupFixed = (): boolean => {
@@ -881,12 +923,15 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
881
923
 
882
924
  // 셀의 고정 컬럼 여부 (마지막 행이면 colIndex 기반, 그 외 그룹 기반)
883
925
  const isCellFixed = () =>
884
- (c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex!].fixed) ||
926
+ (c().isLastRow &&
927
+ c().colIndex != null &&
928
+ effectiveColumns()[c().colIndex!].fixed) ||
885
929
  isGroupFixed();
886
930
 
887
931
  // 셀의 마지막 고정 여부
888
932
  const isCellLastFixed = () => {
889
- if (c().isLastRow && c().colIndex != null) return isLastFixed(c().colIndex!);
933
+ if (c().isLastRow && c().colIndex != null)
934
+ return isLastFixed(c().colIndex!);
890
935
  if (isGroupFixed()) {
891
936
  const lastCol = cellColIndex() + c().colspan - 1;
892
937
  return isLastFixed(lastCol);
@@ -932,7 +977,11 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
932
977
  : c().text
933
978
  }
934
979
  ref={(el: HTMLElement) => {
935
- if (c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex!].fixed) {
980
+ if (
981
+ c().isLastRow &&
982
+ c().colIndex != null &&
983
+ effectiveColumns()[c().colIndex!].fixed
984
+ ) {
936
985
  registerColumnRef(c().colIndex!, el);
937
986
  }
938
987
  }}
@@ -958,9 +1007,15 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
958
1007
  <Icon icon={IconSortDescending} size="1em" />
959
1008
  </Show>
960
1009
  <Show when={sortDef() == null}>
961
- <Icon icon={IconArrowsSort} size="1em" class="opacity-30" />
1010
+ <Icon
1011
+ icon={IconArrowsSort}
1012
+ size="1em"
1013
+ class="opacity-30"
1014
+ />
1015
+ </Show>
1016
+ <Show when={sortIndex()}>
1017
+ {(idx) => <sub>{idx()}</sub>}
962
1018
  </Show>
963
- <Show when={sortIndex()}>{(idx) => <sub>{idx()}</sub>}</Show>
964
1019
  </div>
965
1020
  );
966
1021
  }}
@@ -968,13 +1023,17 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
968
1023
  </div>
969
1024
  <Show
970
1025
  when={
971
- c().isLastRow && c().colIndex != null && effectiveColumns()[c().colIndex!].resizable
1026
+ c().isLastRow &&
1027
+ c().colIndex != null &&
1028
+ effectiveColumns()[c().colIndex!].resizable
972
1029
  }
973
1030
  >
974
1031
  <div
975
1032
  class={resizerClass}
976
1033
  onClick={(e) => e.stopPropagation()}
977
- onPointerDown={(e) => onResizerPointerdown(e, effectiveColumns()[c().colIndex!].key)}
1034
+ onPointerDown={(e) =>
1035
+ onResizerPointerdown(e, effectiveColumns()[c().colIndex!].key)
1036
+ }
978
1037
  onDblClick={(e) => {
979
1038
  e.stopPropagation();
980
1039
  onResizerDoubleClick(effectiveColumns()[c().colIndex!].key);
@@ -1054,7 +1113,11 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
1054
1113
  )}
1055
1114
  </For>
1056
1115
  <Show when={flat.hasChildren}>
1057
- <button type="button" class={expandToggleClass} onClick={() => toggleExpand(flat.item)}>
1116
+ <button
1117
+ type="button"
1118
+ class={expandToggleClass}
1119
+ onClick={() => toggleExpand(flat.item)}
1120
+ >
1058
1121
  <Icon
1059
1122
  icon={IconChevronDown}
1060
1123
  size="1em"
@@ -1092,11 +1155,16 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
1092
1155
  fallback={
1093
1156
  /* single 모드 */
1094
1157
  <Show when={selectable() === true}>
1095
- <div class={featureCellBodyClickableClass} onClick={() => toggleSelect(flat.item)}>
1158
+ <div
1159
+ class={featureCellBodyClickableClass}
1160
+ onClick={() => toggleSelect(flat.item)}
1161
+ >
1096
1162
  <div
1097
1163
  class={twMerge(
1098
1164
  selectSingleClass,
1099
- isSelected() ? selectSingleSelectedClass : selectSingleUnselectedClass,
1165
+ isSelected()
1166
+ ? selectSingleSelectedClass
1167
+ : selectSingleUnselectedClass,
1100
1168
  )}
1101
1169
  >
1102
1170
  <Icon icon={IconChevronRight} size="1em" />
@@ -1116,7 +1184,11 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
1116
1184
  }
1117
1185
  setLastClickedRow(rowIndex());
1118
1186
  }}
1119
- title={typeof selectable() === "string" ? (selectable() as string) : undefined}
1187
+ title={
1188
+ typeof selectable() === "string"
1189
+ ? (selectable() as string)
1190
+ : undefined
1191
+ }
1120
1192
  >
1121
1193
  <Checkbox
1122
1194
  value={isSelected()}
@@ -1148,7 +1220,10 @@ export const DataSheet: DataSheetComponent = <T,>(props: DataSheetProps<T>) => {
1148
1220
  left: reorderColLeft(),
1149
1221
  }}
1150
1222
  >
1151
- <div class={reorderCellWrapperClass} onPointerDown={(e) => onReorderPointerDown(e, flat.item)}>
1223
+ <div
1224
+ class={reorderCellWrapperClass}
1225
+ onPointerDown={(e) => onReorderPointerDown(e, flat.item)}
1226
+ >
1152
1227
  <div class={reorderHandleClass}>
1153
1228
  <Icon icon={IconGripVertical} size="1em" />
1154
1229
  </div>
@@ -3,7 +3,11 @@ import type { DataSheetColumnDef, DataSheetColumnProps } from "./types";
3
3
  import { normalizeHeader } from "./sheetUtils";
4
4
 
5
5
  export function isDataSheetColumnDef(value: unknown): value is DataSheetColumnDef<unknown> {
6
- return value != null && typeof value === "object" && (value as Record<string, unknown>)["__type"] === "sheet-column";
6
+ return (
7
+ value != null &&
8
+ typeof value === "object" &&
9
+ (value as Record<string, unknown>)["__type"] === "sheet-column"
10
+ );
7
11
  }
8
12
 
9
13
  /* eslint-disable solid/reactivity -- plain object 반환 패턴으로 reactive context 불필요 */
@@ -2,7 +2,12 @@ import { type Component } from "solid-js";
2
2
  import { createStore, reconcile } from "solid-js/store";
3
3
  import clsx from "clsx";
4
4
  import { useDialogInstance } from "../../disclosure/DialogInstanceContext";
5
- import type { DataSheetConfig, DataSheetConfigColumn, DataSheetConfigColumnInfo, DataSheetReorderEvent } from "./types";
5
+ import type {
6
+ DataSheetConfig,
7
+ DataSheetConfigColumn,
8
+ DataSheetConfigColumnInfo,
9
+ DataSheetReorderEvent,
10
+ } from "./types";
6
11
  import { DataSheet } from "./DataSheet";
7
12
  import { Checkbox } from "../../form-control/checkbox/Checkbox";
8
13
  import { TextInput } from "../../form-control/field/TextInput";
@@ -66,7 +71,11 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
66
71
  setEditItems(reconcile(items));
67
72
  }
68
73
 
69
- function updateItem(key: string, field: keyof EditColumnItem, value: EditColumnItem[keyof EditColumnItem]): void {
74
+ function updateItem(
75
+ key: string,
76
+ field: keyof EditColumnItem,
77
+ value: EditColumnItem[keyof EditColumnItem],
78
+ ): void {
70
79
  const index = editItems.findIndex((item) => item.key === key);
71
80
  if (index >= 0) {
72
81
  setEditItems(index, { [field]: value } as Partial<EditColumnItem>);
@@ -104,17 +113,30 @@ export const DataSheetConfigDialog: Component<DataSheetConfigDialogProps> = (pro
104
113
  <div class={containerClass}>
105
114
  <div class={sheetWrapperClass}>
106
115
  <DataSheet items={editItems} inset hideConfigBar onItemsReorder={handleReorder}>
107
- <DataSheet.Column<EditColumnItem> key="header" header="컬럼" class="px-2 py-1" sortable={false}>
116
+ <DataSheet.Column<EditColumnItem>
117
+ key="header"
118
+ header="컬럼"
119
+ class="px-2 py-1"
120
+ sortable={false}
121
+ >
108
122
  {(ctx) => ctx.item.headerText}
109
123
  </DataSheet.Column>
110
124
  <DataSheet.Column<EditColumnItem> key="fixed" header="고정" sortable={false}>
111
125
  {(ctx) => (
112
- <Checkbox inset value={ctx.item.fixed} onValueChange={(v) => updateItem(ctx.item.key, "fixed", v)} />
126
+ <Checkbox
127
+ inset
128
+ value={ctx.item.fixed}
129
+ onValueChange={(v) => updateItem(ctx.item.key, "fixed", v)}
130
+ />
113
131
  )}
114
132
  </DataSheet.Column>
115
133
  <DataSheet.Column<EditColumnItem> key="hidden" header="숨김" sortable={false}>
116
134
  {(ctx) => (
117
- <Checkbox inset value={ctx.item.hidden} onValueChange={(v) => updateItem(ctx.item.key, "hidden", v)} />
135
+ <Checkbox
136
+ inset
137
+ value={ctx.item.hidden}
138
+ onValueChange={(v) => updateItem(ctx.item.key, "hidden", v)}
139
+ />
118
140
  )}
119
141
  </DataSheet.Column>
120
142
  <DataSheet.Column<EditColumnItem> key="width" header="너비" sortable={false}>
@@ -7,7 +7,9 @@ export function normalizeHeader(header?: string | string[]): string[] {
7
7
  return header;
8
8
  }
9
9
 
10
- export function buildHeaderTable<TItem>(columns: DataSheetColumnDef<TItem>[]): (HeaderDef | null)[][] {
10
+ export function buildHeaderTable<TItem>(
11
+ columns: DataSheetColumnDef<TItem>[],
12
+ ): (HeaderDef | null)[][] {
11
13
  if (columns.length === 0) return [];
12
14
 
13
15
  const maxDepth = Math.max(...columns.map((c) => c.header.length));
@@ -84,7 +86,13 @@ export function buildHeaderTable<TItem>(columns: DataSheetColumnDef<TItem>[]): (
84
86
  }
85
87
 
86
88
  // 같은 병합 그룹에 속하는지 확인 (행 0~endRow까지 같은 텍스트 시퀀스)
87
- function isSameGroup(padded: string[][], colA: number, colB: number, startRow: number, endRow: number): boolean {
89
+ function isSameGroup(
90
+ padded: string[][],
91
+ colA: number,
92
+ colB: number,
93
+ startRow: number,
94
+ endRow: number,
95
+ ): boolean {
88
96
  for (let r = startRow; r < endRow; r++) {
89
97
  if (padded[colA][r] !== padded[colB][r]) return false;
90
98
  }
@@ -152,7 +160,8 @@ export function applySorting<TItem>(items: TItem[], sorts: SortingDef[]): TItem[
152
160
 
153
161
  let result = [...items];
154
162
  for (const sort of [...sorts].reverse()) {
155
- const selector = (item: TItem) => objGetChainValue(item, sort.key) as string | number | undefined;
163
+ const selector = (item: TItem) =>
164
+ objGetChainValue(item, sort.key) as string | number | undefined;
156
165
  result = sort.desc ? result.orderByDesc(selector) : result.orderBy(selector);
157
166
  }
158
167
  return result;
@@ -1,4 +1,11 @@
1
- import { type JSX, type ParentComponent, splitProps, createSignal, onMount, onCleanup } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ splitProps,
5
+ createSignal,
6
+ onMount,
7
+ onCleanup,
8
+ } from "solid-js";
2
9
  import { createElementSize } from "@solid-primitives/resize-observer";
3
10
  import clsx from "clsx";
4
11
  import { twMerge } from "tailwind-merge";
@@ -23,7 +30,12 @@ export interface CollapseProps extends JSX.HTMLAttributes<HTMLDivElement> {
23
30
  open?: boolean;
24
31
  }
25
32
 
26
- const transitionClass = clsx("transition-[margin-top]", "duration-200", "ease-out", "motion-reduce:transition-none");
33
+ const transitionClass = clsx(
34
+ "transition-[margin-top]",
35
+ "duration-200",
36
+ "ease-out",
37
+ "motion-reduce:transition-none",
38
+ );
27
39
 
28
40
  export const Collapse: ParentComponent<CollapseProps> = (props) => {
29
41
  const [local, rest] = splitProps(props, ["children", "class", "style", "open"]);
@@ -54,7 +66,6 @@ export const Collapse: ParentComponent<CollapseProps> = (props) => {
54
66
  data-collapse
55
67
  class={twMerge("block", local.class)}
56
68
  style={mergeStyles(local.style, { overflow: "hidden" })}
57
- aria-hidden={!isOpen()}
58
69
  >
59
70
  <div
60
71
  ref={setContentRef}
@@ -1,4 +1,13 @@
1
- import { type JSX, type ParentComponent, createEffect, onCleanup, Show, splitProps, For, useContext } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ createEffect,
5
+ onCleanup,
6
+ Show,
7
+ splitProps,
8
+ For,
9
+ useContext,
10
+ } from "solid-js";
2
11
  import { Portal } from "solid-js/web";
3
12
  import clsx from "clsx";
4
13
  import { twMerge } from "tailwind-merge";
@@ -58,7 +67,15 @@ export interface DialogProps {
58
67
  children: JSX.Element;
59
68
  }
60
69
 
61
- type ResizeDirection = "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
70
+ type ResizeDirection =
71
+ | "left"
72
+ | "right"
73
+ | "top"
74
+ | "bottom"
75
+ | "top-left"
76
+ | "top-right"
77
+ | "bottom-left"
78
+ | "bottom-right";
62
79
 
63
80
  const RESIZE_DIRECTIONS: ResizeDirection[] = [
64
81
  "left",
@@ -171,7 +188,8 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
171
188
  let wrapperRef: HTMLDivElement | undefined;
172
189
 
173
190
  const closeOnEscape = () => local.closeOnEscape ?? dialogDefaults?.().closeOnEscape ?? true;
174
- const closeOnBackdrop = () => local.closeOnBackdrop ?? dialogDefaults?.().closeOnBackdrop ?? false;
191
+ const closeOnBackdrop = () =>
192
+ local.closeOnBackdrop ?? dialogDefaults?.().closeOnBackdrop ?? false;
175
193
 
176
194
  // Escape 키 감지
177
195
  createEffect(() => {
@@ -423,7 +441,9 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
423
441
  "mx-auto",
424
442
  "w-fit min-w-[200px]",
425
443
  "bg-white dark:bg-base-800",
426
- local.float ? clsx("shadow-md dark:shadow-black/30", "border", borderSubtle) : "shadow-2xl dark:shadow-black/40",
444
+ local.float
445
+ ? clsx("shadow-md dark:shadow-black/30", "border", borderSubtle)
446
+ : "shadow-2xl dark:shadow-black/40",
427
447
  local.fill ? "rounded-none border-none" : "rounded-lg",
428
448
  "overflow-hidden",
429
449
  "flex flex-col",
@@ -470,7 +490,11 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
470
490
  <div
471
491
  data-modal-header
472
492
  class={clsx(headerClass(), "touch-none")}
473
- style={typeof local.headerStyle === "string" ? mergeStyles(local.headerStyle) : local.headerStyle}
493
+ style={
494
+ typeof local.headerStyle === "string"
495
+ ? mergeStyles(local.headerStyle)
496
+ : local.headerStyle
497
+ }
474
498
  onPointerDown={handleHeaderPointerDown}
475
499
  >
476
500
  <h5 class={clsx("flex-1", "px-4 py-2", "text-sm font-semibold")}>{local.title}</h5>
@@ -506,7 +530,12 @@ export const Dialog: ParentComponent<DialogProps> = (props) => {
506
530
  {(direction) => (
507
531
  <div
508
532
  data-resize-bar={direction}
509
- class={clsx("absolute", "touch-none", resizePositionMap[direction], resizeCursorMap[direction])}
533
+ class={clsx(
534
+ "absolute",
535
+ "touch-none",
536
+ resizePositionMap[direction],
537
+ resizeCursorMap[direction],
538
+ )}
510
539
  onPointerDown={(e) => handleResizeBarPointerDown(e, direction)}
511
540
  />
512
541
  )}
@@ -27,7 +27,10 @@ export interface DialogShowOptions {
27
27
  }
28
28
 
29
29
  export interface DialogContextValue {
30
- show<T = undefined>(factory: () => JSX.Element, options: DialogShowOptions): Promise<T | undefined>;
30
+ show<T = undefined>(
31
+ factory: () => JSX.Element,
32
+ options: DialogShowOptions,
33
+ ): Promise<T | undefined>;
31
34
  }
32
35
 
33
36
  export const DialogContext = createContext<DialogContextValue>();
@@ -1,4 +1,11 @@
1
- import { type Accessor, type ParentComponent, createSignal, For, splitProps, type JSX } from "solid-js";
1
+ import {
2
+ type Accessor,
3
+ type ParentComponent,
4
+ createSignal,
5
+ For,
6
+ splitProps,
7
+ type JSX,
8
+ } from "solid-js";
2
9
  import {
3
10
  DialogContext,
4
11
  DialogDefaultsContext,
@@ -46,7 +53,10 @@ export const DialogProvider: ParentComponent<DialogProviderProps> = (props) => {
46
53
 
47
54
  const [entries, setEntries] = createSignal<DialogEntry[]>([]);
48
55
 
49
- const show = <T,>(factory: () => JSX.Element, options: DialogShowOptions): Promise<T | undefined> => {
56
+ const show = <T,>(
57
+ factory: () => JSX.Element,
58
+ options: DialogShowOptions,
59
+ ): Promise<T | undefined> => {
50
60
  return new Promise<T | undefined>((resolve) => {
51
61
  const id = String(nextId++);
52
62
  const [open, setOpen] = createSignal(true);
@@ -122,7 +132,9 @@ export const DialogProvider: ParentComponent<DialogProviderProps> = (props) => {
122
132
  headerStyle={entry.options.headerStyle}
123
133
  canDeactivate={entry.options.canDeactivate}
124
134
  >
125
- <DialogInstanceContext.Provider value={instance}>{entry.factory()}</DialogInstanceContext.Provider>
135
+ <DialogInstanceContext.Provider value={instance}>
136
+ {entry.factory()}
137
+ </DialogInstanceContext.Provider>
126
138
  </Dialog>
127
139
  );
128
140
  }}
@@ -1,4 +1,12 @@
1
- import { type JSX, type ParentComponent, createSignal, createEffect, onCleanup, Show, splitProps } from "solid-js";
1
+ import {
2
+ type JSX,
3
+ type ParentComponent,
4
+ createSignal,
5
+ createEffect,
6
+ onCleanup,
7
+ Show,
8
+ splitProps,
9
+ } from "solid-js";
2
10
  import { createResizeObserver } from "@solid-primitives/resize-observer";
3
11
  import { createMountTransition } from "../../hooks/createMountTransition";
4
12
  import { Portal } from "solid-js/web";
@@ -261,7 +269,9 @@ export const Dropdown: ParentComponent<DropdownProps> = (props) => {
261
269
 
262
270
  const dir = direction();
263
271
  const focusables = [
264
- ...popup.querySelectorAll<HTMLElement>('[tabindex]:not([tabindex="-1"]), button, [data-list-item]'),
272
+ ...popup.querySelectorAll<HTMLElement>(
273
+ '[tabindex]:not([tabindex="-1"]), button, [data-list-item]',
274
+ ),
265
275
  ];
266
276
 
267
277
  if (dir === "down") {
@@ -40,11 +40,18 @@ function TabsTabInner(props: TabsTabProps) {
40
40
  }
41
41
  };
42
42
 
43
- const baseClass = clsx("relative cursor-pointer select-none font-medium", "transition-colors", "-mb-px");
43
+ const baseClass = clsx(
44
+ "relative cursor-pointer select-none font-medium",
45
+ "transition-colors",
46
+ "-mb-px",
47
+ );
44
48
 
45
49
  const stateClass = () =>
46
50
  isSelected()
47
- ? clsx("border-b-2 border-primary-500 text-primary-600", "dark:border-primary-400 dark:text-primary-400")
51
+ ? clsx(
52
+ "border-b-2 border-primary-500 text-primary-600",
53
+ "dark:border-primary-400 dark:text-primary-400",
54
+ )
48
55
  : clsx(
49
56
  "border-b-2 border-transparent",
50
57
  "text-base-500 hover:border-base-300 hover:text-base-700",
@@ -60,7 +67,13 @@ function TabsTabInner(props: TabsTabProps) {
60
67
  aria-selected={isSelected()}
61
68
  aria-disabled={props.disabled ?? false}
62
69
  tabIndex={props.disabled ? -1 : 0}
63
- class={twMerge(baseClass, sizeClasses(), stateClass(), props.disabled && disabledClass, props.class)}
70
+ class={twMerge(
71
+ baseClass,
72
+ sizeClasses(),
73
+ stateClass(),
74
+ props.disabled && disabledClass,
75
+ props.class,
76
+ )}
64
77
  onClick={() => {
65
78
  if (!props.disabled) {
66
79
  ctx.select(props.value);
@@ -97,7 +110,14 @@ interface TabsComponent {
97
110
  }
98
111
 
99
112
  const TabsInner: ParentComponent<TabsProps> = (props) => {
100
- const [local, rest] = splitProps(props, ["value", "onValueChange", "size", "class", "style", "children"]);
113
+ const [local, rest] = splitProps(props, [
114
+ "value",
115
+ "onValueChange",
116
+ "size",
117
+ "class",
118
+ "style",
119
+ "children",
120
+ ]);
101
121
 
102
122
  const [value, setValue] = createControllableSignal<string | undefined>({
103
123
  value: () => local.value,
@@ -112,7 +132,11 @@ const TabsInner: ParentComponent<TabsProps> = (props) => {
112
132
  size: () => local.size,
113
133
  };
114
134
 
115
- const baseClass = clsx("inline-flex items-center gap-1", "border-b border-base-200", "dark:border-base-700");
135
+ const baseClass = clsx(
136
+ "inline-flex items-center gap-1",
137
+ "border-b border-base-200",
138
+ "dark:border-base-700",
139
+ );
116
140
 
117
141
  return (
118
142
  <TabsContext.Provider value={contextValue}>
@@ -11,10 +11,9 @@ export interface AlertProps extends JSX.HTMLAttributes<HTMLDivElement> {
11
11
 
12
12
  const baseClass = clsx("block", "p-3", "rounded");
13
13
 
14
- const themeClasses = Object.fromEntries(Object.entries(themeTokens).map(([theme, t]) => [theme, t.light])) as Record<
15
- AlertTheme,
16
- string
17
- >;
14
+ const themeClasses = Object.fromEntries(
15
+ Object.entries(themeTokens).map(([theme, t]) => [theme, t.light]),
16
+ ) as Record<AlertTheme, string>;
18
17
 
19
18
  export const Alert: ParentComponent<AlertProps> = (props) => {
20
19
  const [local, rest] = splitProps(props, ["children", "class", "theme"]);
@@ -1,7 +1,6 @@
1
1
  import { type JSX, type ParentComponent, splitProps } from "solid-js";
2
2
  import clsx from "clsx";
3
3
  import { twMerge } from "tailwind-merge";
4
- import "./Card.css";
5
4
 
6
5
  export interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {}
7
6
 
@@ -12,7 +11,7 @@ const baseClass = clsx(
12
11
  "shadow focus-within:shadow-md hover:shadow-md",
13
12
  "dark:shadow-black/20 dark:focus-within:shadow-black/30 dark:hover:shadow-black/30",
14
13
  "transition-shadow duration-300",
15
- "animate-card-in",
14
+ "animate-fade-in",
16
15
  );
17
16
 
18
17
  export const Card: ParentComponent<CardProps> = (props) => {