@simplysm/solid 13.0.77 → 13.0.80

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
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, vi } from "vitest";
2
2
  import { createRoot } from "solid-js";
3
- import { useDataSheetReorder } from "../../../../../src/components/data/sheet/hooks/useDataSheetReorder";
3
+ import { createDataSheetReorder } from "../../../../../src/components/data/sheet/hooks/createDataSheetReorder";
4
4
 
5
5
  interface TestItem {
6
6
  id: number;
@@ -8,7 +8,7 @@ interface TestItem {
8
8
  children?: TestItem[];
9
9
  }
10
10
 
11
- describe("useDataSheetReorder", () => {
11
+ describe("createDataSheetReorder", () => {
12
12
  describe("isDescendant", () => {
13
13
  it("should return false for non-descendant items", () => {
14
14
  createRoot(() => {
@@ -17,7 +17,7 @@ describe("useDataSheetReorder", () => {
17
17
 
18
18
  const displayItems = () => [];
19
19
 
20
- const { dragState } = useDataSheetReorder<TestItem>(
20
+ const { dragState } = createDataSheetReorder<TestItem>(
21
21
  {
22
22
  itemChildren: (item) => item.children,
23
23
  },
@@ -36,7 +36,7 @@ describe("useDataSheetReorder", () => {
36
36
 
37
37
  const displayItems = () => [];
38
38
 
39
- const { dragState } = useDataSheetReorder<TestItem>(
39
+ const { dragState } = createDataSheetReorder<TestItem>(
40
40
  {
41
41
  itemChildren: (item) => item.children,
42
42
  },
@@ -56,7 +56,7 @@ describe("useDataSheetReorder", () => {
56
56
 
57
57
  const displayItems = () => [];
58
58
 
59
- const { dragState } = useDataSheetReorder<TestItem>(
59
+ const { dragState } = createDataSheetReorder<TestItem>(
60
60
  {
61
61
  itemChildren: (item) => item.children,
62
62
  },
@@ -79,7 +79,7 @@ describe("useDataSheetReorder", () => {
79
79
 
80
80
  const displayItems = () => [];
81
81
 
82
- const { dragState } = useDataSheetReorder<TestItem>(
82
+ const { dragState } = createDataSheetReorder<TestItem>(
83
83
  {
84
84
  itemChildren: (item) => item.children,
85
85
  },
@@ -98,7 +98,7 @@ describe("useDataSheetReorder", () => {
98
98
 
99
99
  const displayItems = () => [];
100
100
 
101
- const { dragState } = useDataSheetReorder({}, displayItems);
101
+ const { dragState } = createDataSheetReorder({}, displayItems);
102
102
 
103
103
  // Without itemChildren, no parent-child relationships exist
104
104
  expect(dragState()).toBeNull();
@@ -111,7 +111,7 @@ describe("useDataSheetReorder", () => {
111
111
  createRoot(() => {
112
112
  const displayItems = () => [];
113
113
 
114
- const { dragState } = useDataSheetReorder({}, displayItems);
114
+ const { dragState } = createDataSheetReorder({}, displayItems);
115
115
 
116
116
  expect(dragState()).toBeNull();
117
117
  });
@@ -124,7 +124,7 @@ describe("useDataSheetReorder", () => {
124
124
 
125
125
  const displayItems = () => [];
126
126
 
127
- const { dragState, setDragState } = useDataSheetReorder({}, displayItems);
127
+ const { dragState, setDragState } = createDataSheetReorder({}, displayItems);
128
128
 
129
129
  setDragState({
130
130
  draggingItem: item1,
@@ -147,7 +147,7 @@ describe("useDataSheetReorder", () => {
147
147
 
148
148
  const displayItems = () => [];
149
149
 
150
- const { dragState, setDragState } = useDataSheetReorder({}, displayItems);
150
+ const { dragState, setDragState } = createDataSheetReorder({}, displayItems);
151
151
 
152
152
  setDragState({
153
153
  draggingItem: item1,
@@ -169,7 +169,7 @@ describe("useDataSheetReorder", () => {
169
169
 
170
170
  const displayItems = () => [];
171
171
 
172
- const { dragState, setDragState } = useDataSheetReorder({}, displayItems);
172
+ const { dragState, setDragState } = createDataSheetReorder({}, displayItems);
173
173
 
174
174
  // Test "before" position
175
175
  setDragState({
@@ -208,7 +208,7 @@ describe("useDataSheetReorder", () => {
208
208
 
209
209
  const displayItems = () => [];
210
210
 
211
- const { setDragState: _setDragState } = useDataSheetReorder(
211
+ const { setDragState: _setDragState } = createDataSheetReorder(
212
212
  {
213
213
  onItemsReorder: onReorder,
214
214
  },
@@ -228,8 +228,8 @@ describe("useDataSheetReorder", () => {
228
228
 
229
229
  const displayItems = () => [];
230
230
 
231
- const hook1 = useDataSheetReorder({}, displayItems);
232
- const hook2 = useDataSheetReorder({}, displayItems);
231
+ const hook1 = createDataSheetReorder({}, displayItems);
232
+ const hook2 = createDataSheetReorder({}, displayItems);
233
233
 
234
234
  hook1.setDragState({
235
235
  draggingItem: item1,
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { createRoot } from "solid-js";
3
- import { useDataSheetSelection } from "../../../../../src/components/data/sheet/hooks/useDataSheetSelection";
3
+ import { createDataSheetSelection } from "../../../../../src/components/data/sheet/hooks/createDataSheetSelection";
4
4
  import type { FlatItem } from "../../../../../src/components/data/sheet/DataSheet.types";
5
5
 
6
6
  interface TestItem {
@@ -27,10 +27,10 @@ function createTestFlatItems(items: TestItem[]): FlatItem<TestItem>[] {
27
27
  }));
28
28
  }
29
29
 
30
- describe("useDataSheetSelection", () => {
30
+ describe("createDataSheetSelection", () => {
31
31
  it("should initialize with empty selected items by default", () => {
32
32
  createRoot(() => {
33
- const result = useDataSheetSelection({}, () => createTestFlatItems(testItems));
33
+ const result = createDataSheetSelection({}, () => createTestFlatItems(testItems));
34
34
 
35
35
  expect(result.selection()).toEqual([]);
36
36
  });
@@ -39,7 +39,7 @@ describe("useDataSheetSelection", () => {
39
39
  it("should initialize with provided selected items", () => {
40
40
  createRoot(() => {
41
41
  const selection = [testItems[0]];
42
- const result = useDataSheetSelection(
42
+ const result = createDataSheetSelection(
43
43
  { selection },
44
44
  () => createTestFlatItems(testItems),
45
45
  );
@@ -50,7 +50,7 @@ describe("useDataSheetSelection", () => {
50
50
 
51
51
  it("getItemSelectable should return true for selectable items", () => {
52
52
  createRoot(() => {
53
- const result = useDataSheetSelection({}, () => createTestFlatItems(testItems));
53
+ const result = createDataSheetSelection({}, () => createTestFlatItems(testItems));
54
54
 
55
55
  expect(result.getItemSelectable(testItems[0])).toBe(true);
56
56
  });
@@ -59,7 +59,7 @@ describe("useDataSheetSelection", () => {
59
59
  it("getItemSelectable should return disabled string when item is not selectable", () => {
60
60
  createRoot(() => {
61
61
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
62
- const result = useDataSheetSelection(
62
+ const result = createDataSheetSelection(
63
63
  { isItemSelectable },
64
64
  () => createTestFlatItems(testItems),
65
65
  );
@@ -71,7 +71,7 @@ describe("useDataSheetSelection", () => {
71
71
  it("getItemSelectable should return reason string when item is disabled", () => {
72
72
  createRoot(() => {
73
73
  const isItemSelectable = (item: TestItem) => item.disabledReason != null && item.disabledReason !== "" ? item.disabledReason : true;
74
- const result = useDataSheetSelection(
74
+ const result = createDataSheetSelection(
75
75
  { isItemSelectable },
76
76
  () => createTestFlatItems(testItems),
77
77
  );
@@ -82,7 +82,7 @@ describe("useDataSheetSelection", () => {
82
82
 
83
83
  it("toggleSelect should add item in multiple mode", () => {
84
84
  createRoot(() => {
85
- const result = useDataSheetSelection(
85
+ const result = createDataSheetSelection(
86
86
  { selectionMode: "multiple" },
87
87
  () => createTestFlatItems(testItems),
88
88
  );
@@ -95,7 +95,7 @@ describe("useDataSheetSelection", () => {
95
95
 
96
96
  it("toggleSelect should remove item in multiple mode", () => {
97
97
  createRoot(() => {
98
- const result = useDataSheetSelection(
98
+ const result = createDataSheetSelection(
99
99
  { selectionMode: "multiple", selection: [testItems[0]] },
100
100
  () => createTestFlatItems(testItems),
101
101
  );
@@ -108,7 +108,7 @@ describe("useDataSheetSelection", () => {
108
108
 
109
109
  it("toggleSelect should replace selection in single mode", () => {
110
110
  createRoot(() => {
111
- const result = useDataSheetSelection(
111
+ const result = createDataSheetSelection(
112
112
  { selectionMode: "single", selection: [testItems[0]] },
113
113
  () => createTestFlatItems(testItems),
114
114
  );
@@ -121,7 +121,7 @@ describe("useDataSheetSelection", () => {
121
121
 
122
122
  it("toggleSelect should deselect in single mode when toggling selected item", () => {
123
123
  createRoot(() => {
124
- const result = useDataSheetSelection(
124
+ const result = createDataSheetSelection(
125
125
  { selectionMode: "single", selection: [testItems[0]] },
126
126
  () => createTestFlatItems(testItems),
127
127
  );
@@ -135,7 +135,7 @@ describe("useDataSheetSelection", () => {
135
135
  it("toggleSelect should not select non-selectable items", () => {
136
136
  createRoot(() => {
137
137
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
138
- const result = useDataSheetSelection(
138
+ const result = createDataSheetSelection(
139
139
  { isItemSelectable },
140
140
  () => createTestFlatItems(testItems),
141
141
  );
@@ -148,7 +148,7 @@ describe("useDataSheetSelection", () => {
148
148
 
149
149
  it("toggleSelect should update lastClickAction to 'select' when selecting", () => {
150
150
  createRoot(() => {
151
- const result = useDataSheetSelection(
151
+ const result = createDataSheetSelection(
152
152
  { selectionMode: "multiple" },
153
153
  () => createTestFlatItems(testItems),
154
154
  );
@@ -161,7 +161,7 @@ describe("useDataSheetSelection", () => {
161
161
 
162
162
  it("toggleSelect should update lastClickAction to 'deselect' when deselecting", () => {
163
163
  createRoot(() => {
164
- const result = useDataSheetSelection(
164
+ const result = createDataSheetSelection(
165
165
  { selectionMode: "multiple", selection: [testItems[0]] },
166
166
  () => createTestFlatItems(testItems),
167
167
  );
@@ -175,7 +175,7 @@ describe("useDataSheetSelection", () => {
175
175
  it("toggleSelectAll should select all selectable items", () => {
176
176
  createRoot(() => {
177
177
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
178
- const result = useDataSheetSelection(
178
+ const result = createDataSheetSelection(
179
179
  { isItemSelectable },
180
180
  () => createTestFlatItems(testItems),
181
181
  );
@@ -191,7 +191,7 @@ describe("useDataSheetSelection", () => {
191
191
  createRoot(() => {
192
192
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
193
193
  const selectableItems = testItems.filter((i) => i.selectable !== false);
194
- const result = useDataSheetSelection(
194
+ const result = createDataSheetSelection(
195
195
  { isItemSelectable, selection: selectableItems },
196
196
  () => createTestFlatItems(testItems),
197
197
  );
@@ -205,7 +205,7 @@ describe("useDataSheetSelection", () => {
205
205
  it("toggleSelectAll should only select selectable items", () => {
206
206
  createRoot(() => {
207
207
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
208
- const result = useDataSheetSelection(
208
+ const result = createDataSheetSelection(
209
209
  { isItemSelectable },
210
210
  () => createTestFlatItems(testItems),
211
211
  );
@@ -218,7 +218,7 @@ describe("useDataSheetSelection", () => {
218
218
 
219
219
  it("rangeSelect should do nothing if lastClickedRow is null", () => {
220
220
  createRoot(() => {
221
- const result = useDataSheetSelection(
221
+ const result = createDataSheetSelection(
222
222
  { selectionMode: "multiple" },
223
223
  () => createTestFlatItems(testItems),
224
224
  );
@@ -231,7 +231,7 @@ describe("useDataSheetSelection", () => {
231
231
 
232
232
  it("rangeSelect should select items in range when lastClickAction is 'select'", () => {
233
233
  createRoot(() => {
234
- const result = useDataSheetSelection(
234
+ const result = createDataSheetSelection(
235
235
  { selectionMode: "multiple" },
236
236
  () => createTestFlatItems(testItems),
237
237
  );
@@ -249,7 +249,7 @@ describe("useDataSheetSelection", () => {
249
249
 
250
250
  it("rangeSelect should select items in reverse range", () => {
251
251
  createRoot(() => {
252
- const result = useDataSheetSelection(
252
+ const result = createDataSheetSelection(
253
253
  { selectionMode: "multiple" },
254
254
  () => createTestFlatItems(testItems),
255
255
  );
@@ -267,7 +267,7 @@ describe("useDataSheetSelection", () => {
267
267
 
268
268
  it("rangeSelect should deselect items in range when lastClickAction is 'deselect'", () => {
269
269
  createRoot(() => {
270
- const result = useDataSheetSelection(
270
+ const result = createDataSheetSelection(
271
271
  { selectionMode: "multiple", selection: testItems },
272
272
  () => createTestFlatItems(testItems),
273
273
  );
@@ -285,7 +285,7 @@ describe("useDataSheetSelection", () => {
285
285
  it("rangeSelect should only select selectable items in range", () => {
286
286
  createRoot(() => {
287
287
  const isItemSelectable = (item: TestItem): true | string => item.selectable !== false ? true : "disabled";
288
- const result = useDataSheetSelection(
288
+ const result = createDataSheetSelection(
289
289
  { selectionMode: "multiple", isItemSelectable },
290
290
  () => createTestFlatItems(testItems),
291
291
  );
@@ -308,7 +308,7 @@ describe("useDataSheetSelection", () => {
308
308
  lastCalledWith = items;
309
309
  };
310
310
 
311
- const result = useDataSheetSelection(
311
+ const result = createDataSheetSelection(
312
312
  { selectionMode: "multiple", onSelectionChange },
313
313
  () => createTestFlatItems(testItems),
314
314
  );
@@ -321,7 +321,7 @@ describe("useDataSheetSelection", () => {
321
321
 
322
322
  it("should track last clicked row", () => {
323
323
  createRoot(() => {
324
- const result = useDataSheetSelection(
324
+ const result = createDataSheetSelection(
325
325
  { selectionMode: "multiple" },
326
326
  () => createTestFlatItems(testItems),
327
327
  );
@@ -334,7 +334,7 @@ describe("useDataSheetSelection", () => {
334
334
 
335
335
  it("should default to 'select' action", () => {
336
336
  createRoot(() => {
337
- const result = useDataSheetSelection(
337
+ const result = createDataSheetSelection(
338
338
  { selectionMode: "multiple" },
339
339
  () => createTestFlatItems(testItems),
340
340
  );
@@ -346,7 +346,7 @@ describe("useDataSheetSelection", () => {
346
346
  it("treats false return from isItemSelectable as not selectable", () => {
347
347
  createRoot((dispose) => {
348
348
  const flatItems = () => createTestFlatItems(testItems);
349
- const sel = useDataSheetSelection<TestItem>(
349
+ const sel = createDataSheetSelection<TestItem>(
350
350
  {
351
351
  selectionMode: "multiple",
352
352
  isItemSelectable: (item) => (item.selectable === false ? false : true),
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from "vitest";
2
2
  import { createRoot, createSignal } from "solid-js";
3
- import { useDataSheetSorting } from "../../../../../src/components/data/sheet/hooks/useDataSheetSorting";
3
+ import { createDataSheetSorting } from "../../../../../src/components/data/sheet/hooks/createDataSheetSorting";
4
4
  import type { SortingDef } from "../../../../../src/components/data/sheet/DataSheet.types";
5
5
 
6
6
  interface TestItem {
@@ -15,7 +15,7 @@ const testData: TestItem[] = [
15
15
  { id: 3, name: "Charlie", age: 35 },
16
16
  ];
17
17
 
18
- describe("useDataSheetSorting", () => {
18
+ describe("createDataSheetSorting", () => {
19
19
  it("initializes with empty sorts", () => {
20
20
  createRoot(() => {
21
21
  const [sorts, _setSorts] = createSignal<SortingDef[] | undefined>(undefined);
@@ -25,7 +25,7 @@ describe("useDataSheetSorting", () => {
25
25
  const [items] = createSignal<TestItem[] | undefined>(testData);
26
26
  const [autoSort] = createSignal<boolean | undefined>(true);
27
27
 
28
- const { sorts: resultSorts } = useDataSheetSorting({
28
+ const { sorts: resultSorts } = createDataSheetSorting({
29
29
  sorts,
30
30
  onSortsChange,
31
31
  items,
@@ -43,7 +43,7 @@ describe("useDataSheetSorting", () => {
43
43
  const [items] = createSignal<TestItem[] | undefined>(testData);
44
44
  const [autoSort] = createSignal<boolean | undefined>(true);
45
45
 
46
- const { toggleSort, sorts: resultSorts } = useDataSheetSorting({
46
+ const { toggleSort, sorts: resultSorts } = createDataSheetSorting({
47
47
  sorts,
48
48
  onSortsChange,
49
49
  items,
@@ -63,7 +63,7 @@ describe("useDataSheetSorting", () => {
63
63
  const [items] = createSignal<TestItem[] | undefined>(testData);
64
64
  const [autoSort] = createSignal<boolean | undefined>(true);
65
65
 
66
- const { toggleSort, sorts: resultSorts } = useDataSheetSorting({
66
+ const { toggleSort, sorts: resultSorts } = createDataSheetSorting({
67
67
  sorts,
68
68
  onSortsChange,
69
69
  items,
@@ -91,7 +91,7 @@ describe("useDataSheetSorting", () => {
91
91
  const [items] = createSignal<TestItem[] | undefined>(testData);
92
92
  const [autoSort] = createSignal<boolean | undefined>(true);
93
93
 
94
- const { toggleSort, sorts: resultSorts } = useDataSheetSorting({
94
+ const { toggleSort, sorts: resultSorts } = createDataSheetSorting({
95
95
  sorts,
96
96
  onSortsChange,
97
97
  items,
@@ -125,7 +125,7 @@ describe("useDataSheetSorting", () => {
125
125
  const [items] = createSignal<TestItem[] | undefined>(testData);
126
126
  const [autoSort] = createSignal<boolean | undefined>(true);
127
127
 
128
- const { sortIndex } = useDataSheetSorting({
128
+ const { sortIndex } = createDataSheetSorting({
129
129
  sorts,
130
130
  onSortsChange,
131
131
  items,
@@ -147,7 +147,7 @@ describe("useDataSheetSorting", () => {
147
147
  const [items] = createSignal<TestItem[] | undefined>(testData);
148
148
  const [autoSort] = createSignal<boolean | undefined>(true);
149
149
 
150
- const { sortIndex } = useDataSheetSorting({
150
+ const { sortIndex } = createDataSheetSorting({
151
151
  sorts,
152
152
  onSortsChange,
153
153
  items,
@@ -168,7 +168,7 @@ describe("useDataSheetSorting", () => {
168
168
  const [items] = createSignal<TestItem[] | undefined>(testData);
169
169
  const [autoSort] = createSignal<boolean | undefined>(true);
170
170
 
171
- const { sortedItems } = useDataSheetSorting({
171
+ const { sortedItems } = createDataSheetSorting({
172
172
  sorts,
173
173
  onSortsChange,
174
174
  items,
@@ -190,7 +190,7 @@ describe("useDataSheetSorting", () => {
190
190
  const [items] = createSignal<TestItem[] | undefined>(testData);
191
191
  const [autoSort] = createSignal<boolean | undefined>(false);
192
192
 
193
- const { sortedItems } = useDataSheetSorting({
193
+ const { sortedItems } = createDataSheetSorting({
194
194
  sorts,
195
195
  onSortsChange,
196
196
  items,
@@ -210,7 +210,7 @@ describe("useDataSheetSorting", () => {
210
210
  const [items] = createSignal<TestItem[] | undefined>(testData);
211
211
  const [autoSort] = createSignal<boolean | undefined>(true);
212
212
 
213
- const { sortedItems } = useDataSheetSorting({
213
+ const { sortedItems } = createDataSheetSorting({
214
214
  sorts,
215
215
  onSortsChange,
216
216
  items,
@@ -241,7 +241,7 @@ describe("useDataSheetSorting", () => {
241
241
  const [items] = createSignal<TestItem[] | undefined>(multiData);
242
242
  const [autoSort] = createSignal<boolean | undefined>(true);
243
243
 
244
- const { sortedItems } = useDataSheetSorting({
244
+ const { sortedItems } = createDataSheetSorting({
245
245
  sorts,
246
246
  onSortsChange,
247
247
  items,
@@ -266,7 +266,7 @@ describe("useDataSheetSorting", () => {
266
266
  const [items] = createSignal<TestItem[] | undefined>(undefined);
267
267
  const [autoSort] = createSignal<boolean | undefined>(true);
268
268
 
269
- const { sortedItems } = useDataSheetSorting({
269
+ const { sortedItems } = createDataSheetSorting({
270
270
  sorts,
271
271
  onSortsChange,
272
272
  items,
@@ -87,10 +87,10 @@ describe("Dialog", () => {
87
87
  });
88
88
  });
89
89
 
90
- it("hides close button when closable={false}", async () => {
90
+ it("hides close button when withCloseButton={false}", async () => {
91
91
  render(() => (
92
92
  <ConfigProvider clientName="test"><I18nProvider>
93
- <Dialog open={true} closable={false}>
93
+ <Dialog open={true} withCloseButton={false}>
94
94
  <Dialog.Header>테스트</Dialog.Header>
95
95
  <div>내용</div>
96
96
  </Dialog>
@@ -26,8 +26,11 @@ function createTestLoad() {
26
26
  return loadFn;
27
27
  }
28
28
 
29
+ // Full props type for the test dialog component
30
+ type TestDialogComponentProps = SelectDialogBaseProps<number> & { confirmKeys: number[] };
31
+
29
32
  // Dialog component for tests — uses close prop directly
30
- function TestDialogComponent(props: SelectDialogBaseProps<number> & { confirmKeys: number[] }) {
33
+ function TestDialogComponent(props: TestDialogComponentProps) {
31
34
  return (
32
35
  <div data-testid="dialog-content">
33
36
  <div data-testid="select-mode">{props.selectionMode}</div>
@@ -94,7 +97,7 @@ describe("DataSelectButton", () => {
94
97
  it("loads and displays multiple selected items", async () => {
95
98
  const load = createTestLoad();
96
99
  const { findByText } = renderWithDialog(() => (
97
- <DataSelectButton
100
+ <DataSelectButton<TestItem, number, TestDialogComponentProps>
98
101
  value={[1, 3]}
99
102
  multiple
100
103
  load={load}
@@ -199,7 +202,7 @@ describe("DataSelectButton", () => {
199
202
  const onValueChange = vi.fn();
200
203
 
201
204
  const { container, findByText } = renderWithDialog(() => (
202
- <DataSelectButton
205
+ <DataSelectButton<TestItem, number, TestDialogComponentProps>
203
206
  value={[1, 2]}
204
207
  multiple
205
208
  onValueChange={onValueChange}
@@ -286,7 +289,7 @@ describe("DataSelectButton", () => {
286
289
  const onValueChange = vi.fn();
287
290
 
288
291
  const { container } = renderWithDialog(() => (
289
- <DataSelectButton
292
+ <DataSelectButton<TestItem, number, TestDialogComponentProps>
290
293
  multiple
291
294
  onValueChange={onValueChange}
292
295
  load={load}
@@ -501,8 +504,8 @@ describe("DataSelectButton", () => {
501
504
  const load = createTestLoad();
502
505
 
503
506
  const { container } = renderWithDialog(() => (
504
- <DataSelectButton
505
- value={1}
507
+ <DataSelectButton<TestItem, number, TestDialogComponentProps>
508
+ value={[1]}
506
509
  multiple
507
510
  load={load}
508
511
  dialog={TestDialogComponent}
@@ -523,3 +526,49 @@ describe("DataSelectButton", () => {
523
526
  });
524
527
  });
525
528
  });
529
+
530
+ describe("DataSelectButton type safety", () => {
531
+ beforeEach(() => {
532
+ localStorage.setItem("test.i18n-locale", JSON.stringify("en"));
533
+ });
534
+
535
+ afterEach(() => {
536
+ cleanup();
537
+ });
538
+
539
+ it("single mode types value as TKey", () => {
540
+ const load = createTestLoad();
541
+ // Single mode: value is number, onValueChange receives number | undefined
542
+ const onValueChange = vi.fn<(v: number | undefined) => void>();
543
+ renderWithDialog(() => (
544
+ <DataSelectButton
545
+ value={1}
546
+ onValueChange={onValueChange}
547
+ load={load}
548
+ dialog={TestDialogComponent}
549
+ dialogProps={{ confirmKeys: [] }}
550
+ renderItem={(item: TestItem) => <span>{item.name}</span>}
551
+ />
552
+ ));
553
+ // If this compiles, single mode type is correct
554
+ expect(true).toBe(true);
555
+ });
556
+
557
+ it("multiple mode types value as TKey[]", () => {
558
+ const load = createTestLoad();
559
+ // Multiple mode: value is number[], onValueChange receives number[]
560
+ const onValueChange = vi.fn<(v: number[]) => void>();
561
+ renderWithDialog(() => (
562
+ <DataSelectButton<TestItem, number, TestDialogComponentProps>
563
+ multiple
564
+ value={[1, 2]}
565
+ onValueChange={onValueChange}
566
+ load={load}
567
+ dialog={TestDialogComponent}
568
+ dialogProps={{ confirmKeys: [] }}
569
+ renderItem={(item: TestItem) => <span>{item.name}</span>}
570
+ />
571
+ ));
572
+ expect(true).toBe(true);
573
+ });
574
+ });
@@ -166,3 +166,43 @@ describe("SharedDataSelect", () => {
166
166
  });
167
167
  });
168
168
  });
169
+
170
+ describe("SharedDataSelect type safety", () => {
171
+ beforeEach(() => {
172
+ localStorage.setItem("test.i18n-locale", JSON.stringify("en"));
173
+ });
174
+
175
+ afterEach(() => {
176
+ cleanup();
177
+ });
178
+
179
+ it("single mode types value as TKey", () => {
180
+ const [items] = createSignal(testItems);
181
+ const accessor = createMockAccessor(items);
182
+ const onValueChange = vi.fn<(v: number | undefined) => void>();
183
+
184
+ renderWithDialog(() => (
185
+ <SharedDataSelect data={accessor} value={1} onValueChange={onValueChange}>
186
+ <SharedDataSelect.ItemTemplate>
187
+ {(item: TestItem) => <span>{item.name}</span>}
188
+ </SharedDataSelect.ItemTemplate>
189
+ </SharedDataSelect>
190
+ ));
191
+ expect(true).toBe(true);
192
+ });
193
+
194
+ it("multiple mode types value as TKey[]", () => {
195
+ const [items] = createSignal(testItems);
196
+ const accessor = createMockAccessor(items);
197
+ const onValueChange = vi.fn<(v: number[]) => void>();
198
+
199
+ renderWithDialog(() => (
200
+ <SharedDataSelect multiple data={accessor} value={[1, 2]} onValueChange={onValueChange}>
201
+ <SharedDataSelect.ItemTemplate>
202
+ {(item: TestItem) => <span>{item.name}</span>}
203
+ </SharedDataSelect.ItemTemplate>
204
+ </SharedDataSelect>
205
+ ));
206
+ expect(true).toBe(true);
207
+ });
208
+ });
@@ -45,13 +45,13 @@ describe("Checkbox component", () => {
45
45
 
46
46
  describe("controlled pattern", () => {
47
47
  it("reflects value prop as checked state", () => {
48
- const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox value={true} /></I18nProvider></ConfigProvider>);
48
+ const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox checked={true} /></I18nProvider></ConfigProvider>);
49
49
  expect(getByRole("checkbox").getAttribute("aria-checked")).toBe("true");
50
50
  });
51
51
 
52
- it("calls onValueChange on click", () => {
52
+ it("calls onCheckedChange on click", () => {
53
53
  const handleChange = vi.fn();
54
- const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox value={false} onValueChange={handleChange} /></I18nProvider></ConfigProvider>);
54
+ const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox checked={false} onCheckedChange={handleChange} /></I18nProvider></ConfigProvider>);
55
55
 
56
56
  fireEvent.click(getByRole("checkbox"));
57
57
  expect(handleChange).toHaveBeenCalledWith(true);
@@ -59,7 +59,7 @@ describe("Checkbox component", () => {
59
59
 
60
60
  it("updates when external state changes", () => {
61
61
  const [value, setValue] = createSignal(false);
62
- const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox value={value()} onValueChange={setValue} /></I18nProvider></ConfigProvider>);
62
+ const { getByRole } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox checked={value()} onCheckedChange={setValue} /></I18nProvider></ConfigProvider>);
63
63
 
64
64
  expect(getByRole("checkbox").getAttribute("aria-checked")).toBe("false");
65
65
 
@@ -70,25 +70,25 @@ describe("Checkbox component", () => {
70
70
 
71
71
  describe("validation", () => {
72
72
  it("sets error message when required and unchecked", () => {
73
- const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox required value={false} /></I18nProvider></ConfigProvider>);
73
+ const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox required checked={false} /></I18nProvider></ConfigProvider>);
74
74
  const hiddenInput = container.querySelector("input[aria-hidden='true']") as HTMLInputElement;
75
75
  expect(hiddenInput.validationMessage).toBe("This is a required selection");
76
76
  });
77
77
 
78
78
  it("is valid when required and checked", () => {
79
- const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox required value={true} /></I18nProvider></ConfigProvider>);
79
+ const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox required checked={true} /></I18nProvider></ConfigProvider>);
80
80
  const hiddenInput = container.querySelector("input[aria-hidden='true']") as HTMLInputElement;
81
81
  expect(hiddenInput.validity.valid).toBe(true);
82
82
  });
83
83
 
84
84
  it("sets error message returned by validate function", () => {
85
- const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox value={true} validate={() => "커스텀 에러"} /></I18nProvider></ConfigProvider>);
85
+ const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox checked={true} validate={() => "커스텀 에러"} /></I18nProvider></ConfigProvider>);
86
86
  const hiddenInput = container.querySelector("input[aria-hidden='true']") as HTMLInputElement;
87
87
  expect(hiddenInput.validationMessage).toBe("커스텀 에러");
88
88
  });
89
89
 
90
90
  it("is valid when validate function returns undefined", () => {
91
- const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox value={true} validate={() => undefined} /></I18nProvider></ConfigProvider>);
91
+ const { container } = render(() => <ConfigProvider clientName="test"><I18nProvider><Checkbox checked={true} validate={() => undefined} /></I18nProvider></ConfigProvider>);
92
92
  const hiddenInput = container.querySelector("input[aria-hidden='true']") as HTMLInputElement;
93
93
  expect(hiddenInput.validity.valid).toBe(true);
94
94
  });