@proyecto-viviana/solid-stately 0.2.4 → 0.3.0

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 (243) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -283
  3. package/dist/autocomplete/createAutocompleteState.d.ts +3 -2
  4. package/dist/autocomplete/index.d.ts +1 -1
  5. package/dist/calendar/createCalendarState.d.ts +22 -7
  6. package/dist/calendar/createDateFieldState.d.ts +30 -7
  7. package/dist/calendar/createDatePickerState.d.ts +60 -0
  8. package/dist/calendar/createRangeCalendarState.d.ts +27 -8
  9. package/dist/calendar/createTimeFieldState.d.ts +34 -7
  10. package/dist/calendar/index.d.ts +7 -6
  11. package/dist/checkbox/createCheckboxGroupState.d.ts +12 -3
  12. package/dist/checkbox/index.d.ts +1 -1
  13. package/dist/collections/ListCollection.d.ts +1 -1
  14. package/dist/collections/createListState.d.ts +8 -8
  15. package/dist/collections/createMenuState.d.ts +7 -7
  16. package/dist/collections/createSelectionState.d.ts +5 -5
  17. package/dist/collections/index.d.ts +5 -5
  18. package/dist/collections/types.d.ts +23 -12
  19. package/dist/color/Color.d.ts +1 -1
  20. package/dist/color/createColorAreaState.d.ts +4 -2
  21. package/dist/color/createColorFieldState.d.ts +38 -12
  22. package/dist/color/createColorSliderState.d.ts +9 -2
  23. package/dist/color/createColorWheelState.d.ts +13 -2
  24. package/dist/color/getColorChannels.d.ts +20 -0
  25. package/dist/color/index.d.ts +6 -6
  26. package/dist/color/types.d.ts +4 -4
  27. package/dist/combobox/createComboBoxState.d.ts +27 -13
  28. package/dist/combobox/index.d.ts +1 -1
  29. package/dist/data/createAsyncList.d.ts +111 -0
  30. package/dist/data/createListData.d.ts +65 -0
  31. package/dist/data/createTreeData.d.ts +65 -0
  32. package/dist/data/index.d.ts +3 -0
  33. package/dist/datepicker/index.d.ts +8 -0
  34. package/dist/disclosure/createDisclosureState.d.ts +2 -2
  35. package/dist/disclosure/index.d.ts +1 -1
  36. package/dist/dnd/createDragState.d.ts +2 -2
  37. package/dist/dnd/createDraggableCollectionState.d.ts +2 -2
  38. package/dist/dnd/createDropState.d.ts +2 -2
  39. package/dist/dnd/createDroppableCollectionState.d.ts +3 -3
  40. package/dist/dnd/index.d.ts +5 -5
  41. package/dist/dnd/types.d.ts +16 -16
  42. package/dist/form/createFormValidationState.d.ts +3 -3
  43. package/dist/form/index.d.ts +1 -1
  44. package/dist/grid/createGridState.d.ts +2 -2
  45. package/dist/grid/index.d.ts +2 -2
  46. package/dist/grid/types.d.ts +17 -11
  47. package/dist/index.d.ts +31 -25
  48. package/dist/index.js +7990 -6264
  49. package/dist/index.js.map +1 -7
  50. package/dist/menu/index.d.ts +8 -0
  51. package/dist/numberfield/createNumberFieldState.d.ts +2 -2
  52. package/dist/numberfield/index.d.ts +1 -1
  53. package/dist/overlays/createOverlayTriggerState.d.ts +2 -2
  54. package/dist/overlays/index.d.ts +1 -1
  55. package/dist/radio/createRadioGroupState.d.ts +13 -4
  56. package/dist/radio/index.d.ts +1 -1
  57. package/dist/searchfield/createSearchFieldState.d.ts +2 -2
  58. package/dist/searchfield/index.d.ts +2 -2
  59. package/dist/select/createSelectState.d.ts +20 -3
  60. package/dist/select/index.d.ts +1 -1
  61. package/dist/selection/index.d.ts +11 -0
  62. package/dist/slider/createSliderState.d.ts +3 -3
  63. package/dist/slider/index.d.ts +2 -2
  64. package/dist/steplist/createStepListState.d.ts +48 -0
  65. package/dist/steplist/index.d.ts +1 -0
  66. package/dist/table/TableCollection.d.ts +3 -3
  67. package/dist/table/createTableColumnResizeState.d.ts +54 -0
  68. package/dist/table/createTableState.d.ts +2 -2
  69. package/dist/table/index.d.ts +5 -3
  70. package/dist/table/types.d.ts +10 -10
  71. package/dist/tabs/createTabListState.d.ts +5 -5
  72. package/dist/tabs/index.d.ts +1 -1
  73. package/dist/textfield/createTextFieldState.d.ts +2 -2
  74. package/dist/textfield/index.d.ts +1 -1
  75. package/dist/toast/createToastState.d.ts +15 -3
  76. package/dist/toast/index.d.ts +1 -1
  77. package/dist/toggle/createToggleGroupState.d.ts +45 -0
  78. package/dist/toggle/createToggleState.d.ts +2 -2
  79. package/dist/toggle/index.d.ts +2 -1
  80. package/dist/tooltip/createTooltipTriggerState.d.ts +2 -2
  81. package/dist/tooltip/index.d.ts +1 -1
  82. package/dist/tree/TreeCollection.d.ts +5 -4
  83. package/dist/tree/createTreeState.d.ts +2 -2
  84. package/dist/tree/index.d.ts +3 -3
  85. package/dist/tree/types.d.ts +19 -13
  86. package/dist/utils/index.d.ts +1 -1
  87. package/dist/utils/reactivity.d.ts +1 -1
  88. package/package.json +30 -30
  89. package/src/autocomplete/createAutocompleteState.d.ts +19 -17
  90. package/src/autocomplete/createAutocompleteState.ts +25 -32
  91. package/src/autocomplete/index.d.ts +6 -2
  92. package/src/autocomplete/index.ts +1 -1
  93. package/src/calendar/createCalendarState.d.ts +139 -117
  94. package/src/calendar/createCalendarState.ts +221 -74
  95. package/src/calendar/createDateFieldState.d.ts +130 -95
  96. package/src/calendar/createDateFieldState.ts +286 -151
  97. package/src/calendar/createDatePickerState.ts +347 -0
  98. package/src/calendar/createRangeCalendarState.d.ts +154 -129
  99. package/src/calendar/createRangeCalendarState.ts +293 -79
  100. package/src/calendar/createTimeFieldState.d.ts +81 -79
  101. package/src/calendar/createTimeFieldState.ts +187 -108
  102. package/src/calendar/index.d.ts +80 -7
  103. package/src/calendar/index.ts +21 -12
  104. package/src/checkbox/createCheckboxGroupState.d.ts +57 -55
  105. package/src/checkbox/createCheckboxGroupState.ts +57 -30
  106. package/src/checkbox/index.d.ts +6 -2
  107. package/src/checkbox/index.ts +1 -1
  108. package/src/collections/ListCollection.d.ts +25 -22
  109. package/src/collections/ListCollection.ts +152 -146
  110. package/src/collections/createListState.d.ts +73 -58
  111. package/src/collections/createListState.ts +267 -264
  112. package/src/collections/createMenuState.d.ts +36 -31
  113. package/src/collections/createMenuState.ts +112 -106
  114. package/src/collections/createSelectionState.d.ts +78 -65
  115. package/src/collections/createSelectionState.ts +340 -336
  116. package/src/collections/index.d.ts +38 -6
  117. package/src/collections/index.ts +41 -46
  118. package/src/collections/types.d.ts +101 -101
  119. package/src/collections/types.ts +181 -169
  120. package/src/color/Color.d.ts +20 -5
  121. package/src/color/Color.ts +1054 -951
  122. package/src/color/createColorAreaState.d.ts +67 -65
  123. package/src/color/createColorAreaState.ts +301 -293
  124. package/src/color/createColorFieldState.d.ts +46 -44
  125. package/src/color/createColorFieldState.ts +428 -292
  126. package/src/color/createColorSliderState.d.ts +58 -56
  127. package/src/color/createColorSliderState.ts +272 -241
  128. package/src/color/createColorWheelState.d.ts +42 -40
  129. package/src/color/createColorWheelState.ts +248 -211
  130. package/src/color/getColorChannels.ts +36 -0
  131. package/src/color/index.d.ts +36 -7
  132. package/src/color/index.ts +44 -47
  133. package/src/color/types.d.ts +68 -63
  134. package/src/color/types.ts +119 -127
  135. package/src/combobox/createComboBoxState.d.ts +107 -105
  136. package/src/combobox/createComboBoxState.ts +790 -703
  137. package/src/combobox/index.d.ts +10 -2
  138. package/src/combobox/index.ts +13 -13
  139. package/src/data/createAsyncList.ts +403 -0
  140. package/src/data/createListData.ts +298 -0
  141. package/src/data/createTreeData.ts +646 -0
  142. package/src/data/index.ts +25 -0
  143. package/src/datepicker/index.ts +32 -0
  144. package/src/disclosure/createDisclosureState.d.ts +47 -43
  145. package/src/disclosure/createDisclosureState.ts +9 -23
  146. package/src/disclosure/index.d.ts +10 -2
  147. package/src/disclosure/index.ts +1 -1
  148. package/src/dnd/createDragState.d.ts +51 -42
  149. package/src/dnd/createDragState.ts +151 -153
  150. package/src/dnd/createDraggableCollectionState.d.ts +52 -41
  151. package/src/dnd/createDraggableCollectionState.ts +158 -165
  152. package/src/dnd/createDropState.d.ts +64 -45
  153. package/src/dnd/createDropState.ts +202 -212
  154. package/src/dnd/createDroppableCollectionState.d.ts +88 -59
  155. package/src/dnd/createDroppableCollectionState.ts +354 -357
  156. package/src/dnd/index.d.ts +54 -6
  157. package/src/dnd/index.ts +63 -76
  158. package/src/dnd/types.d.ts +167 -156
  159. package/src/dnd/types.ts +316 -317
  160. package/src/form/createFormValidationState.d.ts +47 -45
  161. package/src/form/createFormValidationState.ts +356 -389
  162. package/src/form/index.d.ts +16 -2
  163. package/src/form/index.ts +15 -15
  164. package/src/grid/createGridState.d.ts +7 -4
  165. package/src/grid/createGridState.ts +44 -51
  166. package/src/grid/index.d.ts +3 -3
  167. package/src/grid/index.ts +2 -8
  168. package/src/grid/types.d.ts +136 -129
  169. package/src/grid/types.ts +24 -17
  170. package/src/index.d.ts +310 -26
  171. package/src/index.ts +87 -79
  172. package/src/menu/index.ts +17 -0
  173. package/src/numberfield/createNumberFieldState.d.ts +56 -54
  174. package/src/numberfield/createNumberFieldState.ts +422 -383
  175. package/src/numberfield/index.d.ts +6 -2
  176. package/src/numberfield/index.ts +5 -5
  177. package/src/overlays/createOverlayTriggerState.d.ts +22 -20
  178. package/src/overlays/createOverlayTriggerState.ts +66 -67
  179. package/src/overlays/index.d.ts +6 -2
  180. package/src/overlays/index.ts +5 -5
  181. package/src/radio/createRadioGroupState.d.ts +54 -52
  182. package/src/radio/createRadioGroupState.ts +66 -30
  183. package/src/radio/index.d.ts +7 -2
  184. package/src/radio/index.ts +1 -1
  185. package/src/searchfield/createSearchFieldState.d.ts +16 -14
  186. package/src/searchfield/createSearchFieldState.ts +56 -62
  187. package/src/searchfield/index.d.ts +3 -3
  188. package/src/searchfield/index.ts +2 -5
  189. package/src/select/createSelectState.d.ts +63 -61
  190. package/src/select/createSelectState.ts +290 -181
  191. package/src/select/index.d.ts +2 -2
  192. package/src/select/index.ts +1 -5
  193. package/src/selection/index.ts +27 -0
  194. package/src/slider/createSliderState.d.ts +60 -60
  195. package/src/slider/createSliderState.ts +233 -211
  196. package/src/slider/index.d.ts +3 -3
  197. package/src/slider/index.ts +2 -6
  198. package/src/ssr/index.d.ts +1 -1
  199. package/src/ssr/index.ts +2 -2
  200. package/src/steplist/createStepListState.ts +191 -0
  201. package/src/steplist/index.ts +5 -0
  202. package/src/table/TableCollection.d.ts +42 -40
  203. package/src/table/TableCollection.ts +61 -64
  204. package/src/table/createTableColumnResizeState.ts +242 -0
  205. package/src/table/createTableState.d.ts +7 -4
  206. package/src/table/createTableState.ts +10 -7
  207. package/src/table/index.d.ts +14 -4
  208. package/src/table/index.ts +10 -3
  209. package/src/table/types.d.ts +98 -92
  210. package/src/table/types.ts +17 -13
  211. package/src/tabs/createTabListState.d.ts +59 -57
  212. package/src/tabs/createTabListState.ts +58 -39
  213. package/src/tabs/index.d.ts +8 -2
  214. package/src/tabs/index.ts +1 -1
  215. package/src/textfield/createTextFieldState.d.ts +16 -14
  216. package/src/textfield/createTextFieldState.ts +7 -18
  217. package/src/textfield/index.d.ts +6 -2
  218. package/src/textfield/index.ts +1 -1
  219. package/src/toast/createToastState.d.ts +92 -81
  220. package/src/toast/createToastState.ts +56 -44
  221. package/src/toast/index.d.ts +12 -2
  222. package/src/toast/index.ts +1 -1
  223. package/src/toggle/createToggleGroupState.ts +117 -0
  224. package/src/toggle/createToggleState.d.ts +19 -19
  225. package/src/toggle/createToggleState.ts +2 -16
  226. package/src/toggle/index.d.ts +2 -2
  227. package/src/toggle/index.ts +6 -4
  228. package/src/tooltip/createTooltipTriggerState.d.ts +17 -17
  229. package/src/tooltip/createTooltipTriggerState.ts +184 -183
  230. package/src/tooltip/index.d.ts +7 -2
  231. package/src/tooltip/index.ts +6 -6
  232. package/src/tree/TreeCollection.d.ts +26 -23
  233. package/src/tree/TreeCollection.ts +215 -175
  234. package/src/tree/createTreeState.d.ts +7 -4
  235. package/src/tree/createTreeState.ts +390 -392
  236. package/src/tree/index.d.ts +10 -4
  237. package/src/tree/index.ts +13 -13
  238. package/src/tree/types.d.ts +131 -126
  239. package/src/tree/types.ts +183 -174
  240. package/src/utils/index.d.ts +2 -2
  241. package/src/utils/index.ts +1 -1
  242. package/src/utils/reactivity.d.ts +2 -2
  243. package/src/utils/reactivity.ts +3 -3
@@ -2,63 +2,67 @@
2
2
  * Disclosure state management for SolidJS
3
3
  * Based on @react-stately/disclosure useDisclosureState and useDisclosureGroupState
4
4
  */
5
- import { type Accessor } from 'solid-js';
6
- import { type MaybeAccessor } from '../utils';
5
+ import { type Accessor } from "solid-js";
6
+ import { type MaybeAccessor } from "../utils";
7
7
  export interface DisclosureStateProps {
8
- /** Whether the disclosure is expanded (controlled). */
9
- isExpanded?: boolean;
10
- /** Whether the disclosure is expanded by default (uncontrolled). */
11
- defaultExpanded?: boolean;
12
- /** Handler that is called when the disclosure expanded state changes. */
13
- onExpandedChange?: (isExpanded: boolean) => void;
8
+ /** Whether the disclosure is expanded (controlled). */
9
+ isExpanded?: boolean;
10
+ /** Whether the disclosure is expanded by default (uncontrolled). */
11
+ defaultExpanded?: boolean;
12
+ /** Handler that is called when the disclosure expanded state changes. */
13
+ onExpandedChange?: (isExpanded: boolean) => void;
14
14
  }
15
15
  export interface DisclosureState {
16
- /** Whether the disclosure is currently expanded. */
17
- readonly isExpanded: Accessor<boolean>;
18
- /** Sets whether the disclosure is expanded. */
19
- setExpanded(isExpanded: boolean): void;
20
- /** Expand the disclosure. */
21
- expand(): void;
22
- /** Collapse the disclosure. */
23
- collapse(): void;
24
- /** Toggles the disclosure's visibility. */
25
- toggle(): void;
16
+ /** Whether the disclosure is currently expanded. */
17
+ readonly isExpanded: Accessor<boolean>;
18
+ /** Sets whether the disclosure is expanded. */
19
+ setExpanded(isExpanded: boolean): void;
20
+ /** Expand the disclosure. */
21
+ expand(): void;
22
+ /** Collapse the disclosure. */
23
+ collapse(): void;
24
+ /** Toggles the disclosure's visibility. */
25
+ toggle(): void;
26
26
  }
27
27
  /**
28
28
  * Manages state for a disclosure widget. Tracks whether the disclosure is expanded,
29
29
  * and provides methods to toggle this state.
30
30
  */
31
- export declare function createDisclosureState(props?: MaybeAccessor<DisclosureStateProps>): DisclosureState;
31
+ export declare function createDisclosureState(
32
+ props?: MaybeAccessor<DisclosureStateProps>,
33
+ ): DisclosureState;
32
34
  export type Key = string | number;
33
35
  export interface DisclosureGroupStateProps {
34
- /** Whether multiple items can be expanded at the same time. */
35
- allowsMultipleExpanded?: boolean;
36
- /** Whether all items are disabled. */
37
- isDisabled?: boolean;
38
- /** The currently expanded keys in the group (controlled). */
39
- expandedKeys?: Iterable<Key>;
40
- /** The initial expanded keys in the group (uncontrolled). */
41
- defaultExpandedKeys?: Iterable<Key>;
42
- /** Handler that is called when items are expanded or collapsed. */
43
- onExpandedChange?: (keys: Set<Key>) => void;
36
+ /** Whether multiple items can be expanded at the same time. */
37
+ allowsMultipleExpanded?: boolean;
38
+ /** Whether all items are disabled. */
39
+ isDisabled?: boolean;
40
+ /** The currently expanded keys in the group (controlled). */
41
+ expandedKeys?: Iterable<Key>;
42
+ /** The initial expanded keys in the group (uncontrolled). */
43
+ defaultExpandedKeys?: Iterable<Key>;
44
+ /** Handler that is called when items are expanded or collapsed. */
45
+ onExpandedChange?: (keys: Set<Key>) => void;
44
46
  }
45
47
  export interface DisclosureGroupState {
46
- /** Whether multiple items can be expanded at the same time. */
47
- readonly allowsMultipleExpanded: boolean;
48
- /** Whether all items are disabled. */
49
- readonly isDisabled: boolean;
50
- /** A set of keys for items that are expanded. */
51
- readonly expandedKeys: Accessor<Set<Key>>;
52
- /** Toggles the expanded state for an item by its key. */
53
- toggleKey(key: Key): void;
54
- /** Replaces the set of expanded keys. */
55
- setExpandedKeys(keys: Set<Key>): void;
56
- /** Check if a specific key is expanded. */
57
- isExpanded(key: Key): boolean;
48
+ /** Whether multiple items can be expanded at the same time. */
49
+ readonly allowsMultipleExpanded: boolean;
50
+ /** Whether all items are disabled. */
51
+ readonly isDisabled: boolean;
52
+ /** A set of keys for items that are expanded. */
53
+ readonly expandedKeys: Accessor<Set<Key>>;
54
+ /** Toggles the expanded state for an item by its key. */
55
+ toggleKey(key: Key): void;
56
+ /** Replaces the set of expanded keys. */
57
+ setExpandedKeys(keys: Set<Key>): void;
58
+ /** Check if a specific key is expanded. */
59
+ isExpanded(key: Key): boolean;
58
60
  }
59
61
  /**
60
62
  * Manages state for a group of disclosures, e.g. an accordion.
61
63
  * It supports both single and multiple expanded items.
62
64
  */
63
- export declare function createDisclosureGroupState(props?: MaybeAccessor<DisclosureGroupStateProps>): DisclosureGroupState;
64
- //# sourceMappingURL=createDisclosureState.d.ts.map
65
+ export declare function createDisclosureGroupState(
66
+ props?: MaybeAccessor<DisclosureGroupStateProps>,
67
+ ): DisclosureGroupState;
68
+ //# sourceMappingURL=createDisclosureState.d.ts.map
@@ -3,12 +3,8 @@
3
3
  * Based on @react-stately/disclosure useDisclosureState and useDisclosureGroupState
4
4
  */
5
5
 
6
- import { createSignal, createEffect, type Accessor } from 'solid-js';
7
- import { access, type MaybeAccessor } from '../utils';
8
-
9
- // ============================================
10
- // SINGLE DISCLOSURE STATE
11
- // ============================================
6
+ import { createSignal, createEffect, createMemo, type Accessor } from "solid-js";
7
+ import { access, type MaybeAccessor } from "../utils";
12
8
 
13
9
  export interface DisclosureStateProps {
14
10
  /** Whether the disclosure is expanded (controlled). */
@@ -37,16 +33,14 @@ export interface DisclosureState {
37
33
  * and provides methods to toggle this state.
38
34
  */
39
35
  export function createDisclosureState(
40
- props: MaybeAccessor<DisclosureStateProps> = {}
36
+ props: MaybeAccessor<DisclosureStateProps> = {},
41
37
  ): DisclosureState {
42
38
  const propsAccessor = () => access(props);
43
39
 
44
- // Internal state for uncontrolled mode
45
40
  const [internalExpanded, setInternalExpanded] = createSignal(
46
- propsAccessor().defaultExpanded ?? false
41
+ propsAccessor().defaultExpanded ?? false,
47
42
  );
48
43
 
49
- // Determine if expanded (controlled vs uncontrolled)
50
44
  const isExpanded: Accessor<boolean> = () => {
51
45
  const p = propsAccessor();
52
46
  return p.isExpanded !== undefined ? p.isExpanded : internalExpanded();
@@ -73,10 +67,6 @@ export function createDisclosureState(
73
67
  };
74
68
  }
75
69
 
76
- // ============================================
77
- // DISCLOSURE GROUP STATE (Accordion)
78
- // ============================================
79
-
80
70
  export type Key = string | number;
81
71
 
82
72
  export interface DisclosureGroupStateProps {
@@ -112,20 +102,18 @@ export interface DisclosureGroupState {
112
102
  * It supports both single and multiple expanded items.
113
103
  */
114
104
  export function createDisclosureGroupState(
115
- props: MaybeAccessor<DisclosureGroupStateProps> = {}
105
+ props: MaybeAccessor<DisclosureGroupStateProps> = {},
116
106
  ): DisclosureGroupState {
117
107
  const propsAccessor = () => access(props);
118
108
 
119
- // Internal state for uncontrolled mode
120
109
  const [internalKeys, setInternalKeys] = createSignal<Set<Key>>(
121
- new Set(propsAccessor().defaultExpandedKeys ?? [])
110
+ new Set(propsAccessor().defaultExpandedKeys ?? []),
122
111
  );
123
112
 
124
- // Determine expanded keys (controlled vs uncontrolled)
125
- const expandedKeys: Accessor<Set<Key>> = () => {
113
+ const expandedKeys: Accessor<Set<Key>> = createMemo(() => {
126
114
  const p = propsAccessor();
127
115
  return p.expandedKeys !== undefined ? new Set(p.expandedKeys) : internalKeys();
128
- };
116
+ });
129
117
 
130
118
  const setExpandedKeys = (keys: Set<Key>) => {
131
119
  const p = propsAccessor();
@@ -135,8 +123,7 @@ export function createDisclosureGroupState(
135
123
  p.onExpandedChange?.(keys);
136
124
  };
137
125
 
138
- // Ensure only one item is expanded if allowsMultipleExpanded is false
139
- // Note: We use untrack to prevent infinite loops when calling setExpandedKeys
126
+ // Ensure only one item is expanded if allowsMultipleExpanded is false.
140
127
  createEffect(() => {
141
128
  const p = propsAccessor();
142
129
  const allowsMultiple = p.allowsMultipleExpanded ?? false;
@@ -167,7 +154,6 @@ export function createDisclosureGroupState(
167
154
  newKeys.add(key);
168
155
  }
169
156
  } else {
170
- // Single selection: toggle off if already expanded, otherwise select only this one
171
157
  newKeys = new Set(currentKeys.has(key) ? [] : [key]);
172
158
  }
173
159
 
@@ -1,2 +1,10 @@
1
- export { createDisclosureState, createDisclosureGroupState, type DisclosureStateProps, type DisclosureState, type DisclosureGroupStateProps, type DisclosureGroupState, type Key, } from './createDisclosureState';
2
- //# sourceMappingURL=index.d.ts.map
1
+ export {
2
+ createDisclosureState,
3
+ createDisclosureGroupState,
4
+ type DisclosureStateProps,
5
+ type DisclosureState,
6
+ type DisclosureGroupStateProps,
7
+ type DisclosureGroupState,
8
+ type Key,
9
+ } from "./createDisclosureState";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -6,4 +6,4 @@ export {
6
6
  type DisclosureGroupStateProps,
7
7
  type DisclosureGroupState,
8
8
  type Key,
9
- } from './createDisclosureState';
9
+ } from "./createDisclosureState";
@@ -3,51 +3,60 @@
3
3
  *
4
4
  * Provides reactive state for drag operations.
5
5
  */
6
- import { type Accessor } from 'solid-js';
7
- import type { DragItem, DragStartEvent, DragMoveEvent, DragEndEvent, DropOperation, DragPreviewRenderer } from './types';
6
+ import { type Accessor } from "solid-js";
7
+ import type {
8
+ DragItem,
9
+ DragStartEvent,
10
+ DragMoveEvent,
11
+ DragEndEvent,
12
+ DropOperation,
13
+ DragPreviewRenderer,
14
+ } from "./types";
8
15
  export interface DragStateOptions {
9
- /** A function that returns the items being dragged. */
10
- getItems: () => DragItem[];
11
- /** Function that returns the allowed drop operations. */
12
- getAllowedDropOperations?: () => DropOperation[];
13
- /** Handler that is called when a drag operation is started. */
14
- onDragStart?: (e: DragStartEvent) => void;
15
- /** Handler that is called when the drag is moved. */
16
- onDragMove?: (e: DragMoveEvent) => void;
17
- /** Handler that is called when the drag operation ends. */
18
- onDragEnd?: (e: DragEndEvent) => void;
19
- /** Whether the drag operation is disabled. */
20
- isDisabled?: boolean;
21
- /** Whether there is a separate drag button affordance. */
22
- hasDragButton?: boolean;
23
- /** Preview renderer function ref. */
24
- preview?: {
25
- current: DragPreviewRenderer | null;
26
- };
16
+ /** A function that returns the items being dragged. */
17
+ getItems: () => DragItem[];
18
+ /** Function that returns the allowed drop operations. */
19
+ getAllowedDropOperations?: () => DropOperation[];
20
+ /** Handler that is called when a drag operation is started. */
21
+ onDragStart?: (e: DragStartEvent) => void;
22
+ /** Handler that is called when the drag is moved. */
23
+ onDragMove?: (e: DragMoveEvent) => void;
24
+ /** Handler that is called when the drag operation ends. */
25
+ onDragEnd?: (e: DragEndEvent) => void;
26
+ /** Whether the drag operation is disabled. */
27
+ isDisabled?: boolean;
28
+ /** Whether there is a separate drag button affordance. */
29
+ hasDragButton?: boolean;
30
+ /** Preview renderer function ref. */
31
+ preview?: {
32
+ current: DragPreviewRenderer | null;
33
+ };
27
34
  }
28
35
  export interface DragState {
29
- /** Whether an element is currently being dragged. */
30
- readonly isDragging: boolean;
31
- /** Whether drag is disabled. */
32
- readonly isDisabled: boolean;
33
- /** Start a drag operation. */
34
- startDrag(x: number, y: number): void;
35
- /** Update drag position. */
36
- moveDrag(x: number, y: number): void;
37
- /** End a drag operation. */
38
- endDrag(x: number, y: number, dropOperation: DropOperation): void;
39
- /** Cancel a drag operation. */
40
- cancelDrag(): void;
41
- /** Get the items being dragged. */
42
- getItems(): DragItem[];
43
- /** Get allowed drop operations. */
44
- getAllowedDropOperations(): DropOperation[];
45
- /** Whether there is a drag button. */
46
- readonly hasDragButton: boolean;
47
- /** Preview renderer. */
48
- readonly preview: {
36
+ /** Whether an element is currently being dragged. */
37
+ readonly isDragging: boolean;
38
+ /** Whether drag is disabled. */
39
+ readonly isDisabled: boolean;
40
+ /** Start a drag operation. */
41
+ startDrag(x: number, y: number): void;
42
+ /** Update drag position. */
43
+ moveDrag(x: number, y: number): void;
44
+ /** End a drag operation. */
45
+ endDrag(x: number, y: number, dropOperation: DropOperation): void;
46
+ /** Cancel a drag operation. */
47
+ cancelDrag(): void;
48
+ /** Get the items being dragged. */
49
+ getItems(): DragItem[];
50
+ /** Get allowed drop operations. */
51
+ getAllowedDropOperations(): DropOperation[];
52
+ /** Whether there is a drag button. */
53
+ readonly hasDragButton: boolean;
54
+ /** Preview renderer. */
55
+ readonly preview:
56
+ | {
49
57
  current: DragPreviewRenderer | null;
50
- } | undefined;
58
+ }
59
+ | undefined;
51
60
  }
52
61
  /**
53
62
  * Creates drag state for managing drag operations.
@@ -56,4 +65,4 @@ export interface DragState {
56
65
  * @returns Drag state object
57
66
  */
58
67
  export declare function createDragState(props: Accessor<DragStateOptions>): DragState;
59
- //# sourceMappingURL=createDragState.d.ts.map
68
+ //# sourceMappingURL=createDragState.d.ts.map
@@ -1,153 +1,151 @@
1
- /**
2
- * Drag state management for solid-stately.
3
- *
4
- * Provides reactive state for drag operations.
5
- */
6
-
7
- import { createSignal, createMemo, type Accessor } from 'solid-js';
8
- import type {
9
- DragItem,
10
- DragStartEvent,
11
- DragMoveEvent,
12
- DragEndEvent,
13
- DropOperation,
14
- DragPreviewRenderer,
15
- } from './types';
16
-
17
- export interface DragStateOptions {
18
- /** A function that returns the items being dragged. */
19
- getItems: () => DragItem[];
20
- /** Function that returns the allowed drop operations. */
21
- getAllowedDropOperations?: () => DropOperation[];
22
- /** Handler that is called when a drag operation is started. */
23
- onDragStart?: (e: DragStartEvent) => void;
24
- /** Handler that is called when the drag is moved. */
25
- onDragMove?: (e: DragMoveEvent) => void;
26
- /** Handler that is called when the drag operation ends. */
27
- onDragEnd?: (e: DragEndEvent) => void;
28
- /** Whether the drag operation is disabled. */
29
- isDisabled?: boolean;
30
- /** Whether there is a separate drag button affordance. */
31
- hasDragButton?: boolean;
32
- /** Preview renderer function ref. */
33
- preview?: { current: DragPreviewRenderer | null };
34
- }
35
-
36
- export interface DragState {
37
- /** Whether an element is currently being dragged. */
38
- readonly isDragging: boolean;
39
- /** Whether drag is disabled. */
40
- readonly isDisabled: boolean;
41
- /** Start a drag operation. */
42
- startDrag(x: number, y: number): void;
43
- /** Update drag position. */
44
- moveDrag(x: number, y: number): void;
45
- /** End a drag operation. */
46
- endDrag(x: number, y: number, dropOperation: DropOperation): void;
47
- /** Cancel a drag operation. */
48
- cancelDrag(): void;
49
- /** Get the items being dragged. */
50
- getItems(): DragItem[];
51
- /** Get allowed drop operations. */
52
- getAllowedDropOperations(): DropOperation[];
53
- /** Whether there is a drag button. */
54
- readonly hasDragButton: boolean;
55
- /** Preview renderer. */
56
- readonly preview: { current: DragPreviewRenderer | null } | undefined;
57
- }
58
-
59
- /**
60
- * Creates drag state for managing drag operations.
61
- *
62
- * @param props - Accessor returning drag state options
63
- * @returns Drag state object
64
- */
65
- export function createDragState(
66
- props: Accessor<DragStateOptions>
67
- ): DragState {
68
- const getProps = createMemo(() => props());
69
-
70
- const [isDragging, setIsDragging] = createSignal(false);
71
-
72
- const startDrag = (x: number, y: number) => {
73
- const p = getProps();
74
- if (p.isDisabled) return;
75
-
76
- setIsDragging(true);
77
-
78
- if (typeof p.onDragStart === 'function') {
79
- p.onDragStart({
80
- type: 'dragstart',
81
- x,
82
- y,
83
- });
84
- }
85
- };
86
-
87
- const moveDrag = (x: number, y: number) => {
88
- const p = getProps();
89
- if (!isDragging() || p.isDisabled) return;
90
-
91
- if (typeof p.onDragMove === 'function') {
92
- p.onDragMove({
93
- type: 'dragmove',
94
- x,
95
- y,
96
- });
97
- }
98
- };
99
-
100
- const endDrag = (x: number, y: number, dropOperation: DropOperation) => {
101
- const p = getProps();
102
- if (!isDragging()) return;
103
-
104
- setIsDragging(false);
105
-
106
- if (typeof p.onDragEnd === 'function') {
107
- p.onDragEnd({
108
- type: 'dragend',
109
- x,
110
- y,
111
- dropOperation,
112
- });
113
- }
114
- };
115
-
116
- const cancelDrag = () => {
117
- endDrag(0, 0, 'cancel');
118
- };
119
-
120
- const getItems = () => {
121
- const p = getProps();
122
- return p.getItems();
123
- };
124
-
125
- const getAllowedDropOperations = (): DropOperation[] => {
126
- const p = getProps();
127
- if (typeof p.getAllowedDropOperations === 'function') {
128
- return p.getAllowedDropOperations();
129
- }
130
- return ['move', 'copy', 'link'];
131
- };
132
-
133
- return {
134
- get isDragging() {
135
- return isDragging();
136
- },
137
- get isDisabled() {
138
- return getProps().isDisabled ?? false;
139
- },
140
- get hasDragButton() {
141
- return getProps().hasDragButton ?? false;
142
- },
143
- get preview() {
144
- return getProps().preview;
145
- },
146
- startDrag,
147
- moveDrag,
148
- endDrag,
149
- cancelDrag,
150
- getItems,
151
- getAllowedDropOperations,
152
- };
153
- }
1
+ /**
2
+ * Drag state management for solid-stately.
3
+ *
4
+ * Provides reactive state for drag operations.
5
+ */
6
+
7
+ import { createSignal, createMemo, type Accessor } from "solid-js";
8
+ import type {
9
+ DragItem,
10
+ DragStartEvent,
11
+ DragMoveEvent,
12
+ DragEndEvent,
13
+ DropOperation,
14
+ DragPreviewRenderer,
15
+ } from "./types";
16
+
17
+ export interface DragStateOptions {
18
+ /** A function that returns the items being dragged. */
19
+ getItems: () => DragItem[];
20
+ /** Function that returns the allowed drop operations. */
21
+ getAllowedDropOperations?: () => DropOperation[];
22
+ /** Handler that is called when a drag operation is started. */
23
+ onDragStart?: (e: DragStartEvent) => void;
24
+ /** Handler that is called when the drag is moved. */
25
+ onDragMove?: (e: DragMoveEvent) => void;
26
+ /** Handler that is called when the drag operation ends. */
27
+ onDragEnd?: (e: DragEndEvent) => void;
28
+ /** Whether the drag operation is disabled. */
29
+ isDisabled?: boolean;
30
+ /** Whether there is a separate drag button affordance. */
31
+ hasDragButton?: boolean;
32
+ /** Preview renderer function ref. */
33
+ preview?: { current: DragPreviewRenderer | null };
34
+ }
35
+
36
+ export interface DragState {
37
+ /** Whether an element is currently being dragged. */
38
+ readonly isDragging: boolean;
39
+ /** Whether drag is disabled. */
40
+ readonly isDisabled: boolean;
41
+ /** Start a drag operation. */
42
+ startDrag(x: number, y: number): void;
43
+ /** Update drag position. */
44
+ moveDrag(x: number, y: number): void;
45
+ /** End a drag operation. */
46
+ endDrag(x: number, y: number, dropOperation: DropOperation): void;
47
+ /** Cancel a drag operation. */
48
+ cancelDrag(): void;
49
+ /** Get the items being dragged. */
50
+ getItems(): DragItem[];
51
+ /** Get allowed drop operations. */
52
+ getAllowedDropOperations(): DropOperation[];
53
+ /** Whether there is a drag button. */
54
+ readonly hasDragButton: boolean;
55
+ /** Preview renderer. */
56
+ readonly preview: { current: DragPreviewRenderer | null } | undefined;
57
+ }
58
+
59
+ /**
60
+ * Creates drag state for managing drag operations.
61
+ *
62
+ * @param props - Accessor returning drag state options
63
+ * @returns Drag state object
64
+ */
65
+ export function createDragState(props: Accessor<DragStateOptions>): DragState {
66
+ const getProps = createMemo(() => props());
67
+
68
+ const [isDragging, setIsDragging] = createSignal(false);
69
+
70
+ const startDrag = (x: number, y: number) => {
71
+ const p = getProps();
72
+ if (p.isDisabled) return;
73
+
74
+ setIsDragging(true);
75
+
76
+ if (typeof p.onDragStart === "function") {
77
+ p.onDragStart({
78
+ type: "dragstart",
79
+ x,
80
+ y,
81
+ });
82
+ }
83
+ };
84
+
85
+ const moveDrag = (x: number, y: number) => {
86
+ const p = getProps();
87
+ if (!isDragging() || p.isDisabled) return;
88
+
89
+ if (typeof p.onDragMove === "function") {
90
+ p.onDragMove({
91
+ type: "dragmove",
92
+ x,
93
+ y,
94
+ });
95
+ }
96
+ };
97
+
98
+ const endDrag = (x: number, y: number, dropOperation: DropOperation) => {
99
+ const p = getProps();
100
+ if (!isDragging()) return;
101
+
102
+ setIsDragging(false);
103
+
104
+ if (typeof p.onDragEnd === "function") {
105
+ p.onDragEnd({
106
+ type: "dragend",
107
+ x,
108
+ y,
109
+ dropOperation,
110
+ });
111
+ }
112
+ };
113
+
114
+ const cancelDrag = () => {
115
+ endDrag(0, 0, "cancel");
116
+ };
117
+
118
+ const getItems = () => {
119
+ const p = getProps();
120
+ return p.getItems();
121
+ };
122
+
123
+ const getAllowedDropOperations = (): DropOperation[] => {
124
+ const p = getProps();
125
+ if (typeof p.getAllowedDropOperations === "function") {
126
+ return p.getAllowedDropOperations();
127
+ }
128
+ return ["move", "copy", "link"];
129
+ };
130
+
131
+ return {
132
+ get isDragging() {
133
+ return isDragging();
134
+ },
135
+ get isDisabled() {
136
+ return getProps().isDisabled ?? false;
137
+ },
138
+ get hasDragButton() {
139
+ return getProps().hasDragButton ?? false;
140
+ },
141
+ get preview() {
142
+ return getProps().preview;
143
+ },
144
+ startDrag,
145
+ moveDrag,
146
+ endDrag,
147
+ cancelDrag,
148
+ getItems,
149
+ getAllowedDropOperations,
150
+ };
151
+ }