@yamada-ui/react 2.2.1-dev-20260428070134 → 2.2.1-dev-20260428080915

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 (207) hide show
  1. package/dist/cjs/components/color-selector/use-color-selector.cjs +5 -5
  2. package/dist/cjs/components/color-selector/use-color-selector.cjs.map +1 -1
  3. package/dist/cjs/components/segmented-control/use-segmented-control.cjs +8 -10
  4. package/dist/cjs/components/segmented-control/use-segmented-control.cjs.map +1 -1
  5. package/dist/esm/components/color-selector/use-color-selector.js +5 -5
  6. package/dist/esm/components/color-selector/use-color-selector.js.map +1 -1
  7. package/dist/esm/components/segmented-control/use-segmented-control.js +8 -10
  8. package/dist/esm/components/segmented-control/use-segmented-control.js.map +1 -1
  9. package/dist/types/components/accordion/accordion.d.ts +2 -2
  10. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  11. package/dist/types/components/action-bar/action-bar.d.ts +2 -2
  12. package/dist/types/components/airy/airy.d.ts +2 -2
  13. package/dist/types/components/alert/alert.d.ts +2 -2
  14. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  15. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  16. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  17. package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
  18. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  19. package/dist/types/components/avatar/avatar.d.ts +5 -5
  20. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  21. package/dist/types/components/badge/badge.d.ts +2 -2
  22. package/dist/types/components/bleed/bleed.d.ts +2 -2
  23. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  24. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  25. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  26. package/dist/types/components/button/button.d.ts +2 -2
  27. package/dist/types/components/button/icon-button.d.ts +2 -2
  28. package/dist/types/components/calendar/calendar.d.ts +2 -2
  29. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  30. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  31. package/dist/types/components/card/card.d.ts +2 -2
  32. package/dist/types/components/carousel/carousel.d.ts +2 -2
  33. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  34. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  35. package/dist/types/components/center/center.d.ts +2 -2
  36. package/dist/types/components/chart/area-chart.d.ts +2 -2
  37. package/dist/types/components/chart/bar-chart.d.ts +2 -2
  38. package/dist/types/components/chart/cartesian-chart.style.d.ts +1 -1
  39. package/dist/types/components/chart/chart.d.ts +5 -5
  40. package/dist/types/components/chart/donut-chart.d.ts +2 -2
  41. package/dist/types/components/chart/line-chart.d.ts +2 -2
  42. package/dist/types/components/chart/pie-chart.d.ts +2 -2
  43. package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
  44. package/dist/types/components/chart/radar-chart.d.ts +2 -2
  45. package/dist/types/components/chart/radial-chart.d.ts +2 -2
  46. package/dist/types/components/chart/use-chart.d.ts +2 -2
  47. package/dist/types/components/checkbox/checkbox.d.ts +4 -4
  48. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  49. package/dist/types/components/checkbox-card/checkbox-card.d.ts +5 -5
  50. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +1 -1
  51. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  52. package/dist/types/components/close-button/close-button.d.ts +2 -2
  53. package/dist/types/components/code/code.d.ts +2 -2
  54. package/dist/types/components/collapse/collapse.d.ts +2 -2
  55. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  56. package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
  57. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  58. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  59. package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
  60. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  61. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  62. package/dist/types/components/container/container.d.ts +2 -2
  63. package/dist/types/components/data-list/data-list.d.ts +2 -2
  64. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  65. package/dist/types/components/date-picker/date-picker.style.d.ts +1 -1
  66. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  67. package/dist/types/components/drawer/drawer.d.ts +2 -2
  68. package/dist/types/components/dropzone/dropzone.d.ts +4 -4
  69. package/dist/types/components/editable/editable.d.ts +4 -4
  70. package/dist/types/components/editable/use-editable.d.ts +2 -2
  71. package/dist/types/components/em/em.d.ts +2 -2
  72. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  73. package/dist/types/components/fade/fade.d.ts +2 -2
  74. package/dist/types/components/field/field.d.ts +3 -3
  75. package/dist/types/components/field/use-field-props.d.ts +4 -4
  76. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  77. package/dist/types/components/file-button/file-button.d.ts +2 -2
  78. package/dist/types/components/file-button/use-file-button.d.ts +18 -18
  79. package/dist/types/components/file-input/file-input.d.ts +2 -2
  80. package/dist/types/components/file-input/use-file-input.d.ts +15 -15
  81. package/dist/types/components/flex/flex.d.ts +2 -2
  82. package/dist/types/components/flip/flip.d.ts +4 -4
  83. package/dist/types/components/float/float.d.ts +2 -2
  84. package/dist/types/components/form/form.d.ts +3 -3
  85. package/dist/types/components/format/format-byte.d.ts +4 -4
  86. package/dist/types/components/format/format-date-time.d.ts +4 -4
  87. package/dist/types/components/format/format-number.d.ts +2 -2
  88. package/dist/types/components/grid/grid-item.d.ts +2 -2
  89. package/dist/types/components/grid/grid.d.ts +2 -2
  90. package/dist/types/components/group/group.d.ts +2 -2
  91. package/dist/types/components/group/use-group.d.ts +2 -2
  92. package/dist/types/components/heading/heading.d.ts +2 -2
  93. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  94. package/dist/types/components/icon/icon.d.ts +5 -5
  95. package/dist/types/components/image/image.d.ts +2 -2
  96. package/dist/types/components/indicator/indicator.d.ts +4 -4
  97. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  98. package/dist/types/components/input/input-addon.d.ts +2 -2
  99. package/dist/types/components/input/input-element.d.ts +2 -2
  100. package/dist/types/components/input/input.d.ts +2 -2
  101. package/dist/types/components/kbd/kbd.d.ts +2 -2
  102. package/dist/types/components/link/link.d.ts +2 -2
  103. package/dist/types/components/link-box/link-box.d.ts +2 -2
  104. package/dist/types/components/list/list.d.ts +2 -2
  105. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  106. package/dist/types/components/loading/loading.d.ts +3 -3
  107. package/dist/types/components/mark/mark.d.ts +2 -2
  108. package/dist/types/components/menu/menu.d.ts +2 -2
  109. package/dist/types/components/menu/menu.style.d.ts +2 -2
  110. package/dist/types/components/menu/use-menu.d.ts +11 -11
  111. package/dist/types/components/modal/modal.d.ts +2 -2
  112. package/dist/types/components/native-accordion/native-accordion.d.ts +2 -2
  113. package/dist/types/components/native-accordion/use-native-accordion.d.ts +2 -2
  114. package/dist/types/components/native-popover/native-popover.d.ts +2 -2
  115. package/dist/types/components/native-select/native-select.d.ts +2 -2
  116. package/dist/types/components/native-select/native-select.style.d.ts +1 -1
  117. package/dist/types/components/native-table/native-table.d.ts +4 -4
  118. package/dist/types/components/number-input/number-input.d.ts +2 -2
  119. package/dist/types/components/number-input/number-input.style.d.ts +1 -1
  120. package/dist/types/components/pagination/pagination.d.ts +2 -2
  121. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  122. package/dist/types/components/password-input/password-input.d.ts +2 -2
  123. package/dist/types/components/password-input/password-input.style.d.ts +1 -1
  124. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  125. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  126. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  127. package/dist/types/components/pin-input/pin-input.style.d.ts +1 -1
  128. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  129. package/dist/types/components/popover/popover.d.ts +2 -2
  130. package/dist/types/components/progress/progress.d.ts +4 -4
  131. package/dist/types/components/progress/use-progress.d.ts +706 -706
  132. package/dist/types/components/qr-code/qr-code.d.ts +2 -2
  133. package/dist/types/components/radio/radio.d.ts +4 -4
  134. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  135. package/dist/types/components/radio-card/radio-card.d.ts +5 -5
  136. package/dist/types/components/radio-card/radio-card.style.d.ts +1 -1
  137. package/dist/types/components/rating/use-rating.d.ts +7 -7
  138. package/dist/types/components/reorder/reorder.d.ts +2 -2
  139. package/dist/types/components/reorder/reorder.style.d.ts +1 -1
  140. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  141. package/dist/types/components/resizable/resizable.d.ts +2 -2
  142. package/dist/types/components/resizable/resizable.style.d.ts +2 -2
  143. package/dist/types/components/resizable/use-resizable.d.ts +2 -2
  144. package/dist/types/components/ripple/ripple.d.ts +2 -2
  145. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  146. package/dist/types/components/rotate/rotate.d.ts +2 -2
  147. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  148. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  149. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  150. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  151. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  152. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  153. package/dist/types/components/select/select.d.ts +2 -2
  154. package/dist/types/components/select/select.style.d.ts +1 -1
  155. package/dist/types/components/select/use-select.d.ts +4 -4
  156. package/dist/types/components/separator/separator.d.ts +2 -2
  157. package/dist/types/components/sidebar/sidebar.d.ts +2 -2
  158. package/dist/types/components/sidebar/use-sidebar.d.ts +9 -9
  159. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  160. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  161. package/dist/types/components/slide/slide.d.ts +2 -2
  162. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  163. package/dist/types/components/slider/slider.d.ts +2 -2
  164. package/dist/types/components/slider/use-slider.d.ts +2 -2
  165. package/dist/types/components/stack/h-stack.d.ts +2 -2
  166. package/dist/types/components/stack/stack.d.ts +2 -2
  167. package/dist/types/components/stack/v-stack.d.ts +2 -2
  168. package/dist/types/components/stack/z-stack.d.ts +2 -2
  169. package/dist/types/components/stat/stat.d.ts +2 -2
  170. package/dist/types/components/stat/stat.style.d.ts +2 -2
  171. package/dist/types/components/status/status.d.ts +2 -2
  172. package/dist/types/components/steps/steps.d.ts +2 -2
  173. package/dist/types/components/steps/steps.style.d.ts +1 -1
  174. package/dist/types/components/steps/use-steps.d.ts +10 -10
  175. package/dist/types/components/switch/switch.d.ts +2 -2
  176. package/dist/types/components/table/table.d.ts +2 -2
  177. package/dist/types/components/tabs/tabs.d.ts +2 -2
  178. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  179. package/dist/types/components/tag/tag.d.ts +2 -2
  180. package/dist/types/components/text/text.d.ts +2 -2
  181. package/dist/types/components/textarea/textarea.d.ts +2 -2
  182. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  183. package/dist/types/components/timeline/timeline.d.ts +5 -5
  184. package/dist/types/components/timeline/timeline.style.d.ts +1 -1
  185. package/dist/types/components/toggle/toggle.d.ts +5 -5
  186. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  187. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  188. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  189. package/dist/types/components/tree/tree.d.ts +2 -2
  190. package/dist/types/components/tree/tree.style.d.ts +1 -1
  191. package/dist/types/components/tree/use-tree.d.ts +182 -182
  192. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  193. package/dist/types/components/wrap/wrap.d.ts +2 -2
  194. package/dist/types/core/components/create-component.d.ts +7 -7
  195. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  196. package/dist/types/core/system/storage-script.d.ts +3 -3
  197. package/dist/types/core/system/styled.d.ts +2 -2
  198. package/dist/types/core/system/system-provider.d.ts +2 -2
  199. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  200. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  201. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  202. package/dist/types/hooks/use-popper/index.d.ts +2 -2
  203. package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
  204. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  205. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  206. package/dist/types/utils/children.d.ts +2 -2
  207. package/package.json +2 -2
@@ -4,6 +4,8 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
4
4
  const require_dom = require('../../utils/dom.cjs');
5
5
  const require_effect = require('../../utils/effect.cjs');
6
6
  const require_utils_index = require('../../utils/index.cjs');
7
+ const require_props = require('../../core/components/props.cjs');
8
+ require('../../core/index.cjs');
7
9
  const require_hooks_use_controllable_state_index = require('../../hooks/use-controllable-state/index.cjs');
8
10
  const require_i18n_provider = require('../../providers/i18n-provider/i18n-provider.cjs');
9
11
  require('../../providers/i18n-provider/index.cjs');
@@ -92,12 +94,10 @@ const useColorSelector = ({ fallbackValue = "#FFFFFF", defaultValue = fallbackVa
92
94
  if (activeRef.current) return;
93
95
  if (valueProp) setHsva((0, require_utils_index.utils_exports.parseToHsv)(valueProp, fallbackValue));
94
96
  }, [valueProp]);
95
- const getRootProps = (0, react.useCallback)((props = {}) => ({
97
+ const getRootProps = (0, react.useCallback)((props = {}) => require_props.mergeProps({
96
98
  "data-disabled": (0, require_utils_index.utils_exports.dataAttr)(disabled),
97
- "data-readonly": (0, require_utils_index.utils_exports.dataAttr)(readOnly),
98
- ...rest,
99
- ...props
100
- }), [
99
+ "data-readonly": (0, require_utils_index.utils_exports.dataAttr)(readOnly)
100
+ }, rest, props)(), [
101
101
  disabled,
102
102
  readOnly,
103
103
  rest
@@ -1 +1 @@
1
- {"version":3,"file":"use-color-selector.cjs","names":["useI18n","useControllableState","useEyeDropper","value","h","s","v","a","getRootProps: PropGetter","getSaturationSliderProps: PropGetter<UseSaturationSliderProps>","getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n >","getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n >","getEyeDropperProps: PropGetter","runKeyAction"],"sources":["../../../../src/components/color-selector/use-color-selector.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter, RequiredPropGetter } from \"../../core\"\nimport type { ColorFormat } from \"../../utils\"\nimport type { UseSaturationSliderProps } from \"../saturation-slider\"\nimport type { UseSliderProps } from \"../slider\"\nimport { useCallback, useId, useRef, useState } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useEyeDropper } from \"../../hooks/use-eye-dropper\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n calcFormat,\n convertColor,\n cx,\n dataAttr,\n handlerAll,\n hsvTo,\n isString,\n parseToHsv,\n runKeyAction,\n sameColor,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype Hsva = [number, number, number, number]\n\nexport interface UseColorSelectorProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the color selector.\n *\n * @default fallbackValue\n */\n defaultValue?: string\n /**\n * If `true`, the color selector will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The fallback value of the color selector.\n *\n * @default '#FFFFFF'\n */\n fallbackValue?: string\n /**\n * The format of the color selector.\n * Automatically determines the format of `value` or `defaultValue`.\n *\n * @default 'hex'\n */\n format?: ColorFormat\n /**\n * If `true`, the color selector will be read only.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the color selector.\n */\n value?: string\n /**\n * The callback invoked when the value changes.\n */\n onChange?: (value: string) => void\n /**\n * The callback invoked when the value changes ends.\n */\n onChangeEnd?: (value: string) => void\n /**\n * The callback invoked when the value changes starts.\n */\n onChangeStart?: (value: string) => void\n}\n\nexport const useColorSelector = ({\n fallbackValue = \"#FFFFFF\",\n defaultValue = fallbackValue,\n disabled = false,\n format: formatProp,\n readOnly = false,\n value: valueProp,\n onChange: onChangeProp,\n onChangeEnd: onChangeEndProp,\n onChangeStart: onChangeStartProp,\n ...rest\n}: UseColorSelectorProps) => {\n const { t } = useI18n(\"colorSelector\")\n const format = formatProp ?? calcFormat(valueProp ?? defaultValue)\n const alpha = format.endsWith(\"a\")\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [hsva, setHsva] = useState(parseToHsv(value, fallbackValue))\n const [h, s, v, a] = hsva\n const interactive = !(disabled || readOnly)\n const swatchGroupLabelId = useId()\n const activeRef = useRef(false)\n const { supported: supportedEyeDropper, onOpen: onOpenEyeDropper } =\n useEyeDropper()\n const color = hsvTo([h, s, v, 1], fallbackValue)(\"hex\")\n\n const onChange = useCallback(\n (value: Hsva | string) => {\n if (!interactive) return\n\n if (isString(value)) {\n setValue(convertColor(value, fallbackValue)(format))\n setHsva(parseToHsv(value, fallbackValue))\n } else {\n setHsva(value)\n setValue(hsvTo(value, fallbackValue)(format))\n }\n },\n [fallbackValue, format, interactive, setValue],\n )\n\n const onChangeStart = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = true\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeStartProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeStartProp],\n )\n\n const onChangeEnd = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = false\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeEndProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeEndProp],\n )\n\n const onEyeDropperClick = useCallback(async () => {\n if (!interactive) return\n\n const result = await onOpenEyeDropper()\n\n if (result?.sRGBHex) onChange(result.sRGBHex)\n }, [interactive, onChange, onOpenEyeDropper])\n\n useUpdateEffect(() => {\n if (activeRef.current) return\n\n if (valueProp) setHsva(parseToHsv(valueProp, fallbackValue))\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) => ({\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...rest,\n ...props,\n }),\n [disabled, readOnly, rest],\n )\n\n const getSaturationSliderProps: PropGetter<UseSaturationSliderProps> =\n useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: [h, s, v],\n ...props,\n onChange: handlerAll(props.onChange, ([h, s, v]) =>\n onChange([h, s, v, a]),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, ([h, s, v]) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, ([h, s, v]) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, s, v, onChange, a, onChangeEnd, onChangeStart],\n )\n\n const getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n > = useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: h,\n ...props,\n onChange: handlerAll(props.onChange, (h) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (h) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (h) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, onChange, s, v, a, onChangeEnd, onChangeStart],\n )\n\n const getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n > = useCallback(\n (props = {}) => ({\n color,\n disabled,\n readOnly,\n value: a,\n ...props,\n onChange: handlerAll(props.onChange, (a) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (a) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (a) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [\n color,\n disabled,\n readOnly,\n a,\n onChange,\n h,\n s,\n v,\n onChangeEnd,\n onChangeStart,\n ],\n )\n\n const getEyeDropperProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Pick a color\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n hidden: !supportedEyeDropper,\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: onEyeDropperClick,\n Space: onEyeDropperClick,\n }),\n ),\n }),\n [\n disabled,\n interactive,\n onEyeDropperClick,\n readOnly,\n supportedEyeDropper,\n t,\n ],\n )\n\n const getColorSwatchGroupLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({\n id: swatchGroupLabelId,\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledby, swatchGroupLabelId),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"listbox\",\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchItemProps: RequiredPropGetter<\n \"div\",\n { value: string },\n HTMLProps & { color: string }\n > = useCallback(\n ({ value, ...props }) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-selected\": sameColor(value, color),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"option\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n color: value,\n onClick: handlerAll(props.onClick, () => onChange(value)),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: () => onChange(value),\n Space: () => onChange(value),\n }),\n ),\n }),\n [disabled, color, interactive, onChange, readOnly],\n )\n\n return {\n alpha,\n format,\n setValue,\n value,\n getAlphaSliderProps,\n getColorSwatchGroupLabelProps,\n getColorSwatchGroupProps,\n getColorSwatchItemProps,\n getEyeDropperProps,\n getHueSliderProps,\n getRootProps,\n getSaturationSliderProps,\n onChange,\n }\n}\n\nexport type UseColorSelectorReturn = ReturnType<typeof useColorSelector>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-color-selector.cjs","names":["useI18n","useControllableState","useEyeDropper","value","h","s","v","a","getRootProps: PropGetter","mergeProps","getSaturationSliderProps: PropGetter<UseSaturationSliderProps>","getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n >","getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n >","getEyeDropperProps: PropGetter","runKeyAction"],"sources":["../../../../src/components/color-selector/use-color-selector.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter, RequiredPropGetter } from \"../../core\"\nimport type { ColorFormat } from \"../../utils\"\nimport type { UseSaturationSliderProps } from \"../saturation-slider\"\nimport type { UseSliderProps } from \"../slider\"\nimport { useCallback, useId, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useEyeDropper } from \"../../hooks/use-eye-dropper\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n calcFormat,\n convertColor,\n cx,\n dataAttr,\n handlerAll,\n hsvTo,\n isString,\n parseToHsv,\n runKeyAction,\n sameColor,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype Hsva = [number, number, number, number]\n\nexport interface UseColorSelectorProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the color selector.\n *\n * @default fallbackValue\n */\n defaultValue?: string\n /**\n * If `true`, the color selector will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The fallback value of the color selector.\n *\n * @default '#FFFFFF'\n */\n fallbackValue?: string\n /**\n * The format of the color selector.\n * Automatically determines the format of `value` or `defaultValue`.\n *\n * @default 'hex'\n */\n format?: ColorFormat\n /**\n * If `true`, the color selector will be read only.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the color selector.\n */\n value?: string\n /**\n * The callback invoked when the value changes.\n */\n onChange?: (value: string) => void\n /**\n * The callback invoked when the value changes ends.\n */\n onChangeEnd?: (value: string) => void\n /**\n * The callback invoked when the value changes starts.\n */\n onChangeStart?: (value: string) => void\n}\n\nexport const useColorSelector = ({\n fallbackValue = \"#FFFFFF\",\n defaultValue = fallbackValue,\n disabled = false,\n format: formatProp,\n readOnly = false,\n value: valueProp,\n onChange: onChangeProp,\n onChangeEnd: onChangeEndProp,\n onChangeStart: onChangeStartProp,\n ...rest\n}: UseColorSelectorProps) => {\n const { t } = useI18n(\"colorSelector\")\n const format = formatProp ?? calcFormat(valueProp ?? defaultValue)\n const alpha = format.endsWith(\"a\")\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [hsva, setHsva] = useState(parseToHsv(value, fallbackValue))\n const [h, s, v, a] = hsva\n const interactive = !(disabled || readOnly)\n const swatchGroupLabelId = useId()\n const activeRef = useRef(false)\n const { supported: supportedEyeDropper, onOpen: onOpenEyeDropper } =\n useEyeDropper()\n const color = hsvTo([h, s, v, 1], fallbackValue)(\"hex\")\n\n const onChange = useCallback(\n (value: Hsva | string) => {\n if (!interactive) return\n\n if (isString(value)) {\n setValue(convertColor(value, fallbackValue)(format))\n setHsva(parseToHsv(value, fallbackValue))\n } else {\n setHsva(value)\n setValue(hsvTo(value, fallbackValue)(format))\n }\n },\n [fallbackValue, format, interactive, setValue],\n )\n\n const onChangeStart = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = true\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeStartProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeStartProp],\n )\n\n const onChangeEnd = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = false\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeEndProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeEndProp],\n )\n\n const onEyeDropperClick = useCallback(async () => {\n if (!interactive) return\n\n const result = await onOpenEyeDropper()\n\n if (result?.sRGBHex) onChange(result.sRGBHex)\n }, [interactive, onChange, onOpenEyeDropper])\n\n useUpdateEffect(() => {\n if (activeRef.current) return\n\n if (valueProp) setHsva(parseToHsv(valueProp, fallbackValue))\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) =>\n mergeProps(\n {\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n },\n rest,\n props,\n )(),\n [disabled, readOnly, rest],\n )\n\n const getSaturationSliderProps: PropGetter<UseSaturationSliderProps> =\n useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: [h, s, v],\n ...props,\n onChange: handlerAll(props.onChange, ([h, s, v]) =>\n onChange([h, s, v, a]),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, ([h, s, v]) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, ([h, s, v]) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, s, v, onChange, a, onChangeEnd, onChangeStart],\n )\n\n const getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n > = useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: h,\n ...props,\n onChange: handlerAll(props.onChange, (h) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (h) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (h) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, onChange, s, v, a, onChangeEnd, onChangeStart],\n )\n\n const getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n > = useCallback(\n (props = {}) => ({\n color,\n disabled,\n readOnly,\n value: a,\n ...props,\n onChange: handlerAll(props.onChange, (a) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (a) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (a) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [\n color,\n disabled,\n readOnly,\n a,\n onChange,\n h,\n s,\n v,\n onChangeEnd,\n onChangeStart,\n ],\n )\n\n const getEyeDropperProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Pick a color\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n hidden: !supportedEyeDropper,\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: onEyeDropperClick,\n Space: onEyeDropperClick,\n }),\n ),\n }),\n [\n disabled,\n interactive,\n onEyeDropperClick,\n readOnly,\n supportedEyeDropper,\n t,\n ],\n )\n\n const getColorSwatchGroupLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({\n id: swatchGroupLabelId,\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledby, swatchGroupLabelId),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"listbox\",\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchItemProps: RequiredPropGetter<\n \"div\",\n { value: string },\n HTMLProps & { color: string }\n > = useCallback(\n ({ value, ...props }) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-selected\": sameColor(value, color),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"option\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n color: value,\n onClick: handlerAll(props.onClick, () => onChange(value)),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: () => onChange(value),\n Space: () => onChange(value),\n }),\n ),\n }),\n [disabled, color, interactive, onChange, readOnly],\n )\n\n return {\n alpha,\n format,\n setValue,\n value,\n getAlphaSliderProps,\n getColorSwatchGroupLabelProps,\n getColorSwatchGroupProps,\n getColorSwatchItemProps,\n getEyeDropperProps,\n getHueSliderProps,\n getRootProps,\n getSaturationSliderProps,\n onChange,\n }\n}\n\nexport type UseColorSelectorReturn = ReturnType<typeof useColorSelector>\n"],"mappings":"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"}
@@ -5,6 +5,8 @@ const require_context = require('../../utils/context.cjs');
5
5
  const require_dom = require('../../utils/dom.cjs');
6
6
  const require_ref = require('../../utils/ref.cjs');
7
7
  const require_utils_index = require('../../utils/index.cjs');
8
+ const require_props = require('../../core/components/props.cjs');
9
+ require('../../core/index.cjs');
8
10
  const require_hooks_use_controllable_state_index = require('../../hooks/use-controllable-state/index.cjs');
9
11
  const require_hooks_use_descendants_index = require('../../hooks/use-descendants/index.cjs');
10
12
  let react = require("react");
@@ -22,17 +24,15 @@ const useSegmentedControl = ({ id, name, defaultValue, disabled, orientation = "
22
24
  const descendants = useSegmentedControlDescendants();
23
25
  id ??= uuid;
24
26
  name ??= uuid;
25
- const getRootProps = (0, react.useCallback)((props) => ({
27
+ const getRootProps = (0, react.useCallback)((props) => require_props.mergeProps({
26
28
  id,
27
29
  "aria-disabled": (0, require_utils_index.utils_exports.ariaAttr)(disabled),
28
30
  "aria-orientation": orientation,
29
31
  "data-disabled": (0, require_utils_index.utils_exports.dataAttr)(disabled),
30
32
  "data-orientation": orientation,
31
33
  "data-readonly": (0, require_utils_index.utils_exports.dataAttr)(readOnly),
32
- role: "radiogroup",
33
- ...rest,
34
- ...props
35
- }), [
34
+ role: "radiogroup"
35
+ }, rest, props)(), [
36
36
  disabled,
37
37
  id,
38
38
  orientation,
@@ -61,17 +61,15 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
61
61
  const onChange = (0, react.useCallback)((ev) => {
62
62
  setValue(ev.target.value);
63
63
  }, [setValue]);
64
- const getLabelProps = (0, react.useCallback)((props) => ({
64
+ const getLabelProps = (0, react.useCallback)((props) => require_props.mergeProps({
65
65
  "aria-disabled": (0, require_utils_index.utils_exports.ariaAttr)(trulyDisabled),
66
66
  "data-checked": (0, require_utils_index.utils_exports.dataAttr)(checked),
67
67
  "data-disabled": (0, require_utils_index.utils_exports.dataAttr)(trulyDisabled),
68
68
  "data-orientation": orientation,
69
69
  "data-readonly": (0, require_utils_index.utils_exports.dataAttr)(trulyReadOnly),
70
70
  "data-root-disabled": (0, require_utils_index.utils_exports.dataAttr)(rootDisabled),
71
- "data-root-readonly": (0, require_utils_index.utils_exports.dataAttr)(rootReadOnly),
72
- ...props,
73
- ...rest
74
- }), [
71
+ "data-root-readonly": (0, require_utils_index.utils_exports.dataAttr)(rootReadOnly)
72
+ }, rest, props)(), [
75
73
  orientation,
76
74
  trulyDisabled,
77
75
  trulyReadOnly,
@@ -1 +1 @@
1
- {"version":3,"file":"use-segmented-control.cjs","names":["createContext","createDescendants","useControllableState","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">","visuallyHiddenAttributes","mergeRefs"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,8BAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACdC,uDAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,yBAAc;CACpB,MAAM,CAAC,OAAO,YAAYC,gEAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,uCACH,WAAW;EACV;EACA,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,mCACH,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,wCACH,WAAW;EACV,iEAA0B,cAAc;EACxC,gEAAyB,QAAQ;EACjC,iEAA0B,cAAc;EACxC,oBAAoB;EACpB,iEAA0B,cAAc;EACxC,sEAA+B,aAAa;EAC5C,sEAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,uCAnCC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAOC,qCAAyB;GAChC,iEAA0B,cAAc;GACxC,gEAAyB,QAAQ;GACjC,iEAA0B,cAAc;GACxC,oBAAoB;GACpB,iEAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAKC,sBAAU,UAAU,IAAI;GAC7B,4DAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
1
+ {"version":3,"file":"use-segmented-control.cjs","names":["createContext","createDescendants","useControllableState","getRootProps: PropGetter","mergeProps","getLabelProps: PropGetter<\"label\">","visuallyHiddenAttributes","mergeRefs"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) =>\n mergeProps(\n {\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n },\n rest,\n props,\n )(),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) =>\n mergeProps(\n {\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n },\n rest,\n props,\n )(),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAM,CAAC,yBAAyB,8BAC9BA,8BAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACdC,uDAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,yBAAc;CACpB,MAAM,CAAC,OAAO,YAAYC,gEAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,uCACH,UACCC,yBACE;EACE;EACA,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,oBAAoB;EACpB,iEAA0B,SAAS;EACnC,MAAM;EACP,EACD,MACA,MACD,EAAE,EACL;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,mCACH,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,wCACH,UACCD,yBACE;EACE,iEAA0B,cAAc;EACxC,gEAAyB,QAAQ;EACjC,iEAA0B,cAAc;EACxC,oBAAoB;EACpB,iEAA0B,cAAc;EACxC,sEAA+B,aAAa;EAC5C,sEAA+B,aAAa;EAC7C,EACD,MACA,MACD,EAAE,EACL;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,uCAnCC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAOE,qCAAyB;GAChC,iEAA0B,cAAc;GACxC,gEAAyB,QAAQ;GACjC,iEAA0B,cAAc;GACxC,oBAAoB;GACpB,iEAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAKC,sBAAU,UAAU,IAAI;GAC7B,4DAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
@@ -3,6 +3,8 @@
3
3
  import { runKeyAction } from "../../utils/dom.js";
4
4
  import { useUpdateEffect } from "../../utils/effect.js";
5
5
  import { utils_exports } from "../../utils/index.js";
6
+ import { mergeProps } from "../../core/components/props.js";
7
+ import "../../core/index.js";
6
8
  import { useControllableState } from "../../hooks/use-controllable-state/index.js";
7
9
  import { useI18n } from "../../providers/i18n-provider/i18n-provider.js";
8
10
  import "../../providers/i18n-provider/index.js";
@@ -91,12 +93,10 @@ const useColorSelector = ({ fallbackValue = "#FFFFFF", defaultValue = fallbackVa
91
93
  if (activeRef.current) return;
92
94
  if (valueProp) setHsva((0, utils_exports.parseToHsv)(valueProp, fallbackValue));
93
95
  }, [valueProp]);
94
- const getRootProps = useCallback((props = {}) => ({
96
+ const getRootProps = useCallback((props = {}) => mergeProps({
95
97
  "data-disabled": (0, utils_exports.dataAttr)(disabled),
96
- "data-readonly": (0, utils_exports.dataAttr)(readOnly),
97
- ...rest,
98
- ...props
99
- }), [
98
+ "data-readonly": (0, utils_exports.dataAttr)(readOnly)
99
+ }, rest, props)(), [
100
100
  disabled,
101
101
  readOnly,
102
102
  rest
@@ -1 +1 @@
1
- {"version":3,"file":"use-color-selector.js","names":["value","h","s","v","a","getRootProps: PropGetter","getSaturationSliderProps: PropGetter<UseSaturationSliderProps>","getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n >","getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n >","getEyeDropperProps: PropGetter"],"sources":["../../../../src/components/color-selector/use-color-selector.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter, RequiredPropGetter } from \"../../core\"\nimport type { ColorFormat } from \"../../utils\"\nimport type { UseSaturationSliderProps } from \"../saturation-slider\"\nimport type { UseSliderProps } from \"../slider\"\nimport { useCallback, useId, useRef, useState } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useEyeDropper } from \"../../hooks/use-eye-dropper\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n calcFormat,\n convertColor,\n cx,\n dataAttr,\n handlerAll,\n hsvTo,\n isString,\n parseToHsv,\n runKeyAction,\n sameColor,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype Hsva = [number, number, number, number]\n\nexport interface UseColorSelectorProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the color selector.\n *\n * @default fallbackValue\n */\n defaultValue?: string\n /**\n * If `true`, the color selector will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The fallback value of the color selector.\n *\n * @default '#FFFFFF'\n */\n fallbackValue?: string\n /**\n * The format of the color selector.\n * Automatically determines the format of `value` or `defaultValue`.\n *\n * @default 'hex'\n */\n format?: ColorFormat\n /**\n * If `true`, the color selector will be read only.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the color selector.\n */\n value?: string\n /**\n * The callback invoked when the value changes.\n */\n onChange?: (value: string) => void\n /**\n * The callback invoked when the value changes ends.\n */\n onChangeEnd?: (value: string) => void\n /**\n * The callback invoked when the value changes starts.\n */\n onChangeStart?: (value: string) => void\n}\n\nexport const useColorSelector = ({\n fallbackValue = \"#FFFFFF\",\n defaultValue = fallbackValue,\n disabled = false,\n format: formatProp,\n readOnly = false,\n value: valueProp,\n onChange: onChangeProp,\n onChangeEnd: onChangeEndProp,\n onChangeStart: onChangeStartProp,\n ...rest\n}: UseColorSelectorProps) => {\n const { t } = useI18n(\"colorSelector\")\n const format = formatProp ?? calcFormat(valueProp ?? defaultValue)\n const alpha = format.endsWith(\"a\")\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [hsva, setHsva] = useState(parseToHsv(value, fallbackValue))\n const [h, s, v, a] = hsva\n const interactive = !(disabled || readOnly)\n const swatchGroupLabelId = useId()\n const activeRef = useRef(false)\n const { supported: supportedEyeDropper, onOpen: onOpenEyeDropper } =\n useEyeDropper()\n const color = hsvTo([h, s, v, 1], fallbackValue)(\"hex\")\n\n const onChange = useCallback(\n (value: Hsva | string) => {\n if (!interactive) return\n\n if (isString(value)) {\n setValue(convertColor(value, fallbackValue)(format))\n setHsva(parseToHsv(value, fallbackValue))\n } else {\n setHsva(value)\n setValue(hsvTo(value, fallbackValue)(format))\n }\n },\n [fallbackValue, format, interactive, setValue],\n )\n\n const onChangeStart = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = true\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeStartProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeStartProp],\n )\n\n const onChangeEnd = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = false\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeEndProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeEndProp],\n )\n\n const onEyeDropperClick = useCallback(async () => {\n if (!interactive) return\n\n const result = await onOpenEyeDropper()\n\n if (result?.sRGBHex) onChange(result.sRGBHex)\n }, [interactive, onChange, onOpenEyeDropper])\n\n useUpdateEffect(() => {\n if (activeRef.current) return\n\n if (valueProp) setHsva(parseToHsv(valueProp, fallbackValue))\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) => ({\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...rest,\n ...props,\n }),\n [disabled, readOnly, rest],\n )\n\n const getSaturationSliderProps: PropGetter<UseSaturationSliderProps> =\n useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: [h, s, v],\n ...props,\n onChange: handlerAll(props.onChange, ([h, s, v]) =>\n onChange([h, s, v, a]),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, ([h, s, v]) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, ([h, s, v]) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, s, v, onChange, a, onChangeEnd, onChangeStart],\n )\n\n const getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n > = useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: h,\n ...props,\n onChange: handlerAll(props.onChange, (h) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (h) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (h) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, onChange, s, v, a, onChangeEnd, onChangeStart],\n )\n\n const getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n > = useCallback(\n (props = {}) => ({\n color,\n disabled,\n readOnly,\n value: a,\n ...props,\n onChange: handlerAll(props.onChange, (a) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (a) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (a) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [\n color,\n disabled,\n readOnly,\n a,\n onChange,\n h,\n s,\n v,\n onChangeEnd,\n onChangeStart,\n ],\n )\n\n const getEyeDropperProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Pick a color\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n hidden: !supportedEyeDropper,\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: onEyeDropperClick,\n Space: onEyeDropperClick,\n }),\n ),\n }),\n [\n disabled,\n interactive,\n onEyeDropperClick,\n readOnly,\n supportedEyeDropper,\n t,\n ],\n )\n\n const getColorSwatchGroupLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({\n id: swatchGroupLabelId,\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledby, swatchGroupLabelId),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"listbox\",\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchItemProps: RequiredPropGetter<\n \"div\",\n { value: string },\n HTMLProps & { color: string }\n > = useCallback(\n ({ value, ...props }) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-selected\": sameColor(value, color),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"option\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n color: value,\n onClick: handlerAll(props.onClick, () => onChange(value)),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: () => onChange(value),\n Space: () => onChange(value),\n }),\n ),\n }),\n [disabled, color, interactive, onChange, readOnly],\n )\n\n return {\n alpha,\n format,\n setValue,\n value,\n getAlphaSliderProps,\n getColorSwatchGroupLabelProps,\n getColorSwatchGroupProps,\n getColorSwatchItemProps,\n getEyeDropperProps,\n getHueSliderProps,\n getRootProps,\n getSaturationSliderProps,\n onChange,\n }\n}\n\nexport type UseColorSelectorReturn = ReturnType<typeof useColorSelector>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-color-selector.js","names":["value","h","s","v","a","getRootProps: PropGetter","getSaturationSliderProps: PropGetter<UseSaturationSliderProps>","getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n >","getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n >","getEyeDropperProps: PropGetter"],"sources":["../../../../src/components/color-selector/use-color-selector.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter, RequiredPropGetter } from \"../../core\"\nimport type { ColorFormat } from \"../../utils\"\nimport type { UseSaturationSliderProps } from \"../saturation-slider\"\nimport type { UseSliderProps } from \"../slider\"\nimport { useCallback, useId, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useEyeDropper } from \"../../hooks/use-eye-dropper\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n calcFormat,\n convertColor,\n cx,\n dataAttr,\n handlerAll,\n hsvTo,\n isString,\n parseToHsv,\n runKeyAction,\n sameColor,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype Hsva = [number, number, number, number]\n\nexport interface UseColorSelectorProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the color selector.\n *\n * @default fallbackValue\n */\n defaultValue?: string\n /**\n * If `true`, the color selector will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The fallback value of the color selector.\n *\n * @default '#FFFFFF'\n */\n fallbackValue?: string\n /**\n * The format of the color selector.\n * Automatically determines the format of `value` or `defaultValue`.\n *\n * @default 'hex'\n */\n format?: ColorFormat\n /**\n * If `true`, the color selector will be read only.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the color selector.\n */\n value?: string\n /**\n * The callback invoked when the value changes.\n */\n onChange?: (value: string) => void\n /**\n * The callback invoked when the value changes ends.\n */\n onChangeEnd?: (value: string) => void\n /**\n * The callback invoked when the value changes starts.\n */\n onChangeStart?: (value: string) => void\n}\n\nexport const useColorSelector = ({\n fallbackValue = \"#FFFFFF\",\n defaultValue = fallbackValue,\n disabled = false,\n format: formatProp,\n readOnly = false,\n value: valueProp,\n onChange: onChangeProp,\n onChangeEnd: onChangeEndProp,\n onChangeStart: onChangeStartProp,\n ...rest\n}: UseColorSelectorProps) => {\n const { t } = useI18n(\"colorSelector\")\n const format = formatProp ?? calcFormat(valueProp ?? defaultValue)\n const alpha = format.endsWith(\"a\")\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const [hsva, setHsva] = useState(parseToHsv(value, fallbackValue))\n const [h, s, v, a] = hsva\n const interactive = !(disabled || readOnly)\n const swatchGroupLabelId = useId()\n const activeRef = useRef(false)\n const { supported: supportedEyeDropper, onOpen: onOpenEyeDropper } =\n useEyeDropper()\n const color = hsvTo([h, s, v, 1], fallbackValue)(\"hex\")\n\n const onChange = useCallback(\n (value: Hsva | string) => {\n if (!interactive) return\n\n if (isString(value)) {\n setValue(convertColor(value, fallbackValue)(format))\n setHsva(parseToHsv(value, fallbackValue))\n } else {\n setHsva(value)\n setValue(hsvTo(value, fallbackValue)(format))\n }\n },\n [fallbackValue, format, interactive, setValue],\n )\n\n const onChangeStart = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = true\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeStartProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeStartProp],\n )\n\n const onChangeEnd = useCallback(\n ([h, s, v, a]: Hsva) => {\n if (!interactive) return\n\n activeRef.current = false\n\n const value = hsvTo([h, s, v, a], fallbackValue)(format)\n\n onChangeEndProp?.(value)\n },\n [interactive, fallbackValue, format, onChangeEndProp],\n )\n\n const onEyeDropperClick = useCallback(async () => {\n if (!interactive) return\n\n const result = await onOpenEyeDropper()\n\n if (result?.sRGBHex) onChange(result.sRGBHex)\n }, [interactive, onChange, onOpenEyeDropper])\n\n useUpdateEffect(() => {\n if (activeRef.current) return\n\n if (valueProp) setHsva(parseToHsv(valueProp, fallbackValue))\n }, [valueProp])\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) =>\n mergeProps(\n {\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n },\n rest,\n props,\n )(),\n [disabled, readOnly, rest],\n )\n\n const getSaturationSliderProps: PropGetter<UseSaturationSliderProps> =\n useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: [h, s, v],\n ...props,\n onChange: handlerAll(props.onChange, ([h, s, v]) =>\n onChange([h, s, v, a]),\n ),\n onChangeEnd: handlerAll(props.onChangeEnd, ([h, s, v]) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, ([h, s, v]) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, s, v, onChange, a, onChangeEnd, onChangeStart],\n )\n\n const getHueSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">\n > = useCallback(\n (props = {}) => ({\n disabled,\n readOnly,\n value: h,\n ...props,\n onChange: handlerAll(props.onChange, (h) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (h) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (h) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [disabled, readOnly, h, onChange, s, v, a, onChangeEnd, onChangeStart],\n )\n\n const getAlphaSliderProps: PropGetter<\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\">,\n undefined,\n Omit<UseSliderProps, \"betweenThumbs\" | \"orientation\"> & { color: string }\n > = useCallback(\n (props = {}) => ({\n color,\n disabled,\n readOnly,\n value: a,\n ...props,\n onChange: handlerAll(props.onChange, (a) => onChange([h, s, v, a])),\n onChangeEnd: handlerAll(props.onChangeEnd, (a) =>\n onChangeEnd([h, s, v, a]),\n ),\n onChangeStart: handlerAll(props.onChangeStart, (a) =>\n onChangeStart([h, s, v, a]),\n ),\n }),\n [\n color,\n disabled,\n readOnly,\n a,\n onChange,\n h,\n s,\n v,\n onChangeEnd,\n onChangeStart,\n ],\n )\n\n const getEyeDropperProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-label\": t(\"Pick a color\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n hidden: !supportedEyeDropper,\n role: \"button\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n onClick: handlerAll(props.onClick, onEyeDropperClick),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: onEyeDropperClick,\n Space: onEyeDropperClick,\n }),\n ),\n }),\n [\n disabled,\n interactive,\n onEyeDropperClick,\n readOnly,\n supportedEyeDropper,\n t,\n ],\n )\n\n const getColorSwatchGroupLabelProps: PropGetter<\"span\"> = useCallback(\n (props) => ({\n id: swatchGroupLabelId,\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchGroupProps: PropGetter = useCallback(\n ({ \"aria-labelledby\": ariaLabelledby, ...props } = {}) => ({\n \"aria-labelledby\": cx(ariaLabelledby, swatchGroupLabelId),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"listbox\",\n ...props,\n }),\n [swatchGroupLabelId, disabled, readOnly],\n )\n\n const getColorSwatchItemProps: RequiredPropGetter<\n \"div\",\n { value: string },\n HTMLProps & { color: string }\n > = useCallback(\n ({ value, ...props }) => ({\n \"aria-disabled\": ariaAttr(!interactive),\n \"aria-selected\": sameColor(value, color),\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"option\",\n tabIndex: interactive ? 0 : -1,\n ...props,\n color: value,\n onClick: handlerAll(props.onClick, () => onChange(value)),\n onKeyDown: handlerAll(props.onKeyDown, (ev) =>\n runKeyAction(ev, {\n Enter: () => onChange(value),\n Space: () => onChange(value),\n }),\n ),\n }),\n [disabled, color, interactive, onChange, readOnly],\n )\n\n return {\n alpha,\n format,\n setValue,\n value,\n getAlphaSliderProps,\n getColorSwatchGroupLabelProps,\n getColorSwatchGroupProps,\n getColorSwatchItemProps,\n getEyeDropperProps,\n getHueSliderProps,\n getRootProps,\n getSaturationSliderProps,\n onChange,\n }\n}\n\nexport type UseColorSelectorReturn = ReturnType<typeof useColorSelector>\n"],"mappings":"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"}
@@ -4,6 +4,8 @@ import { createContext as createContext$1 } from "../../utils/context.js";
4
4
  import { visuallyHiddenAttributes } from "../../utils/dom.js";
5
5
  import { mergeRefs } from "../../utils/ref.js";
6
6
  import { utils_exports } from "../../utils/index.js";
7
+ import { mergeProps } from "../../core/components/props.js";
8
+ import "../../core/index.js";
7
9
  import { useControllableState } from "../../hooks/use-controllable-state/index.js";
8
10
  import { createDescendants } from "../../hooks/use-descendants/index.js";
9
11
  import { useCallback, useId } from "react";
@@ -21,17 +23,15 @@ const useSegmentedControl = ({ id, name, defaultValue, disabled, orientation = "
21
23
  const descendants = useSegmentedControlDescendants();
22
24
  id ??= uuid;
23
25
  name ??= uuid;
24
- const getRootProps = useCallback((props) => ({
26
+ const getRootProps = useCallback((props) => mergeProps({
25
27
  id,
26
28
  "aria-disabled": (0, utils_exports.ariaAttr)(disabled),
27
29
  "aria-orientation": orientation,
28
30
  "data-disabled": (0, utils_exports.dataAttr)(disabled),
29
31
  "data-orientation": orientation,
30
32
  "data-readonly": (0, utils_exports.dataAttr)(readOnly),
31
- role: "radiogroup",
32
- ...rest,
33
- ...props
34
- }), [
33
+ role: "radiogroup"
34
+ }, rest, props)(), [
35
35
  disabled,
36
36
  id,
37
37
  orientation,
@@ -60,17 +60,15 @@ const useSegmentedControlItem = ({ disabled, readOnly, value, inputProps, ...res
60
60
  const onChange = useCallback((ev) => {
61
61
  setValue(ev.target.value);
62
62
  }, [setValue]);
63
- const getLabelProps = useCallback((props) => ({
63
+ const getLabelProps = useCallback((props) => mergeProps({
64
64
  "aria-disabled": (0, utils_exports.ariaAttr)(trulyDisabled),
65
65
  "data-checked": (0, utils_exports.dataAttr)(checked),
66
66
  "data-disabled": (0, utils_exports.dataAttr)(trulyDisabled),
67
67
  "data-orientation": orientation,
68
68
  "data-readonly": (0, utils_exports.dataAttr)(trulyReadOnly),
69
69
  "data-root-disabled": (0, utils_exports.dataAttr)(rootDisabled),
70
- "data-root-readonly": (0, utils_exports.dataAttr)(rootReadOnly),
71
- ...props,
72
- ...rest
73
- }), [
70
+ "data-root-readonly": (0, utils_exports.dataAttr)(rootReadOnly)
71
+ }, rest, props)(), [
74
72
  orientation,
75
73
  trulyDisabled,
76
74
  trulyReadOnly,
@@ -1 +1 @@
1
- {"version":3,"file":"use-segmented-control.js","names":["createContext","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n ...rest,\n ...props,\n }),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) => ({\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n ...props,\n ...rest,\n }),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;AAsBA,MAAM,CAAC,yBAAyB,8BAC9BA,gBAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACd,mBAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,OAAO,OAAO;CACpB,MAAM,CAAC,OAAO,YAAY,qBAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,eAA2B,aAC9B,WAAW;EACV;EACA,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,MAAM;EACN,GAAG;EACH,GAAG;EACJ,GACD;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,WAAW,aACd,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,gBAAqC,aACxC,WAAW;EACV,6CAA0B,cAAc;EACxC,4CAAyB,QAAQ;EACjC,6CAA0B,cAAc;EACxC,oBAAoB;EACpB,6CAA0B,cAAc;EACxC,kDAA+B,aAAa;EAC5C,kDAA+B,aAAa;EAC5C,GAAG;EACH,GAAG;EACJ,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,eApCyC,aACxC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAO,yBAAyB;GAChC,6CAA0B,cAAc;GACxC,4CAAyB,QAAQ;GACjC,6CAA0B,cAAc;GACxC,oBAAoB;GACpB,6CAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAK,UAAU,UAAU,IAAI;GAC7B,wCAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
1
+ {"version":3,"file":"use-segmented-control.js","names":["createContext","getRootProps: PropGetter","getLabelProps: PropGetter<\"label\">"],"sources":["../../../../src/components/segmented-control/use-segmented-control.ts"],"sourcesContent":["\"use client\"\n\nimport type { ChangeEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport type { FieldProps } from \"../field\"\nimport { useCallback, useId } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n ariaAttr,\n createContext,\n dataAttr,\n handlerAll,\n mergeRefs,\n visuallyHiddenAttributes,\n} from \"../../utils\"\n\ninterface SegmentedControlContext extends Omit<\n UseSegmentedControlReturn,\n \"descendants\" | \"getRootProps\"\n> {}\n\nconst [SegmentedControlContext, useSegmentedControlContext] =\n createContext<SegmentedControlContext>({\n name: \"SegmentedControlContext\",\n })\n\nexport { SegmentedControlContext, useSegmentedControlContext }\n\nconst {\n DescendantsContext: SegmentedControlDescendantsContext,\n useDescendant: useSegmentedControlDescendant,\n useDescendants: useSegmentedControlDescendants,\n} = createDescendants<HTMLInputElement>()\n\nexport {\n SegmentedControlDescendantsContext,\n useSegmentedControlDescendant,\n useSegmentedControlDescendants,\n}\n\nexport interface UseSegmentedControlProps<\n Y extends string = string,\n> extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The initial value of the segmented control.\n */\n defaultValue?: Y\n /**\n * If `true`, the segmented control will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The HTML `name` attribute used for forms.\n */\n name?: string\n /**\n * The orientation of the segmented control.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * If `true`, the segmented control will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the segmented control.\n */\n value?: Y\n /**\n * The callback fired when any children radio is checked or unchecked.\n */\n onChange?: (value: Y) => void\n}\n\nexport const useSegmentedControl = <Y extends string = string>({\n id,\n name,\n defaultValue,\n disabled,\n orientation = \"horizontal\",\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseSegmentedControlProps<Y> = {}) => {\n const uuid = useId()\n const [value, setValue] = useControllableState({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n const descendants = useSegmentedControlDescendants()\n\n id ??= uuid\n name ??= uuid\n\n const getRootProps: PropGetter = useCallback(\n (props) =>\n mergeProps(\n {\n id,\n \"aria-disabled\": ariaAttr(disabled),\n \"aria-orientation\": orientation,\n \"data-disabled\": dataAttr(disabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(readOnly),\n role: \"radiogroup\",\n },\n rest,\n props,\n )(),\n [disabled, id, orientation, readOnly, rest],\n )\n\n return {\n id,\n name,\n descendants,\n disabled,\n orientation,\n readOnly,\n setValue,\n value,\n getRootProps,\n }\n}\n\nexport type UseSegmentedControlReturn = ReturnType<typeof useSegmentedControl>\n\nexport interface UseSegmentedControlItemProps<Y extends string = string>\n extends HTMLProps<\"label\">, Pick<FieldProps, \"disabled\" | \"readOnly\"> {\n /**\n * The value of the segmented control item.\n */\n value: Y\n /**\n * Props for the input element.\n */\n inputProps?: HTMLProps<\"input\">\n}\n\nexport const useSegmentedControlItem = <Y extends string = string>({\n disabled,\n readOnly,\n value,\n inputProps,\n ...rest\n}: UseSegmentedControlItemProps<Y>) => {\n const {\n name,\n disabled: rootDisabled,\n orientation,\n readOnly: rootReadOnly,\n setValue,\n value: selectedValue,\n } = useSegmentedControlContext()\n const { register } = useSegmentedControlDescendant({\n disabled: disabled || readOnly,\n })\n const checked = value === selectedValue\n const trulyDisabled = disabled ?? rootDisabled\n const trulyReadOnly = readOnly ?? rootReadOnly\n const interactive = !(trulyReadOnly || trulyDisabled)\n\n const onChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n setValue(ev.target.value)\n },\n [setValue],\n )\n\n const getLabelProps: PropGetter<\"label\"> = useCallback(\n (props) =>\n mergeProps(\n {\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n \"data-root-disabled\": dataAttr(rootDisabled),\n \"data-root-readonly\": dataAttr(rootReadOnly),\n },\n rest,\n props,\n )(),\n [\n orientation,\n trulyDisabled,\n trulyReadOnly,\n checked,\n rootDisabled,\n rootReadOnly,\n rest,\n ],\n )\n\n const getInputProps: PropGetter<\"input\"> = useCallback(\n ({ ref, ...props } = {}) => ({\n type: \"radio\",\n name,\n style: visuallyHiddenAttributes.style,\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"data-checked\": dataAttr(checked),\n \"data-disabled\": dataAttr(trulyDisabled),\n \"data-orientation\": orientation,\n \"data-readonly\": dataAttr(trulyReadOnly),\n checked,\n disabled: trulyDisabled || trulyReadOnly,\n readOnly: trulyReadOnly,\n tabIndex: interactive ? undefined : -1,\n value,\n ...inputProps,\n ...props,\n ref: mergeRefs(register, ref),\n onChange: handlerAll(props.onChange, inputProps?.onChange, onChange),\n }),\n [\n orientation,\n name,\n trulyDisabled,\n trulyReadOnly,\n checked,\n interactive,\n value,\n inputProps,\n register,\n onChange,\n ],\n )\n\n return {\n checked,\n getInputProps,\n getLabelProps,\n }\n}\n\nexport type UseSegmentedControlItemReturn = ReturnType<\n typeof useSegmentedControlItem\n>\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAM,CAAC,yBAAyB,8BAC9BA,gBAAuC,EACrC,MAAM,2BACP,CAAC;AAIJ,MAAM,EACJ,oBAAoB,oCACpB,eAAe,+BACf,gBAAgB,mCACd,mBAAqC;AA+CzC,MAAa,uBAAkD,EAC7D,IACA,MACA,cACA,UACA,cAAc,cACd,UACA,OAAO,WACP,UAAU,cACV,GAAG,SAC4B,EAAE,KAAK;CACtC,MAAM,OAAO,OAAO;CACpB,MAAM,CAAC,OAAO,YAAY,qBAAqB;EAC7C;EACA,OAAO;EACP,UAAU;EACX,CAAC;CACF,MAAM,cAAc,gCAAgC;AAEpD,QAAO;AACP,UAAS;CAET,MAAMC,eAA2B,aAC9B,UACC,WACE;EACE;EACA,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,oBAAoB;EACpB,6CAA0B,SAAS;EACnC,MAAM;EACP,EACD,MACA,MACD,EAAE,EACL;EAAC;EAAU;EAAI;EAAa;EAAU;EAAK,CAC5C;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;;AAiBH,MAAa,2BAAsD,EACjE,UACA,UACA,OACA,YACA,GAAG,WACkC;CACrC,MAAM,EACJ,MACA,UAAU,cACV,aACA,UAAU,cACV,UACA,OAAO,kBACL,4BAA4B;CAChC,MAAM,EAAE,aAAa,8BAA8B,EACjD,UAAU,YAAY,UACvB,CAAC;CACF,MAAM,UAAU,UAAU;CAC1B,MAAM,gBAAgB,YAAY;CAClC,MAAM,gBAAgB,YAAY;CAClC,MAAM,cAAc,EAAE,iBAAiB;CAEvC,MAAM,WAAW,aACd,OAAsC;AACrC,WAAS,GAAG,OAAO,MAAM;IAE3B,CAAC,SAAS,CACX;CAED,MAAMC,gBAAqC,aACxC,UACC,WACE;EACE,6CAA0B,cAAc;EACxC,4CAAyB,QAAQ;EACjC,6CAA0B,cAAc;EACxC,oBAAoB;EACpB,6CAA0B,cAAc;EACxC,kDAA+B,aAAa;EAC5C,kDAA+B,aAAa;EAC7C,EACD,MACA,MACD,EAAE,EACL;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;AAoCD,QAAO;EACL;EACA,eApCyC,aACxC,EAAE,KAAK,GAAG,UAAU,EAAE,MAAM;GAC3B,MAAM;GACN;GACA,OAAO,yBAAyB;GAChC,6CAA0B,cAAc;GACxC,4CAAyB,QAAQ;GACjC,6CAA0B,cAAc;GACxC,oBAAoB;GACpB,6CAA0B,cAAc;GACxC;GACA,UAAU,iBAAiB;GAC3B,UAAU;GACV,UAAU,cAAc,SAAY;GACpC;GACA,GAAG;GACH,GAAG;GACH,KAAK,UAAU,UAAU,IAAI;GAC7B,wCAAqB,MAAM,UAAU,YAAY,UAAU,SAAS;GACrE,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAKC;EACD"}
@@ -9,7 +9,7 @@ import "../collapse/index.js";
9
9
  import "../../index.js";
10
10
  import { AccordionStyle } from "./accordion.style.js";
11
11
  import { UseAccordionItemProps, UseAccordionProps } from "./use-accordion.js";
12
- import * as react429 from "react";
12
+ import * as react98 from "react";
13
13
 
14
14
  //#region src/components/accordion/accordion.d.ts
15
15
  interface AccordionCallBackProps {
@@ -33,7 +33,7 @@ interface AccordionRootProps extends Omit<HTMLStyledProps, "onChange">, ThemePro
33
33
  */
34
34
  items?: AccordionItem[];
35
35
  }
36
- declare const AccordionPropsContext: react429.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
36
+ declare const AccordionPropsContext: react98.Context<Partial<AccordionRootProps> | undefined>, useAccordionPropsContext: () => Partial<AccordionRootProps> | undefined;
37
37
  /**
38
38
  * `Accordion` is a component for a list that displays information in an expandable or collapsible manner.
39
39
  *
@@ -2,10 +2,10 @@ import { HTMLProps, PropGetter } from "../../core/components/index.types.js";
2
2
  import "../../core/index.js";
3
3
  import { Descendant } from "../../hooks/use-descendants/index.js";
4
4
  import "../../index.js";
5
- import * as react417 from "react";
5
+ import * as react86 from "react";
6
6
 
7
7
  //#region src/components/accordion/use-accordion.d.ts
8
- declare const AccordionDescendantsContext: react417.Context<{
8
+ declare const AccordionDescendantsContext: react86.Context<{
9
9
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
10
10
  count: (props?: Partial<{}> | undefined) => number;
11
11
  destroy: () => void;
@@ -24,7 +24,7 @@ declare const AccordionDescendantsContext: react417.Context<{
24
24
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
25
25
  register: (props?: {
26
26
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
27
- } | undefined) => react417.RefCallback<HTMLButtonElement>;
27
+ } | undefined) => react86.RefCallback<HTMLButtonElement>;
28
28
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
29
29
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
30
30
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
@@ -50,12 +50,12 @@ declare const AccordionDescendantsContext: react417.Context<{
50
50
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
51
51
  register: (props?: {
52
52
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
53
- } | undefined) => react417.RefCallback<HTMLButtonElement>;
53
+ } | undefined) => react86.RefCallback<HTMLButtonElement>;
54
54
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
55
55
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
56
56
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
57
57
  };
58
- register: react417.RefCallback<HTMLButtonElement>;
58
+ register: react86.RefCallback<HTMLButtonElement>;
59
59
  }, useAccordionDescendants: () => {
60
60
  active: (target?: HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null | undefined, options?: FocusOptions) => void;
61
61
  count: (props?: Partial<{}> | undefined) => number;
@@ -75,15 +75,15 @@ declare const AccordionDescendantsContext: react417.Context<{
75
75
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
76
76
  register: (props?: {
77
77
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
78
- } | undefined) => react417.RefCallback<HTMLButtonElement>;
78
+ } | undefined) => react86.RefCallback<HTMLButtonElement>;
79
79
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
80
80
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
81
81
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
82
82
  };
83
83
  interface AccordionContext extends Omit<UseAccordionReturn, "descendants" | "getRootProps"> {}
84
- declare const AccordionContext: react417.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
84
+ declare const AccordionContext: react86.Context<AccordionContext>, useAccordionContext: () => AccordionContext;
85
85
  interface AccordionItemContext extends Omit<UseAccordionItemReturn, "getItemProps"> {}
86
- declare const AccordionItemContext: react417.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
86
+ declare const AccordionItemContext: react86.Context<AccordionItemContext>, useAccordionItemContext: () => AccordionItemContext;
87
87
  interface UseAccordionProps extends Omit<HTMLProps, "onChange"> {
88
88
  /**
89
89
  * The initial index(es) of the accordion item to expand.
@@ -137,7 +137,7 @@ declare const useAccordion: ({
137
137
  prevValue: (indexOrNode: number | HTMLButtonElement | Descendant<HTMLButtonElement, {}> | null, loop?: boolean, props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}> | undefined;
138
138
  register: (props?: {
139
139
  disabled?: boolean | ((node: HTMLButtonElement) => boolean) | undefined;
140
- } | undefined) => react417.RefCallback<HTMLButtonElement>;
140
+ } | undefined) => react86.RefCallback<HTMLButtonElement>;
141
141
  unregister: (node?: HTMLButtonElement | null | undefined) => void;
142
142
  value: (indexOrNode: number | HTMLButtonElement | null) => Descendant<HTMLButtonElement, {}> | undefined;
143
143
  values: (props?: Partial<{}> | undefined) => Descendant<HTMLButtonElement, {}>[];
@@ -145,8 +145,8 @@ declare const useAccordion: ({
145
145
  focusedIndex: number;
146
146
  index: number | number[];
147
147
  multiple: boolean | undefined;
148
- setFocusedIndex: react417.Dispatch<react417.SetStateAction<number>>;
149
- setIndex: react417.Dispatch<react417.SetStateAction<number | number[]>>;
148
+ setFocusedIndex: react86.Dispatch<react86.SetStateAction<number>>;
149
+ setIndex: react86.Dispatch<react86.SetStateAction<number | number[]>>;
150
150
  toggle: boolean | undefined;
151
151
  getRootProps: PropGetter<"div", undefined, undefined>;
152
152
  };
@@ -7,7 +7,7 @@ import { UsePopupAnimationProps } from "../popover/popover.js";
7
7
  import "../popover/index.js";
8
8
  import { UseActionBarProps } from "./use-action-bar.js";
9
9
  import "../../index.js";
10
- import * as react352 from "react";
10
+ import * as react85 from "react";
11
11
  import { PropsWithChildren, ReactNode } from "react";
12
12
 
13
13
  //#region src/components/action-bar/action-bar.d.ts
@@ -29,7 +29,7 @@ interface ActionBarRootProps extends Omit<HTMLStyledProps, "content">, ThemeProp
29
29
  */
30
30
  onCloseComplete?: () => void;
31
31
  }
32
- declare const ActionBarPropsContext: react352.Context<Partial<ActionBarRootProps> | undefined>, useActionBarPropsContext: () => Partial<ActionBarRootProps> | undefined;
32
+ declare const ActionBarPropsContext: react85.Context<Partial<ActionBarRootProps> | undefined>, useActionBarPropsContext: () => Partial<ActionBarRootProps> | undefined;
33
33
  /**
34
34
  * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.
35
35
  *
@@ -5,7 +5,7 @@ import { HTMLMotionProps } from "../motion/index.types.js";
5
5
  import "../motion/index.js";
6
6
  import { AiryStyle } from "./airy.style.js";
7
7
  import "../../index.js";
8
- import * as react356 from "react";
8
+ import * as react84 from "react";
9
9
  import { ReactNode } from "react";
10
10
 
11
11
  //#region src/components/airy/airy.d.ts
@@ -57,7 +57,7 @@ interface AiryProps extends Omit<HTMLMotionProps<"button">, "onChange">, ThemePr
57
57
  */
58
58
  onChange?: (value: KeyframeIdent) => void;
59
59
  }
60
- declare const AiryPropsContext: react356.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
60
+ declare const AiryPropsContext: react84.Context<Partial<AiryProps> | undefined>, useAiryPropsContext: () => Partial<AiryProps> | undefined;
61
61
  /**
62
62
  * `Airy` is a component that creates an airy animation, switching between two elements when one is clicked.
63
63
  *
@@ -9,7 +9,7 @@ import "../loading/index.js";
9
9
  import { StatusScheme } from "../status/status.js";
10
10
  import "../status/index.js";
11
11
  import "../../index.js";
12
- import * as react354 from "react";
12
+ import * as react83 from "react";
13
13
 
14
14
  //#region src/components/alert/alert.d.ts
15
15
  interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
@@ -20,7 +20,7 @@ interface AlertRootProps extends HTMLStyledProps, ThemeProps<AlertStyle> {
20
20
  */
21
21
  status?: StatusScheme;
22
22
  }
23
- declare const AlertPropsContext: react354.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
23
+ declare const AlertPropsContext: react83.Context<Partial<AlertRootProps> | undefined>, useAlertPropsContext: () => Partial<AlertRootProps> | undefined;
24
24
  /**
25
25
  * `Alert` is a component that conveys information to the user.
26
26
  *
@@ -5,7 +5,7 @@ import { AlphaSliderStyle } from "./alpha-slider.style.js";
5
5
  import { HueSliderOverlayProps, HueSliderRootProps, HueSliderThumbProps, HueSliderTrackProps } from "../hue-slider/hue-slider.js";
6
6
  import "../hue-slider/index.js";
7
7
  import "../../index.js";
8
- import * as react355 from "react";
8
+ import * as react82 from "react";
9
9
 
10
10
  //#region src/components/alpha-slider/alpha-slider.d.ts
11
11
  interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps, "color" | "max" | "step" | "thumbProps" | "trackProps">, AlphaSliderStyle> {
@@ -38,7 +38,7 @@ interface AlphaSliderRootProps extends WithoutThemeProps<Omit<HueSliderRootProps
38
38
  */
39
39
  trackProps?: AlphaSliderTrackProps;
40
40
  }
41
- declare const AlphaSliderPropsContext: react355.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
41
+ declare const AlphaSliderPropsContext: react82.Context<Partial<AlphaSliderRootProps> | undefined>, useAlphaSliderPropsContext: () => Partial<AlphaSliderRootProps> | undefined;
42
42
  /**
43
43
  * `AlphaSlider` is a component used to allow the user to select color transparency.
44
44
  *
@@ -2,7 +2,7 @@ import { StyleValue } from "../../core/css/index.types.js";
2
2
  import { Component, HTMLStyledProps } from "../../core/components/index.types.js";
3
3
  import "../../core/index.js";
4
4
  import "../../index.js";
5
- import * as react353 from "react";
5
+ import * as react108 from "react";
6
6
 
7
7
  //#region src/components/aspect-ratio/aspect-ratio.d.ts
8
8
  interface AspectRatioProps extends HTMLStyledProps {
@@ -13,7 +13,7 @@ interface AspectRatioProps extends HTMLStyledProps {
13
13
  */
14
14
  ratio?: StyleValue<number>;
15
15
  }
16
- declare const AspectRatioPropsContext: react353.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
16
+ declare const AspectRatioPropsContext: react108.Context<Partial<AspectRatioProps> | undefined>, useAspectRatioPropsContext: () => Partial<AspectRatioProps> | undefined;
17
17
  /**
18
18
  * `AspectRatio` is a component for embedding things like videos and maps while maintaining the aspect ratio.
19
19
  *
@@ -12,7 +12,7 @@ import { InputGroupRootProps } from "../input/input-group.js";
12
12
  import "../input/index.js";
13
13
  import { UseAutocompleteOptionProps, UseAutocompleteProps } from "./use-autocomplete.js";
14
14
  import "../../index.js";
15
- import * as react341 from "react";
15
+ import * as react81 from "react";
16
16
  import { ReactElement, ReactNode } from "react";
17
17
 
18
18
  //#region src/components/autocomplete/autocomplete.d.ts
@@ -68,7 +68,7 @@ interface AutocompleteRootProps<Multiple extends boolean = false> extends Omit<H
68
68
  */
69
69
  rootProps?: InputGroupRootProps;
70
70
  }
71
- declare const AutocompletePropsContext: react341.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
71
+ declare const AutocompletePropsContext: react81.Context<Partial<AutocompleteRootProps<false>> | undefined>, useAutocompletePropsContext: () => Partial<AutocompleteRootProps<false>> | undefined;
72
72
  /**
73
73
  * `Autocomplete` is a component used to display suggestions in response to user text input.
74
74
  *
@@ -3,7 +3,7 @@ import { CSSPropObject, CSSSlotObject } from "../../core/css/index.types.js";
3
3
  import "../../index.js";
4
4
 
5
5
  //#region src/components/autocomplete/autocomplete.style.d.ts
6
- declare const autocompleteStyle: ComponentSlotStyle<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "field" | "root" | "indicator" | "valueText" | "empty", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "field" | "root" | "indicator" | "valueText" | "empty">>, {
6
+ declare const autocompleteStyle: ComponentSlotStyle<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "field" | "valueText" | "empty", CSSPropObject<CSSSlotObject<"input" | "label" | "option" | "content" | "group" | "separator" | "icon" | "root" | "indicator" | "field" | "valueText" | "empty">>, {
7
7
  xs: {
8
8
  empty: {
9
9
  gap: "1.5";