@sanity/ui 4.0.0 → 4.0.1
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/autocomplete.d.ts.map +1 -1
- package/dist/autocomplete.js +15 -16
- package/dist/autocomplete.js.map +1 -1
- package/dist/breadcrumbs.js +1 -1
- package/dist/{button-mxfSqr0n.js → button-DXgc_BsT.js} +3 -3
- package/dist/{button-mxfSqr0n.js.map → button-DXgc_BsT.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/{textInput-udxyGbm1.js → textInput-CtgXqhgw.js} +2 -2
- package/dist/{textInput-udxyGbm1.js.map → textInput-CtgXqhgw.js.map} +1 -1
- package/dist/toast.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.d.ts","names":[],"sources":["../src/core/components/autocomplete/types.ts","../src/core/components/autocomplete/autocomplete.tsx"],"mappings":";;;;;;;KAKY,8BAA8B,iBACxC,KAAK,MAAM,UAAU;;;;UAKN;EACf;;;;;UAMe;EACf;EACA;EACA;EACA;EACA;;;;;UAMe;EACf;;;;;UAMe;EACf;;;;;UAMe;EACf;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;EACA;EACA;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;;;;;UAMe;EACf;EACA;;;;;KAMU,kBACR,0BACA,2BACA,4BACA,0BACA,oCACA,oCACA,6BACA,6BACA;;;;
|
|
1
|
+
{"version":3,"file":"autocomplete.d.ts","names":[],"sources":["../src/core/components/autocomplete/types.ts","../src/core/components/autocomplete/autocomplete.tsx"],"mappings":";;;;;;;KAKY,8BAA8B,iBACxC,KAAK,MAAM,UAAU;;;;UAKN;EACf;;;;;UAMe;EACf;EACA;EACA;EACA;EACA;;;;;UAMe;EACf;;;;;UAMe;EACf;;;;;UAMe;EACf;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;EACA;EACA;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;EACA;;;;;UAMe;EACf;;;;;UAMe;EACf;EACA;;;;;KAMU,kBACR,0BACA,2BACA,4BACA,0BACA,oCACA,oCACA,6BACA,6BACA;;;;UC1Da,kBAAkB,eAAe,yBAAyB;EACzE;EACA;EACA,gBAAgB,eAAe,QAAQ;EACvC;EAEA,OAAO,cAAc;EACrB;;EAEA,UAAU;EACV;EACA,YAAY;EACZ,iBAAiB;EACjB,YAAY;;EAEZ,uBAAuB;;EAEvB;;EAEA,UAAU;EACV;EACA,UAAU,KAAK,sEACb,KAAK,UAAU;EACjB,SAAS;EACT,SAAS,SAAS;;EAElB,kBAAkB;;EAElB,gBAAgB,QAAQ,WAAW,MAAM,IAAI;;EAE7C,iBACE;IACE,SAAS,MAAM,IAAI;IACnB;IACA,cAAc;IACd;IACA;KAEF,KAAK,IAAI,oBACN;EACL,eAAe,eAAe,SAAS;EACvC,SAAS;;EAET;;;;;;;;iBAec,aAAa,eAAe,wBAC1C,OAAO,kBAAkB,UACvB,KACE,UAAU,gSAmBX,IAAA"}
|
package/dist/autocomplete.js
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { n as _getArrayProp, o as EMPTY_ARRAY, s as EMPTY_RECORD } from "./helpers-bwfx1e-Y.js";
|
|
3
|
-
import { d as focusFirstDescendant, l as _hasFocus, m as _raf, t as TextInput } from "./textInput-
|
|
3
|
+
import { d as focusFirstDescendant, l as _hasFocus, m as _raf, t as TextInput } from "./textInput-CtgXqhgw.js";
|
|
4
4
|
import { t as _isEnterToClickElement } from "./element-BYgCE_iK.js";
|
|
5
5
|
import { s as Card, y as Box } from "./useLayer-BAVfmbNN.js";
|
|
6
6
|
import { n as Text, t as Stack } from "./stack-iW9HuGLg.js";
|
|
7
|
-
import { t as Button } from "./button-
|
|
7
|
+
import { t as Button } from "./button-DXgc_BsT.js";
|
|
8
8
|
import { t as Popover } from "./popover-PorX5Jv9.js";
|
|
9
9
|
import { c } from "react/compiler-runtime";
|
|
10
10
|
import { ChevronDownIcon } from "@sanity/icons/ChevronDown";
|
|
11
|
+
import { SpinnerIcon } from "@sanity/icons/Spinner";
|
|
11
12
|
import { cloneElement, startTransition, useEffect, useImperativeHandle, useReducer, useRef, useState } from "react";
|
|
12
|
-
import {
|
|
13
|
+
import { styled } from "styled-components";
|
|
13
14
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
import { SpinnerIcon } from "@sanity/icons/Spinner";
|
|
15
15
|
/**
|
|
16
16
|
* @internal
|
|
17
17
|
*/
|
|
18
18
|
const StyledAutocomplete = styled.div.withConfig({
|
|
19
19
|
displayName: "StyledAutocomplete",
|
|
20
|
-
componentId: "sc-
|
|
20
|
+
componentId: "sc-gz724-0"
|
|
21
21
|
})`line-height:0;`, ListBox = styled(Box).withConfig({
|
|
22
22
|
displayName: "ListBox",
|
|
23
|
-
componentId: "sc-
|
|
24
|
-
})`& > ul{list-style:none;padding:0;margin:0;}
|
|
25
|
-
displayName: "AnimatedSpinnerIcon",
|
|
26
|
-
componentId: "sc-ilitn5-2"
|
|
27
|
-
})`animation:${rotate} 500ms linear infinite;`;
|
|
23
|
+
componentId: "sc-gz724-1"
|
|
24
|
+
})`& > ul{list-style:none;padding:0;margin:0;}`;
|
|
28
25
|
function AutocompleteOption(props) {
|
|
29
26
|
let $ = c(11), { children, id, onSelect, selected, value } = props, t0;
|
|
30
27
|
$[0] !== onSelect || $[1] !== value ? (t0 = () => {
|
|
@@ -112,7 +109,7 @@ const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [
|
|
|
112
109
|
* @public
|
|
113
110
|
*/
|
|
114
111
|
function Autocomplete(props) {
|
|
115
|
-
let $ = c(
|
|
112
|
+
let $ = c(184), customValidity, disabled, filterOptionProp, forwardedRef, icon, id, loading, onBlur, onChange, onFocus, onQueryChange, onSelect, openButton, openOnFocus, optionsProp, prefix, readOnly, relatedElements, renderOptionProp, renderPopover, restProps, suffix, t0, t1, t2, t3, t4, t5, t6, valueProp;
|
|
116
113
|
$[0] === props ? (customValidity = $[1], disabled = $[2], filterOptionProp = $[3], forwardedRef = $[4], icon = $[5], id = $[6], loading = $[7], onBlur = $[8], onChange = $[9], onFocus = $[10], onQueryChange = $[11], onSelect = $[12], openButton = $[13], openOnFocus = $[14], optionsProp = $[15], prefix = $[16], readOnly = $[17], relatedElements = $[18], renderOptionProp = $[19], renderPopover = $[20], restProps = $[21], suffix = $[22], t0 = $[23], t1 = $[24], t2 = $[25], t3 = $[26], t4 = $[27], t5 = $[28], t6 = $[29], valueProp = $[30]) : ({border: t0, customValidity, disabled, filterOption: filterOptionProp, fontSize: t1, icon, id, listBox: t2, loading, onBlur, onChange, onFocus, onQueryChange, onSelect, openButton, openOnFocus, options: optionsProp, padding: t3, popover: t4, prefix, radius: t5, readOnly, ref: forwardedRef, relatedElements, renderOption: renderOptionProp, renderPopover, renderValue: t6, suffix, value: valueProp, ...restProps} = props, $[0] = props, $[1] = customValidity, $[2] = disabled, $[3] = filterOptionProp, $[4] = forwardedRef, $[5] = icon, $[6] = id, $[7] = loading, $[8] = onBlur, $[9] = onChange, $[10] = onFocus, $[11] = onQueryChange, $[12] = onSelect, $[13] = openButton, $[14] = openOnFocus, $[15] = optionsProp, $[16] = prefix, $[17] = readOnly, $[18] = relatedElements, $[19] = renderOptionProp, $[20] = renderPopover, $[21] = restProps, $[22] = suffix, $[23] = t0, $[24] = t1, $[25] = t2, $[26] = t3, $[27] = t4, $[28] = t5, $[29] = t6, $[30] = valueProp);
|
|
117
114
|
let border = t0 === void 0 || t0, fontSize = t1 === void 0 ? 2 : t1, listBox = t2 === void 0 ? EMPTY_RECORD : t2, paddingProp = t3 === void 0 ? 3 : t3, popover = t4 === void 0 ? EMPTY_RECORD : t4, radius = t5 === void 0 ? 2 : t5, renderValue = t6 === void 0 ? DEFAULT_RENDER_VALUE : t6, t7 = valueProp || null, t8 = valueProp || null, t9;
|
|
118
115
|
$[31] !== t7 || $[32] !== t8 ? (t9 = {
|
|
@@ -413,8 +410,10 @@ function Autocomplete(props) {
|
|
|
413
410
|
...popover
|
|
414
411
|
}), $[146] = content, $[147] = expanded, $[148] = handlePopoverMouseEnter, $[149] = handlePopoverMouseLeave, $[150] = inputElement, $[151] = popover, $[152] = radius, $[153] = t42) : t42 = $[153], t41 = t42;
|
|
415
412
|
}
|
|
416
|
-
let results = t41, t42
|
|
417
|
-
$[154]
|
|
413
|
+
let results = t41, t42;
|
|
414
|
+
$[154] === loading ? t42 = $[155] : (t42 = loading && /* @__PURE__ */ jsx(SpinnerIcon, { className: "_1b6o2se1" }), $[154] = loading, $[155] = t42);
|
|
415
|
+
let t43 = suffix || openButtonNode, t44;
|
|
416
|
+
$[156] !== activeItemId || $[157] !== border || $[158] !== clearButton || $[159] !== customValidity || $[160] !== disabled || $[161] !== expanded || $[162] !== fontSize || $[163] !== handleClearButtonClick || $[164] !== handleInputChange || $[165] !== handleInputFocus || $[166] !== icon || $[167] !== id || $[168] !== inputValue || $[169] !== listBoxId || $[170] !== padding || $[171] !== prefix || $[172] !== radius || $[173] !== readOnly || $[174] !== restProps || $[175] !== t42 || $[176] !== t43 ? (t44 = /* @__PURE__ */ jsx(TextInput, {
|
|
418
417
|
...restProps,
|
|
419
418
|
"aria-activedescendant": activeItemId,
|
|
420
419
|
"aria-autocomplete": "list",
|
|
@@ -444,16 +443,16 @@ function Autocomplete(props) {
|
|
|
444
443
|
spellCheck: !1,
|
|
445
444
|
suffix: t43,
|
|
446
445
|
value: inputValue
|
|
447
|
-
}), $[
|
|
446
|
+
}), $[156] = activeItemId, $[157] = border, $[158] = clearButton, $[159] = customValidity, $[160] = disabled, $[161] = expanded, $[162] = fontSize, $[163] = handleClearButtonClick, $[164] = handleInputChange, $[165] = handleInputFocus, $[166] = icon, $[167] = id, $[168] = inputValue, $[169] = listBoxId, $[170] = padding, $[171] = prefix, $[172] = radius, $[173] = readOnly, $[174] = restProps, $[175] = t42, $[176] = t43, $[177] = t44) : t44 = $[177];
|
|
448
447
|
let t45;
|
|
449
|
-
return $[
|
|
448
|
+
return $[178] !== handleRootBlur || $[179] !== handleRootFocus || $[180] !== handleRootKeyDown || $[181] !== results || $[182] !== t44 ? (t45 = /* @__PURE__ */ jsxs(StyledAutocomplete, {
|
|
450
449
|
"data-ui": "Autocomplete",
|
|
451
450
|
onBlur: handleRootBlur,
|
|
452
451
|
onFocus: handleRootFocus,
|
|
453
452
|
onKeyDown: handleRootKeyDown,
|
|
454
453
|
ref: rootElementRef,
|
|
455
454
|
children: [t44, results]
|
|
456
|
-
}), $[
|
|
455
|
+
}), $[178] = handleRootBlur, $[179] = handleRootFocus, $[180] = handleRootKeyDown, $[181] = results, $[182] = t44, $[183] = t45) : t45 = $[183], t45;
|
|
457
456
|
}
|
|
458
457
|
function _temp2(v_1) {
|
|
459
458
|
return Math.max(v_1 - 1, 0);
|
package/dist/autocomplete.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete.js","names":["SpinnerIcon","keyframes","styled","Box","StyledAutocomplete","div","ListBox","rotate","AnimatedSpinnerIcon","useCallback","_isEnterToClickElement","AutocompleteOptionProps","children","React","ReactNode","id","onSelect","v","selected","value","AutocompleteOption","props","$","_c","t0","setTimeout","handleClick","t1","event","key","currentTarget","handleKeyDown","t2","AutocompleteMsg","AutocompleteState","autocompleteReducer","state","msg","type","activeValue","focused","query","value","listFocused","Placement","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","ChevronDownIcon","ChangeEvent","cloneElement","ElementType","FocusEvent","HTMLProps","KeyboardEvent","MouseEvent","ReactNode","Ref","startTransition","useCallback","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","EMPTY_ARRAY","EMPTY_RECORD","_raf","_hasFocus","focusFirstDescendant","Box","BoxProps","Button","Card","Popover","PopoverProps","Stack","Text","TextInput","_getArrayProp","Radius","AnimatedSpinnerIcon","ListBox","StyledAutocomplete","AutocompleteOption","autocompleteReducer","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","AUTOCOMPLETE_POPOVER_PLACEMENT","AutocompleteOpenButtonProps","BaseAutocompleteOption","AutocompleteProps","border","customValidity","filterOption","query","option","Option","fontSize","icon","id","listBox","loading","onChange","value","onQueryChange","onSelect","openButton","openOnFocus","options","padding","popover","Omit","HTMLDivElement","prefix","radius","relatedElements","HTMLElement","renderOption","React","JSX","Element","renderPopover","props","content","hidden","inputElement","HTMLInputElement","onMouseEnter","onMouseLeave","ref","renderValue","suffix","DEFAULT_RENDER_VALUE","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","$","_c","disabled","filterOptionProp","forwardedRef","onBlur","onFocus","optionsProp","readOnly","renderOptionProp","restProps","t0","t1","t2","t3","t4","t5","t6","valueProp","undefined","paddingProp","t7","t8","t9","activeValue","focused","listFocused","state","dispatch","t10","t11","value_0","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","_setInputElement","Symbol","for","node","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","Array","isArray","t16","find","o","currentOption","t17","t18","filter","filteredOptions","filteredOptionsLen","length","activeItemId","expanded","event","setTimeout","current","elements","concat","focusInside","document","activeElement","e","contains","type","handleRootBlur","t19","event_0","listBoxElement","focusedElement","target","listFocused_0","handleRootFocus","t20","v","focus","handleOptionSelect","t21","event_1","key","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","Node","listEl","includes","handleRootKeyDown","t22","event_2","nextQuery","currentTarget","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","childNodes","HTMLLIElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","selected","tabIndex","t43","bb3","results","t44","t45","v_1","Math","max","v_0","RenderPopover","Exclude","Parameters"],"sources":["../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx"],"sourcesContent":["import {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {keyframes, styled} from 'styled-components'\n\nimport {Box} from '../../primitives/box/box'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n`\n\n/**\n * @internal\n */\nexport const AnimatedSpinnerIcon = styled(SpinnerIcon)`\n animation: ${rotate} 500ms linear infinite;\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n // oxlint-disable-next-line no-noninteractive-element-to-interactive-role, prefer-tag-over-role\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types/placement'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n startTransition,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_raf} from '../../helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../helpers/focus'\nimport {Box, BoxProps} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {TextInput} from '../../primitives/textInput/textInput'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {AnimatedSpinnerIcon, ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n // oxlint-disable-next-line no-unsafe-type-assertion\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n })\n const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"listbox\"\n gap={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && AnimatedSpinnerIcon}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\n // oxlint-disable-next-line prefer-tag-over-role, role-has-required-aria-props\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n}\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autocomplete.js","names":["styled","Box","StyledAutocomplete","div","ListBox","useCallback","_isEnterToClickElement","AutocompleteOptionProps","children","React","ReactNode","id","onSelect","v","selected","value","AutocompleteOption","props","$","_c","t0","setTimeout","handleClick","t1","event","key","currentTarget","handleKeyDown","t2","AutocompleteMsg","AutocompleteState","autocompleteReducer","state","msg","type","activeValue","focused","query","value","listFocused","Placement","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_PLACEMENT","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","ChevronDownIcon","SpinnerIcon","ChangeEvent","cloneElement","ElementType","FocusEvent","HTMLProps","KeyboardEvent","MouseEvent","ReactNode","Ref","startTransition","useCallback","useEffect","useImperativeHandle","useMemo","useReducer","useRef","useState","EMPTY_ARRAY","EMPTY_RECORD","_raf","_hasFocus","focusFirstDescendant","Box","BoxProps","Button","Card","Popover","PopoverProps","Stack","Text","TextInput","_getArrayProp","Radius","ListBox","StyledAutocomplete","AutocompleteOption","autocompleteReducer","AUTOCOMPLETE_LISTBOX_IGNORE_KEYS","AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS","AUTOCOMPLETE_POPOVER_PLACEMENT","AutocompleteOpenButtonProps","BaseAutocompleteOption","spinnerIcon","AutocompleteProps","border","customValidity","filterOption","query","option","Option","fontSize","icon","id","listBox","loading","onChange","value","onQueryChange","onSelect","openButton","openOnFocus","options","padding","popover","Omit","HTMLDivElement","prefix","radius","relatedElements","HTMLElement","renderOption","React","JSX","Element","renderPopover","props","content","hidden","inputElement","HTMLInputElement","onMouseEnter","onMouseLeave","ref","renderValue","suffix","DEFAULT_RENDER_VALUE","DEFAULT_FILTER_OPTION","toLowerCase","indexOf","Autocomplete","$","_c","disabled","filterOptionProp","forwardedRef","onBlur","onFocus","optionsProp","readOnly","renderOptionProp","restProps","t0","t1","t2","t3","t4","t5","t6","valueProp","undefined","paddingProp","t7","t8","t9","activeValue","focused","listFocused","state","dispatch","t10","t11","value_0","defaultRenderOption","rootElementRef","resultsPopoverElementRef","inputElementRef","listBoxElementRef","_setInputElement","Symbol","for","node","setInputElement","listFocusedRef","valueRef","valuePropRef","popoverMouseWithinRef","t12","t13","t14","t15","listBoxId","Array","isArray","t16","find","o","currentOption","t17","t18","filter","filteredOptions","filteredOptionsLen","length","activeItemId","expanded","event","setTimeout","current","elements","concat","focusInside","document","activeElement","e","contains","type","handleRootBlur","t19","event_0","listBoxElement","focusedElement","target","listFocused_0","handleRootFocus","t20","v","focus","handleOptionSelect","t21","event_1","key","preventDefault","activeOption","o_0","activeIndex","nextActiveOption","activeOption_0","o_1","activeIndex_0","nextActiveOption_0","Node","listEl","includes","handleRootKeyDown","t22","event_2","nextQuery","currentTarget","handleInputChange","t23","dispatchOpen","t24","event_3","handleInputFocus","t25","handlePopoverMouseEnter","t26","handlePopoverMouseLeave","t27","handleClearButtonClick","t28","handleClearButtonFocus","t29","t30","t31","t32","t33","t34","listElement","activeOption_1","o_2","activeIndex_1","activeItemElement","childNodes","HTMLLIElement","t35","bb0","t36","clearButton","openButtonBoxPadding","map","_temp","openButtonPadding","_temp2","openButtonProps","event_4","onClick","handleOpenClick","t37","openButtonNode","t38","bb1","t39","inputValue","event_5","handleListBoxKeyDown","t40","bb2","t41","t42","option_0","active","selected","tabIndex","t43","bb3","results","t44","t45","v_1","Math","max","v_0","RenderPopover","Exclude","Parameters"],"sources":["../src/core/components/autocomplete/autocomplete.styles.tsx","../src/core/components/autocomplete/autocompleteOption.tsx","../src/core/components/autocomplete/autocompleteReducer.ts","../src/core/components/autocomplete/constants.ts","../src/core/components/autocomplete/autocomplete.tsx"],"sourcesContent":["import {styled} from 'styled-components'\n\nimport {Box} from '../../primitives/box/box'\n\n/**\n * @internal\n */\nexport const StyledAutocomplete = styled.div`\n line-height: 0;\n`\n\n/**\n * @internal\n */\nexport const ListBox = styled(Box)`\n & > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n }\n`\n","import {useCallback} from 'react'\n\nimport {_isEnterToClickElement} from '../../helpers/element'\n\nexport interface AutocompleteOptionProps {\n children: React.ReactNode\n id: string\n onSelect: (v: string) => void\n selected: boolean\n value: string\n}\n\nexport function AutocompleteOption(props: AutocompleteOptionProps): React.JSX.Element {\n const {children, id, onSelect, selected, value} = props\n\n const handleClick = useCallback(() => {\n // Calling the `onSelect` in a timeout is a fix to\n // allow the `click` event to propagate in some cases\n setTimeout(() => {\n onSelect(value)\n }, 0)\n }, [onSelect, value])\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event.key === 'Enter' && !_isEnterToClickElement(event.currentTarget)) {\n handleClick()\n }\n },\n [handleClick],\n )\n\n return (\n <li\n aria-selected={selected}\n data-ui=\"AutocompleteOption\"\n id={id}\n // oxlint-disable-next-line no-noninteractive-element-to-interactive-role, prefer-tag-over-role\n role=\"option\"\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {children}\n </li>\n )\n}\n","import {AutocompleteMsg, AutocompleteState} from './types'\n\n/**\n * @internal\n */\nexport function autocompleteReducer(\n state: AutocompleteState,\n msg: AutocompleteMsg,\n): AutocompleteState {\n if (msg.type === 'input/change') {\n return {...state, activeValue: null, focused: true, query: msg.query}\n }\n\n if (msg.type === 'input/focus') {\n return {...state, focused: true}\n }\n\n if (msg.type === 'root/blur') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/clear') {\n return {...state, activeValue: null, query: null, value: null}\n }\n\n if (msg.type === 'root/escape') {\n return {...state, focused: false, query: null}\n }\n\n if (msg.type === 'root/open') {\n return {...state, query: state.query || msg.query}\n }\n\n if (msg.type === 'root/setActiveValue') {\n return {...state, activeValue: msg.value, listFocused: msg.listFocused || state.listFocused}\n }\n\n if (msg.type === 'root/setListFocused') {\n return {...state, listFocused: msg.listFocused}\n }\n\n if (msg.type === 'value/change') {\n return {...state, activeValue: msg.value, query: null, value: msg.value}\n }\n\n return state\n}\n","import {Placement} from '../../types/placement'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = [\n 'Control',\n 'Shift',\n 'Alt',\n 'Enter',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n 'Meta',\n 'Tab',\n 'CapsLock',\n]\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_PLACEMENT: Placement = 'bottom-start'\n\n/**\n * @internal\n */\nexport const AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS: Placement[] = ['bottom-start', 'top-start']\n","import {ChevronDownIcon} from '@sanity/icons/ChevronDown'\nimport {SpinnerIcon} from '@sanity/icons/Spinner'\nimport {\n ChangeEvent,\n cloneElement,\n ElementType,\n FocusEvent,\n HTMLProps,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n Ref,\n startTransition,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {_raf} from '../../helpers/animation'\nimport {_hasFocus, focusFirstDescendant} from '../../helpers/focus'\nimport {Box, BoxProps} from '../../primitives/box/box'\nimport {Button} from '../../primitives/button/button'\nimport {Card} from '../../primitives/card/card'\nimport {Popover, PopoverProps} from '../../primitives/popover/popover'\nimport {Stack} from '../../primitives/stack/stack'\nimport {Text} from '../../primitives/text/text'\nimport {TextInput} from '../../primitives/textInput/textInput'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {Radius} from '../../types/radius'\nimport {ListBox, StyledAutocomplete} from './autocomplete.styles'\nimport {AutocompleteOption} from './autocompleteOption'\nimport {autocompleteReducer} from './autocompleteReducer'\nimport {\n AUTOCOMPLETE_LISTBOX_IGNORE_KEYS,\n AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS,\n AUTOCOMPLETE_POPOVER_PLACEMENT,\n} from './constants'\nimport {AutocompleteOpenButtonProps, BaseAutocompleteOption} from './types'\n\nimport {spinnerIcon} from '../../primitives/spinner/spinner.css'\n\n/**\n * @public\n */\nexport interface AutocompleteProps<Option extends BaseAutocompleteOption = BaseAutocompleteOption> {\n border?: boolean\n customValidity?: string\n filterOption?: (query: string, option: Option) => boolean\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: ElementType | ReactNode\n id: string\n /** @beta */\n listBox?: BoxProps\n loading?: boolean\n onChange?: (value: string) => void\n onQueryChange?: (query: string | null) => void\n onSelect?: (value: string) => void\n /** @beta */\n openButton?: boolean | AutocompleteOpenButtonProps\n /** @beta */\n openOnFocus?: boolean\n /** The options to render. */\n options?: Option[]\n padding?: number | number[]\n popover?: Omit<PopoverProps, 'content' | 'onMouseEnter' | 'onMouseLeave' | 'open'> &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'ref' | 'width'>\n prefix?: ReactNode\n radius?: Radius | Radius[]\n /** @beta */\n relatedElements?: HTMLElement[]\n /** The callback function for rendering each option. */\n renderOption?: (option: Option) => React.JSX.Element\n /** @beta */\n renderPopover?: (\n props: {\n content: React.JSX.Element | null\n hidden: boolean\n inputElement: HTMLInputElement | null\n onMouseEnter: () => void\n onMouseLeave: () => void\n },\n ref: Ref<HTMLDivElement>,\n ) => ReactNode\n renderValue?: (value: string, option?: Option) => string\n suffix?: ReactNode\n /** The current value. */\n value?: string\n}\n\nconst DEFAULT_RENDER_VALUE = (value: string, option?: BaseAutocompleteOption) =>\n option ? option.value : value\n\nconst DEFAULT_FILTER_OPTION = (query: string, option: BaseAutocompleteOption) =>\n option.value.toLowerCase().indexOf(query.toLowerCase()) > -1\n\n/**\n * The Autocomplete component is typically used for search components.\n * It consists of a text input for writing a query, and properties for rendering suggestions.\n *\n * @public\n */\nexport function Autocomplete<Option extends BaseAutocompleteOption>(\n props: AutocompleteProps<Option> &\n Omit<\n HTMLProps<HTMLInputElement>,\n | 'aria-activedescendant'\n | 'aria-autocomplete'\n | 'aria-expanded'\n | 'aria-owns'\n | 'as'\n | 'autoCapitalize'\n | 'autoComplete'\n | 'autoCorrect'\n | 'id'\n | 'inputMode'\n | 'onChange'\n | 'onSelect'\n | 'popover'\n | 'prefix'\n | 'role'\n | 'spellCheck'\n | 'type'\n | 'value'\n >,\n) {\n const {\n border = true,\n customValidity,\n disabled,\n filterOption: filterOptionProp,\n fontSize = 2,\n icon,\n id,\n listBox = EMPTY_RECORD,\n loading,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n onSelect,\n openButton,\n openOnFocus,\n options: optionsProp,\n padding: paddingProp = 3,\n popover = EMPTY_RECORD,\n prefix,\n radius = 2,\n readOnly,\n ref: forwardedRef,\n relatedElements,\n renderOption: renderOptionProp,\n renderPopover,\n renderValue = DEFAULT_RENDER_VALUE,\n suffix,\n value: valueProp,\n ...restProps\n } = props\n\n const [state, dispatch] = useReducer(autocompleteReducer, {\n activeValue: valueProp || null,\n focused: false,\n listFocused: false,\n query: null,\n value: valueProp || null,\n })\n\n const {activeValue, focused, listFocused, query, value} = state\n\n const defaultRenderOption = useCallback(\n ({value}: BaseAutocompleteOption) => (\n <Card data-as=\"button\" padding={paddingProp} radius={2} tone=\"inherit\">\n <Text size={fontSize} textOverflow=\"ellipsis\">\n {value}\n </Text>\n </Card>\n ),\n [fontSize, paddingProp],\n )\n\n const renderOption =\n typeof renderOptionProp === 'function' ? renderOptionProp : defaultRenderOption\n\n const filterOption =\n typeof filterOptionProp === 'function' ? filterOptionProp : DEFAULT_FILTER_OPTION\n\n // Element refs\n const rootElementRef = useRef<HTMLDivElement | null>(null)\n const resultsPopoverElementRef = useRef<HTMLDivElement | null>(null)\n const inputElementRef = useRef<HTMLInputElement | null>(null)\n const listBoxElementRef = useRef<HTMLUListElement | null>(null)\n // Element refs that need to be accessed during render\n const [inputElement, _setInputElement] = useState<HTMLInputElement | null>(null)\n /**\n * The startTransition wrapper here is to avoid an issue when on React 18 where this error can happen:\n * >Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\n * This doesn't happen on React 19 due to automatic batching of all state updates, the startTransition wrapper here gives a type of batching for 18 users in a way that still works with 19.\n * NOTE: The startTransition wrapper is not needed in UI v4, since the baseline there is React 19.\n */\n const setInputElement = useCallback((node: HTMLInputElement | null) => {\n startTransition(() => _setInputElement(node))\n }, [])\n\n // Value refs\n const listFocusedRef = useRef(false)\n const valueRef = useRef(value)\n const valuePropRef = useRef(valueProp)\n const popoverMouseWithinRef = useRef(false)\n\n // Forward inputElement state to inputElementRef\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n inputElementRef,\n () => inputElement,\n [inputElement],\n )\n // Forward inputElement to parent\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => inputElement,\n [inputElement],\n )\n\n const listBoxId = `${id}-listbox`\n const options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY\n const padding = _getArrayProp(paddingProp)\n const currentOption = useMemo(\n () => (value !== null ? options.find((o) => o.value === value) : undefined),\n [options, value],\n )\n const filteredOptions = useMemo(\n () => options.filter((option) => (query ? filterOption(query, option) : true)),\n [filterOption, options, query],\n )\n const filteredOptionsLen = filteredOptions.length\n const activeItemId = activeValue ? `${id}-option-${activeValue}` : undefined\n const expanded = (query !== null && loading) || (focused && query !== null)\n\n const handleRootBlur = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => {\n // NOTE: This is a workaround for a bug that may happen in Chrome (clicking the scrollbar\n // closes the results in certain situations):\n // - Do not handle blur if the mouse is within the popover\n if (popoverMouseWithinRef.current) {\n return\n }\n\n const elements: HTMLElement[] = (relatedElements || []).concat(\n rootElementRef.current ? [rootElementRef.current] : [],\n resultsPopoverElementRef.current ? [resultsPopoverElementRef.current] : [],\n )\n\n let focusInside = false\n\n if (document.activeElement) {\n for (const e of elements) {\n if (e === document.activeElement || e.contains(document.activeElement)) {\n focusInside = true\n break\n }\n }\n }\n\n // oxlint-disable-next-line no-unnecessary-boolean-literal-compare\n if (focusInside === false) {\n dispatch({type: 'root/blur'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n if (onBlur) onBlur(event)\n }\n }, 0)\n },\n [onBlur, onQueryChange, relatedElements],\n )\n\n const handleRootFocus = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const listBoxElement = listBoxElementRef.current\n const focusedElement = event.target instanceof HTMLElement ? event.target : null\n const listFocused = listBoxElement?.contains(focusedElement) || false\n\n if (listFocused !== listFocusedRef.current) {\n listFocusedRef.current = listFocused\n\n dispatch({type: 'root/setListFocused', listFocused})\n }\n }, [])\n\n const handleOptionSelect = useCallback(\n (v: string) => {\n dispatch({type: 'value/change', value: v})\n\n popoverMouseWithinRef.current = false\n\n if (onSelect) onSelect(v)\n\n valueRef.current = v\n\n if (onChange) onChange(v)\n if (onQueryChange) onQueryChange(null)\n\n inputElementRef.current?.focus()\n },\n [onChange, onSelect, onQueryChange],\n )\n\n const handleRootKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption = filteredOptions[(activeIndex + 1) % filteredOptionsLen]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n\n if (!filteredOptionsLen) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n const activeIndex = activeOption ? filteredOptions.indexOf(activeOption) : -1\n const nextActiveOption =\n filteredOptions[\n activeIndex === -1\n ? filteredOptionsLen - 1\n : (filteredOptionsLen + activeIndex - 1) % filteredOptionsLen\n ]\n\n if (nextActiveOption) {\n dispatch({type: 'root/setActiveValue', value: nextActiveOption.value, listFocused: true})\n }\n\n return\n }\n\n if (event.key === 'Escape') {\n dispatch({type: 'root/escape'})\n popoverMouseWithinRef.current = false\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n\n return\n }\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n const target = event.target as Node\n const listEl = listBoxElementRef.current\n\n if (\n (listEl === target || listEl?.contains(target)) &&\n !AUTOCOMPLETE_LISTBOX_IGNORE_KEYS.includes(event.key)\n ) {\n inputElementRef.current?.focus()\n\n return\n }\n },\n [activeValue, filteredOptions, filteredOptionsLen, onQueryChange],\n )\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const nextQuery = event.currentTarget.value\n\n dispatch({type: 'input/change', query: nextQuery})\n\n if (onQueryChange) onQueryChange(nextQuery)\n },\n [onQueryChange],\n )\n\n const dispatchOpen = useCallback(() => {\n dispatch({\n type: 'root/open',\n query: value ? renderValue(value, currentOption) : '',\n })\n }, [currentOption, renderValue, value])\n\n const handleInputFocus = useCallback(\n (event: FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n dispatch({type: 'input/focus'})\n\n if (onFocus) onFocus(event)\n if (openOnFocus) dispatchOpen()\n }\n },\n [focused, onFocus, openOnFocus, dispatchOpen],\n )\n\n const handlePopoverMouseEnter = useCallback(() => {\n popoverMouseWithinRef.current = true\n }, [])\n\n const handlePopoverMouseLeave = useCallback(() => {\n popoverMouseWithinRef.current = false\n }, [])\n\n const handleClearButtonClick = useCallback(() => {\n dispatch({type: 'root/clear'})\n valueRef.current = ''\n if (onChange) onChange('')\n if (onQueryChange) onQueryChange(null)\n inputElementRef.current?.focus()\n }, [onChange, onQueryChange])\n\n const handleClearButtonFocus = useCallback(() => {\n dispatch({type: 'input/focus'})\n }, [])\n\n // Change the value when `value` prop changes\n useEffect(() => {\n // If `valueProp` changed\n if (valueProp !== valuePropRef.current) {\n valuePropRef.current = valueProp\n\n if (valueProp !== undefined) {\n dispatch({type: 'value/change', value: valueProp})\n valueRef.current = valueProp\n }\n\n return\n }\n\n // If `valueProp` is not equal to `value`\n if (valueProp !== valueRef.current) {\n valueRef.current = valueProp || null\n\n dispatch({type: 'value/change', value: valueProp || null})\n }\n }, [valueProp])\n\n // Reset active item when closing\n useEffect(() => {\n if (!focused && valueRef.current) {\n dispatch({type: 'root/setActiveValue', value: valueRef.current})\n }\n }, [focused])\n\n // Focus the selected item\n useEffect(() => {\n const listElement = listBoxElementRef.current\n\n if (!listElement) return\n\n const activeOption = filteredOptions.find((o) => o.value === activeValue)\n\n if (activeOption) {\n const activeIndex = filteredOptions.indexOf(activeOption)\n // oxlint-disable-next-line no-unsafe-type-assertion\n const activeItemElement = listElement.childNodes[activeIndex] as HTMLLIElement | undefined\n\n if (activeItemElement) {\n if (_hasFocus(activeItemElement)) {\n // already focused\n return\n }\n\n focusFirstDescendant(activeItemElement)\n }\n }\n }, [activeValue, filteredOptions])\n\n const clearButton = useMemo(() => {\n if (!loading && !disabled && value) {\n return {\n 'aria-label': 'Clear',\n 'onFocus': handleClearButtonFocus,\n }\n }\n\n return undefined\n }, [disabled, handleClearButtonFocus, loading, value])\n\n const openButtonBoxPadding = padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n })\n const openButtonPadding = padding.map((v) => Math.max(v - 1, 0))\n const openButtonProps: AutocompleteOpenButtonProps = useMemo(\n () => (typeof openButton === 'object' ? openButton : EMPTY_RECORD),\n [openButton],\n )\n\n const handleOpenClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n dispatchOpen()\n\n if (openButtonProps.onClick) openButtonProps.onClick(event)\n\n _raf(() => inputElementRef.current?.focus())\n },\n [openButtonProps, dispatchOpen],\n )\n\n const openButtonNode = useMemo(\n () =>\n !disabled && !readOnly && openButton ? (\n <Box aria-hidden={expanded} padding={openButtonBoxPadding}>\n <Button\n aria-label=\"Open\"\n disabled={expanded}\n fontSize={fontSize}\n icon={ChevronDownIcon}\n mode=\"bleed\"\n padding={openButtonPadding}\n {...openButtonProps}\n onClick={handleOpenClick}\n />\n </Box>\n ) : undefined,\n [\n disabled,\n expanded,\n fontSize,\n handleOpenClick,\n openButton,\n openButtonBoxPadding,\n openButtonPadding,\n openButtonProps,\n readOnly,\n ],\n )\n\n const inputValue = useMemo(() => {\n if (query === null) {\n if (value !== null) {\n return renderValue(value, currentOption)\n }\n\n return ''\n }\n\n return query\n }, [currentOption, query, renderValue, value])\n\n const handleListBoxKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n // If the focus is currently in the list, move focus to the input element\n if (event.key === 'Tab') {\n if (listFocused) inputElementRef.current?.focus()\n }\n },\n [listFocused],\n )\n\n const content = useMemo(() => {\n if (filteredOptions.length === 0) return null\n\n return (\n <ListBox\n data-ui=\"AutoComplete__results\"\n onKeyDown={handleListBoxKeyDown}\n padding={1}\n {...listBox}\n tabIndex={-1}\n >\n <Stack\n as=\"ul\"\n aria-multiselectable={false}\n data-ui=\"AutoComplete__resultsList\"\n id={listBoxId}\n ref={listBoxElementRef}\n // oxlint-disable-next-line prefer-tag-over-role\n role=\"listbox\"\n gap={1}\n >\n {filteredOptions.map((option) => {\n const active =\n activeValue !== null ? option.value === activeValue : currentOption === option\n\n return (\n <AutocompleteOption\n id={`${id}-option-${option.value}`}\n key={option.value}\n onSelect={handleOptionSelect}\n selected={active}\n value={option.value}\n >\n {cloneElement(renderOption(option), {\n disabled: loading,\n selected: active,\n tabIndex: listFocused && active ? 0 : -1,\n })}\n </AutocompleteOption>\n )\n })}\n </Stack>\n </ListBox>\n )\n }, [\n activeValue,\n currentOption,\n filteredOptions,\n handleOptionSelect,\n handleListBoxKeyDown,\n id,\n listBox,\n listBoxId,\n listFocused,\n loading,\n renderOption,\n ])\n\n const results = useMemo(() => {\n if (renderPopover) {\n return (\n <RenderPopover\n content={content}\n hidden={!expanded}\n inputElement={inputElement}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n resultsPopoverElementRef={resultsPopoverElementRef}\n renderPopover={renderPopover}\n />\n )\n }\n\n if (filteredOptionsLen === 0) {\n return null\n }\n\n return (\n <Popover\n arrow={false}\n constrainSize\n content={content}\n fallbackPlacements={AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS}\n matchReferenceWidth\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n open={expanded}\n overflow=\"auto\"\n placement={AUTOCOMPLETE_POPOVER_PLACEMENT}\n portal\n radius={radius}\n ref={resultsPopoverElementRef}\n referenceElement={inputElement}\n {...popover}\n />\n )\n }, [\n content,\n expanded,\n filteredOptionsLen,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n inputElement,\n popover,\n radius,\n renderPopover,\n ])\n\n return (\n <StyledAutocomplete\n data-ui=\"Autocomplete\"\n onBlur={handleRootBlur}\n onFocus={handleRootFocus}\n onKeyDown={handleRootKeyDown}\n ref={rootElementRef}\n >\n <TextInput\n {...restProps}\n aria-activedescendant={activeItemId}\n aria-autocomplete=\"list\"\n aria-expanded={expanded}\n aria-owns={listBoxId}\n autoCapitalize=\"off\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n border={border}\n clearButton={clearButton}\n customValidity={customValidity}\n disabled={disabled}\n fontSize={fontSize}\n icon={icon}\n iconRight={loading && <SpinnerIcon className={spinnerIcon} />}\n id={id}\n inputMode=\"search\"\n onChange={handleInputChange}\n onClear={handleClearButtonClick}\n onFocus={handleInputFocus}\n padding={padding}\n prefix={prefix}\n radius={radius}\n readOnly={readOnly}\n ref={setInputElement}\n // oxlint-disable-next-line prefer-tag-over-role, role-has-required-aria-props\n role=\"combobox\"\n spellCheck={false}\n suffix={suffix || openButtonNode}\n value={inputValue}\n />\n {results}\n </StyledAutocomplete>\n )\n}\n\nfunction RenderPopover({\n renderPopover,\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n resultsPopoverElementRef,\n}: {\n renderPopover: Exclude<AutocompleteProps['renderPopover'], undefined>\n resultsPopoverElementRef: Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[1]\n} & Parameters<Exclude<AutocompleteProps['renderPopover'], undefined>>[0]) {\n return renderPopover(\n {\n content,\n hidden,\n inputElement,\n onMouseEnter,\n onMouseLeave,\n },\n resultsPopoverElementRef,\n )\n}\n"],"mappings":"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"}
|
package/dist/breadcrumbs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { n as _getArrayProp } from "./helpers-bwfx1e-Y.js";
|
|
3
3
|
import { y as Box } from "./useLayer-BAVfmbNN.js";
|
|
4
4
|
import { n as Text, t as Stack } from "./stack-iW9HuGLg.js";
|
|
5
|
-
import { t as Button } from "./button-
|
|
5
|
+
import { t as Button } from "./button-DXgc_BsT.js";
|
|
6
6
|
import { t as Popover } from "./popover-PorX5Jv9.js";
|
|
7
7
|
import { t as useClickOutsideEvent } from "./useClickOutsideEvent-lEVhDFCQ.js";
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
@@ -4,11 +4,11 @@ import { _ as useTheme_v2, h as _cardColorStyle, m as focusRingStyle, p as focus
|
|
|
4
4
|
import { t as Flex } from "./flex-C-5JHi1C.js";
|
|
5
5
|
import { n as Text } from "./stack-iW9HuGLg.js";
|
|
6
6
|
import { c } from "react/compiler-runtime";
|
|
7
|
+
import { SpinnerIcon } from "@sanity/icons/Spinner";
|
|
7
8
|
import { isValidElement } from "react";
|
|
8
9
|
import { css, styled } from "styled-components";
|
|
9
10
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
10
11
|
import { isValidElementType } from "react-is";
|
|
11
|
-
import { SpinnerIcon } from "@sanity/icons/Spinner";
|
|
12
12
|
var spinnerIcon = "_1b6o2se1";
|
|
13
13
|
/**
|
|
14
14
|
* Indicate that something is loading for an indeterminate amount of time.
|
|
@@ -174,6 +174,6 @@ function ButtonComponent(props) {
|
|
|
174
174
|
* @public
|
|
175
175
|
*/
|
|
176
176
|
const Button = ButtonComponent;
|
|
177
|
-
export { Spinner as n, Button as t };
|
|
177
|
+
export { Spinner as n, spinnerIcon as r, Button as t };
|
|
178
178
|
|
|
179
|
-
//# sourceMappingURL=button-
|
|
179
|
+
//# sourceMappingURL=button-DXgc_BsT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-mxfSqr0n.js","names":["SpinnerIcon","Text","spinnerIcon","SpinnerProps","muted","size","Spinner","props","$","_c","t0","Symbol","for","t1","css","CSSObject","getTheme_v2","_cardColorStyle","focusRingBorderStyle","focusRingStyle","ThemeProps","ButtonMode","ButtonTone","ButtonWidth","buttonBaseStyles","props","$width","ReturnType","style","theme","button","combineBoxShadow","boxShadows","filter","Boolean","join","buttonColorStyles","$mode","$tone","color","baseColor","shadow","mode","default","border","width","defaultBoxShadow","undefined","enabled","disabled","boxShadow","base","bg","focusRing","hovered","pressed","root","isValidElement","useMemo","isValidElementType","styled","ThemeFontWeightKey","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useTheme_v2","ButtonMode","ButtonTextAlign","ButtonTone","ButtonWidth","ElementType","Props","FlexJustify","Box","Flex","Spinner","Text","ResponsivePaddingProps","ResponsiveRadiusProps","buttonBaseStyles","buttonColorStyles","ButtonOwnProps","fontSize","mode","icon","React","ReactNode","iconRight","justify","loading","selected","space","gap","muted","text","textAlign","textWeight","tone","type","width","ButtonProps","E","StyledButton","button","$mode","$tone","$width","LoadingBox","div","ButtonComponent","props","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","ref","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","spacing","t19","boxProps","t20","Boolean","t21","t22","t23","t24","t25","t26","Button","JSX","Element"],"sources":["../src/core/primitives/spinner/spinner.css.ts","../src/core/primitives/spinner/spinner.tsx","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx"],"sourcesContent":["import {keyframes, style} from '@vanilla-extract/css'\n\nconst rotate = keyframes({\n from: {transform: 'rotate(0deg)'},\n to: {transform: 'rotate(360deg)'},\n})\n\nexport const spinnerIcon = style({\n animation: `${rotate} 500ms linear infinite`,\n})\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\n\nimport {Text} from '../text/text'\n\nimport {spinnerIcon} from './spinner.css'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props}>\n <SpinnerIcon className={spinnerIcon} />\n </Text>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types/button'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${\n $width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `\n }\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth} from '../../types/button'\nimport {ElementType, Props} from '../../types/component'\nimport {FlexJustify} from '../../types/flex'\nimport {Box} from '../box/box'\nimport {Flex} from '../flex/flex'\nimport {Spinner} from '../spinner/spinner'\nimport {Text} from '../text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n mode?: ButtonMode\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n gap?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\nfunction ButtonComponent(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\n) {\n const {\n children,\n disabled,\n ref,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n gap = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={spacing}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={textWeight ?? button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n}\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button-DXgc_BsT.js","names":["SpinnerIcon","Text","spinnerIcon","SpinnerProps","muted","size","Spinner","props","$","_c","t0","Symbol","for","t1","css","CSSObject","getTheme_v2","_cardColorStyle","focusRingBorderStyle","focusRingStyle","ThemeProps","ButtonMode","ButtonTone","ButtonWidth","buttonBaseStyles","props","$width","ReturnType","style","theme","button","combineBoxShadow","boxShadows","filter","Boolean","join","buttonColorStyles","$mode","$tone","color","baseColor","shadow","mode","default","border","width","defaultBoxShadow","undefined","enabled","disabled","boxShadow","base","bg","focusRing","hovered","pressed","root","isValidElement","useMemo","isValidElementType","styled","ThemeFontWeightKey","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useTheme_v2","ButtonMode","ButtonTextAlign","ButtonTone","ButtonWidth","ElementType","Props","FlexJustify","Box","Flex","Spinner","Text","ResponsivePaddingProps","ResponsiveRadiusProps","buttonBaseStyles","buttonColorStyles","ButtonOwnProps","fontSize","mode","icon","React","ReactNode","iconRight","justify","loading","selected","space","gap","muted","text","textAlign","textWeight","tone","type","width","ButtonProps","E","StyledButton","button","$mode","$tone","$width","LoadingBox","div","ButtonComponent","props","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","ref","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","spacing","t19","boxProps","t20","Boolean","t21","t22","t23","t24","t25","t26","Button","JSX","Element"],"sources":["../src/core/primitives/spinner/spinner.css.ts","../src/core/primitives/spinner/spinner.tsx","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx"],"sourcesContent":["import {keyframes, style} from '@vanilla-extract/css'\n\nconst rotate = keyframes({\n from: {transform: 'rotate(0deg)'},\n to: {transform: 'rotate(360deg)'},\n})\n\nexport const spinnerIcon = style({\n animation: `${rotate} 500ms linear infinite`,\n})\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\n\nimport {Text} from '../text/text'\n\nimport {spinnerIcon} from './spinner.css'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props}>\n <SpinnerIcon className={spinnerIcon} />\n </Text>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types/button'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${\n $width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `\n }\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth} from '../../types/button'\nimport {ElementType, Props} from '../../types/component'\nimport {FlexJustify} from '../../types/flex'\nimport {Box} from '../box/box'\nimport {Flex} from '../flex/flex'\nimport {Spinner} from '../spinner/spinner'\nimport {Text} from '../text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n mode?: ButtonMode\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n gap?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\nfunction ButtonComponent(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\n) {\n const {\n children,\n disabled,\n ref,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n gap = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={spacing}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={textWeight ?? button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n}\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { a as rem, i as _responsive, n as _getArrayProp, r as _getResponsiveSpace, s as EMPTY_RECORD, t as _fillCSSObject } from "./helpers-bwfx1e-Y.js";
|
|
3
|
-
import { a as textInputRootStyle, c as useCustomValidity, d as focusFirstDescendant, f as focusLastDescendant, h as _raf2, i as textInputRepresentationStyle, l as _hasFocus, m as _raf, n as textInputBaseStyle, o as responsiveInputPaddingIconRightStyle, p as isFocusable, r as textInputFontSizeStyle, s as responsiveInputPaddingStyle, t as TextInput, u as attemptFocus } from "./textInput-
|
|
3
|
+
import { a as textInputRootStyle, c as useCustomValidity, d as focusFirstDescendant, f as focusLastDescendant, h as _raf2, i as textInputRepresentationStyle, l as _hasFocus, m as _raf, n as textInputBaseStyle, o as responsiveInputPaddingIconRightStyle, p as isFocusable, r as textInputFontSizeStyle, s as responsiveInputPaddingStyle, t as TextInput, u as attemptFocus } from "./textInput-CtgXqhgw.js";
|
|
4
4
|
import { a as isHTMLElement, c as isHTMLTextAreaElement, i as isHTMLButtonElement, n as containsOrEqualsElement, o as isHTMLInputElement, r as isHTMLAnchorElement, s as isHTMLSelectElement, t as _isEnterToClickElement } from "./element-BYgCE_iK.js";
|
|
5
5
|
import { t as getTheme_v2 } from "./getTheme_v2-y09KqtEb.js";
|
|
6
6
|
import { _ as useTheme_v2, a as useMatchMedia, b as responsivePaddingStyle, c as ThemeColorProvider, d as createGlobalScopedContext, g as useTheme, h as _cardColorStyle, i as usePrefersReducedMotion, l as useRootTheme, m as focusRingStyle, n as LayerProvider, o as useMediaIndex, p as focusRingBorderStyle, s as Card, t as useLayer, u as ThemeProvider, v as responsiveRadiusStyle, y as Box } from "./useLayer-BAVfmbNN.js";
|
|
7
7
|
import { t as Flex } from "./flex-C-5JHi1C.js";
|
|
8
8
|
import { a as responsiveTextAlignStyle, i as responsiveTextFont, n as Text, r as SpanWithTextOverflow, t as Stack } from "./stack-iW9HuGLg.js";
|
|
9
9
|
import { t as responsiveFont } from "./responsiveFont-hN1mZFjm.js";
|
|
10
|
-
import { n as Spinner, t as Button } from "./button-
|
|
10
|
+
import { n as Spinner, t as Button } from "./button-DXgc_BsT.js";
|
|
11
11
|
import { n as _elementSizeObserver, t as useElementSize } from "./useElementSize-BJvbGHq8.js";
|
|
12
12
|
import { a as useBoundaryElement, i as PortalContext, n as Portal, o as BoundaryElementContext, r as usePortal, t as Arrow } from "./arrow-CHE8-_G7.js";
|
|
13
13
|
import { t as useClickOutsideEvent } from "./useClickOutsideEvent-lEVhDFCQ.js";
|
|
@@ -3,7 +3,7 @@ import { a as isHTMLElement, c as isHTMLTextAreaElement, i as isHTMLButtonElemen
|
|
|
3
3
|
import { t as getTheme_v2 } from "./getTheme_v2-y09KqtEb.js";
|
|
4
4
|
import { l as useRootTheme, m as focusRingStyle, p as focusRingBorderStyle, s as Card, v as responsiveRadiusStyle, y as Box } from "./useLayer-BAVfmbNN.js";
|
|
5
5
|
import { n as Text } from "./stack-iW9HuGLg.js";
|
|
6
|
-
import { t as Button } from "./button-
|
|
6
|
+
import { t as Button } from "./button-DXgc_BsT.js";
|
|
7
7
|
import { c } from "react/compiler-runtime";
|
|
8
8
|
import { isValidElement, useEffect, useImperativeHandle, useRef } from "react";
|
|
9
9
|
import { css, styled } from "styled-components";
|
|
@@ -318,4 +318,4 @@ function _temp(event) {
|
|
|
318
318
|
}
|
|
319
319
|
export { textInputRootStyle as a, useCustomValidity as c, focusFirstDescendant as d, focusLastDescendant as f, _raf2 as h, textInputRepresentationStyle as i, _hasFocus as l, _raf as m, textInputBaseStyle as n, responsiveInputPaddingIconRightStyle as o, isFocusable as p, textInputFontSizeStyle as r, responsiveInputPaddingStyle as s, TextInput as t, attemptFocus as u };
|
|
320
320
|
|
|
321
|
-
//# sourceMappingURL=textInput-
|
|
321
|
+
//# sourceMappingURL=textInput-CtgXqhgw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textInput-udxyGbm1.js","names":["isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","element","HTMLElement","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","href","rel","type","disabled","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","focusLastDescendant","useEffect","useCustomValidity","ref","customValidity","$","_c","t0","t1","current","setCustomValidity","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","TextInputResponsivePaddingStyleProps","$fontSize","$iconLeft","$iconRight","$padding","$space","responsiveInputPaddingStyle","props","font","media","space","theme","len","Math","max","length","_padding","_space","_fontSize","i","undefined","_","size","text","sizes","emSize","lineHeight","ascenderHeight","descenderHeight","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","css","ThemeColorSchemeKey","CSSObject","ThemeFontWeightKey","getTheme_v2","CardTone","focusRingBorderStyle","focusRingStyle","_responsive","rem","ThemeProps","TextInputInputStyleProps","$fontSize","$scheme","$tone","$weight","TextInputRepresentationStyleProps","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","ROOT_STYLE","textInputRootStyle","ReturnType","textInputBaseStyle","props","color","font","theme","text","family","weights","regular","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","media","sizeIndex","size","sizes","fontSize","lineHeight","textInputRepresentationStyle","undefined","bg","border","width","focusRing","hovered","CloseIcon","isValidElement","useCallback","useImperativeHandle","useMemo","useRef","isValidElementType","styled","ThemeFontWeightKey","EMPTY_RECORD","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","Radius","Box","Button","ButtonOwnProps","Card","Text","TextInputClearButtonProps","Omit","React","HTMLProps","HTMLButtonElement","TextInputType","TextInputProps","__unstable_disableFocusRing","border","clearButton","customValidity","fontSize","icon","ElementType","ReactNode","iconRight","onClear","padding","prefix","radius","space","gap","suffix","type","weight","CLEAR_BUTTON_BOX_STYLE","CSSProperties","zIndex","StyledTextInput","attrs","forwardedAs","InputRoot","span","Prefix","Suffix","Input","input","Presentation","LeftBox","RightBox","RightCard","TextInputClearButton","display","TextInput","props","$","_c","IconComponent","IconRightComponent","forwardedRef","readOnly","restProps","t0","t1","t2","t3","t4","t5","t6","disabled","ref","undefined","fontSizeProp","paddingProp","radiusProp","rootTheme","t7","t8","t9","t10","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t11","Symbol","for","current","handleClearMouseDown","_temp","t12","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t13","prefixNode","t14","t15","t16","t17","scheme","tone","presentationNode","t18","map","_temp2","clearButtonBoxPadding","t19","_temp3","clearButtonPadding","clearButtonProps","t20","clearButtonNode","t21","suffixNode","t22","t23","t24","t25","v_0","v"],"sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/primitives/textInput/textInput.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {css} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {CardTone} from '../../types/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: `${size.lineHeight / size.fontSize}`,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${\n $unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })\n };\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${\n $unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})\n };\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Button, ButtonOwnProps} from '../button/button'\nimport {Card} from '../card/card'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = ButtonOwnProps &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n gap?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n gap = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n ref: forwardedRef,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"textInput-CtgXqhgw.js","names":["isHTMLAnchorElement","isHTMLButtonElement","isHTMLElement","isHTMLInputElement","isHTMLSelectElement","isHTMLTextAreaElement","_hasFocus","element","HTMLElement","Boolean","document","activeElement","contains","isFocusable","tabIndex","getAttribute","href","rel","type","disabled","attemptFocus","focus","focusFirstDescendant","i","childNodes","length","child","focusLastDescendant","useEffect","useCustomValidity","ref","customValidity","$","_c","t0","t1","current","setCustomValidity","CSSObject","getTheme_v2","_responsive","rem","ThemeProps","TextInputResponsivePaddingStyleProps","$fontSize","$iconLeft","$iconRight","$padding","$space","responsiveInputPaddingStyle","props","font","media","space","theme","len","Math","max","length","_padding","_space","_fontSize","i","undefined","_","size","text","sizes","emSize","lineHeight","ascenderHeight","descenderHeight","p","s","styles","paddingTop","paddingRight","paddingBottom","paddingLeft","responsiveInputPaddingIconRightStyle","css","ThemeColorSchemeKey","CSSObject","ThemeFontWeightKey","getTheme_v2","CardTone","focusRingBorderStyle","focusRingStyle","_responsive","rem","ThemeProps","TextInputInputStyleProps","$fontSize","$scheme","$tone","$weight","TextInputRepresentationStyleProps","$hasPrefix","$hasSuffix","$unstableDisableFocusRing","ROOT_STYLE","textInputRootStyle","ReturnType","textInputBaseStyle","props","color","font","theme","text","family","weights","regular","input","default","enabled","fg","placeholder","disabled","invalid","readOnly","textInputFontSizeStyle","media","sizeIndex","size","sizes","fontSize","lineHeight","textInputRepresentationStyle","undefined","bg","border","width","focusRing","hovered","CloseIcon","isValidElement","useCallback","useImperativeHandle","useMemo","useRef","isValidElementType","styled","ThemeFontWeightKey","EMPTY_RECORD","useCustomValidity","_getArrayProp","responsiveInputPaddingStyle","TextInputResponsivePaddingStyleProps","textInputBaseStyle","textInputFontSizeStyle","TextInputInputStyleProps","textInputRepresentationStyle","TextInputRepresentationStyleProps","textInputRootStyle","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useRootTheme","Radius","Box","Button","ButtonOwnProps","Card","Text","TextInputClearButtonProps","Omit","React","HTMLProps","HTMLButtonElement","TextInputType","TextInputProps","__unstable_disableFocusRing","border","clearButton","customValidity","fontSize","icon","ElementType","ReactNode","iconRight","onClear","padding","prefix","radius","space","gap","suffix","type","weight","CLEAR_BUTTON_BOX_STYLE","CSSProperties","zIndex","StyledTextInput","attrs","forwardedAs","InputRoot","span","Prefix","Suffix","Input","input","Presentation","LeftBox","RightBox","RightCard","TextInputClearButton","display","TextInput","props","$","_c","IconComponent","IconRightComponent","forwardedRef","readOnly","restProps","t0","t1","t2","t3","t4","t5","t6","disabled","ref","undefined","fontSizeProp","paddingProp","radiusProp","rootTheme","t7","t8","t9","t10","$hasClearButton","Boolean","$hasIcon","$hasIconRight","$hasSuffix","$hasPrefix","t11","Symbol","for","current","handleClearMouseDown","_temp","t12","event_0","event","preventDefault","stopPropagation","focus","handleClearClick","t13","prefixNode","t14","t15","t16","t17","scheme","tone","presentationNode","t18","map","_temp2","clearButtonBoxPadding","t19","_temp3","clearButtonPadding","clearButtonProps","t20","clearButtonNode","t21","suffixNode","t22","t23","t24","t25","v_0","v"],"sources":["../src/core/helpers/animation.ts","../src/core/helpers/focus.ts","../src/core/hooks/useCustomValidity.ts","../src/core/styles/input/responsiveInputPaddingStyle.ts","../src/core/styles/input/textInputStyle.ts","../src/core/primitives/textInput/textInput.tsx"],"sourcesContent":["/**\n * @internal\n */\nexport function _raf(fn: () => void): () => void {\n const frameId = requestAnimationFrame(fn)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n}\n\n/**\n * @internal\n */\nexport function _raf2(fn: () => void): () => void {\n let innerDispose: (() => void) | null = null\n\n const outerDispose = _raf(() => {\n innerDispose = _raf(fn)\n })\n\n return () => {\n if (innerDispose) innerDispose()\n\n outerDispose()\n }\n}\n","import {\n isHTMLAnchorElement,\n isHTMLButtonElement,\n isHTMLElement,\n isHTMLInputElement,\n isHTMLSelectElement,\n isHTMLTextAreaElement,\n} from './element'\n\n// export const globalFocusState = {\n// IgnoreUtilFocusChanges: false,\n// }\n\n/**\n * @internal\n */\nexport function _hasFocus(element: HTMLElement): boolean {\n return Boolean(document.activeElement) && element.contains(document.activeElement)\n}\n\n/**\n * @internal\n */\nexport function isFocusable(element: HTMLElement): boolean {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n\n if (isHTMLAnchorElement(element)) {\n return Boolean(element.href) && element.rel !== 'ignore'\n }\n\n if (isHTMLInputElement(element)) {\n return element.type !== 'hidden' && element.type !== 'file' && !element.disabled\n }\n\n if (\n isHTMLButtonElement(element) ||\n isHTMLSelectElement(element) ||\n isHTMLTextAreaElement(element)\n ) {\n return !element.disabled\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function attemptFocus(element: HTMLElement): boolean {\n if (!isFocusable(element)) {\n return false\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = true\n\n try {\n element.focus()\n } catch {\n // ignore\n }\n\n // globalFocusState.IgnoreUtilFocusChanges = false\n\n return document.activeElement === element\n}\n\n/**\n * @internal\n */\nexport function focusFirstDescendant(element: HTMLElement): boolean {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusFirstDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @internal\n */\nexport function focusLastDescendant(element: HTMLElement): boolean {\n for (let i = element.childNodes.length - 1; i >= 0; i--) {\n const child = element.childNodes[i]\n\n if (isHTMLElement(child) && (attemptFocus(child) || focusLastDescendant(child))) {\n return true\n }\n }\n\n return false\n}\n","import {useEffect} from 'react'\n\n/**\n * @beta\n */\nexport function useCustomValidity(\n ref: {current: null | {setCustomValidity: (validity: string) => void}},\n customValidity: string | undefined,\n): void {\n useEffect(() => {\n ref.current?.setCustomValidity(customValidity || '')\n }, [customValidity, ref])\n}\n","import {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\nexport interface TextInputResponsivePaddingStyleProps {\n $fontSize: number[]\n $iconLeft?: boolean\n $iconRight?: boolean\n $padding: number[]\n $space: number[]\n}\n\nexport function responsiveInputPaddingStyle(\n props: TextInputResponsivePaddingStyleProps & ThemeProps,\n): CSSObject[] {\n const {$fontSize, $iconLeft, $iconRight, $padding, $space} = props\n const {font, media, space} = getTheme_v2(props.theme)\n const len = Math.max($padding.length, $space.length, $fontSize.length)\n const _padding: number[] = []\n const _space: number[] = []\n const _fontSize: number[] = []\n\n for (let i = 0; i < len; i += 1) {\n _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i]\n _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i]\n _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i]\n }\n\n return _responsive(media, _padding, (_, i) => {\n const size = font.text.sizes[_fontSize[i]] || font.text.sizes[2]\n const emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight\n const p = space[_padding[i]]\n const s = space[_space[i]]\n\n const styles = {\n paddingTop: rem(p - size.ascenderHeight),\n paddingRight: rem(p),\n paddingBottom: rem(p - size.descenderHeight),\n paddingLeft: rem(p),\n }\n\n if ($iconRight) styles.paddingRight = rem(p + emSize + s)\n if ($iconLeft) styles.paddingLeft = rem(p + emSize + s)\n\n return styles\n })\n}\n\nexport function responsiveInputPaddingIconRightStyle(\n props: {\n $fontSize: number[]\n $padding: number[]\n $space: number[]\n } & ThemeProps,\n): CSSObject[] {\n return responsiveInputPaddingStyle({...props, $iconRight: true})\n}\n","import {css} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {CSSObject} from '../../../theme/system/css'\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {CardTone} from '../../types/card'\nimport {focusRingBorderStyle, focusRingStyle} from '../focusRing'\nimport {_responsive, rem} from '../helpers'\nimport {ThemeProps} from '../types'\n\n/**\n * @internal\n */\nexport interface TextInputInputStyleProps {\n $fontSize: number[]\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $weight?: ThemeFontWeightKey\n}\n\n/**\n * @internal\n */\nexport interface TextInputRepresentationStyleProps {\n $hasPrefix?: boolean\n $hasSuffix?: boolean\n $scheme: ThemeColorSchemeKey\n $tone: CardTone\n $unstableDisableFocusRing?: boolean\n}\n\nconst ROOT_STYLE = css`\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n`\n\nexport function textInputRootStyle(): ReturnType<typeof css> {\n return ROOT_STYLE\n}\n\nexport function textInputBaseStyle(\n props: TextInputInputStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$scheme, $tone, $weight} = props\n const {color, font} = getTheme_v2(props.theme)\n\n return css`\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ${font.text.family};\n font-weight: ${($weight && font.text.weights[$weight]) || font.text.weights.regular};\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome’s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ${color.input.default.enabled.fg};\n --input-placeholder-color: ${color.input.default.enabled.placeholder};\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ${color.input.default.disabled.fg};\n --input-placeholder-color: ${color.input.default.disabled.placeholder};\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ${color.input.invalid.enabled.fg};\n --input-placeholder-color: ${color.input.invalid.enabled.placeholder};\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ${color.input.default.readOnly.fg};\n --input-placeholder-color: ${color.input.default.readOnly.placeholder};\n }\n }\n `\n}\n\nexport function textInputFontSizeStyle(props: TextInputInputStyleProps & ThemeProps): CSSObject[] {\n const {font, media} = getTheme_v2(props.theme)\n\n return _responsive(media, props.$fontSize, (sizeIndex) => {\n const size = font.text.sizes[sizeIndex] || font.text.sizes[2]\n\n return {\n fontSize: rem(size.fontSize),\n lineHeight: `${size.lineHeight / size.fontSize}`,\n }\n })\n}\n\nexport function textInputRepresentationStyle(\n props: TextInputRepresentationStyleProps & ThemeProps,\n): ReturnType<typeof css> {\n const {$hasPrefix, $hasSuffix, $scheme, $tone, $unstableDisableFocusRing} = props\n const {color, input} = getTheme_v2(props.theme)\n\n return css`\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ${$hasPrefix ? 0 : undefined};\n border-bottom-left-radius: ${$hasPrefix ? 0 : undefined};\n border-top-right-radius: ${$hasSuffix ? 0 : undefined};\n border-bottom-right-radius: ${$hasSuffix ? 0 : undefined};\n\n &[data-scheme='${$scheme}'][data-tone='${$tone}'] {\n --card-bg-color: ${color.input.default.enabled.bg};\n --card-fg-color: ${color.input.default.enabled.fg};\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.enabled.border,\n width: input.border.width,\n })};\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ${color.input.invalid.enabled.bg};\n --card-fg-color: ${color.input.invalid.enabled.fg};\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.enabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ${\n $unstableDisableFocusRing\n ? undefined\n : focusRingStyle({\n border: {color: color.input.default.enabled.border, width: input.border.width},\n focusRing: input.text.focusRing,\n })\n };\n }\n\n &:not([data-border]) {\n --input-box-shadow: ${\n $unstableDisableFocusRing\n ? undefined\n : focusRingStyle({focusRing: input.text.focusRing})\n };\n }\n }\n\n /* disabled */\n *:not(:invalid):disabled + & {\n --card-bg-color: ${color.input.default.disabled.bg} !important;\n --card-fg-color: ${color.input.default.disabled.fg} !important;\n --card-icon-color: ${color.input.default.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ${color.input.invalid.disabled.bg} !important;\n --card-fg-color: ${color.input.invalid.disabled.fg} !important;\n --card-icon-color: ${color.input.invalid.disabled.fg} !important;\n\n &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.disabled.border,\n width: input.border.width,\n })};\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ${color.input.default.readOnly.bg} !important;\n --card-fg-color: ${color.input.default.readOnly.fg} !important;\n }\n\n *:invalid:read-only + & {\n --card-bg-color: ${color.input.invalid.readOnly.bg} !important;\n --card-fg-color: ${color.input.invalid.readOnly.fg} !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ${color.input.default.hovered.bg};\n --card-fg-color: ${color.input.default.hovered.fg};\n }\n\n *:invalid:not(:disabled):not(:read-only):hover + & {\n --card-bg-color: ${color.input.invalid.hovered.bg};\n --card-fg-color: ${color.input.invalid.hovered.fg};\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.default.hovered.border,\n width: input.border.width,\n })};\n }\n\n *:invalid:not(:disabled):not(:read-only):not(:focus):hover + &[data-border] {\n --input-box-shadow: ${focusRingBorderStyle({\n color: color.input.invalid.hovered.border,\n width: input.border.width,\n })};\n }\n }\n }\n `\n}\n","import {CloseIcon} from '@sanity/icons/Close'\nimport {isValidElement, useCallback, useImperativeHandle, useMemo, useRef} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {EMPTY_RECORD} from '../../constants'\nimport {useCustomValidity} from '../../hooks/useCustomValidity'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {\n responsiveInputPaddingStyle,\n TextInputResponsivePaddingStyleProps,\n} from '../../styles/input/responsiveInputPaddingStyle'\nimport {\n textInputBaseStyle,\n textInputFontSizeStyle,\n TextInputInputStyleProps,\n textInputRepresentationStyle,\n TextInputRepresentationStyleProps,\n textInputRootStyle,\n} from '../../styles/input/textInputStyle'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useRootTheme} from '../../theme/useRootTheme'\nimport {Radius} from '../../types/radius'\nimport {Box} from '../box/box'\nimport {Button, ButtonOwnProps} from '../button/button'\nimport {Card} from '../card/card'\nimport {Text} from '../text/text'\n\n/**\n * @public\n */\nexport type TextInputClearButtonProps = ButtonOwnProps &\n Omit<React.HTMLProps<HTMLButtonElement>, 'as' | 'onClick' | 'onMouseDown' | 'ref'>\n\n/**\n * @public\n */\nexport type TextInputType =\n | 'search'\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'url'\n | 'month'\n | 'number'\n | 'password'\n | 'tel'\n | 'time'\n | 'text'\n | 'week'\n | 'color'\n\n/**\n * @public\n */\nexport interface TextInputProps {\n /**\n * @beta\n */\n __unstable_disableFocusRing?: boolean\n border?: boolean\n /**\n * @beta\n */\n clearButton?: boolean | TextInputClearButtonProps\n customValidity?: string\n fontSize?: number | number[]\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n /**\n * @beta\n */\n onClear?: () => void\n padding?: number | number[]\n prefix?: React.ReactNode\n radius?: Radius | Radius[]\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n gap?: number | number[]\n suffix?: React.ReactNode\n type?: TextInputType\n weight?: ThemeFontWeightKey\n}\n\nconst CLEAR_BUTTON_BOX_STYLE: React.CSSProperties = {zIndex: 2}\n\nconst StyledTextInput = styled(Card).attrs({forwardedAs: 'span'})(textInputRootStyle)\n\nconst InputRoot = styled.span`\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n`\n\nconst Prefix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Suffix = styled(Card).attrs({forwardedAs: 'span'})`\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n`\n\nconst Input = styled.input<TextInputResponsivePaddingStyleProps & TextInputInputStyleProps>(\n responsiveInputPaddingStyle,\n textInputBaseStyle,\n textInputFontSizeStyle,\n)\n\nconst Presentation = styled.span<ResponsiveRadiusStyleProps & TextInputRepresentationStyleProps>(\n responsiveRadiusStyle,\n textInputRepresentationStyle,\n)\n\nconst LeftBox = styled(Box)`\n position: absolute;\n top: 0;\n left: 0;\n`\n\nconst RightBox = styled(Box)`\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst RightCard = styled(Card)`\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n`\n\nconst TextInputClearButton = styled(Button)({\n '&:not([hidden])': {\n display: 'block',\n },\n})\n\n/**\n * Single line text input.\n *\n * @public\n */\nexport function TextInput(\n props: TextInputProps & Omit<React.HTMLProps<HTMLInputElement>, 'as' | 'prefix' | 'type'>,\n) {\n const {\n __unstable_disableFocusRing,\n border = true,\n clearButton,\n disabled = false,\n fontSize: fontSizeProp = 2,\n gap = 3,\n icon: IconComponent,\n iconRight: IconRightComponent,\n onClear,\n padding: paddingProp = 3,\n prefix,\n radius: radiusProp = 2,\n readOnly,\n ref: forwardedRef,\n suffix,\n customValidity,\n type = 'text',\n weight,\n ...restProps\n } = props\n const ref = useRef<HTMLInputElement | null>(null)\n\n const rootTheme = useRootTheme()\n\n const fontSize = _getArrayProp(fontSizeProp)\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const space = _getArrayProp(gap)\n\n // Transient properties\n const $hasClearButton = Boolean(clearButton)\n const $hasIcon = Boolean(IconComponent)\n const $hasIconRight = Boolean(IconRightComponent)\n const $hasSuffix = Boolean(suffix)\n const $hasPrefix = Boolean(prefix)\n\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(\n forwardedRef,\n () => ref.current,\n )\n\n useCustomValidity(ref, customValidity)\n\n // Prevent the clear button from taking the focus away from the input\n const handleClearMouseDown = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n }, [])\n\n const handleClearClick = useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n event.stopPropagation()\n\n if (onClear) onClear()\n\n // Focus the input, in case focus has been lost when clicking the clear button\n ref.current?.focus()\n },\n [onClear, ref],\n )\n\n // Render prefix (memoized)\n const prefixNode = useMemo(\n () =>\n prefix && (\n <Prefix borderTop borderLeft borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{prefix}</span>\n </Prefix>\n ),\n [prefix, radius],\n )\n\n // Render presentation (memoized)\n const presentationNode = useMemo(\n () => (\n <Presentation\n $hasPrefix={$hasPrefix}\n $unstableDisableFocusRing={__unstable_disableFocusRing}\n $hasSuffix={$hasSuffix}\n $radius={radius}\n $scheme={rootTheme.scheme}\n $tone={rootTheme.tone}\n data-border={border ? '' : undefined}\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n >\n {IconComponent && (\n <LeftBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n </LeftBox>\n )}\n\n {!$hasClearButton && IconRightComponent && (\n <RightBox padding={padding}>\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n </RightBox>\n )}\n </Presentation>\n ),\n [\n __unstable_disableFocusRing,\n border,\n fontSize,\n IconComponent,\n IconRightComponent,\n padding,\n radius,\n rootTheme,\n $hasClearButton,\n $hasPrefix,\n $hasSuffix,\n ],\n )\n\n // Render clear button (memoized)\n const clearButtonBoxPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 1\n if (v === 2) return 1\n\n return v - 2\n }),\n [padding],\n )\n const clearButtonPadding = useMemo(\n () =>\n padding.map((v) => {\n if (v === 0) return 0\n if (v === 1) return 0\n if (v === 2) return 1\n\n return v - 1\n }),\n [padding],\n )\n const clearButtonProps: TextInputClearButtonProps = useMemo(\n () => (typeof clearButton === 'object' ? clearButton : EMPTY_RECORD),\n [clearButton],\n )\n const clearButtonNode = useMemo(\n () =>\n !disabled &&\n !readOnly &&\n clearButton && (\n <RightCard\n forwardedAs=\"span\"\n padding={clearButtonBoxPadding}\n style={CLEAR_BUTTON_BOX_STYLE}\n tone={customValidity ? 'critical' : 'inherit'}\n >\n <TextInputClearButton\n aria-label=\"Clear\"\n data-qa=\"clear-button\"\n fontSize={fontSize}\n icon={CloseIcon}\n mode=\"bleed\"\n padding={clearButtonPadding}\n radius={radius}\n {...clearButtonProps}\n onClick={handleClearClick}\n onMouseDown={handleClearMouseDown}\n />\n </RightCard>\n ),\n [\n clearButton,\n clearButtonBoxPadding,\n clearButtonPadding,\n clearButtonProps,\n customValidity,\n disabled,\n fontSize,\n handleClearClick,\n handleClearMouseDown,\n radius,\n readOnly,\n ],\n )\n\n // Render suffix (memoized)\n const suffixNode = useMemo(\n () =>\n suffix && (\n <Suffix borderTop borderRight borderBottom radius={radius} sizing=\"border\" tone=\"inherit\">\n <span>{suffix}</span>\n </Suffix>\n ),\n [radius, suffix],\n )\n\n return (\n <StyledTextInput data-ui=\"TextInput\" tone={rootTheme.tone}>\n {prefixNode}\n\n <InputRoot>\n <Input\n data-as=\"input\"\n data-scheme={rootTheme.scheme}\n data-tone={rootTheme.tone}\n {...restProps}\n $fontSize={fontSize}\n $iconLeft={$hasIcon}\n $iconRight={$hasIconRight || $hasClearButton}\n $padding={padding}\n $scheme={rootTheme.scheme}\n $space={space}\n $tone={rootTheme.tone}\n $weight={weight}\n disabled={disabled}\n readOnly={readOnly}\n ref={ref}\n type={type}\n />\n\n {presentationNode}\n {clearButtonNode}\n </InputRoot>\n\n {suffixNode}\n </StyledTextInput>\n )\n}\n"],"mappings":"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"}
|
package/dist/toast.js
CHANGED
|
@@ -3,7 +3,7 @@ import { t as getTheme_v2 } from "./getTheme_v2-y09KqtEb.js";
|
|
|
3
3
|
import { d as createGlobalScopedContext, i as usePrefersReducedMotion, n as LayerProvider, r as isRecord, s as Card, t as useLayer, y as Box } from "./useLayer-BAVfmbNN.js";
|
|
4
4
|
import { t as Flex } from "./flex-C-5JHi1C.js";
|
|
5
5
|
import { n as Text, t as Stack } from "./stack-iW9HuGLg.js";
|
|
6
|
-
import { t as Button } from "./button-
|
|
6
|
+
import { t as Button } from "./button-DXgc_BsT.js";
|
|
7
7
|
import { t as Grid } from "./grid-BXHFJhf_.js";
|
|
8
8
|
import { c } from "react/compiler-runtime";
|
|
9
9
|
import { startTransition, useContext, useState, useSyncExternalStore } from "react";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sanity/ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"components",
|
|
6
6
|
"design-system",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@sanity/tsdown-config": "^0.24.0",
|
|
62
62
|
"@sanity/vanilla-extract-vite-plugin": "^0.2.11",
|
|
63
63
|
"@testing-library/dom": "^10.4.1",
|
|
64
|
-
"@testing-library/jest-dom": "^7.0.
|
|
64
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
65
65
|
"@testing-library/react": "^16.3.2",
|
|
66
66
|
"@testing-library/user-event": "^14.6.3",
|
|
67
67
|
"@types/node": "^24.13.3",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"react": "^19.2.8",
|
|
75
75
|
"react-dom": "^19.2.8",
|
|
76
76
|
"rimraf": "^5.0.5",
|
|
77
|
-
"styled-components": "^6.5.
|
|
77
|
+
"styled-components": "^6.5.1",
|
|
78
78
|
"tsdown": "^0.22.14",
|
|
79
79
|
"typescript": "7.0.2",
|
|
80
80
|
"unrun": "^0.3.1",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"react": "^19.2",
|
|
87
87
|
"react-dom": "^19.2",
|
|
88
|
-
"styled-components": "^
|
|
88
|
+
"styled-components": "^6.1"
|
|
89
89
|
},
|
|
90
90
|
"engines": {
|
|
91
91
|
"node": ">=22.12"
|