@cladd-ui/react 0.0.1 → 0.0.2

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 (241) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/components/Backdrop.d.ts +8 -0
  4. package/components/Backdrop.d.ts.map +1 -0
  5. package/components/Backdrop.js +7 -0
  6. package/components/Backdrop.js.map +1 -0
  7. package/components/BlockTitle.d.ts +10 -0
  8. package/components/BlockTitle.d.ts.map +1 -0
  9. package/components/BlockTitle.js +7 -0
  10. package/components/BlockTitle.js.map +1 -0
  11. package/components/Button.d.ts +61 -0
  12. package/components/Button.d.ts.map +1 -0
  13. package/components/Button.js +83 -0
  14. package/components/Button.js.map +1 -0
  15. package/components/Checkbox.d.ts +57 -0
  16. package/components/Checkbox.d.ts.map +1 -0
  17. package/components/Checkbox.js +48 -0
  18. package/components/Checkbox.js.map +1 -0
  19. package/components/Chip.d.ts +47 -0
  20. package/components/Chip.d.ts.map +1 -0
  21. package/components/Chip.js +55 -0
  22. package/components/Chip.js.map +1 -0
  23. package/components/Dialog.d.ts +118 -0
  24. package/components/Dialog.d.ts.map +1 -0
  25. package/components/Dialog.js +178 -0
  26. package/components/Dialog.js.map +1 -0
  27. package/components/DialogsPortal.d.ts +2 -0
  28. package/components/DialogsPortal.d.ts.map +1 -0
  29. package/components/DialogsPortal.js +17 -0
  30. package/components/DialogsPortal.js.map +1 -0
  31. package/components/DialogsPortalContext.d.ts +49 -0
  32. package/components/DialogsPortalContext.d.ts.map +1 -0
  33. package/components/DialogsPortalContext.js +17 -0
  34. package/components/DialogsPortalContext.js.map +1 -0
  35. package/components/FocusableLayer.d.ts +25 -0
  36. package/components/FocusableLayer.d.ts.map +1 -0
  37. package/components/FocusableLayer.js +18 -0
  38. package/components/FocusableLayer.js.map +1 -0
  39. package/components/Input.d.ts +87 -0
  40. package/components/Input.d.ts.map +1 -0
  41. package/components/Input.js +93 -0
  42. package/components/Input.js.map +1 -0
  43. package/components/Link.d.ts +28 -0
  44. package/components/Link.d.ts.map +1 -0
  45. package/components/Link.js +21 -0
  46. package/components/Link.js.map +1 -0
  47. package/components/List.d.ts +8 -0
  48. package/components/List.d.ts.map +1 -0
  49. package/components/List.js +7 -0
  50. package/components/List.js.map +1 -0
  51. package/components/ListButton.d.ts +61 -0
  52. package/components/ListButton.d.ts.map +1 -0
  53. package/components/ListButton.js +9 -0
  54. package/components/ListButton.js.map +1 -0
  55. package/components/ListItem.d.ts +8 -0
  56. package/components/ListItem.d.ts.map +1 -0
  57. package/components/ListItem.js +7 -0
  58. package/components/ListItem.js.map +1 -0
  59. package/components/ListSeparator.d.ts +8 -0
  60. package/components/ListSeparator.d.ts.map +1 -0
  61. package/components/ListSeparator.js +7 -0
  62. package/components/ListSeparator.js.map +1 -0
  63. package/components/ModalController.d.ts +26 -0
  64. package/components/ModalController.d.ts.map +1 -0
  65. package/components/ModalController.js +52 -0
  66. package/components/ModalController.js.map +1 -0
  67. package/components/NumberField.d.ts +49 -0
  68. package/components/NumberField.d.ts.map +1 -0
  69. package/components/NumberField.js +34 -0
  70. package/components/NumberField.js.map +1 -0
  71. package/components/Popover.d.ts +137 -0
  72. package/components/Popover.d.ts.map +1 -0
  73. package/components/Popover.js +366 -0
  74. package/components/Popover.js.map +1 -0
  75. package/components/Popup.d.ts +120 -0
  76. package/components/Popup.d.ts.map +1 -0
  77. package/components/Popup.js +235 -0
  78. package/components/Popup.js.map +1 -0
  79. package/components/PopupContent.d.ts +19 -0
  80. package/components/PopupContent.d.ts.map +1 -0
  81. package/components/PopupContent.js +8 -0
  82. package/components/PopupContent.js.map +1 -0
  83. package/components/Preloader.d.ts +12 -0
  84. package/components/Preloader.d.ts.map +1 -0
  85. package/components/Preloader.js +30 -0
  86. package/components/Preloader.js.map +1 -0
  87. package/components/Radio.d.ts +53 -0
  88. package/components/Radio.d.ts.map +1 -0
  89. package/components/Radio.js +46 -0
  90. package/components/Radio.js.map +1 -0
  91. package/components/Range.d.ts +35 -0
  92. package/components/Range.d.ts.map +1 -0
  93. package/components/Range.js +76 -0
  94. package/components/Range.js.map +1 -0
  95. package/components/Searchbar.d.ts +29 -0
  96. package/components/Searchbar.d.ts.map +1 -0
  97. package/components/Searchbar.js +10 -0
  98. package/components/Searchbar.js.map +1 -0
  99. package/components/Segmented.d.ts +39 -0
  100. package/components/Segmented.d.ts.map +1 -0
  101. package/components/Segmented.js +26 -0
  102. package/components/Segmented.js.map +1 -0
  103. package/components/SegmentedButton.d.ts +13 -0
  104. package/components/SegmentedButton.d.ts.map +1 -0
  105. package/components/SegmentedButton.js +10 -0
  106. package/components/SegmentedButton.js.map +1 -0
  107. package/components/SegmentedContext.d.ts +36 -0
  108. package/components/SegmentedContext.d.ts.map +1 -0
  109. package/components/SegmentedContext.js +10 -0
  110. package/components/SegmentedContext.js.map +1 -0
  111. package/components/Select.d.ts +145 -0
  112. package/components/Select.d.ts.map +1 -0
  113. package/components/Select.js +316 -0
  114. package/components/Select.js.map +1 -0
  115. package/components/Surface.d.ts +67 -0
  116. package/components/Surface.d.ts.map +1 -0
  117. package/components/Surface.js +36 -0
  118. package/components/Surface.js.map +1 -0
  119. package/components/SurfaceContent.d.ts +8 -0
  120. package/components/SurfaceContent.d.ts.map +1 -0
  121. package/components/SurfaceContent.js +7 -0
  122. package/components/SurfaceContent.js.map +1 -0
  123. package/components/SurfaceContext.d.ts +19 -0
  124. package/components/SurfaceContext.d.ts.map +1 -0
  125. package/components/SurfaceContext.js +9 -0
  126. package/components/SurfaceContext.js.map +1 -0
  127. package/components/SurfaceCut.d.ts +33 -0
  128. package/components/SurfaceCut.d.ts.map +1 -0
  129. package/components/SurfaceCut.js +17 -0
  130. package/components/SurfaceCut.js.map +1 -0
  131. package/components/SurfaceCutContent.d.ts +16 -0
  132. package/components/SurfaceCutContent.d.ts.map +1 -0
  133. package/components/SurfaceCutContent.js +8 -0
  134. package/components/SurfaceCutContent.js.map +1 -0
  135. package/components/TextArea.d.ts +61 -0
  136. package/components/TextArea.d.ts.map +1 -0
  137. package/components/TextArea.js +102 -0
  138. package/components/TextArea.js.map +1 -0
  139. package/components/ThemeContext.d.ts +23 -0
  140. package/components/ThemeContext.d.ts.map +1 -0
  141. package/components/ThemeContext.js +18 -0
  142. package/components/ThemeContext.js.map +1 -0
  143. package/components/Toast.d.ts +89 -0
  144. package/components/Toast.d.ts.map +1 -0
  145. package/components/Toast.js +129 -0
  146. package/components/Toast.js.map +1 -0
  147. package/components/ToastsPortal.d.ts +2 -0
  148. package/components/ToastsPortal.d.ts.map +1 -0
  149. package/components/ToastsPortal.js +17 -0
  150. package/components/ToastsPortal.js.map +1 -0
  151. package/components/ToastsPortalContext.d.ts +45 -0
  152. package/components/ToastsPortalContext.d.ts.map +1 -0
  153. package/components/ToastsPortalContext.js +17 -0
  154. package/components/ToastsPortalContext.js.map +1 -0
  155. package/components/Toggle.d.ts +69 -0
  156. package/components/Toggle.d.ts.map +1 -0
  157. package/components/Toggle.js +48 -0
  158. package/components/Toggle.js.map +1 -0
  159. package/components/Tooltip.d.ts +48 -0
  160. package/components/Tooltip.d.ts.map +1 -0
  161. package/components/Tooltip.js +90 -0
  162. package/components/Tooltip.js.map +1 -0
  163. package/components/UIProvider.d.ts +16 -0
  164. package/components/UIProvider.d.ts.map +1 -0
  165. package/components/UIProvider.js +11 -0
  166. package/components/UIProvider.js.map +1 -0
  167. package/components/WithTooltip.d.ts +36 -0
  168. package/components/WithTooltip.d.ts.map +1 -0
  169. package/components/WithTooltip.js +138 -0
  170. package/components/WithTooltip.js.map +1 -0
  171. package/components/icons/CheckIcon.d.ts +2 -0
  172. package/components/icons/CheckIcon.d.ts.map +1 -0
  173. package/components/icons/CheckIcon.js +5 -0
  174. package/components/icons/CheckIcon.js.map +1 -0
  175. package/components/icons/CloseIcon.d.ts +2 -0
  176. package/components/icons/CloseIcon.d.ts.map +1 -0
  177. package/components/icons/CloseIcon.js +3 -0
  178. package/components/icons/CloseIcon.js.map +1 -0
  179. package/components/icons/DropdownIcon.d.ts +2 -0
  180. package/components/icons/DropdownIcon.d.ts.map +1 -0
  181. package/components/icons/DropdownIcon.js +3 -0
  182. package/components/icons/DropdownIcon.js.map +1 -0
  183. package/components/icons/SearchIcon.d.ts +2 -0
  184. package/components/icons/SearchIcon.d.ts.map +1 -0
  185. package/components/icons/SearchIcon.js +5 -0
  186. package/components/icons/SearchIcon.js.map +1 -0
  187. package/hooks/use-accent-color.d.ts +2 -0
  188. package/hooks/use-accent-color.d.ts.map +1 -0
  189. package/hooks/use-accent-color.js +6 -0
  190. package/hooks/use-accent-color.js.map +1 -0
  191. package/hooks/use-device.d.ts +14 -0
  192. package/hooks/use-device.d.ts.map +1 -0
  193. package/hooks/use-device.js +68 -0
  194. package/hooks/use-device.js.map +1 -0
  195. package/hooks/use-dialog.d.ts +8 -0
  196. package/hooks/use-dialog.d.ts.map +1 -0
  197. package/hooks/use-dialog.js +38 -0
  198. package/hooks/use-dialog.js.map +1 -0
  199. package/hooks/use-focus-trap.d.ts +9 -0
  200. package/hooks/use-focus-trap.d.ts.map +1 -0
  201. package/hooks/use-focus-trap.js +106 -0
  202. package/hooks/use-focus-trap.js.map +1 -0
  203. package/hooks/use-modal-utils.d.ts +17 -0
  204. package/hooks/use-modal-utils.d.ts.map +1 -0
  205. package/hooks/use-modal-utils.js +110 -0
  206. package/hooks/use-modal-utils.js.map +1 -0
  207. package/hooks/use-surface.d.ts +2 -0
  208. package/hooks/use-surface.d.ts.map +1 -0
  209. package/hooks/use-surface.js +6 -0
  210. package/hooks/use-surface.js.map +1 -0
  211. package/hooks/use-theme.d.ts +2 -0
  212. package/hooks/use-theme.d.ts.map +1 -0
  213. package/hooks/use-theme.js +6 -0
  214. package/hooks/use-theme.js.map +1 -0
  215. package/hooks/use-toast.d.ts +3 -0
  216. package/hooks/use-toast.d.ts.map +1 -0
  217. package/hooks/use-toast.js +21 -0
  218. package/hooks/use-toast.js.map +1 -0
  219. package/index.d.ts +42 -0
  220. package/index.d.ts.map +1 -0
  221. package/index.js +42 -0
  222. package/index.js.map +1 -0
  223. package/package.json +27 -9
  224. package/shared/cn.d.ts +3 -0
  225. package/shared/cn.d.ts.map +1 -0
  226. package/shared/cn.js +6 -0
  227. package/shared/cn.js.map +1 -0
  228. package/shared/next-tick.d.ts +2 -0
  229. package/shared/next-tick.d.ts.map +1 -0
  230. package/shared/next-tick.js +6 -0
  231. package/shared/next-tick.js.map +1 -0
  232. package/styles/colors.css +403 -0
  233. package/styles/popup.css +14 -0
  234. package/styles/preloader.css +71 -0
  235. package/styles/range.css +17 -0
  236. package/styles/safe-areas.css +192 -0
  237. package/types.d.ts +2 -0
  238. package/types.d.ts.map +1 -0
  239. package/types.js +2 -0
  240. package/types.js.map +1 -0
  241. package/ui.css +10 -0
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../shared/cn';
3
+ import { SearchIcon } from './icons/SearchIcon';
4
+ import { Input } from './Input';
5
+ import { Surface } from './Surface';
6
+ export const Searchbar = (props) => {
7
+ const { value = '', inset = false, size = 'md', placeholder = 'Search', className = '', onChange = () => { }, ref, ...rest } = props;
8
+ return (_jsx(Surface, { level: inset ? '+0' : '+1', className: cn('sticky z-20', !inset && 'top-0 ml-px rounded-t-3xl', inset && 'top-2 mx-2 w-auto rounded-full', className), outline: !inset, ref: ref, ...rest, children: _jsxs("div", { className: cn('flex items-center', !inset && 'p-1.5'), children: [_jsx(Input, { className: "w-full", placeholder: placeholder, onChange: (v, e) => onChange(v, e), contentClassName: "pl-6.5", value: value, clearButton: true, rounded: true, onClear: () => onChange('') }), _jsx(SearchIcon, { className: cn('pointer-events-none absolute top-1/2 left-2 size-4 -translate-y-1/2 text-on-surface-darker', inset ? 'left-2' : 'left-4') })] }) }));
9
+ };
10
+ //# sourceMappingURL=Searchbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Searchbar.js","sourceRoot":"","sources":["../../../src/components/Searchbar.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAa,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AA4BlD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAE,EAAE;IACjD,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,KAAK,GAAG,KAAK,EACb,IAAI,GAAG,IAAI,EACX,WAAW,GAAG,QAAQ,EACtB,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,GAAG,EAAE,GAAE,CAAC,EACnB,GAAG,EACH,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,KAAC,OAAO,IACN,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAC1B,SAAS,EAAE,EAAE,CACX,aAAa,EACb,CAAC,KAAK,IAAI,2BAA2B,EACrC,KAAK,IAAI,gCAAgC,EACzC,SAAS,CACV,EACD,OAAO,EAAE,CAAC,KAAK,EACf,GAAG,EAAE,GAAG,KACJ,IAAI,YAER,eAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,OAAO,CAAC,aACxD,KAAC,KAAK,IACJ,SAAS,EAAC,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,CAAS,EAAE,CAAgC,EAAE,EAAE,CACxD,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAEhB,gBAAgB,EAAC,QAAQ,EACzB,KAAK,EAAE,KAAK,EACZ,WAAW,QACX,OAAO,QACP,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAC3B,EACF,KAAC,UAAU,IACT,SAAS,EAAE,EAAE,CACX,4FAA4F,EAC5F,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAC5B,GACD,IACE,GACE,CACX,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { ReactNode, Ref, ElementType, ComponentPropsWithoutRef } from 'react';
2
+ import { Color } from '../types';
3
+ import { ButtonSize } from './Button';
4
+ import { SurfaceVariant } from './Surface';
5
+ interface SegmentedOwnProps<C extends ElementType = 'div'> {
6
+ /** Should be one or more `SegmentedButton` elements. */
7
+ children?: ReactNode;
8
+ /** Extra classes for the segmented container. */
9
+ className?: string;
10
+ /** Visually dim the entire group and disable pointer events. */
11
+ disabled?: boolean;
12
+ /** Pill-style segment buttons. Default `true`. Forwarded via context. */
13
+ rounded?: boolean;
14
+ /** Segment button size. Default `'md'`. Forwarded via context. */
15
+ size?: ButtonSize;
16
+ /** Polymorphic root element. Defaults to `'div'`. Use `'fieldset'`/`'ul'`/etc. for semantic groupings. */
17
+ component?: C;
18
+ /** Accent color applied to **inactive** segment buttons. */
19
+ color?: Color;
20
+ /** Forwarded to the polymorphic root element. */
21
+ ref?: Ref<HTMLElement>;
22
+ /**
23
+ * `Surface` variant applied to **inactive** segment buttons through context.
24
+ * Default `'transparent'` - inactive segments fade into the parent surface.
25
+ */
26
+ variant?: SurfaceVariant;
27
+ /** Outline ring on **inactive** segment buttons. Default `false`. */
28
+ outline?: boolean;
29
+ /** Color applied to the **active** segment button. Default: theme accent color. */
30
+ activeColor?: Color;
31
+ /** `Surface` variant applied to the **active** segment button. Default `'gradient'`. */
32
+ activeVariant?: SurfaceVariant;
33
+ /** Outline ring on the **active** segment button. Default `true`. */
34
+ activeOutline?: boolean;
35
+ }
36
+ export type SegmentedProps<C extends ElementType = 'div'> = SegmentedOwnProps<C> & Omit<ComponentPropsWithoutRef<C>, keyof SegmentedOwnProps<C>>;
37
+ export declare const Segmented: <C extends ElementType = "div">(props: SegmentedProps<C>) => import("react/jsx-runtime").JSX.Element;
38
+ export {};
39
+ //# sourceMappingURL=Segmented.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Segmented.d.ts","sourceRoot":"","sources":["../../../src/components/Segmented.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,GAAG,EACH,WAAW,EAEX,wBAAwB,EACzB,MAAM,OAAO,CAAC;AAIf,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,UAAU,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IACvD,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,0GAA0G;IAC1G,SAAS,CAAC,EAAE,CAAC,CAAC;IACd,4DAA4D;IAC5D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iDAAiD;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,wFAAwF;IACxF,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B,qEAAqE;IACrE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IACtD,iBAAiB,CAAC,CAAC,CAAC,GAClB,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAElE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,WAAW,GAAG,KAAK,EACrD,OAAO,cAAc,CAAC,CAAC,CAAC,4CAyDzB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRef, } from 'react';
3
+ import { useAccentColor } from '../hooks/use-accent-color';
4
+ import { cn } from '../shared/cn';
5
+ import { SegmentedContextProvider } from './SegmentedContext';
6
+ export const Segmented = (props) => {
7
+ const elRef = useRef(null);
8
+ const accentColor = useAccentColor();
9
+ const { children, className = '', disabled = false, rounded = true, size = 'md', component = 'div', color = '', ref, variant = 'transparent', outline = false, activeColor = accentColor, activeVariant = 'gradient', activeOutline = true, ...rest } = props;
10
+ const Component = component;
11
+ return (_jsx(Component, { className: cn('segmented', disabled && 'pointer-events-none opacity-40', 'flex items-center justify-center', color && `color-${color}`, className), ref: (el) => {
12
+ elRef.current = el;
13
+ if (ref)
14
+ ref.current = el;
15
+ }, onContextMenuCapture: (e) => e.preventDefault(), ...rest, children: _jsx(SegmentedContextProvider, { value: {
16
+ size,
17
+ rounded,
18
+ color,
19
+ variant,
20
+ outline,
21
+ activeColor,
22
+ activeVariant,
23
+ activeOutline,
24
+ }, children: children }) }));
25
+ };
26
+ //# sourceMappingURL=Segmented.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Segmented.js","sourceRoot":"","sources":["../../../src/components/Segmented.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,GAMP,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAGlC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAuC9D,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAwB,EACxB,EAAE;IACF,MAAM,KAAK,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,EACJ,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,IAAI,EACd,IAAI,GAAG,IAAI,EACX,SAAS,GAAG,KAAyB,EACrC,KAAK,GAAG,EAAE,EACV,GAAG,EACH,OAAO,GAAG,aAAa,EACvB,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,WAAW,EACzB,aAAa,GAAG,UAAU,EAC1B,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,SAAS,GAAG,SAA6B,CAAC;IAChD,OAAO,CACL,KAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,WAAW,EAEX,QAAQ,IAAI,gCAAgC,EAC5C,kCAAkC,EAClC,KAAK,IAAI,SAAS,KAAK,EAAE,EACzB,SAAS,CACV,EACD,GAAG,EAAE,CAAC,EAAsB,EAAE,EAAE;YAC9B,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,GAAG;gBACJ,GAAkD,CAAC,OAAO,GAAG,EAAE,CAAC;QACrE,CAAC,EACD,oBAAoB,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,KACvD,IAAI,YAER,KAAC,wBAAwB,IACvB,KAAK,EAAE;gBACL,IAAI;gBACJ,OAAO;gBACP,KAAK;gBACL,OAAO;gBACP,OAAO;gBACP,WAAW;gBACX,aAAa;gBACb,aAAa;aACd,YAGA,QAAQ,GACgB,GACjB,CACb,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ElementType } from 'react';
2
+ import { ButtonProps } from './Button';
3
+ export type SegmentedButtonProps<C extends ElementType = 'button'> = ButtonProps<C> & {
4
+ /**
5
+ * Marks this button as the selected segment. When `true`, switches to the
6
+ * `activeColor` / `activeVariant` / `activeOutline` from the surrounding `Segmented`,
7
+ * raises `surfaceLevel` by `+2` for visual elevation, and sets `readOnly` so the
8
+ * already-selected segment is not pressable again.
9
+ */
10
+ active?: boolean;
11
+ };
12
+ export declare const SegmentedButton: <C extends ElementType = "button">(props: SegmentedButtonProps<C>) => import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=SegmentedButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedButton.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAM,MAAM,OAAO,CAAC;AAExC,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,IAC/D,WAAW,CAAC,CAAC,CAAC,GAAG;IACf;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEJ,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,WAAW,GAAG,QAAQ,EAC9D,OAAO,oBAAoB,CAAC,CAAC,CAAC,4CA2B/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button } from './Button';
3
+ import { useSegmentedContext } from './SegmentedContext';
4
+ export const SegmentedButton = (props) => {
5
+ const { size = 'md', rounded = true, color, variant, outline, activeColor, activeVariant, activeOutline, } = useSegmentedContext();
6
+ const { active, ...rest } = props;
7
+ const ButtonEl = Button;
8
+ return (_jsx(ButtonEl, { size: size, rounded: rounded, color: active && activeColor ? activeColor : color, variant: active && activeVariant ? activeVariant : variant, outline: active ? activeOutline : outline, surfaceLevel: active ? '+2' : undefined, readOnly: active, ...rest }));
9
+ };
10
+ //# sourceMappingURL=SegmentedButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedButton.js","sourceRoot":"","sources":["../../../src/components/SegmentedButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAazD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAA8B,EAC9B,EAAE;IACF,MAAM,EACJ,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,IAAI,EACd,KAAK,EACL,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,aAAa,GACd,GAAG,mBAAmB,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAyB,CAAC;IAE3C,OAAO,CACL,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAClD,OAAO,EAAE,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAC1D,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EACzC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACvC,QAAQ,EAAE,MAAM,KACZ,IAAI,GACR,CACH,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { ReactNode } from 'react';
2
+ import { Color } from '../types';
3
+ import { ButtonProps, ButtonSize } from './Button';
4
+ /**
5
+ * Shape of the data published by `Segmented` to its child `SegmentedButton`s.
6
+ * Each `SegmentedButton` reads this via `useSegmentedContext()` to pick its inactive vs active
7
+ * styling - see `SegmentedButton.active`.
8
+ */
9
+ interface SegmentedContextValue {
10
+ /** Button size. */
11
+ size?: ButtonSize;
12
+ /** Pill-shape the segment buttons. */
13
+ rounded?: boolean;
14
+ /** Color applied to **inactive** buttons. */
15
+ color?: Color;
16
+ /** Variant applied to **inactive** buttons. */
17
+ variant?: ButtonProps['variant'];
18
+ /** Outline ring on **inactive** buttons. */
19
+ outline?: boolean;
20
+ /** Color applied to the **active** button. */
21
+ activeColor?: Color;
22
+ /** Variant applied to the **active** button. */
23
+ activeVariant?: ButtonProps['variant'];
24
+ /** Outline ring on the **active** button. */
25
+ activeOutline?: boolean;
26
+ }
27
+ interface SegmentedContextProviderProps {
28
+ /** Style values to publish to descendant `SegmentedButton`s. */
29
+ value: SegmentedContextValue;
30
+ children: ReactNode;
31
+ }
32
+ export declare const SegmentedContext: import("react").Context<SegmentedContextValue>;
33
+ export declare function useSegmentedContext(): SegmentedContextValue;
34
+ export declare function SegmentedContextProvider(props: SegmentedContextProviderProps): import("react/jsx-runtime").JSX.Element;
35
+ export {};
36
+ //# sourceMappingURL=SegmentedContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedContext.d.ts","sourceRoot":"","sources":["../../../src/components/SegmentedContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;GAIG;AACH,UAAU,qBAAqB;IAC7B,mBAAmB;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,+CAA+C;IAC/C,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACjC,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,gDAAgD;IAChD,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,6CAA6C;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,6BAA6B;IACrC,gEAAgE;IAChE,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,gBAAgB,gDAA2C,CAAC;AAEzE,wBAAgB,mBAAmB,IAAI,qBAAqB,CAE3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAM5E"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from 'react';
3
+ export const SegmentedContext = createContext({});
4
+ export function useSegmentedContext() {
5
+ return useContext(SegmentedContext);
6
+ }
7
+ export function SegmentedContextProvider(props) {
8
+ return (_jsx(SegmentedContext.Provider, { value: props.value, children: props.children }));
9
+ }
10
+ //# sourceMappingURL=SegmentedContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SegmentedContext.js","sourceRoot":"","sources":["../../../src/components/SegmentedContext.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAmC7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAwB,EAAE,CAAC,CAAC;AAEzE,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,KAAoC;IAC3E,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAC1C,KAAK,CAAC,QAAQ,GACW,CAC7B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,145 @@
1
+ import { ReactNode, Ref, MouseEvent } from 'react';
2
+ import { ButtonSize } from './Button';
3
+ import { PopoverOffset, PopoverPosition } from './Popover';
4
+ interface SelectOptionRenderParams<T> {
5
+ value: T;
6
+ index: number;
7
+ selected: boolean;
8
+ }
9
+ import { Color } from '../types';
10
+ import { ButtonProps } from './Button';
11
+ interface SelectOwnProps<T = string> {
12
+ /** Selected value (single-select) or array of selected values (when `multiple`). */
13
+ value?: T | T[];
14
+ placeholder?: ReactNode;
15
+ /** Title shown at the top of the popover (above the search bar, if any). */
16
+ title?: string;
17
+ /** All available options. Compared against `value` via `getOptionValue` (default: identity). */
18
+ options?: T[];
19
+ /** Multi-select mode - uses `Checkbox` instead of `Radio` and emits `T[]` to `onChange`. */
20
+ multiple?: boolean;
21
+ /** Visually dim the trigger and prevent the popover from opening. */
22
+ disabled?: boolean;
23
+ /** Show the trigger with the current value but block opening the popover. */
24
+ readOnly?: boolean;
25
+ /** Accent color for the trigger button. Forwarded to `Button.color`. */
26
+ color?: Color;
27
+ /** Pill-style trigger button. Forwarded to `Button.rounded`. */
28
+ rounded?: boolean;
29
+ /** Trigger button size. Forwarded to `Button.size`. */
30
+ size?: ButtonSize;
31
+ /** Extra classes for the trigger button. */
32
+ className?: string;
33
+ /** Extra classes for the trigger button's inner content row. */
34
+ contentClassName?: string;
35
+ /** Extra classes for the value display inside the trigger button. */
36
+ valueClassName?: string;
37
+ /**
38
+ * Trigger button surface type, forwarded to the underlying `Button.surface`:
39
+ * `'surface'` (default) for a regular button, `'cut'` for an inset/recessed look.
40
+ */
41
+ surface?: 'surface' | 'cut';
42
+ /** Reverse the visual order of `icon` ↔ value inside the trigger button. */
43
+ reverse?: boolean;
44
+ /** Icon node rendered inside the trigger button. */
45
+ icon?: ReactNode;
46
+ /** Show the chevron-down indicator on the right of the trigger. Default `true`. */
47
+ dropdownIcon?: boolean;
48
+ /** Forwarded to the trigger `Button` - allows wrapping the value across multiple lines. */
49
+ multiline?: boolean;
50
+ placeholderClassName?: string;
51
+ /**
52
+ * Custom node rendered inside the trigger button in place of `String(value) || placeholder`.
53
+ * Use to render a richer value display (e.g. with icons or formatting).
54
+ */
55
+ children?: ReactNode;
56
+ /** Slot rendered inside the popover, **above** the option list (after title/searchbar). */
57
+ beforeOptions?: ReactNode;
58
+ /** Slot rendered inside the popover, **below** the option list. */
59
+ afterOptions?: ReactNode;
60
+ /** Render a search bar at the top of the popover. Pair with `onSearch` to filter options. */
61
+ search?: boolean;
62
+ /** Default `'Search'`. */
63
+ searchPlaceholder?: string;
64
+ /** Empty-state text. Default `'Nothing found'`. */
65
+ searchNotFound?: string;
66
+ /** Auto-focus the search input when the popover opens (skipped on iOS/Android to avoid keyboard popup). */
67
+ searchFocus?: boolean;
68
+ /**
69
+ * Filter callback invoked with the current query - return the filtered list of options.
70
+ * The Select does not maintain any internal filter state; callers control matching.
71
+ */
72
+ onSearch?: (query: string) => T[];
73
+ popoverColor?: Color;
74
+ /** Default `'bottom-end'`. */
75
+ popoverPosition?: PopoverPosition;
76
+ /** Default `['-50%', 4]` - half-width inward shift on the cross axis, 4px main-axis gap. */
77
+ popoverOffset?: PopoverOffset;
78
+ /** Default `'w-auto min-w-[160px]'`. */
79
+ popoverClassName?: string;
80
+ /**
81
+ * Surface level for the popover. Default depends on theme:
82
+ * `'+1'` for dark (one level above the trigger), `1` (absolute) for light.
83
+ */
84
+ popoverSurfaceLevel?: number | string;
85
+ /**
86
+ * External anchor ref. When provided, the trigger button is **not rendered** - useful when
87
+ * the popover should anchor to an existing element controlled by the caller (the caller
88
+ * is then responsible for the trigger and `popoverState` wiring).
89
+ */
90
+ anchorRef?: React.RefObject<HTMLElement | null>;
91
+ /** Controlled popover open state. Pair with `onPopoverState`. */
92
+ popoverState?: boolean;
93
+ /** Controlled popover open-state setter. */
94
+ onPopoverState?: (state: boolean) => void;
95
+ /** Fires after a selection. In single-select mode receives `T`; in `multiple` receives `T[]`. */
96
+ onChange?: (value: T | T[]) => void;
97
+ /** Fires when the trigger button is clicked (before the popover state toggles). */
98
+ onClick?: (e: MouseEvent) => void;
99
+ /**
100
+ * Show numeric quick-pick hints (0–9) next to options, and bind `0`–`9` keys to select them.
101
+ * Default `true`. See `noneOptionValue` for how the digits map to options.
102
+ */
103
+ keyboardHints?: boolean;
104
+ /** Default color for the per-option toggle (Radio/Checkbox). Overridden per-option by `optionToggleColor`. */
105
+ togglesColor?: Color;
106
+ /** Per-option toggle color. Return `undefined` to fall back to `togglesColor`. */
107
+ optionToggleColor?: (params: SelectOptionRenderParams<T>) => Color | undefined;
108
+ /** Custom "is this option selected?" predicate - overrides the built-in equality check. */
109
+ isChecked?: (value: T) => boolean;
110
+ isOptionDisabled?: (value: T) => boolean;
111
+ /**
112
+ * Extracts the comparable key from an option object. Default: identity.
113
+ * Use when `T` is an object and selection should compare by `id` rather than reference.
114
+ */
115
+ getOptionValue?: (option: T) => unknown;
116
+ /**
117
+ * Inverse of `getOptionValue` - given a key, return the matching option from `options`.
118
+ * Required for multi-select with object options so emitted `value[]` arrays can be rebuilt.
119
+ */
120
+ getOptionByValue?: (options: T[], value: unknown) => T;
121
+ /** Slot rendered above each option (e.g. group header before the first item in a section). */
122
+ renderBeforeOption?: (value: T, index: number) => ReactNode;
123
+ /** Slot rendered below each option. */
124
+ renderAfterOption?: (value: T, index: number) => ReactNode;
125
+ /** Custom option label renderer. Default: `String(value)`. */
126
+ renderOption?: (params: SelectOptionRenderParams<T>) => ReactNode;
127
+ /** Subtext rendered under the option label. */
128
+ renderOptionInfo?: (params: SelectOptionRenderParams<T>) => ReactNode;
129
+ /**
130
+ * Value of the "none/initial" option that should be mapped to the 0 key.
131
+ * If set, this option gets hint "0" and remaining options get 1-9 in order.
132
+ * If not set, straight ordering: 1, 2, 3, ..., 9, 0 (for 10th).
133
+ */
134
+ noneOptionValue?: T;
135
+ /** Close the popover after a single-select pick. Default `true`. Has no effect when `multiple`. */
136
+ closeOnSelect?: boolean;
137
+ /** Scroll the popover so the currently selected option is centered when it opens. */
138
+ scrollToSelected?: boolean;
139
+ /** Forwarded to the trigger button. Ignored when `anchorRef` is provided (no trigger is rendered). */
140
+ ref?: Ref<HTMLElement>;
141
+ }
142
+ export type SelectProps<T = string> = SelectOwnProps<T> & Omit<ButtonProps, keyof SelectOwnProps<T>>;
143
+ export declare function Select<T = string>(props: SelectProps<T>): import("react/jsx-runtime").JSX.Element;
144
+ export {};
145
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/Select.tsx"],"names":[],"mappings":"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"}