@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
@@ -4,26 +4,33 @@
4
4
  * A pre-wired headless breadcrumbs component that combines aria hooks.
5
5
  * Port of react-aria-components Breadcrumbs.
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaBreadcrumbsProps, type AriaBreadcrumbItemProps } from '@proyecto-viviana/solidaria';
9
- import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from './utils';
7
+ import { type Accessor, type JSX } from "solid-js";
8
+ import { type AriaBreadcrumbsProps, type AriaBreadcrumbItemProps } 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 BreadcrumbsRenderProps {
11
14
  /** Whether the breadcrumbs are disabled. */
12
15
  isDisabled: boolean;
13
16
  }
14
- export interface BreadcrumbsProps<T> extends Omit<AriaBreadcrumbsProps, 'isDisabled'>, SlotProps {
17
+ export interface BreadcrumbsProps<T> extends Omit<AriaBreadcrumbsProps, "isDisabled">, SlotProps {
15
18
  /** The items to render in the breadcrumbs. */
16
19
  items?: T[];
17
20
  /** Function to get the key from an item. */
18
21
  getKey?: (item: T) => string | number;
19
22
  /** Whether the breadcrumbs are disabled. */
20
23
  isDisabled?: boolean;
21
- /** The children of the component - render function for each item. */
22
- children: (item: T) => JSX.Element;
24
+ /** Handler called when a breadcrumb item is activated. */
25
+ onAction?: (key: string | number) => void;
26
+ /** The children of the component, or a render function for collection items. */
27
+ children?: JSX.Element | ((item: T) => JSX.Element);
23
28
  /** The CSS className for the element. */
24
29
  class?: ClassNameOrFunction<BreadcrumbsRenderProps>;
25
30
  /** The inline style for the element. */
26
31
  style?: StyleOrFunction<BreadcrumbsRenderProps>;
32
+ /** Ref for the navigation element. */
33
+ ref?: RefLike<HTMLElement>;
27
34
  }
28
35
  export interface BreadcrumbItemRenderProps {
29
36
  /** Whether this is the current/last item. */
@@ -39,7 +46,7 @@ export interface BreadcrumbItemRenderProps {
39
46
  /** Whether the item is hovered. */
40
47
  isHovered: boolean;
41
48
  }
42
- export interface BreadcrumbItemProps extends Omit<AriaBreadcrumbItemProps, 'isDisabled'>, SlotProps {
49
+ export interface BreadcrumbItemProps extends Omit<AriaBreadcrumbItemProps, "isDisabled">, SlotProps {
43
50
  /** The children of the breadcrumb item. */
44
51
  children?: RenderChildren<BreadcrumbItemRenderProps>;
45
52
  /** The CSS className for the element. */
@@ -48,11 +55,23 @@ export interface BreadcrumbItemProps extends Omit<AriaBreadcrumbItemProps, 'isDi
48
55
  style?: StyleOrFunction<BreadcrumbItemRenderProps>;
49
56
  /** Whether this item is disabled. */
50
57
  isDisabled?: boolean;
58
+ /** Ref for the breadcrumb item element. */
59
+ ref?: RefLike<HTMLElement>;
51
60
  }
52
61
  interface BreadcrumbsContextValue {
53
- isDisabled: boolean;
62
+ isDisabled: Accessor<boolean>;
63
+ onAction?: (key: string | number) => void;
64
+ registerStaticItem?: () => number;
65
+ staticItemCount?: Accessor<number>;
66
+ resetStaticItems?: () => void;
67
+ setStaticItemCount?: (count: number) => void;
54
68
  }
55
69
  export declare const BreadcrumbsContext: import("solid-js").Context<BreadcrumbsContextValue | null>;
70
+ interface BreadcrumbItemContextValue {
71
+ itemKey: string | number | null;
72
+ isLast: Accessor<boolean>;
73
+ }
74
+ export declare const BreadcrumbItemContext: import("solid-js").Context<BreadcrumbItemContextValue | null>;
56
75
  /**
57
76
  * Breadcrumbs show hierarchy and navigational context for a user's location within an application.
58
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../src/Breadcrumbs.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAE,SAAS;IAC9F,8CAA8C;IAC9C,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC;IACnC,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,EAAE,SAAS;IACjG,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACrD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACvD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACnD,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,UAAU,uBAAuB;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,4DAAsD,CAAC;AAMtF;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAiEtE;yBAjEe,WAAW;;;AAmE3B;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA6FtE"}
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../src/Breadcrumbs.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,GAAG,EAST,MAAM,UAAU,CAAC;AAElB,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAE7B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAEjB,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;AAczE,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,EAAE,SAAS;IAC9F,8CAA8C;IAC9C,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IACZ,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtC,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C,gFAAgF;IAChF,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACpD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;IACpD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAChD,sCAAsC;IACtC,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,EAAE,SAAS;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,cAAc,CAAC,yBAAyB,CAAC,CAAC;IACrD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACvD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,yBAAyB,CAAC,CAAC;IACnD,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2CAA2C;IAC3C,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC5B;AAED,UAAU,uBAAuB;IAC/B,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,kBAAkB,4DAAsD,CAAC;AAEtF,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC3B;AAED,eAAO,MAAM,qBAAqB,+DAAyD,CAAC;AAO5F;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA6GtE;yBA7Ge,WAAW;;;AAgI3B;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAyJtE"}
package/dist/Button.d.ts CHANGED
@@ -4,9 +4,12 @@
4
4
  * A pre-wired headless button that combines state + aria hooks.
5
5
  * Port of react-aria-components/src/Button.tsx
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaButtonProps } from '@proyecto-viviana/solidaria';
9
- import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from './utils';
7
+ import { type JSX } from "solid-js";
8
+ import { type AriaButtonProps, type HoverEvent } 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 ButtonRenderProps {
11
14
  /** Whether the button is currently hovered with a mouse. */
12
15
  isHovered: boolean;
@@ -18,16 +21,35 @@ export interface ButtonRenderProps {
18
21
  isFocusVisible: boolean;
19
22
  /** Whether the button is disabled. */
20
23
  isDisabled: boolean;
24
+ /** Whether the button is currently in a pending state. */
25
+ isPending: boolean;
21
26
  }
22
- export interface ButtonProps extends Omit<AriaButtonProps, 'children'>, SlotProps {
27
+ export interface ButtonProps extends Omit<AriaButtonProps, "children">, SlotProps {
23
28
  /** The children of the component. A function may be provided to receive render props. */
24
29
  children?: RenderChildren<ButtonRenderProps>;
25
30
  /** The CSS className for the element. */
26
31
  class?: ClassNameOrFunction<ButtonRenderProps>;
27
32
  /** The inline style for the element. */
28
33
  style?: StyleOrFunction<ButtonRenderProps>;
34
+ /** Custom renderer for the outer button element. */
35
+ render?: (props: JSX.ButtonHTMLAttributes<HTMLButtonElement>, renderProps: ButtonRenderProps) => JSX.Element;
36
+ /** Ref for the underlying button element. */
37
+ ref?: RefLike<HTMLButtonElement>;
38
+ /** Whether the button is in a pending state. */
39
+ isPending?: boolean;
40
+ /** Keeps pending buttons focusable by using aria-disabled without a native disabled attribute. */
41
+ isPendingFocusable?: boolean;
42
+ /** Handler called when hover starts. */
43
+ onHoverStart?: (e: HoverEvent) => void;
44
+ /** Handler called when hover ends. */
45
+ onHoverEnd?: (e: HoverEvent) => void;
46
+ /** Handler called when hover state changes. */
47
+ onHoverChange?: (isHovered: boolean) => void;
29
48
  }
30
- export declare const ButtonContext: import("solid-js").Context<ButtonProps | null>;
49
+ export interface ButtonContextValue extends ButtonProps {
50
+ slots?: Record<string, ButtonProps>;
51
+ }
52
+ export declare const ButtonContext: import("solid-js").Context<ButtonContextValue | null>;
31
53
  /**
32
54
  * A button allows a user to perform an action.
33
55
  *
@@ -46,4 +68,5 @@ export declare const ButtonContext: import("solid-js").Context<ButtonProps | nul
46
68
  * ```
47
69
  */
48
70
  export declare function Button(props: ButtonProps): JSX.Element;
71
+ export {};
49
72
  //# sourceMappingURL=Button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAKT,MAAM,UAAU,CAAC;AAClB,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAOjB,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,SAAS;IACX,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;CAC5C;AAMD,eAAO,MAAM,aAAa,gDAA0C,CAAC;AAMrE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAwJtD"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../src/Button.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAOT,MAAM,UAAU,CAAC;AAClB,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,UAAU,EAEhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAIjB,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;AA6DzE,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,cAAc,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EAAE,SAAS;IAC/E,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAC7C,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAC3C,oDAAoD;IACpD,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,GAAG,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAClD,WAAW,EAAE,iBAAiB,KAC3B,GAAG,CAAC,OAAO,CAAC;IACjB,6CAA6C;IAC7C,GAAG,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,sCAAsC;IACtC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,aAAa,uDAAiD,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CA2TtD"}
@@ -4,17 +4,22 @@
4
4
  * Pre-wired headless calendar component that combines aria hooks.
5
5
  * Port of react-aria-components/src/Calendar.tsx
6
6
  */
7
- import { type JSX } from 'solid-js';
8
- import { type AriaCalendarProps, type AriaCalendarGridProps } from '@proyecto-viviana/solidaria';
9
- import { type CalendarState, type CalendarStateProps, type CalendarDate, type DateValue } 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 AriaCalendarProps, type AriaCalendarGridProps } from "@proyecto-viviana/solidaria";
9
+ import { type CalendarState, type CalendarStateProps, type CalendarDate, type DateValue } from "@proyecto-viviana/solid-stately";
10
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
11
+ type RefLike<T> = ((el: T) => void) | {
12
+ current?: T | null;
13
+ } | undefined;
11
14
  export interface CalendarRenderProps {
12
15
  /** Whether the calendar is disabled. */
13
16
  isDisabled: boolean;
14
17
  /** Whether the calendar is read-only. */
15
18
  isReadOnly: boolean;
19
+ /** Whether the current selection is invalid. */
20
+ isInvalid: boolean;
16
21
  }
17
- export interface CalendarProps<T extends DateValue = DateValue> extends Omit<AriaCalendarProps, 'id' | 'isDisabled' | 'isReadOnly'>, Omit<CalendarStateProps<T>, 'locale'>, SlotProps {
22
+ export interface CalendarProps<T extends DateValue = DateValue> extends Omit<AriaCalendarProps, "id" | "isDisabled" | "isReadOnly">, Omit<CalendarStateProps<T>, "locale">, SlotProps {
18
23
  /** The children of the component. */
19
24
  children?: JSX.Element;
20
25
  /** The CSS className for the element. */
@@ -23,18 +28,22 @@ export interface CalendarProps<T extends DateValue = DateValue> extends Omit<Ari
23
28
  style?: StyleOrFunction<CalendarRenderProps>;
24
29
  /** The locale to use for formatting. */
25
30
  locale?: string;
31
+ /** Ref for the calendar root element. */
32
+ ref?: RefLike<HTMLDivElement>;
26
33
  }
27
34
  export interface CalendarGridRenderProps {
28
35
  /** Whether the grid is disabled. */
29
36
  isDisabled: boolean;
30
37
  }
31
- export interface CalendarGridProps extends Omit<AriaCalendarGridProps, 'startDate' | 'endDate'>, SlotProps {
38
+ export interface CalendarGridProps extends Omit<AriaCalendarGridProps, "startDate" | "endDate">, SlotProps {
32
39
  /** The children of the component (render function receiving weeks). */
33
40
  children?: (date: CalendarDate) => JSX.Element;
34
41
  /** The CSS className for the element. */
35
42
  class?: ClassNameOrFunction<CalendarGridRenderProps>;
36
43
  /** The inline style for the element. */
37
44
  style?: StyleOrFunction<CalendarGridRenderProps>;
45
+ /** Class name for weekday header cells. */
46
+ headerCellClass?: string;
38
47
  /** Number of weeks to offset from the start. */
39
48
  offset?: {
40
49
  months?: number;
@@ -45,16 +54,30 @@ export interface CalendarCellRenderProps {
45
54
  isSelected: boolean;
46
55
  /** Whether the cell is focused. */
47
56
  isFocused: boolean;
57
+ /** Whether the cell should display a keyboard focus ring. */
58
+ isFocusVisible: boolean;
48
59
  /** Whether the cell is disabled. */
49
60
  isDisabled: boolean;
50
61
  /** Whether the cell is unavailable. */
51
62
  isUnavailable: boolean;
63
+ /** Whether the cell is part of an invalid selection. */
64
+ isInvalid: boolean;
52
65
  /** Whether the cell is outside the visible month. */
53
66
  isOutsideMonth: boolean;
54
67
  /** Whether the cell represents today. */
55
68
  isToday: boolean;
56
69
  /** Whether the cell is pressed. */
57
70
  isPressed: boolean;
71
+ /** Whether the cell is hovered. */
72
+ isHovered: boolean;
73
+ /** Whether the cell is the first day slot in its row. */
74
+ isFirstChild: boolean;
75
+ /** Whether the cell is the last day slot in its row. */
76
+ isLastChild: boolean;
77
+ /** Whether the cell is in the first rendered week row. */
78
+ isFirstWeek: boolean;
79
+ /** Whether the cell is in the last rendered week row. */
80
+ isLastWeek: boolean;
58
81
  /** The formatted date string. */
59
82
  formattedDate: string;
60
83
  }
@@ -67,6 +90,10 @@ export interface CalendarCellProps extends SlotProps {
67
90
  class?: ClassNameOrFunction<CalendarCellRenderProps>;
68
91
  /** The inline style for the element. */
69
92
  style?: StyleOrFunction<CalendarCellRenderProps>;
93
+ /** Class name for the table cell wrapper. */
94
+ cellClass?: ClassNameOrFunction<CalendarCellRenderProps>;
95
+ /** Inline style for the table cell wrapper. */
96
+ cellStyle?: StyleOrFunction<CalendarCellRenderProps>;
70
97
  }
71
98
  export interface CalendarHeaderCellProps extends SlotProps {
72
99
  /** The children of the component. */
@@ -76,6 +103,16 @@ export interface CalendarHeaderCellProps extends SlotProps {
76
103
  /** The inline style for the element. */
77
104
  style?: JSX.CSSProperties;
78
105
  }
106
+ export interface CalendarGridHeaderProps extends SlotProps {
107
+ children?: JSX.Element;
108
+ class?: string;
109
+ style?: JSX.CSSProperties;
110
+ }
111
+ export interface CalendarGridBodyProps extends SlotProps {
112
+ children?: JSX.Element;
113
+ class?: string;
114
+ style?: JSX.CSSProperties;
115
+ }
79
116
  export declare const CalendarContext: import("solid-js").Context<CalendarState<DateValue> | null>;
80
117
  export declare function useCalendarContext(): CalendarState<DateValue>;
81
118
  /**
@@ -97,6 +134,10 @@ export declare function useCalendarContext(): CalendarState<DateValue>;
97
134
  */
98
135
  export declare function Calendar<T extends DateValue = CalendarDate>(props: CalendarProps<T>): JSX.Element;
99
136
  export interface CalendarHeadingProps extends SlotProps {
137
+ /** The children of the component. */
138
+ children?: RenderChildren<{
139
+ title: string;
140
+ }>;
100
141
  /** The CSS className for the element. */
101
142
  class?: string;
102
143
  /** The inline style for the element. */
@@ -108,7 +149,7 @@ export interface CalendarHeadingProps extends SlotProps {
108
149
  export declare function CalendarHeading(props: CalendarHeadingProps): JSX.Element;
109
150
  export interface CalendarButtonProps extends SlotProps {
110
151
  /** The slot for this button (previous or next). */
111
- slot?: 'previous' | 'next';
152
+ slot?: "previous" | "next";
112
153
  /** The children of the component. */
113
154
  children?: JSX.Element;
114
155
  /** The CSS className for the element. */
@@ -126,6 +167,9 @@ export declare function CalendarButton(props: CalendarButtonProps): JSX.Element;
126
167
  * Displays a grid of calendar cells.
127
168
  */
128
169
  export declare function CalendarGrid(props: CalendarGridProps): JSX.Element;
170
+ export declare function CalendarGridHeader(props: CalendarGridHeaderProps): JSX.Element;
171
+ export declare function CalendarGridBody(props: CalendarGridBodyProps): JSX.Element;
172
+ export declare function CalendarHeaderCell(props: CalendarHeaderCellProps): JSX.Element;
129
173
  /**
130
174
  * A cell in the calendar grid representing a single day.
131
175
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../src/Calendar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../src/Calendar.tsx"],"names":[],"mappings":"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"}
@@ -4,10 +4,13 @@
4
4
  * Pre-wired headless checkbox components that combine state + aria hooks.
5
5
  * Port of react-aria-components/src/Checkbox.tsx
6
6
  */
7
- import { type JSX, type ParentProps } from 'solid-js';
8
- import { type AriaCheckboxProps, type AriaCheckboxGroupProps } from '@proyecto-viviana/solidaria';
9
- import { type CheckboxGroupState } 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 AriaCheckboxProps, type AriaCheckboxGroupProps } from "@proyecto-viviana/solidaria";
9
+ import { type CheckboxGroupState } from "@proyecto-viviana/solid-stately";
10
+ import { type RenderChildren, type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
11
+ type RefLike<T> = ((el: T) => void) | {
12
+ current?: T | null;
13
+ } | undefined;
11
14
  export interface CheckboxGroupRenderProps {
12
15
  /** Whether the checkbox group is disabled. */
13
16
  isDisabled: boolean;
@@ -42,27 +45,48 @@ export interface CheckboxRenderProps {
42
45
  /** Whether the checkbox is required. */
43
46
  isRequired: boolean;
44
47
  }
45
- export interface CheckboxGroupProps extends Omit<AriaCheckboxGroupProps, 'children' | 'label' | 'description' | 'errorMessage'>, SlotProps {
48
+ export interface CheckboxGroupProps extends Omit<AriaCheckboxGroupProps, "children" | "label">, SlotProps {
46
49
  /** The children of the component. A function may be provided to receive render props. */
47
50
  children?: RenderChildren<CheckboxGroupRenderProps>;
48
51
  /** The CSS className for the element. */
49
52
  class?: ClassNameOrFunction<CheckboxGroupRenderProps>;
50
53
  /** The inline style for the element. */
51
54
  style?: StyleOrFunction<CheckboxGroupRenderProps>;
55
+ /** Ref for the checkbox group root element. */
56
+ ref?: RefLike<HTMLDivElement>;
52
57
  }
53
- export interface CheckboxProps extends Omit<AriaCheckboxProps, 'children'>, SlotProps {
58
+ export interface CheckboxProps extends Omit<AriaCheckboxProps, "children">, SlotProps {
54
59
  /** The children of the component. A function may be provided to receive render props. */
55
60
  children?: RenderChildren<CheckboxRenderProps>;
56
61
  /** The CSS className for the element. */
57
62
  class?: ClassNameOrFunction<CheckboxRenderProps>;
58
63
  /** The inline style for the element. */
59
64
  style?: StyleOrFunction<CheckboxRenderProps>;
65
+ /** Custom renderer for the outer label element. */
66
+ render?: (props: JSX.LabelHTMLAttributes<HTMLLabelElement>, renderProps: CheckboxRenderProps) => JSX.Element;
67
+ /** Ref for the outer label element. */
68
+ ref?: RefLike<HTMLLabelElement>;
69
+ /** Ref for the underlying input element. */
70
+ inputRef?: RefLike<HTMLInputElement>;
60
71
  /** Whether the checkbox is indeterminate. */
61
72
  isIndeterminate?: boolean;
73
+ /** A description for the checkbox. */
74
+ description?: JSX.Element;
75
+ /** An error message for the checkbox. */
76
+ errorMessage?: JSX.Element;
77
+ /** Handler called when hover starts. */
78
+ onHoverStart?: () => void;
79
+ /** Handler called when hover ends. */
80
+ onHoverEnd?: () => void;
81
+ /** Handler called when hover state changes. */
82
+ onHoverChange?: (isHovered: boolean) => void;
62
83
  }
63
84
  export declare const CheckboxGroupContext: import("solid-js").Context<CheckboxGroupProps | null>;
64
85
  export declare const CheckboxGroupStateContext: import("solid-js").Context<CheckboxGroupState | null>;
65
- export declare const CheckboxContext: import("solid-js").Context<CheckboxProps | null>;
86
+ export interface CheckboxContextValue extends CheckboxProps {
87
+ slots?: Record<string, CheckboxProps>;
88
+ }
89
+ export declare const CheckboxContext: import("solid-js").Context<CheckboxContextValue | null>;
66
90
  /**
67
91
  * A checkbox group allows a user to select multiple items from a list of options.
68
92
  *
@@ -74,7 +98,7 @@ export declare const CheckboxContext: import("solid-js").Context<CheckboxProps |
74
98
  * </CheckboxGroup>
75
99
  * ```
76
100
  */
77
- export declare function CheckboxGroup(props: ParentProps<CheckboxGroupProps>): JSX.Element;
101
+ export declare function CheckboxGroup(props: CheckboxGroupProps): JSX.Element;
78
102
  /**
79
103
  * A checkbox allows a user to select multiple items from a list of individual items,
80
104
  * or to mark one individual item as selected.
@@ -94,4 +118,5 @@ export declare function CheckboxGroup(props: ParentProps<CheckboxGroupProps>): J
94
118
  * ```
95
119
  */
96
120
  export declare function Checkbox(props: CheckboxProps): JSX.Element;
121
+ export {};
97
122
  //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,KAAK,GAAG,EAER,KAAK,WAAW,EAKjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,SAAS,EAGf,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,+CAA+C;IAC/C,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,mCAAmC;IACnC,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC,EACzF,SAAS;IACX,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IACpD,yCAAyC;IACzC,KAAK,CAAC,EAAE,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACtD,wCAAwC;IACxC,KAAK,CAAC,EAAE,eAAe,CAAC,wBAAwB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EACzC,SAAS;IACX,yFAAyF;IACzF,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,6CAA6C;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD,eAAO,MAAM,oBAAoB,uDAAiD,CAAC;AACnF,eAAO,MAAM,yBAAyB,uDAAiD,CAAC;AACxF,eAAO,MAAM,eAAe,kDAA4C,CAAC;AAMzE;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,OAAO,CA8EjF;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA6J1D"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Collection composition primitives for solidaria-components.
3
+ *
4
+ * Foundational parity layer for React Spectrum-style composition:
5
+ * Section / Header / Group.
6
+ */
7
+ import { type JSX } from "solid-js";
8
+ import type { Key } from "@proyecto-viviana/solid-stately";
9
+ import type { DragTypes, DropOperation, DropTarget } from "@proyecto-viviana/solid-stately";
10
+ import { createLeafComponent, createBranchComponent, type CollectionProps as AriaCollectionProps, type CollectionBuilderProps as AriaCollectionBuilderProps } from "@proyecto-viviana/solidaria";
11
+ import { type ClassNameOrFunction, type StyleOrFunction, type SlotProps } from "./utils";
12
+ export interface CollectionPrimitiveRenderProps {
13
+ /** Whether the primitive has visible children content. */
14
+ hasChildren: boolean;
15
+ }
16
+ type RefLike<T> = ((el: T) => void) | {
17
+ current?: T | null;
18
+ } | undefined;
19
+ export interface CollectionDropTargetDelegate {
20
+ getDropTargetFromPoint(x: number, y: number, isValidDropTarget: (target: DropTarget) => boolean): DropTarget | null;
21
+ getDropOperation(target: DropTarget, types: DragTypes, allowedOperations: DropOperation[]): DropOperation;
22
+ getKeyboardNavigationTarget?(target: DropTarget | null, direction: "next" | "previous", isValidDropTarget: (target: DropTarget) => boolean): DropTarget | null;
23
+ getKeyboardPageNavigationTarget?(target: DropTarget | null, direction: "next" | "previous", isValidDropTarget: (target: DropTarget) => boolean): DropTarget | null;
24
+ }
25
+ export interface CollectionRendererContextValue<T> {
26
+ /** Render function used by collection parents to render each item node. */
27
+ renderItem: (item: T) => JSX.Element;
28
+ /** Whether collection rendering is currently virtualized. */
29
+ isVirtualized?: boolean;
30
+ /** Optional layout delegate used by virtualized renderers. */
31
+ layoutDelegate?: unknown;
32
+ /** Optional drop target delegate used by DnD-aware collection paths. */
33
+ dropTargetDelegate?: CollectionDropTargetDelegate;
34
+ /** Optional drop indicator renderer for DnD-aware collection paths. */
35
+ renderDropIndicator?: (index: number, position: "before" | "after" | "on") => JSX.Element | undefined;
36
+ }
37
+ export type CollectionEntry<T> = T | CollectionSection<T>;
38
+ export interface CollectionSection<T> {
39
+ /** Optional unique key for the section wrapper. */
40
+ key?: Key;
41
+ /** Optional section header title. */
42
+ title?: JSX.Element;
43
+ /** Optional aria-label for section grouping. */
44
+ "aria-label"?: string;
45
+ /** Items contained in the section. */
46
+ items: T[];
47
+ }
48
+ export interface SectionProps extends SlotProps {
49
+ /** Section contents, usually Header + Group/items. */
50
+ children?: JSX.Element;
51
+ /** Ref for the section element. */
52
+ ref?: RefLike<HTMLDivElement>;
53
+ /** The CSS className for the element. */
54
+ class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;
55
+ /** The inline style for the element. */
56
+ style?: StyleOrFunction<CollectionPrimitiveRenderProps>;
57
+ }
58
+ export interface HeaderProps extends SlotProps {
59
+ /** Header contents, usually section title text. */
60
+ children?: JSX.Element;
61
+ /** Optional heading level when rendered as a heading role. */
62
+ "aria-level"?: number;
63
+ /** The CSS className for the element. */
64
+ class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;
65
+ /** The inline style for the element. */
66
+ style?: StyleOrFunction<CollectionPrimitiveRenderProps>;
67
+ }
68
+ export interface GroupProps extends SlotProps {
69
+ /** Group contents, usually section items. */
70
+ children?: JSX.Element;
71
+ /** The CSS className for the element. */
72
+ class?: ClassNameOrFunction<CollectionPrimitiveRenderProps>;
73
+ /** The inline style for the element. */
74
+ style?: StyleOrFunction<CollectionPrimitiveRenderProps>;
75
+ }
76
+ interface SectionContextValue {
77
+ name: string;
78
+ render: (props: SectionProps, className?: string) => JSX.Element;
79
+ }
80
+ export interface CollectionBranchProps<T> {
81
+ collection: Iterable<T>;
82
+ parent?: unknown;
83
+ renderDropIndicator?: (target: {
84
+ type: "item";
85
+ key: Key;
86
+ dropPosition: "before" | "after" | "on";
87
+ }) => JSX.Element | undefined;
88
+ }
89
+ export interface CollectionRootProps<T> {
90
+ collection: Iterable<T>;
91
+ persistedKeys?: Set<Key> | null;
92
+ renderDropIndicator?: (target: {
93
+ type: "item";
94
+ key: Key;
95
+ dropPosition: "before" | "after" | "on";
96
+ }) => JSX.Element | undefined;
97
+ }
98
+ export interface CollectionRenderer<T = unknown> {
99
+ isVirtualized?: boolean;
100
+ layoutDelegate?: unknown;
101
+ dropTargetDelegate?: CollectionDropTargetDelegate;
102
+ CollectionRoot: (props: CollectionRootProps<T>) => JSX.Element;
103
+ CollectionBranch: (props: CollectionBranchProps<T>) => JSX.Element;
104
+ }
105
+ export declare const CollectionRendererContext: import("solid-js").Context<CollectionRendererContextValue<unknown> | null>;
106
+ export declare const SelectableCollectionContext: import("solid-js").Context<CollectionRendererContextValue<unknown> | null>;
107
+ export declare const SectionContext: import("solid-js").Context<SectionContextValue | null>;
108
+ export declare const GroupContext: import("solid-js").Context<Partial<GroupProps> | null>;
109
+ export declare const HeaderContext: import("solid-js").Context<Partial<HeaderProps> | null>;
110
+ export declare const HeadingContext: import("solid-js").Context<Partial<HeaderProps> | null>;
111
+ export declare function useCollectionRenderer<T>(): CollectionRendererContextValue<T> | null;
112
+ export declare function isCollectionSection<T>(entry: CollectionEntry<T>): entry is CollectionSection<T>;
113
+ export declare function flattenCollectionEntries<T>(entries: CollectionEntry<T>[]): T[];
114
+ export declare const DefaultCollectionRenderer: CollectionRenderer<unknown>;
115
+ export declare function CollectionBuilder<T>(props: AriaCollectionBuilderProps<T>): unknown;
116
+ export declare function Collection<T>(props: AriaCollectionProps<T>): unknown;
117
+ export { createLeafComponent, createBranchComponent };
118
+ /**
119
+ * A semantic section wrapper for grouped collection content.
120
+ */
121
+ export declare function Section(props: SectionProps): JSX.Element;
122
+ /**
123
+ * A header/title primitive for collection sections.
124
+ */
125
+ export declare function Header(props: HeaderProps): JSX.Element;
126
+ /**
127
+ * A grouping primitive for section item containers.
128
+ */
129
+ export declare function Group(props: GroupProps): JSX.Element;
130
+ //# sourceMappingURL=Collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../src/Collection.tsx"],"names":[],"mappings":"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"}