@proyecto-viviana/solidaria-components 0.2.5 → 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 (225) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -272
  3. package/dist/ActionBar.d.ts +79 -0
  4. package/dist/ActionBar.d.ts.map +1 -0
  5. package/dist/ActionGroup.d.ts +74 -0
  6. package/dist/ActionGroup.d.ts.map +1 -0
  7. package/dist/Alert.d.ts +70 -0
  8. package/dist/Alert.d.ts.map +1 -0
  9. package/dist/Autocomplete.d.ts +5 -5
  10. package/dist/Autocomplete.d.ts.map +1 -1
  11. package/dist/Breadcrumbs.d.ts +27 -8
  12. package/dist/Breadcrumbs.d.ts.map +1 -1
  13. package/dist/Button.d.ts +28 -5
  14. package/dist/Button.d.ts.map +1 -1
  15. package/dist/Calendar.d.ts +51 -7
  16. package/dist/Calendar.d.ts.map +1 -1
  17. package/dist/Checkbox.d.ts +33 -8
  18. package/dist/Checkbox.d.ts.map +1 -1
  19. package/dist/Collection.d.ts +130 -0
  20. package/dist/Collection.d.ts.map +1 -0
  21. package/dist/Color.d.ts +210 -9
  22. package/dist/Color.d.ts.map +1 -1
  23. package/dist/ColorEditor.d.ts +42 -0
  24. package/dist/ColorEditor.d.ts.map +1 -0
  25. package/dist/ComboBox.d.ts +146 -16
  26. package/dist/ComboBox.d.ts.map +1 -1
  27. package/dist/ContextualHelpTrigger.d.ts +40 -0
  28. package/dist/ContextualHelpTrigger.d.ts.map +1 -0
  29. package/dist/DateField.d.ts +35 -8
  30. package/dist/DateField.d.ts.map +1 -1
  31. package/dist/DatePicker.d.ts +101 -5
  32. package/dist/DatePicker.d.ts.map +1 -1
  33. package/dist/DateRangePickerContext.d.ts +30 -0
  34. package/dist/DateRangePickerContext.d.ts.map +1 -0
  35. package/dist/Dialog.d.ts +5 -5
  36. package/dist/Dialog.d.ts.map +1 -1
  37. package/dist/Disclosure.d.ts +25 -5
  38. package/dist/Disclosure.d.ts.map +1 -1
  39. package/dist/DragAndDrop.d.ts +80 -0
  40. package/dist/DragAndDrop.d.ts.map +1 -0
  41. package/dist/DragPreview.d.ts +14 -0
  42. package/dist/DragPreview.d.ts.map +1 -0
  43. package/dist/DropZone.d.ts +27 -0
  44. package/dist/DropZone.d.ts.map +1 -0
  45. package/dist/FieldError.d.ts +27 -0
  46. package/dist/FieldError.d.ts.map +1 -0
  47. package/dist/FileTrigger.d.ts +26 -0
  48. package/dist/FileTrigger.d.ts.map +1 -0
  49. package/dist/Focusable.d.ts +27 -0
  50. package/dist/Focusable.d.ts.map +1 -0
  51. package/dist/Form.d.ts +41 -0
  52. package/dist/Form.d.ts.map +1 -0
  53. package/dist/GridList.d.ts +69 -10
  54. package/dist/GridList.d.ts.map +1 -1
  55. package/dist/HiddenDateInput.d.ts +26 -0
  56. package/dist/HiddenDateInput.d.ts.map +1 -0
  57. package/dist/HiddenTimeInput.d.ts +25 -0
  58. package/dist/HiddenTimeInput.d.ts.map +1 -0
  59. package/dist/Icon.d.ts +57 -0
  60. package/dist/Icon.d.ts.map +1 -0
  61. package/dist/Keyboard.d.ts +13 -0
  62. package/dist/Keyboard.d.ts.map +1 -0
  63. package/dist/Landmark.d.ts +3 -3
  64. package/dist/Landmark.d.ts.map +1 -1
  65. package/dist/Link.d.ts +10 -4
  66. package/dist/Link.d.ts.map +1 -1
  67. package/dist/ListBox.d.ts +73 -11
  68. package/dist/ListBox.d.ts.map +1 -1
  69. package/dist/ListDropTargetDelegate.d.ts +38 -0
  70. package/dist/ListDropTargetDelegate.d.ts.map +1 -0
  71. package/dist/Menu.d.ts +79 -10
  72. package/dist/Menu.d.ts.map +1 -1
  73. package/dist/Meter.d.ts +4 -4
  74. package/dist/Meter.d.ts.map +1 -1
  75. package/dist/Modal.d.ts +6 -4
  76. package/dist/Modal.d.ts.map +1 -1
  77. package/dist/NumberField.d.ts +10 -12
  78. package/dist/NumberField.d.ts.map +1 -1
  79. package/dist/Popover.d.ts +32 -7
  80. package/dist/Popover.d.ts.map +1 -1
  81. package/dist/Pressable.d.ts +27 -0
  82. package/dist/Pressable.d.ts.map +1 -0
  83. package/dist/ProgressBar.d.ts +6 -4
  84. package/dist/ProgressBar.d.ts.map +1 -1
  85. package/dist/RadioGroup.d.ts +43 -9
  86. package/dist/RadioGroup.d.ts.map +1 -1
  87. package/dist/RangeCalendar.d.ts +39 -7
  88. package/dist/RangeCalendar.d.ts.map +1 -1
  89. package/dist/RouterProvider.d.ts +75 -0
  90. package/dist/RouterProvider.d.ts.map +1 -0
  91. package/dist/SearchField.d.ts +23 -21
  92. package/dist/SearchField.d.ts.map +1 -1
  93. package/dist/Select.d.ts +48 -7
  94. package/dist/Select.d.ts.map +1 -1
  95. package/dist/SelectionIndicator.d.ts +30 -0
  96. package/dist/SelectionIndicator.d.ts.map +1 -0
  97. package/dist/Separator.d.ts +9 -3
  98. package/dist/Separator.d.ts.map +1 -1
  99. package/dist/SharedElementTransition.d.ts +41 -0
  100. package/dist/SharedElementTransition.d.ts.map +1 -0
  101. package/dist/Slider.d.ts +15 -8
  102. package/dist/Slider.d.ts.map +1 -1
  103. package/dist/StepList.d.ts +90 -0
  104. package/dist/StepList.d.ts.map +1 -0
  105. package/dist/Switch.d.ts +11 -5
  106. package/dist/Switch.d.ts.map +1 -1
  107. package/dist/Table.d.ts +222 -19
  108. package/dist/Table.d.ts.map +1 -1
  109. package/dist/Tabs.d.ts +47 -10
  110. package/dist/Tabs.d.ts.map +1 -1
  111. package/dist/TagGroup.d.ts +22 -10
  112. package/dist/TagGroup.d.ts.map +1 -1
  113. package/dist/Text.d.ts +10 -0
  114. package/dist/Text.d.ts.map +1 -0
  115. package/dist/TextField.d.ts +19 -11
  116. package/dist/TextField.d.ts.map +1 -1
  117. package/dist/TimeField.d.ts +32 -7
  118. package/dist/TimeField.d.ts.map +1 -1
  119. package/dist/Toast.d.ts +29 -14
  120. package/dist/Toast.d.ts.map +1 -1
  121. package/dist/ToggleButton.d.ts +36 -0
  122. package/dist/ToggleButton.d.ts.map +1 -0
  123. package/dist/ToggleButtonGroup.d.ts +33 -0
  124. package/dist/ToggleButtonGroup.d.ts.map +1 -0
  125. package/dist/Toolbar.d.ts +7 -3
  126. package/dist/Toolbar.d.ts.map +1 -1
  127. package/dist/Tooltip.d.ts +58 -7
  128. package/dist/Tooltip.d.ts.map +1 -1
  129. package/dist/Tree.d.ts +102 -11
  130. package/dist/Tree.d.ts.map +1 -1
  131. package/dist/Virtualizer.d.ts +61 -0
  132. package/dist/Virtualizer.d.ts.map +1 -0
  133. package/dist/VirtualizerLayouts.d.ts +82 -0
  134. package/dist/VirtualizerLayouts.d.ts.map +1 -0
  135. package/dist/VisuallyHidden.d.ts +4 -2
  136. package/dist/VisuallyHidden.d.ts.map +1 -1
  137. package/dist/contexts.d.ts +6 -1
  138. package/dist/contexts.d.ts.map +1 -1
  139. package/dist/index.d.ts +73 -39
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +23342 -10644
  142. package/dist/index.js.map +1 -7
  143. package/dist/index.jsx +18110 -0
  144. package/dist/index.jsx.map +1 -0
  145. package/dist/useDragAndDrop.d.ts +93 -0
  146. package/dist/useDragAndDrop.d.ts.map +1 -0
  147. package/dist/utils.d.ts +8 -2
  148. package/dist/utils.d.ts.map +1 -1
  149. package/dist/virtualizer/Layout.d.ts +79 -0
  150. package/dist/virtualizer/Layout.d.ts.map +1 -0
  151. package/package.json +33 -32
  152. package/src/ActionBar.tsx +251 -0
  153. package/src/ActionGroup.tsx +277 -0
  154. package/src/Alert.tsx +152 -0
  155. package/src/Autocomplete.tsx +39 -44
  156. package/src/Breadcrumbs.tsx +227 -72
  157. package/src/Button.tsx +315 -74
  158. package/src/Calendar.tsx +347 -141
  159. package/src/Checkbox.tsx +414 -123
  160. package/src/Collection.tsx +350 -0
  161. package/src/Color.tsx +1325 -284
  162. package/src/ColorEditor.tsx +213 -0
  163. package/src/ComboBox.tsx +644 -245
  164. package/src/ContextualHelpTrigger.tsx +195 -0
  165. package/src/DateField.tsx +274 -106
  166. package/src/DatePicker.tsx +892 -111
  167. package/src/DateRangePickerContext.tsx +44 -0
  168. package/src/Dialog.tsx +173 -104
  169. package/src/Disclosure.tsx +158 -105
  170. package/src/DragAndDrop.tsx +340 -0
  171. package/src/DragPreview.tsx +47 -0
  172. package/src/DropZone.tsx +233 -0
  173. package/src/FieldError.tsx +89 -0
  174. package/src/FileTrigger.tsx +83 -0
  175. package/src/Focusable.tsx +103 -0
  176. package/src/Form.tsx +140 -0
  177. package/src/GridList.tsx +542 -128
  178. package/src/HiddenDateInput.tsx +153 -0
  179. package/src/HiddenTimeInput.tsx +133 -0
  180. package/src/Icon.tsx +133 -0
  181. package/src/Keyboard.tsx +26 -0
  182. package/src/Landmark.tsx +37 -63
  183. package/src/Link.tsx +132 -69
  184. package/src/ListBox.tsx +656 -106
  185. package/src/ListDropTargetDelegate.ts +283 -0
  186. package/src/Menu.tsx +1234 -132
  187. package/src/Meter.tsx +44 -58
  188. package/src/Modal.tsx +262 -166
  189. package/src/NumberField.tsx +267 -151
  190. package/src/Popover.tsx +452 -343
  191. package/src/Pressable.tsx +108 -0
  192. package/src/ProgressBar.tsx +54 -59
  193. package/src/RadioGroup.tsx +533 -121
  194. package/src/RangeCalendar.tsx +249 -150
  195. package/src/RouterProvider.tsx +223 -0
  196. package/src/SearchField.tsx +460 -133
  197. package/src/Select.tsx +804 -233
  198. package/src/SelectionIndicator.tsx +108 -0
  199. package/src/Separator.tsx +47 -49
  200. package/src/SharedElementTransition.tsx +264 -0
  201. package/src/Slider.tsx +148 -98
  202. package/src/StepList.tsx +272 -0
  203. package/src/Switch.tsx +93 -46
  204. package/src/Table.tsx +1551 -225
  205. package/src/Tabs.tsx +377 -123
  206. package/src/TagGroup.tsx +233 -135
  207. package/src/Text.tsx +18 -0
  208. package/src/TextField.tsx +413 -86
  209. package/src/TimeField.tsx +232 -222
  210. package/src/Toast.tsx +306 -160
  211. package/src/ToggleButton.tsx +169 -0
  212. package/src/ToggleButtonGroup.tsx +141 -0
  213. package/src/Toolbar.tsx +61 -70
  214. package/src/Tooltip.tsx +473 -116
  215. package/src/Tree.tsx +1514 -175
  216. package/src/Virtualizer.tsx +730 -0
  217. package/src/VirtualizerLayouts.ts +280 -0
  218. package/src/VisuallyHidden.tsx +32 -38
  219. package/src/contexts.ts +29 -36
  220. package/src/index.ts +972 -620
  221. package/src/useDragAndDrop.ts +367 -0
  222. package/src/utils.tsx +69 -50
  223. package/src/virtualizer/Layout.ts +192 -0
  224. package/dist/index.ssr.js +0 -9785
  225. package/dist/index.ssr.js.map +0 -7
@@ -0,0 +1,26 @@
1
+ /**
2
+ * HiddenDateInput component for solidaria-components
3
+ *
4
+ * A hidden native date/datetime-local input for form submission.
5
+ * Renders server-side with the initial value for SSR safety.
6
+ */
7
+ import { type JSX } from "solid-js";
8
+ import { type DateValue, type FormValidationState } from "@proyecto-viviana/solid-stately";
9
+ type MaybeAccessor<T> = T | (() => T);
10
+ export interface HiddenDateInputProps {
11
+ name?: string;
12
+ form?: string;
13
+ value?: MaybeAccessor<DateValue | null | undefined>;
14
+ autoComplete?: string;
15
+ isDisabled?: boolean;
16
+ isRequired?: boolean;
17
+ validationBehavior?: "aria" | "native";
18
+ validationState?: FormValidationState;
19
+ focus?: () => void;
20
+ minValue?: MaybeAccessor<DateValue | undefined>;
21
+ maxValue?: MaybeAccessor<DateValue | undefined>;
22
+ granularity?: "day" | "hour" | "minute" | "second";
23
+ }
24
+ export declare function HiddenDateInput(props: HiddenDateInputProps): JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=HiddenDateInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenDateInput.d.ts","sourceRoot":"","sources":["../src/HiddenDateInput.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,KAAK,GAAG,EAA8B,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3F,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACpD;AAyCD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAsFxE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * HiddenTimeInput component for solidaria-components
3
+ *
4
+ * A hidden native time input for form submission.
5
+ */
6
+ import { type JSX } from "solid-js";
7
+ import { type FormValidationState, type TimeValue } from "@proyecto-viviana/solid-stately";
8
+ type MaybeAccessor<T> = T | (() => T);
9
+ export interface HiddenTimeInputProps {
10
+ name?: string;
11
+ form?: string;
12
+ value?: MaybeAccessor<TimeValue | null | undefined>;
13
+ autoComplete?: string;
14
+ isDisabled?: boolean;
15
+ isRequired?: boolean;
16
+ validationBehavior?: "aria" | "native";
17
+ validationState?: FormValidationState;
18
+ focus?: () => void;
19
+ minValue?: MaybeAccessor<TimeValue | undefined>;
20
+ maxValue?: MaybeAccessor<TimeValue | undefined>;
21
+ granularity?: "hour" | "minute" | "second";
22
+ }
23
+ export declare function HiddenTimeInput(props: HiddenTimeInputProps): JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=HiddenTimeInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenTimeInput.d.ts","sourceRoot":"","sources":["../src/HiddenTimeInput.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,GAAG,EAA8B,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG3F,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtC,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACvC,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;CAC5C;AAmCD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CAyExE"}
package/dist/Icon.d.ts ADDED
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Icon component for solidaria-components
3
+ *
4
+ * Minimal headless Icon that owns ARIA semantics:
5
+ * - Decorative (no label): aria-hidden="true"
6
+ * - Informative (aria-label): role="img" + aria-label
7
+ * - Interactive (onPress): wraps content in headless Button
8
+ *
9
+ * The UI layer consumes this for styling/composition only.
10
+ */
11
+ import { type JSX } from "solid-js";
12
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
13
+ import type { PressEvent } from "@proyecto-viviana/solidaria";
14
+ export interface IconRenderProps {
15
+ /** Whether the icon is purely decorative (no label). */
16
+ isDecorative: boolean;
17
+ /** Whether the icon is interactive (has onPress). */
18
+ isInteractive: boolean;
19
+ }
20
+ export interface IconProps extends SlotProps {
21
+ /** Handler called when the icon is pressed (makes it interactive). */
22
+ onPress?: (e: PressEvent) => void;
23
+ /** Accessible label for the icon. When provided, the icon is informative (role="img"). */
24
+ "aria-label"?: string;
25
+ /** ID of an element that labels this icon. */
26
+ "aria-labelledby"?: string;
27
+ /** The children of the component. A function may be provided to receive render props. */
28
+ children?: RenderChildren<IconRenderProps>;
29
+ /** The CSS className for the element. */
30
+ class?: ClassNameOrFunction<IconRenderProps>;
31
+ /** The inline style for the element. */
32
+ style?: StyleOrFunction<IconRenderProps>;
33
+ /** The id of the element. */
34
+ id?: string;
35
+ }
36
+ export declare const IconContext: import("solid-js").Context<IconProps | null>;
37
+ /**
38
+ * An icon wrapper that provides correct ARIA semantics.
39
+ *
40
+ * - **Decorative** (no `aria-label`): renders `<span aria-hidden="true">`
41
+ * - **Informative** (`aria-label` provided): renders `<span role="img" aria-label="...">`
42
+ * - **Interactive** (`onPress` provided): wraps in headless `Button`
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * // Decorative
47
+ * <Icon><SearchSvg /></Icon>
48
+ *
49
+ * // Informative
50
+ * <Icon aria-label="Search"><SearchSvg /></Icon>
51
+ *
52
+ * // Interactive
53
+ * <Icon onPress={handleSearch} aria-label="Search"><SearchSvg /></Icon>
54
+ * ```
55
+ */
56
+ export declare function Icon(props: IconProps): JSX.Element;
57
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../src/Icon.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,GAAG,EAA+C,MAAM,UAAU,CAAC;AACjF,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAE9D,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC7C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACzC,6BAA6B;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,WAAW,8CAAwC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CAgElD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Keyboard primitive for solidaria-components.
3
+ *
4
+ * Displays keyboard key hints with semantic <kbd> markup.
5
+ * Port direction: react-aria-components/src/Keyboard.tsx
6
+ */
7
+ import { type JSX } from "solid-js";
8
+ export interface KeyboardProps extends JSX.HTMLAttributes<HTMLElement> {
9
+ children?: JSX.Element;
10
+ }
11
+ export declare const KeyboardContext: import("solid-js").Context<KeyboardProps | null>;
12
+ export declare function Keyboard(props: KeyboardProps): JSX.Element;
13
+ //# sourceMappingURL=Keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Keyboard.d.ts","sourceRoot":"","sources":["../src/Keyboard.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAyC,MAAM,UAAU,CAAC;AAE3E,MAAM,WAAW,aAAc,SAAQ,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,kDAA4C,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAU1D"}
@@ -4,9 +4,9 @@
4
4
  * Pre-wired headless landmark component that combines aria hooks.
5
5
  * Enables F6 keyboard navigation between major page sections.
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaLandmarkProps, type AriaLandmarkRole, type LandmarkController } from '@proyecto-viviana/solidaria';
9
- import { type SlotProps } from './utils';
7
+ import { type JSX } from "solid-js";
8
+ import { type AriaLandmarkProps, type AriaLandmarkRole, type LandmarkController } from "@proyecto-viviana/solidaria";
9
+ import { type SlotProps } from "./utils";
10
10
  export interface LandmarkRenderProps {
11
11
  /** The ARIA landmark role. */
12
12
  role: AriaLandmarkRole;
@@ -1 +1 @@
1
- {"version":3,"file":"Landmark.d.ts","sourceRoot":"","sources":["../src/Landmark.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAKT,MAAM,UAAU,CAAC;AAElB,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,SAAS,EAEf,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,aACf,SAAQ,iBAAiB,EACvB,SAAS;IACX;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC;IAC1C,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,MAAM,CAAC,CAAC;IAChE,4FAA4F;IAC5F,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC;IACtF,wBAAwB;IACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAGD,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAMrD,eAAO,MAAM,eAAe,kDAA4C,CAAC;AAyBzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAuE1D;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D"}
1
+ {"version":3,"file":"Landmark.d.ts","sourceRoot":"","sources":["../src/Landmark.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAuD,MAAM,UAAU,CAAC;AAEzF,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,iBAAiB,EAAE,SAAS;IACjE;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,iBAAiB,CAAC;IAC1C,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,MAAM,CAAC,CAAC;IAChE,4FAA4F;IAC5F,KAAK,CAAC,EAAE,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC;IACtF,wBAAwB;IACxB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CACxB;AAED,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;AAErD,eAAO,MAAM,eAAe,kDAA4C,CAAC;AAiBzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA6E1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D"}
package/dist/Link.d.ts CHANGED
@@ -4,9 +4,12 @@
4
4
  * Pre-wired headless link component that combines aria hooks.
5
5
  * Port of react-aria-components/src/Link.tsx
6
6
  */
7
- import { type JSX, type ParentProps } from 'solid-js';
8
- import { type AriaLinkProps, type HoverEvents } from '@proyecto-viviana/solidaria';
9
- import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from './utils';
7
+ import { type JSX, type ParentProps } from "solid-js";
8
+ import { type AriaLinkProps, type HoverEvents } from "@proyecto-viviana/solidaria";
9
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
10
+ type RefLike<T> = ((el: T) => void) | {
11
+ current?: T | null;
12
+ } | undefined;
10
13
  export interface LinkRenderProps {
11
14
  /** Whether the link is the current item within a list. */
12
15
  isCurrent: boolean;
@@ -21,13 +24,15 @@ export interface LinkRenderProps {
21
24
  /** Whether the link is disabled. */
22
25
  isDisabled: boolean;
23
26
  }
24
- export interface LinkProps extends Omit<AriaLinkProps, 'elementType'>, HoverEvents, SlotProps {
27
+ export interface LinkProps extends Omit<AriaLinkProps, "elementType">, HoverEvents, SlotProps {
25
28
  /** The children of the component. A function may be provided to receive render props. */
26
29
  children?: RenderChildren<LinkRenderProps>;
27
30
  /** The CSS className for the element. */
28
31
  class?: ClassNameOrFunction<LinkRenderProps>;
29
32
  /** The inline style for the element. */
30
33
  style?: StyleOrFunction<LinkRenderProps>;
34
+ /** Ref for the underlying link element. */
35
+ ref?: RefLike<HTMLElement>;
31
36
  }
32
37
  export declare const LinkContext: import("solid-js").Context<LinkProps | null>;
33
38
  /**
@@ -49,4 +54,5 @@ export declare const LinkContext: import("solid-js").Context<LinkProps | null>;
49
54
  * ```
50
55
  */
51
56
  export declare function Link(props: ParentProps<LinkProps>): JSX.Element;
57
+ export {};
52
58
  //# sourceMappingURL=Link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EACR,KAAK,WAAW,EAIjB,MAAM,UAAU,CAAC;AAElB,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EACxC,WAAW,EACX,SAAS;IACX,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC7C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;CAC1C;AAMD,eAAO,MAAM,WAAW,8CAAwC,CAAC;AAMjE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CA8G/D"}
1
+ {"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,WAAW,EAAyC,MAAM,UAAU,CAAC;AAE7F,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,WAAW,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAGjB,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,SAAS,CAAC;AAWzE,MAAM,WAAW,eAAe;IAC9B,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,SAAS,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;IACnB,4CAA4C;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,WAAW,EAAE,SAAS;IAC3F,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAC3C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC7C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACzC,2CAA2C;IAC3C,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,WAAW,8CAAwC,CAAC;AAEjE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,OAAO,CAoL/D"}
package/dist/ListBox.d.ts CHANGED
@@ -4,10 +4,12 @@
4
4
  * A pre-wired headless listbox that combines state + aria hooks.
5
5
  * Port of react-aria-components/src/ListBox.tsx
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaListBoxProps, type AriaOptionProps } from '@proyecto-viviana/solidaria';
9
- import { type ListState, type Key } from '@proyecto-viviana/solid-stately';
10
- import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from './utils';
7
+ import { type JSX } from "solid-js";
8
+ import { type AriaListBoxProps, type AriaOptionProps } from "@proyecto-viviana/solidaria";
9
+ import { type ListState, type Key } from "@proyecto-viviana/solid-stately";
10
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
11
+ import { type DragAndDropHooks } from "./useDragAndDrop";
12
+ import { type CollectionEntry, type SectionProps } from "./Collection";
11
13
  export interface ListBoxRenderProps {
12
14
  /** Whether the listbox has focus. */
13
15
  isFocused: boolean;
@@ -18,9 +20,12 @@ export interface ListBoxRenderProps {
18
20
  /** Whether the listbox is empty. */
19
21
  isEmpty: boolean;
20
22
  }
21
- export interface ListBoxProps<T> extends Omit<AriaListBoxProps, 'children'>, SlotProps {
23
+ type RefLike<T> = ((el: T) => void) | {
24
+ current?: T | null;
25
+ } | undefined;
26
+ export interface ListBoxProps<T> extends Omit<AriaListBoxProps, "children">, SlotProps {
22
27
  /** The items to render in the listbox. */
23
- items: T[];
28
+ items: CollectionEntry<T>[];
24
29
  /** Function to get the key from an item. */
25
30
  getKey?: (item: T) => Key;
26
31
  /** Function to get the text value from an item. */
@@ -28,15 +33,19 @@ export interface ListBoxProps<T> extends Omit<AriaListBoxProps, 'children'>, Slo
28
33
  /** Function to check if an item is disabled. */
29
34
  getDisabled?: (item: T) => boolean;
30
35
  /** The selection mode. */
31
- selectionMode?: 'none' | 'single' | 'multiple';
36
+ selectionMode?: "none" | "single" | "multiple";
37
+ /** The selection behavior (toggle vs replace). */
38
+ selectionBehavior?: "toggle" | "replace";
39
+ /** Whether disabled items can still receive focus. */
40
+ disabledBehavior?: "selection" | "all";
32
41
  /** Keys of disabled items. */
33
42
  disabledKeys?: Iterable<Key>;
34
43
  /** Currently selected keys (controlled). */
35
- selectedKeys?: 'all' | Iterable<Key>;
44
+ selectedKeys?: "all" | Iterable<Key>;
36
45
  /** Default selected keys (uncontrolled). */
37
- defaultSelectedKeys?: 'all' | Iterable<Key>;
46
+ defaultSelectedKeys?: "all" | Iterable<Key>;
38
47
  /** Handler called when selection changes. */
39
- onSelectionChange?: (keys: 'all' | Set<Key>) => void;
48
+ onSelectionChange?: (keys: "all" | Set<Key>) => void;
40
49
  /** The children of the component. A function may be provided to render each item. */
41
50
  children: (item: T) => JSX.Element;
42
51
  /** The CSS className for the element. */
@@ -45,6 +54,22 @@ export interface ListBoxProps<T> extends Omit<AriaListBoxProps, 'children'>, Slo
45
54
  style?: StyleOrFunction<ListBoxRenderProps>;
46
55
  /** A function to render when the listbox is empty. */
47
56
  renderEmptyState?: () => JSX.Element;
57
+ /** Whether there are more items to load. */
58
+ hasMore?: boolean;
59
+ /** Whether additional items are currently loading. */
60
+ isLoading?: boolean;
61
+ /** Called when the load more sentinel becomes visible. */
62
+ onLoadMore?: () => void | Promise<void>;
63
+ /** Ref for the listbox element. */
64
+ ref?: RefLike<HTMLUListElement>;
65
+ /** Drag and drop hooks from `useDragAndDrop`. */
66
+ dragAndDropHooks?: DragAndDropHooks<T>;
67
+ /** Layout hint for styling parity. */
68
+ layout?: "stack" | "grid";
69
+ /** Orientation hint for styling parity. */
70
+ orientation?: "vertical" | "horizontal";
71
+ /** Slot definitions provided through ListBoxContext. */
72
+ slots?: Record<string, Partial<ListBoxProps<T>>>;
48
73
  }
49
74
  export interface ListBoxOptionRenderProps {
50
75
  /** Whether the option is selected. */
@@ -60,7 +85,7 @@ export interface ListBoxOptionRenderProps {
60
85
  /** Whether the option is disabled. */
61
86
  isDisabled: boolean;
62
87
  }
63
- export interface ListBoxOptionProps<T> extends Omit<AriaOptionProps, 'children' | 'key'>, SlotProps {
88
+ export interface ListBoxOptionProps<T> extends Omit<AriaOptionProps, "children" | "key">, SlotProps {
64
89
  /** The unique key for the option. */
65
90
  id: Key;
66
91
  /** The item value. */
@@ -73,22 +98,59 @@ export interface ListBoxOptionProps<T> extends Omit<AriaOptionProps, 'children'
73
98
  style?: StyleOrFunction<ListBoxOptionRenderProps>;
74
99
  /** The text value of the option (for typeahead). */
75
100
  textValue?: string;
101
+ /** Ref for the option element. */
102
+ ref?: RefLike<HTMLLIElement>;
103
+ }
104
+ export interface ListBoxLoadMoreItemProps extends SlotProps {
105
+ /** Called when the sentinel becomes visible. */
106
+ onLoadMore: () => void | Promise<void>;
107
+ /** Whether additional items are currently loading. */
108
+ isLoading?: boolean;
109
+ /** Scroll offset multiplier for early loading trigger (default: 1 = 100% of viewport height). */
110
+ scrollOffset?: number;
111
+ /** Content for the load more row. */
112
+ children?: JSX.Element;
113
+ /** The CSS className for the element. */
114
+ class?: ClassNameOrFunction<{
115
+ isLoading: boolean;
116
+ }>;
117
+ /** The inline style for the element. */
118
+ style?: StyleOrFunction<{
119
+ isLoading: boolean;
120
+ }>;
121
+ }
122
+ export interface ListBoxSectionProps extends SectionProps {
76
123
  }
77
124
  interface ListBoxContextValue<T> {
78
125
  state: ListState<T>;
126
+ isDisabled: () => boolean;
127
+ dragAndDropHooks?: DragAndDropHooks<unknown>;
128
+ dragState?: unknown;
129
+ dropState?: unknown;
130
+ slots?: Record<string, Partial<ListBoxProps<T>>>;
79
131
  }
80
132
  export declare const ListBoxContext: import("solid-js").Context<ListBoxContextValue<unknown> | null>;
81
133
  export declare const ListBoxStateContext: import("solid-js").Context<ListState<unknown> | null>;
134
+ export declare const ListStateContext: import("solid-js").Context<ListState<unknown> | null>;
82
135
  /**
83
136
  * A listbox displays a list of options and allows a user to select one or more of them.
84
137
  */
85
138
  export declare function ListBox<T>(props: ListBoxProps<T>): JSX.Element;
86
139
  export declare namespace ListBox {
87
140
  var Option: typeof ListBoxOption;
141
+ var LoadMoreItem: typeof ListBoxLoadMoreItem;
88
142
  }
89
143
  /**
90
144
  * An option in a listbox.
91
145
  */
92
146
  export declare function ListBoxOption<T>(props: ListBoxOptionProps<T>): JSX.Element;
147
+ /**
148
+ * Load more sentinel item for listbox collections.
149
+ */
150
+ export declare function ListBoxLoadMoreItem(props: ListBoxLoadMoreItemProps): JSX.Element;
151
+ /**
152
+ * Section primitive alias for ListBox composition parity.
153
+ */
154
+ export declare function ListBoxSection(props: ListBoxSectionProps): JSX.Element;
93
155
  export {};
94
156
  //# sourceMappingURL=ListBox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListBox.d.ts","sourceRoot":"","sources":["../src/ListBox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListBox.d.ts","sourceRoot":"","sources":["../src/ListBox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Accessor } from "solid-js";
2
+ import type { DropTarget } from "@proyecto-viviana/solid-stately";
3
+ type Direction = "ltr" | "rtl";
4
+ type Orientation = "horizontal" | "vertical";
5
+ type Layout = "stack" | "grid";
6
+ interface CollectionNodeLike {
7
+ key: string | number;
8
+ type?: string;
9
+ }
10
+ export interface ListDropTargetDelegateOptions {
11
+ layout?: Layout;
12
+ orientation?: Orientation;
13
+ direction?: Direction;
14
+ }
15
+ export declare class ListDropTargetDelegate {
16
+ private collection;
17
+ private ref;
18
+ private layout;
19
+ private orientation;
20
+ private direction;
21
+ constructor(collection: Iterable<CollectionNodeLike> | (() => Iterable<CollectionNodeLike>), ref: Accessor<HTMLElement | null>, options?: ListDropTargetDelegateOptions);
22
+ private getCollection;
23
+ private getPrimaryStart;
24
+ private getPrimaryEnd;
25
+ private getSecondaryStart;
26
+ private getSecondaryEnd;
27
+ private getFlowStart;
28
+ private getFlowEnd;
29
+ private getFlowSize;
30
+ private getItemKeys;
31
+ private resolveBoundaryTarget;
32
+ private resolveTransitionTarget;
33
+ private resolveNeighborTarget;
34
+ getKeyboardNavigationTarget(target: DropTarget | null, direction: "next" | "previous", isValidDropTarget: (target: DropTarget) => boolean): DropTarget | null;
35
+ getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget;
36
+ }
37
+ export {};
38
+ //# sourceMappingURL=ListDropTargetDelegate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListDropTargetDelegate.d.ts","sourceRoot":"","sources":["../src/ListDropTargetDelegate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAC/B,KAAK,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAC7C,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/B,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAOD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,UAAU,CAAsE;IACxF,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAAY;gBAG3B,UAAU,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAC/E,GAAG,EAAE,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,EACjC,OAAO,CAAC,EAAE,6BAA6B;IASzC,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,uBAAuB;IAmC/B,OAAO,CAAC,qBAAqB;IAwB7B,2BAA2B,CACzB,MAAM,EAAE,UAAU,GAAG,IAAI,EACzB,SAAS,EAAE,MAAM,GAAG,UAAU,EAC9B,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,GACjD,UAAU,GAAG,IAAI;IASpB,sBAAsB,CACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,iBAAiB,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,GACjD,UAAU;CA8Gd"}
package/dist/Menu.d.ts CHANGED
@@ -4,19 +4,23 @@
4
4
  * A pre-wired headless menu that combines state + aria hooks.
5
5
  * Port of react-aria-components/src/Menu.tsx
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaMenuProps, type AriaMenuItemProps, type AriaMenuTriggerProps } from '@proyecto-viviana/solidaria';
9
- import { type MenuState, type OverlayTriggerState, type Key } from '@proyecto-viviana/solid-stately';
10
- import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from './utils';
7
+ import { type JSX } from "solid-js";
8
+ import { type AriaMenuProps, type AriaMenuItemProps, type AriaMenuTriggerProps } from "@proyecto-viviana/solidaria";
9
+ import { type MenuState, type MenuStateProps, type OverlayTriggerState, type Key, type SelectionMode, type SelectionStateProps } from "@proyecto-viviana/solid-stately";
10
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
11
+ import { type DragAndDropHooks } from "./useDragAndDrop";
12
+ import { type CollectionEntry, type SectionProps } from "./Collection";
11
13
  export interface MenuRenderProps {
12
14
  /** Whether the menu is focused. */
13
15
  isFocused: boolean;
14
16
  /** Whether the menu is open. */
15
17
  isOpen: boolean;
18
+ /** Whether the menu has no items. */
19
+ isEmpty: boolean;
16
20
  }
17
- export interface MenuProps<T> extends Omit<AriaMenuProps, 'children'>, SlotProps {
21
+ export interface MenuProps<T> extends Omit<AriaMenuProps, "children">, SlotProps, Pick<MenuStateProps<T>, "selectionMode" | "selectionBehavior" | "disallowEmptySelection" | "selectedKeys" | "defaultSelectedKeys" | "onSelectionChange" | "allowDuplicateSelectionEvents"> {
18
22
  /** The items to render in the menu. */
19
- items: T[];
23
+ items?: CollectionEntry<T>[];
20
24
  /** Function to get the key from an item. */
21
25
  getKey?: (item: T) => Key;
22
26
  /** Function to get the text value from an item. */
@@ -30,15 +34,29 @@ export interface MenuProps<T> extends Omit<AriaMenuProps, 'children'>, SlotProps
30
34
  /** Handler called when the menu should close. */
31
35
  onClose?: () => void;
32
36
  /** The children of the component. A function may be provided to render each item. */
33
- children: (item: T) => JSX.Element;
37
+ children?: JSX.Element | ((item: T) => JSX.Element);
38
+ /** Internal lazy static children accessor used when collection children need menu context. */
39
+ staticChildren?: () => JSX.Element | undefined;
34
40
  /** The CSS className for the element. */
35
41
  class?: ClassNameOrFunction<MenuRenderProps>;
36
42
  /** The inline style for the element. */
37
43
  style?: StyleOrFunction<MenuRenderProps>;
44
+ /** Content to display when the menu has no items. */
45
+ renderEmptyState?: () => JSX.Element;
46
+ /** Whether the menu should close when an item is selected. */
47
+ shouldCloseOnSelect?: boolean;
48
+ /** Ref for the menu element. */
49
+ ref?: RefLike<HTMLUListElement>;
50
+ /** Custom renderer for the menu element. */
51
+ render?: (props: JSX.HTMLAttributes<HTMLUListElement>, renderProps: MenuRenderProps) => JSX.Element;
52
+ /** Drag and drop hooks from `useDragAndDrop`. */
53
+ dragAndDropHooks?: DragAndDropHooks<T>;
38
54
  }
39
55
  export interface MenuItemRenderProps {
40
56
  /** Whether the item is selected. */
41
57
  isSelected: boolean;
58
+ /** The parent menu selection mode. */
59
+ selectionMode: SelectionMode;
42
60
  /** Whether the item is focused. */
43
61
  isFocused: boolean;
44
62
  /** Whether the item has keyboard focus. */
@@ -49,8 +67,12 @@ export interface MenuItemRenderProps {
49
67
  isHovered: boolean;
50
68
  /** Whether the item is disabled. */
51
69
  isDisabled: boolean;
70
+ /** Whether the item opens a submenu. */
71
+ hasSubmenu: boolean;
72
+ /** Whether the submenu is currently open. */
73
+ isOpen: boolean;
52
74
  }
53
- export interface MenuItemProps<T> extends Omit<AriaMenuItemProps, 'children' | 'key'>, SlotProps {
75
+ export interface MenuItemProps<T> extends Omit<AriaMenuItemProps, "children" | "key">, SlotProps {
54
76
  /** The unique key for the item. */
55
77
  id: Key;
56
78
  /** The item value. */
@@ -65,6 +87,24 @@ export interface MenuItemProps<T> extends Omit<AriaMenuItemProps, 'children' | '
65
87
  textValue?: string;
66
88
  /** Handler called when the item is activated. */
67
89
  onAction?: () => void;
90
+ /** A URL to link to. Turns the menu item into a link. */
91
+ href?: string;
92
+ /** The target window for the link. */
93
+ target?: string;
94
+ /** The relationship between the linked resource and the current page. */
95
+ rel?: string;
96
+ /** Causes the browser to download the linked URL. */
97
+ download?: boolean | string;
98
+ /** Handler called when hover starts. */
99
+ onHoverStart?: () => void;
100
+ /** Handler called when hover ends. */
101
+ onHoverEnd?: () => void;
102
+ /** Handler called when hover state changes. */
103
+ onHoverChange?: (isHovered: boolean) => void;
104
+ /** Ref for the menu item element. */
105
+ ref?: RefLike<HTMLLIElement>;
106
+ /** Custom renderer for the menu item element. */
107
+ render?: (props: JSX.HTMLAttributes<HTMLLIElement>, renderProps: MenuItemRenderProps) => JSX.Element;
68
108
  }
69
109
  export interface MenuTriggerRenderProps {
70
110
  /** Whether the menu is open. */
@@ -80,7 +120,7 @@ export interface MenuTriggerRenderProps {
80
120
  /** Whether the trigger is disabled. */
81
121
  isDisabled: boolean;
82
122
  }
83
- export interface MenuTriggerProps extends Omit<AriaMenuTriggerProps, 'children'>, SlotProps {
123
+ export interface MenuTriggerProps extends Omit<AriaMenuTriggerProps, "children">, SlotProps {
84
124
  /** The children of the trigger (typically a Button and Menu). */
85
125
  children: JSX.Element;
86
126
  /** Whether the menu trigger is disabled. */
@@ -92,8 +132,24 @@ export interface MenuTriggerProps extends Omit<AriaMenuTriggerProps, 'children'>
92
132
  /** Handler called when the open state changes. */
93
133
  onOpenChange?: (isOpen: boolean) => void;
94
134
  }
135
+ export interface SubmenuTriggerProps extends SlotProps {
136
+ /** The trigger item followed by submenu content. */
137
+ children: JSX.Element;
138
+ /** Delay before opening the submenu on hover. */
139
+ delay?: number;
140
+ /** Whether the submenu is open (controlled). */
141
+ isOpen?: boolean;
142
+ /** Whether the submenu is open by default. */
143
+ defaultOpen?: boolean;
144
+ /** Handler called when the submenu open state changes. */
145
+ onOpenChange?: (isOpen: boolean) => void;
146
+ }
95
147
  interface MenuContextValue<T> {
96
148
  state: MenuState<T>;
149
+ isDisabled: () => boolean;
150
+ dragAndDropHooks?: DragAndDropHooks<T>;
151
+ dragState?: unknown;
152
+ dropState?: unknown;
97
153
  }
98
154
  interface MenuTriggerContextValue {
99
155
  state: OverlayTriggerState;
@@ -103,14 +159,19 @@ interface MenuTriggerContextValue {
103
159
  export declare const MenuContext: import("solid-js").Context<MenuContextValue<unknown> | null>;
104
160
  export declare const MenuStateContext: import("solid-js").Context<MenuState<unknown> | null>;
105
161
  export declare const MenuTriggerContext: import("solid-js").Context<MenuTriggerContextValue | null>;
162
+ export declare const RootMenuTriggerStateContext: import("solid-js").Context<OverlayTriggerState | null>;
163
+ type RefLike<T> = ((el: T) => void) | {
164
+ current?: T | null;
165
+ } | undefined;
106
166
  /**
107
167
  * A menu trigger wraps a button and menu, handling the open/close state.
108
168
  */
109
169
  export declare function MenuTrigger(props: MenuTriggerProps): JSX.Element;
170
+ export declare function SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element;
110
171
  /**
111
172
  * A button that opens a menu.
112
173
  */
113
- export interface MenuButtonProps extends SlotProps {
174
+ export interface MenuButtonProps extends SlotProps, Omit<JSX.HTMLAttributes<HTMLButtonElement>, "class" | "style" | "children"> {
114
175
  /** The children of the button. A function may be provided to receive render props. */
115
176
  children?: RenderChildren<MenuTriggerRenderProps>;
116
177
  /** The CSS className for the element. */
@@ -120,6 +181,10 @@ export interface MenuButtonProps extends SlotProps {
120
181
  /** Whether the button is disabled. */
121
182
  isDisabled?: boolean;
122
183
  }
184
+ export interface MenuSectionProps extends SectionProps, Pick<SelectionStateProps, "selectionMode" | "selectionBehavior" | "disallowEmptySelection" | "selectedKeys" | "defaultSelectedKeys" | "onSelectionChange" | "disabledKeys" | "disabledBehavior" | "allowDuplicateSelectionEvents"> {
185
+ /** Whether menu items in this section should close the menu when selected. */
186
+ shouldCloseOnSelect?: boolean;
187
+ }
123
188
  export declare function MenuButton(props: MenuButtonProps): JSX.Element;
124
189
  /**
125
190
  * A menu displays a list of actions or options for the user to choose from.
@@ -132,5 +197,9 @@ export declare namespace Menu {
132
197
  * An item in a menu.
133
198
  */
134
199
  export declare function MenuItem<T>(props: MenuItemProps<T>): JSX.Element;
200
+ /**
201
+ * Section primitive alias for Menu composition parity.
202
+ */
203
+ export declare function MenuSection(props: MenuSectionProps): JSX.Element;
135
204
  export {};
136
205
  //# sourceMappingURL=Menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../src/Menu.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAOT,MAAM,UAAU,CAAC;AAClB,OAAO,EASL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAEf,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,CAC1B,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EACrC,SAAS;IACX,uCAAuC;IACvC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IAC1B,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACnC,gDAAgD;IAChD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IACnC,8BAA8B;IAC9B,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9B,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qFAAqF;IACrF,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC;IACnC,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAC7C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,CAC9B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,KAAK,CAAC,EACjD,SAAS;IACX,mCAAmC;IACnC,EAAE,EAAE,GAAG,CAAC;IACR,sBAAsB;IACtB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,oFAAoF;IACpF,QAAQ,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC/C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACjD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAC7C,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,EAAE,SAAS;IACzF,iEAAiE;IACjE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IACtB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAMD,UAAU,gBAAgB,CAAC,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACrB;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED,eAAO,MAAM,WAAW,8DAAwD,CAAC;AACjF,eAAO,MAAM,gBAAgB,uDAAiD,CAAC;AAC/E,eAAO,MAAM,kBAAkB,4DAAsD,CAAC;AAMtF;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAqChE;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,sFAAsF;IACtF,QAAQ,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAClD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAChD,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAwF9D;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAsIxD;yBAtIe,IAAI;;;AAwIpB;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAwFhE"}
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../src/Menu.tsx"],"names":[],"mappings":"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"}