@bigbinary/neeto-atoms 1.0.61 → 1.0.63

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 (39) hide show
  1. package/dist/Combobox-_-p2WeU8.js +10171 -0
  2. package/dist/Combobox-_-p2WeU8.js.map +1 -0
  3. package/dist/{Select-Zr8sFnAC.js → Select-C_lRHyd6.js} +70 -24
  4. package/dist/Select-C_lRHyd6.js.map +1 -0
  5. package/dist/cjs/Combobox-BX_pe3Hm.js +10209 -0
  6. package/dist/cjs/Combobox-BX_pe3Hm.js.map +1 -0
  7. package/dist/cjs/{Select-BJs-J8fs.js → Select-OWg5FZzx.js} +69 -23
  8. package/dist/cjs/Select-OWg5FZzx.js.map +1 -0
  9. package/dist/cjs/components/Select.js +2 -2
  10. package/dist/cjs/components/index.js +2 -2
  11. package/dist/cjs/formik/Select.js +2 -2
  12. package/dist/cjs/formik/index.js +2 -2
  13. package/dist/cjs/index.js +2 -2
  14. package/dist/cjs/primitives/Checkbox.js +11 -2
  15. package/dist/cjs/primitives/Checkbox.js.map +1 -1
  16. package/dist/cjs/primitives/Combobox.js +32 -10205
  17. package/dist/cjs/primitives/Combobox.js.map +1 -1
  18. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  19. package/dist/cjs/primitives/index.js +1 -1
  20. package/dist/components/Select/SelectAnchor.d.ts +8 -0
  21. package/dist/components/Select/SelectCombobox.types.d.ts +3 -1
  22. package/dist/components/Select/hooks/useSelectState.d.ts +1 -0
  23. package/dist/components/Select/types.d.ts +8 -0
  24. package/dist/components/Select.js +2 -2
  25. package/dist/components/index.js +2 -2
  26. package/dist/formik/Select.js +2 -2
  27. package/dist/formik/index.js +2 -2
  28. package/dist/index.js +2 -2
  29. package/dist/primitives/Checkbox.d.ts +1 -1
  30. package/dist/primitives/Checkbox.js +11 -2
  31. package/dist/primitives/Checkbox.js.map +1 -1
  32. package/dist/primitives/Combobox.js +13 -10170
  33. package/dist/primitives/Combobox.js.map +1 -1
  34. package/dist/primitives/RadioGroup.js.map +1 -1
  35. package/dist/primitives/index.js +1 -1
  36. package/package.json +1 -1
  37. package/dist/Select-Zr8sFnAC.js.map +0 -1
  38. package/dist/cjs/Select-BJs-J8fs.js.map +0 -1
  39. package/dist/hooks/useComboboxAnchor.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/shadcn/components/radio-group.tsx","../../src/primitives/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 start-1/2 size-2 -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { RadioGroup as ShadcnRadioGroup } from \"src/shadcn/components/radio-group\";\n\nconst RadioGroup = (props: React.ComponentProps<typeof ShadcnRadioGroup>) => (\n <ShadcnRadioGroup {...props} />\n);\n\n/**\n * RadioGroupItem re-composed from Radix primitives with the inner dot\n * using flex centering instead of absolute + translate, fixing RTL alignment.\n */\nconst RadioGroupItem = ({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) => (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-full items-center justify-center\"\n >\n <span className=\"size-2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n);\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["createContextScope2","RadioGroup","React2","jsx2","RovingFocusGroup.Root","Primitive2","RadioGroupItem","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","ShadcnRadioGroup","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../node_modules/@radix-ui/react-radio-group/dist/index.mjs","../../src/shadcn/components/radio-group.tsx","../../src/primitives/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\n// src/radio-group.tsx\nimport * as React2 from \"react\";\nimport { composeEventHandlers as composeEventHandlers2 } from \"@radix-ui/primitive\";\nimport { useComposedRefs as useComposedRefs2 } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope as createContextScope2 } from \"@radix-ui/react-context\";\nimport { Primitive as Primitive2 } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\n\n// src/radio.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar RADIO_NAME = \"Radio\";\nvar [createRadioContext, createRadioScope] = createContextScope(RADIO_NAME);\nvar [RadioProvider, useRadioContext] = createRadioContext(RADIO_NAME);\nvar Radio = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadio,\n name,\n checked = false,\n required,\n disabled,\n value = \"on\",\n onCheck,\n form,\n ...radioProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n return /* @__PURE__ */ jsxs(RadioProvider, { scope: __scopeRadio, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"radio\",\n \"aria-checked\": checked,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...radioProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n if (!checked) onCheck?.();\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n RadioBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nRadio.displayName = RADIO_NAME;\nvar INDICATOR_NAME = \"RadioIndicator\";\nvar RadioIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadio, forceMount, ...indicatorProps } = props;\n const context = useRadioContext(INDICATOR_NAME, __scopeRadio);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nRadioIndicator.displayName = INDICATOR_NAME;\nvar BUBBLE_INPUT_NAME = \"RadioBubbleInput\";\nvar RadioBubbleInput = React.forwardRef(\n ({\n __scopeRadio,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n Primitive.input,\n {\n type: \"radio\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nRadioBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\n\n// src/radio-group.tsx\nimport { jsx as jsx2 } from \"react/jsx-runtime\";\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar RADIO_GROUP_NAME = \"RadioGroup\";\nvar [createRadioGroupContext, createRadioGroupScope] = createContextScope2(RADIO_GROUP_NAME, [\n createRovingFocusGroupScope,\n createRadioScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar useRadioScope = createRadioScope();\nvar [RadioGroupProvider, useRadioGroupContext] = createRadioGroupContext(RADIO_GROUP_NAME);\nvar RadioGroup = React2.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeRadioGroup,\n name,\n defaultValue,\n value: valueProp,\n required = false,\n disabled = false,\n orientation,\n dir,\n loop = true,\n onValueChange,\n ...groupProps\n } = props;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? null,\n onChange: onValueChange,\n caller: RADIO_GROUP_NAME\n });\n return /* @__PURE__ */ jsx2(\n RadioGroupProvider,\n {\n scope: __scopeRadioGroup,\n name,\n required,\n disabled,\n value,\n onValueChange: setValue,\n children: /* @__PURE__ */ jsx2(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation,\n dir: direction,\n loop,\n children: /* @__PURE__ */ jsx2(\n Primitive2.div,\n {\n role: \"radiogroup\",\n \"aria-required\": required,\n \"aria-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : void 0,\n dir: direction,\n ...groupProps,\n ref: forwardedRef\n }\n )\n }\n )\n }\n );\n }\n);\nRadioGroup.displayName = RADIO_GROUP_NAME;\nvar ITEM_NAME = \"RadioGroupItem\";\nvar RadioGroupItem = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, disabled, ...itemProps } = props;\n const context = useRadioGroupContext(ITEM_NAME, __scopeRadioGroup);\n const isDisabled = context.disabled || disabled;\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeRadioGroup);\n const radioScope = useRadioScope(__scopeRadioGroup);\n const ref = React2.useRef(null);\n const composedRefs = useComposedRefs2(forwardedRef, ref);\n const checked = context.value === itemProps.value;\n const isArrowKeyPressedRef = React2.useRef(false);\n React2.useEffect(() => {\n const handleKeyDown = (event) => {\n if (ARROW_KEYS.includes(event.key)) {\n isArrowKeyPressedRef.current = true;\n }\n };\n const handleKeyUp = () => isArrowKeyPressedRef.current = false;\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"keyup\", handleKeyUp);\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"keyup\", handleKeyUp);\n };\n }, []);\n return /* @__PURE__ */ jsx2(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !isDisabled,\n active: checked,\n children: /* @__PURE__ */ jsx2(\n Radio,\n {\n disabled: isDisabled,\n required: context.required,\n checked,\n ...radioScope,\n ...itemProps,\n name: context.name,\n ref: composedRefs,\n onCheck: () => context.onValueChange(itemProps.value),\n onKeyDown: composeEventHandlers2((event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onFocus: composeEventHandlers2(itemProps.onFocus, () => {\n if (isArrowKeyPressedRef.current) ref.current?.click();\n })\n }\n )\n }\n );\n }\n);\nRadioGroupItem.displayName = ITEM_NAME;\nvar INDICATOR_NAME2 = \"RadioGroupIndicator\";\nvar RadioGroupIndicator = React2.forwardRef(\n (props, forwardedRef) => {\n const { __scopeRadioGroup, ...indicatorProps } = props;\n const radioScope = useRadioScope(__scopeRadioGroup);\n return /* @__PURE__ */ jsx2(RadioIndicator, { ...radioScope, ...indicatorProps, ref: forwardedRef });\n }\n);\nRadioGroupIndicator.displayName = INDICATOR_NAME2;\nvar Root2 = RadioGroup;\nvar Item2 = RadioGroupItem;\nvar Indicator = RadioGroupIndicator;\nexport {\n Indicator,\n Item2 as Item,\n RadioGroup,\n RadioGroupIndicator,\n RadioGroupItem,\n Root2 as Root,\n createRadioGroupScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\"\n\nimport * as React from \"react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"src/shadcn/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 start-1/2 size-2 -translate-x-1/2 rtl:translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\";\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\nimport { RadioGroup as ShadcnRadioGroup } from \"src/shadcn/components/radio-group\";\n\nconst RadioGroup = (props: React.ComponentProps<typeof ShadcnRadioGroup>) => (\n <ShadcnRadioGroup {...props} />\n);\n\n/**\n * RadioGroupItem re-composed from Radix primitives with the inner dot\n * using flex centering instead of absolute + translate, fixing RTL alignment.\n */\nconst RadioGroupItem = ({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) => (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-neutral-400 outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:border-neutral-500 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-full items-center justify-center\"\n >\n <span className=\"size-2 rounded-full bg-primary-foreground\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n);\n\nexport { RadioGroup, RadioGroupItem };\n"],"names":["createContextScope2","RadioGroup","React2","jsx2","RovingFocusGroup.Root","Primitive2","RadioGroupItem","useComposedRefs2","RovingFocusGroup.Item","composeEventHandlers2","RadioGroupPrimitive.Root","ShadcnRadioGroup","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator"],"mappings":"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","x_google_ignoreList":[0]}
@@ -13,7 +13,7 @@ export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious
13
13
  export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './Chart.js';
14
14
  export { Checkbox } from './Checkbox.js';
15
15
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from './Collapsible.js';
16
- export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, useComboboxAnchor } from './Combobox.js';
16
+ export { C as Combobox, a as ComboboxChip, b as ComboboxChips, c as ComboboxChipsInput, d as ComboboxCollection, e as ComboboxContent, f as ComboboxEmpty, g as ComboboxGroup, h as ComboboxInput, i as ComboboxItem, j as ComboboxLabel, k as ComboboxList, l as ComboboxSeparator, m as ComboboxTrigger, n as ComboboxValue, u as useComboboxAnchor } from '../Combobox-_-p2WeU8.js';
17
17
  export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from './Command.js';
18
18
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './ContextMenu.js';
19
19
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './Dialog.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-atoms",
3
- "version": "1.0.61",
3
+ "version": "1.0.63",
4
4
  "author": "BigBinary",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-Zr8sFnAC.js","sources":["../src/utils/hyphenize.ts","../src/utils/fieldIds.ts","../src/components/Select/hooks/useAsyncOptions.ts","../src/components/Select/hooks/useLazyLoadSentinel.ts","../src/components/Select/hooks/useCreatableItems.ts","../src/components/Select/types.ts","../src/components/Select/utils.ts","../src/components/Select/hooks/useMultiSelectOptions.ts","../src/components/Select/constants.ts","../src/components/Select/hooks/useSelectState.ts","../src/components/Select/hooks/useMultiSelectState.ts","../src/hooks/useComboboxAnchor.ts","../src/components/Select/OptionItem.tsx","../src/components/Select/MultiSelectDropdown.tsx","../src/components/Select/SelectCombobox.tsx","../src/components/Select/MultiSelectCombobox.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["export function hyphenize(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .toLowerCase();\n}\n","import { hyphenize } from \"./hyphenize\";\n\nexport function buildAriaDescribedBy(\n error: string,\n errorId: string,\n helpText: React.ReactNode,\n helpTextId: string\n): string | undefined {\n return (\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n );\n}\n\nexport function buildTestIdPrefix(\n dataTestId: string | undefined,\n label: string\n): string | undefined {\n return dataTestId ?? (label ? hyphenize(label) : undefined);\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { SelectOptionBase } from \"src/components/Select/types\";\n\ninterface UseAsyncOptionsConfig {\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n defaultOptions?: boolean | SelectOptionBase[];\n cacheOptions?: boolean;\n}\n\ninterface UseAsyncOptionsReturn {\n asyncOptions: SelectOptionBase[];\n isLoading: boolean;\n handleAsyncInputChange: (value: string) => void;\n}\n\nexport function useAsyncOptions({\n loadOptions,\n defaultOptions = false,\n cacheOptions = false,\n}: UseAsyncOptionsConfig): UseAsyncOptionsReturn {\n const [asyncOptions, setAsyncOptions] = useState<SelectOptionBase[]>(() =>\n Array.isArray(defaultOptions) ? defaultOptions : []\n );\n const [isLoading, setIsLoading] = useState(false);\n const cacheRef = useRef<Record<string, SelectOptionBase[]>>({});\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestRequestRef = useRef(0);\n const mountedRef = useRef(true);\n\n // Load default options on mount when `defaultOptions === true`\n useEffect(() => {\n if (!loadOptions || defaultOptions !== true) return;\n let cancelled = false;\n setIsLoading(true);\n loadOptions(\"\")\n .then(results => {\n if (cancelled) return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[\"\"] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (!cancelled) setIsLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n // Clean up debounce timer and mark unmounted\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, []);\n\n const handleAsyncInputChange = useCallback(\n (value: string) => {\n if (!loadOptions) return;\n\n const query = value.trim();\n\n // Check cache first\n if (cacheOptions && query in cacheRef.current) {\n setAsyncOptions(cacheRef.current[query]);\n return;\n }\n\n // Debounce the fetch\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const requestId = ++latestRequestRef.current;\n setIsLoading(true);\n loadOptions(query)\n .then(results => {\n if (requestId !== latestRequestRef.current || !mountedRef.current)\n return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[query] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (requestId === latestRequestRef.current && mountedRef.current) {\n setIsLoading(false);\n }\n });\n }, 300);\n },\n [loadOptions, cacheOptions]\n );\n\n return { asyncOptions, isLoading, handleAsyncInputChange };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\n\ninterface UseLazyLoadSentinelConfig {\n fetchMore?: () => void;\n isEnabled: boolean;\n}\n\nexport function useLazyLoadSentinel({\n fetchMore,\n isEnabled,\n}: UseLazyLoadSentinelConfig) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const fetchMoreRef = useRef(fetchMore);\n fetchMoreRef.current = fetchMore;\n\n const sentinelRef = useCallback(\n (node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (!node || !isEnabled) return;\n\n const observer = new IntersectionObserver(\n entries => {\n if (entries[0]?.isIntersecting) fetchMoreRef.current?.();\n },\n { root: null, rootMargin: \"0px\", threshold: 0.1 }\n );\n observer.observe(node);\n observerRef.current = observer;\n },\n [isEnabled]\n );\n\n // Clean up observer on unmount\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return sentinelRef;\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\n\nimport { computeEffectiveItems } from \"src/components/Select/utils\";\nimport type { SelectOptionBase as MultiSelectOptionBase } from \"src/components/Select/types\";\n\nexport const CREATE_PREFIX = \"__create__:\";\n\ninterface UseCreatableItemsConfig {\n isCreatable: boolean;\n isGrouped: boolean;\n flatOptions: MultiSelectOptionBase[];\n selectedValues: string[];\n baseUiItems?: string[] | { label: string; items: string[] }[];\n onCreateOption?: (inputValue: string) => void;\n onChange?: (values: string[]) => void;\n onAsyncInputChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface UseCreatableItemsReturn {\n inputValue: string;\n showCreateOption: boolean;\n effectiveItems: string[] | { label: string; items: string[] }[] | undefined;\n creatableFilter: (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => boolean;\n handleInputValueChange: (value: string) => void;\n handleValueChange: (next: string[] | null) => void;\n}\n\nexport function useCreatableItems({\n isCreatable,\n isGrouped,\n flatOptions,\n selectedValues,\n baseUiItems,\n onCreateOption,\n onChange,\n onAsyncInputChange,\n children,\n}: UseCreatableItemsConfig): UseCreatableItemsReturn {\n const [inputValue, setInputValue] = useState(\"\");\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n onAsyncInputChange?.(value);\n },\n [onAsyncInputChange]\n );\n\n const trimmedInput = inputValue.trim();\n const showCreateOption = useMemo(() => {\n if (!isCreatable || trimmedInput.length === 0) return false;\n const lower = trimmedInput.toLowerCase();\n return (\n !flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n ) && !selectedValues.includes(trimmedInput)\n );\n }, [isCreatable, trimmedInput, flatOptions, selectedValues]);\n\n const effectiveItems = React.useMemo(\n () =>\n computeEffectiveItems(\n children,\n baseUiItems,\n showCreateOption,\n isGrouped,\n trimmedInput\n ),\n [baseUiItems, children, isGrouped, showCreateOption, trimmedInput]\n );\n\n // Custom filter: always pass the \"Create\" item through\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const handleValueChange = useCallback(\n (next: string[] | null) => {\n const raw = next ?? [];\n\n const createEntry = raw.find(v => v.startsWith(CREATE_PREFIX));\n if (createEntry) {\n const newValue = createEntry.slice(CREATE_PREFIX.length);\n const withNewValue = raw.map(v => (v === createEntry ? newValue : v));\n onCreateOption?.(newValue);\n onChange?.(withNewValue);\n return;\n }\n\n onChange?.(raw);\n },\n [onChange, onCreateOption]\n );\n\n return {\n inputValue,\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n };\n}\n","import type React from \"react\";\n\nimport type { ComboboxContent } from \"src/primitives/Combobox\";\nimport type { FieldLabel } from \"src/primitives/Field\";\n\nexport interface OptionBase {\n /** Display text for the option. */\n label: string;\n /** Unique value for the option. */\n value: string;\n /** Whether the option is disabled. */\n disabled?: boolean;\n}\n\nexport interface OptionGroup {\n /** Group heading text. */\n label: string;\n /** Options within this group. */\n options: OptionBase[];\n}\n\nexport type Option = OptionBase | OptionGroup;\n\nexport function isOptionGroup(opt: Option): opt is OptionGroup {\n return \"options\" in opt && Array.isArray(opt.options);\n}\n\nexport type SelectOptionBase = OptionBase;\nexport type SelectOptionGroup = OptionGroup;\nexport type SelectOption = Option;\n\ntype SelectSize = \"small\" | \"medium\" | \"large\";\n\ninterface SelectSharedProps {\n /** Unique identifier for the select. Auto-generated if omitted. */\n id?: string;\n /** Name attribute forwarded to the underlying input. */\n name?: string;\n /** Size of the trigger. */\n size?: SelectSize;\n /** Label displayed above the select. */\n label?: string;\n /** Error message displayed below the select. */\n error?: string;\n /** Help text displayed below the select. */\n helpText?: React.ReactNode;\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Flat or grouped option list. */\n options?: SelectOption[];\n /** Disable the select. */\n isDisabled?: boolean;\n /** Mark as required. */\n required?: boolean;\n /**\n * Enable search/filtering of options by typing in the input.\n * When false, the input is hidden and the trigger shows the selected label.\n * @default true\n */\n isSearchable?: boolean;\n /** Whether the first matching item is highlighted automatically. @default true */\n autoHighlight?: boolean;\n /** Callback fired when the dropdown opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /**\n * Positioning strategy for the dropdown content.\n * @deprecated The Combobox primitive always uses popper-style positioning.\n * Use `contentProps.side` and `contentProps.align` for positioning control.\n */\n position?: \"item-aligned\" | \"popper\";\n /** Show a clear/reset button when a value is selected. */\n isClearable?: boolean;\n /**\n * Allow creating new options by typing a value that doesn't exist.\n * Works in both single and multi mode.\n */\n isCreatable?: boolean;\n /**\n * Callback fired when a new option is created via the \"Create X\" item.\n * The parent should update the `options` list to include the new value.\n */\n onCreateOption?: (inputValue: string) => void;\n /**\n * Customize the label for the \"Create\" option in the dropdown.\n * @default (inputValue) => `Create \"${inputValue}\"`\n */\n formatCreateLabel?: (inputValue: string) => string;\n /**\n * Async function that fetches options based on the current input value.\n * Works in both single and multi mode.\n */\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n /**\n * Options to show before the user types anything.\n * When `true`, `loadOptions(\"\")` is called on mount.\n * @default false\n */\n defaultOptions?: boolean | SelectOptionBase[];\n /**\n * Cache results from `loadOptions` so repeated queries are instant.\n * @default false\n */\n cacheOptions?: boolean;\n /** Text shown while `loadOptions` is fetching. @default \"Loading…\" */\n loadingMessage?: string;\n /** Text displayed when no options match. @default \"No results found.\" */\n emptyMessage?: string;\n /**\n * Enable lazy loading of options as the user scrolls.\n * @default false\n */\n isAsyncLoadOptionEnabled?: boolean;\n /** Callback to load the next batch of options (lazy loading). */\n fetchMore?: () => void;\n /** Total number of options on the server (lazy loading). */\n totalOptionsCount?: number;\n /** Custom data-testid prefix for the component tree. */\n dataTestId?: string;\n /** Props forwarded to the FieldLabel. */\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n /** Props forwarded to the ComboboxContent. */\n contentProps?: Omit<\n React.ComponentProps<typeof ComboboxContent>,\n \"anchor\" | \"children\"\n >;\n /** Additional CSS class names for the outermost wrapper. */\n className?: string;\n /** Additional CSS class names for the input/trigger element. */\n inputClassName?: string;\n /** Children rendered inside the dropdown (overrides `options`). */\n children?: React.ReactNode;\n /**\n * Customize how each option is rendered. Receives the matched option (looked\n * up from `options` by value) and returns a ReactNode. Used in the dropdown\n * list and in the trigger (single-select label / multi-select chips).\n * String filtering still uses `option.label` for searchable behavior.\n */\n formatOptionLabel?: (option: SelectOptionBase) => React.ReactNode;\n}\n\ninterface SingleSelectProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. @default false */\n isMulti?: false;\n /** Controlled selected value. */\n value?: string;\n /** Default selected value (uncontrolled). */\n defaultValue?: string;\n /** Callback fired when value changes. */\n onChange?: (value: string) => void;\n}\n\ninterface MultiSelectVariantProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. */\n isMulti: true;\n /** Controlled selected values. */\n value?: string[];\n /** Default selected values (uncontrolled). */\n defaultValue?: string[];\n /** Callback fired when selected values change. */\n onChange?: (values: string[]) => void;\n /** Additional CSS class names for the chips container. */\n chipsClassName?: string;\n /** Hide the remove button on individual chips. */\n hideChipRemove?: boolean;\n}\n\nexport type SelectProps = SingleSelectProps | MultiSelectVariantProps;\n\nexport type MultiSelectProps = Extract<SelectProps, { isMulti: true }>;\n","import { CREATE_PREFIX } from \"./hooks/useCreatableItems\";\nimport { isOptionGroup } from \"./types\";\nimport type {\n SelectOption as MultiSelectOption,\n SelectOptionBase as MultiSelectOptionBase,\n} from \"./types\";\n\n/** Flatten grouped options into a flat lookup array. */\nexport function flattenOptions(\n options: MultiSelectOption[]\n): MultiSelectOptionBase[] {\n return options.flatMap(opt => (isOptionGroup(opt) ? opt.options : [opt]));\n}\n\n/** Check if any option is a group. */\nexport function hasGroups(options: MultiSelectOption[]): boolean {\n return options.some(isOptionGroup);\n}\n\n/** Convert options to base-ui `items` format for filtering support. */\nexport function toBaseUiItems(\n options: MultiSelectOption[]\n): string[] | { label: string; items: string[] }[] {\n if (hasGroups(options)) {\n return options.filter(isOptionGroup).map(g => ({\n label: g.label,\n items: g.options.map(o => o.value),\n }));\n }\n return (options as MultiSelectOptionBase[]).map(o => o.value);\n}\n\n/** Build the effective items array, appending a \"Create\" entry when needed. */\nexport function computeEffectiveItems(\n children: unknown,\n baseUiItems: string[] | { label: string; items: string[] }[] | undefined,\n showCreateOption: boolean,\n isGrouped: boolean,\n trimmedInput: string\n): string[] | { label: string; items: string[] }[] | undefined {\n if (children) return undefined;\n\n const createValue = showCreateOption\n ? `${CREATE_PREFIX}${trimmedInput}`\n : null;\n\n if (!baseUiItems && !createValue) return undefined;\n\n const base = baseUiItems ?? ([] as string[]);\n\n if (!createValue) return base;\n\n if (!isGrouped) {\n return [...(base as string[]), createValue];\n }\n\n return [\n ...(base as { label: string; items: string[] }[]),\n { label: \"\", items: [createValue] },\n ];\n}\n","import React from \"react\";\n\nimport { useAsyncOptions } from \"./useAsyncOptions\";\nimport { useLazyLoadSentinel } from \"./useLazyLoadSentinel\";\nimport {\n flattenOptions,\n hasGroups,\n toBaseUiItems,\n} from \"src/components/Select/utils\";\nimport type { SelectOption as MultiSelectOption } from \"src/components/Select/types\";\n\ninterface UseMultiSelectOptionsConfig {\n options?: MultiSelectOption[];\n loadOptions?: (\n inputValue: string\n ) => Promise<{ label: string; value: string; disabled?: boolean }[]>;\n defaultOptions?:\n | boolean\n | { label: string; value: string; disabled?: boolean }[];\n cacheOptions?: boolean;\n isAsyncLoadOptionEnabled?: boolean;\n fetchMore?: () => void;\n totalOptionsCount?: number;\n}\n\nexport function useMultiSelectOptions(props: UseMultiSelectOptionsConfig) {\n const isAsync = !!props.loadOptions;\n\n const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({\n loadOptions: props.loadOptions,\n defaultOptions: props.defaultOptions ?? false,\n cacheOptions: props.cacheOptions ?? false,\n });\n\n const resolvedOptions: MultiSelectOption[] = isAsync\n ? asyncOptions\n : (props.options ?? []);\n const flatOptions = flattenOptions(resolvedOptions);\n const isGrouped = hasGroups(resolvedOptions);\n\n const baseUiItems = React.useMemo(\n () =>\n resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined,\n [resolvedOptions]\n );\n\n const hasMoreLazy =\n (props.isAsyncLoadOptionEnabled ?? false) &&\n typeof props.totalOptionsCount === \"number\" &&\n flatOptions.length < props.totalOptionsCount;\n\n const loaderCallbackRef = useLazyLoadSentinel({\n fetchMore: props.fetchMore,\n isEnabled: props.isAsyncLoadOptionEnabled ?? false,\n });\n\n return {\n isAsync,\n resolvedOptions,\n flatOptions,\n isGrouped,\n isLoading,\n handleAsyncInputChange,\n baseUiItems,\n hasMoreLazy,\n loaderCallbackRef,\n };\n}\n","// SIZE_CONFIG is shared by both SelectCombobox (single-select) and\n// MultiSelectCombobox (multi-select). Keys mirror the MultiSelect constants\n// that previously lived in MultiSelect.constants.ts.\n//\n// Mobile (<768px) uses 16px input font-size to prevent iOS Safari auto-zoom\n// on focus. Desktop (md+) keeps the original text sizes. Chip sizing is\n// unchanged because chips are non-interactive badges that don't trigger\n// iOS zoom.\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { chips: string; input: string; chip: string; icon: string }\n> = {\n small: {\n chips: \"min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5\",\n input: \"text-base md:text-xs\",\n chip: \"h-4.5 text-[0.6875rem] px-1\",\n icon: \"size-3.5\",\n },\n medium: {\n chips: \"min-h-8 text-base md:text-sm gap-1 px-2.5 py-1\",\n input: \"text-base md:text-sm\",\n chip: \"h-5.25 text-xs px-1.5\",\n icon: \"size-4\",\n },\n large: {\n chips: \"min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5\",\n input: \"text-base md:text-sm\",\n chip: \"h-6 text-xs px-2\",\n icon: \"size-5\",\n },\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport type React from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { CREATE_PREFIX } from \"./useCreatableItems\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { SelectProps } from \"src/components/Select/types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nexport function useSelectState(props: SingleSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n formatOptionLabel,\n isClearable = false,\n isDisabled = false,\n required = false,\n isSearchable = true,\n autoHighlight = true,\n onOpenChange,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? \"\"\n );\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const handleValueChange = useCallback(\n (next: string | null) => {\n const raw = next ?? \"\";\n\n // Handle the creatable \"Create X\" option\n if (raw.startsWith(CREATE_PREFIX)) {\n const newValue = raw.slice(CREATE_PREFIX.length);\n onCreateOption?.(newValue);\n applyValue(newValue);\n return;\n }\n\n applyValue(raw);\n },\n [applyValue, onCreateOption]\n );\n\n const [inputValue, setInputValueState] = useState(\"\");\n const trimmedInput = inputValue.trim();\n\n const combinedHandleInputValueChange = useCallback(\n (value: string) => {\n setInputValueState(value);\n if (opt.isAsync) opt.handleAsyncInputChange(value);\n },\n [opt.isAsync, opt.handleAsyncInputChange]\n );\n\n const handleClear = useCallback(() => {\n applyValue(\"\");\n }, [applyValue]);\n\n const showCreateOption = useMemo(() => {\n if (\n !isCreatable ||\n trimmedInput.length === 0 ||\n currentValue === trimmedInput\n )\n return false;\n\n const lower = trimmedInput.toLowerCase();\n return !opt.flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n );\n }, [isCreatable, trimmedInput, currentValue, opt.flatOptions]);\n\n const effectiveItems = useMemo(() => {\n if (children) return undefined;\n const base = opt.baseUiItems;\n if (!showCreateOption) return base;\n const createValue = `${CREATE_PREFIX}${trimmedInput}`;\n if (!opt.isGrouped) {\n return [...((base as string[]) ?? []), createValue];\n }\n return [\n ...((base as { label: string; items: string[] }[]) ?? []),\n { label: \"\", items: [createValue] },\n ];\n }, [\n children,\n opt.baseUiItems,\n opt.isGrouped,\n showCreateOption,\n trimmedInput,\n ]);\n\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n const renderOption = useCallback<(val: string) => React.ReactNode>(\n val => {\n if (formatOptionLabel && !val.startsWith(CREATE_PREFIX)) {\n const option = flatOptionsMap.get(val);\n if (option) return formatOptionLabel(option);\n }\n return labelForValue(val);\n },\n [formatOptionLabel, flatOptionsMap, labelForValue]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n currentValue,\n effectiveItems,\n creatableFilter,\n handleValueChange,\n handleInputValueChange: combinedHandleInputValueChange,\n handleClear,\n showCreateOption,\n showClearButton,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n renderOption,\n flatOptionsMap,\n label,\n error,\n helpText,\n isDisabled,\n required,\n isSearchable,\n autoHighlight,\n onOpenChange,\n isClearable,\n };\n}\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport type React from \"react\";\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useCreatableItems, CREATE_PREFIX } from \"./useCreatableItems\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { MultiSelectProps } from \"src/components/Select/types\";\n\nexport function useMultiSelectState(props: MultiSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n formatOptionLabel,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? []\n );\n const selectedValues = isControlled ? valueProp : internalValue;\n\n const handleChange = useCallback(\n (values: string[]) => {\n setInternalValue(values);\n onChange?.(values);\n },\n [onChange]\n );\n\n const {\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n } = useCreatableItems({\n isCreatable,\n isGrouped: opt.isGrouped,\n flatOptions: opt.flatOptions,\n selectedValues,\n baseUiItems: opt.baseUiItems,\n onCreateOption,\n onChange: handleChange,\n onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,\n children,\n });\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n const renderOption = useCallback<(val: string) => React.ReactNode>(\n val => {\n if (formatOptionLabel && !val.startsWith(CREATE_PREFIX)) {\n const option = flatOptionsMap.get(val);\n if (option) return formatOptionLabel(option);\n }\n return labelForValue(val);\n },\n [formatOptionLabel, flatOptionsMap, labelForValue]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n selectedValues,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n showCreateOption,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n renderOption,\n flatOptionsMap,\n label,\n error,\n helpText,\n };\n}\n","import { useCallback, useState } from \"react\";\n\n/** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */\nexport function useComboboxAnchor(isSearchable: boolean) {\n const [anchorEl, setAnchorEl] = useState<HTMLDivElement | null>(null);\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (!isSearchable) {\n (e.currentTarget as HTMLElement).querySelector(\"input\")?.focus();\n }\n },\n [isSearchable]\n );\n\n return { anchorEl, setAnchorEl, handleClick };\n}\n","import type React from \"react\";\n\nimport { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"./hooks/useCreatableItems\";\nimport type { OptionBase } from \"./types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n renderOption: (val: string) => React.ReactNode;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n renderOption,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) && flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {renderOption(val)}\n </ComboboxItem>\n );\n}\n","import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n renderOption: (val: string) => React.ReactNode;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n renderOption,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n","import { forwardRef, useCallback } from \"react\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxTrigger,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { SelectComboboxProps } from \"./SelectCombobox.types\";\n\nexport const SelectCombobox = forwardRef<HTMLInputElement, SelectComboboxProps>(\n (\n {\n name,\n id,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n isCreatable,\n creatableFilter,\n currentValue,\n handleValueChange,\n handleInputValueChange,\n handleClear,\n onOpenChange,\n isDisabled,\n autoHighlight,\n required,\n showClearButton,\n sizeConfig,\n error,\n placeholder,\n ariaDescribedBy,\n testIdPrefix,\n inputClassName,\n contentProps,\n dropdownProps,\n children,\n },\n ref\n ) => {\n const { anchorEl, setAnchorEl, handleClick } =\n useComboboxAnchor(isSearchable);\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n handleClear();\n },\n [handleClear]\n );\n\n return (\n // @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props\n <Combobox\n name={name}\n {...(effectiveItems && !children\n ? {\n items: effectiveItems,\n itemToStringLabel: labelForValue as (val: unknown) => string,\n ...(!isSearchable || isAsync\n ? { filter: null }\n : isCreatable\n ? { filter: creatableFilter }\n : {}),\n }\n : {})}\n value={currentValue}\n onValueChange={handleValueChange as (next: unknown) => void}\n {...(isCreatable || isAsync\n ? { onInputValueChange: handleInputValueChange }\n : {})}\n onOpenChange={onOpenChange}\n disabled={isDisabled}\n autoHighlight={autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n sizeConfig.chips,\n !!error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n inputClassName\n )}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n {!isSearchable &&\n (currentValue ? (\n <span className=\"flex-1 truncate\">\n {renderOption(currentValue)}\n </span>\n ) : (\n <span className=\"flex-1 truncate text-muted-foreground\">\n {placeholder}\n </span>\n ))}\n\n <ComboboxChipsInput\n ref={ref}\n id={id}\n placeholder={\n isSearchable && !currentValue ? placeholder : undefined\n }\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={cn(\n sizeConfig.input,\n !isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={isDisabled}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-input` }\n : {})}\n />\n\n {showClearButton && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClearClick}\n >\n <XIcon className={sizeConfig.icon} />\n </button>\n )}\n\n <ComboboxTrigger\n className={cn(\n \"shrink-0 bg-transparent p-0 text-muted-foreground hover:bg-transparent\",\n sizeConfig.icon\n )}\n />\n </ComboboxChips>\n </div>\n\n <ComboboxContent anchor={anchorEl} {...contentProps}>\n <MultiSelectDropdown\n {...dropdownProps}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n >\n {children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\n\nSelectCombobox.displayName = \"SelectCombobox\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { MultiSelectComboboxProps } from \"./MultiSelectCombobox.types\";\n\nexport const MultiSelectCombobox = forwardRef<\n HTMLInputElement,\n MultiSelectComboboxProps\n>(\n (\n {\n name,\n id,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n isCreatable,\n creatableFilter,\n isControlled,\n valueProp,\n defaultValue,\n selectedValues,\n handleValueChange,\n handleInputValueChange,\n onOpenChange,\n isDisabled,\n autoHighlight,\n required,\n sizeConfig,\n error,\n chipsClassName,\n inputClassName,\n placeholder,\n hideChipRemove,\n ariaDescribedBy,\n testIdPrefix,\n contentProps,\n dropdownProps,\n children,\n },\n ref\n ) => {\n const { anchorEl, setAnchorEl, handleClick } =\n useComboboxAnchor(isSearchable);\n\n return (\n // @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props\n <Combobox\n multiple\n name={name}\n {...(effectiveItems && !children\n ? {\n items: effectiveItems,\n itemToStringLabel: labelForValue as (val: unknown) => string,\n ...(!isSearchable || isAsync\n ? { filter: null }\n : isCreatable\n ? { filter: creatableFilter }\n : {}),\n }\n : {})}\n {...(isControlled ? { value: valueProp } : { defaultValue })}\n onValueChange={handleValueChange as (...args: unknown[]) => void}\n {...(isCreatable || isAsync\n ? { onInputValueChange: handleInputValueChange }\n : {})}\n onOpenChange={onOpenChange}\n disabled={isDisabled}\n autoHighlight={autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n sizeConfig.chips,\n !!error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n chipsClassName,\n inputClassName\n )}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n {selectedValues.map(val => (\n <ComboboxChip\n key={val}\n className={sizeConfig.chip}\n showRemove={!hideChipRemove}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-chip` }\n : {})}\n >\n {renderOption(val)}\n </ComboboxChip>\n ))}\n <ComboboxChipsInput\n ref={ref}\n id={id}\n placeholder={\n isSearchable && selectedValues.length === 0\n ? placeholder\n : undefined\n }\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={cn(\n sizeConfig.input,\n !isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={isDisabled}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-input` }\n : {})}\n />\n </ComboboxChips>\n </div>\n <ComboboxContent anchor={anchorEl} {...contentProps}>\n <MultiSelectDropdown\n {...dropdownProps}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n >\n {children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\nMultiSelectCombobox.displayName = \"MultiSelectCombobox\";\n","import { forwardRef } from \"react\";\n\nimport { useSelectState } from \"./hooks/useSelectState\";\nimport { useMultiSelectState } from \"./hooks/useMultiSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { SelectCombobox } from \"./SelectCombobox\";\nimport { MultiSelectCombobox } from \"./MultiSelectCombobox\";\nimport type { SelectProps, MultiSelectProps } from \"./types\";\n\nexport type {\n SelectProps,\n SelectOption,\n SelectOptionBase,\n SelectOptionGroup,\n} from \"./types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst SingleSelectInner = forwardRef<HTMLInputElement, SingleSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n testIdPrefix,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n creatableFilter,\n isControlled,\n currentValue,\n handleValueChange,\n handleInputValueChange,\n handleClear,\n autoHighlight,\n showClearButton,\n sizeConfig,\n ariaDescribedBy,\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n } = useSelectState(props);\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <SelectCombobox\n ref={ref}\n name={props.name}\n id={id}\n effectiveItems={effectiveItems}\n labelForValue={labelForValue}\n renderOption={renderOption}\n isSearchable={isSearchable}\n isAsync={isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={creatableFilter}\n isControlled={isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n currentValue={currentValue}\n handleValueChange={handleValueChange}\n handleInputValueChange={handleInputValueChange}\n handleClear={handleClear}\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={autoHighlight}\n required={required}\n isClearable={props.isClearable ?? false}\n showClearButton={showClearButton}\n sizeConfig={sizeConfig}\n error={error}\n placeholder={props.placeholder ?? \"\"}\n ariaDescribedBy={ariaDescribedBy}\n testIdPrefix={testIdPrefix}\n inputClassName={props.inputClassName}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n }}\n >\n {props.children}\n </SelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nSingleSelectInner.displayName = \"SingleSelectInner\";\n\nconst MultiSelectInner = forwardRef<HTMLInputElement, MultiSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n testIdPrefix,\n effectiveItems,\n labelForValue,\n renderOption,\n isAsync,\n creatableFilter,\n isControlled,\n selectedValues,\n handleValueChange,\n handleInputValueChange,\n sizeConfig,\n ariaDescribedBy,\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n } = useMultiSelectState(props);\n const { isDisabled = false, required = false } = props;\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <MultiSelectCombobox\n ref={ref}\n name={props.name}\n id={id}\n effectiveItems={effectiveItems}\n labelForValue={labelForValue}\n renderOption={renderOption}\n isSearchable={props.isSearchable ?? true}\n isAsync={isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={creatableFilter}\n isControlled={isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n selectedValues={selectedValues}\n handleValueChange={handleValueChange as (...args: unknown[]) => void}\n handleInputValueChange={\n handleInputValueChange as (...args: unknown[]) => void\n }\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={props.autoHighlight ?? true}\n sizeConfig={sizeConfig}\n error={error}\n chipsClassName={props.chipsClassName}\n inputClassName={props.inputClassName}\n placeholder={props.placeholder ?? \"\"}\n hideChipRemove={props.hideChipRemove ?? false}\n ariaDescribedBy={ariaDescribedBy}\n required={required}\n testIdPrefix={testIdPrefix}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n }}\n >\n {props.children}\n </MultiSelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nMultiSelectInner.displayName = \"MultiSelectInner\";\n\nconst Select = forwardRef<HTMLInputElement, SelectProps>((props, ref) => {\n if (props.isMulti === true) {\n return <MultiSelectInner {...(props as MultiSelectProps)} ref={ref} />;\n }\n return <SingleSelectInner {...(props as SingleSelectProps)} ref={ref} />;\n});\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"names":["React","defaultFormatCreateLabel","label","XIcon"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select-BJs-J8fs.js","sources":["../../src/utils/hyphenize.ts","../../src/utils/fieldIds.ts","../../src/components/Select/hooks/useAsyncOptions.ts","../../src/components/Select/hooks/useLazyLoadSentinel.ts","../../src/components/Select/hooks/useCreatableItems.ts","../../src/components/Select/types.ts","../../src/components/Select/utils.ts","../../src/components/Select/hooks/useMultiSelectOptions.ts","../../src/components/Select/constants.ts","../../src/components/Select/hooks/useSelectState.ts","../../src/components/Select/hooks/useMultiSelectState.ts","../../src/hooks/useComboboxAnchor.ts","../../src/components/Select/OptionItem.tsx","../../src/components/Select/MultiSelectDropdown.tsx","../../src/components/Select/SelectCombobox.tsx","../../src/components/Select/MultiSelectCombobox.tsx","../../src/components/Select/Select.tsx"],"sourcesContent":["export function hyphenize(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .toLowerCase();\n}\n","import { hyphenize } from \"./hyphenize\";\n\nexport function buildAriaDescribedBy(\n error: string,\n errorId: string,\n helpText: React.ReactNode,\n helpTextId: string\n): string | undefined {\n return (\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n );\n}\n\nexport function buildTestIdPrefix(\n dataTestId: string | undefined,\n label: string\n): string | undefined {\n return dataTestId ?? (label ? hyphenize(label) : undefined);\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { SelectOptionBase } from \"src/components/Select/types\";\n\ninterface UseAsyncOptionsConfig {\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n defaultOptions?: boolean | SelectOptionBase[];\n cacheOptions?: boolean;\n}\n\ninterface UseAsyncOptionsReturn {\n asyncOptions: SelectOptionBase[];\n isLoading: boolean;\n handleAsyncInputChange: (value: string) => void;\n}\n\nexport function useAsyncOptions({\n loadOptions,\n defaultOptions = false,\n cacheOptions = false,\n}: UseAsyncOptionsConfig): UseAsyncOptionsReturn {\n const [asyncOptions, setAsyncOptions] = useState<SelectOptionBase[]>(() =>\n Array.isArray(defaultOptions) ? defaultOptions : []\n );\n const [isLoading, setIsLoading] = useState(false);\n const cacheRef = useRef<Record<string, SelectOptionBase[]>>({});\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestRequestRef = useRef(0);\n const mountedRef = useRef(true);\n\n // Load default options on mount when `defaultOptions === true`\n useEffect(() => {\n if (!loadOptions || defaultOptions !== true) return;\n let cancelled = false;\n setIsLoading(true);\n loadOptions(\"\")\n .then(results => {\n if (cancelled) return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[\"\"] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (!cancelled) setIsLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n // Clean up debounce timer and mark unmounted\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, []);\n\n const handleAsyncInputChange = useCallback(\n (value: string) => {\n if (!loadOptions) return;\n\n const query = value.trim();\n\n // Check cache first\n if (cacheOptions && query in cacheRef.current) {\n setAsyncOptions(cacheRef.current[query]);\n return;\n }\n\n // Debounce the fetch\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const requestId = ++latestRequestRef.current;\n setIsLoading(true);\n loadOptions(query)\n .then(results => {\n if (requestId !== latestRequestRef.current || !mountedRef.current)\n return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[query] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (requestId === latestRequestRef.current && mountedRef.current) {\n setIsLoading(false);\n }\n });\n }, 300);\n },\n [loadOptions, cacheOptions]\n );\n\n return { asyncOptions, isLoading, handleAsyncInputChange };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\n\ninterface UseLazyLoadSentinelConfig {\n fetchMore?: () => void;\n isEnabled: boolean;\n}\n\nexport function useLazyLoadSentinel({\n fetchMore,\n isEnabled,\n}: UseLazyLoadSentinelConfig) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const fetchMoreRef = useRef(fetchMore);\n fetchMoreRef.current = fetchMore;\n\n const sentinelRef = useCallback(\n (node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (!node || !isEnabled) return;\n\n const observer = new IntersectionObserver(\n entries => {\n if (entries[0]?.isIntersecting) fetchMoreRef.current?.();\n },\n { root: null, rootMargin: \"0px\", threshold: 0.1 }\n );\n observer.observe(node);\n observerRef.current = observer;\n },\n [isEnabled]\n );\n\n // Clean up observer on unmount\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return sentinelRef;\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\n\nimport { computeEffectiveItems } from \"src/components/Select/utils\";\nimport type { SelectOptionBase as MultiSelectOptionBase } from \"src/components/Select/types\";\n\nexport const CREATE_PREFIX = \"__create__:\";\n\ninterface UseCreatableItemsConfig {\n isCreatable: boolean;\n isGrouped: boolean;\n flatOptions: MultiSelectOptionBase[];\n selectedValues: string[];\n baseUiItems?: string[] | { label: string; items: string[] }[];\n onCreateOption?: (inputValue: string) => void;\n onChange?: (values: string[]) => void;\n onAsyncInputChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface UseCreatableItemsReturn {\n inputValue: string;\n showCreateOption: boolean;\n effectiveItems: string[] | { label: string; items: string[] }[] | undefined;\n creatableFilter: (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => boolean;\n handleInputValueChange: (value: string) => void;\n handleValueChange: (next: string[] | null) => void;\n}\n\nexport function useCreatableItems({\n isCreatable,\n isGrouped,\n flatOptions,\n selectedValues,\n baseUiItems,\n onCreateOption,\n onChange,\n onAsyncInputChange,\n children,\n}: UseCreatableItemsConfig): UseCreatableItemsReturn {\n const [inputValue, setInputValue] = useState(\"\");\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n onAsyncInputChange?.(value);\n },\n [onAsyncInputChange]\n );\n\n const trimmedInput = inputValue.trim();\n const showCreateOption = useMemo(() => {\n if (!isCreatable || trimmedInput.length === 0) return false;\n const lower = trimmedInput.toLowerCase();\n return (\n !flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n ) && !selectedValues.includes(trimmedInput)\n );\n }, [isCreatable, trimmedInput, flatOptions, selectedValues]);\n\n const effectiveItems = React.useMemo(\n () =>\n computeEffectiveItems(\n children,\n baseUiItems,\n showCreateOption,\n isGrouped,\n trimmedInput\n ),\n [baseUiItems, children, isGrouped, showCreateOption, trimmedInput]\n );\n\n // Custom filter: always pass the \"Create\" item through\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const handleValueChange = useCallback(\n (next: string[] | null) => {\n const raw = next ?? [];\n\n const createEntry = raw.find(v => v.startsWith(CREATE_PREFIX));\n if (createEntry) {\n const newValue = createEntry.slice(CREATE_PREFIX.length);\n const withNewValue = raw.map(v => (v === createEntry ? newValue : v));\n onCreateOption?.(newValue);\n onChange?.(withNewValue);\n return;\n }\n\n onChange?.(raw);\n },\n [onChange, onCreateOption]\n );\n\n return {\n inputValue,\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n };\n}\n","import type React from \"react\";\n\nimport type { ComboboxContent } from \"src/primitives/Combobox\";\nimport type { FieldLabel } from \"src/primitives/Field\";\n\nexport interface OptionBase {\n /** Display text for the option. */\n label: string;\n /** Unique value for the option. */\n value: string;\n /** Whether the option is disabled. */\n disabled?: boolean;\n}\n\nexport interface OptionGroup {\n /** Group heading text. */\n label: string;\n /** Options within this group. */\n options: OptionBase[];\n}\n\nexport type Option = OptionBase | OptionGroup;\n\nexport function isOptionGroup(opt: Option): opt is OptionGroup {\n return \"options\" in opt && Array.isArray(opt.options);\n}\n\nexport type SelectOptionBase = OptionBase;\nexport type SelectOptionGroup = OptionGroup;\nexport type SelectOption = Option;\n\ntype SelectSize = \"small\" | \"medium\" | \"large\";\n\ninterface SelectSharedProps {\n /** Unique identifier for the select. Auto-generated if omitted. */\n id?: string;\n /** Name attribute forwarded to the underlying input. */\n name?: string;\n /** Size of the trigger. */\n size?: SelectSize;\n /** Label displayed above the select. */\n label?: string;\n /** Error message displayed below the select. */\n error?: string;\n /** Help text displayed below the select. */\n helpText?: React.ReactNode;\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Flat or grouped option list. */\n options?: SelectOption[];\n /** Disable the select. */\n isDisabled?: boolean;\n /** Mark as required. */\n required?: boolean;\n /**\n * Enable search/filtering of options by typing in the input.\n * When false, the input is hidden and the trigger shows the selected label.\n * @default true\n */\n isSearchable?: boolean;\n /** Whether the first matching item is highlighted automatically. @default true */\n autoHighlight?: boolean;\n /** Callback fired when the dropdown opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /**\n * Positioning strategy for the dropdown content.\n * @deprecated The Combobox primitive always uses popper-style positioning.\n * Use `contentProps.side` and `contentProps.align` for positioning control.\n */\n position?: \"item-aligned\" | \"popper\";\n /** Show a clear/reset button when a value is selected. */\n isClearable?: boolean;\n /**\n * Allow creating new options by typing a value that doesn't exist.\n * Works in both single and multi mode.\n */\n isCreatable?: boolean;\n /**\n * Callback fired when a new option is created via the \"Create X\" item.\n * The parent should update the `options` list to include the new value.\n */\n onCreateOption?: (inputValue: string) => void;\n /**\n * Customize the label for the \"Create\" option in the dropdown.\n * @default (inputValue) => `Create \"${inputValue}\"`\n */\n formatCreateLabel?: (inputValue: string) => string;\n /**\n * Async function that fetches options based on the current input value.\n * Works in both single and multi mode.\n */\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n /**\n * Options to show before the user types anything.\n * When `true`, `loadOptions(\"\")` is called on mount.\n * @default false\n */\n defaultOptions?: boolean | SelectOptionBase[];\n /**\n * Cache results from `loadOptions` so repeated queries are instant.\n * @default false\n */\n cacheOptions?: boolean;\n /** Text shown while `loadOptions` is fetching. @default \"Loading…\" */\n loadingMessage?: string;\n /** Text displayed when no options match. @default \"No results found.\" */\n emptyMessage?: string;\n /**\n * Enable lazy loading of options as the user scrolls.\n * @default false\n */\n isAsyncLoadOptionEnabled?: boolean;\n /** Callback to load the next batch of options (lazy loading). */\n fetchMore?: () => void;\n /** Total number of options on the server (lazy loading). */\n totalOptionsCount?: number;\n /** Custom data-testid prefix for the component tree. */\n dataTestId?: string;\n /** Props forwarded to the FieldLabel. */\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n /** Props forwarded to the ComboboxContent. */\n contentProps?: Omit<\n React.ComponentProps<typeof ComboboxContent>,\n \"anchor\" | \"children\"\n >;\n /** Additional CSS class names for the outermost wrapper. */\n className?: string;\n /** Additional CSS class names for the input/trigger element. */\n inputClassName?: string;\n /** Children rendered inside the dropdown (overrides `options`). */\n children?: React.ReactNode;\n /**\n * Customize how each option is rendered. Receives the matched option (looked\n * up from `options` by value) and returns a ReactNode. Used in the dropdown\n * list and in the trigger (single-select label / multi-select chips).\n * String filtering still uses `option.label` for searchable behavior.\n */\n formatOptionLabel?: (option: SelectOptionBase) => React.ReactNode;\n}\n\ninterface SingleSelectProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. @default false */\n isMulti?: false;\n /** Controlled selected value. */\n value?: string;\n /** Default selected value (uncontrolled). */\n defaultValue?: string;\n /** Callback fired when value changes. */\n onChange?: (value: string) => void;\n}\n\ninterface MultiSelectVariantProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. */\n isMulti: true;\n /** Controlled selected values. */\n value?: string[];\n /** Default selected values (uncontrolled). */\n defaultValue?: string[];\n /** Callback fired when selected values change. */\n onChange?: (values: string[]) => void;\n /** Additional CSS class names for the chips container. */\n chipsClassName?: string;\n /** Hide the remove button on individual chips. */\n hideChipRemove?: boolean;\n}\n\nexport type SelectProps = SingleSelectProps | MultiSelectVariantProps;\n\nexport type MultiSelectProps = Extract<SelectProps, { isMulti: true }>;\n","import { CREATE_PREFIX } from \"./hooks/useCreatableItems\";\nimport { isOptionGroup } from \"./types\";\nimport type {\n SelectOption as MultiSelectOption,\n SelectOptionBase as MultiSelectOptionBase,\n} from \"./types\";\n\n/** Flatten grouped options into a flat lookup array. */\nexport function flattenOptions(\n options: MultiSelectOption[]\n): MultiSelectOptionBase[] {\n return options.flatMap(opt => (isOptionGroup(opt) ? opt.options : [opt]));\n}\n\n/** Check if any option is a group. */\nexport function hasGroups(options: MultiSelectOption[]): boolean {\n return options.some(isOptionGroup);\n}\n\n/** Convert options to base-ui `items` format for filtering support. */\nexport function toBaseUiItems(\n options: MultiSelectOption[]\n): string[] | { label: string; items: string[] }[] {\n if (hasGroups(options)) {\n return options.filter(isOptionGroup).map(g => ({\n label: g.label,\n items: g.options.map(o => o.value),\n }));\n }\n return (options as MultiSelectOptionBase[]).map(o => o.value);\n}\n\n/** Build the effective items array, appending a \"Create\" entry when needed. */\nexport function computeEffectiveItems(\n children: unknown,\n baseUiItems: string[] | { label: string; items: string[] }[] | undefined,\n showCreateOption: boolean,\n isGrouped: boolean,\n trimmedInput: string\n): string[] | { label: string; items: string[] }[] | undefined {\n if (children) return undefined;\n\n const createValue = showCreateOption\n ? `${CREATE_PREFIX}${trimmedInput}`\n : null;\n\n if (!baseUiItems && !createValue) return undefined;\n\n const base = baseUiItems ?? ([] as string[]);\n\n if (!createValue) return base;\n\n if (!isGrouped) {\n return [...(base as string[]), createValue];\n }\n\n return [\n ...(base as { label: string; items: string[] }[]),\n { label: \"\", items: [createValue] },\n ];\n}\n","import React from \"react\";\n\nimport { useAsyncOptions } from \"./useAsyncOptions\";\nimport { useLazyLoadSentinel } from \"./useLazyLoadSentinel\";\nimport {\n flattenOptions,\n hasGroups,\n toBaseUiItems,\n} from \"src/components/Select/utils\";\nimport type { SelectOption as MultiSelectOption } from \"src/components/Select/types\";\n\ninterface UseMultiSelectOptionsConfig {\n options?: MultiSelectOption[];\n loadOptions?: (\n inputValue: string\n ) => Promise<{ label: string; value: string; disabled?: boolean }[]>;\n defaultOptions?:\n | boolean\n | { label: string; value: string; disabled?: boolean }[];\n cacheOptions?: boolean;\n isAsyncLoadOptionEnabled?: boolean;\n fetchMore?: () => void;\n totalOptionsCount?: number;\n}\n\nexport function useMultiSelectOptions(props: UseMultiSelectOptionsConfig) {\n const isAsync = !!props.loadOptions;\n\n const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({\n loadOptions: props.loadOptions,\n defaultOptions: props.defaultOptions ?? false,\n cacheOptions: props.cacheOptions ?? false,\n });\n\n const resolvedOptions: MultiSelectOption[] = isAsync\n ? asyncOptions\n : (props.options ?? []);\n const flatOptions = flattenOptions(resolvedOptions);\n const isGrouped = hasGroups(resolvedOptions);\n\n const baseUiItems = React.useMemo(\n () =>\n resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined,\n [resolvedOptions]\n );\n\n const hasMoreLazy =\n (props.isAsyncLoadOptionEnabled ?? false) &&\n typeof props.totalOptionsCount === \"number\" &&\n flatOptions.length < props.totalOptionsCount;\n\n const loaderCallbackRef = useLazyLoadSentinel({\n fetchMore: props.fetchMore,\n isEnabled: props.isAsyncLoadOptionEnabled ?? false,\n });\n\n return {\n isAsync,\n resolvedOptions,\n flatOptions,\n isGrouped,\n isLoading,\n handleAsyncInputChange,\n baseUiItems,\n hasMoreLazy,\n loaderCallbackRef,\n };\n}\n","// SIZE_CONFIG is shared by both SelectCombobox (single-select) and\n// MultiSelectCombobox (multi-select). Keys mirror the MultiSelect constants\n// that previously lived in MultiSelect.constants.ts.\n//\n// Mobile (<768px) uses 16px input font-size to prevent iOS Safari auto-zoom\n// on focus. Desktop (md+) keeps the original text sizes. Chip sizing is\n// unchanged because chips are non-interactive badges that don't trigger\n// iOS zoom.\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { chips: string; input: string; chip: string; icon: string }\n> = {\n small: {\n chips: \"min-h-8 md:min-h-7 text-base md:text-xs gap-0.5 px-1 py-0.5\",\n input: \"text-base md:text-xs\",\n chip: \"h-4.5 text-[0.6875rem] px-1\",\n icon: \"size-3.5\",\n },\n medium: {\n chips: \"min-h-8 text-base md:text-sm gap-1 px-2.5 py-1\",\n input: \"text-base md:text-sm\",\n chip: \"h-5.25 text-xs px-1.5\",\n icon: \"size-4\",\n },\n large: {\n chips: \"min-h-10 text-base md:text-sm gap-1 px-2.5 py-1.5\",\n input: \"text-base md:text-sm\",\n chip: \"h-6 text-xs px-2\",\n icon: \"size-5\",\n },\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport type React from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { CREATE_PREFIX } from \"./useCreatableItems\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { SelectProps } from \"src/components/Select/types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nexport function useSelectState(props: SingleSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n formatOptionLabel,\n isClearable = false,\n isDisabled = false,\n required = false,\n isSearchable = true,\n autoHighlight = true,\n onOpenChange,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? \"\"\n );\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const handleValueChange = useCallback(\n (next: string | null) => {\n const raw = next ?? \"\";\n\n // Handle the creatable \"Create X\" option\n if (raw.startsWith(CREATE_PREFIX)) {\n const newValue = raw.slice(CREATE_PREFIX.length);\n onCreateOption?.(newValue);\n applyValue(newValue);\n return;\n }\n\n applyValue(raw);\n },\n [applyValue, onCreateOption]\n );\n\n const [inputValue, setInputValueState] = useState(\"\");\n const trimmedInput = inputValue.trim();\n\n const combinedHandleInputValueChange = useCallback(\n (value: string) => {\n setInputValueState(value);\n if (opt.isAsync) opt.handleAsyncInputChange(value);\n },\n [opt.isAsync, opt.handleAsyncInputChange]\n );\n\n const handleClear = useCallback(() => {\n applyValue(\"\");\n }, [applyValue]);\n\n const showCreateOption = useMemo(() => {\n if (\n !isCreatable ||\n trimmedInput.length === 0 ||\n currentValue === trimmedInput\n )\n return false;\n\n const lower = trimmedInput.toLowerCase();\n return !opt.flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n );\n }, [isCreatable, trimmedInput, currentValue, opt.flatOptions]);\n\n const effectiveItems = useMemo(() => {\n if (children) return undefined;\n const base = opt.baseUiItems;\n if (!showCreateOption) return base;\n const createValue = `${CREATE_PREFIX}${trimmedInput}`;\n if (!opt.isGrouped) {\n return [...((base as string[]) ?? []), createValue];\n }\n return [\n ...((base as { label: string; items: string[] }[]) ?? []),\n { label: \"\", items: [createValue] },\n ];\n }, [\n children,\n opt.baseUiItems,\n opt.isGrouped,\n showCreateOption,\n trimmedInput,\n ]);\n\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n const renderOption = useCallback<(val: string) => React.ReactNode>(\n val => {\n if (formatOptionLabel && !val.startsWith(CREATE_PREFIX)) {\n const option = flatOptionsMap.get(val);\n if (option) return formatOptionLabel(option);\n }\n return labelForValue(val);\n },\n [formatOptionLabel, flatOptionsMap, labelForValue]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n currentValue,\n effectiveItems,\n creatableFilter,\n handleValueChange,\n handleInputValueChange: combinedHandleInputValueChange,\n handleClear,\n showCreateOption,\n showClearButton,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n renderOption,\n flatOptionsMap,\n label,\n error,\n helpText,\n isDisabled,\n required,\n isSearchable,\n autoHighlight,\n onOpenChange,\n isClearable,\n };\n}\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport type React from \"react\";\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useCreatableItems, CREATE_PREFIX } from \"./useCreatableItems\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { MultiSelectProps } from \"src/components/Select/types\";\n\nexport function useMultiSelectState(props: MultiSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n formatOptionLabel,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? []\n );\n const selectedValues = isControlled ? valueProp : internalValue;\n\n const handleChange = useCallback(\n (values: string[]) => {\n setInternalValue(values);\n onChange?.(values);\n },\n [onChange]\n );\n\n const {\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n } = useCreatableItems({\n isCreatable,\n isGrouped: opt.isGrouped,\n flatOptions: opt.flatOptions,\n selectedValues,\n baseUiItems: opt.baseUiItems,\n onCreateOption,\n onChange: handleChange,\n onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,\n children,\n });\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n const renderOption = useCallback<(val: string) => React.ReactNode>(\n val => {\n if (formatOptionLabel && !val.startsWith(CREATE_PREFIX)) {\n const option = flatOptionsMap.get(val);\n if (option) return formatOptionLabel(option);\n }\n return labelForValue(val);\n },\n [formatOptionLabel, flatOptionsMap, labelForValue]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n selectedValues,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n showCreateOption,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n renderOption,\n flatOptionsMap,\n label,\n error,\n helpText,\n };\n}\n","import { useCallback, useState } from \"react\";\n\n/** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */\nexport function useComboboxAnchor(isSearchable: boolean) {\n const [anchorEl, setAnchorEl] = useState<HTMLDivElement | null>(null);\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (!isSearchable) {\n (e.currentTarget as HTMLElement).querySelector(\"input\")?.focus();\n }\n },\n [isSearchable]\n );\n\n return { anchorEl, setAnchorEl, handleClick };\n}\n","import type React from \"react\";\n\nimport { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"./hooks/useCreatableItems\";\nimport type { OptionBase } from \"./types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n renderOption: (val: string) => React.ReactNode;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n renderOption,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) && flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {renderOption(val)}\n </ComboboxItem>\n );\n}\n","import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n renderOption: (val: string) => React.ReactNode;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n renderOption,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n","import { forwardRef, useCallback } from \"react\";\nimport { XIcon } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxTrigger,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { SelectComboboxProps } from \"./SelectCombobox.types\";\n\nexport const SelectCombobox = forwardRef<HTMLInputElement, SelectComboboxProps>(\n (\n {\n name,\n id,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n isCreatable,\n creatableFilter,\n currentValue,\n handleValueChange,\n handleInputValueChange,\n handleClear,\n onOpenChange,\n isDisabled,\n autoHighlight,\n required,\n showClearButton,\n sizeConfig,\n error,\n placeholder,\n ariaDescribedBy,\n testIdPrefix,\n inputClassName,\n contentProps,\n dropdownProps,\n children,\n },\n ref\n ) => {\n const { anchorEl, setAnchorEl, handleClick } =\n useComboboxAnchor(isSearchable);\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n event.preventDefault();\n handleClear();\n },\n [handleClear]\n );\n\n return (\n // @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props\n <Combobox\n name={name}\n {...(effectiveItems && !children\n ? {\n items: effectiveItems,\n itemToStringLabel: labelForValue as (val: unknown) => string,\n ...(!isSearchable || isAsync\n ? { filter: null }\n : isCreatable\n ? { filter: creatableFilter }\n : {}),\n }\n : {})}\n value={currentValue}\n onValueChange={handleValueChange as (next: unknown) => void}\n {...(isCreatable || isAsync\n ? { onInputValueChange: handleInputValueChange }\n : {})}\n onOpenChange={onOpenChange}\n disabled={isDisabled}\n autoHighlight={autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n sizeConfig.chips,\n !!error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n inputClassName\n )}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n {!isSearchable &&\n (currentValue ? (\n <span className=\"flex-1 truncate\">\n {renderOption(currentValue)}\n </span>\n ) : (\n <span className=\"flex-1 truncate text-muted-foreground\">\n {placeholder}\n </span>\n ))}\n\n <ComboboxChipsInput\n ref={ref}\n id={id}\n placeholder={\n isSearchable && !currentValue ? placeholder : undefined\n }\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={cn(\n sizeConfig.input,\n !isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={isDisabled}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-input` }\n : {})}\n />\n\n {showClearButton && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClearClick}\n >\n <XIcon className={sizeConfig.icon} />\n </button>\n )}\n\n <ComboboxTrigger\n className={cn(\n \"shrink-0 bg-transparent p-0 text-muted-foreground hover:bg-transparent\",\n sizeConfig.icon\n )}\n />\n </ComboboxChips>\n </div>\n\n <ComboboxContent anchor={anchorEl} {...contentProps}>\n <MultiSelectDropdown\n {...dropdownProps}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n >\n {children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\n\nSelectCombobox.displayName = \"SelectCombobox\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { MultiSelectComboboxProps } from \"./MultiSelectCombobox.types\";\n\nexport const MultiSelectCombobox = forwardRef<\n HTMLInputElement,\n MultiSelectComboboxProps\n>(\n (\n {\n name,\n id,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n isCreatable,\n creatableFilter,\n isControlled,\n valueProp,\n defaultValue,\n selectedValues,\n handleValueChange,\n handleInputValueChange,\n onOpenChange,\n isDisabled,\n autoHighlight,\n required,\n sizeConfig,\n error,\n chipsClassName,\n inputClassName,\n placeholder,\n hideChipRemove,\n ariaDescribedBy,\n testIdPrefix,\n contentProps,\n dropdownProps,\n children,\n },\n ref\n ) => {\n const { anchorEl, setAnchorEl, handleClick } =\n useComboboxAnchor(isSearchable);\n\n return (\n // @ts-expect-error — conditional spread creates a union that TS cannot narrow to the Combobox discriminated-union props\n <Combobox\n multiple\n name={name}\n {...(effectiveItems && !children\n ? {\n items: effectiveItems,\n itemToStringLabel: labelForValue as (val: unknown) => string,\n ...(!isSearchable || isAsync\n ? { filter: null }\n : isCreatable\n ? { filter: creatableFilter }\n : {}),\n }\n : {})}\n {...(isControlled ? { value: valueProp } : { defaultValue })}\n onValueChange={handleValueChange as (...args: unknown[]) => void}\n {...(isCreatable || isAsync\n ? { onInputValueChange: handleInputValueChange }\n : {})}\n onOpenChange={onOpenChange}\n disabled={isDisabled}\n autoHighlight={autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n sizeConfig.chips,\n !!error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n chipsClassName,\n inputClassName\n )}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container` }\n : {})}\n >\n {selectedValues.map(val => (\n <ComboboxChip\n key={val}\n className={sizeConfig.chip}\n showRemove={!hideChipRemove}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-chip` }\n : {})}\n >\n {renderOption(val)}\n </ComboboxChip>\n ))}\n <ComboboxChipsInput\n ref={ref}\n id={id}\n placeholder={\n isSearchable && selectedValues.length === 0\n ? placeholder\n : undefined\n }\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={cn(\n sizeConfig.input,\n !isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={isDisabled}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-input` }\n : {})}\n />\n </ComboboxChips>\n </div>\n <ComboboxContent anchor={anchorEl} {...contentProps}>\n <MultiSelectDropdown\n {...dropdownProps}\n renderOption={renderOption}\n testIdPrefix={testIdPrefix}\n >\n {children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\nMultiSelectCombobox.displayName = \"MultiSelectCombobox\";\n","import { forwardRef } from \"react\";\n\nimport { useSelectState } from \"./hooks/useSelectState\";\nimport { useMultiSelectState } from \"./hooks/useMultiSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { SelectCombobox } from \"./SelectCombobox\";\nimport { MultiSelectCombobox } from \"./MultiSelectCombobox\";\nimport type { SelectProps, MultiSelectProps } from \"./types\";\n\nexport type {\n SelectProps,\n SelectOption,\n SelectOptionBase,\n SelectOptionGroup,\n} from \"./types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst SingleSelectInner = forwardRef<HTMLInputElement, SingleSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n testIdPrefix,\n effectiveItems,\n labelForValue,\n renderOption,\n isSearchable,\n isAsync,\n creatableFilter,\n isControlled,\n currentValue,\n handleValueChange,\n handleInputValueChange,\n handleClear,\n autoHighlight,\n showClearButton,\n sizeConfig,\n ariaDescribedBy,\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n } = useSelectState(props);\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <SelectCombobox\n ref={ref}\n name={props.name}\n id={id}\n effectiveItems={effectiveItems}\n labelForValue={labelForValue}\n renderOption={renderOption}\n isSearchable={isSearchable}\n isAsync={isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={creatableFilter}\n isControlled={isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n currentValue={currentValue}\n handleValueChange={handleValueChange}\n handleInputValueChange={handleInputValueChange}\n handleClear={handleClear}\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={autoHighlight}\n required={required}\n isClearable={props.isClearable ?? false}\n showClearButton={showClearButton}\n sizeConfig={sizeConfig}\n error={error}\n placeholder={props.placeholder ?? \"\"}\n ariaDescribedBy={ariaDescribedBy}\n testIdPrefix={testIdPrefix}\n inputClassName={props.inputClassName}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n }}\n >\n {props.children}\n </SelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nSingleSelectInner.displayName = \"SingleSelectInner\";\n\nconst MultiSelectInner = forwardRef<HTMLInputElement, MultiSelectProps>(\n (props, ref) => {\n const {\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n testIdPrefix,\n effectiveItems,\n labelForValue,\n renderOption,\n isAsync,\n creatableFilter,\n isControlled,\n selectedValues,\n handleValueChange,\n handleInputValueChange,\n sizeConfig,\n ariaDescribedBy,\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n } = useMultiSelectState(props);\n const { isDisabled = false, required = false } = props;\n\n return (\n <SelectFieldWrapper\n id={id}\n label={label}\n error={error}\n helpText={helpText}\n errorId={errorId}\n helpTextId={helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <MultiSelectCombobox\n ref={ref}\n name={props.name}\n id={id}\n effectiveItems={effectiveItems}\n labelForValue={labelForValue}\n renderOption={renderOption}\n isSearchable={props.isSearchable ?? true}\n isAsync={isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={creatableFilter}\n isControlled={isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n selectedValues={selectedValues}\n handleValueChange={handleValueChange as (...args: unknown[]) => void}\n handleInputValueChange={\n handleInputValueChange as (...args: unknown[]) => void\n }\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={props.autoHighlight ?? true}\n sizeConfig={sizeConfig}\n error={error}\n chipsClassName={props.chipsClassName}\n inputClassName={props.inputClassName}\n placeholder={props.placeholder ?? \"\"}\n hideChipRemove={props.hideChipRemove ?? false}\n ariaDescribedBy={ariaDescribedBy}\n required={required}\n testIdPrefix={testIdPrefix}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption,\n hasMoreLazy,\n loaderCallbackRef,\n }}\n >\n {props.children}\n </MultiSelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nMultiSelectInner.displayName = \"MultiSelectInner\";\n\nconst Select = forwardRef<HTMLInputElement, SelectProps>((props, ref) => {\n if (props.isMulti === true) {\n return <MultiSelectInner {...(props as MultiSelectProps)} ref={ref} />;\n }\n return <SingleSelectInner {...(props as SingleSelectProps)} ref={ref} />;\n});\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"names":["useState","useRef","useEffect","useCallback","useMemo","React","defaultFormatCreateLabel","useId","label","jsx","ComboboxItem","jsxs","ComboboxList","ComboboxEmpty","ComboboxCollection","ComboboxGroup","ComboboxLabel","Spinner","forwardRef","Combobox","ComboboxChips","cn","ComboboxChipsInput","XIcon","ComboboxTrigger","ComboboxContent","ComboboxChip","SelectFieldWrapper"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */
2
- export declare function useComboboxAnchor(isSearchable: boolean): {
3
- anchorEl: HTMLDivElement | null;
4
- setAnchorEl: import("react").Dispatch<import("react").SetStateAction<HTMLDivElement | null>>;
5
- handleClick: (e: React.MouseEvent<HTMLDivElement>) => void;
6
- };