@simplysm/solid 13.0.78 → 13.0.81

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 (206) hide show
  1. package/README.md +23 -217
  2. package/dist/components/data/Pagination.js +2 -2
  3. package/dist/components/data/Pagination.js.map +2 -2
  4. package/dist/components/data/Table.js +2 -2
  5. package/dist/components/data/Table.js.map +2 -2
  6. package/dist/components/data/calendar/Calendar.js +2 -2
  7. package/dist/components/data/calendar/Calendar.js.map +2 -2
  8. package/dist/components/data/kanban/Kanban.js +3 -3
  9. package/dist/components/data/kanban/Kanban.js.map +2 -2
  10. package/dist/components/data/list/ListItem.js +1 -1
  11. package/dist/components/data/list/ListItem.js.map +1 -1
  12. package/dist/components/data/list/ListItem.styles.js +1 -1
  13. package/dist/components/data/list/ListItem.styles.js.map +1 -1
  14. package/dist/components/data/sheet/DataSheet.js +16 -16
  15. package/dist/components/data/sheet/DataSheet.js.map +2 -2
  16. package/dist/components/data/sheet/DataSheet.styles.d.ts.map +1 -1
  17. package/dist/components/data/sheet/DataSheet.styles.js +2 -2
  18. package/dist/components/data/sheet/DataSheet.styles.js.map +1 -1
  19. package/dist/components/data/sheet/DataSheetConfigDialog.js +5 -5
  20. package/dist/components/data/sheet/DataSheetConfigDialog.js.map +2 -2
  21. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.d.ts → createDataSheetExpansion.d.ts} +4 -4
  22. package/dist/components/data/sheet/hooks/createDataSheetExpansion.d.ts.map +1 -0
  23. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.js → createDataSheetExpansion.js} +3 -3
  24. package/dist/components/data/sheet/hooks/{useDataSheetExpansion.js.map → createDataSheetExpansion.js.map} +2 -2
  25. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.d.ts → createDataSheetFixedColumns.d.ts} +3 -3
  26. package/dist/components/data/sheet/hooks/createDataSheetFixedColumns.d.ts.map +1 -0
  27. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.js → createDataSheetFixedColumns.js} +3 -3
  28. package/dist/components/data/sheet/hooks/{useDataSheetFixedColumns.js.map → createDataSheetFixedColumns.js.map} +2 -2
  29. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.d.ts → createDataSheetHeaderCell.d.ts} +3 -3
  30. package/dist/components/data/sheet/hooks/createDataSheetHeaderCell.d.ts.map +1 -0
  31. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.js → createDataSheetHeaderCell.js} +3 -3
  32. package/dist/components/data/sheet/hooks/{useDataSheetHeaderCell.js.map → createDataSheetHeaderCell.js.map} +3 -3
  33. package/dist/components/data/sheet/hooks/{useDataSheetPaging.d.ts → createDataSheetPaging.d.ts} +4 -4
  34. package/dist/components/data/sheet/hooks/createDataSheetPaging.d.ts.map +1 -0
  35. package/dist/components/data/sheet/hooks/{useDataSheetPaging.js → createDataSheetPaging.js} +3 -3
  36. package/dist/components/data/sheet/hooks/{useDataSheetPaging.js.map → createDataSheetPaging.js.map} +2 -2
  37. package/dist/components/data/sheet/hooks/{useDataSheetReorder.d.ts → createDataSheetReorder.d.ts} +3 -3
  38. package/dist/components/data/sheet/hooks/createDataSheetReorder.d.ts.map +1 -0
  39. package/dist/components/data/sheet/hooks/{useDataSheetReorder.js → createDataSheetReorder.js} +3 -3
  40. package/dist/components/data/sheet/hooks/{useDataSheetReorder.js.map → createDataSheetReorder.js.map} +2 -2
  41. package/dist/components/data/sheet/hooks/{useDataSheetSelection.d.ts → createDataSheetSelection.d.ts} +4 -4
  42. package/dist/components/data/sheet/hooks/createDataSheetSelection.d.ts.map +1 -0
  43. package/dist/components/data/sheet/hooks/{useDataSheetSelection.js → createDataSheetSelection.js} +3 -3
  44. package/dist/components/data/sheet/hooks/{useDataSheetSelection.js.map → createDataSheetSelection.js.map} +2 -2
  45. package/dist/components/data/sheet/hooks/{useDataSheetSorting.d.ts → createDataSheetSorting.d.ts} +4 -4
  46. package/dist/components/data/sheet/hooks/createDataSheetSorting.d.ts.map +1 -0
  47. package/dist/components/data/sheet/hooks/{useDataSheetSorting.js → createDataSheetSorting.js} +3 -3
  48. package/dist/components/data/sheet/hooks/{useDataSheetSorting.js.map → createDataSheetSorting.js.map} +2 -2
  49. package/dist/components/disclosure/Dialog.d.ts +2 -2
  50. package/dist/components/disclosure/Dialog.d.ts.map +1 -1
  51. package/dist/components/disclosure/Dialog.js +4 -4
  52. package/dist/components/disclosure/Dialog.js.map +2 -2
  53. package/dist/components/disclosure/Tabs.js +3 -3
  54. package/dist/components/disclosure/Tabs.js.map +2 -2
  55. package/dist/components/features/crud-sheet/CrudSheet.js +3 -3
  56. package/dist/components/features/crud-sheet/CrudSheet.js.map +2 -2
  57. package/dist/components/features/data-select-button/DataSelectButton.d.ts +23 -9
  58. package/dist/components/features/data-select-button/DataSelectButton.d.ts.map +1 -1
  59. package/dist/components/features/data-select-button/DataSelectButton.js +1 -1
  60. package/dist/components/features/data-select-button/DataSelectButton.js.map +1 -1
  61. package/dist/components/features/permission-table/PermissionTable.js +2 -2
  62. package/dist/components/features/permission-table/PermissionTable.js.map +2 -2
  63. package/dist/components/features/shared-data/SharedDataSelect.d.ts +23 -9
  64. package/dist/components/features/shared-data/SharedDataSelect.d.ts.map +1 -1
  65. package/dist/components/features/shared-data/SharedDataSelect.js.map +1 -1
  66. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts +25 -10
  67. package/dist/components/features/shared-data/SharedDataSelectButton.d.ts.map +1 -1
  68. package/dist/components/features/shared-data/SharedDataSelectButton.js.map +1 -1
  69. package/dist/components/features/shared-data/SharedDataSelectList.js +1 -1
  70. package/dist/components/features/shared-data/SharedDataSelectList.js.map +2 -2
  71. package/dist/components/feedback/Progress.d.ts +1 -1
  72. package/dist/components/feedback/Progress.d.ts.map +1 -1
  73. package/dist/components/feedback/Progress.js +3 -3
  74. package/dist/components/feedback/Progress.js.map +2 -2
  75. package/dist/components/form-control/Button.js +2 -2
  76. package/dist/components/form-control/Button.js.map +2 -2
  77. package/dist/components/form-control/DropdownTrigger.styles.js +2 -2
  78. package/dist/components/form-control/DropdownTrigger.styles.js.map +1 -1
  79. package/dist/components/form-control/ThemeToggle.js +4 -4
  80. package/dist/components/form-control/ThemeToggle.js.map +2 -2
  81. package/dist/components/form-control/checkbox/Checkbox.d.ts +3 -3
  82. package/dist/components/form-control/checkbox/Checkbox.d.ts.map +1 -1
  83. package/dist/components/form-control/checkbox/Checkbox.styles.d.ts.map +1 -1
  84. package/dist/components/form-control/checkbox/Checkbox.styles.js +3 -3
  85. package/dist/components/form-control/checkbox/Checkbox.styles.js.map +1 -1
  86. package/dist/components/form-control/checkbox/CheckboxGroup.js +2 -2
  87. package/dist/components/form-control/checkbox/CheckboxGroup.js.map +2 -2
  88. package/dist/components/form-control/checkbox/Radio.d.ts +3 -3
  89. package/dist/components/form-control/checkbox/Radio.d.ts.map +1 -1
  90. package/dist/components/form-control/checkbox/RadioGroup.js +2 -2
  91. package/dist/components/form-control/checkbox/RadioGroup.js.map +2 -2
  92. package/dist/components/form-control/checkbox/SelectableBase.d.ts +3 -3
  93. package/dist/components/form-control/checkbox/SelectableBase.d.ts.map +1 -1
  94. package/dist/components/form-control/checkbox/SelectableBase.js +10 -10
  95. package/dist/components/form-control/checkbox/SelectableBase.js.map +2 -2
  96. package/dist/components/form-control/color-picker/ColorPicker.js +2 -2
  97. package/dist/components/form-control/color-picker/ColorPicker.js.map +2 -2
  98. package/dist/components/form-control/date-range-picker/DateRangePicker.js +1 -1
  99. package/dist/components/form-control/date-range-picker/DateRangePicker.js.map +2 -2
  100. package/dist/components/form-control/editor/EditorToolbar.js +1 -1
  101. package/dist/components/form-control/editor/EditorToolbar.js.map +2 -2
  102. package/dist/components/form-control/editor/RichTextEditor.js +2 -2
  103. package/dist/components/form-control/editor/RichTextEditor.js.map +2 -2
  104. package/dist/components/form-control/field/Field.styles.js +7 -7
  105. package/dist/components/form-control/field/Field.styles.js.map +1 -1
  106. package/dist/components/form-control/field/NumberInput.js +1 -1
  107. package/dist/components/form-control/field/NumberInput.js.map +1 -1
  108. package/dist/components/form-control/field/TextInput.js +1 -1
  109. package/dist/components/form-control/field/TextInput.js.map +1 -1
  110. package/dist/components/form-control/field/Textarea.js +1 -1
  111. package/dist/components/form-control/field/Textarea.js.map +1 -1
  112. package/dist/components/form-control/numpad/Numpad.d.ts +2 -2
  113. package/dist/components/form-control/numpad/Numpad.d.ts.map +1 -1
  114. package/dist/components/form-control/numpad/Numpad.js +4 -4
  115. package/dist/components/form-control/numpad/Numpad.js.map +2 -2
  116. package/dist/components/form-control/select/Select.js +1 -1
  117. package/dist/components/form-control/select/Select.js.map +2 -2
  118. package/dist/components/form-control/state-preset/StatePreset.js +8 -8
  119. package/dist/components/form-control/state-preset/StatePreset.js.map +2 -2
  120. package/dist/components/layout/topbar/Topbar.js +3 -3
  121. package/dist/components/layout/topbar/Topbar.js.map +2 -2
  122. package/dist/providers/PwaUpdateProvider.d.ts.map +1 -1
  123. package/dist/providers/PwaUpdateProvider.js +11 -4
  124. package/dist/providers/PwaUpdateProvider.js.map +2 -2
  125. package/dist/styles/control.styles.d.ts +3 -3
  126. package/dist/styles/control.styles.d.ts.map +1 -1
  127. package/dist/styles/control.styles.js +2 -2
  128. package/dist/styles/control.styles.js.map +1 -1
  129. package/docs/data.md +204 -0
  130. package/docs/disclosure.md +139 -0
  131. package/docs/display.md +125 -0
  132. package/docs/features.md +282 -0
  133. package/docs/feedback.md +136 -0
  134. package/docs/form-controls.md +520 -0
  135. package/docs/helpers.md +172 -0
  136. package/docs/hooks.md +146 -0
  137. package/docs/layout.md +94 -0
  138. package/docs/providers.md +179 -0
  139. package/package.json +19 -18
  140. package/src/components/data/Pagination.tsx +2 -2
  141. package/src/components/data/Table.tsx +2 -2
  142. package/src/components/data/calendar/Calendar.tsx +2 -2
  143. package/src/components/data/kanban/Kanban.tsx +2 -2
  144. package/src/components/data/list/ListItem.styles.ts +1 -1
  145. package/src/components/data/list/ListItem.tsx +1 -1
  146. package/src/components/data/sheet/DataSheet.styles.ts +2 -2
  147. package/src/components/data/sheet/DataSheet.tsx +16 -16
  148. package/src/components/data/sheet/DataSheetConfigDialog.tsx +5 -5
  149. package/src/components/data/sheet/hooks/{useDataSheetExpansion.ts → createDataSheetExpansion.ts} +5 -5
  150. package/src/components/data/sheet/hooks/{useDataSheetFixedColumns.ts → createDataSheetFixedColumns.ts} +3 -3
  151. package/src/components/data/sheet/hooks/{useDataSheetHeaderCell.tsx → createDataSheetHeaderCell.tsx} +2 -2
  152. package/src/components/data/sheet/hooks/{useDataSheetPaging.ts → createDataSheetPaging.ts} +5 -5
  153. package/src/components/data/sheet/hooks/{useDataSheetReorder.ts → createDataSheetReorder.ts} +3 -3
  154. package/src/components/data/sheet/hooks/{useDataSheetSelection.ts → createDataSheetSelection.ts} +5 -5
  155. package/src/components/data/sheet/hooks/{useDataSheetSorting.ts → createDataSheetSorting.ts} +5 -5
  156. package/src/components/disclosure/Dialog.tsx +5 -5
  157. package/src/components/disclosure/Tabs.tsx +3 -3
  158. package/src/components/features/crud-sheet/CrudSheet.tsx +3 -3
  159. package/src/components/features/data-select-button/DataSelectButton.tsx +42 -11
  160. package/src/components/features/permission-table/PermissionTable.tsx +2 -2
  161. package/src/components/features/shared-data/SharedDataSelect.tsx +45 -14
  162. package/src/components/features/shared-data/SharedDataSelectButton.tsx +38 -11
  163. package/src/components/features/shared-data/SharedDataSelectList.tsx +1 -1
  164. package/src/components/feedback/Progress.tsx +4 -4
  165. package/src/components/form-control/Button.tsx +2 -2
  166. package/src/components/form-control/DropdownTrigger.styles.ts +2 -2
  167. package/src/components/form-control/ThemeToggle.tsx +4 -4
  168. package/src/components/form-control/checkbox/Checkbox.styles.ts +3 -3
  169. package/src/components/form-control/checkbox/Checkbox.tsx +3 -3
  170. package/src/components/form-control/checkbox/CheckboxGroup.tsx +2 -2
  171. package/src/components/form-control/checkbox/Radio.tsx +3 -3
  172. package/src/components/form-control/checkbox/RadioGroup.tsx +2 -2
  173. package/src/components/form-control/checkbox/SelectableBase.tsx +15 -15
  174. package/src/components/form-control/color-picker/ColorPicker.tsx +2 -2
  175. package/src/components/form-control/date-range-picker/DateRangePicker.tsx +1 -1
  176. package/src/components/form-control/editor/EditorToolbar.tsx +1 -1
  177. package/src/components/form-control/editor/RichTextEditor.tsx +2 -2
  178. package/src/components/form-control/field/Field.styles.ts +7 -7
  179. package/src/components/form-control/field/NumberInput.tsx +1 -1
  180. package/src/components/form-control/field/TextInput.tsx +1 -1
  181. package/src/components/form-control/field/Textarea.tsx +1 -1
  182. package/src/components/form-control/numpad/Numpad.tsx +6 -6
  183. package/src/components/form-control/select/Select.tsx +1 -1
  184. package/src/components/form-control/state-preset/StatePreset.tsx +9 -9
  185. package/src/components/layout/topbar/Topbar.tsx +3 -3
  186. package/src/providers/PwaUpdateProvider.tsx +12 -5
  187. package/src/styles/control.styles.ts +3 -3
  188. package/tests/components/data/sheet/hooks/{useDataSheetExpansion.spec.ts → createDataSheetExpansion.spec.ts} +16 -16
  189. package/tests/components/data/sheet/hooks/{useDataSheetFixedColumns.spec.ts → createDataSheetFixedColumns.spec.ts} +27 -27
  190. package/tests/components/data/sheet/hooks/{useDataSheetPaging.spec.ts → createDataSheetPaging.spec.ts} +16 -16
  191. package/tests/components/data/sheet/hooks/{useDataSheetReorder.spec.ts → createDataSheetReorder.spec.ts} +14 -14
  192. package/tests/components/data/sheet/hooks/{useDataSheetSelection.spec.ts → createDataSheetSelection.spec.ts} +26 -26
  193. package/tests/components/data/sheet/hooks/{useDataSheetSorting.spec.ts → createDataSheetSorting.spec.ts} +13 -13
  194. package/tests/components/disclosure/Dialog.spec.tsx +2 -2
  195. package/tests/components/features/data-select-button/DataSelectButton.spec.tsx +55 -6
  196. package/tests/components/features/shared-data/SharedDataSelect.spec.tsx +40 -0
  197. package/tests/components/form-control/checkbox/Checkbox.spec.tsx +8 -8
  198. package/tests/components/form-control/checkbox/Radio.spec.tsx +9 -9
  199. package/tests/components/form-control/numpad/Numpad.spec.tsx +10 -10
  200. package/dist/components/data/sheet/hooks/useDataSheetExpansion.d.ts.map +0 -1
  201. package/dist/components/data/sheet/hooks/useDataSheetFixedColumns.d.ts.map +0 -1
  202. package/dist/components/data/sheet/hooks/useDataSheetHeaderCell.d.ts.map +0 -1
  203. package/dist/components/data/sheet/hooks/useDataSheetPaging.d.ts.map +0 -1
  204. package/dist/components/data/sheet/hooks/useDataSheetReorder.d.ts.map +0 -1
  205. package/dist/components/data/sheet/hooks/useDataSheetSelection.d.ts.map +0 -1
  206. package/dist/components/data/sheet/hooks/useDataSheetSorting.d.ts.map +0 -1
@@ -215,7 +215,7 @@ const TopbarMenu: Component<TopbarMenuProps> = (props) => {
215
215
  return (
216
216
  <>
217
217
  {/* Desktop menu (shown only on 640px and above) */}
218
- <nav {...rest} data-topbar-menu class={twMerge(clsx("hidden flex-row sm:flex", gap.default, "items-center"), local.class)}>
218
+ <nav {...rest} data-topbar-menu class={twMerge(clsx("hidden flex-row sm:flex", gap.md, "items-center"), local.class)}>
219
219
  <For each={local.menus}>{(menu) => <TopbarMenuButton menu={menu} />}</For>
220
220
  </nav>
221
221
 
@@ -291,7 +291,7 @@ const TopbarMenuButton: Component<TopbarMenuButtonProps> = (props) => {
291
291
  <Button
292
292
  variant={isSelected() ? "solid" : "ghost"}
293
293
  theme={isSelected() ? "primary" : "base"}
294
- class={clsx("flex items-center", gap.default)}
294
+ class={clsx("flex items-center", gap.md)}
295
295
  aria-haspopup={hasChildren() ? "menu" : undefined}
296
296
  aria-expanded={hasChildren() ? open() : undefined}
297
297
  onClick={hasChildren() ? undefined : handleNavigate}
@@ -410,7 +410,7 @@ const TopbarUser: ParentComponent<TopbarUserProps> = (props) => {
410
410
  const buttonContent = () => (
411
411
  <Button
412
412
  variant="ghost"
413
- class={clsx("flex items-center", gap.default)}
413
+ class={clsx("flex items-center", gap.md)}
414
414
  aria-haspopup={hasMenus() ? "menu" : undefined}
415
415
  aria-expanded={hasMenus() ? open() : undefined}
416
416
  >
@@ -16,6 +16,7 @@ export const PwaUpdateProvider: ParentComponent = (props) => {
16
16
  if (typeof navigator !== "undefined" && "serviceWorker" in navigator) {
17
17
  const notification = useNotification();
18
18
  let intervalId: ReturnType<typeof setInterval> | undefined;
19
+ const cleanups: (() => void)[] = [];
19
20
 
20
21
  void navigator.serviceWorker.getRegistration().then((registration) => {
21
22
  if (registration == null) return;
@@ -28,17 +29,22 @@ export const PwaUpdateProvider: ParentComponent = (props) => {
28
29
  promptUpdate(registration.waiting);
29
30
  }
30
31
 
31
- registration.addEventListener("updatefound", () => {
32
+ const onUpdateFound = () => {
32
33
  const newSW = registration.installing;
33
34
  if (newSW == null) return;
34
35
 
35
- newSW.addEventListener("statechange", () => {
36
+ const onStateChange = () => {
36
37
  if (newSW.state === "installed" && navigator.serviceWorker.controller != null) {
37
38
  promptUpdate(newSW);
38
39
  }
39
- });
40
- });
41
- });
40
+ };
41
+ newSW.addEventListener("statechange", onStateChange);
42
+ cleanups.push(() => newSW.removeEventListener("statechange", onStateChange));
43
+ };
44
+
45
+ registration.addEventListener("updatefound", onUpdateFound);
46
+ cleanups.push(() => registration.removeEventListener("updatefound", onUpdateFound));
47
+ }).catch(() => {});
42
48
 
43
49
  const onControllerChange = () => {
44
50
  window.location.reload();
@@ -50,6 +56,7 @@ export const PwaUpdateProvider: ParentComponent = (props) => {
50
56
  clearInterval(intervalId);
51
57
  }
52
58
  navigator.serviceWorker.removeEventListener("controllerchange", onControllerChange);
59
+ for (const fn of cleanups) fn();
53
60
  });
54
61
 
55
62
  function promptUpdate(waitingSW: ServiceWorker): void {
@@ -6,10 +6,10 @@ export const state = {
6
6
  };
7
7
 
8
8
  // ── Size ──
9
- export type ComponentSize = "default" | "xs" | "sm" | "lg" | "xl";
9
+ export type ComponentSize = "xs" | "sm" | "md" | "lg" | "xl";
10
10
 
11
11
  export const pad = {
12
- default: clsx`px-2 py-1`,
12
+ md: clsx`px-2 py-1`,
13
13
  xs: clsx`px-1 py-0`,
14
14
  sm: clsx`px-1.5 py-0.5`,
15
15
  lg: clsx`px-3 py-2`,
@@ -17,7 +17,7 @@ export const pad = {
17
17
  };
18
18
 
19
19
  export const gap = {
20
- default: clsx`gap-1`,
20
+ md: clsx`gap-1`,
21
21
  xs: clsx`gap-0`,
22
22
  sm: clsx`gap-0.5`,
23
23
  lg: clsx`gap-1.5`,
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { createRoot } from "solid-js";
3
- import { useDataSheetExpansion } from "../../../../../src/components/data/sheet/hooks/useDataSheetExpansion";
3
+ import { createDataSheetExpansion } from "../../../../../src/components/data/sheet/hooks/createDataSheetExpansion";
4
4
 
5
5
  interface TestNode {
6
6
  id: string;
@@ -32,11 +32,11 @@ function itemChildren(item: TestNode, _index: number): TestNode[] | undefined {
32
32
  return item.children;
33
33
  }
34
34
 
35
- describe("useDataSheetExpansion", () => {
35
+ describe("createDataSheetExpansion", () => {
36
36
  it("should initialize with empty expanded items by default", () => {
37
37
  createRoot(() => {
38
38
  const createIndexMap = () => new Map<TestNode, number>();
39
- const result = useDataSheetExpansion(
39
+ const result = createDataSheetExpansion(
40
40
  { itemChildren },
41
41
  () => treeData,
42
42
  createIndexMap,
@@ -50,7 +50,7 @@ describe("useDataSheetExpansion", () => {
50
50
  createRoot(() => {
51
51
  const createIndexMap = () => new Map<TestNode, number>();
52
52
  const expandedItems = [treeData[0]];
53
- const result = useDataSheetExpansion(
53
+ const result = createDataSheetExpansion(
54
54
  { expandedItems, itemChildren },
55
55
  () => treeData,
56
56
  createIndexMap,
@@ -63,7 +63,7 @@ describe("useDataSheetExpansion", () => {
63
63
  it("toggleExpand should add item when not expanded", () => {
64
64
  createRoot(() => {
65
65
  const createIndexMap = () => new Map<TestNode, number>();
66
- const result = useDataSheetExpansion(
66
+ const result = createDataSheetExpansion(
67
67
  { itemChildren },
68
68
  () => treeData,
69
69
  createIndexMap,
@@ -80,7 +80,7 @@ describe("useDataSheetExpansion", () => {
80
80
  createRoot(() => {
81
81
  const createIndexMap = () => new Map<TestNode, number>();
82
82
  const expandedItems = [treeData[0]];
83
- const result = useDataSheetExpansion(
83
+ const result = createDataSheetExpansion(
84
84
  { expandedItems: [...expandedItems], itemChildren },
85
85
  () => treeData,
86
86
  createIndexMap,
@@ -95,7 +95,7 @@ describe("useDataSheetExpansion", () => {
95
95
  it("flatItems should include children when item is expanded", () => {
96
96
  createRoot(() => {
97
97
  const createIndexMap = () => new Map<TestNode, number>();
98
- const result = useDataSheetExpansion(
98
+ const result = createDataSheetExpansion(
99
99
  { expandedItems: [treeData[0]], itemChildren },
100
100
  () => treeData,
101
101
  createIndexMap,
@@ -114,7 +114,7 @@ describe("useDataSheetExpansion", () => {
114
114
  it("flatItems should not include children when item is not expanded", () => {
115
115
  createRoot(() => {
116
116
  const createIndexMap = () => new Map<TestNode, number>();
117
- const result = useDataSheetExpansion(
117
+ const result = createDataSheetExpansion(
118
118
  { itemChildren },
119
119
  () => treeData,
120
120
  createIndexMap,
@@ -131,7 +131,7 @@ describe("useDataSheetExpansion", () => {
131
131
  it("isAllExpanded should be false when no items are expanded", () => {
132
132
  createRoot(() => {
133
133
  const createIndexMap = () => new Map<TestNode, number>();
134
- const result = useDataSheetExpansion(
134
+ const result = createDataSheetExpansion(
135
135
  { itemChildren },
136
136
  () => treeData,
137
137
  createIndexMap,
@@ -146,7 +146,7 @@ describe("useDataSheetExpansion", () => {
146
146
  const createIndexMap = () => new Map<TestNode, number>();
147
147
  // collectAllExpandable will find root1, child1-2, and root2 as expandable
148
148
  const allExpandable = [treeData[0], treeData[0].children![1], treeData[1]];
149
- const result = useDataSheetExpansion(
149
+ const result = createDataSheetExpansion(
150
150
  { expandedItems: allExpandable, itemChildren },
151
151
  () => treeData,
152
152
  createIndexMap,
@@ -159,7 +159,7 @@ describe("useDataSheetExpansion", () => {
159
159
  it("isAllExpanded should be false when only some items are expanded", () => {
160
160
  createRoot(() => {
161
161
  const createIndexMap = () => new Map<TestNode, number>();
162
- const result = useDataSheetExpansion(
162
+ const result = createDataSheetExpansion(
163
163
  { expandedItems: [treeData[0]], itemChildren },
164
164
  () => treeData,
165
165
  createIndexMap,
@@ -172,7 +172,7 @@ describe("useDataSheetExpansion", () => {
172
172
  it("toggleExpandAll should expand all items when not all are expanded", () => {
173
173
  createRoot(() => {
174
174
  const createIndexMap = () => new Map<TestNode, number>();
175
- const result = useDataSheetExpansion(
175
+ const result = createDataSheetExpansion(
176
176
  { itemChildren },
177
177
  () => treeData,
178
178
  createIndexMap,
@@ -190,7 +190,7 @@ describe("useDataSheetExpansion", () => {
190
190
  const createIndexMap = () => new Map<TestNode, number>();
191
191
  // collectAllExpandable will find root1, child1-2, and root2 as expandable
192
192
  const allExpandable = [treeData[0], treeData[0].children![1], treeData[1]];
193
- const result = useDataSheetExpansion(
193
+ const result = createDataSheetExpansion(
194
194
  { expandedItems: allExpandable, itemChildren },
195
195
  () => treeData,
196
196
  createIndexMap,
@@ -206,7 +206,7 @@ describe("useDataSheetExpansion", () => {
206
206
  it("flatItems should have correct depth values", () => {
207
207
  createRoot(() => {
208
208
  const createIndexMap = () => new Map<TestNode, number>();
209
- const result = useDataSheetExpansion(
209
+ const result = createDataSheetExpansion(
210
210
  { expandedItems: [treeData[0]], itemChildren },
211
211
  () => treeData,
212
212
  createIndexMap,
@@ -225,7 +225,7 @@ describe("useDataSheetExpansion", () => {
225
225
  it("should work with flat list (no children)", () => {
226
226
  createRoot(() => {
227
227
  const createIndexMap = () => new Map<TestNode, number>();
228
- const result = useDataSheetExpansion({}, () => flatListData, createIndexMap);
228
+ const result = createDataSheetExpansion({}, () => flatListData, createIndexMap);
229
229
 
230
230
  expect(result.flatItems().length).toBe(flatListData.length);
231
231
  expect(result.isAllExpanded()).toBe(false);
@@ -240,7 +240,7 @@ describe("useDataSheetExpansion", () => {
240
240
  lastCalledWith = items;
241
241
  };
242
242
 
243
- const result = useDataSheetExpansion(
243
+ const result = createDataSheetExpansion(
244
244
  { itemChildren, onExpandedItemsChange },
245
245
  () => treeData,
246
246
  createIndexMap,
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { createRoot } from "solid-js";
3
- import { useDataSheetFixedColumns } from "../../../../../src/components/data/sheet/hooks/useDataSheetFixedColumns";
3
+ import { createDataSheetFixedColumns } from "../../../../../src/components/data/sheet/hooks/createDataSheetFixedColumns";
4
4
  import type { DataSheetColumnDef } from "../../../../../src/components/data/sheet/DataSheet.types";
5
5
 
6
6
  interface TestItem {
@@ -8,13 +8,13 @@ interface TestItem {
8
8
  name: string;
9
9
  }
10
10
 
11
- describe("useDataSheetFixedColumns", () => {
11
+ describe("createDataSheetFixedColumns", () => {
12
12
  describe("feature column tracking", () => {
13
13
  it("should detect expand feature when itemChildren is provided", () => {
14
14
  createRoot(() => {
15
15
  const effectiveColumns = () => [];
16
16
 
17
- const { hasExpandFeature } = useDataSheetFixedColumns(
17
+ const { hasExpandFeature } = createDataSheetFixedColumns(
18
18
  {
19
19
  itemChildren: () => undefined,
20
20
  },
@@ -29,7 +29,7 @@ describe("useDataSheetFixedColumns", () => {
29
29
  createRoot(() => {
30
30
  const effectiveColumns = () => [];
31
31
 
32
- const { hasExpandFeature } = useDataSheetFixedColumns({}, effectiveColumns);
32
+ const { hasExpandFeature } = createDataSheetFixedColumns({}, effectiveColumns);
33
33
 
34
34
  expect(hasExpandFeature()).toBe(false);
35
35
  });
@@ -39,7 +39,7 @@ describe("useDataSheetFixedColumns", () => {
39
39
  createRoot(() => {
40
40
  const effectiveColumns = () => [];
41
41
 
42
- const { hasSelectFeature } = useDataSheetFixedColumns(
42
+ const { hasSelectFeature } = createDataSheetFixedColumns(
43
43
  {
44
44
  selectionMode: "single",
45
45
  },
@@ -54,7 +54,7 @@ describe("useDataSheetFixedColumns", () => {
54
54
  createRoot(() => {
55
55
  const effectiveColumns = () => [];
56
56
 
57
- const { hasSelectFeature } = useDataSheetFixedColumns({}, effectiveColumns);
57
+ const { hasSelectFeature } = createDataSheetFixedColumns({}, effectiveColumns);
58
58
 
59
59
  expect(hasSelectFeature()).toBe(false);
60
60
  });
@@ -64,7 +64,7 @@ describe("useDataSheetFixedColumns", () => {
64
64
  createRoot(() => {
65
65
  const effectiveColumns = () => [];
66
66
 
67
- const { hasReorderFeature } = useDataSheetFixedColumns(
67
+ const { hasReorderFeature } = createDataSheetFixedColumns(
68
68
  {
69
69
  onItemsReorder: () => {},
70
70
  },
@@ -79,7 +79,7 @@ describe("useDataSheetFixedColumns", () => {
79
79
  createRoot(() => {
80
80
  const effectiveColumns = () => [];
81
81
 
82
- const { hasReorderFeature } = useDataSheetFixedColumns({}, effectiveColumns);
82
+ const { hasReorderFeature } = createDataSheetFixedColumns({}, effectiveColumns);
83
83
 
84
84
  expect(hasReorderFeature()).toBe(false);
85
85
  });
@@ -91,7 +91,7 @@ describe("useDataSheetFixedColumns", () => {
91
91
  createRoot(() => {
92
92
  const effectiveColumns = () => [];
93
93
 
94
- const { expandColWidth, selectColWidth, reorderColWidth } = useDataSheetFixedColumns(
94
+ const { expandColWidth, selectColWidth, reorderColWidth } = createDataSheetFixedColumns(
95
95
  {
96
96
  itemChildren: () => undefined,
97
97
  selectionMode: "single",
@@ -112,7 +112,7 @@ describe("useDataSheetFixedColumns", () => {
112
112
  createRoot(() => {
113
113
  const effectiveColumns = () => [];
114
114
 
115
- const { selectColLeft } = useDataSheetFixedColumns(
115
+ const { selectColLeft } = createDataSheetFixedColumns(
116
116
  {
117
117
  selectionMode: "single",
118
118
  },
@@ -127,7 +127,7 @@ describe("useDataSheetFixedColumns", () => {
127
127
  createRoot(() => {
128
128
  const effectiveColumns = () => [];
129
129
 
130
- const { selectColLeft, expandColWidth: _expandColWidth } = useDataSheetFixedColumns(
130
+ const { selectColLeft, expandColWidth: _expandColWidth } = createDataSheetFixedColumns(
131
131
  {
132
132
  itemChildren: () => undefined,
133
133
  selectionMode: "single",
@@ -144,7 +144,7 @@ describe("useDataSheetFixedColumns", () => {
144
144
  createRoot(() => {
145
145
  const effectiveColumns = () => [];
146
146
 
147
- const { reorderColLeft } = useDataSheetFixedColumns(
147
+ const { reorderColLeft } = createDataSheetFixedColumns(
148
148
  {
149
149
  itemChildren: () => undefined,
150
150
  selectionMode: "single",
@@ -163,7 +163,7 @@ describe("useDataSheetFixedColumns", () => {
163
163
  createRoot(() => {
164
164
  const effectiveColumns = () => [];
165
165
 
166
- const { featureColTotalWidth } = useDataSheetFixedColumns(
166
+ const { featureColTotalWidth } = createDataSheetFixedColumns(
167
167
  {
168
168
  itemChildren: () => undefined,
169
169
  selectionMode: "single",
@@ -181,7 +181,7 @@ describe("useDataSheetFixedColumns", () => {
181
181
  createRoot(() => {
182
182
  const effectiveColumns = () => [];
183
183
 
184
- const { featureColTotalWidth } = useDataSheetFixedColumns({}, effectiveColumns);
184
+ const { featureColTotalWidth } = createDataSheetFixedColumns({}, effectiveColumns);
185
185
 
186
186
  expect(featureColTotalWidth()).toBe(0);
187
187
  });
@@ -208,7 +208,7 @@ describe("useDataSheetFixedColumns", () => {
208
208
  createColumn("col2", false),
209
209
  ];
210
210
 
211
- const { fixedLeftMap } = useDataSheetFixedColumns({}, effectiveColumns);
211
+ const { fixedLeftMap } = createDataSheetFixedColumns({}, effectiveColumns);
212
212
 
213
213
  expect(fixedLeftMap().size).toBe(0);
214
214
  });
@@ -234,7 +234,7 @@ describe("useDataSheetFixedColumns", () => {
234
234
  createColumn("col3", false),
235
235
  ];
236
236
 
237
- const { fixedLeftMap } = useDataSheetFixedColumns({}, effectiveColumns);
237
+ const { fixedLeftMap } = createDataSheetFixedColumns({}, effectiveColumns);
238
238
 
239
239
  const map = fixedLeftMap();
240
240
  expect(map.has(0)).toBe(true);
@@ -263,7 +263,7 @@ describe("useDataSheetFixedColumns", () => {
263
263
  createColumn("col3", true),
264
264
  ];
265
265
 
266
- const { fixedLeftMap } = useDataSheetFixedColumns({}, effectiveColumns);
266
+ const { fixedLeftMap } = createDataSheetFixedColumns({}, effectiveColumns);
267
267
 
268
268
  const map = fixedLeftMap();
269
269
  expect(map.has(0)).toBe(true);
@@ -293,7 +293,7 @@ describe("useDataSheetFixedColumns", () => {
293
293
  createColumn("col2", false),
294
294
  ];
295
295
 
296
- const { lastFixedIndex } = useDataSheetFixedColumns({}, effectiveColumns);
296
+ const { lastFixedIndex } = createDataSheetFixedColumns({}, effectiveColumns);
297
297
 
298
298
  expect(lastFixedIndex()).toBe(-1);
299
299
  });
@@ -319,7 +319,7 @@ describe("useDataSheetFixedColumns", () => {
319
319
  createColumn("col3", false),
320
320
  ];
321
321
 
322
- const { lastFixedIndex } = useDataSheetFixedColumns({}, effectiveColumns);
322
+ const { lastFixedIndex } = createDataSheetFixedColumns({}, effectiveColumns);
323
323
 
324
324
  expect(lastFixedIndex()).toBe(1);
325
325
  });
@@ -345,7 +345,7 @@ describe("useDataSheetFixedColumns", () => {
345
345
  createColumn("col3", true),
346
346
  ];
347
347
 
348
- const { lastFixedIndex } = useDataSheetFixedColumns({}, effectiveColumns);
348
+ const { lastFixedIndex } = createDataSheetFixedColumns({}, effectiveColumns);
349
349
 
350
350
  expect(lastFixedIndex()).toBe(0);
351
351
  });
@@ -357,7 +357,7 @@ describe("useDataSheetFixedColumns", () => {
357
357
  createRoot(() => {
358
358
  const effectiveColumns = () => [];
359
359
 
360
- const { getFixedStyle } = useDataSheetFixedColumns({}, effectiveColumns);
360
+ const { getFixedStyle } = createDataSheetFixedColumns({}, effectiveColumns);
361
361
 
362
362
  expect(getFixedStyle(0)).toBeUndefined();
363
363
  });
@@ -382,7 +382,7 @@ describe("useDataSheetFixedColumns", () => {
382
382
  createColumn("col2", false),
383
383
  ];
384
384
 
385
- const { getFixedStyle } = useDataSheetFixedColumns({}, effectiveColumns);
385
+ const { getFixedStyle } = createDataSheetFixedColumns({}, effectiveColumns);
386
386
 
387
387
  const style = getFixedStyle(0);
388
388
  expect(style).toMatch(/^left: \d+px$/);
@@ -411,7 +411,7 @@ describe("useDataSheetFixedColumns", () => {
411
411
  createColumn("col3", false),
412
412
  ];
413
413
 
414
- const { isLastFixed } = useDataSheetFixedColumns({}, effectiveColumns);
414
+ const { isLastFixed } = createDataSheetFixedColumns({}, effectiveColumns);
415
415
 
416
416
  expect(isLastFixed(1)).toBe(true);
417
417
  expect(isLastFixed(0)).toBe(false);
@@ -438,7 +438,7 @@ describe("useDataSheetFixedColumns", () => {
438
438
  createColumn("col2", false),
439
439
  ];
440
440
 
441
- const { isLastFixed } = useDataSheetFixedColumns({}, effectiveColumns);
441
+ const { isLastFixed } = createDataSheetFixedColumns({}, effectiveColumns);
442
442
 
443
443
  expect(isLastFixed(1)).toBe(false);
444
444
  });
@@ -450,7 +450,7 @@ describe("useDataSheetFixedColumns", () => {
450
450
  createRoot(() => {
451
451
  const effectiveColumns = () => [];
452
452
 
453
- const { columnRefs } = useDataSheetFixedColumns({}, effectiveColumns);
453
+ const { columnRefs } = createDataSheetFixedColumns({}, effectiveColumns);
454
454
 
455
455
  expect(columnRefs.size).toBe(0);
456
456
  });
@@ -460,7 +460,7 @@ describe("useDataSheetFixedColumns", () => {
460
460
  createRoot(() => {
461
461
  const effectiveColumns = () => [];
462
462
 
463
- const { columnRefs: _columnRefs, registerColumnRef } = useDataSheetFixedColumns({}, effectiveColumns);
463
+ const { columnRefs: _columnRefs, registerColumnRef } = createDataSheetFixedColumns({}, effectiveColumns);
464
464
 
465
465
  const _mockElement = {
466
466
  offsetWidth: 100,
@@ -479,7 +479,7 @@ describe("useDataSheetFixedColumns", () => {
479
479
  createRoot(() => {
480
480
  const effectiveColumns = () => [];
481
481
 
482
- const { columnWidths } = useDataSheetFixedColumns({}, effectiveColumns);
482
+ const { columnWidths } = createDataSheetFixedColumns({}, effectiveColumns);
483
483
 
484
484
  expect(columnWidths().size).toBe(0);
485
485
  });
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { createRoot, createSignal } from "solid-js";
3
- import { useDataSheetPaging } from "../../../../../src/components/data/sheet/hooks/useDataSheetPaging";
3
+ import { createDataSheetPaging } from "../../../../../src/components/data/sheet/hooks/createDataSheetPaging";
4
4
 
5
5
  interface TestItem {
6
6
  id: number;
@@ -16,7 +16,7 @@ const testData: TestItem[] = [
16
16
  { id: 6, name: "Item 6" },
17
17
  ];
18
18
 
19
- describe("useDataSheetPaging", () => {
19
+ describe("createDataSheetPaging", () => {
20
20
  it("initializes with page 1", () => {
21
21
  createRoot(() => {
22
22
  const [page] = createSignal<number | undefined>(undefined);
@@ -26,7 +26,7 @@ describe("useDataSheetPaging", () => {
26
26
  const [items] = createSignal<TestItem[] | undefined>(testData);
27
27
  const [sortedItems] = createSignal<TestItem[]>(testData);
28
28
 
29
- const { currentPage } = useDataSheetPaging({
29
+ const { currentPage } = createDataSheetPaging({
30
30
  page,
31
31
  onPageChange,
32
32
  pageSize,
@@ -48,7 +48,7 @@ describe("useDataSheetPaging", () => {
48
48
  const [items] = createSignal<TestItem[] | undefined>(testData);
49
49
  const [sortedItems] = createSignal<TestItem[]>(testData);
50
50
 
51
- const { pageCount } = useDataSheetPaging({
51
+ const { pageCount } = createDataSheetPaging({
52
52
  page,
53
53
  onPageChange,
54
54
  pageSize,
@@ -71,7 +71,7 @@ describe("useDataSheetPaging", () => {
71
71
  const [items] = createSignal<TestItem[] | undefined>(testData);
72
72
  const [sortedItems] = createSignal<TestItem[]>(testData);
73
73
 
74
- const { pageCount } = useDataSheetPaging({
74
+ const { pageCount } = createDataSheetPaging({
75
75
  page,
76
76
  onPageChange,
77
77
  pageSize,
@@ -93,7 +93,7 @@ describe("useDataSheetPaging", () => {
93
93
  const [items] = createSignal<TestItem[] | undefined>([]);
94
94
  const [sortedItems] = createSignal<TestItem[]>([]);
95
95
 
96
- const { pageCount } = useDataSheetPaging({
96
+ const { pageCount } = createDataSheetPaging({
97
97
  page,
98
98
  onPageChange,
99
99
  pageSize,
@@ -115,7 +115,7 @@ describe("useDataSheetPaging", () => {
115
115
  const [items] = createSignal<TestItem[] | undefined>(testData);
116
116
  const [sortedItems] = createSignal<TestItem[]>(testData);
117
117
 
118
- const { pageCount } = useDataSheetPaging({
118
+ const { pageCount } = createDataSheetPaging({
119
119
  page,
120
120
  onPageChange,
121
121
  pageSize,
@@ -137,7 +137,7 @@ describe("useDataSheetPaging", () => {
137
137
  const [items] = createSignal<TestItem[] | undefined>(testData);
138
138
  const [sortedItems] = createSignal<TestItem[]>(testData);
139
139
 
140
- const { pagedItems } = useDataSheetPaging({
140
+ const { pagedItems } = createDataSheetPaging({
141
141
  page,
142
142
  onPageChange,
143
143
  pageSize,
@@ -164,7 +164,7 @@ describe("useDataSheetPaging", () => {
164
164
  const [items] = createSignal<TestItem[] | undefined>(testData);
165
165
  const [sortedItems] = createSignal<TestItem[]>(testData);
166
166
 
167
- const { pagedItems } = useDataSheetPaging({
167
+ const { pagedItems } = createDataSheetPaging({
168
168
  page,
169
169
  onPageChange,
170
170
  pageSize,
@@ -186,7 +186,7 @@ describe("useDataSheetPaging", () => {
186
186
  const [items] = createSignal<TestItem[] | undefined>(testData);
187
187
  const [sortedItems] = createSignal<TestItem[]>(testData);
188
188
 
189
- const { pagedItems } = useDataSheetPaging({
189
+ const { pagedItems } = createDataSheetPaging({
190
190
  page,
191
191
  onPageChange,
192
192
  pageSize,
@@ -208,7 +208,7 @@ describe("useDataSheetPaging", () => {
208
208
  const [items] = createSignal<TestItem[] | undefined>([]);
209
209
  const [sortedItems] = createSignal<TestItem[]>([]);
210
210
 
211
- const { pagedItems } = useDataSheetPaging({
211
+ const { pagedItems } = createDataSheetPaging({
212
212
  page,
213
213
  onPageChange,
214
214
  pageSize,
@@ -230,7 +230,7 @@ describe("useDataSheetPaging", () => {
230
230
  const [items] = createSignal<TestItem[] | undefined>(testData);
231
231
  const [sortedItems] = createSignal<TestItem[]>(testData);
232
232
 
233
- const { pagedItems } = useDataSheetPaging({
233
+ const { pagedItems } = createDataSheetPaging({
234
234
  page,
235
235
  onPageChange,
236
236
  pageSize,
@@ -257,7 +257,7 @@ describe("useDataSheetPaging", () => {
257
257
  const [items] = createSignal<TestItem[] | undefined>(testData);
258
258
  const [sortedItems] = createSignal<TestItem[]>(testData);
259
259
 
260
- const { pagedItems } = useDataSheetPaging({
260
+ const { pagedItems } = createDataSheetPaging({
261
261
  page,
262
262
  onPageChange,
263
263
  pageSize,
@@ -284,7 +284,7 @@ describe("useDataSheetPaging", () => {
284
284
  const [items] = createSignal<TestItem[] | undefined>(testData);
285
285
  const [sortedItems] = createSignal<TestItem[]>(testData);
286
286
 
287
- const { pagedItems } = useDataSheetPaging({
287
+ const { pagedItems } = createDataSheetPaging({
288
288
  page,
289
289
  onPageChange,
290
290
  pageSize,
@@ -311,7 +311,7 @@ describe("useDataSheetPaging", () => {
311
311
  const [items] = createSignal<TestItem[] | undefined>(testData);
312
312
  const [sortedItems] = createSignal<TestItem[]>(testData);
313
313
 
314
- const { setCurrentPage, pagedItems } = useDataSheetPaging({
314
+ const { setCurrentPage, pagedItems } = createDataSheetPaging({
315
315
  page,
316
316
  onPageChange,
317
317
  pageSize,
@@ -342,7 +342,7 @@ describe("useDataSheetPaging", () => {
342
342
  const [items] = createSignal<TestItem[] | undefined>(testData);
343
343
  const [sortedItems] = createSignal<TestItem[]>(testData);
344
344
 
345
- const { setCurrentPage, pagedItems } = useDataSheetPaging({
345
+ const { setCurrentPage, pagedItems } = createDataSheetPaging({
346
346
  page,
347
347
  onPageChange,
348
348
  pageSize,