@cladd-ui/react 0.9.0 → 0.11.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 (191) hide show
  1. package/CHANGELOG.md +36 -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/Dialog.d.ts.map +1 -1
  63. package/components/Dialog.js +4 -1
  64. package/components/Dialog.js.map +1 -1
  65. package/components/{FocusableLayer.d.ts → FocusRing.d.ts} +2 -2
  66. package/components/FocusRing.d.ts.map +1 -0
  67. package/components/{FocusableLayer.js → FocusRing.js} +2 -2
  68. package/components/FocusRing.js.map +1 -0
  69. package/components/Input.d.ts +2 -0
  70. package/components/Input.d.ts.map +1 -1
  71. package/components/Input.js +4 -4
  72. package/components/Input.js.map +1 -1
  73. package/components/Link.js +2 -2
  74. package/components/Link.js.map +1 -1
  75. package/components/NumberScrubber.d.ts +2 -0
  76. package/components/NumberScrubber.d.ts.map +1 -1
  77. package/components/NumberScrubber.js +3 -3
  78. package/components/NumberScrubber.js.map +1 -1
  79. package/components/OTPField.d.ts.map +1 -1
  80. package/components/OTPField.js +2 -2
  81. package/components/OTPField.js.map +1 -1
  82. package/components/Popover.d.ts.map +1 -1
  83. package/components/Popover.js +9 -2
  84. package/components/Popover.js.map +1 -1
  85. package/components/Popup.d.ts.map +1 -1
  86. package/components/Popup.js +2 -1
  87. package/components/Popup.js.map +1 -1
  88. package/components/Radio.js +2 -2
  89. package/components/Radio.js.map +1 -1
  90. package/components/Segmented.d.ts +7 -1
  91. package/components/Segmented.d.ts.map +1 -1
  92. package/components/Segmented.js +4 -2
  93. package/components/Segmented.js.map +1 -1
  94. package/components/Select.d.ts +2 -0
  95. package/components/Select.d.ts.map +1 -1
  96. package/components/Select.js +5 -5
  97. package/components/Select.js.map +1 -1
  98. package/components/Slider.d.ts +34 -3
  99. package/components/Slider.d.ts.map +1 -1
  100. package/components/Slider.js +27 -14
  101. package/components/Slider.js.map +1 -1
  102. package/components/Surface.d.ts.map +1 -1
  103. package/components/Surface.js +3 -2
  104. package/components/Surface.js.map +1 -1
  105. package/components/SurfaceContext.d.ts +20 -1
  106. package/components/SurfaceContext.d.ts.map +1 -1
  107. package/components/SurfaceContext.js +13 -2
  108. package/components/SurfaceContext.js.map +1 -1
  109. package/components/SurfaceCut.d.ts.map +1 -1
  110. package/components/SurfaceCut.js +3 -2
  111. package/components/SurfaceCut.js.map +1 -1
  112. package/components/Switch.js +2 -2
  113. package/components/Switch.js.map +1 -1
  114. package/components/Tab.d.ts +19 -0
  115. package/components/Tab.d.ts.map +1 -0
  116. package/components/Tab.js +22 -0
  117. package/components/Tab.js.map +1 -0
  118. package/components/TabPanel.d.ts +31 -0
  119. package/components/TabPanel.d.ts.map +1 -0
  120. package/components/TabPanel.js +19 -0
  121. package/components/TabPanel.js.map +1 -0
  122. package/components/Tabs.d.ts +33 -0
  123. package/components/Tabs.d.ts.map +1 -0
  124. package/components/Tabs.js +36 -0
  125. package/components/Tabs.js.map +1 -0
  126. package/components/TabsContext.d.ts +25 -0
  127. package/components/TabsContext.d.ts.map +1 -0
  128. package/components/TabsContext.js +18 -0
  129. package/components/TabsContext.js.map +1 -0
  130. package/components/TabsList.d.ts +12 -0
  131. package/components/TabsList.d.ts.map +1 -0
  132. package/components/TabsList.js +52 -0
  133. package/components/TabsList.js.map +1 -0
  134. package/components/Textarea.d.ts +2 -0
  135. package/components/Textarea.d.ts.map +1 -1
  136. package/components/Textarea.js +3 -3
  137. package/components/Textarea.js.map +1 -1
  138. package/components/ThemeContext.d.ts +26 -0
  139. package/components/ThemeContext.d.ts.map +1 -1
  140. package/components/ThemeContext.js.map +1 -1
  141. package/components/ToggleButton.d.ts +44 -0
  142. package/components/ToggleButton.d.ts.map +1 -0
  143. package/components/ToggleButton.js +66 -0
  144. package/components/ToggleButton.js.map +1 -0
  145. package/components/ToggleGroup.d.ts +50 -0
  146. package/components/ToggleGroup.d.ts.map +1 -0
  147. package/components/ToggleGroup.js +57 -0
  148. package/components/ToggleGroup.js.map +1 -0
  149. package/components/ToggleGroupContext.d.ts +31 -0
  150. package/components/ToggleGroupContext.d.ts.map +1 -0
  151. package/components/ToggleGroupContext.js +14 -0
  152. package/components/ToggleGroupContext.js.map +1 -0
  153. package/components/TooltipPrimitive.d.ts.map +1 -1
  154. package/components/TooltipPrimitive.js +4 -1
  155. package/components/TooltipPrimitive.js.map +1 -1
  156. package/components/icons/ArrowLeftIcon.d.ts +2 -0
  157. package/components/icons/ArrowLeftIcon.d.ts.map +1 -0
  158. package/components/icons/ArrowLeftIcon.js +5 -0
  159. package/components/icons/ArrowLeftIcon.js.map +1 -0
  160. package/components/icons/ChevronLeftIcon.d.ts +2 -0
  161. package/components/icons/ChevronLeftIcon.d.ts.map +1 -0
  162. package/components/icons/ChevronLeftIcon.js +5 -0
  163. package/components/icons/ChevronLeftIcon.js.map +1 -0
  164. package/components/icons/FlipIcon.d.ts +2 -0
  165. package/components/icons/FlipIcon.d.ts.map +1 -0
  166. package/components/icons/FlipIcon.js +5 -0
  167. package/components/icons/FlipIcon.js.map +1 -0
  168. package/components/icons/GradientColorIcon.d.ts +2 -0
  169. package/components/icons/GradientColorIcon.d.ts.map +1 -0
  170. package/components/icons/GradientColorIcon.js +5 -0
  171. package/components/icons/GradientColorIcon.js.map +1 -0
  172. package/components/icons/SolidColorIcon.d.ts +2 -0
  173. package/components/icons/SolidColorIcon.d.ts.map +1 -0
  174. package/components/icons/SolidColorIcon.js +5 -0
  175. package/components/icons/SolidColorIcon.js.map +1 -0
  176. package/hooks/use-surface.d.ts +6 -0
  177. package/hooks/use-surface.d.ts.map +1 -1
  178. package/hooks/use-surface.js +7 -0
  179. package/hooks/use-surface.js.map +1 -1
  180. package/index.d.ts +20 -1
  181. package/index.d.ts.map +1 -1
  182. package/index.js +18 -0
  183. package/index.js.map +1 -1
  184. package/package.json +11 -1
  185. package/shared/color.d.ts +122 -0
  186. package/shared/color.d.ts.map +1 -0
  187. package/shared/color.js +319 -0
  188. package/shared/color.js.map +1 -0
  189. package/styles/colors.css +4 -4
  190. package/components/FocusableLayer.d.ts.map +0 -1
  191. package/components/FocusableLayer.js.map +0 -1
@@ -0,0 +1,19 @@
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 { tabId, tabPanelId, useTabsContext } from './TabsContext.js';
5
+ /**
6
+ * The content area for a tab. Renders a single unstyled element carrying the
7
+ * `tabpanel` role and the aria wiring back to its `Tab`; all extra props pass
8
+ * through to it so it can be styled. Mounts its children only when its `value`
9
+ * is selected (or always, when `keepMounted`).
10
+ */
11
+ export const TabPanel = (props) => {
12
+ const { value: selectedValue, baseId } = useTabsContext();
13
+ const { children, className = '', value, keepMounted = false, as: Component = 'div', ref, ...rest } = useComponentDefaults('TabPanel', props);
14
+ const selected = selectedValue === value;
15
+ if (!selected && !keepMounted)
16
+ return null;
17
+ return (_jsx(Component, { role: "tabpanel", id: tabPanelId(baseId, value), "aria-labelledby": tabId(baseId, value), hidden: !selected || undefined, tabIndex: 0, "data-selected": selected || undefined, className: cn('cladd-tab-panel', className), ref: ref, ...rest, children: children }));
18
+ };
19
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.js","sourceRoot":"","sources":["../../../src/components/TabPanel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA6BlE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAuB,EACvB,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC1D,MAAM,EACJ,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,EAAE,EAAE,SAAS,GAAG,KAAyB,EACzC,GAAG,EACH,GAAG,IAAI,EACR,GAAG,oBAAoB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,aAAa,KAAK,KAAK,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE3C,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,qBACZ,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EACrC,MAAM,EAAE,CAAC,QAAQ,IAAI,SAAS,EAC9B,QAAQ,EAAE,CAAC,mBACI,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC,EAC3C,GAAG,EAAE,GAAG,KACJ,IAAI,YAEP,QAAQ,GACC,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { ReactNode } from 'react';
2
+ interface TabsOwnProps {
3
+ /** The tab strip (`TabsList` with `Tab`s) and the `TabPanel`s. */
4
+ children?: ReactNode;
5
+ /** Controlled selected tab value. When provided, internal state is bypassed. */
6
+ value?: string;
7
+ /** Initially selected tab value (uncontrolled). Ignored when `value` is provided. */
8
+ defaultValue?: string;
9
+ /** Fires whenever the selected tab changes (click or keyboard). */
10
+ onValueChange?: (value: string) => void;
11
+ }
12
+ export type TabsProps = TabsOwnProps;
13
+ /** Shape of `Tabs` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
14
+ export type TabsDefaultProps = Partial<Omit<TabsOwnProps, 'children' | 'value' | 'defaultValue' | 'onValueChange'>>;
15
+ /**
16
+ * Stateful, non-visual root for a set of tabs. Owns the selected value
17
+ * (controlled via `value`/`onValueChange` or uncontrolled via `defaultValue`)
18
+ * and publishes it to `TabsList`/`Tab`/`TabPanel` through context - it renders
19
+ * no DOM of its own.
20
+ *
21
+ * @example
22
+ * <Tabs defaultValue="overview">
23
+ * <TabsList>
24
+ * <Tab value="overview">Overview</Tab>
25
+ * <Tab value="activity">Activity</Tab>
26
+ * </TabsList>
27
+ * <TabPanel value="overview">…</TabPanel>
28
+ * <TabPanel value="activity">…</TabPanel>
29
+ * </Tabs>
30
+ */
31
+ export declare const Tabs: (props: TabsProps) => import("react/jsx-runtime").JSX.Element;
32
+ export {};
33
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAC;AAKnD,UAAU,YAAY;IACpB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AAErC,2FAA2F;AAC3F,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC,IAAI,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC,CAC5E,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,4CAwBpC,CAAC"}
@@ -0,0 +1,36 @@
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 { TabsContextProvider } from './TabsContext.js';
5
+ /**
6
+ * Stateful, non-visual root for a set of tabs. Owns the selected value
7
+ * (controlled via `value`/`onValueChange` or uncontrolled via `defaultValue`)
8
+ * and publishes it to `TabsList`/`Tab`/`TabPanel` through context - it renders
9
+ * no DOM of its own.
10
+ *
11
+ * @example
12
+ * <Tabs defaultValue="overview">
13
+ * <TabsList>
14
+ * <Tab value="overview">Overview</Tab>
15
+ * <Tab value="activity">Activity</Tab>
16
+ * </TabsList>
17
+ * <TabPanel value="overview">…</TabPanel>
18
+ * <TabPanel value="activity">…</TabPanel>
19
+ * </Tabs>
20
+ */
21
+ export const Tabs = (props) => {
22
+ const baseId = useId();
23
+ const { children, value: valueProp, defaultValue, onValueChange, } = useComponentDefaults('Tabs', props);
24
+ const [internalValue, setInternalValue] = useState(defaultValue);
25
+ const isControlled = valueProp !== undefined;
26
+ const value = isControlled ? valueProp : internalValue;
27
+ const setValue = (next) => {
28
+ if (next === value)
29
+ return;
30
+ if (!isControlled)
31
+ setInternalValue(next);
32
+ onValueChange?.(next);
33
+ };
34
+ return (_jsx(TabsContextProvider, { value: { value, setValue, baseId }, children: children }));
35
+ };
36
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../src/components/Tabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAa,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAoBpD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,EACJ,QAAQ,EACR,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,aAAa,GACd,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAExC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,SAAS,KAAK,SAAS,CAAC;IAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,IAAI,IAAI,KAAK,KAAK;YAAE,OAAO;QAC3B,IAAI,CAAC,YAAY;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC1C,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,mBAAmB,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,YACpD,QAAQ,GACW,CACvB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Selection state published by `Tabs` to its descendant `TabsList`, `Tab`, and `TabPanel`.
4
+ *
5
+ * Each reads it via `useTabsContext()` - `Tab` to derive its `active` state and wire selection, `TabPanel` to decide whether to mount.
6
+ */
7
+ interface TabsContextValue {
8
+ /** Currently selected tab value (`undefined` when nothing is selected). */
9
+ value: string | undefined;
10
+ /** Select a tab by its `value`. No-ops when the value is already selected. */
11
+ setValue: (value: string) => void;
12
+ /** Stable id used to wire `aria-controls`/`aria-labelledby` between tabs and panels. */
13
+ baseId: string;
14
+ }
15
+ export declare function useTabsContext(): TabsContextValue;
16
+ export declare function TabsContextProvider(props: {
17
+ value: TabsContextValue;
18
+ children: ReactNode;
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ /** Id of the `Tab` button for a given value, within a `Tabs` instance. */
21
+ export declare const tabId: (baseId: string, value: string) => string;
22
+ /** Id of the `TabPanel` for a given value, within a `Tabs` instance. */
23
+ export declare const tabPanelId: (baseId: string, value: string) => string;
24
+ export {};
25
+ //# sourceMappingURL=TabsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsContext.d.ts","sourceRoot":"","sources":["../../../src/components/TabsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D;;;;GAIG;AACH,UAAU,gBAAgB;IACxB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,8EAA8E;IAC9E,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,cAAc,IAAI,gBAAgB,CAQjD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,KAAK,EAAE,gBAAgB,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;CACrB,2CAMA;AAED,0EAA0E;AAC1E,eAAO,MAAM,KAAK,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,WACzB,CAAC;AAE3B,wEAAwE;AACxE,eAAO,MAAM,UAAU,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,WAC5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ const TabsContext = createContext(null);
4
+ export function useTabsContext() {
5
+ const ctx = useContext(TabsContext);
6
+ if (!ctx) {
7
+ throw new Error('Cladd: `TabsList`, `Tab` and `TabPanel` must be rendered inside a `Tabs` root.');
8
+ }
9
+ return ctx;
10
+ }
11
+ export function TabsContextProvider(props) {
12
+ return (_jsx(TabsContext.Provider, { value: props.value, children: props.children }));
13
+ }
14
+ /** Id of the `Tab` button for a given value, within a `Tabs` instance. */
15
+ export const tabId = (baseId, value) => `${baseId}-tab-${value}`;
16
+ /** Id of the `TabPanel` for a given value, within a `Tabs` instance. */
17
+ export const tabPanelId = (baseId, value) => `${baseId}-panel-${value}`;
18
+ //# sourceMappingURL=TabsContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsContext.js","sourceRoot":"","sources":["../../../src/components/TabsContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAgB7D,MAAM,WAAW,GAAG,aAAa,CAA0B,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAGnC;IACC,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YACrC,KAAK,CAAC,QAAQ,GACM,CACxB,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CACrD,GAAG,MAAM,QAAQ,KAAK,EAAE,CAAC;AAE3B,wEAAwE;AACxE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE,CAC1D,GAAG,MAAM,UAAU,KAAK,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ElementType } from 'react';
2
+ import { SegmentedProps } from './Segmented.js';
3
+ export type TabsListProps<C extends ElementType = 'div'> = SegmentedProps<C>;
4
+ /** Shape of `TabsList` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
5
+ export type TabsListDefaultProps = Partial<Omit<SegmentedProps, 'as' | 'ref' | 'children'>>;
6
+ /**
7
+ * The tab strip. Renders a `Segmented` (so it inherits the full segmented look
8
+ * and all its `color`/`variant`/`active*` knobs) and layers on `role="tablist"`
9
+ * plus arrow-key navigation. Children are `Tab`s.
10
+ */
11
+ export declare const TabsList: <C extends ElementType = "div">(props: TabsListProps<C>) => import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=TabsList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsList.d.ts","sourceRoot":"","sources":["../../../src/components/TabsList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAqB,MAAM,OAAO,CAAC;AAGvD,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAE7E,+FAA+F;AAC/F,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAChD,CAAC;AA0CF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EACpD,OAAO,aAAa,CAAC,CAAC,CAAC,4CAoBxB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
3
+ import { Segmented } from './Segmented.js';
4
+ import { useTabsContext } from './TabsContext.js';
5
+ /**
6
+ * Moves focus and selection between tabs with the arrow / Home / End keys
7
+ * (automatic activation). Skips disabled tabs and wraps around the ends.
8
+ */
9
+ function onTabsKeyDown(e, setValue) {
10
+ if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(e.key))
11
+ return;
12
+ const container = e.currentTarget;
13
+ const tabs = Array.from(container.querySelectorAll('[role="tab"]')).filter((tab) => tab.getAttribute('data-disabled') == null);
14
+ if (tabs.length === 0)
15
+ return;
16
+ const active = container.ownerDocument.activeElement;
17
+ const currentIndex = active ? tabs.indexOf(active) : -1;
18
+ let nextIndex;
19
+ switch (e.key) {
20
+ case 'ArrowRight':
21
+ nextIndex = (currentIndex + 1 + tabs.length) % tabs.length;
22
+ break;
23
+ case 'ArrowLeft':
24
+ nextIndex = (currentIndex - 1 + tabs.length) % tabs.length;
25
+ break;
26
+ case 'Home':
27
+ nextIndex = 0;
28
+ break;
29
+ default:
30
+ nextIndex = tabs.length - 1;
31
+ }
32
+ e.preventDefault();
33
+ const next = tabs[nextIndex];
34
+ if (next.dataset.value != null)
35
+ setValue(next.dataset.value);
36
+ next.focus();
37
+ }
38
+ /**
39
+ * The tab strip. Renders a `Segmented` (so it inherits the full segmented look
40
+ * and all its `color`/`variant`/`active*` knobs) and layers on `role="tablist"`
41
+ * plus arrow-key navigation. Children are `Tab`s.
42
+ */
43
+ export const TabsList = (props) => {
44
+ const { setValue } = useTabsContext();
45
+ const { onKeyDown, ...rest } = useComponentDefaults('TabsList', props);
46
+ const SegmentedEl = Segmented;
47
+ return (_jsx(SegmentedEl, { ...rest, role: "tablist", "aria-orientation": "horizontal", onKeyDown: (e) => {
48
+ onKeyDown?.(e);
49
+ onTabsKeyDown(e, setValue);
50
+ } }));
51
+ };
52
+ //# sourceMappingURL=TabsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsList.js","sourceRoot":"","sources":["../../../src/components/TabsList.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAS/C;;;GAGG;AACH,SAAS,aAAa,CACpB,CAA6B,EAC7B,QAAiC;IAEjC,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAAE,OAAO;IAExE,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CACrB,SAAS,CAAC,gBAAgB,CAAc,cAAc,CAAC,CACxD,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,aAAmC,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAExD,IAAI,SAAiB,CAAC;IACtB,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,YAAY;YACf,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3D,MAAM;QACR,KAAK,WAAW;YACd,SAAS,GAAG,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3D,MAAM;QACR,KAAK,MAAM;YACT,SAAS,GAAG,CAAC,CAAC;YACd,MAAM;QACR;YACE,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,CAAC,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAuB,EACvB,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,EAAE,CAAC;IACtC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,oBAAoB,CACjD,UAAU,EACV,KAAK,CACY,CAAC;IACpB,MAAM,WAAW,GAAG,SAA+B,CAAC;IAEpD,OAAO,CACL,KAAC,WAAW,OACN,IAAI,EACR,IAAI,EAAC,SAAS,sBACG,YAAY,EAC7B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACf,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACf,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC,GACD,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -57,6 +57,8 @@ interface TextareaOwnProps<C extends ElementType = 'div'> {
57
57
  errorMessage?: ReactNode;
58
58
  /** Icon node rendered absolutely positioned on the left. */
59
59
  icon?: ReactNode;
60
+ /** Extra classes for the icon wrapper. */
61
+ iconClassName?: string;
60
62
  /** Reserved - currently not applied in the rendered output. */
61
63
  inputPadding?: string;
62
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
5
5
  import { cn } from '../shared/cn.js';
6
6
  import { roundedClasses } from '../shared/rounded-classes.js';
7
7
  import { rootSizeClasses } from '../shared/size-utls.js';
8
- import { FocusableLayer } from './FocusableLayer.js';
8
+ import { FocusRing } from './FocusRing.js';
9
9
  import { SurfaceCut } from './SurfaceCut.js';
10
10
  export const Textarea = (props) => {
11
11
  const accentColor = useAccentColor();
12
- const { as: asProp = 'div', ref: externalRef, value, placeholder, disabled = false, readOnly, rounded = false, size = 'lg', onChange = () => { }, onKeyDown = () => { }, onFocus = () => { }, onBlur = () => { }, color = accentColor, prefix, suffix, updateContentOnChange = true, className, contentClassName, inputClassName, placeholderClassName = '', valid = true, infoMessage, errorMessage, icon, ...rest } = useComponentDefaults('Textarea', props);
12
+ const { as: asProp = 'div', ref: externalRef, value, placeholder, disabled = false, readOnly, rounded = false, size = 'lg', onChange = () => { }, onKeyDown = () => { }, onFocus = () => { }, onBlur = () => { }, color = accentColor, prefix, suffix, updateContentOnChange = true, className, contentClassName, inputClassName, placeholderClassName = '', valid = true, infoMessage, errorMessage, icon, iconClassName = '', ...rest } = useComponentDefaults('Textarea', props);
13
13
  const fontSizes = {
14
14
  sm: 'text-cladd-xs',
15
15
  md: 'text-cladd-xs',
@@ -71,6 +71,6 @@ export const Textarea = (props) => {
71
71
  }
72
72
  }, [value]);
73
73
  const SurfaceCutComponent = SurfaceCut;
74
- return (_jsxs(SurfaceCutComponent, { ...rest, as: asProp, ref: externalRef, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": valid === false || undefined, hoverable: !disabled && !readOnly, wrapContent: false, className: cn('cladd-textarea group/cladd-textarea relative', disabled && 'opacity-50', itemRoundedClasses, className), children: [!readOnly && !disabled && (_jsx(FocusableLayer, { className: cn(focusRoundedClasses), force: valid === false, color: valid === false ? 'red' : color, group: "textarea" })), _jsxs("div", { "data-part": "wrapper", onContextMenuCapture: (e) => e.preventDefault(), className: cn('relative flex items-center', contentClassName), children: [prefix, icon && (_jsx("div", { "data-part": "icon", className: cn('pointer-events-none absolute', iconWrapClasses[size]), children: icon })), _jsxs("div", { className: "relative flex w-full", children: [_jsx("div", { "data-part": "control", contentEditable: !disabled && !readOnly, ref: inputElRef, className: cn(inputPadding, height, itemRoundedClasses, fontSizes[size], 'w-full appearance-none border-none bg-transparent font-medium shadow-none outline-none', disabled && 'text-cladd-fg-softer', inputClassName), onPaste: onPaste, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onInput: onInput }), !text && placeholder && (_jsx("div", { "data-part": "placeholder", className: cn('pointer-events-none absolute top-0 left-0 h-full w-full text-cladd-fg-softer select-none', fontSizes[size], inputPadding, placeholderClassName), children: placeholder }))] }), suffix] }), infoMessage && valid !== false && !readOnly && (_jsx("div", { "data-part": "info", className: cn(`cladd-color-${color}`, 'pointer-events-none absolute -top-1.5 left-2 z-10 translate-y-1 rounded-cladd-sm bg-cladd-primary px-2 py-1.5 text-cladd-2xs leading-none font-semibold text-cladd-on-primary opacity-0 duration-200 group-has-[[contenteditable]:focus]/cladd-textarea:-translate-y-1/2 group-has-[[contenteditable]:focus]/cladd-textarea:opacity-100'), children: infoMessage })), errorMessage && valid === false && (_jsx("div", { "data-part": "error", className: cn('cladd-color-red pointer-events-none absolute -top-1.5 left-2 z-10 -translate-y-1/2 rounded-cladd-sm bg-cladd-primary px-1 py-0.5 text-cladd-2xs leading-none font-semibold text-cladd-on-primary opacity-100 duration-200'), children: errorMessage }))] }));
74
+ return (_jsxs(SurfaceCutComponent, { ...rest, as: asProp, ref: externalRef, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": valid === false || undefined, hoverable: !disabled && !readOnly, wrapContent: false, className: cn('cladd-textarea group/cladd-textarea relative', disabled && 'opacity-50', itemRoundedClasses, className), children: [!readOnly && !disabled && (_jsx(FocusRing, { className: cn(focusRoundedClasses), force: valid === false, color: valid === false ? 'red' : color, group: "textarea" })), _jsxs("div", { "data-part": "wrapper", onContextMenuCapture: (e) => e.preventDefault(), className: cn('relative flex items-center', contentClassName), children: [prefix, icon && (_jsx("div", { "data-part": "icon", className: cn('pointer-events-none absolute', iconWrapClasses[size], iconClassName), children: icon })), _jsxs("div", { className: "relative flex w-full", children: [_jsx("div", { "data-part": "control", contentEditable: !disabled && !readOnly, ref: inputElRef, className: cn(inputPadding, height, itemRoundedClasses, fontSizes[size], 'w-full appearance-none border-none bg-transparent font-medium shadow-none outline-none', disabled && 'text-cladd-fg-softer', inputClassName), onPaste: onPaste, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onInput: onInput }), !text && placeholder && (_jsx("div", { "data-part": "placeholder", className: cn('pointer-events-none absolute top-0 left-0 h-full w-full text-cladd-fg-softer select-none', fontSizes[size], inputPadding, placeholderClassName), children: placeholder }))] }), suffix] }), infoMessage && valid !== false && !readOnly && (_jsx("div", { "data-part": "info", className: cn(`cladd-color-${color}`, 'pointer-events-none absolute -top-1.5 left-2 z-10 translate-y-1 rounded-cladd-sm bg-cladd-primary px-2 py-1.5 text-cladd-2xs leading-none font-semibold text-cladd-on-primary opacity-0 duration-200 group-has-[[contenteditable]:focus]/cladd-textarea:-translate-y-1/2 group-has-[[contenteditable]:focus]/cladd-textarea:opacity-100'), children: infoMessage })), errorMessage && valid === false && (_jsx("div", { "data-part": "error", className: cn('cladd-color-red pointer-events-none absolute -top-1.5 left-2 z-10 -translate-y-1/2 rounded-cladd-sm bg-cladd-primary px-1 py-0.5 text-cladd-2xs leading-none font-semibold text-cladd-on-primary opacity-100 duration-200'), children: errorMessage }))] }));
75
75
  };
76
76
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../../src/components/Textarea.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,16 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { Color } from '../types.js';
3
+ import type { AccordionItemDefaultProps } from './AccordionItem.js';
4
+ import type { AccordionRootDefaultProps } from './AccordionRoot.js';
3
5
  import type { BackdropDefaultProps } from './Backdrop.js';
4
6
  import type { ButtonDefaultProps } from './Button.js';
5
7
  import type { CheckboxDefaultProps } from './Checkbox.js';
6
8
  import type { ChipDefaultProps } from './Chip.js';
9
+ import type { CollapsibleIndicatorDefaultProps } from './CollapsibleIndicator.js';
10
+ import type { CollapsiblePanelDefaultProps } from './CollapsiblePanel.js';
11
+ import type { CollapsibleRootDefaultProps } from './CollapsibleRoot.js';
12
+ import type { ColorEditorDefaultProps } from './ColorEditor.js';
13
+ import type { ColorPickerDefaultProps } from './ColorPicker.js';
7
14
  import type { DialogDefaultProps } from './Dialog.js';
8
15
  import type { InputDefaultProps } from './Input.js';
9
16
  import type { LinkDefaultProps } from './Link.js';
@@ -34,8 +41,14 @@ import type { SurfaceContentDefaultProps } from './SurfaceContent.js';
34
41
  import type { SurfaceCutDefaultProps } from './SurfaceCut.js';
35
42
  import type { SurfaceCutContentDefaultProps } from './SurfaceCutContent.js';
36
43
  import type { SwitchDefaultProps } from './Switch.js';
44
+ import type { TabDefaultProps } from './Tab.js';
45
+ import type { TabPanelDefaultProps } from './TabPanel.js';
46
+ import type { TabsDefaultProps } from './Tabs.js';
47
+ import type { TabsListDefaultProps } from './TabsList.js';
37
48
  import type { TextareaDefaultProps } from './Textarea.js';
38
49
  import type { ToastDefaultProps } from './Toast.js';
50
+ import type { ToggleButtonDefaultProps } from './ToggleButton.js';
51
+ import type { ToggleGroupDefaultProps } from './ToggleGroup.js';
39
52
  import type { ToolbarDefaultProps } from './Toolbar.js';
40
53
  import type { ToolbarButtonDefaultProps } from './ToolbarButton.js';
41
54
  import type { ToolbarSeparatorDefaultProps } from './ToolbarSeparator.js';
@@ -51,10 +64,17 @@ import type { TooltipPrimitiveDefaultProps } from './TooltipPrimitive.js';
51
64
  * Add new entries here as additional components opt into context defaults.
52
65
  */
53
66
  export interface ComponentDefaults {
67
+ AccordionRoot?: AccordionRootDefaultProps;
68
+ AccordionItem?: AccordionItemDefaultProps;
54
69
  Backdrop?: BackdropDefaultProps;
55
70
  Button?: ButtonDefaultProps;
56
71
  Checkbox?: CheckboxDefaultProps;
57
72
  Chip?: ChipDefaultProps;
73
+ ColorEditor?: ColorEditorDefaultProps;
74
+ ColorPicker?: ColorPickerDefaultProps;
75
+ CollapsibleRoot?: CollapsibleRootDefaultProps;
76
+ CollapsiblePanel?: CollapsiblePanelDefaultProps;
77
+ CollapsibleIndicator?: CollapsibleIndicatorDefaultProps;
58
78
  Dialog?: DialogDefaultProps;
59
79
  Input?: InputDefaultProps;
60
80
  Link?: LinkDefaultProps;
@@ -85,8 +105,14 @@ export interface ComponentDefaults {
85
105
  SurfaceCut?: SurfaceCutDefaultProps;
86
106
  SurfaceCutContent?: SurfaceCutContentDefaultProps;
87
107
  Switch?: SwitchDefaultProps;
108
+ Tabs?: TabsDefaultProps;
109
+ TabsList?: TabsListDefaultProps;
110
+ Tab?: TabDefaultProps;
111
+ TabPanel?: TabPanelDefaultProps;
88
112
  Textarea?: TextareaDefaultProps;
89
113
  Toast?: ToastDefaultProps;
114
+ ToggleGroup?: ToggleGroupDefaultProps;
115
+ ToggleButton?: ToggleButtonDefaultProps;
90
116
  Toolbar?: ToolbarDefaultProps;
91
117
  ToolbarButton?: ToolbarButtonDefaultProps;
92
118
  ToolbarSeparator?: ToolbarSeparatorDefaultProps;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAClD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,eAAe,CAAC,EAAE,2BAA2B,CAAC;IAC9C,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,0BAA0B,CAAC;IAC5C,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,iBAAiB,CAAC,EAAE,6BAA6B,CAAC;IAClD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAC1C,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;CACjD;AAED,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AACF,eAAO,MAAM,YAAY,4CAKvB,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,2DAM3B;IACD,8CAA8C;IAC9C,QAAQ,EAAE,SAAS,CAAC;IACpB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B,4CAaA,CAAC"}
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/components/ThemeContext.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../src/components/ThemeContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAwGjD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAoB;IAC3D,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,GAYT,EAAE,EAAE;IACH,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,KAAK;YACL,WAAW;YACX,YAAY,EAAE,YAAY,IAAI,sBAAsB;YACpD,QAAQ,EAAE,QAAQ,IAAI,EAAE;SACzB,YAEA,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../src/components/ThemeContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAkIjD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAoB;IAC3D,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,GAYT,EAAE,EAAE;IACH,OAAO,CACL,KAAC,YAAY,CAAC,QAAQ,IACpB,KAAK,EAAE;YACL,KAAK;YACL,WAAW;YACX,YAAY,EAAE,YAAY,IAAI,sBAAsB;YACpD,QAAQ,EAAE,QAAQ,IAAI,EAAE;SACzB,YAEA,QAAQ,GACa,CACzB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { ElementType, MouseEvent } from 'react';
2
+ import { Color } from '../types.js';
3
+ import { SegmentedButtonProps } from './SegmentedButton.js';
4
+ import { SurfaceVariant } from './Surface.js';
5
+ interface ToggleButtonOwnProps {
6
+ /**
7
+ * Identifies this button inside a `ToggleGroup` - matched against the group's selection.
8
+ *
9
+ * Omit when using the button standalone.
10
+ */
11
+ value?: string;
12
+ /** Controlled pressed state for **standalone** use. Ignored inside a `ToggleGroup`. */
13
+ selected?: boolean;
14
+ /** Initial pressed state for **standalone** use (uncontrolled). Ignored inside a `ToggleGroup`. */
15
+ defaultSelected?: boolean;
16
+ /**
17
+ * Fires with the next pressed state on click. Standalone only - inside a `ToggleGroup` use the group's `onValueChange` instead.
18
+ */
19
+ onChange?: (selected: boolean, event: MouseEvent) => void;
20
+ /** Accent color applied while **pressed**. Default: theme accent (or the group's `activeColor`). */
21
+ activeColor?: Color;
22
+ /** `Surface` variant applied while **pressed**. Default `'gradient'`. */
23
+ activeVariant?: SurfaceVariant;
24
+ /** Outline ring while **pressed**. Default `true`. */
25
+ activeOutline?: boolean;
26
+ }
27
+ export type ToggleButtonProps<C extends ElementType = 'button'> = ToggleButtonOwnProps & Omit<SegmentedButtonProps<C>, 'active' | keyof ToggleButtonOwnProps>;
28
+ /** Shape of `ToggleButton` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
29
+ export type ToggleButtonDefaultProps = Partial<Omit<ToggleButtonProps, 'as' | 'ref' | 'children' | 'value' | 'selected' | 'defaultSelected'>>;
30
+ /**
31
+ * A two-state (pressed / not) button. Looks like a single `SegmentedButton` -
32
+ * transparent when idle, accent gradient when pressed - and exposes
33
+ * `aria-pressed`.
34
+ *
35
+ * Works both ways:
36
+ * - **Inside a `ToggleGroup`**: identify it with `value`; the group owns the
37
+ * selection and the button derives its pressed state and styling from it.
38
+ * - **Standalone**: owns its own state (controlled via `selected`/`onChange` or
39
+ * uncontrolled via `defaultSelected`) - handy for toolbar controls like
40
+ * bold/italic/pin.
41
+ */
42
+ export declare const ToggleButton: <C extends ElementType = "button">(props: ToggleButtonProps<C>) => import("react/jsx-runtime").JSX.Element;
43
+ export {};
44
+ //# sourceMappingURL=ToggleButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../../src/components/ToggleButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAM,UAAU,EAAY,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAmB,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK1E,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAI3C,UAAU,oBAAoB;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mGAAmG;IACnG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC1D,oGAAoG;IACpG,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,yEAAyE;IACzE,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,sDAAsD;IACtD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,IAC5D,oBAAoB,GAClB,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,oBAAoB,CAAC,CAAC;AAEzE,mGAAmG;AACnG,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,IAAI,CACF,iBAAiB,EACjB,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CACrE,CACF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,GAAG,QAAQ,EAC3D,OAAO,iBAAiB,CAAC,CAAC,CAAC,4CAyE5B,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { useAccentColor } from '../hooks/use-accent-color.js';
4
+ import { useComponentDefaults } from '../hooks/use-component-defaults.js';
5
+ import { SegmentedButton } from './SegmentedButton.js';
6
+ import { SegmentedContextProvider, useSegmentedContext, } from './SegmentedContext.js';
7
+ import { useToggleGroupContext } from './ToggleGroupContext.js';
8
+ import { useToolbarContext } from './ToolbarContext.js';
9
+ /**
10
+ * A two-state (pressed / not) button. Looks like a single `SegmentedButton` -
11
+ * transparent when idle, accent gradient when pressed - and exposes
12
+ * `aria-pressed`.
13
+ *
14
+ * Works both ways:
15
+ * - **Inside a `ToggleGroup`**: identify it with `value`; the group owns the
16
+ * selection and the button derives its pressed state and styling from it.
17
+ * - **Standalone**: owns its own state (controlled via `selected`/`onChange` or
18
+ * uncontrolled via `defaultSelected`) - handy for toolbar controls like
19
+ * bold/italic/pin.
20
+ */
21
+ export const ToggleButton = (props) => {
22
+ const accentColor = useAccentColor();
23
+ const { size: toolbarSize, rounded: toolbarRounded } = useToolbarContext();
24
+ const group = useToggleGroupContext();
25
+ const seg = useSegmentedContext();
26
+ const { value, selected: selectedProp, defaultSelected = false, onChange, activeColor, activeVariant, activeOutline, color, variant, outline, size, rounded, onClick, ...rest } = useComponentDefaults('ToggleButton', props);
27
+ const [internalSelected, setInternalSelected] = useState(defaultSelected);
28
+ const selected = group
29
+ ? group.multiple
30
+ ? Array.isArray(group.value) &&
31
+ value != null &&
32
+ group.value.includes(value)
33
+ : group.value === value
34
+ : selectedProp !== undefined
35
+ ? selectedProp
36
+ : internalSelected;
37
+ // Resolve styling from this button's props, then the surrounding `Segmented`
38
+ // (set up by `ToggleGroup`), then toggle defaults. Routed through context -
39
+ // not passed to `SegmentedButton` directly - so its active/inactive switch
40
+ // keeps working (props passed to it would override the context-derived look).
41
+ const styling = {
42
+ size: size ?? seg.size ?? toolbarSize ?? 'md',
43
+ rounded: rounded ?? seg.rounded ?? toolbarRounded ?? true,
44
+ color: color ?? seg.color ?? '',
45
+ variant: variant ?? seg.variant ?? 'transparent',
46
+ outline: outline ?? seg.outline ?? false,
47
+ activeColor: activeColor ?? seg.activeColor ?? accentColor,
48
+ activeVariant: activeVariant ?? seg.activeVariant ?? 'gradient',
49
+ activeOutline: activeOutline ?? seg.activeOutline ?? true,
50
+ };
51
+ const SegmentedButtonEl = SegmentedButton;
52
+ return (_jsx(SegmentedContextProvider, { value: styling, children: _jsx(SegmentedButtonEl, { ...rest, active: selected, readOnly: false, "aria-pressed": selected, "data-value": value, onClick: (e) => {
53
+ onClick?.(e);
54
+ if (group) {
55
+ if (value != null)
56
+ group.toggleValue(value);
57
+ }
58
+ else {
59
+ const next = !selected;
60
+ if (selectedProp === undefined)
61
+ setInternalSelected(next);
62
+ onChange?.(next, e);
63
+ }
64
+ } }) }));
65
+ };
66
+ //# sourceMappingURL=ToggleButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleButton.js","sourceRoot":"","sources":["../../../src/components/ToggleButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA+B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAwB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAqCrD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAA2B,EAC3B,EAAE;IACF,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,mBAAmB,EAAE,CAAC;IAClC,MAAM,EACJ,KAAK,EACL,QAAQ,EAAE,YAAY,EACtB,eAAe,GAAG,KAAK,EACvB,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,KAAK,EACL,OAAO,EACP,OAAO,EACP,IAAI,EACJ,OAAO,EACP,OAAO,EACP,GAAG,IAAI,EACR,GAAG,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAsB,CAAC;IAErE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,KAAK;QACpB,CAAC,CAAC,KAAK,CAAC,QAAQ;YACd,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1B,KAAK,IAAI,IAAI;gBACb,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK;QACzB,CAAC,CAAC,YAAY,KAAK,SAAS;YAC1B,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,gBAAgB,CAAC;IAEvB,6EAA6E;IAC7E,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW,IAAI,IAAI;QAC7C,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,cAAc,IAAI,IAAI;QACzD,KAAK,EAAE,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,EAAE;QAC/B,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,aAAa;QAChD,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK;QACxC,WAAW,EAAE,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,WAAW;QAC1D,aAAa,EAAE,aAAa,IAAI,GAAG,CAAC,aAAa,IAAI,UAAU;QAC/D,aAAa,EAAE,aAAa,IAAI,GAAG,CAAC,aAAa,IAAI,IAAI;KAC1D,CAAC;IAEF,MAAM,iBAAiB,GAAG,eAA2C,CAAC;IAEtE,OAAO,CACL,KAAC,wBAAwB,IAAC,KAAK,EAAE,OAAO,YACtC,KAAC,iBAAiB,OACZ,IAAI,EACR,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,KAAK,kBACD,QAAQ,gBACV,KAAK,EACjB,OAAO,EAAE,CAAC,CAAgC,EAAE,EAAE;gBAC5C,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACb,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,IAAI,IAAI;wBAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC;oBACvB,IAAI,YAAY,KAAK,SAAS;wBAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC1D,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC,GACD,GACuB,CAC5B,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { ElementType } from 'react';
2
+ import { SegmentedProps } from './Segmented.js';
3
+ interface ToggleGroupOwnProps {
4
+ /**
5
+ * Controlled selection. A single value in single-select mode, an array when `multiple`.
6
+ *
7
+ * When provided, internal state is bypassed.
8
+ */
9
+ value?: string | string[];
10
+ /** Initial selection (uncontrolled). Ignored when `value` is provided. */
11
+ defaultValue?: string | string[];
12
+ /**
13
+ * Fires whenever the selection changes.
14
+ *
15
+ * Receives a single value (or `undefined` when nothing is selected) in single-select mode, or the full array in `multiple` mode.
16
+ */
17
+ onValueChange?: (value: string | string[] | undefined) => void;
18
+ /**
19
+ * Allow more than one selected value. Selection becomes an array and every `ToggleButton` toggles independently. Default `false`.
20
+ */
21
+ multiple?: boolean;
22
+ }
23
+ export type ToggleGroupProps<C extends ElementType = 'div'> = ToggleGroupOwnProps & Omit<SegmentedProps<C>, keyof ToggleGroupOwnProps>;
24
+ /** Shape of `ToggleGroup` defaults that can be supplied via `CladdProvider`'s `defaults` prop. */
25
+ export type ToggleGroupDefaultProps = Partial<Omit<ToggleGroupProps, 'as' | 'ref' | 'children' | 'value' | 'defaultValue' | 'onValueChange'>>;
26
+ /**
27
+ * A group of `ToggleButton`s that owns the selected value(s) - the
28
+ * self-managing counterpart to wiring `Segmented`/`SegmentedButton` by hand.
29
+ * Renders a `Segmented` (so it inherits the full segmented look and all its
30
+ * `color`/`variant`/`active*` knobs) and publishes the selection to its
31
+ * children through context.
32
+ *
33
+ * Unlike `Segmented`, the active button stays pressable: clicking it deselects
34
+ * (single mode collapses to no selection, `multiple` removes it from the set).
35
+ *
36
+ * @example
37
+ * <ToggleGroup defaultValue="grid" activeColor="neutral">
38
+ * <ToggleButton value="grid">Grid</ToggleButton>
39
+ * <ToggleButton value="list">List</ToggleButton>
40
+ * </ToggleGroup>
41
+ *
42
+ * @example
43
+ * <ToggleGroup multiple defaultValue={['bold']}>
44
+ * <ToggleButton value="bold">Bold</ToggleButton>
45
+ * <ToggleButton value="italic">Italic</ToggleButton>
46
+ * </ToggleGroup>
47
+ */
48
+ export declare const ToggleGroup: <C extends ElementType = "div">(props: ToggleGroupProps<C>) => import("react/jsx-runtime").JSX.Element;
49
+ export {};
50
+ //# sourceMappingURL=ToggleGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToggleGroup.d.ts","sourceRoot":"","sources":["../../../src/components/ToggleGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;AAGxD,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,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;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IACxD,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,mBAAmB,CAAC,CAAC;AAE3E,kGAAkG;AAClG,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAC3C,IAAI,CACF,gBAAgB,EAChB,IAAI,GAAG,KAAK,GAAG,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CACvE,CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EACvD,OAAO,gBAAgB,CAAC,CAAC,CAAC,4CA+C3B,CAAC"}