@cladd-ui/react 0.9.0 → 0.10.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 (166) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/calendar/Calendar.d.ts +21 -0
  3. package/calendar/Calendar.d.ts.map +1 -0
  4. package/calendar/Calendar.js +158 -0
  5. package/calendar/Calendar.js.map +1 -0
  6. package/calendar/CalendarIcon.d.ts +2 -0
  7. package/calendar/CalendarIcon.d.ts.map +1 -0
  8. package/calendar/CalendarIcon.js +5 -0
  9. package/calendar/CalendarIcon.js.map +1 -0
  10. package/calendar/DatePicker.d.ts +91 -0
  11. package/calendar/DatePicker.d.ts.map +1 -0
  12. package/calendar/DatePicker.js +79 -0
  13. package/calendar/DatePicker.js.map +1 -0
  14. package/calendar/index.d.ts +4 -0
  15. package/calendar/index.d.ts.map +1 -0
  16. package/calendar/index.js +3 -0
  17. package/calendar/index.js.map +1 -0
  18. package/components/AccordionContext.d.ts +22 -0
  19. package/components/AccordionContext.d.ts.map +1 -0
  20. package/components/AccordionContext.js +14 -0
  21. package/components/AccordionContext.js.map +1 -0
  22. package/components/AccordionItem.d.ts +27 -0
  23. package/components/AccordionItem.d.ts.map +1 -0
  24. package/components/AccordionItem.js +36 -0
  25. package/components/AccordionItem.js.map +1 -0
  26. package/components/AccordionRoot.d.ts +47 -0
  27. package/components/AccordionRoot.d.ts.map +1 -0
  28. package/components/AccordionRoot.js +53 -0
  29. package/components/AccordionRoot.js.map +1 -0
  30. package/components/Button.js +2 -2
  31. package/components/Button.js.map +1 -1
  32. package/components/Checkbox.js +2 -2
  33. package/components/Checkbox.js.map +1 -1
  34. package/components/CollapsibleContext.d.ts +36 -0
  35. package/components/CollapsibleContext.d.ts.map +1 -0
  36. package/components/CollapsibleContext.js +24 -0
  37. package/components/CollapsibleContext.js.map +1 -0
  38. package/components/CollapsibleIndicator.d.ts +45 -0
  39. package/components/CollapsibleIndicator.d.ts.map +1 -0
  40. package/components/CollapsibleIndicator.js +34 -0
  41. package/components/CollapsibleIndicator.js.map +1 -0
  42. package/components/CollapsiblePanel.d.ts +35 -0
  43. package/components/CollapsiblePanel.d.ts.map +1 -0
  44. package/components/CollapsiblePanel.js +104 -0
  45. package/components/CollapsiblePanel.js.map +1 -0
  46. package/components/CollapsibleRoot.d.ts +35 -0
  47. package/components/CollapsibleRoot.d.ts.map +1 -0
  48. package/components/CollapsibleRoot.js +43 -0
  49. package/components/CollapsibleRoot.js.map +1 -0
  50. package/components/CollapsibleTrigger.d.ts +21 -0
  51. package/components/CollapsibleTrigger.d.ts.map +1 -0
  52. package/components/CollapsibleTrigger.js +36 -0
  53. package/components/CollapsibleTrigger.js.map +1 -0
  54. package/components/ColorEditor.d.ts +84 -0
  55. package/components/ColorEditor.d.ts.map +1 -0
  56. package/components/ColorEditor.js +517 -0
  57. package/components/ColorEditor.js.map +1 -0
  58. package/components/ColorPicker.d.ts +127 -0
  59. package/components/ColorPicker.d.ts.map +1 -0
  60. package/components/ColorPicker.js +136 -0
  61. package/components/ColorPicker.js.map +1 -0
  62. package/components/{FocusableLayer.d.ts → FocusRing.d.ts} +2 -2
  63. package/components/FocusRing.d.ts.map +1 -0
  64. package/components/{FocusableLayer.js → FocusRing.js} +2 -2
  65. package/components/FocusRing.js.map +1 -0
  66. package/components/Input.d.ts +2 -0
  67. package/components/Input.d.ts.map +1 -1
  68. package/components/Input.js +4 -4
  69. package/components/Input.js.map +1 -1
  70. package/components/Link.js +2 -2
  71. package/components/Link.js.map +1 -1
  72. package/components/NumberScrubber.d.ts +2 -0
  73. package/components/NumberScrubber.d.ts.map +1 -1
  74. package/components/NumberScrubber.js +3 -3
  75. package/components/NumberScrubber.js.map +1 -1
  76. package/components/OTPField.d.ts.map +1 -1
  77. package/components/OTPField.js +2 -2
  78. package/components/OTPField.js.map +1 -1
  79. package/components/Popover.d.ts.map +1 -1
  80. package/components/Popover.js +7 -1
  81. package/components/Popover.js.map +1 -1
  82. package/components/Radio.js +2 -2
  83. package/components/Radio.js.map +1 -1
  84. package/components/Segmented.js +2 -2
  85. package/components/Segmented.js.map +1 -1
  86. package/components/Select.d.ts +2 -0
  87. package/components/Select.d.ts.map +1 -1
  88. package/components/Select.js +5 -5
  89. package/components/Select.js.map +1 -1
  90. package/components/Slider.d.ts +34 -3
  91. package/components/Slider.d.ts.map +1 -1
  92. package/components/Slider.js +27 -14
  93. package/components/Slider.js.map +1 -1
  94. package/components/Switch.js +2 -2
  95. package/components/Switch.js.map +1 -1
  96. package/components/Tab.d.ts +19 -0
  97. package/components/Tab.d.ts.map +1 -0
  98. package/components/Tab.js +22 -0
  99. package/components/Tab.js.map +1 -0
  100. package/components/TabPanel.d.ts +31 -0
  101. package/components/TabPanel.d.ts.map +1 -0
  102. package/components/TabPanel.js +19 -0
  103. package/components/TabPanel.js.map +1 -0
  104. package/components/Tabs.d.ts +33 -0
  105. package/components/Tabs.d.ts.map +1 -0
  106. package/components/Tabs.js +36 -0
  107. package/components/Tabs.js.map +1 -0
  108. package/components/TabsContext.d.ts +25 -0
  109. package/components/TabsContext.d.ts.map +1 -0
  110. package/components/TabsContext.js +18 -0
  111. package/components/TabsContext.js.map +1 -0
  112. package/components/TabsList.d.ts +12 -0
  113. package/components/TabsList.d.ts.map +1 -0
  114. package/components/TabsList.js +52 -0
  115. package/components/TabsList.js.map +1 -0
  116. package/components/Textarea.d.ts +2 -0
  117. package/components/Textarea.d.ts.map +1 -1
  118. package/components/Textarea.js +3 -3
  119. package/components/Textarea.js.map +1 -1
  120. package/components/ThemeContext.d.ts +26 -0
  121. package/components/ThemeContext.d.ts.map +1 -1
  122. package/components/ThemeContext.js.map +1 -1
  123. package/components/ToggleButton.d.ts +44 -0
  124. package/components/ToggleButton.d.ts.map +1 -0
  125. package/components/ToggleButton.js +66 -0
  126. package/components/ToggleButton.js.map +1 -0
  127. package/components/ToggleGroup.d.ts +50 -0
  128. package/components/ToggleGroup.d.ts.map +1 -0
  129. package/components/ToggleGroup.js +57 -0
  130. package/components/ToggleGroup.js.map +1 -0
  131. package/components/ToggleGroupContext.d.ts +31 -0
  132. package/components/ToggleGroupContext.d.ts.map +1 -0
  133. package/components/ToggleGroupContext.js +14 -0
  134. package/components/ToggleGroupContext.js.map +1 -0
  135. package/components/icons/ArrowLeftIcon.d.ts +2 -0
  136. package/components/icons/ArrowLeftIcon.d.ts.map +1 -0
  137. package/components/icons/ArrowLeftIcon.js +5 -0
  138. package/components/icons/ArrowLeftIcon.js.map +1 -0
  139. package/components/icons/ChevronLeftIcon.d.ts +2 -0
  140. package/components/icons/ChevronLeftIcon.d.ts.map +1 -0
  141. package/components/icons/ChevronLeftIcon.js +5 -0
  142. package/components/icons/ChevronLeftIcon.js.map +1 -0
  143. package/components/icons/FlipIcon.d.ts +2 -0
  144. package/components/icons/FlipIcon.d.ts.map +1 -0
  145. package/components/icons/FlipIcon.js +5 -0
  146. package/components/icons/FlipIcon.js.map +1 -0
  147. package/components/icons/GradientColorIcon.d.ts +2 -0
  148. package/components/icons/GradientColorIcon.d.ts.map +1 -0
  149. package/components/icons/GradientColorIcon.js +5 -0
  150. package/components/icons/GradientColorIcon.js.map +1 -0
  151. package/components/icons/SolidColorIcon.d.ts +2 -0
  152. package/components/icons/SolidColorIcon.d.ts.map +1 -0
  153. package/components/icons/SolidColorIcon.js +5 -0
  154. package/components/icons/SolidColorIcon.js.map +1 -0
  155. package/index.d.ts +20 -1
  156. package/index.d.ts.map +1 -1
  157. package/index.js +18 -0
  158. package/index.js.map +1 -1
  159. package/package.json +11 -1
  160. package/shared/color.d.ts +122 -0
  161. package/shared/color.d.ts.map +1 -0
  162. package/shared/color.js +319 -0
  163. package/shared/color.js.map +1 -0
  164. package/styles/colors.css +4 -4
  165. package/components/FocusableLayer.d.ts.map +0 -1
  166. package/components/FocusableLayer.js.map +0 -1
@@ -0,0 +1,47 @@
1
+ import { ReactNode } from 'react';
2
+ interface AccordionRootOwnProps {
3
+ /** `AccordionItem`s. */
4
+ children?: ReactNode;
5
+ /**
6
+ * Controlled open item(s). A single value in single-open mode, an array when `multiple`.
7
+ *
8
+ * When provided, internal state is bypassed.
9
+ */
10
+ value?: string | string[];
11
+ /** Initial open item(s) (uncontrolled). Ignored when `value` is provided. */
12
+ defaultValue?: string | string[];
13
+ /**
14
+ * Fires whenever the open item(s) change.
15
+ *
16
+ * Receives a single value (or `undefined` when all closed) in single-open mode, or the full array in `multiple` mode.
17
+ */
18
+ onValueChange?: (value: string | string[] | undefined) => void;
19
+ /** Allow more than one item open at once. Selection becomes an array. Default `false`. */
20
+ multiple?: boolean;
21
+ /** Disable the whole accordion - every item's trigger stops toggling. */
22
+ disabled?: boolean;
23
+ }
24
+ export type AccordionRootProps = AccordionRootOwnProps;
25
+ /** Shape of `AccordionRoot` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
26
+ export type AccordionRootDefaultProps = Partial<Omit<AccordionRootOwnProps, 'children' | 'value' | 'defaultValue' | 'onValueChange'>>;
27
+ /**
28
+ * Stateful, non-visual root for a set of disclosures. Owns the open value(s) -
29
+ * controlled via `value`/`onValueChange` or uncontrolled via `defaultValue` -
30
+ * and the single-vs-`multiple` mode, publishing them to `AccordionItem`s
31
+ * through context. Renders no DOM of its own.
32
+ *
33
+ * Single-open mode collapses to nothing when you re-toggle the open item;
34
+ * `multiple` mode toggles each item independently.
35
+ *
36
+ * @example
37
+ * <AccordionRoot defaultValue="appearance">
38
+ * <AccordionItem value="appearance">
39
+ * <AccordionTrigger><button>Appearance</button></AccordionTrigger>
40
+ * <AccordionPanel><div className="pt-2">…</div></AccordionPanel>
41
+ * </AccordionItem>
42
+ * <AccordionItem value="layout">…</AccordionItem>
43
+ * </AccordionRoot>
44
+ */
45
+ export declare const AccordionRoot: (props: AccordionRootProps) => import("react/jsx-runtime").JSX.Element;
46
+ export {};
47
+ //# sourceMappingURL=AccordionRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionRoot.d.ts","sourceRoot":"","sources":["../../../src/components/AccordionRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAC;AAKnD,UAAU,qBAAqB;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/D,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEvD,oGAAoG;AACpG,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,IAAI,CACF,qBAAqB,EACrB,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CACxD,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,kBAAkB,4CAgDtD,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useId, useState } from 'react';
3
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
4
+ import { AccordionContextProvider } from './AccordionContext.js';
5
+ /**
6
+ * Stateful, non-visual root for a set of disclosures. Owns the open value(s) -
7
+ * controlled via `value`/`onValueChange` or uncontrolled via `defaultValue` -
8
+ * and the single-vs-`multiple` mode, publishing them to `AccordionItem`s
9
+ * through context. Renders no DOM of its own.
10
+ *
11
+ * Single-open mode collapses to nothing when you re-toggle the open item;
12
+ * `multiple` mode toggles each item independently.
13
+ *
14
+ * @example
15
+ * <AccordionRoot defaultValue="appearance">
16
+ * <AccordionItem value="appearance">
17
+ * <AccordionTrigger><button>Appearance</button></AccordionTrigger>
18
+ * <AccordionPanel><div className="pt-2">…</div></AccordionPanel>
19
+ * </AccordionItem>
20
+ * <AccordionItem value="layout">…</AccordionItem>
21
+ * </AccordionRoot>
22
+ */
23
+ export const AccordionRoot = (props) => {
24
+ const baseId = useId();
25
+ const { children, value: valueProp, defaultValue, onValueChange, multiple = false, disabled = false, } = useComponentDefaults('AccordionRoot', props);
26
+ const [internalValue, setInternalValue] = useState(defaultValue);
27
+ // Controlled when the `value` prop is supplied at all - not when it's
28
+ // currently defined. An empty selection is `undefined`, a valid value, so
29
+ // inferring from `valueProp !== undefined` would flip to uncontrolled
30
+ // whenever everything closes and resurface stale state.
31
+ const isControlled = 'value' in props;
32
+ const value = isControlled ? valueProp : internalValue;
33
+ const setValue = (next) => {
34
+ if (!isControlled)
35
+ setInternalValue(next);
36
+ onValueChange?.(next);
37
+ };
38
+ const isItemOpen = (itemValue) => Array.isArray(value) ? value.includes(itemValue) : value === itemValue;
39
+ const toggleItem = (itemValue) => {
40
+ if (multiple) {
41
+ const arr = Array.isArray(value) ? value : value != null ? [value] : [];
42
+ setValue(arr.includes(itemValue)
43
+ ? arr.filter((v) => v !== itemValue)
44
+ : [...arr, itemValue]);
45
+ }
46
+ else {
47
+ const current = Array.isArray(value) ? value[0] : value;
48
+ setValue(current === itemValue ? undefined : itemValue);
49
+ }
50
+ };
51
+ return (_jsx(AccordionContextProvider, { value: { isItemOpen, toggleItem, disabled, baseId }, children: children }));
52
+ };
53
+ //# sourceMappingURL=AccordionRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionRoot.js","sourceRoot":"","sources":["../../../src/components/AccordionRoot.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAmC9D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IACzD,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,EACJ,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,EACb,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,GACjB,GAAG,oBAAoB,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAEjD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjE,sEAAsE;IACtE,0EAA0E;IAC1E,sEAAsE;IACtE,wDAAwD;IACxD,MAAM,YAAY,GAAG,OAAO,IAAI,KAAK,CAAC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvD,MAAM,QAAQ,GAAG,CAAC,IAAmC,EAAE,EAAE;QACvD,IAAI,CAAC,YAAY;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE,CACvC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC;IAEzE,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAE,EAAE;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,QAAQ,CACN,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;gBACpC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,CAAC,CACxB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACxD,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,wBAAwB,IACvB,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAElD,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC,CAAC"}
@@ -4,7 +4,7 @@ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
4
4
  import { cn } from '../shared/cn.js';
5
5
  import { roundedClasses } from '../shared/rounded-classes.js';
6
6
  import { rootSizeClasses } from '../shared/size-utls.js';
7
- import { FocusableLayer } from './FocusableLayer.js';
7
+ import { FocusRing } from './FocusRing.js';
8
8
  import { Spinner } from './Spinner.js';
9
9
  import { Surface } from './Surface.js';
10
10
  import { SurfaceCut } from './SurfaceCut.js';
@@ -60,6 +60,6 @@ export const Button = (props) => {
60
60
  else if (ref) {
61
61
  ref.current = el;
62
62
  }
63
- }, onContextMenuCapture: (e) => e.preventDefault(), color: color, style: style, beforeContent: _jsxs(_Fragment, { children: [loading && (_jsx(Spinner, { size: size, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 scale-100 opacity-100 duration-200 starting:scale-0 starting:opacity-0" })), (focused || (focusable && !readOnly && !disabled)) && (_jsx(FocusableLayer, { force: focused, group: "button", className: cn(focusRoundedClasses) }))] }), ...rest, children: children }));
63
+ }, onContextMenuCapture: (e) => e.preventDefault(), color: color, style: style, beforeContent: _jsxs(_Fragment, { children: [loading && (_jsx(Spinner, { size: size, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 scale-100 opacity-100 duration-200 starting:scale-0 starting:opacity-0" })), (focused || (focusable && !readOnly && !disabled)) && (_jsx(FocusRing, { force: focused, group: "button", className: cn(focusRoundedClasses) }))] }), ...rest, children: children }));
64
64
  };
65
65
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../src/components/Button.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useRef, } from 'react';
3
3
  import { useAccentColor } from '../hooks/use-accent-color.js';
4
4
  import { useComponentDefaults } from '../hooks/use-component-defaults.js';
5
5
  import { cn } from '../shared/cn.js';
6
- import { FocusableLayer } from './FocusableLayer.js';
6
+ import { FocusRing } from './FocusRing.js';
7
7
  import { CheckIcon } from './icons/CheckIcon.js';
8
8
  import { Surface } from './Surface.js';
9
9
  export function Checkbox(props) {
@@ -47,6 +47,6 @@ export function Checkbox(props) {
47
47
  'group-active/cladd-checkbox:scale-90', !checked &&
48
48
  !disabled &&
49
49
  !readOnly &&
50
- 'group-active/cladd-checkbox:scale-65', checked && cn('text-cladd-on-primary'), checked && `cladd-color-${color}`, checkClassName) }), focusableComputed && !disabled && !readOnly && (_jsx(FocusableLayer, { className: "rounded-full", group: "checkbox" }))] }));
50
+ 'group-active/cladd-checkbox:scale-65', checked && cn('text-cladd-on-primary'), checked && `cladd-color-${color}`, checkClassName) }), focusableComputed && !disabled && !readOnly && (_jsx(FocusRing, { className: "rounded-full", group: "checkbox" }))] }));
51
51
  }
52
52
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,GAMP,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmEpC,MAAM,UAAU,QAAQ,CACtB,KAAuB;IAEvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,EACJ,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,EAClB,aAAa,GAAG,GAAG,EAAE,GAAE,CAAC,EACxB,KAAK,GAAG,IAAI,EACZ,OAAO,EACP,SAAS,EACT,cAAc,EACd,KAAK,GAAG,WAAW,EACnB,YAAY,GAAG,IAAI,EACnB,EAAE,EAAE,MAAM,GAAG,OAAO,EACpB,SAAS,EACT,SAAS,EACT,GAAG,IAAI,EACR,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAE/C,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAClC,IAAI,iBAAiB,GAAG,SAAS,CAAC;IAElC,IAAI,OAAO,iBAAiB,KAAK,WAAW;QAC1C,iBAAiB,GAAG,MAAM,KAAK,OAAO,CAAC;IACzC,IAAI,OAAO,iBAAiB,KAAK,WAAW;QAC1C,iBAAiB,GAAG,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC;IAElD,MAAM,SAAS,GAAG,MAAqB,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,KAAK;QACzB,CAAC,CAAC;YACE,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,OAAO;YACvB,eAAe,EAAE,QAAQ,IAAI,SAAS;YACtC,eAAe,EAAE,QAAQ,IAAI,SAAS;YACtC,eAAe,EAAE,QAAQ,IAAI,SAAS;YACtC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,SAAS,EAAE,CAAC,CAAmC,EAAE,EAAE;gBACjD,IAAI,QAAQ,IAAI,QAAQ;oBAAE,OAAO;gBACjC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBACvC,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;SACF;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;QACpC,OAAO,CAAC,CAAC,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,SAAS,oBACM,OAAO,IAAI,SAAS,oBAClB,CAAC,OAAO,IAAI,SAAS,mBACtB,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAC1C,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAC1C,IAAI,KAAK,IAAI,IAAI,yBAAyB,EAC1C,QAAQ,IAAI,YAAY,EACxB,SAAS,CACV,EACD,oBAAoB,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAC3D,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,KAAK,KACN,YAAY,KACZ,IAAI,aAEP,KAAK,IAAI,CACR,6BACY,OAAO,EACjB,EAAE,EAAE,OAAO,EACX,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,qDAAqD,EAC/D,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GACrE,CACH,EAGD,KAAC,OAAO,iBACI,OAAO,EACjB,SAAS,EAAE,EAAE,CACX,+DAA+D,CAChE,EACD,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EACtD,SAAS,EAAE,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EACtD,WAAW,EAAE,KAAK,GAClB,EAGF,KAAC,OAAO,iBACI,eAAe,EACzB,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,CAAC,OAAO,IAAI,SAAS,EACrB,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CACtC,EACD,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EACtD,SAAS,EAAE,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EACtD,WAAW,EAAE,KAAK,GAClB,EAEF,KAAC,SAAS,iBACE,WAAW,EACrB,SAAS,EAAE,EAAE,CACX,2CAA2C,EAC3C,IAAI,KAAK,IAAI,IAAI,UAAU,EAC3B,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,CAAC,OAAO,IAAI,6BAA6B,EACzC,OAAO;oBACL,CAAC,QAAQ;oBACT,CAAC,QAAQ;oBACT,sCAAsC,EACxC,CAAC,OAAO;oBACN,CAAC,QAAQ;oBACT,CAAC,QAAQ;oBACT,sCAAsC,EACxC,OAAO,IAAI,EAAE,CAAC,uBAAuB,CAAC,EACtC,OAAO,IAAI,eAAe,KAAK,EAAE,EACjC,cAAc,CACf,GACD,EACD,iBAAiB,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAC9C,KAAC,cAAc,IAAC,SAAS,EAAC,cAAc,EAAC,KAAK,EAAC,UAAU,GAAG,CAC7D,IACS,CACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/Checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Disclosure state published by a `CollapsibleRoot` (or an `AccordionItem`,
4
+ * which publishes the very same shape) to its `CollapsibleTrigger`,
5
+ * `CollapsiblePanel`, and `CollapsibleIndicator`.
6
+ */
7
+ export interface CollapsibleContextValue {
8
+ /** Whether the disclosure is currently expanded. */
9
+ open: boolean;
10
+ /** Toggle the open state. No-ops while `disabled`. */
11
+ toggle: () => void;
12
+ /** Set the open state explicitly. No-ops while `disabled` or already in that state. */
13
+ setOpen: (open: boolean) => void;
14
+ /** Whether the disclosure is disabled - the trigger stops toggling. */
15
+ disabled: boolean;
16
+ /** Id of the trigger element - wired to the panel's `aria-labelledby`. */
17
+ triggerId: string;
18
+ /** Id of the panel element - wired to the trigger's `aria-controls`. */
19
+ panelId: string;
20
+ }
21
+ /**
22
+ * Returns the surrounding disclosure state published by a `CollapsibleRoot` or
23
+ * an `AccordionItem`.
24
+ *
25
+ * Reach for it to drive custom trigger markup from the live `open` state - e.g.
26
+ * swapping an icon - in a spot where a plain `data-open` CSS rule won't do.
27
+ * `CollapsibleIndicator` is the ready-made wrapper around this.
28
+ *
29
+ * Throws when called outside a `CollapsibleRoot` / `AccordionItem`.
30
+ */
31
+ export declare function useCollapsibleContext(): CollapsibleContextValue;
32
+ export declare function CollapsibleContextProvider(props: {
33
+ value: CollapsibleContextValue;
34
+ children: ReactNode;
35
+ }): import("react/jsx-runtime").JSX.Element;
36
+ //# sourceMappingURL=CollapsibleContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleContext.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,oDAAoD;IACpD,IAAI,EAAE,OAAO,CAAC;IACd,sDAAsD;IACtD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,uFAAuF;IACvF,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ const CollapsibleContext = createContext(null);
4
+ /**
5
+ * Returns the surrounding disclosure state published by a `CollapsibleRoot` or
6
+ * an `AccordionItem`.
7
+ *
8
+ * Reach for it to drive custom trigger markup from the live `open` state - e.g.
9
+ * swapping an icon - in a spot where a plain `data-open` CSS rule won't do.
10
+ * `CollapsibleIndicator` is the ready-made wrapper around this.
11
+ *
12
+ * Throws when called outside a `CollapsibleRoot` / `AccordionItem`.
13
+ */
14
+ export function useCollapsibleContext() {
15
+ const ctx = useContext(CollapsibleContext);
16
+ if (!ctx) {
17
+ throw new Error('Cladd: `useCollapsibleContext`, `CollapsibleTrigger`, `CollapsiblePanel` and `CollapsibleIndicator` must be used inside a `CollapsibleRoot` or `AccordionItem`.');
18
+ }
19
+ return ctx;
20
+ }
21
+ export function CollapsibleContextProvider(props) {
22
+ return (_jsx(CollapsibleContext.Provider, { value: props.value, children: props.children }));
23
+ }
24
+ //# sourceMappingURL=CollapsibleContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleContext.js","sourceRoot":"","sources":["../../../src/components/CollapsibleContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAsB7D,MAAM,kBAAkB,GAAG,aAAa,CAAiC,IAAI,CAAC,CAAC;AAE/E;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,GAAG,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,iKAAiK,CAClK,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAG1C;IACC,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAC5C,KAAK,CAAC,QAAQ,GACa,CAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { ComponentPropsWithoutRef, ElementType, ReactNode, Ref } from 'react';
2
+ /** Disclosure state passed to a `CollapsibleIndicator` render function. */
3
+ export interface CollapsibleIndicatorState {
4
+ /** Whether the disclosure is currently expanded. */
5
+ open: boolean;
6
+ /** Whether the disclosure is disabled. */
7
+ disabled: boolean;
8
+ }
9
+ interface CollapsibleIndicatorOwnProps<C extends ElementType = 'span'> {
10
+ /**
11
+ * Indicator content. Either static markup (rotate or restyle it off the `data-open` attribute in CSS), or a render function receiving `{ open, disabled }` so you can swap glyphs entirely (chevron, plus↔minus, a spinning `×`, whatever).
12
+ */
13
+ children?: ReactNode | ((state: CollapsibleIndicatorState) => ReactNode);
14
+ /** Extra classes for the indicator root. */
15
+ className?: string;
16
+ /** Polymorphic root element. Defaults to `'span'`. */
17
+ as?: C;
18
+ /** Forwarded to the polymorphic root element. */
19
+ ref?: Ref<HTMLElement>;
20
+ }
21
+ export type CollapsibleIndicatorProps<C extends ElementType = 'span'> = CollapsibleIndicatorOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof CollapsibleIndicatorOwnProps<C>>;
22
+ /** Shape of `CollapsibleIndicator` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
23
+ export type CollapsibleIndicatorDefaultProps = Partial<Omit<CollapsibleIndicatorOwnProps, 'as' | 'ref' | 'children'>>;
24
+ /**
25
+ * Optional, decorative slot for a disclosure's open/closed affordance. Renders
26
+ * an `aria-hidden` element carrying `data-open`, so static children can be
27
+ * rotated purely in CSS - or pass a render function to swap content based on the
28
+ * live `{ open, disabled }` state.
29
+ *
30
+ * Brings no glyph of its own (Cladd is for apps, not FAQ pages) - drop in
31
+ * whatever icon you want.
32
+ *
33
+ * @example
34
+ * <CollapsibleIndicator className="transition-transform data-[open]:rotate-90">
35
+ * <ChevronLeftIcon />
36
+ * </CollapsibleIndicator>
37
+ *
38
+ * @example
39
+ * <CollapsibleIndicator>
40
+ * {({ open }) => (open ? <MinusIcon /> : <PlusIcon />)}
41
+ * </CollapsibleIndicator>
42
+ */
43
+ export declare const CollapsibleIndicator: <C extends ElementType = "span">(props: CollapsibleIndicatorProps<C>) => import("react/jsx-runtime").JSX.Element;
44
+ export {};
45
+ //# sourceMappingURL=CollapsibleIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAM9E,2EAA2E;AAC3E,MAAM,WAAW,yBAAyB;IACxC,oDAAoD;IACpD,IAAI,EAAE,OAAO,CAAC;IACd,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,4BAA4B,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,yBAAyB,KAAK,SAAS,CAAC,CAAC;IACzE,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,iDAAiD;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,yBAAyB,CAAC,CAAC,SAAS,WAAW,GAAG,MAAM,IAClE,4BAA4B,CAAC,CAAC,CAAC,GAC7B,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7E,2GAA2G;AAC3G,MAAM,MAAM,gCAAgC,GAAG,OAAO,CACpD,IAAI,CAAC,4BAA4B,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAC9D,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,SAAS,WAAW,GAAG,MAAM,EACjE,OAAO,yBAAyB,CAAC,CAAC,CAAC,4CA4BpC,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
3
+ import { cn } from '../shared/cn.js';
4
+ import { useCollapsibleContext } from './CollapsibleContext.js';
5
+ /**
6
+ * Optional, decorative slot for a disclosure's open/closed affordance. Renders
7
+ * an `aria-hidden` element carrying `data-open`, so static children can be
8
+ * rotated purely in CSS - or pass a render function to swap content based on the
9
+ * live `{ open, disabled }` state.
10
+ *
11
+ * Brings no glyph of its own (Cladd is for apps, not FAQ pages) - drop in
12
+ * whatever icon you want.
13
+ *
14
+ * @example
15
+ * <CollapsibleIndicator className="transition-transform data-[open]:rotate-90">
16
+ * <ChevronLeftIcon />
17
+ * </CollapsibleIndicator>
18
+ *
19
+ * @example
20
+ * <CollapsibleIndicator>
21
+ * {({ open }) => (open ? <MinusIcon /> : <PlusIcon />)}
22
+ * </CollapsibleIndicator>
23
+ */
24
+ export const CollapsibleIndicator = (props) => {
25
+ const { open, disabled } = useCollapsibleContext();
26
+ const { children, className = '', as: Component = 'span', ref, ...rest } = useComponentDefaults('CollapsibleIndicator', props);
27
+ return (_jsx(Component, { ref: ref, "aria-hidden": "true", "data-open": open || undefined, "data-disabled": disabled || undefined, className: cn('cladd-collapsible-indicator inline-flex', className), ...rest, children: typeof children === 'function'
28
+ ? children({
29
+ open,
30
+ disabled,
31
+ })
32
+ : children }));
33
+ };
34
+ //# sourceMappingURL=CollapsibleIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleIndicator.js","sourceRoot":"","sources":["../../../src/components/CollapsibleIndicator.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAgC7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,KAAmC,EACnC,EAAE;IACF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,EACJ,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,EAAE,EAAE,SAAS,GAAG,MAA0B,EAC1C,GAAG,EACH,GAAG,IAAI,EACR,GAAG,oBAAoB,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAExD,OAAO,CACL,KAAC,SAAS,IACR,GAAG,EAAE,GAAG,iBACI,MAAM,eACP,IAAI,IAAI,SAAS,mBACb,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,KAC/D,IAAI,YAEP,OAAO,QAAQ,KAAK,UAAU;YAC7B,CAAC,CAAE,QAA4D,CAAC;gBAC5D,IAAI;gBACJ,QAAQ;aACT,CAAC;YACJ,CAAC,CAAC,QAAQ,GACF,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { ComponentPropsWithoutRef, ElementType, ReactNode, Ref } from 'react';
2
+ interface CollapsiblePanelOwnProps<C extends ElementType = 'div'> {
3
+ /**
4
+ * Panel content. Put block padding on a **nested** element - the panel itself animates its `height` to zero, so vertical padding on it would keep it from fully collapsing.
5
+ */
6
+ children?: ReactNode;
7
+ /** Extra classes for the panel root. */
8
+ className?: string;
9
+ /**
10
+ * Keep the panel mounted (at `height: 0`) while collapsed instead of unmounting it - preserves internal state and scroll position.
11
+ *
12
+ * Default `false`: the panel still animates closed, then unmounts once the animation finishes.
13
+ */
14
+ keepMounted?: boolean;
15
+ /** Polymorphic root element. Defaults to `'div'`. */
16
+ as?: C;
17
+ /** Forwarded to the polymorphic root element. */
18
+ ref?: Ref<HTMLElement>;
19
+ }
20
+ export type CollapsiblePanelProps<C extends ElementType = 'div'> = CollapsiblePanelOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof CollapsiblePanelOwnProps<C>>;
21
+ /** Shape of `CollapsiblePanel` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
22
+ export type CollapsiblePanelDefaultProps = Partial<Omit<CollapsiblePanelOwnProps, 'as' | 'ref' | 'children'>>;
23
+ /**
24
+ * The collapsible content region. Renders a single element whose `height`
25
+ * animates between `0` and its measured natural height (`scrollHeight`),
26
+ * settling on `auto` while open so it reflows with its content. Carries the
27
+ * `region` role and aria wiring back to its trigger, and a `data-open`
28
+ * attribute for styling.
29
+ *
30
+ * Honors `prefers-reduced-motion` (snaps instantly) and skips the animation on
31
+ * first mount.
32
+ */
33
+ export declare const CollapsiblePanel: <C extends ElementType = "div">(props: CollapsiblePanelProps<C>) => import("react/jsx-runtime").JSX.Element | null;
34
+ export {};
35
+ //# sourceMappingURL=CollapsiblePanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsiblePanel.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsiblePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,GAAG,EAMJ,MAAM,OAAO,CAAC;AAYf,UAAU,wBAAwB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qDAAqD;IACrD,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,iDAAiD;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAC7D,wBAAwB,CAAC,CAAC,CAAC,GACzB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzE,uGAAuG;AACvG,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAChD,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAC1D,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EAC5D,OAAO,qBAAqB,CAAC,CAAC,CAAC,mDA8GhC,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useLayoutEffect, useRef, useState, } from 'react';
3
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
4
+ import { cn } from '../shared/cn.js';
5
+ import { useCollapsibleContext } from './CollapsibleContext.js';
6
+ // Measure and set heights before the browser paints on the client; degrade to a
7
+ // passive effect during SSR, where layout effects warn and there's nothing to
8
+ // measure anyway.
9
+ const useIsomorphicLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;
10
+ /**
11
+ * The collapsible content region. Renders a single element whose `height`
12
+ * animates between `0` and its measured natural height (`scrollHeight`),
13
+ * settling on `auto` while open so it reflows with its content. Carries the
14
+ * `region` role and aria wiring back to its trigger, and a `data-open`
15
+ * attribute for styling.
16
+ *
17
+ * Honors `prefers-reduced-motion` (snaps instantly) and skips the animation on
18
+ * first mount.
19
+ */
20
+ export const CollapsiblePanel = (props) => {
21
+ const { open, panelId, triggerId } = useCollapsibleContext();
22
+ const { children, className = '', keepMounted = false, as: Component = 'div', ref, ...rest } = useComponentDefaults('CollapsiblePanel', props);
23
+ const elRef = useRef(null);
24
+ const [rendered, setRendered] = useState(open || keepMounted);
25
+ const mounted = useRef(false);
26
+ const prevOpen = useRef(open);
27
+ // Mount the element when opening so its content can be measured and animated.
28
+ useEffect(() => {
29
+ if (open && !rendered)
30
+ setRendered(true);
31
+ }, [open, rendered]);
32
+ useEffect(() => {
33
+ mounted.current = true;
34
+ }, []);
35
+ useIsomorphicLayoutEffect(() => {
36
+ const el = elRef.current;
37
+ if (!el)
38
+ return;
39
+ // Very first paint: settle to the resting height without animating.
40
+ if (!mounted.current) {
41
+ prevOpen.current = open;
42
+ el.style.height = open ? 'auto' : '0px';
43
+ return;
44
+ }
45
+ if (prevOpen.current === open)
46
+ return;
47
+ prevOpen.current = open;
48
+ const reduce = typeof matchMedia !== 'undefined' &&
49
+ matchMedia('(prefers-reduced-motion: reduce)').matches;
50
+ let raf = 0;
51
+ const onEnd = (e) => {
52
+ if (e.target !== el || e.propertyName !== 'height')
53
+ return;
54
+ el.removeEventListener('transitionend', onEnd);
55
+ if (open)
56
+ el.style.height = 'auto';
57
+ else if (!keepMounted)
58
+ setRendered(false);
59
+ };
60
+ if (open) {
61
+ const target = el.scrollHeight;
62
+ if (reduce || target === 0) {
63
+ el.style.height = 'auto';
64
+ return;
65
+ }
66
+ el.style.height = '0px';
67
+ void el.offsetHeight; // force reflow so the next change transitions
68
+ el.addEventListener('transitionend', onEnd);
69
+ raf = requestAnimationFrame(() => {
70
+ el.style.height = `${target}px`;
71
+ });
72
+ }
73
+ else {
74
+ const current = el.scrollHeight;
75
+ if (reduce || current === 0) {
76
+ el.style.height = '0px';
77
+ if (!keepMounted)
78
+ setRendered(false);
79
+ return;
80
+ }
81
+ el.style.height = `${current}px`;
82
+ void el.offsetHeight;
83
+ el.addEventListener('transitionend', onEnd);
84
+ raf = requestAnimationFrame(() => {
85
+ el.style.height = '0px';
86
+ });
87
+ }
88
+ return () => {
89
+ cancelAnimationFrame(raf);
90
+ el.removeEventListener('transitionend', onEnd);
91
+ };
92
+ }, [open, rendered, keepMounted]);
93
+ if (!rendered)
94
+ return null;
95
+ const setRefs = (node) => {
96
+ elRef.current = node;
97
+ if (typeof ref === 'function')
98
+ ref(node);
99
+ else if (ref)
100
+ ref.current = node;
101
+ };
102
+ return (_jsx(Component, { ref: setRefs, id: panelId, role: "region", "aria-labelledby": triggerId, inert: !open || undefined, "data-open": open || undefined, className: cn('cladd-collapsible-panel box-border block overflow-hidden transition-[height] duration-200 ease-out motion-reduce:transition-none', className), ...rest, children: children }));
103
+ };
104
+ //# sourceMappingURL=CollapsiblePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsiblePanel.js","sourceRoot":"","sources":["../../../src/components/CollapsiblePanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { ReactNode } from 'react';
2
+ interface CollapsibleRootOwnProps {
3
+ /** Trigger, panel and (optional) indicator elements. */
4
+ children?: ReactNode;
5
+ /** Controlled open state. When provided, internal state is bypassed. */
6
+ open?: boolean;
7
+ /** Initial open state (uncontrolled). Default `false`. Ignored when `open` is provided. */
8
+ defaultOpen?: boolean;
9
+ /** Fires whenever the open state should change (trigger click). */
10
+ onOpenChange?: (open: boolean) => void;
11
+ /** Disable the disclosure - the trigger stops toggling and gets `data-disabled`. */
12
+ disabled?: boolean;
13
+ }
14
+ export type CollapsibleRootProps = CollapsibleRootOwnProps;
15
+ /** Shape of `CollapsibleRoot` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
16
+ export type CollapsibleRootDefaultProps = Partial<Omit<CollapsibleRootOwnProps, 'children' | 'open' | 'defaultOpen' | 'onOpenChange'>>;
17
+ /**
18
+ * Stateful, non-visual root for a single disclosure. Owns the open state
19
+ * (controlled via `open`/`onOpenChange` or uncontrolled via `defaultOpen`) and
20
+ * publishes it to `CollapsibleTrigger`/`CollapsiblePanel`/`CollapsibleIndicator`
21
+ * through context - it renders no DOM of its own.
22
+ *
23
+ * @example
24
+ * <CollapsibleRoot defaultOpen>
25
+ * <CollapsibleTrigger>
26
+ * <button>Advanced</button>
27
+ * </CollapsibleTrigger>
28
+ * <CollapsiblePanel>
29
+ * <div className="pt-2">…</div>
30
+ * </CollapsiblePanel>
31
+ * </CollapsibleRoot>
32
+ */
33
+ export declare const CollapsibleRoot: (props: CollapsibleRootProps) => import("react/jsx-runtime").JSX.Element;
34
+ export {};
35
+ //# sourceMappingURL=CollapsibleRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleRoot.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAC;AAKnD,UAAU,uBAAuB;IAC/B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2FAA2F;IAC3F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mEAAmE;IACnE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAE3D,sGAAsG;AACtG,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,IAAI,CACF,uBAAuB,EACvB,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,cAAc,CACrD,CACF,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,4CAkC1D,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useId, useState } from 'react';
3
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
4
+ import { CollapsibleContextProvider } from './CollapsibleContext.js';
5
+ /**
6
+ * Stateful, non-visual root for a single disclosure. Owns the open state
7
+ * (controlled via `open`/`onOpenChange` or uncontrolled via `defaultOpen`) and
8
+ * publishes it to `CollapsibleTrigger`/`CollapsiblePanel`/`CollapsibleIndicator`
9
+ * through context - it renders no DOM of its own.
10
+ *
11
+ * @example
12
+ * <CollapsibleRoot defaultOpen>
13
+ * <CollapsibleTrigger>
14
+ * <button>Advanced</button>
15
+ * </CollapsibleTrigger>
16
+ * <CollapsiblePanel>
17
+ * <div className="pt-2">…</div>
18
+ * </CollapsiblePanel>
19
+ * </CollapsibleRoot>
20
+ */
21
+ export const CollapsibleRoot = (props) => {
22
+ const baseId = useId();
23
+ const { children, open: openProp, defaultOpen = false, onOpenChange, disabled = false, } = useComponentDefaults('CollapsibleRoot', props);
24
+ const [internalOpen, setInternalOpen] = useState(defaultOpen);
25
+ const isControlled = openProp !== undefined;
26
+ const open = isControlled ? openProp : internalOpen;
27
+ const setOpen = (next) => {
28
+ if (disabled || next === open)
29
+ return;
30
+ if (!isControlled)
31
+ setInternalOpen(next);
32
+ onOpenChange?.(next);
33
+ };
34
+ return (_jsx(CollapsibleContextProvider, { value: {
35
+ open,
36
+ toggle: () => setOpen(!open),
37
+ setOpen,
38
+ disabled,
39
+ triggerId: `${baseId}-trigger`,
40
+ panelId: `${baseId}-panel`,
41
+ }, children: children }));
42
+ };
43
+ //# sourceMappingURL=CollapsibleRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleRoot.js","sourceRoot":"","sources":["../../../src/components/CollapsibleRoot.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAyBlE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAA2B,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,EACJ,QAAQ,EACR,IAAI,EAAE,QAAQ,EACd,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,QAAQ,GAAG,KAAK,GACjB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAEnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;IAEpD,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE;QAChC,IAAI,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QACtC,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,0BAA0B,IACzB,KAAK,EAAE;YACL,IAAI;YACJ,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;YAC5B,OAAO;YACP,QAAQ;YACR,SAAS,EAAE,GAAG,MAAM,UAAU;YAC9B,OAAO,EAAE,GAAG,MAAM,QAAQ;SAC3B,YAEA,QAAQ,GACkB,CAC9B,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ export interface CollapsibleTriggerProps {
3
+ /** Single React element to use as the trigger. Must accept `onClick` (a `<button>` is ideal). */
4
+ children: ReactNode;
5
+ }
6
+ /**
7
+ * Wraps a single child element to act as the disclosure trigger. **Clones** the
8
+ * child (Radix-style `asChild`) to attach the toggle `onClick` plus the aria
9
+ * wiring (`aria-expanded`, `aria-controls`, `id`) and a `data-open` attribute -
10
+ * so you bring your own markup and the kit injects only behavior and state.
11
+ *
12
+ * Because the cloned child carries `data-open`, rotating or swapping your own
13
+ * chevron is pure CSS: add `group` to the child and
14
+ * `group-data-[open]:rotate-90` to the icon. For state in JS, drop a
15
+ * `CollapsibleIndicator` inside or call `useCollapsibleContext()`.
16
+ *
17
+ * Composes with any existing `onClick` on the child, and no-ops the toggle while
18
+ * the disclosure is `disabled`.
19
+ */
20
+ export declare const CollapsibleTrigger: ({ children }: CollapsibleTriggerProps) => ReactElement<any, string | import("react").JSXElementConstructor<any>>;
21
+ //# sourceMappingURL=CollapsibleTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollapsibleTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/CollapsibleTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI1E,MAAM,WAAW,uBAAuB;IACtC,iGAAiG;IACjG,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAAI,cAAc,uBAAuB,2EAqBvE,CAAC"}