@viasat/beam-react 2.29.0 → 2.29.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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),n=require("react"),Qe=require("../../chunks/classNames.DAeKwerT.js"),Ue=require("../../chunks/constants.hwjHOsvT.js"),i=require("../../chunks/combobox.module.BRWGQi7s.js"),V=require("clsx"),E=require("../../chunks/form.context.hesWPMlU.js"),Xe=require("../Form/contexts/label.context.cjs.js"),Ye=require("../Form/contexts/helperText.context.cjs.js"),L=require("../ActionList/ActionList.cjs.js"),H=require("../_Options/Option.context.cjs.js"),Ze=require("../_Options/Option.cjs.js"),et=require("../_Options/useSelectValue.cjs.js"),tt=require("./useAutocompleteDropdown.cjs.js"),st=require("./AutocompleteDropdown.cjs.js"),ot=require("./useAutocompleteChips.cjs.js"),lt=require("./useAutocompleteKeyboardManager.cjs.js"),it=require("./utils/filterOptions.cjs.js"),rt=require("./useClearSelection.cjs.js"),nt=require("./AutocompleteField.cjs.js"),ct=require("./useAutocompleteA11y.cjs.js"),at=require("./useAutocompleteInteractions.cjs.js"),ut=require("../_Options/strategies/SelectionStrategy.cjs.js"),dt=require("../_Options/OptionChips.cjs.js"),{baseClassNamePrefix:pt,subElementClassPrefix:$,classModifierPrefix:c}=Qe.getBEMClassNames("combobox"),mt=n.forwardRef(({theme:q,width:K,error:u,children:G,label:W=null,contentBefore:z,contentAfter:J,fluid:Q=!1,helperText:B=null,validationRules:U=[],className:X,hideRequiredMarker:Y=!1,disabled:Z=!1,readOnly:ee=!1,required:te=!1,placeholder:se="",onChange:x,noResultsText:oe="No results found",optionFilter:v,..._},le)=>{const{id:D,name:ie,"aria-describedby":re,multiple:s=!1,clearable:ne=s,...ce}=_,{showErrors:ae,isInvalid:ue,errorShown:de,disabled:o,readOnly:r,required:C}=E.useFormField({name:ie,validationRules:U,disabledProp:Z,readOnlyProp:ee,requiredProp:te}),{aria:y,ids:pe}=ct.default({helperText:B,externalDescribedBy:re,error:u,errorShown:de,invalid:!!u||ue}),{helperTextId:me,errorId:be,validationErrorsId:xe,labelId:g}=pe,_e=!!(u!=null&&u.length),ye=n.useCallback(t=>{x==null||x(t)},[x]),{value:d,setValue:F,selectProps:he,handleBlur:fe,singleValue:P}=et.useSelectValue({onChange:ye,..._},le),[p,S]=n.useState(null),I=!p&&(!d||Array.isArray(d)&&!d.length),{optionsContext:Ae,optionIds:a,optionsProps:m,selectedOptionsProps:j,deselectOptionValue:w,getOptionByIndex:Oe}=H.useCreateOptionsContext(d,F,s),qe=n.useMemo(()=>{if(!P)return;const t=a.map(e=>m.get(e)).findIndex(e=>(e==null?void 0:e.value)===P);return t!==-1?t:void 0},[a,m,P]),M=n.useRef(null),{getFieldProps:ve,getInputProps:Ce,dropdownProps:ge,refs:Pe,open:R,setOpen:h,status:Se,setDisplayActiveIndex:Ie}=tt.useAutocompleteDropdown({disabled:o,readOnly:r,lastSelectedOptionIndex:qe,fieldRef:M}),f=Pe.domReference,je=V(i.styles[pt],q&&Ue.themeClassName(q),Q&&i.styles[`${c}fluid`],y.invalid&&i.styles[`${c}error`],o&&i.styles[`${c}disabled`],r&&i.styles[`${c}read-only`],I&&i.styles[`${c}empty`],s&&i.styles[`${c}multiple`],i.styles[`${c}autocomplete`],i.styles[`${c}dropdown-${Se}`],X),{canClear:Me,handleClear:Ne}=rt.default({multiple:s,clearable:ne,isEmpty:I,disabled:o,readOnly:r,setValue:F,setSearchText:S,inputRef:f,setOpen:h}),{chipGroupProps:$e,handleBlur:Be,selectedChip:De,setSelectedChip:Fe,enabled:we,selectPreviousChip:Re,selectNextChip:ke,options:Te,deselectOptionValue:Ve}=ot.useAutocompleteChips({multiple:s,disabled:o,readOnly:r,open:R,setOpen:h,options:j,deselectOptionValue:w,fieldRef:M,inputRef:f}),{getKeyboardProps:k}=lt.useAutocompleteKeyboardManager({multiple:s,disabled:o,readOnly:r,open:R,setOpen:h,inputRef:f,fieldRef:M,chips:{enabled:we,selectedChip:De,setSelectedChip:Fe,selectPreviousChip:Re,selectNextChip:ke,options:Te,deselectOptionValue:Ve}}),T=n.useMemo(()=>ut.createSelectionStrategy(s),[s]),{handleBlur:Ee,handleFocus:Le,handleItemClick:He}=at.useAutocompleteInteractions({selectionStrategy:T,selectedOptions:j,inputRef:f,blurSelect:fe,blurChips:Be,setSearchText:S,setOpen:h,searchText:p,getOptionByIndex:Oe,setDisplayActiveIndex:Ie}),N=n.useMemo(()=>a.reduce((t,e)=>{const b=m.get(e);if(!b)return t;const A=v?v(b,p):it.default(b,p);return t[e]=A,t},{}),[a,m,p,v]),Ke=n.useMemo(()=>a.every(t=>N[t]),[a,N]),{ref:Ge,...We}=k(ve()),ze=k(Ce());return l.jsxs(H.OptionsProvider,{value:Ae,children:[l.jsxs("div",{className:je,style:{maxWidth:K},children:[l.jsx(Xe.LabelProvider,{ctxHtmlFor:D,ctxDisabled:o,ctxRequired:C&&!Y,ctxId:g,children:W}),l.jsx(nt.AutocompleteField,{id:D,disabled:o,readOnly:r,required:C,contentBefore:z,contentAfter:J,chips:l.jsx(dt.OptionChips,{multiple:s,disabled:o,readOnly:r,selectedOptions:j,deselectOptionValue:w,chipGroupProps:$e,input:l.jsx("input",{className:i.styles[`${$}field__input`],"aria-readonly":r,"aria-disabled":o,"aria-required":C,"aria-invalid":y.invalid,"aria-errormessage":y.errorMessage||void 0,"aria-labelledby":!_.ariaLabel&&g?g:void 0,"aria-label":_.ariaLabel,"aria-describedby":y.describedBy,placeholder:s&&!I?"":se,onChange:t=>S(t.target.value),disabled:o,readOnly:r,autoComplete:"off",tabIndex:o?-1:0,autoFocus:!1,...ze})}),hasClearButton:Me,onClear:Ne,onBlur:Ee,onFocusCapture:Le,...We,ref:Ge}),l.jsxs(Ye.HelperTextProvider,{ctxId:me,ctxDisabled:o,children:[B,_e&&l.jsx(E.HelperText,{id:be,appearance:"negative",children:u})]}),ae(xe)]}),l.jsxs("select",{...ce,...he,hidden:!0,multiple:s,children:[l.jsx("option",{value:"",children:"empty"}),G]}),l.jsx(st.AutocompleteDropdown,{...ge,className:i.styles[`${$}dropdown`],disabled:o,readOnly:r,theme:q,multiple:s,onItemClick:He,children:l.jsx(L.ActionList,{role:"listbox",noResults:Ke?oe:void 0,children:a.map(t=>{const e=m.get(t);if(!e)return null;const b=T.isSelected(e.value,d),A=N[t],Je=A||e.disabled;return n.createElement(L.ActionList.Item,{...e,className:V(i.styles[`${$}option`],e.className),disabled:Je,hidden:A,defaultSelected:b,key:`opt-${e.value??e.label}`,kind:s?"checkbox":"singleCheckMark",role:"option"})})})})]})}),O=mt;O.Option=Ze.Option;O.displayName="Autocomplete";exports.Autocomplete=O;exports.default=O;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("react/jsx-runtime"),n=require("react"),Ue=require("../../chunks/classNames.DAeKwerT.js"),Xe=require("../../chunks/constants.hwjHOsvT.js"),i=require("../../chunks/combobox.module.BRWGQi7s.js"),V=require("clsx"),E=require("../../chunks/form.context.hesWPMlU.js"),Ye=require("../Form/contexts/label.context.cjs.js"),Ze=require("../Form/contexts/helperText.context.cjs.js"),L=require("../ActionList/ActionList.cjs.js"),H=require("../_Options/Option.context.cjs.js"),et=require("../_Options/Option.cjs.js"),tt=require("../_Options/useSelectValue.cjs.js"),st=require("./useAutocompleteDropdown.cjs.js"),lt=require("./AutocompleteDropdown.cjs.js"),ot=require("./useAutocompleteChips.cjs.js"),it=require("./useAutocompleteKeyboardManager.cjs.js"),rt=require("./utils/filterOptions.cjs.js"),nt=require("./useClearSelection.cjs.js"),ct=require("./AutocompleteField.cjs.js"),at=require("./useAutocompleteA11y.cjs.js"),ut=require("./useAutocompleteInteractions.cjs.js"),dt=require("../_Options/strategies/SelectionStrategy.cjs.js"),pt=require("../_Options/OptionChips.cjs.js"),{baseClassNamePrefix:mt,subElementClassPrefix:$,classModifierPrefix:c}=Ue.getBEMClassNames("combobox"),bt=n.forwardRef(({theme:q,width:K,error:u,children:G,label:W=null,contentBefore:z,contentAfter:J,fluid:Q=!1,helperText:B=null,validationRules:U=[],className:X,hideRequiredMarker:Y=!1,disabled:Z=!1,readOnly:ee=!1,required:te=!1,placeholder:se="",onChange:x,noResultsText:le="No results found",optionFilter:v,hideChevron:oe=!1,..._},ie)=>{const{id:D,name:re,"aria-describedby":ne,multiple:s=!1,clearable:ce=s,...ae}=_,{showErrors:ue,isInvalid:de,errorShown:pe,disabled:l,readOnly:r,required:C}=E.useFormField({name:re,validationRules:U,disabledProp:Z,readOnlyProp:ee,requiredProp:te}),{aria:y,ids:me}=at.default({helperText:B,externalDescribedBy:ne,error:u,errorShown:pe,invalid:!!u||de}),{helperTextId:be,errorId:xe,validationErrorsId:_e,labelId:g}=me,ye=!!(u!=null&&u.length),fe=n.useCallback(t=>{x==null||x(t)},[x]),{value:d,setValue:F,selectProps:he,handleBlur:Ae,singleValue:P}=tt.useSelectValue({onChange:fe,..._},ie),[p,S]=n.useState(null),I=!p&&(!d||Array.isArray(d)&&!d.length),{optionsContext:Oe,optionIds:a,optionsProps:m,selectedOptionsProps:j,deselectOptionValue:w,getOptionByIndex:qe}=H.useCreateOptionsContext(d,F,s),ve=n.useMemo(()=>{if(!P)return;const t=a.map(e=>m.get(e)).findIndex(e=>(e==null?void 0:e.value)===P);return t!==-1?t:void 0},[a,m,P]),M=n.useRef(null),{getFieldProps:Ce,getInputProps:ge,dropdownProps:Pe,refs:Se,open:R,setOpen:f,status:Ie,setDisplayActiveIndex:je}=st.useAutocompleteDropdown({disabled:l,readOnly:r,lastSelectedOptionIndex:ve,fieldRef:M}),h=Se.domReference,Me=V(i.styles[mt],q&&Xe.themeClassName(q),Q&&i.styles[`${c}fluid`],y.invalid&&i.styles[`${c}error`],l&&i.styles[`${c}disabled`],r&&i.styles[`${c}read-only`],I&&i.styles[`${c}empty`],s&&i.styles[`${c}multiple`],i.styles[`${c}autocomplete`],i.styles[`${c}dropdown-${Ie}`],X),{canClear:Ne,handleClear:$e}=nt.default({multiple:s,clearable:ce,isEmpty:I,disabled:l,readOnly:r,setValue:F,setSearchText:S,inputRef:h,setOpen:f}),{chipGroupProps:Be,handleBlur:De,selectedChip:Fe,setSelectedChip:we,enabled:Re,selectPreviousChip:ke,selectNextChip:Te,options:Ve,deselectOptionValue:Ee}=ot.useAutocompleteChips({multiple:s,disabled:l,readOnly:r,open:R,setOpen:f,options:j,deselectOptionValue:w,fieldRef:M,inputRef:h}),{getKeyboardProps:k}=it.useAutocompleteKeyboardManager({multiple:s,disabled:l,readOnly:r,open:R,setOpen:f,inputRef:h,fieldRef:M,chips:{enabled:Re,selectedChip:Fe,setSelectedChip:we,selectPreviousChip:ke,selectNextChip:Te,options:Ve,deselectOptionValue:Ee}}),T=n.useMemo(()=>dt.createSelectionStrategy(s),[s]),{handleBlur:Le,handleFocus:He,handleItemClick:Ke}=ut.useAutocompleteInteractions({selectionStrategy:T,selectedOptions:j,inputRef:h,blurSelect:Ae,blurChips:De,setSearchText:S,setOpen:f,searchText:p,getOptionByIndex:qe,setDisplayActiveIndex:je}),N=n.useMemo(()=>a.reduce((t,e)=>{const b=m.get(e);if(!b)return t;const A=v?v(b,p):rt.default(b,p);return t[e]=A,t},{}),[a,m,p,v]),Ge=n.useMemo(()=>a.every(t=>N[t]),[a,N]),{ref:We,...ze}=k(Ce()),Je=k(ge());return o.jsxs(H.OptionsProvider,{value:Oe,children:[o.jsxs("div",{className:Me,style:{maxWidth:K},children:[o.jsx(Ye.LabelProvider,{ctxHtmlFor:D,ctxDisabled:l,ctxRequired:C&&!Y,ctxId:g,children:W}),o.jsx(ct.AutocompleteField,{id:D,disabled:l,readOnly:r,required:C,contentBefore:z,contentAfter:J,chips:o.jsx(pt.OptionChips,{multiple:s,disabled:l,readOnly:r,selectedOptions:j,deselectOptionValue:w,chipGroupProps:Be,input:o.jsx("input",{className:i.styles[`${$}field__input`],"aria-readonly":r,"aria-disabled":l,"aria-required":C,"aria-invalid":y.invalid,"aria-errormessage":y.errorMessage||void 0,"aria-labelledby":!_.ariaLabel&&g?g:void 0,"aria-label":_.ariaLabel,"aria-describedby":y.describedBy,placeholder:s&&!I?"":se,onChange:t=>S(t.target.value),disabled:l,readOnly:r,autoComplete:"off",tabIndex:l?-1:0,autoFocus:!1,...Je})}),hasClearButton:Ne,hideChevron:oe,onClear:$e,onBlur:Le,onFocusCapture:He,...ze,ref:We}),o.jsxs(Ze.HelperTextProvider,{ctxId:be,ctxDisabled:l,children:[B,ye&&o.jsx(E.HelperText,{id:xe,appearance:"negative",children:u})]}),ue(_e)]}),o.jsxs("select",{...ae,...he,hidden:!0,multiple:s,children:[o.jsx("option",{value:"",children:"empty"}),G]}),o.jsx(lt.AutocompleteDropdown,{...Pe,className:i.styles[`${$}dropdown`],disabled:l,readOnly:r,theme:q,multiple:s,onItemClick:Ke,children:o.jsx(L.ActionList,{role:"listbox",noResults:Ge?le:void 0,children:a.map(t=>{const e=m.get(t);if(!e)return null;const b=T.isSelected(e.value,d),A=N[t],Qe=A||e.disabled;return n.createElement(L.ActionList.Item,{...e,className:V(i.styles[`${$}option`],e.className),disabled:Qe,hidden:A,defaultSelected:b,key:`opt-${e.value??e.label}`,kind:s?"checkbox":"singleCheckMark",role:"option"})})})})]})}),O=bt;O.Option=et.Option;O.displayName="Autocomplete";exports.Autocomplete=O;exports.default=O;
@@ -95,6 +95,12 @@ export interface AutocompleteProps extends React.ComponentPropsWithRef<'select'>
95
95
  * @default "No results found"
96
96
  */
97
97
  noResultsText?: string;
98
+ /**
99
+ * When `true`, the chevron (dropdown arrow) indicator in the field is not rendered. Useful when the dropdown affordance is implied by surrounding UI or when the chevron is visually unwanted.
100
+ *
101
+ * @default false
102
+ */
103
+ hideChevron?: boolean;
98
104
  /**
99
105
  * Provide a custom option filtering function. Receives all option props (including undefined placeholders), and the current search text.
100
106
  * Should return a filtered array (can re-order). Defaults to internal case-insensitive label/value matching
@@ -1,28 +1,28 @@
1
1
  import { jsxs as C, jsx as i } from "react/jsx-runtime";
2
- import Je, { useCallback as Qe, useState as Ue, useMemo as O, useRef as Xe, createElement as Ye } from "react";
3
- import { g as Ze } from "../../chunks/classNames.BTJmrO_L.js";
4
- import { t as et } from "../../chunks/constants.CKKGf1-i.js";
2
+ import Qe, { useCallback as Ue, useState as Xe, useMemo as O, useRef as Ye, createElement as Ze } from "react";
3
+ import { g as et } from "../../chunks/classNames.BTJmrO_L.js";
4
+ import { t as tt } from "../../chunks/constants.CKKGf1-i.js";
5
5
  import { s as r } from "../../chunks/combobox.module.D_HXP875.js";
6
6
  import L from "clsx";
7
- import { b as tt, H as ot } from "../../chunks/form.context.D7b4066_.js";
8
- import { LabelProvider as st } from "../Form/contexts/label.context.es.js";
9
- import { HelperTextProvider as rt } from "../Form/contexts/helperText.context.es.js";
7
+ import { b as ot, H as st } from "../../chunks/form.context.D7b4066_.js";
8
+ import { LabelProvider as rt } from "../Form/contexts/label.context.es.js";
9
+ import { HelperTextProvider as lt } from "../Form/contexts/helperText.context.es.js";
10
10
  import { ActionList as T } from "../ActionList/ActionList.es.js";
11
- import { useCreateOptionsContext as lt, OptionsProvider as it } from "../_Options/Option.context.es.js";
12
- import { Option as at } from "../_Options/Option.es.js";
13
- import { useSelectValue as nt } from "../_Options/useSelectValue.es.js";
14
- import { useAutocompleteDropdown as dt } from "./useAutocompleteDropdown.es.js";
15
- import { AutocompleteDropdown as ct } from "./AutocompleteDropdown.es.js";
16
- import { useAutocompleteChips as pt } from "./useAutocompleteChips.es.js";
17
- import { useAutocompleteKeyboardManager as ut } from "./useAutocompleteKeyboardManager.es.js";
18
- import mt from "./utils/filterOptions.es.js";
19
- import ft from "./useClearSelection.es.js";
20
- import { AutocompleteField as bt } from "./AutocompleteField.es.js";
21
- import ht from "./useAutocompleteA11y.es.js";
22
- import { useAutocompleteInteractions as xt } from "./useAutocompleteInteractions.es.js";
23
- import { createSelectionStrategy as yt } from "../_Options/strategies/SelectionStrategy.es.js";
24
- import { OptionChips as vt } from "../_Options/OptionChips.es.js";
25
- const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix: a } = Ze("combobox"), Ot = Je.forwardRef(
11
+ import { useCreateOptionsContext as it, OptionsProvider as at } from "../_Options/Option.context.es.js";
12
+ import { Option as nt } from "../_Options/Option.es.js";
13
+ import { useSelectValue as dt } from "../_Options/useSelectValue.es.js";
14
+ import { useAutocompleteDropdown as ct } from "./useAutocompleteDropdown.es.js";
15
+ import { AutocompleteDropdown as pt } from "./AutocompleteDropdown.es.js";
16
+ import { useAutocompleteChips as ut } from "./useAutocompleteChips.es.js";
17
+ import { useAutocompleteKeyboardManager as mt } from "./useAutocompleteKeyboardManager.es.js";
18
+ import ft from "./utils/filterOptions.es.js";
19
+ import bt from "./useClearSelection.es.js";
20
+ import { AutocompleteField as ht } from "./AutocompleteField.es.js";
21
+ import xt from "./useAutocompleteA11y.es.js";
22
+ import { useAutocompleteInteractions as yt } from "./useAutocompleteInteractions.es.js";
23
+ import { createSelectionStrategy as vt } from "../_Options/strategies/SelectionStrategy.es.js";
24
+ import { OptionChips as Ct } from "../_Options/OptionChips.es.js";
25
+ const { baseClassNamePrefix: Ot, subElementClassPrefix: R, classModifierPrefix: a } = et("combobox"), Pt = Qe.forwardRef(
26
26
  ({
27
27
  theme: P,
28
28
  width: K,
@@ -43,28 +43,29 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
43
43
  onChange: f,
44
44
  noResultsText: oe = "No results found",
45
45
  optionFilter: g,
46
+ hideChevron: se = !1,
46
47
  ...b
47
- }, se) => {
48
+ }, re) => {
48
49
  const {
49
50
  id: w,
50
- name: re,
51
- "aria-describedby": le,
51
+ name: le,
52
+ "aria-describedby": ie,
52
53
  multiple: o = !1,
53
- clearable: ie = o,
54
- ...ae
55
- } = b, { showErrors: ne, isInvalid: de, errorShown: ce, disabled: s, readOnly: l, required: I } = tt({
56
- name: re,
54
+ clearable: ae = o,
55
+ ...ne
56
+ } = b, { showErrors: de, isInvalid: ce, errorShown: pe, disabled: s, readOnly: l, required: I } = ot({
57
+ name: le,
57
58
  validationRules: Q,
58
59
  disabledProp: Y,
59
60
  readOnlyProp: Z,
60
61
  requiredProp: ee
61
- }), { aria: h, ids: pe } = ht({
62
+ }), { aria: h, ids: ue } = xt({
62
63
  helperText: k,
63
- externalDescribedBy: le,
64
+ externalDescribedBy: ie,
64
65
  error: d,
65
- errorShown: ce,
66
- invalid: !!d || de
67
- }), { helperTextId: ue, errorId: me, validationErrorsId: fe, labelId: A } = pe, be = !!(d != null && d.length), he = Qe(
66
+ errorShown: pe,
67
+ invalid: !!d || ce
68
+ }), { helperTextId: me, errorId: fe, validationErrorsId: be, labelId: A } = ue, he = !!(d != null && d.length), xe = Ue(
68
69
  (t) => {
69
70
  f == null || f(t);
70
71
  },
@@ -72,37 +73,37 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
72
73
  ), {
73
74
  value: c,
74
75
  setValue: E,
75
- selectProps: xe,
76
- handleBlur: ye,
76
+ selectProps: ye,
77
+ handleBlur: ve,
77
78
  singleValue: S
78
- } = nt({ onChange: he, ...b }, se), [p, $] = Ue(null), N = !p && (!c || Array.isArray(c) && !c.length), {
79
- optionsContext: ve,
79
+ } = dt({ onChange: xe, ...b }, re), [p, $] = Xe(null), N = !p && (!c || Array.isArray(c) && !c.length), {
80
+ optionsContext: Ce,
80
81
  optionIds: n,
81
82
  optionsProps: u,
82
83
  selectedOptionsProps: B,
83
84
  deselectOptionValue: M,
84
- getOptionByIndex: Ce
85
- } = lt(c, E, o), Oe = O(() => {
85
+ getOptionByIndex: Oe
86
+ } = it(c, E, o), Pe = O(() => {
86
87
  if (!S) return;
87
88
  const t = n.map((e) => u.get(e)).findIndex((e) => (e == null ? void 0 : e.value) === S);
88
89
  return t !== -1 ? t : void 0;
89
- }, [n, u, S]), D = Xe(null), {
90
- getFieldProps: Pe,
91
- getInputProps: ge,
92
- dropdownProps: Ie,
93
- refs: Ae,
90
+ }, [n, u, S]), D = Ye(null), {
91
+ getFieldProps: ge,
92
+ getInputProps: Ie,
93
+ dropdownProps: Ae,
94
+ refs: Se,
94
95
  open: V,
95
96
  setOpen: x,
96
- status: Se,
97
- setDisplayActiveIndex: $e
98
- } = dt({
97
+ status: $e,
98
+ setDisplayActiveIndex: Ne
99
+ } = ct({
99
100
  disabled: s,
100
101
  readOnly: l,
101
- lastSelectedOptionIndex: Oe,
102
+ lastSelectedOptionIndex: Pe,
102
103
  fieldRef: D
103
- }), y = Ae.domReference, Ne = L(
104
- r[Ct],
105
- P && et(P),
104
+ }), y = Se.domReference, Be = L(
105
+ r[Ot],
106
+ P && tt(P),
106
107
  J && r[`${a}fluid`],
107
108
  h.invalid && r[`${a}error`],
108
109
  s && r[`${a}disabled`],
@@ -110,11 +111,11 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
110
111
  N && r[`${a}empty`],
111
112
  o && r[`${a}multiple`],
112
113
  r[`${a}autocomplete`],
113
- r[`${a}dropdown-${Se}`],
114
+ r[`${a}dropdown-${$e}`],
114
115
  U
115
- ), { canClear: Be, handleClear: De } = ft({
116
+ ), { canClear: De, handleClear: Fe } = bt({
116
117
  multiple: o,
117
- clearable: ie,
118
+ clearable: ae,
118
119
  isEmpty: N,
119
120
  disabled: s,
120
121
  readOnly: l,
@@ -123,16 +124,16 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
123
124
  inputRef: y,
124
125
  setOpen: x
125
126
  }), {
126
- chipGroupProps: Fe,
127
- handleBlur: Re,
128
- selectedChip: ke,
129
- setSelectedChip: we,
130
- enabled: Ee,
131
- selectPreviousChip: Me,
132
- selectNextChip: Ve,
133
- options: qe,
134
- deselectOptionValue: He
135
- } = pt({
127
+ chipGroupProps: Re,
128
+ handleBlur: ke,
129
+ selectedChip: we,
130
+ setSelectedChip: Ee,
131
+ enabled: Me,
132
+ selectPreviousChip: Ve,
133
+ selectNextChip: qe,
134
+ options: He,
135
+ deselectOptionValue: Le
136
+ } = ut({
136
137
  multiple: o,
137
138
  disabled: s,
138
139
  readOnly: l,
@@ -142,7 +143,7 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
142
143
  deselectOptionValue: M,
143
144
  fieldRef: D,
144
145
  inputRef: y
145
- }), { getKeyboardProps: q } = ut({
146
+ }), { getKeyboardProps: q } = mt({
146
147
  multiple: o,
147
148
  disabled: s,
148
149
  readOnly: l,
@@ -151,41 +152,41 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
151
152
  inputRef: y,
152
153
  fieldRef: D,
153
154
  chips: {
154
- enabled: Ee,
155
- selectedChip: ke,
156
- setSelectedChip: we,
157
- selectPreviousChip: Me,
158
- selectNextChip: Ve,
159
- options: qe,
160
- deselectOptionValue: He
155
+ enabled: Me,
156
+ selectedChip: we,
157
+ setSelectedChip: Ee,
158
+ selectPreviousChip: Ve,
159
+ selectNextChip: qe,
160
+ options: He,
161
+ deselectOptionValue: Le
161
162
  }
162
163
  }), H = O(
163
- () => yt(o),
164
+ () => vt(o),
164
165
  [o]
165
- ), { handleBlur: Le, handleFocus: Te, handleItemClick: je } = xt({
166
+ ), { handleBlur: Te, handleFocus: je, handleItemClick: Ke } = yt({
166
167
  selectionStrategy: H,
167
168
  selectedOptions: B,
168
169
  inputRef: y,
169
- blurSelect: ye,
170
- blurChips: Re,
170
+ blurSelect: ve,
171
+ blurChips: ke,
171
172
  setSearchText: $,
172
173
  setOpen: x,
173
174
  searchText: p,
174
- getOptionByIndex: Ce,
175
- setDisplayActiveIndex: $e
175
+ getOptionByIndex: Oe,
176
+ setDisplayActiveIndex: Ne
176
177
  }), F = O(
177
178
  () => n.reduce((t, e) => {
178
179
  const m = u.get(e);
179
180
  if (!m) return t;
180
- const v = g ? g(m, p) : mt(m, p);
181
+ const v = g ? g(m, p) : ft(m, p);
181
182
  return t[e] = v, t;
182
183
  }, {}),
183
184
  [n, u, p, g]
184
- ), Ke = O(() => n.every((t) => F[t]), [n, F]), { ref: Ge, ...We } = q(Pe()), _e = q(ge());
185
- return /* @__PURE__ */ C(it, { value: ve, children: [
186
- /* @__PURE__ */ C("div", { className: Ne, style: { maxWidth: K }, children: [
185
+ ), Ge = O(() => n.every((t) => F[t]), [n, F]), { ref: We, ..._e } = q(ge()), ze = q(Ie());
186
+ return /* @__PURE__ */ C(at, { value: Ce, children: [
187
+ /* @__PURE__ */ C("div", { className: Be, style: { maxWidth: K }, children: [
187
188
  /* @__PURE__ */ i(
188
- st,
189
+ rt,
189
190
  {
190
191
  ctxHtmlFor: w,
191
192
  ctxDisabled: s,
@@ -195,7 +196,7 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
195
196
  }
196
197
  ),
197
198
  /* @__PURE__ */ i(
198
- bt,
199
+ ht,
199
200
  {
200
201
  id: w,
201
202
  disabled: s,
@@ -204,14 +205,14 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
204
205
  contentBefore: _,
205
206
  contentAfter: z,
206
207
  chips: /* @__PURE__ */ i(
207
- vt,
208
+ Ct,
208
209
  {
209
210
  multiple: o,
210
211
  disabled: s,
211
212
  readOnly: l,
212
213
  selectedOptions: B,
213
214
  deselectOptionValue: M,
214
- chipGroupProps: Fe,
215
+ chipGroupProps: Re,
215
216
  input: /* @__PURE__ */ i(
216
217
  "input",
217
218
  {
@@ -231,52 +232,53 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
231
232
  autoComplete: "off",
232
233
  tabIndex: s ? -1 : 0,
233
234
  autoFocus: !1,
234
- ..._e
235
+ ...ze
235
236
  }
236
237
  )
237
238
  }
238
239
  ),
239
- hasClearButton: Be,
240
- onClear: De,
241
- onBlur: Le,
242
- onFocusCapture: Te,
243
- ...We,
244
- ref: Ge
240
+ hasClearButton: De,
241
+ hideChevron: se,
242
+ onClear: Fe,
243
+ onBlur: Te,
244
+ onFocusCapture: je,
245
+ ..._e,
246
+ ref: We
245
247
  }
246
248
  ),
247
- /* @__PURE__ */ C(rt, { ctxId: ue, ctxDisabled: s, children: [
249
+ /* @__PURE__ */ C(lt, { ctxId: me, ctxDisabled: s, children: [
248
250
  k,
249
- be && /* @__PURE__ */ i(ot, { id: me, appearance: "negative", children: d })
251
+ he && /* @__PURE__ */ i(st, { id: fe, appearance: "negative", children: d })
250
252
  ] }),
251
- ne(fe)
253
+ de(be)
252
254
  ] }),
253
- /* @__PURE__ */ C("select", { ...ae, ...xe, hidden: !0, multiple: o, children: [
255
+ /* @__PURE__ */ C("select", { ...ne, ...ye, hidden: !0, multiple: o, children: [
254
256
  /* @__PURE__ */ i("option", { value: "", children: "empty" }),
255
257
  G
256
258
  ] }),
257
259
  /* @__PURE__ */ i(
258
- ct,
260
+ pt,
259
261
  {
260
- ...Ie,
262
+ ...Ae,
261
263
  className: r[`${R}dropdown`],
262
264
  disabled: s,
263
265
  readOnly: l,
264
266
  theme: P,
265
267
  multiple: o,
266
- onItemClick: je,
268
+ onItemClick: Ke,
267
269
  children: /* @__PURE__ */ i(
268
270
  T,
269
271
  {
270
272
  role: "listbox",
271
- noResults: Ke ? oe : void 0,
273
+ noResults: Ge ? oe : void 0,
272
274
  children: n.map((t) => {
273
275
  const e = u.get(t);
274
276
  if (!e) return null;
275
277
  const m = H.isSelected(
276
278
  e.value,
277
279
  c
278
- ), v = F[t], ze = v || e.disabled;
279
- return /* @__PURE__ */ Ye(
280
+ ), v = F[t], Je = v || e.disabled;
281
+ return /* @__PURE__ */ Ze(
280
282
  T.Item,
281
283
  {
282
284
  ...e,
@@ -284,7 +286,7 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
284
286
  r[`${R}option`],
285
287
  e.className
286
288
  ),
287
- disabled: ze,
289
+ disabled: Je,
288
290
  hidden: v,
289
291
  defaultSelected: m,
290
292
  key: `opt-${e.value ?? e.label}`,
@@ -299,8 +301,8 @@ const { baseClassNamePrefix: Ct, subElementClassPrefix: R, classModifierPrefix:
299
301
  )
300
302
  ] });
301
303
  }
302
- ), j = Ot;
303
- j.Option = at;
304
+ ), j = Pt;
305
+ j.Option = nt;
304
306
  j.displayName = "Autocomplete";
305
307
  export {
306
308
  j as Autocomplete,
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),x=require("react"),N=require("../CloseButton/CloseButton.cjs.js"),s=require("../../chunks/combobox.module.BRWGQi7s.js"),j=require("../../chunks/classNames.DAeKwerT.js");require("../../chunks/constants.hwjHOsvT.js");const{subElementClassPrefix:l}=j.getBEMClassNames("combobox"),t=x.forwardRef(({id:a,contentBefore:i,contentAfter:o,chips:r,hasClearButton:c,onClear:d,onKeyDownCapture:n,onBlur:u,onKeyDown:m,onFocusCapture:_,...b},f)=>e.jsxs("div",{className:s.styles[`${l}field`],id:a,onBlur:u,onFocusCapture:_,onKeyDown:m,onKeyDownCapture:n,ref:f,...b,children:[i&&e.jsx("div",{className:s.styles[`${l}field__before`],children:e.jsx("div",{className:s.styles[`${l}field__content-before`],children:i})}),r,e.jsxs("div",{className:s.styles[`${l}field__after`],children:[o&&e.jsx("div",{className:s.styles[`${l}field__content-after`],children:o}),c&&e.jsx(N.CloseButton,{className:s.styles[`${l}field__clear`],"aria-label":"Clear selection",onClickCapture:d,tabIndex:-1,size:"sm"}),e.jsx("div",{className:s.styles[`${l}field__chevron`]})]})]}));t.displayName="ComboboxField";exports.AutocompleteField=t;exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),N=require("react"),j=require("../CloseButton/CloseButton.cjs.js"),s=require("../../chunks/combobox.module.BRWGQi7s.js"),v=require("../../chunks/classNames.DAeKwerT.js");require("../../chunks/constants.hwjHOsvT.js");const{subElementClassPrefix:l}=v.getBEMClassNames("combobox"),t=N.forwardRef(({id:o,contentBefore:i,contentAfter:a,chips:r,hasClearButton:c,hideChevron:d=!1,onClear:n,onKeyDownCapture:u,onBlur:m,onKeyDown:_,onFocusCapture:f,...b},x)=>e.jsxs("div",{className:s.styles[`${l}field`],id:o,onBlur:m,onFocusCapture:f,onKeyDown:_,onKeyDownCapture:u,ref:x,...b,children:[i&&e.jsx("div",{className:s.styles[`${l}field__before`],children:e.jsx("div",{className:s.styles[`${l}field__content-before`],children:i})}),r,e.jsxs("div",{className:s.styles[`${l}field__after`],children:[a&&e.jsx("div",{className:s.styles[`${l}field__content-after`],children:a}),c&&e.jsx(j.CloseButton,{className:s.styles[`${l}field__clear`],"aria-label":"Clear selection",onClickCapture:n,tabIndex:-1,size:"sm"}),!d&&e.jsx("div",{className:s.styles[`${l}field__chevron`]})]})]}));t.displayName="ComboboxField";exports.AutocompleteField=t;exports.default=t;
@@ -5,6 +5,7 @@ export interface AutocompleteFieldProps {
5
5
  contentAfter?: React.ReactNode;
6
6
  chips: React.ReactNode;
7
7
  hasClearButton: boolean;
8
+ hideChevron?: boolean;
8
9
  onClear?: (e: React.MouseEvent<HTMLButtonElement>) => void;
9
10
  onKeyDownCapture?: React.KeyboardEventHandler<HTMLDivElement>;
10
11
  onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
@@ -1,56 +1,57 @@
1
1
  import { jsxs as o, jsx as s } from "react/jsx-runtime";
2
- import N from "react";
3
- import { CloseButton as u } from "../CloseButton/CloseButton.es.js";
2
+ import u from "react";
3
+ import { CloseButton as v } from "../CloseButton/CloseButton.es.js";
4
4
  import { s as e } from "../../chunks/combobox.module.D_HXP875.js";
5
- import { g as v } from "../../chunks/classNames.BTJmrO_L.js";
5
+ import { g as x } from "../../chunks/classNames.BTJmrO_L.js";
6
6
  import "../../chunks/constants.CKKGf1-i.js";
7
- const { subElementClassPrefix: l } = v("combobox"), x = N.forwardRef(
7
+ const { subElementClassPrefix: l } = x("combobox"), C = u.forwardRef(
8
8
  ({
9
9
  id: r,
10
10
  contentBefore: a,
11
11
  contentAfter: i,
12
12
  chips: d,
13
13
  hasClearButton: m,
14
- onClear: t,
15
- onKeyDownCapture: c,
16
- onBlur: f,
17
- onKeyDown: n,
18
- onFocusCapture: _,
19
- ...p
20
- }, b) => /* @__PURE__ */ o(
14
+ hideChevron: t = !1,
15
+ onClear: c,
16
+ onKeyDownCapture: f,
17
+ onBlur: n,
18
+ onKeyDown: _,
19
+ onFocusCapture: p,
20
+ ...b
21
+ }, N) => /* @__PURE__ */ o(
21
22
  "div",
22
23
  {
23
24
  className: e[`${l}field`],
24
25
  id: r,
25
- onBlur: f,
26
- onFocusCapture: _,
27
- onKeyDown: n,
28
- onKeyDownCapture: c,
29
- ref: b,
30
- ...p,
26
+ onBlur: n,
27
+ onFocusCapture: p,
28
+ onKeyDown: _,
29
+ onKeyDownCapture: f,
30
+ ref: N,
31
+ ...b,
31
32
  children: [
32
33
  a && /* @__PURE__ */ s("div", { className: e[`${l}field__before`], children: /* @__PURE__ */ s("div", { className: e[`${l}field__content-before`], children: a }) }),
33
34
  d,
34
35
  /* @__PURE__ */ o("div", { className: e[`${l}field__after`], children: [
35
36
  i && /* @__PURE__ */ s("div", { className: e[`${l}field__content-after`], children: i }),
36
37
  m && /* @__PURE__ */ s(
37
- u,
38
+ v,
38
39
  {
39
40
  className: e[`${l}field__clear`],
40
41
  "aria-label": "Clear selection",
41
- onClickCapture: t,
42
+ onClickCapture: c,
42
43
  tabIndex: -1,
43
44
  size: "sm"
44
45
  }
45
46
  ),
46
- /* @__PURE__ */ s("div", { className: e[`${l}field__chevron`] })
47
+ !t && /* @__PURE__ */ s("div", { className: e[`${l}field__chevron`] })
47
48
  ] })
48
49
  ]
49
50
  }
50
51
  )
51
52
  );
52
- x.displayName = "ComboboxField";
53
+ C.displayName = "ComboboxField";
53
54
  export {
54
- x as AutocompleteField,
55
- x as default
55
+ C as AutocompleteField,
56
+ C as default
56
57
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),_=require("../Form/hooks/useUniversalRef.hook.cjs.js");require("../../chunks/constants.hwjHOsvT.js");require("react/jsx-runtime");const z=require("../../chunks/form.context.hesWPMlU.js");require("../Form/contexts/label.context.cjs.js");require("../Form/contexts/helperText.context.cjs.js");const H=({value:e,defaultValue:E,onChange:o,name:d,multiple:v=!1},w)=>{const{refFn:A,ref:i}=_.useUniversalRef(w),{ctxInitialValues:O}=n.useContext(z.FormContext),a=E||O[d],m=n.useRef(a);m.current=a;const[B,b]=n.useState(a),V=e!==void 0,f=n.useRef(V);f.current=V;const R=V?e:B,s=n.useRef(o);s.current=o,n.useEffect(()=>{f.current||b(a)},[a]);const C=n.useCallback(t=>{var S;const u=Array.isArray(t)?t:t!==void 0&&t!==""&&t!==null?[t]:[],r=i.current;if(!r){console.warn("Component is controlled but selectRef is not set. This may lead to unexpected behavior."),(S=s.current)==null||S.call(s,{target:{value:t}});return}const l=Array.from(r.options),L=Array.from(r.selectedOptions);l.forEach(c=>{c.selected=u.includes(c.value)}),u.forEach(c=>{const x=l.find(P=>P.value===c);x&&r.appendChild(x)});const M=new Event("change",{bubbles:!0});if(r.dispatchEvent(M),M.defaultPrevented){Array.from(r.options).forEach(c=>{c.selected=L.includes(c)}),l.reverse().forEach(c=>{r.appendChild(c)});return}},[i]);n.useEffect(()=>{f.current&&b(e)},[e]);const g=n.useCallback(t=>{var u;f.current?(u=s.current)==null||u.call(s,t):b(Array.from(t.target.selectedOptions).filter(r=>r.selected&&r.value!=="").map(r=>r.value))},[]),k=n.useCallback(()=>{var r,l;const t=new FocusEvent("blur",{bubbles:!1}),u=new FocusEvent("focusout",{bubbles:!0});(r=i.current)==null||r.dispatchEvent(t),(l=i.current)==null||l.dispatchEvent(u)},[i]),y=n.useCallback(()=>{var t;f.current?(t=s.current)==null||t.call(s,{target:{value:m.current}}):b(m.current)},[]),p=n.useRef(null),q=n.useCallback(t=>{var u,r;A(t),t?(p.current=t.form,(r=p.current)==null||r.addEventListener("reset",y)):((u=p.current)==null||u.removeEventListener("reset",y),p.current=null)},[y,A]),h=n.useMemo(()=>({ref:q,value:I(R,v),onChange:g,name:d}),[q,v,R,g,d]);return n.useMemo(()=>({selectProps:h,value:h.value,singleValue:U(h.value),setValue:C,handleBlur:k}),[h,C,k])};function F(e){return e==null||e===""||Array.isArray(e)&&e.length===0}function T(e){return Array.isArray(e)}function I(e,E){const o=T(e);return E?o?e:F(e)?[]:[e]:o?F(e)?"":e[0]??"":e??""}function U(e){return T(e)?e.length>0?e[e.length-1]:void 0:e}exports.useSelectValue=H;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),_=require("../Form/hooks/useUniversalRef.hook.cjs.js");require("../../chunks/constants.hwjHOsvT.js");require("react/jsx-runtime");const H=require("../../chunks/form.context.hesWPMlU.js");require("../Form/contexts/label.context.cjs.js");require("../Form/contexts/helperText.context.cjs.js");const I=({value:e,defaultValue:m,onChange:i,name:d,multiple:C=!1},O)=>{const{refFn:g,ref:o}=_.useUniversalRef(O),{ctxInitialValues:B}=n.useContext(H.FormContext),a=m||B[d],S=n.useRef(a);S.current=a;const[L,V]=n.useState(a),v=e!==void 0,f=n.useRef(v);f.current=v;const k=v?e:L,u=n.useRef(i);u.current=i,n.useEffect(()=>{f.current||V(a)},[a]);const b=n.useCallback(r=>{var F;const s=z(r),t=o.current;if(!t){console.warn("Component is controlled but selectRef is not set. This may lead to unexpected behavior."),(F=u.current)==null||F.call(u,{target:{value:r}});return}const l=Array.from(t.options),E=Array.from(t.selectedOptions);l.forEach(c=>{c.selected=s.includes(c.value)}),s.forEach(c=>{const w=l.find(P=>P.value===c);w&&t.appendChild(w)});const T=new Event("change",{bubbles:!0});if(t.dispatchEvent(T),T.defaultPrevented){Array.from(t.options).forEach(c=>{c.selected=E.includes(c)}),l.reverse().forEach(c=>{t.appendChild(c)});return}},[o]);n.useEffect(()=>{f.current&&V(e)},[e]);const q=n.useCallback(r=>{var s;f.current?(s=u.current)==null||s.call(u,r):V(Array.from(r.target.selectedOptions).filter(t=>t.selected&&t.value!=="").map(t=>t.value))},[]),M=n.useCallback(()=>{var t,l;const r=new FocusEvent("blur",{bubbles:!1}),s=new FocusEvent("focusout",{bubbles:!0});(t=o.current)==null||t.dispatchEvent(r),(l=o.current)==null||l.dispatchEvent(s)},[o]),y=n.useCallback(()=>{var t;const r=o.current,s=S.current;if(r){const l=z(s);Array.from(r.options).forEach(E=>{E.defaultSelected=l.includes(E.value)})}if(f.current){(t=u.current)==null||t.call(u,{target:{value:s}});return}r&&b(s)},[b,o]),p=n.useRef(null),x=n.useCallback(r=>{var s,t;g(r),r?(p.current=r.form,(t=p.current)==null||t.addEventListener("reset",y)):((s=p.current)==null||s.removeEventListener("reset",y),p.current=null)},[y,g]),h=n.useMemo(()=>({ref:x,value:U(k,C),onChange:q,name:d}),[x,C,k,q,d]);return n.useMemo(()=>({selectProps:h,value:h.value,singleValue:j(h.value),setValue:b,handleBlur:M}),[h,b,M])};function A(e){return e==null||e===""||Array.isArray(e)&&e.length===0}function R(e){return Array.isArray(e)}function z(e){return R(e)?e:A(e)?[]:[e]}function U(e,m){const i=R(e);return m?i?e:A(e)?[]:[e]:i?A(e)?"":e[0]??"":e??""}function j(e){return R(e)?e.length>0?e[e.length-1]:void 0:e}exports.useSelectValue=I;
@@ -1,109 +1,123 @@
1
- import q, { useRef as h, useState as D, useEffect as L, useCallback as f, useMemo as O } from "react";
2
- import { useUniversalRef as G } from "../Form/hooks/useUniversalRef.hook.es.js";
1
+ import q, { useRef as V, useState as G, useEffect as T, useCallback as f, useMemo as I } from "react";
2
+ import { useUniversalRef as H } from "../Form/hooks/useUniversalRef.hook.es.js";
3
3
  import "../../chunks/constants.CKKGf1-i.js";
4
4
  import "react/jsx-runtime";
5
- import { F as H } from "../../chunks/form.context.D7b4066_.js";
5
+ import { F as J } from "../../chunks/form.context.D7b4066_.js";
6
6
  import "../Form/contexts/label.context.es.js";
7
7
  import "../Form/contexts/helperText.context.es.js";
8
- const _ = ({
8
+ const ee = ({
9
9
  value: e,
10
10
  defaultValue: b,
11
- onChange: u,
11
+ onChange: l,
12
12
  name: d,
13
- multiple: A = !1
14
- }, P) => {
15
- const { refFn: g, ref: l } = G(P), { ctxInitialValues: T } = q.useContext(H), i = b || T[d], V = h(i);
16
- V.current = i;
17
- const [k, p] = D(i), y = e !== void 0, a = h(y);
13
+ multiple: x = !1
14
+ }, k) => {
15
+ const { refFn: C, ref: c } = H(k), { ctxInitialValues: D } = q.useContext(J), i = b || D[d], F = V(i);
16
+ F.current = i;
17
+ const [U, v] = G(i), y = e !== void 0, a = V(y);
18
18
  a.current = y;
19
- const R = y ? e : k, n = h(u);
20
- n.current = u, L(() => {
21
- a.current || p(i);
19
+ const M = y ? e : U, s = V(l);
20
+ s.current = l, T(() => {
21
+ a.current || v(i);
22
22
  }, [i]);
23
- const x = f(
24
- (t) => {
25
- var S;
26
- const s = Array.isArray(t) ? t : t !== void 0 && t !== "" && t !== null ? [t] : [], r = l.current;
27
- if (!r) {
23
+ const p = f(
24
+ (r) => {
25
+ var L;
26
+ const n = P(r), t = c.current;
27
+ if (!t) {
28
28
  console.warn(
29
29
  "Component is controlled but selectRef is not set. This may lead to unexpected behavior."
30
- ), (S = n.current) == null || S.call(n, {
31
- target: { value: t }
30
+ ), (L = s.current) == null || L.call(s, {
31
+ target: { value: r }
32
32
  });
33
33
  return;
34
34
  }
35
- const c = Array.from(r.options), U = Array.from(r.selectedOptions);
36
- c.forEach((o) => {
37
- o.selected = s.includes(o.value);
38
- }), s.forEach((o) => {
39
- const B = c.find((j) => j.value === o);
40
- B && r.appendChild(B);
35
+ const u = Array.from(t.options), h = Array.from(t.selectedOptions);
36
+ u.forEach((o) => {
37
+ o.selected = n.includes(o.value);
38
+ }), n.forEach((o) => {
39
+ const O = u.find((j) => j.value === o);
40
+ O && t.appendChild(O);
41
41
  });
42
- const w = new Event("change", { bubbles: !0 });
43
- if (r.dispatchEvent(w), w.defaultPrevented) {
44
- Array.from(r.options).forEach((o) => {
45
- o.selected = U.includes(o);
46
- }), c.reverse().forEach((o) => {
47
- r.appendChild(o);
42
+ const B = new Event("change", { bubbles: !0 });
43
+ if (t.dispatchEvent(B), B.defaultPrevented) {
44
+ Array.from(t.options).forEach((o) => {
45
+ o.selected = h.includes(o);
46
+ }), u.reverse().forEach((o) => {
47
+ t.appendChild(o);
48
48
  });
49
49
  return;
50
50
  }
51
51
  },
52
- [l]
52
+ [c]
53
53
  );
54
- L(() => {
55
- a.current && p(e);
54
+ T(() => {
55
+ a.current && v(e);
56
56
  }, [e]);
57
- const C = f((t) => {
58
- var s;
59
- a.current ? (s = n.current) == null || s.call(n, t) : p(
60
- Array.from(t.target.selectedOptions).filter((r) => r.selected && r.value !== "").map((r) => r.value)
57
+ const S = f((r) => {
58
+ var n;
59
+ a.current ? (n = s.current) == null || n.call(s, r) : v(
60
+ Array.from(r.target.selectedOptions).filter((t) => t.selected && t.value !== "").map((t) => t.value)
61
61
  );
62
- }, []), F = f(() => {
63
- var r, c;
64
- const t = new FocusEvent("blur", { bubbles: !1 }), s = new FocusEvent("focusout", { bubbles: !0 });
65
- (r = l.current) == null || r.dispatchEvent(t), (c = l.current) == null || c.dispatchEvent(s);
66
- }, [l]), v = f(() => {
62
+ }, []), w = f(() => {
63
+ var t, u;
64
+ const r = new FocusEvent("blur", { bubbles: !1 }), n = new FocusEvent("focusout", { bubbles: !0 });
65
+ (t = c.current) == null || t.dispatchEvent(r), (u = c.current) == null || u.dispatchEvent(n);
66
+ }, [c]), A = f(() => {
67
67
  var t;
68
- a.current ? (t = n.current) == null || t.call(n, {
69
- target: { value: V.current }
70
- }) : p(V.current);
71
- }, []), m = h(null), M = f(
72
- (t) => {
73
- var s, r;
74
- g(t), t ? (m.current = t.form, (r = m.current) == null || r.addEventListener("reset", v)) : ((s = m.current) == null || s.removeEventListener("reset", v), m.current = null);
68
+ const r = c.current, n = F.current;
69
+ if (r) {
70
+ const u = P(n);
71
+ Array.from(r.options).forEach((h) => {
72
+ h.defaultSelected = u.includes(h.value);
73
+ });
74
+ }
75
+ if (a.current) {
76
+ (t = s.current) == null || t.call(s, {
77
+ target: { value: n }
78
+ });
79
+ return;
80
+ }
81
+ r && p(n);
82
+ }, [p, c]), m = V(null), z = f(
83
+ (r) => {
84
+ var n, t;
85
+ C(r), r ? (m.current = r.form, (t = m.current) == null || t.addEventListener("reset", A)) : ((n = m.current) == null || n.removeEventListener("reset", A), m.current = null);
75
86
  },
76
- [v, g]
77
- ), E = O(() => ({
78
- ref: M,
79
- value: J(R, A),
80
- onChange: C,
87
+ [A, C]
88
+ ), E = I(() => ({
89
+ ref: z,
90
+ value: K(M, x),
91
+ onChange: S,
81
92
  name: d
82
- }), [M, A, R, C, d]);
83
- return O(
93
+ }), [z, x, M, S, d]);
94
+ return I(
84
95
  () => ({
85
96
  selectProps: E,
86
97
  value: E.value,
87
- singleValue: K(E.value),
88
- setValue: x,
89
- handleBlur: F
98
+ singleValue: N(E.value),
99
+ setValue: p,
100
+ handleBlur: w
90
101
  }),
91
- [E, x, F]
102
+ [E, p, w]
92
103
  );
93
104
  };
94
- function z(e) {
105
+ function g(e) {
95
106
  return e == null || e === "" || Array.isArray(e) && e.length === 0;
96
107
  }
97
- function I(e) {
108
+ function R(e) {
98
109
  return Array.isArray(e);
99
110
  }
100
- function J(e, b) {
101
- const u = I(e);
102
- return b ? u ? e : z(e) ? [] : [e] : u ? z(e) ? "" : e[0] ?? "" : e ?? "";
111
+ function P(e) {
112
+ return R(e) ? e : g(e) ? [] : [e];
113
+ }
114
+ function K(e, b) {
115
+ const l = R(e);
116
+ return b ? l ? e : g(e) ? [] : [e] : l ? g(e) ? "" : e[0] ?? "" : e ?? "";
103
117
  }
104
- function K(e) {
105
- return I(e) ? e.length > 0 ? e[e.length - 1] : void 0 : e;
118
+ function N(e) {
119
+ return R(e) ? e.length > 0 ? e[e.length - 1] : void 0 : e;
106
120
  }
107
121
  export {
108
- _ as useSelectValue
122
+ ee as useSelectValue
109
123
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@viasat/beam-react",
3
- "version": "2.29.0",
3
+ "version": "2.29.1",
4
4
  "description": "React component library for the Beam design system",
5
5
  "license": "MIT",
6
6
  "author": "Viasat",
@@ -59,11 +59,11 @@
59
59
  "access": "public"
60
60
  },
61
61
  "dependencies": {
62
- "@viasat/beam-fonts": "2.29.0",
63
- "@viasat/beam-shared": "2.29.0",
64
- "@viasat/beam-styles": "2.29.0",
65
- "@viasat/beam-tokens": "2.29.0",
66
- "@viasat/beam-icons": "2.29.0",
62
+ "@viasat/beam-fonts": "2.29.1",
63
+ "@viasat/beam-shared": "2.29.1",
64
+ "@viasat/beam-styles": "2.29.1",
65
+ "@viasat/beam-tokens": "2.29.1",
66
+ "@viasat/beam-icons": "2.29.1",
67
67
  "clsx": "^1.2.1",
68
68
  "@floating-ui/react": "^0.26.18",
69
69
  "@stepperize/react": "^5.1.5",