@proyecto-viviana/solidaria 0.0.1

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 (109) hide show
  1. package/dist/button/createButton.d.ts +29 -0
  2. package/dist/button/createButton.d.ts.map +1 -0
  3. package/dist/button/createToggleButton.d.ts +41 -0
  4. package/dist/button/createToggleButton.d.ts.map +1 -0
  5. package/dist/button/index.d.ts +5 -0
  6. package/dist/button/index.d.ts.map +1 -0
  7. package/dist/button/types.d.ts +66 -0
  8. package/dist/button/types.d.ts.map +1 -0
  9. package/dist/checkbox/createCheckbox.d.ts +56 -0
  10. package/dist/checkbox/createCheckbox.d.ts.map +1 -0
  11. package/dist/checkbox/createCheckboxGroup.d.ts +53 -0
  12. package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -0
  13. package/dist/checkbox/createCheckboxGroupItem.d.ts +25 -0
  14. package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -0
  15. package/dist/checkbox/createCheckboxGroupState.d.ts +71 -0
  16. package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -0
  17. package/dist/checkbox/index.d.ts +9 -0
  18. package/dist/checkbox/index.d.ts.map +1 -0
  19. package/dist/index.d.ts +15 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +2834 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/interactions/FocusableProvider.d.ts +26 -0
  24. package/dist/interactions/FocusableProvider.d.ts.map +1 -0
  25. package/dist/interactions/PressEvent.d.ts +63 -0
  26. package/dist/interactions/PressEvent.d.ts.map +1 -0
  27. package/dist/interactions/createFocus.d.ts +31 -0
  28. package/dist/interactions/createFocus.d.ts.map +1 -0
  29. package/dist/interactions/createFocusRing.d.ts +37 -0
  30. package/dist/interactions/createFocusRing.d.ts.map +1 -0
  31. package/dist/interactions/createFocusWithin.d.ts +27 -0
  32. package/dist/interactions/createFocusWithin.d.ts.map +1 -0
  33. package/dist/interactions/createFocusable.d.ts +65 -0
  34. package/dist/interactions/createFocusable.d.ts.map +1 -0
  35. package/dist/interactions/createHover.d.ts +41 -0
  36. package/dist/interactions/createHover.d.ts.map +1 -0
  37. package/dist/interactions/createKeyboard.d.ts +35 -0
  38. package/dist/interactions/createKeyboard.d.ts.map +1 -0
  39. package/dist/interactions/createPress.d.ts +49 -0
  40. package/dist/interactions/createPress.d.ts.map +1 -0
  41. package/dist/interactions/index.d.ts +10 -0
  42. package/dist/interactions/index.d.ts.map +1 -0
  43. package/dist/label/createField.d.ts +51 -0
  44. package/dist/label/createField.d.ts.map +1 -0
  45. package/dist/label/createLabel.d.ts +49 -0
  46. package/dist/label/createLabel.d.ts.map +1 -0
  47. package/dist/label/createLabels.d.ts +16 -0
  48. package/dist/label/createLabels.d.ts.map +1 -0
  49. package/dist/label/index.d.ts +6 -0
  50. package/dist/label/index.d.ts.map +1 -0
  51. package/dist/link/createLink.d.ts +65 -0
  52. package/dist/link/createLink.d.ts.map +1 -0
  53. package/dist/link/index.d.ts +2 -0
  54. package/dist/link/index.d.ts.map +1 -0
  55. package/dist/progress/createProgressBar.d.ts +47 -0
  56. package/dist/progress/createProgressBar.d.ts.map +1 -0
  57. package/dist/progress/index.d.ts +2 -0
  58. package/dist/progress/index.d.ts.map +1 -0
  59. package/dist/radio/createRadio.d.ts +68 -0
  60. package/dist/radio/createRadio.d.ts.map +1 -0
  61. package/dist/radio/createRadioGroup.d.ts +85 -0
  62. package/dist/radio/createRadioGroup.d.ts.map +1 -0
  63. package/dist/radio/createRadioGroupState.d.ts +77 -0
  64. package/dist/radio/createRadioGroupState.d.ts.map +1 -0
  65. package/dist/radio/index.d.ts +4 -0
  66. package/dist/radio/index.d.ts.map +1 -0
  67. package/dist/separator/createSeparator.d.ts +38 -0
  68. package/dist/separator/createSeparator.d.ts.map +1 -0
  69. package/dist/separator/index.d.ts +2 -0
  70. package/dist/separator/index.d.ts.map +1 -0
  71. package/dist/ssr/index.d.ts +24 -0
  72. package/dist/ssr/index.d.ts.map +1 -0
  73. package/dist/switch/createSwitch.d.ts +34 -0
  74. package/dist/switch/createSwitch.d.ts.map +1 -0
  75. package/dist/switch/index.d.ts +2 -0
  76. package/dist/switch/index.d.ts.map +1 -0
  77. package/dist/textfield/createTextField.d.ts +73 -0
  78. package/dist/textfield/createTextField.d.ts.map +1 -0
  79. package/dist/textfield/index.d.ts +2 -0
  80. package/dist/textfield/index.d.ts.map +1 -0
  81. package/dist/toggle/createToggle.d.ts +94 -0
  82. package/dist/toggle/createToggle.d.ts.map +1 -0
  83. package/dist/toggle/createToggleState.d.ts +34 -0
  84. package/dist/toggle/createToggleState.d.ts.map +1 -0
  85. package/dist/toggle/index.d.ts +5 -0
  86. package/dist/toggle/index.d.ts.map +1 -0
  87. package/dist/utils/dom.d.ts +51 -0
  88. package/dist/utils/dom.d.ts.map +1 -0
  89. package/dist/utils/events.d.ts +29 -0
  90. package/dist/utils/events.d.ts.map +1 -0
  91. package/dist/utils/filterDOMProps.d.ts +29 -0
  92. package/dist/utils/filterDOMProps.d.ts.map +1 -0
  93. package/dist/utils/focus.d.ts +20 -0
  94. package/dist/utils/focus.d.ts.map +1 -0
  95. package/dist/utils/geometry.d.ts +40 -0
  96. package/dist/utils/geometry.d.ts.map +1 -0
  97. package/dist/utils/globalListeners.d.ts +36 -0
  98. package/dist/utils/globalListeners.d.ts.map +1 -0
  99. package/dist/utils/index.d.ts +11 -0
  100. package/dist/utils/index.d.ts.map +1 -0
  101. package/dist/utils/mergeProps.d.ts +8 -0
  102. package/dist/utils/mergeProps.d.ts.map +1 -0
  103. package/dist/utils/platform.d.ts +14 -0
  104. package/dist/utils/platform.d.ts.map +1 -0
  105. package/dist/utils/reactivity.d.ts +28 -0
  106. package/dist/utils/reactivity.d.ts.map +1 -0
  107. package/dist/utils/textSelection.d.ts +19 -0
  108. package/dist/utils/textSelection.d.ts.map +1 -0
  109. package/package.json +50 -0
@@ -0,0 +1,29 @@
1
+ import type { AriaButtonProps, ButtonAria } from './types';
2
+ /**
3
+ * Provides the behavior and accessibility implementation for a button component.
4
+ * Handles press interactions across mouse, touch, keyboard and screen readers.
5
+ *
6
+ * Based on react-aria's useButton but adapted for SolidJS.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import { createButton } from 'solidaria';
11
+ *
12
+ * function Button(props) {
13
+ * let ref;
14
+ * const { buttonProps, isPressed } = createButton(props);
15
+ *
16
+ * return (
17
+ * <button
18
+ * {...buttonProps}
19
+ * ref={ref}
20
+ * class={isPressed() ? 'pressed' : ''}
21
+ * >
22
+ * {props.children}
23
+ * </button>
24
+ * );
25
+ * }
26
+ * ```
27
+ */
28
+ export declare function createButton(props?: AriaButtonProps): ButtonAria;
29
+ //# sourceMappingURL=createButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createButton.d.ts","sourceRoot":"","sources":["../../src/button/createButton.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAS3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,KAAK,GAAE,eAAoB,GAAG,UAAU,CA+FpE"}
@@ -0,0 +1,41 @@
1
+ import { Accessor } from 'solid-js';
2
+ import type { AriaButtonProps, ButtonAria } from './types';
3
+ export interface AriaToggleButtonProps extends Omit<AriaButtonProps, 'aria-pressed'> {
4
+ /** Whether the button is selected (controlled). */
5
+ isSelected?: Accessor<boolean> | boolean;
6
+ /** Handler called when the button's selection state changes. */
7
+ onChange?: (isSelected: boolean) => void;
8
+ /** The default selected state (uncontrolled). */
9
+ defaultSelected?: boolean;
10
+ }
11
+ export interface ToggleButtonAria extends ButtonAria {
12
+ /** Whether the button is currently selected. */
13
+ isSelected: Accessor<boolean>;
14
+ }
15
+ /**
16
+ * Provides the behavior and accessibility implementation for a toggle button component.
17
+ * Toggle buttons allow users to toggle a selection on or off.
18
+ *
19
+ * Based on react-aria's useToggleButton but adapted for SolidJS.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * import { createToggleButton } from 'solidaria';
24
+ *
25
+ * function ToggleButton(props) {
26
+ * const { buttonProps, isPressed, isSelected } = createToggleButton(props);
27
+ *
28
+ * return (
29
+ * <button
30
+ * {...buttonProps}
31
+ * class={isSelected() ? 'selected' : ''}
32
+ * style={{ opacity: isPressed() ? 0.8 : 1 }}
33
+ * >
34
+ * {props.children}
35
+ * </button>
36
+ * );
37
+ * }
38
+ * ```
39
+ */
40
+ export declare function createToggleButton(props?: AriaToggleButtonProps): ToggleButtonAria;
41
+ //# sourceMappingURL=createToggleButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createToggleButton.d.ts","sourceRoot":"","sources":["../../src/button/createToggleButton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,UAAU,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG3D,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC;IAClF,mDAAmD;IACnD,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,iDAAiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,gDAAgD;IAChD,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC/B;AASD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,GAAE,qBAA0B,GAAG,gBAAgB,CAgDtF"}
@@ -0,0 +1,5 @@
1
+ export { createButton } from './createButton';
2
+ export { createToggleButton } from './createToggleButton';
3
+ export type { AriaButtonProps, ButtonAria } from './types';
4
+ export type { AriaToggleButtonProps, ToggleButtonAria } from './createToggleButton';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC3D,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { Accessor } from 'solid-js';
2
+ import { PressEvent } from '../interactions';
3
+ export interface AriaButtonProps {
4
+ /** Whether the button is disabled. */
5
+ isDisabled?: Accessor<boolean> | boolean;
6
+ /** Handler called when the press is released over the target. */
7
+ onPress?: (e: PressEvent) => void;
8
+ /** Handler called when a press interaction starts. */
9
+ onPressStart?: (e: PressEvent) => void;
10
+ /** Handler called when a press interaction ends. */
11
+ onPressEnd?: (e: PressEvent) => void;
12
+ /** Handler called when a press is released over the target. */
13
+ onPressUp?: (e: PressEvent) => void;
14
+ /** Handler called when the press state changes. */
15
+ onPressChange?: (isPressed: boolean) => void;
16
+ /** Whether the button should not receive focus on press. */
17
+ preventFocusOnPress?: boolean;
18
+ /** Whether the element should receive focus on render. */
19
+ autoFocus?: boolean;
20
+ /** The HTML element type to use for the button. */
21
+ elementType?: 'button' | 'a' | 'div' | 'input' | 'span';
22
+ /** The URL to link to (for anchor elements). */
23
+ href?: string;
24
+ /** The target for the link (for anchor elements). */
25
+ target?: string;
26
+ /** The rel attribute for the link (for anchor elements). */
27
+ rel?: string;
28
+ /** The type attribute for button elements. */
29
+ type?: 'button' | 'submit' | 'reset';
30
+ /** Whether the button is in a pressed state (controlled). */
31
+ 'aria-pressed'?: boolean | 'true' | 'false' | 'mixed';
32
+ /** Whether the button has a popup. */
33
+ 'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog' | 'true' | 'false';
34
+ /** Whether the popup is expanded. */
35
+ 'aria-expanded'?: boolean | 'true' | 'false';
36
+ /** The accessible label for the button. */
37
+ 'aria-label'?: string;
38
+ /** The id of the element that labels the button. */
39
+ 'aria-labelledby'?: string;
40
+ /** The id of the element that describes the button. */
41
+ 'aria-describedby'?: string;
42
+ /** Identifies the element (or elements) whose contents or presence are controlled by the button. */
43
+ 'aria-controls'?: string;
44
+ /** Indicates the current "pressed" state of toggle buttons. */
45
+ 'aria-current'?: boolean | 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
46
+ /** Additional attributes for form buttons. */
47
+ form?: string;
48
+ formAction?: string;
49
+ formEncType?: string;
50
+ formMethod?: string;
51
+ formNoValidate?: boolean;
52
+ formTarget?: string;
53
+ /** The name attribute for form buttons. */
54
+ name?: string;
55
+ /** The value attribute for form buttons. */
56
+ value?: string;
57
+ /** Whether to exclude the button from the tab order. */
58
+ excludeFromTabOrder?: boolean;
59
+ }
60
+ export interface ButtonAria {
61
+ /** Props to spread on the button element. */
62
+ buttonProps: Record<string, unknown>;
63
+ /** Whether the button is currently pressed. */
64
+ isPressed: Accessor<boolean>;
65
+ }
66
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,UAAU,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzC,iEAAiE;IACjE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACvC,oDAAoD;IACpD,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,mDAAmD;IACnD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,QAAQ,GAAG,GAAG,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACxD,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACtD,sCAAsC;IACtC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC/F,qCAAqC;IACrC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7C,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oGAAoG;IACpG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC7F,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+CAA+C;IAC/C,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC9B"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Checkbox hook for Solidaria
3
+ *
4
+ * Provides the behavior and accessibility implementation for a checkbox component.
5
+ * Checkboxes allow users to select multiple items from a list of individual items,
6
+ * or to mark one individual item as selected.
7
+ *
8
+ * This is a 1:1 port of @react-aria/checkbox's useCheckbox hook.
9
+ */
10
+ import { JSX, Accessor } from 'solid-js';
11
+ import { type AriaToggleProps } from '../toggle';
12
+ import { type ToggleState } from '@proyecto-viviana/solid-stately';
13
+ import { type MaybeAccessor } from '../utils/reactivity';
14
+ export interface AriaCheckboxProps extends AriaToggleProps {
15
+ /**
16
+ * Indeterminism is presentational only.
17
+ * The indeterminate visual representation remains regardless of user interaction.
18
+ */
19
+ isIndeterminate?: boolean;
20
+ /**
21
+ * Whether the checkbox is required.
22
+ */
23
+ isRequired?: boolean;
24
+ /**
25
+ * The validation behavior for the checkbox.
26
+ * @default 'aria'
27
+ */
28
+ validationBehavior?: 'aria' | 'native';
29
+ }
30
+ export interface CheckboxAria {
31
+ /** Props for the label wrapper element. */
32
+ labelProps: JSX.LabelHTMLAttributes<HTMLLabelElement>;
33
+ /** Props for the input element. */
34
+ inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;
35
+ /** Whether the checkbox is selected. */
36
+ isSelected: Accessor<boolean>;
37
+ /** Whether the checkbox is in a pressed state. */
38
+ isPressed: Accessor<boolean>;
39
+ /** Whether the checkbox is disabled. */
40
+ isDisabled: boolean;
41
+ /** Whether the checkbox is read only. */
42
+ isReadOnly: boolean;
43
+ /** Whether the checkbox is invalid. */
44
+ isInvalid: boolean;
45
+ }
46
+ /**
47
+ * Provides the behavior and accessibility implementation for a checkbox component.
48
+ * Checkboxes allow users to select multiple items from a list of individual items,
49
+ * or to mark one individual item as selected.
50
+ *
51
+ * @param props - Props for the checkbox.
52
+ * @param state - State for the checkbox, as returned by `createToggleState`.
53
+ * @param inputRef - A ref accessor for the HTML input element.
54
+ */
55
+ export declare function createCheckbox(props: MaybeAccessor<AriaCheckboxProps>, state: ToggleState, inputRef: () => HTMLInputElement | null): CheckboxAria;
56
+ //# sourceMappingURL=createCheckbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCheckbox.d.ts","sourceRoot":"","sources":["../../src/checkbox/createCheckbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAgB,MAAM,UAAU,CAAC;AACvD,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AAMjE,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC;AAED,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,mCAAmC;IACnC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtD,wCAAwC;IACxC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9B,kDAAkD;IAClD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7B,wCAAwC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACvC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,gBAAgB,GAAG,IAAI,GACtC,YAAY,CA8Dd"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Checkbox group hook for Solidaria
3
+ *
4
+ * Provides the behavior and accessibility implementation for a checkbox group component.
5
+ * Checkbox groups allow users to select multiple items from a list of options.
6
+ *
7
+ * This is a 1:1 port of @react-aria/checkbox's useCheckboxGroup hook.
8
+ */
9
+ import { JSX } from 'solid-js';
10
+ import { type MaybeAccessor } from '../utils/reactivity';
11
+ import { type CheckboxGroupState, type CheckboxGroupProps } from '@proyecto-viviana/solid-stately';
12
+ export interface AriaCheckboxGroupProps extends CheckboxGroupProps {
13
+ /** Defines a string value that labels the current element. */
14
+ 'aria-label'?: string;
15
+ /** Identifies the element (or elements) that labels the current element. */
16
+ 'aria-labelledby'?: string;
17
+ /** Identifies the element (or elements) that describes the object. */
18
+ 'aria-describedby'?: string;
19
+ /** Identifies the element (or elements) that provide a detailed, extended description for the object. */
20
+ 'aria-details'?: string;
21
+ /** A description for the field. Provides a hint such as specific requirements for what to choose. */
22
+ description?: JSX.Element;
23
+ /** An error message for the field. */
24
+ errorMessage?: JSX.Element;
25
+ }
26
+ export interface CheckboxGroupAria {
27
+ /** Props for the checkbox group wrapper element. */
28
+ groupProps: JSX.HTMLAttributes<HTMLElement>;
29
+ /** Props for the checkbox group's visible label (if any). */
30
+ labelProps: JSX.HTMLAttributes<HTMLElement>;
31
+ /** Props for the checkbox group description element, if any. */
32
+ descriptionProps: JSX.HTMLAttributes<HTMLElement>;
33
+ /** Props for the checkbox group error message element, if any. */
34
+ errorMessageProps: JSX.HTMLAttributes<HTMLElement>;
35
+ /** Whether the checkbox group is invalid. */
36
+ isInvalid: boolean;
37
+ }
38
+ export declare const checkboxGroupData: WeakMap<CheckboxGroupState, {
39
+ name?: string;
40
+ form?: string;
41
+ descriptionId?: string;
42
+ errorMessageId?: string;
43
+ validationBehavior: "aria" | "native";
44
+ }>;
45
+ /**
46
+ * Provides the behavior and accessibility implementation for a checkbox group component.
47
+ * Checkbox groups allow users to select multiple items from a list of options.
48
+ *
49
+ * @param props - Props for the checkbox group.
50
+ * @param state - State for the checkbox group, as returned by `createCheckboxGroupState`.
51
+ */
52
+ export declare function createCheckboxGroup(props: MaybeAccessor<AriaCheckboxGroupProps>, state: CheckboxGroupState): CheckboxGroupAria;
53
+ //# sourceMappingURL=createCheckboxGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCheckboxGroup.d.ts","sourceRoot":"","sources":["../../src/checkbox/createCheckboxGroup.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAK/B,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAMnG,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yGAAyG;IACzG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qGAAqG;IACrG,WAAW,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IAC1B,sCAAsC;IACtC,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,6DAA6D;IAC7D,UAAU,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5C,gEAAgE;IAChE,gBAAgB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAClD,kEAAkE;IAClE,iBAAiB,EAAE,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;CACpB;AAGD,eAAO,MAAM,iBAAiB;WAGnB,MAAM;WACN,MAAM;oBACG,MAAM;qBACL,MAAM;wBACH,MAAM,GAAG,QAAQ;EAEtC,CAAC;AAMJ;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC5C,KAAK,EAAE,kBAAkB,GACxB,iBAAiB,CA6DnB"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Checkbox group item hook for Solidaria
3
+ *
4
+ * Provides the behavior and accessibility implementation for a checkbox component
5
+ * contained within a checkbox group.
6
+ *
7
+ * This is a 1:1 port of @react-aria/checkbox's useCheckboxGroupItem hook.
8
+ */
9
+ import { type AriaCheckboxProps, type CheckboxAria } from './createCheckbox';
10
+ import { type CheckboxGroupState } from '@proyecto-viviana/solid-stately';
11
+ import { type MaybeAccessor } from '../utils/reactivity';
12
+ export interface AriaCheckboxGroupItemProps extends Omit<AriaCheckboxProps, 'isSelected' | 'defaultSelected'> {
13
+ /** The value of the checkbox. */
14
+ value: string;
15
+ }
16
+ /**
17
+ * Provides the behavior and accessibility implementation for a checkbox component
18
+ * contained within a checkbox group.
19
+ *
20
+ * @param props - Props for the checkbox.
21
+ * @param state - State for the checkbox group, as returned by `createCheckboxGroupState`.
22
+ * @param inputRef - A ref accessor for the HTML input element.
23
+ */
24
+ export declare function createCheckboxGroupItem(props: MaybeAccessor<AriaCheckboxGroupItemProps>, state: CheckboxGroupState, inputRef: () => HTMLInputElement | null): CheckboxAria;
25
+ //# sourceMappingURL=createCheckboxGroupItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCheckboxGroupItem.d.ts","sourceRoot":"","sources":["../../src/checkbox/createCheckboxGroupItem.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE5F,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AAMjE,MAAM,WAAW,0BAA2B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,iBAAiB,CAAC;IAC3G,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,CAAC,0BAA0B,CAAC,EAChD,KAAK,EAAE,kBAAkB,EACzB,QAAQ,EAAE,MAAM,gBAAgB,GAAG,IAAI,GACtC,YAAY,CA4Ed"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Checkbox group state for Solidaria
3
+ *
4
+ * Provides state management for a checkbox group component.
5
+ * Provides a name for the group, and manages selection and focus state.
6
+ *
7
+ * This is a 1:1 port of @react-stately/checkbox's useCheckboxGroupState.
8
+ */
9
+ import { Accessor } from 'solid-js';
10
+ import { type MaybeAccessor } from '../utils/reactivity';
11
+ export interface CheckboxGroupProps {
12
+ /** The current selected values (controlled). */
13
+ value?: string[];
14
+ /** The default selected values (uncontrolled). */
15
+ defaultValue?: string[];
16
+ /** Handler that is called when the value changes. */
17
+ onChange?: (value: string[]) => void;
18
+ /** Whether the checkbox group is disabled. */
19
+ isDisabled?: boolean;
20
+ /** Whether the checkbox group is read only. */
21
+ isReadOnly?: boolean;
22
+ /** Whether the checkbox group is required. */
23
+ isRequired?: boolean;
24
+ /** Whether the checkbox group is invalid. */
25
+ isInvalid?: boolean;
26
+ /** The name of the checkbox group, used when submitting an HTML form. */
27
+ name?: string;
28
+ /** The form to associate the checkbox group with. */
29
+ form?: string;
30
+ /** The label for the checkbox group. */
31
+ label?: string;
32
+ /** Handler that is called when the checkbox group receives focus. */
33
+ onFocus?: (e: FocusEvent) => void;
34
+ /** Handler that is called when the checkbox group loses focus. */
35
+ onBlur?: (e: FocusEvent) => void;
36
+ /** Handler that is called when the checkbox group's focus status changes. */
37
+ onFocusChange?: (isFocused: boolean) => void;
38
+ }
39
+ export interface CheckboxGroupState {
40
+ /** Current selected values. */
41
+ readonly value: Accessor<readonly string[]>;
42
+ /** Default selected values. */
43
+ readonly defaultValue: readonly string[];
44
+ /** Whether the checkbox group is disabled. */
45
+ readonly isDisabled: boolean;
46
+ /** Whether the checkbox group is read only. */
47
+ readonly isReadOnly: boolean;
48
+ /** Whether the checkbox group is invalid. */
49
+ readonly isInvalid: boolean;
50
+ /**
51
+ * Whether the checkboxes in the group are required.
52
+ * This changes to false once at least one item is selected.
53
+ */
54
+ readonly isRequired: Accessor<boolean>;
55
+ /** Returns whether the given value is selected. */
56
+ isSelected(value: string): boolean;
57
+ /** Sets the selected values. */
58
+ setValue(value: string[]): void;
59
+ /** Adds a value to the set of selected values. */
60
+ addValue(value: string): void;
61
+ /** Removes a value from the set of selected values. */
62
+ removeValue(value: string): void;
63
+ /** Toggles a value in the set of selected values. */
64
+ toggleValue(value: string): void;
65
+ }
66
+ /**
67
+ * Provides state management for a checkbox group component.
68
+ * Provides a name for the group, and manages selection and focus state.
69
+ */
70
+ export declare function createCheckboxGroupState(props?: MaybeAccessor<CheckboxGroupProps>): CheckboxGroupState;
71
+ //# sourceMappingURL=createCheckboxGroupState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCheckboxGroupState.d.ts","sourceRoot":"","sources":["../../src/checkbox/createCheckboxGroupState.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAgB,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,qBAAqB,CAAC;AAMjE,MAAM,WAAW,kBAAkB;IACjC,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACrC,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IAClC,kEAAkE;IAClE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACjC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5C,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,mDAAmD;IACnD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,qDAAqD;IACrD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,aAAa,CAAC,kBAAkB,CAAM,GAC5C,kBAAkB,CA6GpB"}
@@ -0,0 +1,9 @@
1
+ export { createCheckbox } from './createCheckbox';
2
+ export type { AriaCheckboxProps, CheckboxAria } from './createCheckbox';
3
+ export { createCheckboxGroupState } from '@proyecto-viviana/solid-stately';
4
+ export type { CheckboxGroupProps, CheckboxGroupState } from '@proyecto-viviana/solid-stately';
5
+ export { createCheckboxGroup, checkboxGroupData } from './createCheckboxGroup';
6
+ export type { AriaCheckboxGroupProps, CheckboxGroupAria } from './createCheckboxGroup';
7
+ export { createCheckboxGroupItem } from './createCheckboxGroupItem';
8
+ export type { AriaCheckboxGroupItemProps } from './createCheckboxGroupItem';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG9F,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { createButton, createToggleButton, type AriaButtonProps, type ButtonAria, type AriaToggleButtonProps, type ToggleButtonAria, } from './button';
2
+ export { createCheckbox, createCheckboxGroup, createCheckboxGroupItem, createCheckboxGroupState, checkboxGroupData, type AriaCheckboxProps, type CheckboxAria, type AriaCheckboxGroupProps, type CheckboxGroupAria, type AriaCheckboxGroupItemProps, type CheckboxGroupProps, type CheckboxGroupState, } from './checkbox';
3
+ export { createRadio, createRadioGroup, createRadioGroupState, radioGroupData, type AriaRadioProps, type RadioAria, type AriaRadioGroupProps, type RadioGroupAria, type RadioGroupProps, type RadioGroupState, } from './radio';
4
+ export { createPress, createFocusable, createFocusRing, createHover, type CreatePressProps, type PressResult, type PressEvent, type CreateFocusableProps, type FocusableResult, type FocusRingProps, type FocusRingResult, type CreateHoverProps, type HoverResult, type HoverEvent, type HoverEvents, } from './interactions';
5
+ export { createLabel, createField, createLabels, type LabelAriaProps, type LabelAria, type AriaLabelingProps, type LabelableProps, type DOMProps, type AriaFieldProps, type FieldAria, type HelpTextProps, type ValidationResult, type Validation, } from './label';
6
+ export { createIsSSR, createId, canUseDOM } from './ssr';
7
+ export { createToggle, createToggleState, type AriaToggleProps, type ToggleAria, type ToggleStateOptions, type ToggleState, } from './toggle';
8
+ export { createSwitch, type AriaSwitchProps, type SwitchAria, } from './switch';
9
+ export { createLink, type AriaLinkProps, type LinkAria, } from './link';
10
+ export { createTextField, type AriaTextFieldProps, type TextFieldAria, } from './textfield';
11
+ export { createProgressBar, type AriaProgressBarProps, type ProgressBarAria, } from './progress';
12
+ export { createSeparator, type AriaSeparatorProps, type SeparatorAria, type Orientation, } from './separator';
13
+ export { mergeProps, filterDOMProps, type FilterDOMPropsOptions } from './utils';
14
+ export { access, isAccessor, type MaybeAccessor, type MaybeAccessorValue } from './utils';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,QAAQ,GACd,MAAM,QAAQ,CAAC;AAGhB,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,eAAe,EACf,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC"}