@alma-oss/spirit-web-react 4.7.0 → 4.8.0

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,2 +1,2 @@
1
- "use strict";"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),ge=require("classnames"),r=require("react"),me=require("../../constants/selection.cjs"),Pe=require("../../hooks/styleProps.cjs"),be=require("../../hooks/useAriaIdRefs.cjs"),ve=require("../../hooks/useI18n.cjs"),B=require("../../hooks/useSelectionState.cjs"),U=require("../../translations/replaceTranslationParams.cjs"),xe=require("../Dropdown/Dropdown.cjs"),fe=require("../Dropdown/DropdownPopover.cjs"),Te=require("../Field/HelperText.cjs"),ye=require("../Field/Label.cjs"),ke=require("../Field/ValidationText.cjs"),Se=require("../Field/useValidationTextRole.cjs"),qe=require("../Icon/Icon.cjs"),he=require("../VisuallyHidden/VisuallyHidden.cjs"),Ie=require("./constants.cjs"),Le=require("./PickerContext.cjs"),Ae=require("./PickerPopoverContext.cjs"),w=require("./UNSTABLE_PickerTag.cjs"),Ne=require("./usePickerId.cjs"),Re=require("./usePickerPopoverTabOutToTrigger.cjs"),je=require("./usePickerSelectionGridKeyboard.cjs"),Ce=require("./usePickerStyleProps.cjs"),p=require("./utils.cjs"),Ee=(O,V)=>{const{t:n}=ve.useI18n(),{"aria-describedby":G="",addButtonLabel:F=n("picker.add"),children:x,closeButtonLabel:H=n("common.close"),emptySelectionLabel:q,helperText:$,id:z,isAggregated:f=!1,isDisabled:o=!1,isFluid:Z=!1,isLabelHidden:J=!1,isOpen:t,isRequired:Q=!1,label:i,onSelectionChange:c,onToggle:g,removeAllLabel:W=n("picker.removeAll"),renderTags:h,selectedKeys:d,selectionAriaLabel:X=n("picker.selectionAriaLabel"),selectionMode:u=me.MULTIPLE_SELECTION_MODE,size:I=Ie.DEFAULT_SIZE,tagDescriptionText:Y=n("picker.tagDescriptionText"),hasValidationIcon:ee,validationState:m,validationText:L,...re}=O,[te,A]=be.useAriaDescribedBy(G),se=Se.useValidationTextRole({validationState:m,validationText:L}),{classProps:s}=Ce.usePickerStyleProps({isDisabled:o,isFluid:Z,isLabelHidden:J,isRequired:Q,size:I,validationState:m}),{styleProps:N,props:oe}=Pe.useStyleProps(re),{labelId:R,pickerId:P,popoverId:j,selectionId:ie,tagDescriptionId:C}=Ne.usePickerId(z),E=r.useMemo(()=>p.collectPickerItems(x),[x]),_=r.useMemo(()=>p.getPickerItemLabelMap(E),[E]),b=r.useMemo(()=>B.getSelectedKeys(d,u),[d,u]),a=r.useMemo(()=>p.getSelectedItems(b,_),[b,_]),D=l=>B.isSingleSelectionMode(u)?c([]):c(d.filter(v=>v!==l)),ae=()=>c([]),K=r.useRef(null),M=r.useRef(null),T=r.useCallback(()=>{t&&(g(),Promise.resolve().then(()=>{M.current?.focus()}))},[t,g]),{onPopoverKeyDownCapture:le}=Re.usePickerPopoverTabOutToTrigger({isOpen:t,onClose:T}),ne=p.getPickerSelectionGridKeyboardRowCount(a.length,{isAggregated:f}),{getKeyboardGridRowProps:y,removeTagAtIndex:k}=je.usePickerSelectionGridKeyboard({isDisabled:o,isPopoverOpen:t,onRemoveAtIndex:l=>{f?ae():D(a[l].value)},selectionRef:K,tagCount:ne}),ce=q?U.replaceTranslationParams(q,{label:i}):i,de=p.getAggregatedTagLabel(i,a),ue=a.length?h?h({getKeyboardGridRowProps:y,onRemove:D,removeTagAtIndex:k}):f?e.jsx(w.default,{tagKeyboardProps:y(0),isDisabled:o,label:de,onRemove:()=>k(0),removeLabel:W}):a.map((l,v)=>e.jsx(w.default,{tagKeyboardProps:y(v),isDisabled:o,label:l.label,onRemove:()=>k(v)},l.value)):e.jsx("span",{"aria-hidden":"true",className:s.selectionEmpty,children:ce}),pe=r.useMemo(()=>({id:P,isDisabled:o,onSelectionChange:c,selectedKeys:b,selectionMode:u}),[b,o,c,P,u]);return r.useImperativeHandle(V,()=>({close:T,selectedKeys:d}),[T,d]),e.jsx(Le.PickerContextProvider,{value:{size:I,tagDescriptionId:C},children:e.jsxs("div",{...N,className:ge(s.root,N.className),...oe,children:[e.jsx(ye.default,{id:R,UNSAFE_className:s.label,elementType:"span",children:i}),e.jsxs(xe.default,{id:j,isOpen:t,onToggle:g,children:[e.jsxs("div",{role:"group","aria-label":i,className:s.inputContainer,children:[e.jsx("div",{ref:K,...te,id:ie,role:a.length?"grid":"group","aria-label":U.replaceTranslationParams(X,{label:i}),"aria-live":"off","aria-atomic":!1,"aria-relevant":"additions",className:s.selection,children:ue}),e.jsxs("button",{ref:M,type:"button",className:s.trigger,"aria-haspopup":"dialog","aria-expanded":t,"aria-controls":j,onClick:g,disabled:o,children:[e.jsx(he.default,{children:t?H:F}),e.jsx(qe.default,{name:`chevron-${t?"up":"down"}`,boxSize:20})]})]}),e.jsx(fe.default,{"aria-labelledby":R,role:"dialog","aria-modal":"true",onKeyDownCapture:le,children:e.jsx(Ae.PickerPopoverContextProvider,{value:pe,children:x})})]}),e.jsx(Te.default,{UNSAFE_className:s.helperText,id:`${P}-helper-text`,registerAria:A,helperText:$}),m&&e.jsx(ke.default,{UNSAFE_className:s.validationText,id:`${P}-validation-text`,...ee&&{hasValidationStateIcon:m},validationText:L,registerAria:A,role:se}),e.jsx("span",{id:C,hidden:!0,children:Y})]})})},S=r.forwardRef(Ee);S.spiritComponent="UNSTABLE_Picker";S.displayName="UNSTABLE_Picker";exports.default=S;
1
+ "use strict";"use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),w=require("classnames"),r=require("react"),xe=require("../../constants/selection.cjs"),fe=require("../../hooks/styleProps.cjs"),Te=require("../../hooks/useAriaIdRefs.cjs"),ye=require("../../hooks/useI18n.cjs"),B=require("../../hooks/useSelectionState.cjs"),O=require("../../translations/replaceTranslationParams.cjs"),ke=require("../Dropdown/Dropdown.cjs"),Se=require("../Dropdown/DropdownPopover.cjs"),qe=require("../Field/HelperText.cjs"),he=require("../Field/Label.cjs"),Ie=require("../Field/ValidationText.cjs"),Ae=require("../Field/useValidationTextRole.cjs"),Le=require("../Icon/Icon.cjs"),Ne=require("../VisuallyHidden/VisuallyHidden.cjs"),V=require("./constants.cjs"),Re=require("./PickerContext.cjs"),je=require("./PickerPopoverContext.cjs"),F=require("./UNSTABLE_PickerTag.cjs"),Ce=require("./usePickerId.cjs"),Ee=require("./usePickerPopoverTabOutToTrigger.cjs"),_e=require("./usePickerSelectionGridKeyboard.cjs"),De=require("./usePickerStyleProps.cjs"),p=require("./utils.cjs"),Ke=(G,H)=>{const{t:n}=ye.useI18n(),{"aria-describedby":$="",addButtonLabel:z=n("picker.add"),children:x,closeButtonLabel:Z=n("common.close"),emptySelectionLabel:q,helperText:J,id:Q,isAggregated:f=!1,isDisabled:o=!1,isFluid:W=!1,isLabelHidden:X=!1,isOpen:s,isRequired:Y=!1,dropdownProps:ee,label:i,labelProps:h,onSelectionChange:c,onToggle:P,popoverProps:re=V.DEFAULT_POPOVER_PROPS,removeAllLabel:se=n("picker.removeAll"),renderTags:I,selectedKeys:d,selectionAriaLabel:te=n("picker.selectionAriaLabel"),selectionMode:u=xe.MULTIPLE_SELECTION_MODE,size:A=V.DEFAULT_SIZE,tagDescriptionText:oe=n("picker.tagDescriptionText"),hasValidationIcon:ie,validationState:g,validationText:L,...ae}=G,[le,N]=Te.useAriaDescribedBy($),ne=Ae.useValidationTextRole({validationState:g,validationText:L}),{classProps:t}=De.usePickerStyleProps({isDisabled:o,isFluid:W,isLabelHidden:X,isRequired:Y,size:A,validationState:g}),{styleProps:R,props:ce}=fe.useStyleProps(ae),{labelId:j,pickerId:m,popoverId:C,selectionId:de,tagDescriptionId:E}=Ce.usePickerId(Q),_=r.useMemo(()=>p.collectPickerItems(x),[x]),D=r.useMemo(()=>p.getPickerItemLabelMap(_),[_]),b=r.useMemo(()=>B.getSelectedKeys(d,u),[d,u]),a=r.useMemo(()=>p.getSelectedItems(b,D),[b,D]),K=l=>B.isSingleSelectionMode(u)?c([]):c(d.filter(v=>v!==l)),ue=()=>c([]),M=r.useRef(null),U=r.useRef(null),T=r.useCallback(()=>{s&&(P(),Promise.resolve().then(()=>{U.current?.focus()}))},[s,P]),{onPopoverKeyDownCapture:pe}=Ee.usePickerPopoverTabOutToTrigger({isOpen:s,onClose:T}),Pe=p.getPickerSelectionGridKeyboardRowCount(a.length,{isAggregated:f}),{getKeyboardGridRowProps:y,removeTagAtIndex:k}=_e.usePickerSelectionGridKeyboard({isDisabled:o,isPopoverOpen:s,onRemoveAtIndex:l=>{f?ue():K(a[l].value)},selectionRef:M,tagCount:Pe}),ge=q?O.replaceTranslationParams(q,{label:i}):i,me=p.getAggregatedTagLabel(i,a),be=a.length?I?I({getKeyboardGridRowProps:y,onRemove:K,removeTagAtIndex:k}):f?e.jsx(F.default,{tagKeyboardProps:y(0),isDisabled:o,label:me,onRemove:()=>k(0),removeLabel:se}):a.map((l,v)=>e.jsx(F.default,{tagKeyboardProps:y(v),isDisabled:o,label:l.label,onRemove:()=>k(v)},l.value)):e.jsx("span",{"aria-hidden":"true",className:t.selectionEmpty,children:ge}),ve=r.useMemo(()=>({id:m,isDisabled:o,onSelectionChange:c,selectedKeys:b,selectionMode:u}),[b,o,c,m,u]);return r.useImperativeHandle(H,()=>({close:T,selectedKeys:d}),[T,d]),e.jsx(Re.PickerContextProvider,{value:{size:A,tagDescriptionId:E},children:e.jsxs("div",{...R,className:w(t.root,R.className),...ce,children:[e.jsx(he.default,{...h,id:j,elementType:"span",UNSAFE_className:w(t.label,h?.UNSAFE_className),children:i}),e.jsxs(ke.default,{...ee,id:C,isOpen:s,onToggle:P,children:[e.jsxs("div",{role:"group","aria-label":i,className:t.inputContainer,children:[e.jsx("div",{ref:M,...le,id:de,role:a.length?"grid":"group","aria-label":O.replaceTranslationParams(te,{label:i}),"aria-live":"off","aria-atomic":!1,"aria-relevant":"additions",className:t.selection,children:be}),e.jsxs("button",{ref:U,type:"button",className:t.trigger,"aria-haspopup":"dialog","aria-expanded":s,"aria-controls":C,onClick:P,disabled:o,children:[e.jsx(Ne.default,{children:s?Z:z}),e.jsx(Le.default,{name:`chevron-${s?"up":"down"}`,boxSize:20})]})]}),e.jsx(Se.default,{...re,"aria-labelledby":j,role:"dialog","aria-modal":"true",onKeyDownCapture:pe,children:e.jsx(je.PickerPopoverContextProvider,{value:ve,children:x})})]}),e.jsx(qe.default,{UNSAFE_className:t.helperText,id:`${m}-helper-text`,registerAria:N,helperText:J}),g&&e.jsx(Ie.default,{UNSAFE_className:t.validationText,id:`${m}-validation-text`,...ie&&{hasValidationStateIcon:g},validationText:L,registerAria:N,role:ne}),e.jsx("span",{id:E,hidden:!0,children:oe})]})})},S=r.forwardRef(Ke);S.spiritComponent="UNSTABLE_Picker";S.displayName="UNSTABLE_Picker";exports.default=S;
2
2
  //# sourceMappingURL=UNSTABLE_Picker.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"UNSTABLE_Picker.cjs","sources":["../../../src/components/UNSTABLE_Picker/UNSTABLE_Picker.tsx"],"sourcesContent":["'use client';\n\nimport classNames from 'classnames';\nimport React, { type ForwardedRef, forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport { MULTIPLE_SELECTION_MODE } from '../../constants';\nimport { getSelectedKeys, isSingleSelectionMode, useAriaDescribedBy, useI18n, useStyleProps } from '../../hooks';\nimport { replaceTranslationParams } from '../../translations';\nimport { type ForwardRefComponent } from '../../types';\nimport { Dropdown, DropdownPopover } from '../Dropdown';\nimport { HelperText, Label, ValidationText } from '../Field';\nimport { useValidationTextRole } from '../Field/useValidationTextRole';\nimport { Icon } from '../Icon';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { DEFAULT_SIZE } from './constants';\nimport { PickerContextProvider } from './PickerContext';\nimport { PickerPopoverContextProvider } from './PickerPopoverContext';\nimport type { SpiritUnstablePickerProps, SpiritUnstablePickerRef } from './types';\nimport UNSTABLE_PickerTag from './UNSTABLE_PickerTag';\nimport { usePickerId } from './usePickerId';\nimport { usePickerPopoverTabOutToTrigger } from './usePickerPopoverTabOutToTrigger';\nimport { usePickerSelectionGridKeyboard } from './usePickerSelectionGridKeyboard';\nimport { usePickerStyleProps } from './usePickerStyleProps';\nimport {\n collectPickerItems,\n getAggregatedTagLabel,\n getPickerItemLabelMap,\n getPickerSelectionGridKeyboardRowCount,\n getSelectedItems,\n} from './utils';\n\n// eslint-disable-next-line camelcase\nconst _UNSTABLE_Picker = (props: SpiritUnstablePickerProps, ref: ForwardedRef<SpiritUnstablePickerRef>) => {\n const { t } = useI18n();\n\n const {\n 'aria-describedby': ariaDescribedBy = '',\n addButtonLabel = t('picker.add'),\n children,\n closeButtonLabel = t('common.close'),\n emptySelectionLabel,\n helperText,\n id,\n isAggregated = false,\n isDisabled = false,\n isFluid = false,\n isLabelHidden = false,\n isOpen,\n isRequired = false,\n label,\n onSelectionChange,\n onToggle,\n removeAllLabel = t('picker.removeAll'),\n renderTags,\n selectedKeys,\n selectionAriaLabel = t('picker.selectionAriaLabel'),\n selectionMode = MULTIPLE_SELECTION_MODE,\n size = DEFAULT_SIZE,\n tagDescriptionText = t('picker.tagDescriptionText'),\n hasValidationIcon,\n validationState,\n validationText,\n ...restProps\n } = props;\n\n const [ariaDescribedByProp, register] = useAriaDescribedBy(ariaDescribedBy);\n const validationTextRole = useValidationTextRole({\n validationState,\n validationText,\n });\n const { classProps } = usePickerStyleProps({\n isDisabled,\n isFluid,\n isLabelHidden,\n isRequired,\n size,\n validationState,\n });\n const { styleProps, props: transferProps } = useStyleProps(restProps);\n const { labelId, pickerId, popoverId, selectionId, tagDescriptionId } = usePickerId(id);\n\n const pickerItems = useMemo(() => collectPickerItems(children), [children]);\n\n const pickerItemLabels = useMemo(() => getPickerItemLabelMap(pickerItems), [pickerItems]);\n\n const selectedPickerKeys = useMemo(() => getSelectedKeys(selectedKeys, selectionMode), [selectedKeys, selectionMode]);\n\n const selectedPickerItems = useMemo(\n () => getSelectedItems(selectedPickerKeys, pickerItemLabels),\n [selectedPickerKeys, pickerItemLabels],\n );\n\n const removeItem = (key: string) =>\n isSingleSelectionMode(selectionMode)\n ? onSelectionChange([])\n : onSelectionChange(selectedKeys.filter((selectedKey) => selectedKey !== key));\n\n const removeAll = () => onSelectionChange([]);\n\n const selectionGridRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const close = useCallback(() => {\n if (!isOpen) {\n return;\n }\n\n onToggle();\n\n Promise.resolve().then(() => {\n triggerRef.current?.focus();\n });\n }, [isOpen, onToggle]);\n\n const { onPopoverKeyDownCapture } = usePickerPopoverTabOutToTrigger({\n isOpen,\n onClose: close,\n });\n\n const selectionGridKeyboardRowCount = getPickerSelectionGridKeyboardRowCount(selectedPickerItems.length, {\n isAggregated,\n });\n\n const { getKeyboardGridRowProps, removeTagAtIndex } = usePickerSelectionGridKeyboard({\n isDisabled,\n isPopoverOpen: isOpen,\n onRemoveAtIndex: (index) => {\n if (isAggregated) {\n removeAll();\n } else {\n removeItem(selectedPickerItems[index]!.value);\n }\n },\n selectionRef: selectionGridRef,\n tagCount: selectionGridKeyboardRowCount,\n });\n\n const emptyLabel = emptySelectionLabel ? replaceTranslationParams(emptySelectionLabel, { label }) : label;\n const aggregatedTagLabel = getAggregatedTagLabel(label, selectedPickerItems);\n\n const selectionContent = (() => {\n if (!selectedPickerItems.length) {\n return (\n <span aria-hidden=\"true\" className={classProps.selectionEmpty}>\n {emptyLabel}\n </span>\n );\n }\n\n if (renderTags) {\n return renderTags({\n getKeyboardGridRowProps,\n onRemove: removeItem,\n removeTagAtIndex,\n });\n }\n\n if (isAggregated) {\n return (\n <UNSTABLE_PickerTag\n tagKeyboardProps={getKeyboardGridRowProps(0)}\n isDisabled={isDisabled}\n label={aggregatedTagLabel}\n onRemove={() => removeTagAtIndex(0)}\n removeLabel={removeAllLabel}\n />\n );\n }\n\n return selectedPickerItems.map((item, index) => (\n <UNSTABLE_PickerTag\n key={item.value}\n tagKeyboardProps={getKeyboardGridRowProps(index)}\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeTagAtIndex(index)}\n />\n ));\n })();\n\n const popoverContextValue = useMemo(\n () => ({\n id: pickerId,\n isDisabled,\n onSelectionChange,\n selectedKeys: selectedPickerKeys,\n selectionMode,\n }),\n [selectedPickerKeys, isDisabled, onSelectionChange, pickerId, selectionMode],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n close,\n selectedKeys,\n }),\n [close, selectedKeys],\n );\n\n return (\n <PickerContextProvider value={{ size, tagDescriptionId }}>\n <div {...styleProps} className={classNames(classProps.root, styleProps.className)} {...transferProps}>\n <Label id={labelId} UNSAFE_className={classProps.label} elementType=\"span\">\n {label}\n </Label>\n <Dropdown id={popoverId} isOpen={isOpen} onToggle={onToggle}>\n <div role=\"group\" aria-label={label} className={classProps.inputContainer}>\n <div\n ref={selectionGridRef}\n {...ariaDescribedByProp}\n id={selectionId}\n role={selectedPickerItems.length ? 'grid' : 'group'}\n aria-label={replaceTranslationParams(selectionAriaLabel, { label })}\n aria-live=\"off\"\n aria-atomic={false}\n aria-relevant=\"additions\"\n className={classProps.selection}\n >\n {selectionContent}\n </div>\n <button\n ref={triggerRef}\n type=\"button\"\n className={classProps.trigger}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverId}\n onClick={onToggle}\n disabled={isDisabled}\n >\n <VisuallyHidden>{isOpen ? closeButtonLabel : addButtonLabel}</VisuallyHidden>\n <Icon name={`chevron-${isOpen ? 'up' : 'down'}`} boxSize={20} />\n </button>\n </div>\n <DropdownPopover\n aria-labelledby={labelId}\n role=\"dialog\"\n aria-modal=\"true\"\n onKeyDownCapture={onPopoverKeyDownCapture}\n >\n <PickerPopoverContextProvider value={popoverContextValue}>{children}</PickerPopoverContextProvider>\n </DropdownPopover>\n </Dropdown>\n <HelperText\n UNSAFE_className={classProps.helperText}\n id={`${pickerId}-helper-text`}\n registerAria={register}\n helperText={helperText}\n />\n {validationState && (\n <ValidationText\n UNSAFE_className={classProps.validationText}\n id={`${pickerId}-validation-text`}\n {...(hasValidationIcon && { hasValidationStateIcon: validationState })}\n validationText={validationText}\n registerAria={register}\n role={validationTextRole}\n />\n )}\n <span id={tagDescriptionId} hidden>\n {tagDescriptionText}\n </span>\n </div>\n </PickerContextProvider>\n );\n};\n\nconst UNSTABLE_Picker = forwardRef<SpiritUnstablePickerRef, SpiritUnstablePickerProps>(\n _UNSTABLE_Picker,\n) as ForwardRefComponent<SpiritUnstablePickerRef, SpiritUnstablePickerProps>;\n\nUNSTABLE_Picker.spiritComponent = 'UNSTABLE_Picker';\nUNSTABLE_Picker.displayName = 'UNSTABLE_Picker';\n\nexport default UNSTABLE_Picker;\n"],"names":["_UNSTABLE_Picker","props","ref","t","useI18n","ariaDescribedBy","addButtonLabel","children","closeButtonLabel","emptySelectionLabel","helperText","id","isAggregated","isDisabled","isFluid","isLabelHidden","isOpen","isRequired","label","onSelectionChange","onToggle","removeAllLabel","renderTags","selectedKeys","selectionAriaLabel","selectionMode","MULTIPLE_SELECTION_MODE","size","DEFAULT_SIZE","tagDescriptionText","hasValidationIcon","validationState","validationText","restProps","ariaDescribedByProp","register","useAriaDescribedBy","validationTextRole","useValidationTextRole","classProps","usePickerStyleProps","styleProps","transferProps","useStyleProps","labelId","pickerId","popoverId","selectionId","tagDescriptionId","usePickerId","pickerItems","useMemo","collectPickerItems","pickerItemLabels","getPickerItemLabelMap","selectedPickerKeys","getSelectedKeys","selectedPickerItems","getSelectedItems","removeItem","key","isSingleSelectionMode","selectedKey","removeAll","selectionGridRef","useRef","triggerRef","close","useCallback","onPopoverKeyDownCapture","usePickerPopoverTabOutToTrigger","selectionGridKeyboardRowCount","getPickerSelectionGridKeyboardRowCount","getKeyboardGridRowProps","removeTagAtIndex","usePickerSelectionGridKeyboard","index","emptyLabel","replaceTranslationParams","aggregatedTagLabel","getAggregatedTagLabel","selectionContent","jsx","UNSTABLE_PickerTag","item","popoverContextValue","useImperativeHandle","PickerContextProvider","jsxs","classNames","Label","Dropdown","VisuallyHidden","Icon","DropdownPopover","PickerPopoverContextProvider","HelperText","ValidationText","UNSTABLE_Picker","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"UNSTABLE_Picker.cjs","sources":["../../../src/components/UNSTABLE_Picker/UNSTABLE_Picker.tsx"],"sourcesContent":["'use client';\n\nimport classNames from 'classnames';\nimport React, { type ForwardedRef, forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport { MULTIPLE_SELECTION_MODE } from '../../constants';\nimport { getSelectedKeys, isSingleSelectionMode, useAriaDescribedBy, useI18n, useStyleProps } from '../../hooks';\nimport { replaceTranslationParams } from '../../translations';\nimport { type ForwardRefComponent } from '../../types';\nimport { Dropdown, DropdownPopover } from '../Dropdown';\nimport { HelperText, Label, ValidationText } from '../Field';\nimport { useValidationTextRole } from '../Field/useValidationTextRole';\nimport { Icon } from '../Icon';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { DEFAULT_POPOVER_PROPS, DEFAULT_SIZE } from './constants';\nimport { PickerContextProvider } from './PickerContext';\nimport { PickerPopoverContextProvider } from './PickerPopoverContext';\nimport type { SpiritUnstablePickerProps, SpiritUnstablePickerRef } from './types';\nimport UNSTABLE_PickerTag from './UNSTABLE_PickerTag';\nimport { usePickerId } from './usePickerId';\nimport { usePickerPopoverTabOutToTrigger } from './usePickerPopoverTabOutToTrigger';\nimport { usePickerSelectionGridKeyboard } from './usePickerSelectionGridKeyboard';\nimport { usePickerStyleProps } from './usePickerStyleProps';\nimport {\n collectPickerItems,\n getAggregatedTagLabel,\n getPickerItemLabelMap,\n getPickerSelectionGridKeyboardRowCount,\n getSelectedItems,\n} from './utils';\n\n// eslint-disable-next-line camelcase\nconst _UNSTABLE_Picker = (props: SpiritUnstablePickerProps, ref: ForwardedRef<SpiritUnstablePickerRef>) => {\n const { t } = useI18n();\n\n const {\n 'aria-describedby': ariaDescribedBy = '',\n addButtonLabel = t('picker.add'),\n children,\n closeButtonLabel = t('common.close'),\n emptySelectionLabel,\n helperText,\n id,\n isAggregated = false,\n isDisabled = false,\n isFluid = false,\n isLabelHidden = false,\n isOpen,\n isRequired = false,\n dropdownProps,\n label,\n labelProps,\n onSelectionChange,\n onToggle,\n popoverProps = DEFAULT_POPOVER_PROPS,\n removeAllLabel = t('picker.removeAll'),\n renderTags,\n selectedKeys,\n selectionAriaLabel = t('picker.selectionAriaLabel'),\n selectionMode = MULTIPLE_SELECTION_MODE,\n size = DEFAULT_SIZE,\n tagDescriptionText = t('picker.tagDescriptionText'),\n hasValidationIcon,\n validationState,\n validationText,\n ...restProps\n } = props;\n\n const [ariaDescribedByProp, register] = useAriaDescribedBy(ariaDescribedBy);\n const validationTextRole = useValidationTextRole({\n validationState,\n validationText,\n });\n const { classProps } = usePickerStyleProps({\n isDisabled,\n isFluid,\n isLabelHidden,\n isRequired,\n size,\n validationState,\n });\n const { styleProps, props: transferProps } = useStyleProps(restProps);\n const { labelId, pickerId, popoverId, selectionId, tagDescriptionId } = usePickerId(id);\n\n const pickerItems = useMemo(() => collectPickerItems(children), [children]);\n\n const pickerItemLabels = useMemo(() => getPickerItemLabelMap(pickerItems), [pickerItems]);\n\n const selectedPickerKeys = useMemo(() => getSelectedKeys(selectedKeys, selectionMode), [selectedKeys, selectionMode]);\n\n const selectedPickerItems = useMemo(\n () => getSelectedItems(selectedPickerKeys, pickerItemLabels),\n [selectedPickerKeys, pickerItemLabels],\n );\n\n const removeItem = (key: string) =>\n isSingleSelectionMode(selectionMode)\n ? onSelectionChange([])\n : onSelectionChange(selectedKeys.filter((selectedKey) => selectedKey !== key));\n\n const removeAll = () => onSelectionChange([]);\n\n const selectionGridRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const close = useCallback(() => {\n if (!isOpen) {\n return;\n }\n\n onToggle();\n\n Promise.resolve().then(() => {\n triggerRef.current?.focus();\n });\n }, [isOpen, onToggle]);\n\n const { onPopoverKeyDownCapture } = usePickerPopoverTabOutToTrigger({\n isOpen,\n onClose: close,\n });\n\n const selectionGridKeyboardRowCount = getPickerSelectionGridKeyboardRowCount(selectedPickerItems.length, {\n isAggregated,\n });\n\n const { getKeyboardGridRowProps, removeTagAtIndex } = usePickerSelectionGridKeyboard({\n isDisabled,\n isPopoverOpen: isOpen,\n onRemoveAtIndex: (index) => {\n if (isAggregated) {\n removeAll();\n } else {\n removeItem(selectedPickerItems[index]!.value);\n }\n },\n selectionRef: selectionGridRef,\n tagCount: selectionGridKeyboardRowCount,\n });\n\n const emptyLabel = emptySelectionLabel ? replaceTranslationParams(emptySelectionLabel, { label }) : label;\n const aggregatedTagLabel = getAggregatedTagLabel(label, selectedPickerItems);\n\n const selectionContent = (() => {\n if (!selectedPickerItems.length) {\n return (\n <span aria-hidden=\"true\" className={classProps.selectionEmpty}>\n {emptyLabel}\n </span>\n );\n }\n\n if (renderTags) {\n return renderTags({\n getKeyboardGridRowProps,\n onRemove: removeItem,\n removeTagAtIndex,\n });\n }\n\n if (isAggregated) {\n return (\n <UNSTABLE_PickerTag\n tagKeyboardProps={getKeyboardGridRowProps(0)}\n isDisabled={isDisabled}\n label={aggregatedTagLabel}\n onRemove={() => removeTagAtIndex(0)}\n removeLabel={removeAllLabel}\n />\n );\n }\n\n return selectedPickerItems.map((item, index) => (\n <UNSTABLE_PickerTag\n key={item.value}\n tagKeyboardProps={getKeyboardGridRowProps(index)}\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeTagAtIndex(index)}\n />\n ));\n })();\n\n const popoverContextValue = useMemo(\n () => ({\n id: pickerId,\n isDisabled,\n onSelectionChange,\n selectedKeys: selectedPickerKeys,\n selectionMode,\n }),\n [selectedPickerKeys, isDisabled, onSelectionChange, pickerId, selectionMode],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n close,\n selectedKeys,\n }),\n [close, selectedKeys],\n );\n\n return (\n <PickerContextProvider value={{ size, tagDescriptionId }}>\n <div {...styleProps} className={classNames(classProps.root, styleProps.className)} {...transferProps}>\n <Label\n {...labelProps}\n id={labelId}\n elementType=\"span\"\n UNSAFE_className={classNames(classProps.label, labelProps?.UNSAFE_className)}\n >\n {label}\n </Label>\n <Dropdown {...dropdownProps} id={popoverId} isOpen={isOpen} onToggle={onToggle}>\n <div role=\"group\" aria-label={label} className={classProps.inputContainer}>\n <div\n ref={selectionGridRef}\n {...ariaDescribedByProp}\n id={selectionId}\n role={selectedPickerItems.length ? 'grid' : 'group'}\n aria-label={replaceTranslationParams(selectionAriaLabel, { label })}\n aria-live=\"off\"\n aria-atomic={false}\n aria-relevant=\"additions\"\n className={classProps.selection}\n >\n {selectionContent}\n </div>\n <button\n ref={triggerRef}\n type=\"button\"\n className={classProps.trigger}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverId}\n onClick={onToggle}\n disabled={isDisabled}\n >\n <VisuallyHidden>{isOpen ? closeButtonLabel : addButtonLabel}</VisuallyHidden>\n <Icon name={`chevron-${isOpen ? 'up' : 'down'}`} boxSize={20} />\n </button>\n </div>\n <DropdownPopover\n {...popoverProps}\n aria-labelledby={labelId}\n role=\"dialog\"\n aria-modal=\"true\"\n onKeyDownCapture={onPopoverKeyDownCapture}\n >\n <PickerPopoverContextProvider value={popoverContextValue}>{children}</PickerPopoverContextProvider>\n </DropdownPopover>\n </Dropdown>\n <HelperText\n UNSAFE_className={classProps.helperText}\n id={`${pickerId}-helper-text`}\n registerAria={register}\n helperText={helperText}\n />\n {validationState && (\n <ValidationText\n UNSAFE_className={classProps.validationText}\n id={`${pickerId}-validation-text`}\n {...(hasValidationIcon && { hasValidationStateIcon: validationState })}\n validationText={validationText}\n registerAria={register}\n role={validationTextRole}\n />\n )}\n <span id={tagDescriptionId} hidden>\n {tagDescriptionText}\n </span>\n </div>\n </PickerContextProvider>\n );\n};\n\nconst UNSTABLE_Picker = forwardRef<SpiritUnstablePickerRef, SpiritUnstablePickerProps>(\n _UNSTABLE_Picker,\n) as ForwardRefComponent<SpiritUnstablePickerRef, SpiritUnstablePickerProps>;\n\nUNSTABLE_Picker.spiritComponent = 'UNSTABLE_Picker';\nUNSTABLE_Picker.displayName = 'UNSTABLE_Picker';\n\nexport default UNSTABLE_Picker;\n"],"names":["_UNSTABLE_Picker","props","ref","t","useI18n","ariaDescribedBy","addButtonLabel","children","closeButtonLabel","emptySelectionLabel","helperText","id","isAggregated","isDisabled","isFluid","isLabelHidden","isOpen","isRequired","dropdownProps","label","labelProps","onSelectionChange","onToggle","popoverProps","DEFAULT_POPOVER_PROPS","removeAllLabel","renderTags","selectedKeys","selectionAriaLabel","selectionMode","MULTIPLE_SELECTION_MODE","size","DEFAULT_SIZE","tagDescriptionText","hasValidationIcon","validationState","validationText","restProps","ariaDescribedByProp","register","useAriaDescribedBy","validationTextRole","useValidationTextRole","classProps","usePickerStyleProps","styleProps","transferProps","useStyleProps","labelId","pickerId","popoverId","selectionId","tagDescriptionId","usePickerId","pickerItems","useMemo","collectPickerItems","pickerItemLabels","getPickerItemLabelMap","selectedPickerKeys","getSelectedKeys","selectedPickerItems","getSelectedItems","removeItem","key","isSingleSelectionMode","selectedKey","removeAll","selectionGridRef","useRef","triggerRef","close","useCallback","onPopoverKeyDownCapture","usePickerPopoverTabOutToTrigger","selectionGridKeyboardRowCount","getPickerSelectionGridKeyboardRowCount","getKeyboardGridRowProps","removeTagAtIndex","usePickerSelectionGridKeyboard","index","emptyLabel","replaceTranslationParams","aggregatedTagLabel","getAggregatedTagLabel","selectionContent","jsx","UNSTABLE_PickerTag","item","popoverContextValue","useImperativeHandle","PickerContextProvider","jsxs","classNames","Label","Dropdown","VisuallyHidden","Icon","DropdownPopover","PickerPopoverContextProvider","HelperText","ValidationText","UNSTABLE_Picker","forwardRef"],"mappings":"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"}
@@ -1,104 +1,107 @@
1
1
  "use client";
2
- import { jsx as e, jsxs as v } from "react/jsx-runtime";
3
- import fe from "classnames";
4
- import { forwardRef as ue, useMemo as m, useRef as w, useCallback as ge, useImperativeHandle as be } from "react";
5
- import { MULTIPLE_SELECTION_MODE as ve } from "../../constants/selection.js";
6
- import { useStyleProps as Pe } from "../../hooks/styleProps.js";
7
- import { useAriaDescribedBy as Te } from "../../hooks/useAriaIdRefs.js";
8
- import { useI18n as ye } from "../../hooks/useI18n.js";
9
- import { getSelectedKeys as he, isSingleSelectionMode as ke } from "../../hooks/useSelectionState.js";
10
- import { replaceTranslationParams as M } from "../../translations/replaceTranslationParams.js";
2
+ import { jsx as e, jsxs as P } from "react/jsx-runtime";
3
+ import O from "classnames";
4
+ import { forwardRef as Pe, useMemo as p, useRef as F, useCallback as ve, useImperativeHandle as Te } from "react";
5
+ import { MULTIPLE_SELECTION_MODE as ye } from "../../constants/selection.js";
6
+ import { useStyleProps as he } from "../../hooks/styleProps.js";
7
+ import { useAriaDescribedBy as ke } from "../../hooks/useAriaIdRefs.js";
8
+ import { useI18n as Se } from "../../hooks/useI18n.js";
9
+ import { getSelectedKeys as Le, isSingleSelectionMode as Ae } from "../../hooks/useSelectionState.js";
10
+ import { replaceTranslationParams as V } from "../../translations/replaceTranslationParams.js";
11
11
  import Ie from "../Dropdown/Dropdown.js";
12
- import Le from "../Dropdown/DropdownPopover.js";
13
- import Se from "../Field/HelperText.js";
14
- import xe from "../Field/Label.js";
15
- import Ae from "../Field/ValidationText.js";
16
- import { useValidationTextRole as Ne } from "../Field/useValidationTextRole.js";
17
- import Ce from "../Icon/Icon.js";
18
- import Ee from "../VisuallyHidden/VisuallyHidden.js";
19
- import { DEFAULT_SIZE as Re } from "./constants.js";
20
- import { PickerContextProvider as De } from "./PickerContext.js";
21
- import { PickerPopoverContextProvider as Ke } from "./PickerPopoverContext.js";
22
- import V from "./UNSTABLE_PickerTag.js";
23
- import { usePickerId as _e } from "./usePickerId.js";
24
- import { usePickerPopoverTabOutToTrigger as Be } from "./usePickerPopoverTabOutToTrigger.js";
25
- import { usePickerSelectionGridKeyboard as Ue } from "./usePickerSelectionGridKeyboard.js";
26
- import { usePickerStyleProps as we } from "./usePickerStyleProps.js";
27
- import { collectPickerItems as Me, getPickerItemLabelMap as Ve, getSelectedItems as Fe, getPickerSelectionGridKeyboardRowCount as Ge, getAggregatedTagLabel as Oe } from "./utils.js";
28
- const He = (G, O) => {
29
- const { t: s } = ye(), {
30
- "aria-describedby": H = "",
31
- addButtonLabel: $ = s("picker.add"),
32
- children: P,
33
- closeButtonLabel: j = s("common.close"),
34
- emptySelectionLabel: I,
35
- helperText: z,
36
- id: q,
12
+ import Ne from "../Dropdown/DropdownPopover.js";
13
+ import xe from "../Field/HelperText.js";
14
+ import Ee from "../Field/Label.js";
15
+ import Re from "../Field/ValidationText.js";
16
+ import { useValidationTextRole as Ce } from "../Field/useValidationTextRole.js";
17
+ import _e from "../Icon/Icon.js";
18
+ import De from "../VisuallyHidden/VisuallyHidden.js";
19
+ import { DEFAULT_POPOVER_PROPS as Ke, DEFAULT_SIZE as Ue } from "./constants.js";
20
+ import { PickerContextProvider as we } from "./PickerContext.js";
21
+ import { PickerPopoverContextProvider as Be } from "./PickerPopoverContext.js";
22
+ import M from "./UNSTABLE_PickerTag.js";
23
+ import { usePickerId as Oe } from "./usePickerId.js";
24
+ import { usePickerPopoverTabOutToTrigger as Fe } from "./usePickerPopoverTabOutToTrigger.js";
25
+ import { usePickerSelectionGridKeyboard as Ve } from "./usePickerSelectionGridKeyboard.js";
26
+ import { usePickerStyleProps as Me } from "./usePickerStyleProps.js";
27
+ import { collectPickerItems as Ge, getPickerItemLabelMap as He, getSelectedItems as $e, getPickerSelectionGridKeyboardRowCount as je, getAggregatedTagLabel as ze } from "./utils.js";
28
+ const qe = (H, $) => {
29
+ const { t: s } = Se(), {
30
+ "aria-describedby": j = "",
31
+ addButtonLabel: z = s("picker.add"),
32
+ children: v,
33
+ closeButtonLabel: q = s("common.close"),
34
+ emptySelectionLabel: S,
35
+ helperText: Z,
36
+ id: J,
37
37
  isAggregated: T = !1,
38
38
  isDisabled: t = !1,
39
- isFluid: Z = !1,
40
- isLabelHidden: J = !1,
41
- isOpen: r,
42
- isRequired: Q = !1,
39
+ isFluid: Q = !1,
40
+ isLabelHidden: W = !1,
41
+ isOpen: o,
42
+ isRequired: X = !1,
43
+ dropdownProps: Y,
43
44
  label: i,
45
+ labelProps: L,
44
46
  onSelectionChange: n,
45
- onToggle: p,
46
- removeAllLabel: W = s("picker.removeAll"),
47
- renderTags: L,
47
+ onToggle: m,
48
+ popoverProps: ee = Ke,
49
+ removeAllLabel: oe = s("picker.removeAll"),
50
+ renderTags: A,
48
51
  selectedKeys: c,
49
- selectionAriaLabel: X = s("picker.selectionAriaLabel"),
50
- selectionMode: d = ve,
51
- size: S = Re,
52
- tagDescriptionText: Y = s("picker.tagDescriptionText"),
53
- hasValidationIcon: ee,
52
+ selectionAriaLabel: re = s("picker.selectionAriaLabel"),
53
+ selectionMode: d = ye,
54
+ size: I = Ue,
55
+ tagDescriptionText: te = s("picker.tagDescriptionText"),
56
+ hasValidationIcon: ie,
54
57
  validationState: f,
55
- validationText: x,
56
- ...re
57
- } = G, [oe, A] = Te(H), te = Ne({
58
+ validationText: N,
59
+ ...ae
60
+ } = H, [le, x] = ke(j), se = Ce({
58
61
  validationState: f,
59
- validationText: x
60
- }), { classProps: o } = we({
62
+ validationText: N
63
+ }), { classProps: r } = Me({
61
64
  isDisabled: t,
62
- isFluid: Z,
63
- isLabelHidden: J,
64
- isRequired: Q,
65
- size: S,
65
+ isFluid: Q,
66
+ isLabelHidden: W,
67
+ isRequired: X,
68
+ size: I,
66
69
  validationState: f
67
- }), { styleProps: N, props: ie } = Pe(re), { labelId: C, pickerId: u, popoverId: E, selectionId: ae, tagDescriptionId: R } = _e(q), D = m(() => Me(P), [P]), K = m(() => Ve(D), [D]), g = m(() => he(c, d), [c, d]), a = m(
68
- () => Fe(g, K),
70
+ }), { styleProps: E, props: ne } = he(ae), { labelId: R, pickerId: u, popoverId: C, selectionId: ce, tagDescriptionId: _ } = Oe(J), D = p(() => Ge(v), [v]), K = p(() => He(D), [D]), g = p(() => Le(c, d), [c, d]), a = p(
71
+ () => $e(g, K),
69
72
  [g, K]
70
- ), _ = (l) => ke(d) ? n([]) : n(c.filter((b) => b !== l)), le = () => n([]), B = w(null), U = w(null), y = ge(() => {
71
- r && (p(), Promise.resolve().then(() => {
72
- U.current?.focus();
73
+ ), U = (l) => Ae(d) ? n([]) : n(c.filter((b) => b !== l)), de = () => n([]), w = F(null), B = F(null), y = ve(() => {
74
+ o && (m(), Promise.resolve().then(() => {
75
+ B.current?.focus();
73
76
  }));
74
- }, [r, p]), { onPopoverKeyDownCapture: se } = Be({
75
- isOpen: r,
77
+ }, [o, m]), { onPopoverKeyDownCapture: pe } = Fe({
78
+ isOpen: o,
76
79
  onClose: y
77
- }), ne = Ge(a.length, {
80
+ }), me = je(a.length, {
78
81
  isAggregated: T
79
- }), { getKeyboardGridRowProps: h, removeTagAtIndex: k } = Ue({
82
+ }), { getKeyboardGridRowProps: h, removeTagAtIndex: k } = Ve({
80
83
  isDisabled: t,
81
- isPopoverOpen: r,
84
+ isPopoverOpen: o,
82
85
  onRemoveAtIndex: (l) => {
83
- T ? le() : _(a[l].value);
86
+ T ? de() : U(a[l].value);
84
87
  },
85
- selectionRef: B,
86
- tagCount: ne
87
- }), ce = I ? M(I, { label: i }) : i, de = Oe(i, a), me = a.length ? L ? L({
88
+ selectionRef: w,
89
+ tagCount: me
90
+ }), fe = S ? V(S, { label: i }) : i, ue = ze(i, a), ge = a.length ? A ? A({
88
91
  getKeyboardGridRowProps: h,
89
- onRemove: _,
92
+ onRemove: U,
90
93
  removeTagAtIndex: k
91
94
  }) : T ? /* @__PURE__ */ e(
92
- V,
95
+ M,
93
96
  {
94
97
  tagKeyboardProps: h(0),
95
98
  isDisabled: t,
96
- label: de,
99
+ label: ue,
97
100
  onRemove: () => k(0),
98
- removeLabel: W
101
+ removeLabel: oe
99
102
  }
100
103
  ) : a.map((l, b) => /* @__PURE__ */ e(
101
- V,
104
+ M,
102
105
  {
103
106
  tagKeyboardProps: h(b),
104
107
  isDisabled: t,
@@ -106,7 +109,7 @@ const He = (G, O) => {
106
109
  onRemove: () => k(b)
107
110
  },
108
111
  l.value
109
- )) : /* @__PURE__ */ e("span", { "aria-hidden": "true", className: o.selectionEmpty, children: ce }), pe = m(
112
+ )) : /* @__PURE__ */ e("span", { "aria-hidden": "true", className: r.selectionEmpty, children: fe }), be = p(
110
113
  () => ({
111
114
  id: u,
112
115
  isDisabled: t,
@@ -116,89 +119,99 @@ const He = (G, O) => {
116
119
  }),
117
120
  [g, t, n, u, d]
118
121
  );
119
- return be(
120
- O,
122
+ return Te(
123
+ $,
121
124
  () => ({
122
125
  close: y,
123
126
  selectedKeys: c
124
127
  }),
125
128
  [y, c]
126
- ), /* @__PURE__ */ e(De, { value: { size: S, tagDescriptionId: R }, children: /* @__PURE__ */ v("div", { ...N, className: fe(o.root, N.className), ...ie, children: [
127
- /* @__PURE__ */ e(xe, { id: C, UNSAFE_className: o.label, elementType: "span", children: i }),
128
- /* @__PURE__ */ v(Ie, { id: E, isOpen: r, onToggle: p, children: [
129
- /* @__PURE__ */ v("div", { role: "group", "aria-label": i, className: o.inputContainer, children: [
129
+ ), /* @__PURE__ */ e(we, { value: { size: I, tagDescriptionId: _ }, children: /* @__PURE__ */ P("div", { ...E, className: O(r.root, E.className), ...ne, children: [
130
+ /* @__PURE__ */ e(
131
+ Ee,
132
+ {
133
+ ...L,
134
+ id: R,
135
+ elementType: "span",
136
+ UNSAFE_className: O(r.label, L?.UNSAFE_className),
137
+ children: i
138
+ }
139
+ ),
140
+ /* @__PURE__ */ P(Ie, { ...Y, id: C, isOpen: o, onToggle: m, children: [
141
+ /* @__PURE__ */ P("div", { role: "group", "aria-label": i, className: r.inputContainer, children: [
130
142
  /* @__PURE__ */ e(
131
143
  "div",
132
144
  {
133
- ref: B,
134
- ...oe,
135
- id: ae,
145
+ ref: w,
146
+ ...le,
147
+ id: ce,
136
148
  role: a.length ? "grid" : "group",
137
- "aria-label": M(X, { label: i }),
149
+ "aria-label": V(re, { label: i }),
138
150
  "aria-live": "off",
139
151
  "aria-atomic": !1,
140
152
  "aria-relevant": "additions",
141
- className: o.selection,
142
- children: me
153
+ className: r.selection,
154
+ children: ge
143
155
  }
144
156
  ),
145
- /* @__PURE__ */ v(
157
+ /* @__PURE__ */ P(
146
158
  "button",
147
159
  {
148
- ref: U,
160
+ ref: B,
149
161
  type: "button",
150
- className: o.trigger,
162
+ className: r.trigger,
151
163
  "aria-haspopup": "dialog",
152
- "aria-expanded": r,
153
- "aria-controls": E,
154
- onClick: p,
164
+ "aria-expanded": o,
165
+ "aria-controls": C,
166
+ onClick: m,
155
167
  disabled: t,
156
168
  children: [
157
- /* @__PURE__ */ e(Ee, { children: r ? j : $ }),
158
- /* @__PURE__ */ e(Ce, { name: `chevron-${r ? "up" : "down"}`, boxSize: 20 })
169
+ /* @__PURE__ */ e(De, { children: o ? q : z }),
170
+ /* @__PURE__ */ e(_e, { name: `chevron-${o ? "up" : "down"}`, boxSize: 20 })
159
171
  ]
160
172
  }
161
173
  )
162
174
  ] }),
163
175
  /* @__PURE__ */ e(
164
- Le,
176
+ Ne,
165
177
  {
166
- "aria-labelledby": C,
178
+ ...ee,
179
+ "aria-labelledby": R,
167
180
  role: "dialog",
168
181
  "aria-modal": "true",
169
- onKeyDownCapture: se,
170
- children: /* @__PURE__ */ e(Ke, { value: pe, children: P })
182
+ onKeyDownCapture: pe,
183
+ children: /* @__PURE__ */ e(Be, { value: be, children: v })
171
184
  }
172
185
  )
173
186
  ] }),
174
187
  /* @__PURE__ */ e(
175
- Se,
188
+ xe,
176
189
  {
177
- UNSAFE_className: o.helperText,
190
+ UNSAFE_className: r.helperText,
178
191
  id: `${u}-helper-text`,
179
- registerAria: A,
180
- helperText: z
192
+ registerAria: x,
193
+ helperText: Z
181
194
  }
182
195
  ),
183
196
  f && /* @__PURE__ */ e(
184
- Ae,
197
+ Re,
185
198
  {
186
- UNSAFE_className: o.validationText,
199
+ UNSAFE_className: r.validationText,
187
200
  id: `${u}-validation-text`,
188
- ...ee && { hasValidationStateIcon: f },
189
- validationText: x,
190
- registerAria: A,
191
- role: te
201
+ ...ie && { hasValidationStateIcon: f },
202
+ validationText: N,
203
+ registerAria: x,
204
+ role: se
192
205
  }
193
206
  ),
194
- /* @__PURE__ */ e("span", { id: R, hidden: !0, children: Y })
207
+ /* @__PURE__ */ e("span", { id: _, hidden: !0, children: te })
195
208
  ] }) });
196
- }, F = ue(
197
- He
209
+ }, G = Pe(
210
+ qe
198
211
  );
199
- F.spiritComponent = "UNSTABLE_Picker";
200
- F.displayName = "UNSTABLE_Picker";
212
+ G.spiritComponent = "UNSTABLE_Picker";
213
+ G.displayName = "UNSTABLE_Picker";
201
214
  export {
202
- F as default
215
+ G as default
203
216
  };
204
217
  //# sourceMappingURL=UNSTABLE_Picker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UNSTABLE_Picker.js","sources":["../../../src/components/UNSTABLE_Picker/UNSTABLE_Picker.tsx"],"sourcesContent":["'use client';\n\nimport classNames from 'classnames';\nimport React, { type ForwardedRef, forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport { MULTIPLE_SELECTION_MODE } from '../../constants';\nimport { getSelectedKeys, isSingleSelectionMode, useAriaDescribedBy, useI18n, useStyleProps } from '../../hooks';\nimport { replaceTranslationParams } from '../../translations';\nimport { type ForwardRefComponent } from '../../types';\nimport { Dropdown, DropdownPopover } from '../Dropdown';\nimport { HelperText, Label, ValidationText } from '../Field';\nimport { useValidationTextRole } from '../Field/useValidationTextRole';\nimport { Icon } from '../Icon';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { DEFAULT_SIZE } from './constants';\nimport { PickerContextProvider } from './PickerContext';\nimport { PickerPopoverContextProvider } from './PickerPopoverContext';\nimport type { SpiritUnstablePickerProps, SpiritUnstablePickerRef } from './types';\nimport UNSTABLE_PickerTag from './UNSTABLE_PickerTag';\nimport { usePickerId } from './usePickerId';\nimport { usePickerPopoverTabOutToTrigger } from './usePickerPopoverTabOutToTrigger';\nimport { usePickerSelectionGridKeyboard } from './usePickerSelectionGridKeyboard';\nimport { usePickerStyleProps } from './usePickerStyleProps';\nimport {\n collectPickerItems,\n getAggregatedTagLabel,\n getPickerItemLabelMap,\n getPickerSelectionGridKeyboardRowCount,\n getSelectedItems,\n} from './utils';\n\n// eslint-disable-next-line camelcase\nconst _UNSTABLE_Picker = (props: SpiritUnstablePickerProps, ref: ForwardedRef<SpiritUnstablePickerRef>) => {\n const { t } = useI18n();\n\n const {\n 'aria-describedby': ariaDescribedBy = '',\n addButtonLabel = t('picker.add'),\n children,\n closeButtonLabel = t('common.close'),\n emptySelectionLabel,\n helperText,\n id,\n isAggregated = false,\n isDisabled = false,\n isFluid = false,\n isLabelHidden = false,\n isOpen,\n isRequired = false,\n label,\n onSelectionChange,\n onToggle,\n removeAllLabel = t('picker.removeAll'),\n renderTags,\n selectedKeys,\n selectionAriaLabel = t('picker.selectionAriaLabel'),\n selectionMode = MULTIPLE_SELECTION_MODE,\n size = DEFAULT_SIZE,\n tagDescriptionText = t('picker.tagDescriptionText'),\n hasValidationIcon,\n validationState,\n validationText,\n ...restProps\n } = props;\n\n const [ariaDescribedByProp, register] = useAriaDescribedBy(ariaDescribedBy);\n const validationTextRole = useValidationTextRole({\n validationState,\n validationText,\n });\n const { classProps } = usePickerStyleProps({\n isDisabled,\n isFluid,\n isLabelHidden,\n isRequired,\n size,\n validationState,\n });\n const { styleProps, props: transferProps } = useStyleProps(restProps);\n const { labelId, pickerId, popoverId, selectionId, tagDescriptionId } = usePickerId(id);\n\n const pickerItems = useMemo(() => collectPickerItems(children), [children]);\n\n const pickerItemLabels = useMemo(() => getPickerItemLabelMap(pickerItems), [pickerItems]);\n\n const selectedPickerKeys = useMemo(() => getSelectedKeys(selectedKeys, selectionMode), [selectedKeys, selectionMode]);\n\n const selectedPickerItems = useMemo(\n () => getSelectedItems(selectedPickerKeys, pickerItemLabels),\n [selectedPickerKeys, pickerItemLabels],\n );\n\n const removeItem = (key: string) =>\n isSingleSelectionMode(selectionMode)\n ? onSelectionChange([])\n : onSelectionChange(selectedKeys.filter((selectedKey) => selectedKey !== key));\n\n const removeAll = () => onSelectionChange([]);\n\n const selectionGridRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const close = useCallback(() => {\n if (!isOpen) {\n return;\n }\n\n onToggle();\n\n Promise.resolve().then(() => {\n triggerRef.current?.focus();\n });\n }, [isOpen, onToggle]);\n\n const { onPopoverKeyDownCapture } = usePickerPopoverTabOutToTrigger({\n isOpen,\n onClose: close,\n });\n\n const selectionGridKeyboardRowCount = getPickerSelectionGridKeyboardRowCount(selectedPickerItems.length, {\n isAggregated,\n });\n\n const { getKeyboardGridRowProps, removeTagAtIndex } = usePickerSelectionGridKeyboard({\n isDisabled,\n isPopoverOpen: isOpen,\n onRemoveAtIndex: (index) => {\n if (isAggregated) {\n removeAll();\n } else {\n removeItem(selectedPickerItems[index]!.value);\n }\n },\n selectionRef: selectionGridRef,\n tagCount: selectionGridKeyboardRowCount,\n });\n\n const emptyLabel = emptySelectionLabel ? replaceTranslationParams(emptySelectionLabel, { label }) : label;\n const aggregatedTagLabel = getAggregatedTagLabel(label, selectedPickerItems);\n\n const selectionContent = (() => {\n if (!selectedPickerItems.length) {\n return (\n <span aria-hidden=\"true\" className={classProps.selectionEmpty}>\n {emptyLabel}\n </span>\n );\n }\n\n if (renderTags) {\n return renderTags({\n getKeyboardGridRowProps,\n onRemove: removeItem,\n removeTagAtIndex,\n });\n }\n\n if (isAggregated) {\n return (\n <UNSTABLE_PickerTag\n tagKeyboardProps={getKeyboardGridRowProps(0)}\n isDisabled={isDisabled}\n label={aggregatedTagLabel}\n onRemove={() => removeTagAtIndex(0)}\n removeLabel={removeAllLabel}\n />\n );\n }\n\n return selectedPickerItems.map((item, index) => (\n <UNSTABLE_PickerTag\n key={item.value}\n tagKeyboardProps={getKeyboardGridRowProps(index)}\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeTagAtIndex(index)}\n />\n ));\n })();\n\n const popoverContextValue = useMemo(\n () => ({\n id: pickerId,\n isDisabled,\n onSelectionChange,\n selectedKeys: selectedPickerKeys,\n selectionMode,\n }),\n [selectedPickerKeys, isDisabled, onSelectionChange, pickerId, selectionMode],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n close,\n selectedKeys,\n }),\n [close, selectedKeys],\n );\n\n return (\n <PickerContextProvider value={{ size, tagDescriptionId }}>\n <div {...styleProps} className={classNames(classProps.root, styleProps.className)} {...transferProps}>\n <Label id={labelId} UNSAFE_className={classProps.label} elementType=\"span\">\n {label}\n </Label>\n <Dropdown id={popoverId} isOpen={isOpen} onToggle={onToggle}>\n <div role=\"group\" aria-label={label} className={classProps.inputContainer}>\n <div\n ref={selectionGridRef}\n {...ariaDescribedByProp}\n id={selectionId}\n role={selectedPickerItems.length ? 'grid' : 'group'}\n aria-label={replaceTranslationParams(selectionAriaLabel, { label })}\n aria-live=\"off\"\n aria-atomic={false}\n aria-relevant=\"additions\"\n className={classProps.selection}\n >\n {selectionContent}\n </div>\n <button\n ref={triggerRef}\n type=\"button\"\n className={classProps.trigger}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverId}\n onClick={onToggle}\n disabled={isDisabled}\n >\n <VisuallyHidden>{isOpen ? closeButtonLabel : addButtonLabel}</VisuallyHidden>\n <Icon name={`chevron-${isOpen ? 'up' : 'down'}`} boxSize={20} />\n </button>\n </div>\n <DropdownPopover\n aria-labelledby={labelId}\n role=\"dialog\"\n aria-modal=\"true\"\n onKeyDownCapture={onPopoverKeyDownCapture}\n >\n <PickerPopoverContextProvider value={popoverContextValue}>{children}</PickerPopoverContextProvider>\n </DropdownPopover>\n </Dropdown>\n <HelperText\n UNSAFE_className={classProps.helperText}\n id={`${pickerId}-helper-text`}\n registerAria={register}\n helperText={helperText}\n />\n {validationState && (\n <ValidationText\n UNSAFE_className={classProps.validationText}\n id={`${pickerId}-validation-text`}\n {...(hasValidationIcon && { hasValidationStateIcon: validationState })}\n validationText={validationText}\n registerAria={register}\n role={validationTextRole}\n />\n )}\n <span id={tagDescriptionId} hidden>\n {tagDescriptionText}\n </span>\n </div>\n </PickerContextProvider>\n );\n};\n\nconst UNSTABLE_Picker = forwardRef<SpiritUnstablePickerRef, SpiritUnstablePickerProps>(\n _UNSTABLE_Picker,\n) as ForwardRefComponent<SpiritUnstablePickerRef, SpiritUnstablePickerProps>;\n\nUNSTABLE_Picker.spiritComponent = 'UNSTABLE_Picker';\nUNSTABLE_Picker.displayName = 'UNSTABLE_Picker';\n\nexport default UNSTABLE_Picker;\n"],"names":["_UNSTABLE_Picker","props","ref","t","useI18n","ariaDescribedBy","addButtonLabel","children","closeButtonLabel","emptySelectionLabel","helperText","id","isAggregated","isDisabled","isFluid","isLabelHidden","isOpen","isRequired","label","onSelectionChange","onToggle","removeAllLabel","renderTags","selectedKeys","selectionAriaLabel","selectionMode","MULTIPLE_SELECTION_MODE","size","DEFAULT_SIZE","tagDescriptionText","hasValidationIcon","validationState","validationText","restProps","ariaDescribedByProp","register","useAriaDescribedBy","validationTextRole","useValidationTextRole","classProps","usePickerStyleProps","styleProps","transferProps","useStyleProps","labelId","pickerId","popoverId","selectionId","tagDescriptionId","usePickerId","pickerItems","useMemo","collectPickerItems","pickerItemLabels","getPickerItemLabelMap","selectedPickerKeys","getSelectedKeys","selectedPickerItems","getSelectedItems","removeItem","key","isSingleSelectionMode","selectedKey","removeAll","selectionGridRef","useRef","triggerRef","close","useCallback","onPopoverKeyDownCapture","usePickerPopoverTabOutToTrigger","selectionGridKeyboardRowCount","getPickerSelectionGridKeyboardRowCount","getKeyboardGridRowProps","removeTagAtIndex","usePickerSelectionGridKeyboard","index","emptyLabel","replaceTranslationParams","aggregatedTagLabel","getAggregatedTagLabel","selectionContent","jsx","UNSTABLE_PickerTag","item","popoverContextValue","useImperativeHandle","PickerContextProvider","jsxs","classNames","Label","Dropdown","VisuallyHidden","Icon","DropdownPopover","PickerPopoverContextProvider","HelperText","ValidationText","UNSTABLE_Picker","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAMA,KAAmB,CAACC,GAAkCC,MAA+C;AACzG,QAAM,EAAE,GAAAC,EAAA,IAAMC,GAAA,GAER;AAAA,IACJ,oBAAoBC,IAAkB;AAAA,IACtC,gBAAAC,IAAiBH,EAAE,YAAY;AAAA,IAC/B,UAAAI;AAAA,IACA,kBAAAC,IAAmBL,EAAE,cAAc;AAAA,IACnC,qBAAAM;AAAA,IACA,YAAAC;AAAA,IACA,IAAAC;AAAA,IACA,cAAAC,IAAe;AAAA,IACf,YAAAC,IAAa;AAAA,IACb,SAAAC,IAAU;AAAA,IACV,eAAAC,IAAgB;AAAA,IAChB,QAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,OAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC,IAAiBlB,EAAE,kBAAkB;AAAA,IACrC,YAAAmB;AAAA,IACA,cAAAC;AAAA,IACA,oBAAAC,IAAqBrB,EAAE,2BAA2B;AAAA,IAClD,eAAAsB,IAAgBC;AAAA,IAChB,MAAAC,IAAOC;AAAA,IACP,oBAAAC,IAAqB1B,EAAE,2BAA2B;AAAA,IAClD,mBAAA2B;AAAA,IACA,iBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDhC,GAEE,CAACiC,IAAqBC,CAAQ,IAAIC,GAAmB/B,CAAe,GACpEgC,KAAqBC,GAAsB;AAAA,IAC/C,iBAAAP;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GACK,EAAE,YAAAO,EAAA,IAAeC,GAAoB;AAAA,IACzC,YAAA3B;AAAA,IACA,SAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAE;AAAA,IACA,MAAAU;AAAA,IACA,iBAAAI;AAAA,EAAA,CACD,GACK,EAAE,YAAAU,GAAY,OAAOC,GAAA,IAAkBC,GAAcV,EAAS,GAC9D,EAAE,SAAAW,GAAS,UAAAC,GAAU,WAAAC,GAAW,aAAAC,IAAa,kBAAAC,EAAA,IAAqBC,GAAYtC,CAAE,GAEhFuC,IAAcC,EAAQ,MAAMC,GAAmB7C,CAAQ,GAAG,CAACA,CAAQ,CAAC,GAEpE8C,IAAmBF,EAAQ,MAAMG,GAAsBJ,CAAW,GAAG,CAACA,CAAW,CAAC,GAElFK,IAAqBJ,EAAQ,MAAMK,GAAgBjC,GAAcE,CAAa,GAAG,CAACF,GAAcE,CAAa,CAAC,GAE9GgC,IAAsBN;AAAA,IAC1B,MAAMO,GAAiBH,GAAoBF,CAAgB;AAAA,IAC3D,CAACE,GAAoBF,CAAgB;AAAA,EAAA,GAGjCM,IAAa,CAACC,MAClBC,GAAsBpC,CAAa,IAC/BN,EAAkB,CAAA,CAAE,IACpBA,EAAkBI,EAAa,OAAO,CAACuC,MAAgBA,MAAgBF,CAAG,CAAC,GAE3EG,KAAY,MAAM5C,EAAkB,EAAE,GAEtC6C,IAAmBC,EAAuB,IAAI,GAC9CC,IAAaD,EAAiC,IAAI,GAElDE,IAAQC,GAAY,MAAM;AAC9B,IAAKpD,MAILI,EAAA,GAEA,QAAQ,UAAU,KAAK,MAAM;AAC3B,MAAA8C,EAAW,SAAS,MAAA;AAAA,IACtB,CAAC;AAAA,EACH,GAAG,CAAClD,GAAQI,CAAQ,CAAC,GAEf,EAAE,yBAAAiD,GAAA,IAA4BC,GAAgC;AAAA,IAClE,QAAAtD;AAAA,IACA,SAASmD;AAAA,EAAA,CACV,GAEKI,KAAgCC,GAAuCf,EAAoB,QAAQ;AAAA,IACvG,cAAA7C;AAAA,EAAA,CACD,GAEK,EAAE,yBAAA6D,GAAyB,kBAAAC,EAAA,IAAqBC,GAA+B;AAAA,IACnF,YAAA9D;AAAA,IACA,eAAeG;AAAA,IACf,iBAAiB,CAAC4D,MAAU;AAC1B,MAAIhE,IACFmD,GAAA,IAEAJ,EAAWF,EAAoBmB,CAAK,EAAG,KAAK;AAAA,IAEhD;AAAA,IACA,cAAcZ;AAAA,IACd,UAAUO;AAAA,EAAA,CACX,GAEKM,KAAapE,IAAsBqE,EAAyBrE,GAAqB,EAAE,OAAAS,EAAA,CAAO,IAAIA,GAC9F6D,KAAqBC,GAAsB9D,GAAOuC,CAAmB,GAErEwB,KACCxB,EAAoB,SAQrBnC,IACKA,EAAW;AAAA,IAChB,yBAAAmD;AAAA,IACA,UAAUd;AAAA,IACV,kBAAAe;AAAA,EAAA,CACD,IAGC9D,IAEA,gBAAAsE;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,kBAAkBV,EAAwB,CAAC;AAAA,MAC3C,YAAA5D;AAAA,MACA,OAAOkE;AAAA,MACP,UAAU,MAAML,EAAiB,CAAC;AAAA,MAClC,aAAarD;AAAA,IAAA;AAAA,EAAA,IAKZoC,EAAoB,IAAI,CAAC2B,GAAMR,MACpC,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MAEC,kBAAkBV,EAAwBG,CAAK;AAAA,MAC/C,YAAA/D;AAAA,MACA,OAAOuE,EAAK;AAAA,MACZ,UAAU,MAAMV,EAAiBE,CAAK;AAAA,IAAA;AAAA,IAJjCQ,EAAK;AAAA,EAAA,CAMb,sBAlCI,QAAA,EAAK,eAAY,QAAO,WAAW7C,EAAW,gBAC5C,UAAAsC,IACH,GAmCAQ,KAAsBlC;AAAA,IAC1B,OAAO;AAAA,MACL,IAAIN;AAAA,MACJ,YAAAhC;AAAA,MACA,mBAAAM;AAAA,MACA,cAAcoC;AAAA,MACd,eAAA9B;AAAA,IAAA;AAAA,IAEF,CAAC8B,GAAoB1C,GAAYM,GAAmB0B,GAAUpB,CAAa;AAAA,EAAA;AAG7E,SAAA6D;AAAA,IACEpF;AAAA,IACA,OAAO;AAAA,MACL,OAAAiE;AAAA,MACA,cAAA5C;AAAA,IAAA;AAAA,IAEF,CAAC4C,GAAO5C,CAAY;AAAA,EAAA,qBAInBgE,IAAA,EAAsB,OAAO,EAAE,MAAA5D,GAAM,kBAAAqB,EAAA,GACpC,UAAA,gBAAAwC,EAAC,OAAA,EAAK,GAAG/C,GAAY,WAAWgD,GAAWlD,EAAW,MAAME,EAAW,SAAS,GAAI,GAAGC,IACrF,UAAA;AAAA,IAAA,gBAAAwC,EAACQ,IAAA,EAAM,IAAI9C,GAAS,kBAAkBL,EAAW,OAAO,aAAY,QACjE,UAAArB,EAAA,CACH;AAAA,IACA,gBAAAsE,EAACG,IAAA,EAAS,IAAI7C,GAAW,QAAA9B,GAAgB,UAAAI,GACvC,UAAA;AAAA,MAAA,gBAAAoE,EAAC,SAAI,MAAK,SAAQ,cAAYtE,GAAO,WAAWqB,EAAW,gBACzD,UAAA;AAAA,QAAA,gBAAA2C;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKlB;AAAA,YACJ,GAAG9B;AAAA,YACJ,IAAIa;AAAA,YACJ,MAAMU,EAAoB,SAAS,SAAS;AAAA,YAC5C,cAAYqB,EAAyBtD,GAAoB,EAAE,OAAAN,GAAO;AAAA,YAClE,aAAU;AAAA,YACV,eAAa;AAAA,YACb,iBAAc;AAAA,YACd,WAAWqB,EAAW;AAAA,YAErB,UAAA0C;AAAA,UAAA;AAAA,QAAA;AAAA,QAEH,gBAAAO;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKtB;AAAA,YACL,MAAK;AAAA,YACL,WAAW3B,EAAW;AAAA,YACtB,iBAAc;AAAA,YACd,iBAAevB;AAAA,YACf,iBAAe8B;AAAA,YACf,SAAS1B;AAAA,YACT,UAAUP;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAqE,EAACU,IAAA,EAAgB,UAAA5E,IAASR,IAAmBF,GAAe;AAAA,cAC5D,gBAAA4E,EAACW,MAAK,MAAM,WAAW7E,IAAS,OAAO,MAAM,IAAI,SAAS,GAAA,CAAI;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAChE,GACF;AAAA,MACA,gBAAAkE;AAAA,QAACY;AAAA,QAAA;AAAA,UACC,mBAAiBlD;AAAA,UACjB,MAAK;AAAA,UACL,cAAW;AAAA,UACX,kBAAkByB;AAAA,UAElB,UAAA,gBAAAa,EAACa,IAAA,EAA6B,OAAOV,IAAsB,UAAA9E,EAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IACtE,GACF;AAAA,IACA,gBAAA2E;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,kBAAkBzD,EAAW;AAAA,QAC7B,IAAI,GAAGM,CAAQ;AAAA,QACf,cAAcV;AAAA,QACd,YAAAzB;AAAA,MAAA;AAAA,IAAA;AAAA,IAEDqB,KACC,gBAAAmD;AAAA,MAACe;AAAA,MAAA;AAAA,QACC,kBAAkB1D,EAAW;AAAA,QAC7B,IAAI,GAAGM,CAAQ;AAAA,QACd,GAAIf,MAAqB,EAAE,wBAAwBC,EAAA;AAAA,QACpD,gBAAAC;AAAA,QACA,cAAcG;AAAA,QACd,MAAME;AAAA,MAAA;AAAA,IAAA;AAAA,sBAGT,QAAA,EAAK,IAAIW,GAAkB,QAAM,IAC/B,UAAAnB,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ,GAEMqE,IAAkBC;AAAA,EACtBnG;AACF;AAEAkG,EAAgB,kBAAkB;AAClCA,EAAgB,cAAc;"}
1
+ {"version":3,"file":"UNSTABLE_Picker.js","sources":["../../../src/components/UNSTABLE_Picker/UNSTABLE_Picker.tsx"],"sourcesContent":["'use client';\n\nimport classNames from 'classnames';\nimport React, { type ForwardedRef, forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport { MULTIPLE_SELECTION_MODE } from '../../constants';\nimport { getSelectedKeys, isSingleSelectionMode, useAriaDescribedBy, useI18n, useStyleProps } from '../../hooks';\nimport { replaceTranslationParams } from '../../translations';\nimport { type ForwardRefComponent } from '../../types';\nimport { Dropdown, DropdownPopover } from '../Dropdown';\nimport { HelperText, Label, ValidationText } from '../Field';\nimport { useValidationTextRole } from '../Field/useValidationTextRole';\nimport { Icon } from '../Icon';\nimport { VisuallyHidden } from '../VisuallyHidden';\nimport { DEFAULT_POPOVER_PROPS, DEFAULT_SIZE } from './constants';\nimport { PickerContextProvider } from './PickerContext';\nimport { PickerPopoverContextProvider } from './PickerPopoverContext';\nimport type { SpiritUnstablePickerProps, SpiritUnstablePickerRef } from './types';\nimport UNSTABLE_PickerTag from './UNSTABLE_PickerTag';\nimport { usePickerId } from './usePickerId';\nimport { usePickerPopoverTabOutToTrigger } from './usePickerPopoverTabOutToTrigger';\nimport { usePickerSelectionGridKeyboard } from './usePickerSelectionGridKeyboard';\nimport { usePickerStyleProps } from './usePickerStyleProps';\nimport {\n collectPickerItems,\n getAggregatedTagLabel,\n getPickerItemLabelMap,\n getPickerSelectionGridKeyboardRowCount,\n getSelectedItems,\n} from './utils';\n\n// eslint-disable-next-line camelcase\nconst _UNSTABLE_Picker = (props: SpiritUnstablePickerProps, ref: ForwardedRef<SpiritUnstablePickerRef>) => {\n const { t } = useI18n();\n\n const {\n 'aria-describedby': ariaDescribedBy = '',\n addButtonLabel = t('picker.add'),\n children,\n closeButtonLabel = t('common.close'),\n emptySelectionLabel,\n helperText,\n id,\n isAggregated = false,\n isDisabled = false,\n isFluid = false,\n isLabelHidden = false,\n isOpen,\n isRequired = false,\n dropdownProps,\n label,\n labelProps,\n onSelectionChange,\n onToggle,\n popoverProps = DEFAULT_POPOVER_PROPS,\n removeAllLabel = t('picker.removeAll'),\n renderTags,\n selectedKeys,\n selectionAriaLabel = t('picker.selectionAriaLabel'),\n selectionMode = MULTIPLE_SELECTION_MODE,\n size = DEFAULT_SIZE,\n tagDescriptionText = t('picker.tagDescriptionText'),\n hasValidationIcon,\n validationState,\n validationText,\n ...restProps\n } = props;\n\n const [ariaDescribedByProp, register] = useAriaDescribedBy(ariaDescribedBy);\n const validationTextRole = useValidationTextRole({\n validationState,\n validationText,\n });\n const { classProps } = usePickerStyleProps({\n isDisabled,\n isFluid,\n isLabelHidden,\n isRequired,\n size,\n validationState,\n });\n const { styleProps, props: transferProps } = useStyleProps(restProps);\n const { labelId, pickerId, popoverId, selectionId, tagDescriptionId } = usePickerId(id);\n\n const pickerItems = useMemo(() => collectPickerItems(children), [children]);\n\n const pickerItemLabels = useMemo(() => getPickerItemLabelMap(pickerItems), [pickerItems]);\n\n const selectedPickerKeys = useMemo(() => getSelectedKeys(selectedKeys, selectionMode), [selectedKeys, selectionMode]);\n\n const selectedPickerItems = useMemo(\n () => getSelectedItems(selectedPickerKeys, pickerItemLabels),\n [selectedPickerKeys, pickerItemLabels],\n );\n\n const removeItem = (key: string) =>\n isSingleSelectionMode(selectionMode)\n ? onSelectionChange([])\n : onSelectionChange(selectedKeys.filter((selectedKey) => selectedKey !== key));\n\n const removeAll = () => onSelectionChange([]);\n\n const selectionGridRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n\n const close = useCallback(() => {\n if (!isOpen) {\n return;\n }\n\n onToggle();\n\n Promise.resolve().then(() => {\n triggerRef.current?.focus();\n });\n }, [isOpen, onToggle]);\n\n const { onPopoverKeyDownCapture } = usePickerPopoverTabOutToTrigger({\n isOpen,\n onClose: close,\n });\n\n const selectionGridKeyboardRowCount = getPickerSelectionGridKeyboardRowCount(selectedPickerItems.length, {\n isAggregated,\n });\n\n const { getKeyboardGridRowProps, removeTagAtIndex } = usePickerSelectionGridKeyboard({\n isDisabled,\n isPopoverOpen: isOpen,\n onRemoveAtIndex: (index) => {\n if (isAggregated) {\n removeAll();\n } else {\n removeItem(selectedPickerItems[index]!.value);\n }\n },\n selectionRef: selectionGridRef,\n tagCount: selectionGridKeyboardRowCount,\n });\n\n const emptyLabel = emptySelectionLabel ? replaceTranslationParams(emptySelectionLabel, { label }) : label;\n const aggregatedTagLabel = getAggregatedTagLabel(label, selectedPickerItems);\n\n const selectionContent = (() => {\n if (!selectedPickerItems.length) {\n return (\n <span aria-hidden=\"true\" className={classProps.selectionEmpty}>\n {emptyLabel}\n </span>\n );\n }\n\n if (renderTags) {\n return renderTags({\n getKeyboardGridRowProps,\n onRemove: removeItem,\n removeTagAtIndex,\n });\n }\n\n if (isAggregated) {\n return (\n <UNSTABLE_PickerTag\n tagKeyboardProps={getKeyboardGridRowProps(0)}\n isDisabled={isDisabled}\n label={aggregatedTagLabel}\n onRemove={() => removeTagAtIndex(0)}\n removeLabel={removeAllLabel}\n />\n );\n }\n\n return selectedPickerItems.map((item, index) => (\n <UNSTABLE_PickerTag\n key={item.value}\n tagKeyboardProps={getKeyboardGridRowProps(index)}\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeTagAtIndex(index)}\n />\n ));\n })();\n\n const popoverContextValue = useMemo(\n () => ({\n id: pickerId,\n isDisabled,\n onSelectionChange,\n selectedKeys: selectedPickerKeys,\n selectionMode,\n }),\n [selectedPickerKeys, isDisabled, onSelectionChange, pickerId, selectionMode],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n close,\n selectedKeys,\n }),\n [close, selectedKeys],\n );\n\n return (\n <PickerContextProvider value={{ size, tagDescriptionId }}>\n <div {...styleProps} className={classNames(classProps.root, styleProps.className)} {...transferProps}>\n <Label\n {...labelProps}\n id={labelId}\n elementType=\"span\"\n UNSAFE_className={classNames(classProps.label, labelProps?.UNSAFE_className)}\n >\n {label}\n </Label>\n <Dropdown {...dropdownProps} id={popoverId} isOpen={isOpen} onToggle={onToggle}>\n <div role=\"group\" aria-label={label} className={classProps.inputContainer}>\n <div\n ref={selectionGridRef}\n {...ariaDescribedByProp}\n id={selectionId}\n role={selectedPickerItems.length ? 'grid' : 'group'}\n aria-label={replaceTranslationParams(selectionAriaLabel, { label })}\n aria-live=\"off\"\n aria-atomic={false}\n aria-relevant=\"additions\"\n className={classProps.selection}\n >\n {selectionContent}\n </div>\n <button\n ref={triggerRef}\n type=\"button\"\n className={classProps.trigger}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverId}\n onClick={onToggle}\n disabled={isDisabled}\n >\n <VisuallyHidden>{isOpen ? closeButtonLabel : addButtonLabel}</VisuallyHidden>\n <Icon name={`chevron-${isOpen ? 'up' : 'down'}`} boxSize={20} />\n </button>\n </div>\n <DropdownPopover\n {...popoverProps}\n aria-labelledby={labelId}\n role=\"dialog\"\n aria-modal=\"true\"\n onKeyDownCapture={onPopoverKeyDownCapture}\n >\n <PickerPopoverContextProvider value={popoverContextValue}>{children}</PickerPopoverContextProvider>\n </DropdownPopover>\n </Dropdown>\n <HelperText\n UNSAFE_className={classProps.helperText}\n id={`${pickerId}-helper-text`}\n registerAria={register}\n helperText={helperText}\n />\n {validationState && (\n <ValidationText\n UNSAFE_className={classProps.validationText}\n id={`${pickerId}-validation-text`}\n {...(hasValidationIcon && { hasValidationStateIcon: validationState })}\n validationText={validationText}\n registerAria={register}\n role={validationTextRole}\n />\n )}\n <span id={tagDescriptionId} hidden>\n {tagDescriptionText}\n </span>\n </div>\n </PickerContextProvider>\n );\n};\n\nconst UNSTABLE_Picker = forwardRef<SpiritUnstablePickerRef, SpiritUnstablePickerProps>(\n _UNSTABLE_Picker,\n) as ForwardRefComponent<SpiritUnstablePickerRef, SpiritUnstablePickerProps>;\n\nUNSTABLE_Picker.spiritComponent = 'UNSTABLE_Picker';\nUNSTABLE_Picker.displayName = 'UNSTABLE_Picker';\n\nexport default UNSTABLE_Picker;\n"],"names":["_UNSTABLE_Picker","props","ref","t","useI18n","ariaDescribedBy","addButtonLabel","children","closeButtonLabel","emptySelectionLabel","helperText","id","isAggregated","isDisabled","isFluid","isLabelHidden","isOpen","isRequired","dropdownProps","label","labelProps","onSelectionChange","onToggle","popoverProps","DEFAULT_POPOVER_PROPS","removeAllLabel","renderTags","selectedKeys","selectionAriaLabel","selectionMode","MULTIPLE_SELECTION_MODE","size","DEFAULT_SIZE","tagDescriptionText","hasValidationIcon","validationState","validationText","restProps","ariaDescribedByProp","register","useAriaDescribedBy","validationTextRole","useValidationTextRole","classProps","usePickerStyleProps","styleProps","transferProps","useStyleProps","labelId","pickerId","popoverId","selectionId","tagDescriptionId","usePickerId","pickerItems","useMemo","collectPickerItems","pickerItemLabels","getPickerItemLabelMap","selectedPickerKeys","getSelectedKeys","selectedPickerItems","getSelectedItems","removeItem","key","isSingleSelectionMode","selectedKey","removeAll","selectionGridRef","useRef","triggerRef","close","useCallback","onPopoverKeyDownCapture","usePickerPopoverTabOutToTrigger","selectionGridKeyboardRowCount","getPickerSelectionGridKeyboardRowCount","getKeyboardGridRowProps","removeTagAtIndex","usePickerSelectionGridKeyboard","index","emptyLabel","replaceTranslationParams","aggregatedTagLabel","getAggregatedTagLabel","selectionContent","jsx","UNSTABLE_PickerTag","item","popoverContextValue","useImperativeHandle","PickerContextProvider","jsxs","classNames","Label","Dropdown","VisuallyHidden","Icon","DropdownPopover","PickerPopoverContextProvider","HelperText","ValidationText","UNSTABLE_Picker","forwardRef"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../constants/dictionaries.cjs"),E=e.Sizes.MEDIUM,S={[e.Sizes.SMALL]:e.SizesExtended.XSMALL,[e.Sizes.MEDIUM]:e.SizesExtended.SMALL,[e.Sizes.LARGE]:e.SizesExtended.MEDIUM};exports.DEFAULT_SIZE=E;exports.PICKER_NESTED_SIZE_MAP=S;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../constants/dictionaries.cjs"),E=e.Sizes.MEDIUM,t={theme:"theme-light-default"},S={[e.Sizes.SMALL]:e.SizesExtended.XSMALL,[e.Sizes.MEDIUM]:e.SizesExtended.SMALL,[e.Sizes.LARGE]:e.SizesExtended.MEDIUM};exports.DEFAULT_POPOVER_PROPS=t;exports.DEFAULT_SIZE=E;exports.PICKER_NESTED_SIZE_MAP=S;
2
2
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sources":["../../../src/components/UNSTABLE_Picker/constants.ts"],"sourcesContent":["import { Sizes, SizesExtended } from '../../constants';\nimport type { SizeExtendedDictionaryType } from '../../types';\n\ntype PickerShellSize = (typeof Sizes)[keyof typeof Sizes];\n\nexport const DEFAULT_SIZE = Sizes.MEDIUM;\n\n/** Maps picker shell size to extended sizes for nested Tag and ControlButton. */\nexport const PICKER_NESTED_SIZE_MAP: Record<PickerShellSize, SizeExtendedDictionaryType> = {\n [Sizes.SMALL]: SizesExtended.XSMALL,\n [Sizes.MEDIUM]: SizesExtended.SMALL,\n [Sizes.LARGE]: SizesExtended.MEDIUM,\n};\n"],"names":["DEFAULT_SIZE","Sizes","PICKER_NESTED_SIZE_MAP","SizesExtended"],"mappings":"oIAKaA,EAAeC,EAAAA,MAAM,OAGrBC,EAA8E,CACzF,CAACD,EAAAA,MAAM,KAAK,EAAGE,EAAAA,cAAc,OAC7B,CAACF,EAAAA,MAAM,MAAM,EAAGE,EAAAA,cAAc,MAC9B,CAACF,EAAAA,MAAM,KAAK,EAAGE,gBAAc,MAC/B"}
1
+ {"version":3,"file":"constants.cjs","sources":["../../../src/components/UNSTABLE_Picker/constants.ts"],"sourcesContent":["import { Sizes, SizesExtended } from '../../constants';\nimport type { SizeExtendedDictionaryType, StyleProps } from '../../types';\n\ntype PickerShellSize = (typeof Sizes)[keyof typeof Sizes];\n\nexport const DEFAULT_SIZE = Sizes.MEDIUM;\n\n/** Default props for the inner `DropdownPopover` (overridable via `popoverProps`). */\nexport const DEFAULT_POPOVER_PROPS: StyleProps = {\n theme: 'theme-light-default',\n};\n\n/** Maps picker shell size to extended sizes for nested Tag and ControlButton. */\nexport const PICKER_NESTED_SIZE_MAP: Record<PickerShellSize, SizeExtendedDictionaryType> = {\n [Sizes.SMALL]: SizesExtended.XSMALL,\n [Sizes.MEDIUM]: SizesExtended.SMALL,\n [Sizes.LARGE]: SizesExtended.MEDIUM,\n};\n"],"names":["DEFAULT_SIZE","Sizes","DEFAULT_POPOVER_PROPS","PICKER_NESTED_SIZE_MAP","SizesExtended"],"mappings":"oIAKaA,EAAeC,EAAAA,MAAM,OAGrBC,EAAoC,CAC/C,MAAO,qBACT,EAGaC,EAA8E,CACzF,CAACF,EAAAA,MAAM,KAAK,EAAGG,EAAAA,cAAc,OAC7B,CAACH,EAAAA,MAAM,MAAM,EAAGG,EAAAA,cAAc,MAC9B,CAACH,EAAAA,MAAM,KAAK,EAAGG,gBAAc,MAC/B"}
@@ -1,6 +1,7 @@
1
1
  import { Sizes } from '../../constants';
2
- import { SizeExtendedDictionaryType } from '../../types';
2
+ import { SizeExtendedDictionaryType, StyleProps } from '../../types';
3
3
  type PickerShellSize = (typeof Sizes)[keyof typeof Sizes];
4
4
  export declare const DEFAULT_SIZE: "medium";
5
+ export declare const DEFAULT_POPOVER_PROPS: StyleProps;
5
6
  export declare const PICKER_NESTED_SIZE_MAP: Record<PickerShellSize, SizeExtendedDictionaryType>;
6
7
  export {};
@@ -1,11 +1,14 @@
1
- import { SizesExtended as M, Sizes as E } from "../../constants/dictionaries.js";
2
- const S = E.MEDIUM, t = {
3
- [E.SMALL]: M.XSMALL,
4
- [E.MEDIUM]: M.SMALL,
5
- [E.LARGE]: M.MEDIUM
1
+ import { SizesExtended as t, Sizes as E } from "../../constants/dictionaries.js";
2
+ const M = E.MEDIUM, L = {
3
+ theme: "theme-light-default"
4
+ }, S = {
5
+ [E.SMALL]: t.XSMALL,
6
+ [E.MEDIUM]: t.SMALL,
7
+ [E.LARGE]: t.MEDIUM
6
8
  };
7
9
  export {
8
- S as DEFAULT_SIZE,
9
- t as PICKER_NESTED_SIZE_MAP
10
+ L as DEFAULT_POPOVER_PROPS,
11
+ M as DEFAULT_SIZE,
12
+ S as PICKER_NESTED_SIZE_MAP
10
13
  };
11
14
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../src/components/UNSTABLE_Picker/constants.ts"],"sourcesContent":["import { Sizes, SizesExtended } from '../../constants';\nimport type { SizeExtendedDictionaryType } from '../../types';\n\ntype PickerShellSize = (typeof Sizes)[keyof typeof Sizes];\n\nexport const DEFAULT_SIZE = Sizes.MEDIUM;\n\n/** Maps picker shell size to extended sizes for nested Tag and ControlButton. */\nexport const PICKER_NESTED_SIZE_MAP: Record<PickerShellSize, SizeExtendedDictionaryType> = {\n [Sizes.SMALL]: SizesExtended.XSMALL,\n [Sizes.MEDIUM]: SizesExtended.SMALL,\n [Sizes.LARGE]: SizesExtended.MEDIUM,\n};\n"],"names":["DEFAULT_SIZE","Sizes","PICKER_NESTED_SIZE_MAP","SizesExtended"],"mappings":";AAKO,MAAMA,IAAeC,EAAM,QAGrBC,IAA8E;AAAA,EACzF,CAACD,EAAM,KAAK,GAAGE,EAAc;AAAA,EAC7B,CAACF,EAAM,MAAM,GAAGE,EAAc;AAAA,EAC9B,CAACF,EAAM,KAAK,GAAGE,EAAc;AAC/B;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../src/components/UNSTABLE_Picker/constants.ts"],"sourcesContent":["import { Sizes, SizesExtended } from '../../constants';\nimport type { SizeExtendedDictionaryType, StyleProps } from '../../types';\n\ntype PickerShellSize = (typeof Sizes)[keyof typeof Sizes];\n\nexport const DEFAULT_SIZE = Sizes.MEDIUM;\n\n/** Default props for the inner `DropdownPopover` (overridable via `popoverProps`). */\nexport const DEFAULT_POPOVER_PROPS: StyleProps = {\n theme: 'theme-light-default',\n};\n\n/** Maps picker shell size to extended sizes for nested Tag and ControlButton. */\nexport const PICKER_NESTED_SIZE_MAP: Record<PickerShellSize, SizeExtendedDictionaryType> = {\n [Sizes.SMALL]: SizesExtended.XSMALL,\n [Sizes.MEDIUM]: SizesExtended.SMALL,\n [Sizes.LARGE]: SizesExtended.MEDIUM,\n};\n"],"names":["DEFAULT_SIZE","Sizes","DEFAULT_POPOVER_PROPS","PICKER_NESTED_SIZE_MAP","SizesExtended"],"mappings":";AAKO,MAAMA,IAAeC,EAAM,QAGrBC,IAAoC;AAAA,EAC/C,OAAO;AACT,GAGaC,IAA8E;AAAA,EACzF,CAACF,EAAM,KAAK,GAAGG,EAAc;AAAA,EAC7B,CAACH,EAAM,MAAM,GAAGG,EAAc;AAAA,EAC9B,CAACH,EAAM,KAAK,GAAGG,EAAc;AAC/B;"}
@@ -1,6 +1,6 @@
1
1
  import { FocusEvent, KeyboardEvent, ReactNode } from 'react';
2
2
  import { SelectionMode } from '../../hooks';
3
- import { HelperTextProps, SizesDictionaryType, SpiritCheckboxProps, SpiritDivElementProps, SpiritFieldGroupProps, SpiritTagProps, Validation, ValidationTextProp } from '../../types';
3
+ import { DropdownBaseProps, HelperTextProps, SizesDictionaryType, SpiritCheckboxProps, SpiritDivElementProps, SpiritFieldGroupProps, SpiritTagProps, StyleProps, Validation, ValidationTextProp } from '../../types';
4
4
  export type UnstablePickerSelectionMode = SelectionMode;
5
5
  export interface UnstablePickerSelectionGridRowProps {
6
6
  tabIndex: 0 | -1;
@@ -32,6 +32,9 @@ export interface UnstablePickerBaseProps<S = void> extends Omit<SpiritDivElement
32
32
  isLabelHidden?: boolean;
33
33
  isRequired?: boolean;
34
34
  label: string;
35
+ dropdownProps?: DropdownBaseProps;
36
+ labelProps?: StyleProps;
37
+ popoverProps?: StyleProps;
35
38
  renderTags?: (options: UnstablePickerRenderTagsOptions) => ReactNode;
36
39
  selectionMode?: UnstablePickerSelectionMode;
37
40
  size?: SizesDictionaryType<S>;