@new-black/lyra 1.0.21 → 1.0.23
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.
- package/dist/components/inputs/search-list-field/search-list-field.d.ts +2 -2
- package/dist/components/inputs/search-list-field/search-list-field.d.ts.map +1 -1
- package/dist/components/table/table-pagination.d.ts.map +1 -1
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table/table.types.d.ts +2 -1
- package/dist/components/table/table.types.d.ts.map +1 -1
- package/dist/lyra23.cjs +1 -1
- package/dist/lyra23.js +1 -1
- package/dist/lyra25.cjs +1 -1
- package/dist/lyra25.js +1 -1
- package/dist/lyra27.cjs +1 -1
- package/dist/lyra27.js +2 -2
- package/dist/lyra34.cjs +1 -1
- package/dist/lyra34.js +3 -3
- package/dist/lyra36.cjs +1 -1
- package/dist/lyra36.js +6 -6
- package/dist/lyra37.cjs +1 -1
- package/dist/lyra37.cjs.map +1 -1
- package/dist/lyra37.js +305 -301
- package/dist/lyra37.js.map +1 -1
- package/dist/lyra43.cjs +1 -1
- package/dist/lyra43.js +3 -3
- package/dist/lyra451.cjs +1 -1
- package/dist/lyra451.js +1 -1
- package/dist/lyra453.cjs +1 -1
- package/dist/lyra453.cjs.map +1 -1
- package/dist/lyra453.js +14 -14
- package/dist/lyra453.js.map +1 -1
- package/dist/lyra454.cjs +1 -1
- package/dist/lyra454.cjs.map +1 -1
- package/dist/lyra454.js +13 -11
- package/dist/lyra454.js.map +1 -1
- package/dist/lyra455.cjs +1 -1
- package/dist/lyra455.cjs.map +1 -1
- package/dist/lyra455.js +12 -90
- package/dist/lyra455.js.map +1 -1
- package/dist/lyra456.cjs +1 -1
- package/dist/lyra456.cjs.map +1 -1
- package/dist/lyra456.js +90 -44
- package/dist/lyra456.js.map +1 -1
- package/dist/lyra457.cjs +1 -1
- package/dist/lyra457.cjs.map +1 -1
- package/dist/lyra457.js +44 -31
- package/dist/lyra457.js.map +1 -1
- package/dist/lyra458.cjs +1 -1
- package/dist/lyra458.cjs.map +1 -1
- package/dist/lyra458.js +30 -51
- package/dist/lyra458.js.map +1 -1
- package/dist/lyra459.cjs +1 -1
- package/dist/lyra459.cjs.map +1 -1
- package/dist/lyra459.js +49 -50
- package/dist/lyra459.js.map +1 -1
- package/dist/lyra460.cjs +1 -1
- package/dist/lyra460.cjs.map +1 -1
- package/dist/lyra460.js +53 -7
- package/dist/lyra460.js.map +1 -1
- package/dist/lyra461.cjs +1 -1
- package/dist/lyra461.cjs.map +1 -1
- package/dist/lyra461.js +6 -61
- package/dist/lyra461.js.map +1 -1
- package/dist/lyra462.cjs +1 -1
- package/dist/lyra462.cjs.map +1 -1
- package/dist/lyra462.js +61 -36
- package/dist/lyra462.js.map +1 -1
- package/dist/lyra463.cjs +1 -5
- package/dist/lyra463.cjs.map +1 -1
- package/dist/lyra463.js +35 -2556
- package/dist/lyra463.js.map +1 -1
- package/dist/lyra464.cjs +5 -1
- package/dist/lyra464.cjs.map +1 -1
- package/dist/lyra464.js +2556 -52
- package/dist/lyra464.js.map +1 -1
- package/dist/lyra465.cjs +1 -1
- package/dist/lyra465.cjs.map +1 -1
- package/dist/lyra465.js +53 -13
- package/dist/lyra465.js.map +1 -1
- package/dist/lyra470.cjs +1 -1
- package/dist/lyra470.cjs.map +1 -1
- package/dist/lyra470.js +25 -24
- package/dist/lyra470.js.map +1 -1
- package/dist/lyra49.cjs +1 -1
- package/dist/lyra49.js +1 -1
- package/dist/lyra50.cjs +1 -1
- package/dist/lyra50.js +2 -2
- package/dist/lyra508.cjs +1 -1
- package/dist/lyra508.js +3 -3
- package/dist/lyra51.cjs +1 -1
- package/dist/lyra51.js +2 -2
- package/dist/lyra510.cjs +1 -1
- package/dist/lyra510.js +1 -1
- package/dist/lyra59.cjs +1 -1
- package/dist/lyra59.js +6 -6
- package/dist/lyra596.cjs +1 -1
- package/dist/lyra596.cjs.map +1 -1
- package/dist/lyra596.js +17 -4
- package/dist/lyra596.js.map +1 -1
- package/dist/lyra597.cjs +1 -1
- package/dist/lyra597.cjs.map +1 -1
- package/dist/lyra597.js +4 -17
- package/dist/lyra597.js.map +1 -1
- package/dist/lyra598.cjs +1 -1
- package/dist/lyra598.cjs.map +1 -1
- package/dist/lyra598.js +4 -4
- package/dist/lyra598.js.map +1 -1
- package/dist/lyra599.cjs +1 -1
- package/dist/lyra599.cjs.map +1 -1
- package/dist/lyra599.js +20 -30
- package/dist/lyra599.js.map +1 -1
- package/dist/lyra60.cjs +1 -1
- package/dist/lyra60.js +3 -3
- package/dist/lyra600.cjs +1 -1
- package/dist/lyra600.cjs.map +1 -1
- package/dist/lyra600.js +4 -21
- package/dist/lyra600.js.map +1 -1
- package/dist/lyra601.cjs +1 -1
- package/dist/lyra601.cjs.map +1 -1
- package/dist/lyra601.js +20 -4
- package/dist/lyra601.js.map +1 -1
- package/dist/lyra602.cjs +1 -1
- package/dist/lyra602.cjs.map +1 -1
- package/dist/lyra602.js +4 -20
- package/dist/lyra602.js.map +1 -1
- package/dist/lyra603.cjs +1 -1
- package/dist/lyra603.cjs.map +1 -1
- package/dist/lyra603.js +29 -2
- package/dist/lyra603.js.map +1 -1
- package/dist/lyra606.cjs +1 -1
- package/dist/lyra606.cjs.map +1 -1
- package/dist/lyra606.js +182 -229
- package/dist/lyra606.js.map +1 -1
- package/dist/lyra607.cjs +1 -1
- package/dist/lyra607.cjs.map +1 -1
- package/dist/lyra607.js +77 -14
- package/dist/lyra607.js.map +1 -1
- package/dist/lyra608.cjs +1 -1
- package/dist/lyra608.cjs.map +1 -1
- package/dist/lyra608.js +41 -479
- package/dist/lyra608.js.map +1 -1
- package/dist/lyra609.cjs +1 -1
- package/dist/lyra609.cjs.map +1 -1
- package/dist/lyra609.js +15 -65
- package/dist/lyra609.js.map +1 -1
- package/dist/lyra61.cjs +1 -1
- package/dist/lyra61.js +8 -8
- package/dist/lyra610.cjs +1 -1
- package/dist/lyra610.cjs.map +1 -1
- package/dist/lyra610.js +3 -13
- package/dist/lyra610.js.map +1 -1
- package/dist/lyra611.cjs +1 -1
- package/dist/lyra611.cjs.map +1 -1
- package/dist/lyra611.js +14 -2
- package/dist/lyra611.js.map +1 -1
- package/dist/lyra612.cjs +1 -9
- package/dist/lyra612.cjs.map +1 -1
- package/dist/lyra612.js +7 -48
- package/dist/lyra612.js.map +1 -1
- package/dist/lyra613.cjs +1 -9
- package/dist/lyra613.cjs.map +1 -1
- package/dist/lyra613.js +31 -81
- package/dist/lyra613.js.map +1 -1
- package/dist/lyra614.cjs +1 -1
- package/dist/lyra614.cjs.map +1 -1
- package/dist/lyra614.js +227 -133
- package/dist/lyra614.js.map +1 -1
- package/dist/lyra615.cjs +1 -1
- package/dist/lyra615.cjs.map +1 -1
- package/dist/lyra615.js +14 -50
- package/dist/lyra615.js.map +1 -1
- package/dist/lyra616.cjs +1 -1
- package/dist/lyra616.cjs.map +1 -1
- package/dist/lyra616.js +477 -181
- package/dist/lyra616.js.map +1 -1
- package/dist/lyra617.cjs +1 -1
- package/dist/lyra617.cjs.map +1 -1
- package/dist/lyra617.js +65 -78
- package/dist/lyra617.js.map +1 -1
- package/dist/lyra618.cjs +1 -1
- package/dist/lyra618.cjs.map +1 -1
- package/dist/lyra618.js +13 -44
- package/dist/lyra618.js.map +1 -1
- package/dist/lyra619.cjs +1 -1
- package/dist/lyra619.cjs.map +1 -1
- package/dist/lyra619.js +2 -16
- package/dist/lyra619.js.map +1 -1
- package/dist/lyra620.cjs +9 -1
- package/dist/lyra620.cjs.map +1 -1
- package/dist/lyra620.js +48 -3
- package/dist/lyra620.js.map +1 -1
- package/dist/lyra621.cjs +9 -1
- package/dist/lyra621.cjs.map +1 -1
- package/dist/lyra621.js +83 -14
- package/dist/lyra621.js.map +1 -1
- package/dist/lyra622.cjs +1 -1
- package/dist/lyra622.cjs.map +1 -1
- package/dist/lyra622.js +139 -7
- package/dist/lyra622.js.map +1 -1
- package/dist/lyra623.cjs +1 -1
- package/dist/lyra623.cjs.map +1 -1
- package/dist/lyra623.js +50 -31
- package/dist/lyra623.js.map +1 -1
- package/dist/lyra67.cjs +1 -1
- package/dist/lyra67.cjs.map +1 -1
- package/dist/lyra67.js +70 -69
- package/dist/lyra67.js.map +1 -1
- package/dist/lyra686.cjs +1 -1
- package/dist/lyra686.js +1 -1
- package/dist/lyra689.cjs +1 -1
- package/dist/lyra689.js +1 -1
- package/dist/lyra719.cjs +1 -1
- package/dist/lyra719.js +4 -4
- package/dist/lyra729.cjs +1 -1
- package/dist/lyra729.js +1 -1
- package/dist/lyra730.cjs +1 -1
- package/dist/lyra730.js +1 -1
- package/dist/lyra731.cjs +1 -1
- package/dist/lyra731.js +1 -1
- package/dist/lyra75.cjs +1 -1
- package/dist/lyra75.js +1 -1
- package/dist/lyra761.cjs +1 -1
- package/dist/lyra761.js +1 -1
- package/dist/lyra779.cjs +1 -1
- package/dist/lyra779.js +1 -1
- package/dist/lyra786.cjs +1 -1
- package/dist/lyra786.js +1 -1
- package/dist/lyra787.cjs +1 -1
- package/dist/lyra787.js +1 -1
- package/dist/lyra788.cjs +1 -1
- package/dist/lyra788.js +1 -1
- package/dist/lyra789.cjs +1 -1
- package/dist/lyra789.js +2 -2
- package/dist/lyra790.cjs +1 -1
- package/dist/lyra790.js +4 -4
- package/dist/lyra800.cjs +1 -1
- package/dist/lyra800.js +2 -2
- package/dist/lyra802.cjs +1 -1
- package/dist/lyra802.cjs.map +1 -1
- package/dist/lyra802.js +375 -2
- package/dist/lyra802.js.map +1 -1
- package/dist/lyra803.cjs +1 -1
- package/dist/lyra803.cjs.map +1 -1
- package/dist/lyra803.js +13 -28
- package/dist/lyra803.js.map +1 -1
- package/dist/lyra804.cjs +1 -1
- package/dist/lyra804.cjs.map +1 -1
- package/dist/lyra804.js +2 -6
- package/dist/lyra804.js.map +1 -1
- package/dist/lyra805.cjs +1 -1
- package/dist/lyra805.cjs.map +1 -1
- package/dist/lyra805.js +29 -4
- package/dist/lyra805.js.map +1 -1
- package/dist/lyra806.cjs +1 -1
- package/dist/lyra806.cjs.map +1 -1
- package/dist/lyra806.js +6 -14
- package/dist/lyra806.js.map +1 -1
- package/dist/lyra807.cjs +1 -1
- package/dist/lyra807.cjs.map +1 -1
- package/dist/lyra807.js +3 -14
- package/dist/lyra807.js.map +1 -1
- package/dist/lyra808.cjs +1 -1
- package/dist/lyra808.cjs.map +1 -1
- package/dist/lyra808.js +14 -22
- package/dist/lyra808.js.map +1 -1
- package/dist/lyra809.cjs +1 -1
- package/dist/lyra809.cjs.map +1 -1
- package/dist/lyra809.js +22 -7
- package/dist/lyra809.js.map +1 -1
- package/dist/lyra810.cjs +1 -1
- package/dist/lyra810.cjs.map +1 -1
- package/dist/lyra810.js +7 -50
- package/dist/lyra810.js.map +1 -1
- package/dist/lyra811.cjs +1 -1
- package/dist/lyra811.cjs.map +1 -1
- package/dist/lyra811.js +46 -370
- package/dist/lyra811.js.map +1 -1
- package/dist/lyra829.cjs +1 -1
- package/dist/lyra829.cjs.map +1 -1
- package/dist/lyra829.js +2 -253
- package/dist/lyra829.js.map +1 -1
- package/dist/lyra830.cjs +1 -1
- package/dist/lyra830.cjs.map +1 -1
- package/dist/lyra830.js +16 -79
- package/dist/lyra830.js.map +1 -1
- package/dist/lyra831.cjs +1 -1
- package/dist/lyra831.cjs.map +1 -1
- package/dist/lyra831.js +253 -2
- package/dist/lyra831.js.map +1 -1
- package/dist/lyra832.cjs +1 -1
- package/dist/lyra832.cjs.map +1 -1
- package/dist/lyra832.js +82 -13
- package/dist/lyra832.js.map +1 -1
- package/dist/lyra833.cjs +1 -1
- package/dist/lyra833.cjs.map +1 -1
- package/dist/lyra833.js +2 -19
- package/dist/lyra833.js.map +1 -1
- package/dist/lyra834.cjs +1 -1
- package/dist/lyra834.cjs.map +1 -1
- package/dist/lyra834.js +12 -13
- package/dist/lyra834.js.map +1 -1
- package/dist/lyra835.cjs +1 -1
- package/dist/lyra835.cjs.map +1 -1
- package/dist/lyra835.js +19 -2
- package/dist/lyra835.js.map +1 -1
- package/dist/lyra836.cjs +1 -1
- package/dist/lyra836.cjs.map +1 -1
- package/dist/lyra836.js +13 -18
- package/dist/lyra836.js.map +1 -1
- package/dist/lyra84.cjs +1 -1
- package/dist/lyra84.js +1 -1
- package/dist/lyra842.cjs +1 -1
- package/dist/lyra842.js +3 -3
- package/dist/lyra858.cjs +4 -1
- package/dist/lyra858.cjs.map +1 -1
- package/dist/lyra858.js +46 -9
- package/dist/lyra858.js.map +1 -1
- package/dist/lyra859.cjs +1 -1
- package/dist/lyra859.cjs.map +1 -1
- package/dist/lyra859.js +10 -2
- package/dist/lyra859.js.map +1 -1
- package/dist/lyra86.cjs +1 -1
- package/dist/lyra86.js +1 -1
- package/dist/lyra860.cjs +1 -1
- package/dist/lyra860.cjs.map +1 -1
- package/dist/lyra860.js +2 -5
- package/dist/lyra860.js.map +1 -1
- package/dist/lyra861.cjs +1 -4
- package/dist/lyra861.cjs.map +1 -1
- package/dist/lyra861.js +4 -46
- package/dist/lyra861.js.map +1 -1
- package/dist/lyra96.cjs +1 -1
- package/dist/lyra96.js +3 -3
- package/dist/lyra97.cjs +1 -1
- package/dist/lyra97.js +3 -3
- package/dist/lyra98.cjs +1 -1
- package/dist/lyra98.js +1 -1
- package/dist/lyra99.cjs +1 -1
- package/dist/lyra99.js +1 -1
- package/package.json +1 -1
package/dist/lyra37.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra37.js","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Group,\n Input,\n Key,\n Provider,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./seach-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(selectedItemIndex ?? 0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n mousePosition,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : filteredItems?.length ?? 0;\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={onKeyDown}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <AriaButton\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n onPress={() => toggleSelection(item)}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n excludeFromTabOrder\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active: activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </AriaButton>\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <InputHeader\n label={label}\n hideHintLabel={hideHintLabel}\n hideInputHeader={hideInputHeader}\n isRequired={isRequired}\n />\n <div ref={triggerRef}>\n <SingleValueButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n hideInputHeader={hideInputHeader}\n labelId={labelId}\n />\n <div ref={triggerRef}>\n <MultipleValuesButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </div>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: SearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth: false,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n );\n};\n"],"names":["SingleValueButton","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","setOpenPopover","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","SharedListItem","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","useLocale","wrapper","selectedValue","InputHeader","InputFooter","MultiSearchListField","labelId","SearchListFieldWithCustomTrigger","children","Provider","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lyra37.js","sources":["../src/components/inputs/search-list-field/search-list-field.tsx"],"sourcesContent":["import {\n CSSProperties,\n KeyboardEventHandler,\n RefObject,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Button as AriaButton,\n ButtonContext,\n Group,\n Input,\n Key,\n Provider,\n} from \"react-aria-components\";\nimport { flushSync } from \"react-dom\";\n\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport clsx from \"clsx\";\n\nimport { Separator, Spinner, useLocale, useSpinDelay } from \"../../..\";\nimport useEventListener from \"../../../utils/hooks/use-event-listener\";\nimport { useFilterItemsByQuery } from \"../../../utils/hooks/use-filter-items-by-query\";\nimport { useMousePosition } from \"../../../utils/hooks/use-mouse-position\";\nimport { useDictionary } from \"../../../utils/providers/dictionary-provider\";\nimport { sharedListItemStyles } from \"../../lists/shared-list.styles\";\nimport { SharedListItem } from \"../../lists/shared-list-item\";\nimport { Popover } from \"../../overlays\";\nimport { SvgIcon } from \"../../svg-icon\";\nimport { Text } from \"../../text\";\nimport { FieldGroupContext } from \"../field-group\";\nimport { InputTag, InputTagGroup } from \"../input-tag-group\";\nimport { InputFooter, InputHeader, sharedInputStyles } from \"../shared\";\n\nimport {\n MultiSearchListFieldProps,\n MultiSearchListFieldWithCustomTriggerProps,\n SearchInputProps,\n SearchListFieldItemsProps,\n SearchListFieldProps,\n SearchListFieldWithCustomTriggerProps,\n ValueButton,\n} from \"./seach-list-field.types\";\n\nconst SingleValueButton = <T extends object>({\n disableClearLogic,\n endSlot,\n fullWidth,\n getLabel,\n isDisabled,\n isInvalid,\n onChange,\n open,\n openPopover,\n placeholder,\n renderCustomElementInValueButton,\n searchInputRef,\n selectRenderElements,\n startSlot,\n value,\n}: ValueButton<T>) => {\n const { buttonExcludedFromTabOrder, inputField } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n });\n\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if ((e.key === \"Escape\" || e.key === \"Backspace\") && !disableClearLogic) {\n e.stopPropagation();\n onChange?.(undefined);\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover?.();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover?.();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n };\n\n return (\n <div className=\"flex items-center gap-2\">\n {startSlot}\n <AriaButton\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n className={({ isFocused, isHovered }) =>\n inputField({\n isHovered,\n isFocused,\n className: \"min-h-8 grow\",\n })\n }\n isDisabled={isDisabled}\n onKeyDown={onKeyDown}\n onPress={openPopover}\n >\n <div className=\"flex grow truncate text-start\">\n {renderCustomElementInValueButton && value\n ? selectRenderElements(value)?.customElement\n : null}\n {value && getLabel(value) ? (\n <>{getLabel(value)}</>\n ) : (\n <Text variant=\"body-medium\" color=\"secondary\">\n {placeholder}\n </Text>\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n {value && !isDisabled && !disableClearLogic ? (\n <>\n <div\n className={buttonExcludedFromTabOrder()}\n role=\"button\"\n onPointerDown={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n onClick={(e) => {\n e.stopPropagation();\n onChange?.(undefined);\n }}\n >\n <SvgIcon name=\"clear\" />\n </div>\n </>\n ) : null}\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4\" />\n </div>\n </AriaButton>\n {endSlot}\n </div>\n );\n};\n\nconst MultipleValuesButton = <T extends object>({\n fullWidth,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n label,\n onChange,\n openPopover,\n placeholder,\n searchInputRef,\n value,\n}: Omit<\n ValueButton<T>,\n \"value\" | \"onChange\" | \"selectRenderElements\" | \"renderCustomElementInValueButton\"\n> & {\n value?: T[];\n onChange: (newValue?: T[]) => void;\n}) => {\n const { inputField: inputFieldStyles } = sharedInputStyles({\n isInvalid,\n hasEndSlot: true,\n fullWidth,\n isDisabled,\n });\n /**\n * Handles the keydown event for the search list field.\n * If the Escape or Backspace key is pressed, calls the onChange function with undefined.\n * @param e - The keyboard event.\n */\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n openPopover();\n }\n // match e.key to any letter or number and add the character to the search input\n else if (e.key && e.key.match(/^[a-zA-Z0-9]$/)) {\n // open the popover\n flushSync(() => {\n openPopover();\n });\n // set the cursor to the end of the input\n if (searchInputRef.current) {\n searchInputRef.current.focus();\n searchInputRef.current.setSelectionRange(0, searchInputRef.current.value.length);\n }\n }\n },\n [openPopover, searchInputRef],\n );\n\n const onRemove = useCallback(\n (keys: Set<Key>) => {\n value &&\n onChange(\n value.filter((item) => {\n const itemId = getItemId(item);\n return !keys.has(itemId);\n }),\n );\n },\n [getItemId, onChange, value],\n );\n\n return (\n <Group\n className={({ isFocusWithin: isFocused, isHovered }) =>\n inputFieldStyles({\n isHovered,\n isFocused,\n className: clsx(\n isHovered && !isInvalid && !isDisabled && !isFocused ? \"border-hover\" : \"\",\n \"has:[data-focused]:border has:[data-focused]:border-focus\",\n \"py-[0.4375rem]\",\n ),\n })\n }\n >\n <AriaButton\n onPress={openPopover}\n onKeyDown={onKeyDown}\n isDisabled={isDisabled}\n className=\"flex w-full outline-none\"\n >\n <div className=\"grow text-left\">\n {value && value.length ? (\n <InputTagGroup<T>\n label={label ?? \"Selected items\"}\n className=\"-m-1.5 -mt-[0.3125rem] items-center\"\n onRemove={isDisabled ? undefined : onRemove}\n >\n {value.map((item) => (\n <InputTag key={getItemId(item)} id={getItemId(item)} isDisabled={isDisabled}>\n {getLabel(item)}\n </InputTag>\n ))}\n </InputTagGroup>\n ) : (\n <Text color=\"secondary\">{placeholder}</Text>\n )}\n </div>\n <SvgIcon name=\"chevron-up-down\" className=\"h-4 w-4 min-w-[16px]\" />\n </AriaButton>\n </Group>\n );\n};\n\nconst SearchInput = ({\n endSlot,\n isLoading,\n onKeyDown,\n onQueryChange,\n query,\n searchInputRef,\n setQuery,\n}: SearchInputProps & { onKeyDown: KeyboardEventHandler<HTMLInputElement> | undefined }) => {\n const id = useId();\n const { clear, search } = useDictionary();\n const showSpinner = useSpinDelay(isLoading ?? false, { delay: 500, minDuration: 200 });\n const { buttonExcludedFromTabOrder } = sharedInputStyles({ fullWidth: true });\n\n useEffect(() => {\n searchInputRef.current?.focus();\n // only run on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div className=\"pb-1\">\n <div className=\"flex h-6 w-full items-center gap-2 rounded-xs border border-solid border-default bg-overlay-subtle py-1 pe-1 ps-1.5\">\n <Input\n ref={searchInputRef}\n id={id}\n className=\"w-full bg-transparent text-base outline-none placeholder:text-tertiary\"\n onChange={(e) => {\n setQuery(e.target?.value ?? \"\");\n onQueryChange?.(e.target?.value as any);\n }}\n placeholder={search}\n value={query ?? \"\"}\n onKeyDown={(event) => {\n // Prevent selection of an item on Tab key down event\n if (event.code === \"Tab\") {\n event.preventDefault();\n }\n\n onKeyDown?.(event);\n }}\n />\n {query && query.length ? (\n <AriaButton\n aria-label={clear}\n className={buttonExcludedFromTabOrder()}\n excludeFromTabOrder\n onPress={() => {\n setQuery(\"\");\n searchInputRef.current?.focus();\n }}\n >\n <SvgIcon name=\"clear\" />\n </AriaButton>\n ) : null}\n {endSlot}\n {showSpinner ? <Spinner className=\"mx-2\" size=\"small\" /> : null}\n </div>\n </div>\n );\n};\n\nconst useLoadMoreHook = (open: boolean) => {\n const loadMoreButtonRef = useRef<HTMLButtonElement | null>(null);\n const [isLoadMoreButtonFocused, setIsLoadMoreButtonFocused] = useState(false);\n\n // Reset focused state as the popover opens / closes\n useEffect(() => setIsLoadMoreButtonFocused(false), [open]);\n return { loadMoreButtonRef, isLoadMoreButtonFocused, setIsLoadMoreButtonFocused };\n};\n\ntype UseItemSelectionProps<T> = {\n disabledItemIdKeys?: Key[];\n filteredItems: T[];\n onSingleChange?: (value?: T) => void;\n onMultiChange?: (value?: T[]) => void;\n getItemId: (item: T) => Key;\n value?: T | T[];\n loadMoreButtonRef: RefObject<HTMLButtonElement>;\n};\n\nconst useItemSelection = <T extends object>({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n onMultiChange,\n onSingleChange,\n value,\n}: UseItemSelectionProps<T>) => {\n const selectedItemIndex = useMemo(() => {\n if (Array.isArray(value)) {\n if (value.length) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value[0]));\n } else {\n return 0;\n }\n } else if (value) {\n return filteredItems?.findIndex((item) => getItemId(item) === getItemId(value)) ?? 0;\n }\n }, [filteredItems, getItemId, value]);\n\n const getPreviousItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! - 1; i >= 0; i--) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.max(i, 0);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n const getNextItemIndex = useCallback(\n (activeIndex?: number) => {\n if (Number.isInteger(activeIndex)) {\n for (let i = activeIndex! + 1; i < filteredItems.length; i++) {\n if (!disabledItemIdKeys?.includes(getItemId(filteredItems[i]))) {\n return Math.min(filteredItems.length - 1, i);\n }\n }\n }\n return -1;\n },\n [disabledItemIdKeys, filteredItems, getItemId],\n );\n\n // Selects an item in the list and runs the appropriate change handler\n const toggleSelection = useCallback(\n (item: T) => {\n if (onMultiChange) {\n const currentValue = !value ? [] : [...(value as T[])];\n const currentValueIds = currentValue.map(getItemId);\n const newValue = currentValueIds?.includes(getItemId(item))\n ? currentValue.filter((v) => getItemId(v) !== getItemId(item))\n : [...currentValue, item];\n onMultiChange?.(newValue);\n } else if (onSingleChange) {\n onSingleChange?.(item);\n }\n },\n [getItemId, onMultiChange, onSingleChange, value],\n );\n\n const getItemIsSelected = useCallback(\n (item: T) => {\n if (Array.isArray(value)) {\n return value.some((subValue) => getItemId(subValue) === getItemId(item));\n } else {\n return value ? getItemId(value) === getItemId(item) : false;\n }\n },\n [getItemId, value],\n );\n\n // State that keeps track of the 'active' (focused but not really focused) item.\n const [activeItem, setActiveItem] = useState(selectedItemIndex ?? 0);\n\n const mousePosition = useMousePosition();\n const previousMousePosition = useRef<string | undefined>(undefined);\n\n // Handles keyboard navigation when the searchinput is focused.\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentActiveIndex = activeItem;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const safeNextIndex = getNextItemIndex(currentActiveIndex);\n\n if (safeNextIndex >= 0) {\n setActiveItem(safeNextIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const safePreviousIndex = getPreviousItemIndex(currentActiveIndex);\n\n if (safePreviousIndex >= 0) {\n setActiveItem(safePreviousIndex);\n previousMousePosition.current = mousePosition;\n }\n } else if (e.key === \"Enter\") {\n toggleSelection(filteredItems[activeItem]);\n }\n },\n [\n activeItem,\n filteredItems,\n getNextItemIndex,\n getPreviousItemIndex,\n mousePosition,\n toggleSelection,\n ],\n );\n\n // Handles onHoverChange event for the search list field items\n const onHoverChange = useCallback(\n (isHovering: boolean, index: number) => {\n if (isHovering && previousMousePosition.current !== mousePosition) {\n setActiveItem(index);\n previousMousePosition.current = mousePosition;\n }\n },\n [mousePosition],\n );\n\n return {\n activeItem,\n setActiveItem,\n getItemIsSelected,\n onKeyDown,\n onHoverChange,\n selectedItemIndex,\n toggleSelection,\n };\n};\n\n// Component that only gets rendered when popover is open.\n// This way we can set the active item when the popover opens and make sure the selected item will become active.\n// When closing the popover, the active item will be reset to 0.\nconst SelectedItem = ({\n selectedItemIndex,\n setActiveItem,\n}: {\n selectedItemIndex?: number;\n setActiveItem: (value: number) => void;\n}) => {\n useEffect(() => {\n if (selectedItemIndex !== undefined && selectedItemIndex >= 0) {\n setActiveItem(selectedItemIndex);\n\n return () => {\n setActiveItem(0);\n };\n }\n }, [selectedItemIndex, setActiveItem]);\n return null;\n};\n\nconst SearchListFieldItems = <T extends object>({\n direction,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isLoading,\n items,\n label,\n onLoadMore,\n onMultiChange,\n onQueryChange,\n onSingleChange,\n open,\n placement,\n searchInputRef,\n selectRenderElements,\n setOpenPopover,\n triggerRef,\n value,\n}: SearchListFieldItemsProps<T>) => {\n const { loadMore, noResultsFound } = useDictionary();\n const { filteredItems, query, setQuery } = useFilterItemsByQuery<T>({\n getLabel,\n items,\n onQueryChange,\n });\n const { item: itemStyles } = sharedListItemStyles();\n const { isLoadMoreButtonFocused, loadMoreButtonRef, setIsLoadMoreButtonFocused } =\n useLoadMoreHook(open);\n\n const {\n activeItem,\n getItemIsSelected,\n onHoverChange,\n onKeyDown,\n selectedItemIndex,\n setActiveItem,\n toggleSelection,\n } = useItemSelection({\n disabledItemIdKeys,\n filteredItems,\n getItemId,\n loadMoreButtonRef,\n onMultiChange,\n onSingleChange,\n value,\n });\n\n const [triggerRefWidth, setTriggerRefWidth] = useState<number | undefined>(\n triggerRef.current?.offsetWidth,\n );\n useEventListener(\"resize\", () => {\n setTriggerRefWidth(triggerRef.current?.offsetWidth);\n });\n\n const triggerWidth = triggerRefWidth ?? triggerRef.current?.offsetWidth;\n\n const parentRef = useRef<HTMLDivElement>(null);\n\n const count = onLoadMore ? (filteredItems?.length ?? 0) + 1 : filteredItems?.length ?? 0;\n\n const virtualizer = useVirtualizer({\n count,\n estimateSize: () => 40,\n getScrollElement: () => parentRef.current,\n overscan: 6,\n });\n\n // Make sure we scroll to the activeItem if it changes.\n useEffect(() => {\n if (activeItem !== undefined && activeItem >= 0 && filteredItems?.length) {\n // if it's the last filtered item and a load more button is present, scroll to the load more button into view as well.\n if (activeItem === filteredItems.length - 1 && onLoadMore) {\n virtualizer.scrollToIndex(count);\n } else {\n virtualizer.scrollToIndex(Math.min(activeItem, count - 1));\n }\n }\n }, [activeItem, count, filteredItems.length, onLoadMore, virtualizer]);\n\n const virtualItems = virtualizer.getVirtualItems();\n\n return (\n <Popover\n className=\"p-1\"\n isOpen={open}\n disablePadding\n triggerRef={triggerRef}\n onOpenChange={setOpenPopover}\n aria-label={label}\n shouldUpdatePosition\n placement={placement}\n style={\n {\n width: triggerWidth && triggerWidth > 280 ? triggerWidth + \"px\" : \"280px\",\n direction,\n } as CSSProperties\n }\n >\n {open ? (\n <div className=\"gap-1\">\n <SearchInput\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n query={query}\n setQuery={(value) => {\n // Reset active item when query changes and set the query.\n // Using flushSync to make sure scroll to offset is called after the active item is set.\n flushSync(() => {\n setQuery(value);\n setActiveItem(0);\n });\n\n virtualizer.scrollToOffset(0);\n }}\n searchInputRef={searchInputRef}\n onKeyDown={onKeyDown}\n />\n <SelectedItem selectedItemIndex={selectedItemIndex} setActiveItem={setActiveItem} />\n <div\n ref={parentRef}\n className=\"w-full overflow-y-auto\"\n style={{\n contain: \"strict\",\n height: Math.min(288, virtualizer.getTotalSize() + (onLoadMore ? 4 : 0)),\n }}\n >\n <div\n className=\"relative w-full\"\n style={{\n height: virtualizer.getTotalSize(),\n }}\n >\n <div\n className=\"absolute start-0 top-0 w-full\"\n style={{\n transform: `translateY(${virtualItems?.[0]?.start ?? 0}px)`,\n }}\n >\n {virtualItems.map((virtualItem) => {\n const itemIsLastOfIndex = virtualItem.index === count - 1;\n\n if (itemIsLastOfIndex && onLoadMore) {\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <div>\n <Separator className=\"my-1\" />\n <AriaButton\n isDisabled={isLoading}\n onFocusChange={setIsLoadMoreButtonFocused}\n onHoverChange={setIsLoadMoreButtonFocused}\n ref={loadMoreButtonRef}\n className={itemStyles({\n className:\n \"w-full justify-start bg-transparent ps-6 text-base font-normal text-primary duration-0 active:text-inverted hover:bg-action-hover hover:text-inverted focus:bg-action-focus focus:text-inverted focus-visible:[box-shadow:none]\",\n })}\n onPress={() => {\n onLoadMore();\n\n // Focus input after loading more items\n searchInputRef.current?.focus();\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n searchInputRef.current?.focus();\n }\n }}\n >\n {loadMore}\n </AriaButton>\n </div>\n </div>\n );\n } else {\n const item = filteredItems[virtualItem.index];\n return (\n <div\n key={virtualItem.key}\n data-index={virtualItem.index}\n ref={virtualizer.measureElement}\n >\n <AriaButton\n key={getItemId(item)}\n className=\"w-full text-start outline-none\"\n onHoverChange={(isHovering) => {\n onHoverChange(isHovering, virtualItem.index);\n }}\n onPress={() => toggleSelection(item)}\n isDisabled={\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false\n }\n excludeFromTabOrder\n >\n <SharedListItem\n key={getItemId(item)}\n hasSelection\n item={item}\n state={{\n active: activeItem === virtualItem.index && !isLoadMoreButtonFocused,\n disabled:\n disabledItemIdKeys?.includes(getItemId(item) as string) ?? false,\n selected: getItemIsSelected(item),\n }}\n selectRenderElements={selectRenderElements}\n />\n </AriaButton>\n </div>\n );\n }\n })}\n </div>\n </div>\n </div>\n {count ? null : (\n <Text variant=\"body-medium\" color=\"secondary\" className=\"px-2.5\">\n {noResultsFound}\n </Text>\n )}\n </div>\n ) : null}\n </Popover>\n );\n};\n\nconst UncontrolledInputs = <T extends object>({\n getItemId,\n name,\n value,\n}: {\n name?: string;\n value?: T | T[];\n getItemId: (item: T) => Key;\n}) => {\n if (name) {\n if (Array.isArray(value)) {\n return value.map((v) => (\n <input key={getItemId(v)} type=\"hidden\" name={name} value={getItemId(v)} />\n ));\n } else if (value) {\n return <input type=\"hidden\" name={name} value={getItemId(value)} />;\n } else {\n return null;\n }\n }\n return null;\n};\n\nexport const SearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placeholder,\n placement = \"bottom start\",\n renderCustomElementInValueButton,\n selectRenderElements,\n startSlot,\n value,\n}: SearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <InputHeader\n label={label}\n hideHintLabel={hideHintLabel}\n hideInputHeader={hideInputHeader}\n isRequired={isRequired}\n />\n <div ref={triggerRef}>\n <SingleValueButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n open={isOpen}\n openPopover={openPopover}\n onChange={onSingleChange}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue as T | undefined}\n renderCustomElementInValueButton={renderCustomElementInValueButton}\n selectRenderElements={selectRenderElements}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n onLoadMore={onLoadMore}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n );\n};\n\nexport const MultiSearchListField = <T extends object>({\n defaultValue,\n description,\n disableClearLogic,\n disabledItemIdKeys,\n endSlot,\n errorMessage,\n fullWidth = true,\n getItemId,\n getLabel,\n hideHintLabel,\n hideInputFooter,\n hideInputHeader,\n isDisabled,\n isInvalid,\n isLoading,\n isRequired,\n items,\n label,\n labelId,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placeholder,\n placement = \"bottom start\",\n selectRenderElements,\n startSlot,\n value,\n}: MultiSearchListFieldProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled: isDisabled || fieldGroupIsDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n const selectedValue = value ?? internalValue;\n\n return (\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <InputHeader\n label={label}\n isRequired={isRequired}\n hideHintLabel={hideHintLabel}\n hideInputHeader={hideInputHeader}\n labelId={labelId}\n />\n <div ref={triggerRef}>\n <MultipleValuesButton\n disableClearLogic={disableClearLogic}\n endSlot={endSlot}\n fullWidth={fullWidth}\n getLabel={getLabel}\n getItemId={getItemId}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n onChange={onMultiChange}\n open={isOpen}\n openPopover={openPopover}\n placeholder={placeholder}\n searchInputRef={searchInputRef}\n startSlot={startSlot}\n value={selectedValue}\n />\n </div>\n <InputFooter\n description={description}\n errorMessage={errorMessage}\n hideInputFooter={hideInputFooter}\n />\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onMultiChange={onMultiChange}\n value={selectedValue}\n placement={placement}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n onLoadMore={onLoadMore}\n />\n </div>\n );\n};\n\nexport const SearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: SearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n const closePopover = () => setIsOpen(false);\n\n const onSingleChange = useCallback(\n (newValue?: T) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n closePopover();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n const { wrapper } = sharedInputStyles({\n fullWidth: false,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n return (\n <Provider\n values={[\n [\n ButtonContext,\n {\n onPress: () => openPopover(),\n isDisabled: isDisabled || fieldGroupIsDisabled,\n },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n triggerRef={triggerRef}\n label={label}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onLoadMore={onLoadMore}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n searchInputRef={searchInputRef}\n placement={placement}\n value={selectedValue}\n onSingleChange={onSingleChange}\n />\n </div>\n </Provider>\n );\n};\n\nexport const MultiSearchListFieldWithCustomTrigger = <T extends object>({\n children,\n defaultValue,\n disabledItemIdKeys,\n fullWidth = true,\n getItemId,\n getLabel,\n isDisabled,\n isInvalid,\n isLoading,\n items,\n label,\n name,\n onChange,\n onLoadMore,\n onQueryChange,\n placement = \"bottom start\",\n selectRenderElements,\n value,\n}: MultiSearchListFieldWithCustomTriggerProps<T>) => {\n const { isDisabled: fieldGroupIsDisabled } = useContext(FieldGroupContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const comboBoxButtonRef = useRef<HTMLButtonElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const [internalValue, setInternalValue] = useState<T[] | undefined>(value ?? defaultValue);\n const [isOpen, setIsOpen] = useState(false);\n const openPopover = () => {\n setIsOpen(true);\n comboBoxButtonRef.current?.click();\n };\n\n const onMultiChange = useCallback(\n (newValue?: T[]) => {\n setInternalValue(newValue);\n onChange?.(newValue);\n searchInputRef.current?.focus();\n },\n [onChange],\n );\n\n const { direction } = useLocale();\n\n const { wrapper } = sharedInputStyles({\n fullWidth,\n isInvalid,\n isDisabled,\n });\n\n // sync outside value changes with internal value\n useEffect(() => {\n setInternalValue(value ?? defaultValue);\n }, [defaultValue, value]);\n\n const selectedValue = value ?? internalValue;\n\n return (\n <Provider\n values={[\n [\n ButtonContext,\n { onPress: () => openPopover(), isDisabled: isDisabled || fieldGroupIsDisabled },\n ],\n ]}\n >\n <div>\n <UncontrolledInputs name={name} value={selectedValue} getItemId={getItemId} />\n <div className={wrapper()}>\n <div ref={triggerRef}>{children}</div>\n </div>\n <SearchListFieldItems<T>\n label={label}\n searchInputRef={searchInputRef}\n triggerRef={triggerRef}\n getItemId={getItemId}\n getLabel={getLabel}\n items={items}\n onLoadMore={onLoadMore}\n open={isOpen}\n setOpenPopover={setIsOpen}\n selectRenderElements={selectRenderElements}\n disabledItemIdKeys={disabledItemIdKeys}\n direction={direction}\n onQueryChange={onQueryChange}\n isLoading={isLoading}\n value={selectedValue}\n onMultiChange={onMultiChange}\n placement={placement}\n />\n </div>\n </Provider>\n );\n};\n"],"names":["SingleValueButton","disableClearLogic","endSlot","fullWidth","getLabel","isDisabled","isInvalid","onChange","open","openPopover","placeholder","renderCustomElementInValueButton","searchInputRef","selectRenderElements","startSlot","value","buttonExcludedFromTabOrder","inputField","sharedInputStyles","onKeyDown","e","flushSync","jsxs","AriaButton","isFocused","isHovered","_a","Text","jsx","Fragment","SvgIcon","MultipleValuesButton","getItemId","label","inputFieldStyles","useCallback","onRemove","keys","item","itemId","Group","clsx","InputTagGroup","InputTag","SearchInput","isLoading","onQueryChange","query","setQuery","id","useId","clear","search","useDictionary","showSpinner","useSpinDelay","useEffect","Input","_b","event","Spinner","useLoadMoreHook","loadMoreButtonRef","useRef","isLoadMoreButtonFocused","setIsLoadMoreButtonFocused","useState","useItemSelection","disabledItemIdKeys","filteredItems","onMultiChange","onSingleChange","selectedItemIndex","useMemo","getPreviousItemIndex","activeIndex","i","getNextItemIndex","toggleSelection","currentValue","currentValueIds","newValue","v","getItemIsSelected","subValue","activeItem","setActiveItem","mousePosition","useMousePosition","previousMousePosition","currentActiveIndex","safeNextIndex","safePreviousIndex","onHoverChange","isHovering","index","SelectedItem","SearchListFieldItems","direction","items","onLoadMore","placement","setOpenPopover","triggerRef","loadMore","noResultsFound","useFilterItemsByQuery","itemStyles","sharedListItemStyles","triggerRefWidth","setTriggerRefWidth","useEventListener","triggerWidth","parentRef","count","virtualizer","useVirtualizer","virtualItems","Popover","_c","virtualItem","Separator","SharedListItem","UncontrolledInputs","name","SearchListField","defaultValue","description","errorMessage","hideHintLabel","hideInputFooter","hideInputHeader","isRequired","fieldGroupIsDisabled","useContext","FieldGroupContext","comboBoxButtonRef","internalValue","setInternalValue","isOpen","setIsOpen","closePopover","useLocale","wrapper","selectedValue","InputHeader","InputFooter","MultiSearchListField","labelId","SearchListFieldWithCustomTrigger","children","Provider","ButtonContext","MultiSearchListFieldWithCustomTrigger"],"mappings":"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"}
|
package/dist/lyra43.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./lyra90.cjs"),i=require("react"),a=require("./lyra89.cjs"),E=require("./lyra101.cjs"),w=require("./lyra450.cjs"),Y=require("./lyra93.cjs"),Z=require("./lyra95.cjs"),$=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./lyra90.cjs"),i=require("react"),a=require("./lyra89.cjs"),E=require("./lyra101.cjs"),w=require("./lyra450.cjs"),Y=require("./lyra93.cjs"),Z=require("./lyra95.cjs"),$=require("./lyra612.cjs"),ee=require("./lyra65.cjs");require("./lyra459.cjs");const te=require("./lyra460.cjs"),se=require("./lyra38.cjs"),re=require("./lyra39.cjs"),ne=require("./lyra40.cjs"),S=({defaultValue:p,description:k,fullWidth:N=!0,hideHintLabel:B,hideInputFooter:b,hideInputHeader:D,inputRef:R,label:P,onChange:l,value:x,...m},f)=>{[m,f]=a.useContextProps(m,f,a.TextFieldContext);const h=i.useRef(null),c=E.useObjectRef(R?E.mergeRefs(h,R):h),{className:V,errorMessage:_,isDisabled:A=!1,isInvalid:G,isRequired:d,name:F,...H}=m,C=Z.useDictionary(),[M,I]=i.useState(""),[t,q]=i.useState(x??p??[]),{inputField:O,wrapper:K}=ne.sharedInputStyles({fullWidth:N});i.useEffect(()=>{q(x??p??[])},[x,p]);const u=i.useCallback(e=>{q(e),l==null||l(e)},[l]),L=i.useCallback(e=>{if(["Enter",","].includes(e.key)){e.preventDefault();const o=e.currentTarget.value.trim();o&&!t.includes(o)&&u([...t,e.currentTarget.value.trim()]),I("")}else e.key==="Backspace"&&(e.currentTarget.value||(e.preventDefault(),u(t.slice(0,-1))))},[u,t]),z=i.useCallback(e=>{if(e.preventDefault(),e.clipboardData){const o=e.clipboardData.getData("Text");if(o){const s=o?o.split(",").map(r=>r.replace(/[\u200B-\u200D\uFEFF]/g,"")).filter(r=>r.length>0).map(r=>r.trim()):[];u(Array.from(new Set([...t,...s])))}}},[u,t]),J=i.useMemo(()=>d&&t.length===0,[t.length,d]),{removeButton:Q,tag:U}=te.tagStyles(),[W,v]=i.useState(!1),[g,j]=i.useState(0),[X,T]=i.useState(!1);return n.jsxRuntimeExports.jsx(a.TextField,{className:K({className:V}),isDisabled:A,isInvalid:G,isRequired:J,...H,onKeyDown:L,value:M,onChange:I,onPaste:z,ref:f,children:({isDisabled:e,isInvalid:o})=>n.jsxRuntimeExports.jsxs(n.jsxRuntimeExports.Fragment,{children:[n.jsxRuntimeExports.jsx(se.InputHeader,{label:P,isRequired:d,hideHintLabel:B,hideInputHeader:D}),n.jsxRuntimeExports.jsxs(a.Group,{className:({isFocusWithin:s,isHovered:r})=>O({isFocused:s,isHovered:r,isDisabled:e,isInvalid:o,className:"relative flex-wrap items-start gap-1"}),onFocus:()=>{var s;t.length===0&&((s=c==null?void 0:c.current)==null||s.focus())},children:[n.jsxRuntimeExports.jsxs("div",{className:w.clsx(t.length&&"-my-px","-mx-1 flex w-full flex-wrap gap-1 py-[0.1875rem] outline-none"),tabIndex:e?void 0:0,role:"grid",onKeyDown:s=>{s.key==="ArrowRight"?(s.preventDefault(),j(r=>(r+1)%t.length)):s.key==="ArrowLeft"?(s.preventDefault(),j(r=>(r-1+t.length)%t.length)):s.key==="Backspace"&&g!==-1&&u(t.filter((r,y)=>y!==g))},onFocus:()=>{e||v(!0)},onBlur:()=>{e||v(!1)},children:[t.map((s,r)=>n.jsxRuntimeExports.jsxs("div",{className:U({allowsRemoving:!0,className:w.clsx(W&&r===g&&!X&&!e?"border-focus shadow-highlight":"")}),"aria-label":s,"aria-colindex":r+1,role:"gridcell",onClick:()=>{e||j(r)},children:[s,!e&&n.jsxRuntimeExports.jsx($.SpanButton,{className:Q({isDisabled:e}),onPress:()=>u(t.filter(y=>y!==s)),children:n.jsxRuntimeExports.jsx(ee.SvgIcon,{name:"clear"})})]},s)),n.jsxRuntimeExports.jsx(a.Input,{className:"-my-0.5 h-7 w-full min-w-36 flex-1 ps-2 outline-none",ref:c,onFocus:()=>{e||T(!0)},onBlur:()=>{e||T(!1)}})]}),F?n.jsxRuntimeExports.jsx("input",{type:"hidden",value:t.join(","),name:F}):null]}),n.jsxRuntimeExports.jsx(re.InputFooter,{description:k??C.tagInputDescription,errorMessage:_,hideInputFooter:b})]})})};S.displayName="TagInput";const ie=Y.fixedForwardRef(S);exports.TagInput=ie;
|
package/dist/lyra43.js
CHANGED
|
@@ -5,10 +5,10 @@ import { useObjectRef as oe, mergeRefs as ae } from "./lyra101.js";
|
|
|
5
5
|
import { clsx as T } from "./lyra450.js";
|
|
6
6
|
import { fixedForwardRef as ne } from "./lyra93.js";
|
|
7
7
|
import { useDictionary as ie } from "./lyra95.js";
|
|
8
|
-
import { SpanButton as le } from "./
|
|
8
|
+
import { SpanButton as le } from "./lyra612.js";
|
|
9
9
|
import { SvgIcon as ce } from "./lyra65.js";
|
|
10
|
-
import "./
|
|
11
|
-
import { tagStyles as fe } from "./
|
|
10
|
+
import "./lyra459.js";
|
|
11
|
+
import { tagStyles as fe } from "./lyra460.js";
|
|
12
12
|
import { InputHeader as ue } from "./lyra38.js";
|
|
13
13
|
import { InputFooter as pe } from "./lyra39.js";
|
|
14
14
|
import { sharedInputStyles as me } from "./lyra40.js";
|
package/dist/lyra451.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("./lyra603.cjs"),D=require("./lyra91.cjs");var H={twMerge:!0,twMergeConfig:{},responsiveVariants:!1},P=a=>a||void 0,V=(...a)=>P(u.e(a).filter(Boolean).join(" ")),N=null,v={},S=!1,j=(...a)=>m=>m.twMerge?((!N||S)&&(S=!1,N=u.b(v)?D.twMerge:D.extendTailwindMerge({...v,extend:{theme:v.theme,classGroups:v.classGroups,conflictingClassGroupModifiers:v.conflictingClassGroupModifiers,conflictingClassGroups:v.conflictingClassGroups,...v.extend}})),P(N(V(a)))):V(a),F=(a,m)=>{for(let l in m)a.hasOwnProperty(l)?a[l]=V(a[l],m[l]):a[l]=m[l];return a},ee=(a,m)=>{let{extend:l=null,slots:$={},variants:R={},compoundVariants:q=[],compoundSlots:h=[],defaultVariants:B={}}=a,d={...H,...m},k=l!=null&&l.base?V(l.base,a==null?void 0:a.base):a==null?void 0:a.base,y=l!=null&&l.variants&&!u.b(l.variants)?u.g(R,l.variants):R,O=l!=null&&l.defaultVariants&&!u.b(l.defaultVariants)?{...l.defaultVariants,...B}:B;!u.b(d.twMergeConfig)&&!u.c(d.twMergeConfig,v)&&(S=!0,v=d.twMergeConfig);let C=u.b(l==null?void 0:l.slots),T=u.b($)?{}:{base:V(a==null?void 0:a.base,C&&(l==null?void 0:l.base)),...$},w=C?T:F({...l==null?void 0:l.slots},u.b(T)?{base:a==null?void 0:a.base}:T),A=u.b(l==null?void 0:l.compoundVariants)?q:u.f(l==null?void 0:l.compoundVariants,q),b=f=>{if(u.b(y)&&u.b($)&&C)return j(k,f==null?void 0:f.class,f==null?void 0:f.className)(d);if(A&&!Array.isArray(A))throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof A}`);if(h&&!Array.isArray(h))throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof h}`);let L=(e,t,r=[],o)=>{let n=r;if(typeof t=="string")n=n.concat(u.h(t).split(" ").map(i=>`${e}:${i}`));else if(Array.isArray(t))n=n.concat(t.reduce((i,s)=>i.concat(`${e}:${s}`),[]));else if(typeof t=="object"&&typeof o=="string"){for(let i in t)if(t.hasOwnProperty(i)&&i===o){let s=t[i];if(s&&typeof s=="string"){let c=u.h(s);n[o]?n[o]=n[o].concat(c.split(" ").map(p=>`${e}:${p}`)):n[o]=c.split(" ").map(p=>`${e}:${p}`)}else Array.isArray(s)&&s.length>0&&(n[o]=s.reduce((c,p)=>c.concat(`${e}:${p}`),[]))}}return n},E=(e,t=y,r=null,o=null)=>{var n;let i=t[e];if(!i||u.b(i))return null;let s=(n=o==null?void 0:o[e])!=null?n:f==null?void 0:f[e];if(s===null)return null;let c=u.a(s),p=Array.isArray(d.responsiveVariants)&&d.responsiveVariants.length>0||d.responsiveVariants===!0,M=O==null?void 0:O[e],g=[];if(typeof c=="object"&&p)for(let[G,z]of Object.entries(c)){let Y=i[z];if(G==="initial"){M=z;continue}Array.isArray(d.responsiveVariants)&&!d.responsiveVariants.includes(G)||(g=L(G,Y,g,r))}let Q=c!=null&&typeof c!="object"?c:u.a(M),x=i[Q||"false"];return typeof g=="object"&&typeof r=="string"&&g[r]?F(g,x):g.length>0?(g.push(x),g):x},U=()=>y?Object.keys(y).map(e=>E(e,y)):null,W=(e,t)=>{if(!y||typeof y!="object")return null;let r=new Array;for(let o in y){let n=E(o,y,e,t),i=e==="base"&&typeof n=="string"?n:n&&n[e];i&&(r[r.length]=i)}return r},J={};for(let e in f)f[e]!==void 0&&(J[e]=f[e]);let K=(e,t)=>{var r;let o=typeof(f==null?void 0:f[e])=="object"?{[e]:(r=f[e])==null?void 0:r.initial}:{};return{...O,...J,...o,...t}},Z=(e=[],t)=>{let r=[];for(let{class:o,className:n,...i}of e){let s=!0;for(let[c,p]of Object.entries(i)){let M=K(c,t);if(Array.isArray(p)){if(!p.includes(M[c])){s=!1;break}}else if(M[c]!==p){s=!1;break}}s&&(o&&r.push(o),n&&r.push(n))}return r},X=e=>{let t=Z(A,e);if(!Array.isArray(t))return t;let r={};for(let o of t)if(typeof o=="string"&&(r.base=j(r.base,o)(d)),typeof o=="object")for(let[n,i]of Object.entries(o))r[n]=j(r[n],i)(d);return r},_=e=>{if(h.length<1)return null;let t={};for(let{slots:r=[],class:o,className:n,...i}of h){if(!u.b(i)){let s=!0;for(let c of Object.keys(i)){let p=K(c,e)[c];if(p===void 0||(Array.isArray(i[c])?!i[c].includes(p):i[c]!==p)){s=!1;break}}if(!s)continue}for(let s of r)t[s]=t[s]||[],t[s].push([o,n])}return t};if(!u.b($)||!C){let e={};if(typeof w=="object"&&!u.b(w))for(let t of Object.keys(w))e[t]=r=>{var o,n;return j(w[t],W(t,r),((o=X(r))!=null?o:[])[t],((n=_(r))!=null?n:[])[t],r==null?void 0:r.class,r==null?void 0:r.className)(d)};return e}return j(k,U(),Z(A),f==null?void 0:f.class,f==null?void 0:f.className)(d)},I=()=>{if(!(!y||typeof y!="object"))return Object.keys(y)};return b.variantKeys=I(),b.extend=l,b.base=k,b.slots=w,b.variants=y,b.defaultVariants=O,b.compoundSlots=h,b.compoundVariants=A,b};exports.cn=j;exports.cnBase=V;exports.defaultConfig=H;exports.tv=ee;exports.voidEmpty=P;
|
package/dist/lyra451.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as p, g as ee, c as re, f as te, e as le, h as F, a as H } from "./
|
|
1
|
+
import { b as p, g as ee, c as re, f as te, e as le, h as F, a as H } from "./lyra603.js";
|
|
2
2
|
import { twMerge as ne, extendTailwindMerge as oe } from "./lyra91.js";
|
|
3
3
|
var ae = { twMerge: !0, twMergeConfig: {}, responsiveVariants: !1 }, J = (s) => s || void 0, $ = (...s) => J(le(s).filter(Boolean).join(" ")), T = null, b = {}, S = !1, w = (...s) => (m) => m.twMerge ? ((!T || S) && (S = !1, T = p(b) ? ne : oe({ ...b, extend: { theme: b.theme, classGroups: b.classGroups, conflictingClassGroupModifiers: b.conflictingClassGroupModifiers, conflictingClassGroups: b.conflictingClassGroups, ...b.extend } })), J(T($(s)))) : $(s), I = (s, m) => {
|
|
4
4
|
for (let l in m)
|
package/dist/lyra453.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lyra451.cjs"),t=e.tv({slots:{kpi:["flex flex-col items-center gap-3 px-4"],kpiText:["max-w-full truncate"],list:["grid gap-y-5 [&>*:last-child]:border-none","grid-cols-1","md:grid-cols-3 md:[&>*:not(:nth-child(3n))]:border-e md:[&>*:not(:nth-child(3n))]:border-e-default","sm:grid-cols-2 sm:max-md:[&>*:not(:nth-child(2n))]:border-e sm:max-md:[&>*:not(:nth-child(2n))]:border-e-default"]}});exports.KpiStyles=t;
|
package/dist/lyra453.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra453.cjs","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"lyra453.cjs","sources":["../src/components/kpi/kpi.styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const KpiStyles = tv({\n slots: {\n kpi: [\"flex flex-col items-center gap-3 px-4\"],\n kpiText: [\"max-w-full truncate\"],\n list: [\n \"grid gap-y-5 [&>*:last-child]:border-none\",\n \"grid-cols-1\",\n \"md:grid-cols-3 md:[&>*:not(:nth-child(3n))]:border-e md:[&>*:not(:nth-child(3n))]:border-e-default\",\n \"sm:grid-cols-2 sm:max-md:[&>*:not(:nth-child(2n))]:border-e sm:max-md:[&>*:not(:nth-child(2n))]:border-e-default\",\n ],\n },\n});\n"],"names":["KpiStyles","tv"],"mappings":"iHAEaA,EAAYC,EAAAA,GAAG,CAC1B,MAAO,CACL,IAAK,CAAC,uCAAuC,EAC7C,QAAS,CAAC,qBAAqB,EAC/B,KAAM,CACJ,4CACA,cACA,qGACA,kHACF,CACF,CACF,CAAC"}
|
package/dist/lyra453.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
1
|
+
import { tv as t } from "./lyra451.js";
|
|
2
|
+
const d = t({
|
|
3
|
+
slots: {
|
|
4
|
+
kpi: ["flex flex-col items-center gap-3 px-4"],
|
|
5
|
+
kpiText: ["max-w-full truncate"],
|
|
6
|
+
list: [
|
|
7
|
+
"grid gap-y-5 [&>*:last-child]:border-none",
|
|
8
|
+
"grid-cols-1",
|
|
9
|
+
"md:grid-cols-3 md:[&>*:not(:nth-child(3n))]:border-e md:[&>*:not(:nth-child(3n))]:border-e-default",
|
|
10
|
+
"sm:grid-cols-2 sm:max-md:[&>*:not(:nth-child(2n))]:border-e sm:max-md:[&>*:not(:nth-child(2n))]:border-e-default"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
});
|
|
13
14
|
export {
|
|
14
|
-
|
|
15
|
-
x as useNavigationContext
|
|
15
|
+
d as KpiStyles
|
|
16
16
|
};
|
package/dist/lyra453.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra453.js","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"lyra453.js","sources":["../src/components/kpi/kpi.styles.ts"],"sourcesContent":["import { tv } from \"tailwind-variants\";\n\nexport const KpiStyles = tv({\n slots: {\n kpi: [\"flex flex-col items-center gap-3 px-4\"],\n kpiText: [\"max-w-full truncate\"],\n list: [\n \"grid gap-y-5 [&>*:last-child]:border-none\",\n \"grid-cols-1\",\n \"md:grid-cols-3 md:[&>*:not(:nth-child(3n))]:border-e md:[&>*:not(:nth-child(3n))]:border-e-default\",\n \"sm:grid-cols-2 sm:max-md:[&>*:not(:nth-child(2n))]:border-e sm:max-md:[&>*:not(:nth-child(2n))]:border-e-default\",\n ],\n },\n});\n"],"names":["KpiStyles","tv"],"mappings":";AAEO,MAAMA,IAAYC,EAAG;AAAA,EAC1B,OAAO;AAAA,IACL,KAAK,CAAC,uCAAuC;AAAA,IAC7C,SAAS,CAAC,qBAAqB;AAAA,IAC/B,MAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF,CAAC;"}
|
package/dist/lyra454.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./lyra90.cjs"),e=require("react"),n=e.createContext(null),r=({children:t,currentRoute:o})=>i.jsxRuntimeExports.jsx(n.Provider,{value:{currentRoute:o},children:t});function a(){const t=e.useContext(n);if(t===null)throw new Error("useNavigationContext must be used within a NavigationContextProvider ");return t}exports.NavigationContextProvider=r;exports.useNavigationContext=a;
|
package/dist/lyra454.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra454.cjs","sources":["../src/components/navigation/navigation
|
|
1
|
+
{"version":3,"file":"lyra454.cjs","sources":["../src/components/navigation/navigation.context.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from \"react\";\n\nimport { NavigationContext as NavigationContext } from \"./navigation.types\";\n\nconst NavigationContext = createContext<NavigationContext | null>(null);\n\nexport const NavigationContextProvider = ({\n children,\n currentRoute,\n}: {\n children: ReactNode;\n currentRoute: string;\n}) => {\n return (\n <NavigationContext.Provider value={{ currentRoute }}>{children}</NavigationContext.Provider>\n );\n};\n\nexport function useNavigationContext() {\n const context = useContext(NavigationContext);\n\n if (context === null) {\n throw new Error(\"useNavigationContext must be used within a NavigationContextProvider \");\n }\n\n return context;\n}\n"],"names":["NavigationContext","createContext","NavigationContextProvider","children","currentRoute","jsx","useNavigationContext","context","useContext"],"mappings":"mIAIMA,EAAoBC,EAAAA,cAAwC,IAAI,EAEzDC,EAA4B,CAAC,CACxC,SAAAC,EACA,aAAAC,CACF,IAKIC,EAAA,kBAAA,IAACL,EAAkB,SAAlB,CAA2B,MAAO,CAAE,aAAAI,CAAA,EAAiB,SAAAD,CAAS,CAAA,EAI5D,SAASG,GAAuB,CAC/B,MAAAC,EAAUC,aAAWR,CAAiB,EAE5C,GAAIO,IAAY,KACR,MAAA,IAAI,MAAM,uEAAuE,EAGlF,OAAAA,CACT"}
|
package/dist/lyra454.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import { createContext as
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { j as e } from "./lyra90.js";
|
|
2
|
+
import { createContext as r, useContext as i } from "react";
|
|
3
|
+
const o = r(null), u = ({
|
|
4
|
+
children: t,
|
|
5
|
+
currentRoute: n
|
|
6
|
+
}) => /* @__PURE__ */ e.jsx(o.Provider, { value: { currentRoute: n }, children: t });
|
|
7
|
+
function x() {
|
|
8
|
+
const t = i(o);
|
|
9
|
+
if (t === null)
|
|
10
|
+
throw new Error("useNavigationContext must be used within a NavigationContextProvider ");
|
|
11
|
+
return t;
|
|
10
12
|
}
|
|
11
13
|
export {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
+
u as NavigationContextProvider,
|
|
15
|
+
x as useNavigationContext
|
|
14
16
|
};
|
package/dist/lyra454.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra454.js","sources":["../src/components/navigation/navigation
|
|
1
|
+
{"version":3,"file":"lyra454.js","sources":["../src/components/navigation/navigation.context.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext } from \"react\";\n\nimport { NavigationContext as NavigationContext } from \"./navigation.types\";\n\nconst NavigationContext = createContext<NavigationContext | null>(null);\n\nexport const NavigationContextProvider = ({\n children,\n currentRoute,\n}: {\n children: ReactNode;\n currentRoute: string;\n}) => {\n return (\n <NavigationContext.Provider value={{ currentRoute }}>{children}</NavigationContext.Provider>\n );\n};\n\nexport function useNavigationContext() {\n const context = useContext(NavigationContext);\n\n if (context === null) {\n throw new Error(\"useNavigationContext must be used within a NavigationContextProvider \");\n }\n\n return context;\n}\n"],"names":["NavigationContext","createContext","NavigationContextProvider","children","currentRoute","jsx","useNavigationContext","context","useContext"],"mappings":";;AAIA,MAAMA,IAAoBC,EAAwC,IAAI,GAEzDC,IAA4B,CAAC;AAAA,EACxC,UAAAC;AAAA,EACA,cAAAC;AACF,MAKIC,gBAAAA,EAAA,IAACL,EAAkB,UAAlB,EAA2B,OAAO,EAAE,cAAAI,EAAA,GAAiB,UAAAD,EAAS,CAAA;AAI5D,SAASG,IAAuB;AAC/B,QAAAC,IAAUC,EAAWR,CAAiB;AAE5C,MAAIO,MAAY;AACR,UAAA,IAAI,MAAM,uEAAuE;AAGlF,SAAAA;AACT;"}
|
package/dist/lyra455.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./lyra90.cjs"),t=require("react"),e=t.createContext({depth:null});function u({children:o}){const n=t.useContext(e),i=t.useMemo(()=>(n.depth??0)+1,[n.depth]);return r.jsxRuntimeExports.jsx(e.Provider,{value:{depth:i},children:o})}function s(){return t.useContext(e)}exports.NavigationItemProvider=u;exports.useNavigationItemContext=s;
|
package/dist/lyra455.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lyra455.cjs","sources":["../src/components/
|
|
1
|
+
{"version":3,"file":"lyra455.cjs","sources":["../src/components/navigation/navigation-item.context.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from \"react\";\n\nimport { NavigationItemContext } from \"./navigation.types\";\n\nconst NavigationItemContext = createContext<NavigationItemContext>({ depth: null });\n\nexport function NavigationItemProvider({ children }: { children: ReactNode }) {\n const context = useContext(NavigationItemContext);\n\n const nextDepth = useMemo(() => (context.depth ?? 0) + 1, [context.depth]);\n\n return (\n <NavigationItemContext.Provider value={{ depth: nextDepth }}>\n {children}\n </NavigationItemContext.Provider>\n );\n}\n\nexport function useNavigationItemContext() {\n return useContext(NavigationItemContext);\n}\n"],"names":["NavigationItemContext","createContext","NavigationItemProvider","children","context","useContext","nextDepth","useMemo","jsx","useNavigationItemContext"],"mappings":"mIAIMA,EAAwBC,EAAAA,cAAqC,CAAE,MAAO,IAAM,CAAA,EAElE,SAAAC,EAAuB,CAAE,SAAAC,GAAqC,CACtE,MAAAC,EAAUC,aAAWL,CAAqB,EAE1CM,EAAYC,EAAAA,QAAQ,KAAOH,EAAQ,OAAS,GAAK,EAAG,CAACA,EAAQ,KAAK,CAAC,EAGvE,OAAAI,EAAA,kBAAA,IAACR,EAAsB,SAAtB,CAA+B,MAAO,CAAE,MAAOM,CAAU,EACvD,SAAAH,CACH,CAAA,CAEJ,CAEO,SAASM,GAA2B,CACzC,OAAOJ,EAAAA,WAAWL,CAAqB,CACzC"}
|