@vibe/core 3.65.2-alpha-55ac2.0 → 3.66.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.
Files changed (21) hide show
  1. package/dist/components/DropdownNew/hooks/useDropdownCombobox.d.ts +1 -1
  2. package/dist/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +1 -1
  3. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownCombobox.d.ts +1 -1
  4. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +1 -1
  5. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js +1 -1
  6. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js.map +1 -1
  7. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js +1 -1
  8. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js.map +1 -1
  9. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownCombobox.js +1 -1
  10. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownCombobox.js.map +1 -1
  11. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js +1 -1
  12. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js.map +1 -1
  13. package/dist/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js +1 -1
  14. package/dist/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js.map +1 -1
  15. package/dist/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js +1 -1
  16. package/dist/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js.map +1 -1
  17. package/dist/src/components/DropdownNew/hooks/useDropdownCombobox.js +1 -1
  18. package/dist/src/components/DropdownNew/hooks/useDropdownCombobox.js.map +1 -1
  19. package/dist/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js +1 -1
  20. package/dist/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js.map +1 -1
  21. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  import { type BaseListItemData } from "../../BaseListItem";
2
2
  import { type DropdownGroupOption } from "../Dropdown.types";
3
- declare function useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, isMenuOpen?: boolean, autoFocus?: boolean, closeMenuOnSelect?: boolean, defaultValue?: T, value?: T, inputValueProp?: string, onChange?: (option: T | T[] | null) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
3
+ declare function useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, isMenuOpen?: boolean, autoFocus?: boolean, closeMenuOnSelect?: boolean, defaultValue?: T, value?: T, inputValueProp?: string, onChange?: (option: T | T[] | null) => void, onInputChange?: (value: string) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
4
4
  isOpen: boolean;
5
5
  inputValue: string;
6
6
  highlightedIndex: number;
@@ -1,6 +1,6 @@
1
1
  import { type DropdownGroupOption } from "../Dropdown.types";
2
2
  import { type BaseListItemData } from "../../BaseListItem";
3
- declare function useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
3
+ declare function useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
4
4
  isOpen: boolean;
5
5
  inputValue: string;
6
6
  highlightedIndex: number;
@@ -1,6 +1,6 @@
1
1
  import { type BaseListItemData } from "../../BaseListItem";
2
2
  import { type DropdownGroupOption } from "../Dropdown.types";
3
- declare function useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, isMenuOpen?: boolean, autoFocus?: boolean, closeMenuOnSelect?: boolean, defaultValue?: T, value?: T, inputValueProp?: string, onChange?: (option: T | T[] | null) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
3
+ declare function useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, isMenuOpen?: boolean, autoFocus?: boolean, closeMenuOnSelect?: boolean, defaultValue?: T, value?: T, inputValueProp?: string, onChange?: (option: T | T[] | null) => void, onInputChange?: (value: string) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
4
4
  isOpen: boolean;
5
5
  inputValue: string;
6
6
  highlightedIndex: number;
@@ -1,6 +1,6 @@
1
1
  import { type DropdownGroupOption } from "../Dropdown.types";
2
2
  import { type BaseListItemData } from "../../BaseListItem";
3
- declare function useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
3
+ declare function useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean): {
4
4
  isOpen: boolean;
5
5
  inputValue: string;
6
6
  highlightedIndex: number;
@@ -1,2 +1,2 @@
1
- import e from"react";import t from"../../../Flex/Flex.js";import l from"../MultiSelectedValues/MultiSelectedValues.js";import r from"./DropdownInput.js";import{useDropdownContext as n}from"../../context/DropdownContext.js";import a from"./TriggerActions.js";import i from"./Trigger.module.scss.js";import{getStyle as o}from"../../../../helpers/typesciptCssModulesHelper.js";import s from"classnames";import m from"./DropdownChip.js";var p=function(){var p,c=n(),d=c.selectedItems,u=void 0===d?[]:d,f=c.contextOnOptionRemove,g=c.multiline,v=c.disabled,b=c.readOnly,E=c.searchable,j=c.getToggleButtonProps,x=c.label,y=c.getLabelProps,h=c.ariaLabel;return e.createElement(t,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:s(i.triggerWrapper,o(i,c.size))},E?{}:j({"aria-haspopup":"dialog","aria-labelledby":x?y().id:void 0,"aria-label":h||(x||null===(p=y())||void 0===p?void 0:p.id)})),u.length>0?e.createElement("div",{className:i.multiWrapper},g?e.createElement(t,{gap:"xs",wrap:!0},u.map((function(l,n){var a,i;return e.createElement(t,{key:(null!==(i=null!==(a=l.id)&&void 0!==a?a:l.value)&&void 0!==i?i:n)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(m,{item:l,onDelete:function(){null==f||f(l)},readOnly:b,disabled:v})),n===u.length-1&&e.createElement(r,{inputSize:"small"}))}))):e.createElement(l,{disabled:v,readOnly:b,selectedItems:u,onRemove:function(e){null==f||f(e)},renderInput:function(){return e.createElement(r,{inputSize:"small"})}})):e.createElement(r,null)),e.createElement(a,null))};export{p as default};
1
+ import e from"react";import t from"../../../Flex/Flex.js";import r from"../MultiSelectedValues/MultiSelectedValues.js";import l from"./DropdownInput.js";import{useDropdownContext as a}from"../../context/DropdownContext.js";import i from"./TriggerActions.js";import n from"./Trigger.module.scss.js";import{getStyle as o}from"../../../../helpers/typesciptCssModulesHelper.js";import s from"classnames";import m from"./DropdownChip.js";var d=function(){var d,p=a(),u=p.selectedItems,c=void 0===u?[]:u,v=p.contextOnOptionRemove,f=p.multiline,g=p.disabled,b=p.readOnly,E=p.error,j=p.searchable,y=p.getToggleButtonProps,x=p.label,h=p.getLabelProps,O=p.ariaLabel;return e.createElement(t,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:s(n.triggerWrapper,o(n,p.size))},j?{}:y({"aria-haspopup":"dialog","aria-labelledby":x?h().id:void 0,"aria-label":O||(x||null===(d=h())||void 0===d?void 0:d.id),"aria-disabled":g?"true":void 0,"aria-invalid":E?"true":void 0,"aria-readonly":b?"true":void 0})),c.length>0?e.createElement("div",{className:n.multiWrapper},f?e.createElement(t,{gap:"xs",wrap:!0},c.map((function(r,a){var i,n;return e.createElement(t,{key:(null!==(n=null!==(i=r.id)&&void 0!==i?i:r.value)&&void 0!==n?n:a)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(m,{item:r,onDelete:function(){null==v||v(r)},readOnly:b,disabled:g})),a===c.length-1&&e.createElement(l,{inputSize:"small"}))}))):e.createElement(r,{disabled:g,readOnly:b,selectedItems:c,onRemove:function(e){null==v||v(e)},renderInput:function(){return e.createElement(l,{inputSize:"small"})}})):e.createElement(l,null)),e.createElement(i,null))};export{d as default};
2
2
  //# sourceMappingURL=MultiSelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/DropdownNew/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"../../../Flex\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id)\n })\n : {})}\n >\n {selectedItems.length > 0 ? (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={() => <DropdownInput inputSize=\"small\" />}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n ) : (\n <DropdownInput />\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","multiline","disabled","readOnly","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","size","id","undefined","_a","length","multiWrapper","gap","wrap","map","item","index","key","_b","value","String","style","flexShrink","DropdownChip","onDelete","DropdownInput","inputSize","MultiSelectedValues","onRemove","renderInput","TriggerActions"],"mappings":"ibAYA,IAAMA,EAAqB,iBACzBC,EAYIC,IAAsCC,EAAAF,EAXxCG,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAqBJ,EAArBI,sBACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAQP,EAARO,SAEAC,EAAUR,EAAVQ,WACAC,EAAoBT,EAApBS,qBACAC,EAAKV,EAALU,MACAC,EAAaX,EAAbW,cACAC,EAASZ,EAATY,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAX9CtB,EAAJyB,QAYUjB,EAMF,CAAA,EALAC,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBC,EAAQC,IAAgBe,QAAKC,EAChD,aAAcf,IAAcF,GAAmC,QAAfkB,EAAAjB,WAAe,IAAAiB,OAA3BD,EAA2BC,EAAEF,OAItEvB,EAAc0B,OAAS,EACtBhB,uBAAKO,UAAWE,EAAOQ,cACnBzB,EAWAQ,EAAAC,cAACC,EAAK,CAAAgB,IAAI,KAAKC,MAAI,GAChB7B,EAAc8B,KAAI,SAACC,EAAMC,WAAU,OAClCtB,EAACC,cAAAC,GAAKqB,KAAiC,QAArBC,EAAW,UAAXH,EAAKR,UAAM,IAAAE,EAAAA,EAAAM,EAAKI,aAAK,IAAAD,EAAAA,EAAIF,GAAhCI,IACT1B,EAAAC,cAAA,MAAA,CAAK0B,MAAO,CAAEC,WAAY,IACxB5B,EAACC,cAAA4B,GACCR,KAAMA,EACNS,SAAU,WACRvC,SAAAA,EAAwB8B,EACzB,EACD3B,SAAUA,EACVD,SAAUA,KAGb6B,IAAUhC,EAAc0B,OAAS,GAAKhB,EAAAC,cAAC8B,EAAa,CAACC,UAAU,UAEnE,KAzBHhC,EAACC,cAAAgC,GACCxC,SAAUA,EACVC,SAAUA,EACVJ,cAAeA,EACf4C,SAAU,SAAAb,GACR9B,SAAAA,EAAwB8B,EACzB,EACDc,YAAa,WAAA,OAAMnC,EAACC,cAAA8B,EAAc,CAAAC,UAAU,SAAU,KAuB5DhC,EAACC,cAAA8B,EAAgB,OAGrB/B,EAAAC,cAACmC,EAAc,MAGrB"}
1
+ {"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/DropdownNew/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"../../../Flex\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n error,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n {selectedItems.length > 0 ? (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={() => <DropdownInput inputSize=\"small\" />}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n ) : (\n <DropdownInput />\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","multiline","disabled","readOnly","error","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","size","id","undefined","_a","length","multiWrapper","gap","wrap","map","item","index","key","_b","value","String","style","flexShrink","DropdownChip","onDelete","DropdownInput","inputSize","MultiSelectedValues","onRemove","renderInput","TriggerActions"],"mappings":"ibAYA,IAAMA,EAAqB,iBACzBC,EAaIC,IAAsCC,EAAAF,EAZxCG,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAqBJ,EAArBI,sBACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAQP,EAARO,SACAC,EAAKR,EAALQ,MAEAC,EAAUT,EAAVS,WACAC,EAAoBV,EAApBU,qBACAC,EAAKX,EAALW,MACAC,EAAaZ,EAAbY,cACAC,EAASb,EAATa,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAX9CvB,EAAJ0B,QAYUjB,EASF,CAAA,EARAC,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBC,EAAQC,IAAgBe,QAAKC,EAChD,aAAcf,IAAcF,GAAmC,QAAfkB,EAAAjB,WAAe,IAAAiB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBrB,EAAW,YAASsB,EACrC,eAAgBpB,EAAQ,YAASoB,EACjC,gBAAiBrB,EAAW,YAASqB,KAI1CzB,EAAc2B,OAAS,EACtBhB,uBAAKO,UAAWE,EAAOQ,cACnB1B,EAWAS,EAAAC,cAACC,EAAK,CAAAgB,IAAI,KAAKC,MAAI,GAChB9B,EAAc+B,KAAI,SAACC,EAAMC,WAAU,OAClCtB,EAACC,cAAAC,GAAKqB,KAAiC,QAArBC,EAAW,UAAXH,EAAKR,UAAM,IAAAE,EAAAA,EAAAM,EAAKI,aAAK,IAAAD,EAAAA,EAAIF,GAAhCI,IACT1B,EAAAC,cAAA,MAAA,CAAK0B,MAAO,CAAEC,WAAY,IACxB5B,EAACC,cAAA4B,GACCR,KAAMA,EACNS,SAAU,WACRxC,SAAAA,EAAwB+B,EACzB,EACD5B,SAAUA,EACVD,SAAUA,KAGb8B,IAAUjC,EAAc2B,OAAS,GAAKhB,EAAAC,cAAC8B,EAAa,CAACC,UAAU,UAEnE,KAzBHhC,EAACC,cAAAgC,GACCzC,SAAUA,EACVC,SAAUA,EACVJ,cAAeA,EACf6C,SAAU,SAAAb,GACR/B,SAAAA,EAAwB+B,EACzB,EACDc,YAAa,WAAA,OAAMnC,EAACC,cAAA8B,EAAc,CAAAC,UAAU,SAAU,KAuB5DhC,EAACC,cAAA8B,EAAgB,OAGrB/B,EAAAC,cAACmC,EAAc,MAGrB"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"react";import r from"classnames";import a from"../../../BaseListItem/BaseListItem.js";import s from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as i}from"../../context/DropdownContext.js";import o from"../../../Flex/Flex.js";import m from"./TriggerActions.js";import{getStyle as n}from"../../../../helpers/typesciptCssModulesHelper.js";var d=function(){var d,p,c=i(),u=c.inputValue,g=c.selectedItem,f=c.searchable,b=c.size,v=c.valueRenderer,j=c.isFocused,E=c.getToggleButtonProps,y=c.disabled,x=c.label,I=c.getLabelProps,B=c.ariaLabel;return t.createElement(o,{justify:"space-between",align:"center"},t.createElement("div",Object.assign({className:r(l.triggerWrapper,n(l,b))},f?{}:E({"aria-haspopup":"dialog","aria-labelledby":x?I().id:void 0,"aria-label":B||(x||null===(d=I())||void 0===d?void 0:d.id)})),t.createElement(s,null),!u&&g&&t.createElement("div",{className:r(l.selectedItem,e({},l.faded,j&&f),n(l,b))},t.createElement(a,{component:"div",itemRenderer:v,size:b,readOnly:!0,item:Object.assign(Object.assign({},g),{disabled:y,startElement:"indent"===(null===(p=g.startElement)||void 0===p?void 0:p.type)?void 0:g.startElement})}))),t.createElement(m,null))};export{d as default};
1
+ import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import t from"classnames";import a from"../../../BaseListItem/BaseListItem.js";import i from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";import o from"../../../Flex/Flex.js";import n from"./TriggerActions.js";import{getStyle as d}from"../../../../helpers/typesciptCssModulesHelper.js";var m=function(){var m,p,c=s(),u=c.inputValue,v=c.selectedItem,g=c.searchable,b=c.size,f=c.valueRenderer,j=c.isFocused,E=c.getToggleButtonProps,y=c.disabled,x=c.readOnly,I=c.error,O=c.label,B=c.getLabelProps,L=c.ariaLabel;return r.createElement(o,{justify:"space-between",align:"center"},r.createElement("div",Object.assign({className:t(l.triggerWrapper,d(l,b))},g?{}:E({"aria-haspopup":"dialog","aria-labelledby":O?B().id:void 0,"aria-label":L||(O||null===(m=B())||void 0===m?void 0:m.id),"aria-disabled":y?"true":void 0,"aria-invalid":I?"true":void 0,"aria-readonly":x?"true":void 0})),r.createElement(i,null),!u&&v&&r.createElement("div",{className:t(l.selectedItem,e({},l.faded,j&&g),d(l,b))},r.createElement(a,{component:"div",itemRenderer:f,size:b,readOnly:!0,item:Object.assign(Object.assign({},v),{disabled:y,startElement:"indent"===(null===(p=v.startElement)||void 0===p?void 0:p.type)?void 0:v.startElement})}))),r.createElement(n,null))};export{m as default};
2
2
  //# sourceMappingURL=SingleSelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/DropdownNew/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseListItem, type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"../../../Flex\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n isFocused,\n getToggleButtonProps,\n disabled,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id)\n })\n : {})}\n >\n <DropdownInput />\n\n {!inputValue && selectedItem && (\n <div\n className={cx(\n styles.selectedItem,\n {\n [styles.faded]: isFocused && searchable\n },\n getStyle(styles, size)\n )}\n >\n <BaseListItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","inputValue","selectedItem","searchable","size","valueRenderer","isFocused","getToggleButtonProps","disabled","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","_a","DropdownInput","_defineProperty","faded","BaseListItem","component","itemRenderer","readOnly","item","startElement","_b","type","TriggerActions"],"mappings":"8dAUA,IAAMA,EAAsB,mBAC1BC,EAYIC,IAXFC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAASP,EAATO,UACAC,EAAoBR,EAApBQ,qBACAC,EAAQT,EAARS,SACAC,EAAKV,EAALU,MACAC,EAAaX,EAAbW,cACAC,EAASZ,EAATY,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQjB,KAChDD,EAMF,CAAA,EALAI,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBE,EAAQC,IAAgBc,QAAKC,EAChD,aAAcd,IAAcF,GAAmC,QAAfiB,EAAAhB,WAAe,IAAAgB,OAA3BD,EAA2BC,EAAEF,OAIvEZ,EAAAC,cAACc,EAAgB,OAEf1B,GAAcC,GACdU,EAAAC,cAAA,MAAA,CACEM,UAAWC,EACTC,EAAOnB,aAAY0B,EAAA,CAAA,EAEhBP,EAAOQ,MAAQvB,GAAaH,GAE/BoB,EAASF,EAAQjB,KAGnBQ,EAACC,cAAAiB,GACCC,UAAU,MACVC,aAAc3B,EACdD,KAAMA,EACN6B,UAAQ,EACRC,KACKjB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAhB,GACH,CAAAM,SAAAA,EACA2B,aAAkD,oBAApCC,EAAAlC,EAAaiC,mCAAcE,WAAoBZ,EAAYvB,EAAaiC,mBAMhGvB,EAAAC,cAACyB,EAAc,MAGrB"}
1
+ {"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/DropdownNew/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseListItem, type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"../../../Flex\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n isFocused,\n getToggleButtonProps,\n disabled,\n readOnly,\n error,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n <DropdownInput />\n\n {!inputValue && selectedItem && (\n <div\n className={cx(\n styles.selectedItem,\n {\n [styles.faded]: isFocused && searchable\n },\n getStyle(styles, size)\n )}\n >\n <BaseListItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","inputValue","selectedItem","searchable","size","valueRenderer","isFocused","getToggleButtonProps","disabled","readOnly","error","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","_a","DropdownInput","_defineProperty","faded","BaseListItem","component","itemRenderer","item","startElement","_b","type","TriggerActions"],"mappings":"8dAUA,IAAMA,EAAsB,mBAC1BC,EAcIC,IAbFC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAASP,EAATO,UACAC,EAAoBR,EAApBQ,qBACAC,EAAQT,EAARS,SACAC,EAAQV,EAARU,SACAC,EAAKX,EAALW,MACAC,EAAKZ,EAALY,MACAC,EAAab,EAAba,cACAC,EAASd,EAATc,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQnB,KAChDD,EASF,CAAA,EARAI,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBI,EAAQC,IAAgBc,QAAKC,EAChD,aAAcd,IAAcF,GAAmC,QAAfiB,EAAAhB,WAAe,IAAAgB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBlB,EAAW,YAASmB,EACrC,eAAgBjB,EAAQ,YAASiB,EACjC,gBAAiBlB,EAAW,YAASkB,KAI3Cb,EAAAC,cAACc,EAAgB,OAEf5B,GAAcC,GACdY,EAAAC,cAAA,MAAA,CACEM,UAAWC,EACTC,EAAOrB,aAAY4B,EAAA,CAAA,EAEhBP,EAAOQ,MAAQzB,GAAaH,GAE/BsB,EAASF,EAAQnB,KAGnBU,EAACC,cAAAiB,GACCC,UAAU,MACVC,aAAc7B,EACdD,KAAMA,EACNK,UAAQ,EACR0B,KACKhB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAlB,GACH,CAAAM,SAAAA,EACA4B,aAAkD,oBAApCC,EAAAnC,EAAakC,mCAAcE,WAAoBX,EAAYzB,EAAakC,mBAMhGtB,EAAAC,cAACwB,EAAc,MAGrB"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t,useCallback as l}from"react";import{useCombobox as u}from"downshift";import i from"./useDropdownFiltering.js";function s(s,o,r,a,p,g,c,d,f,m,I,h,O,P){var b=n(p||null),v=e(b,2),M=v[1],C=void 0!==g?g:v[0],T=t((function(){return C?[C]:[]}),[C]),V=i(s,O,P,T),j=V.filteredOptions,y=V.filterOptions,w=t((function(){return j.flatMap((function(e){return e.options}))}),[j]),B=u({items:w,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:c||"",selectedItem:C,isOpen:o,initialIsOpen:r,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:l((function(e){var n=e.inputValue;y(n||""),null==f||f(n)}),[f,y]),onSelectedItemChange:l((function(e){var n=e.selectedItem;void 0===g&&M(n||null),n?(null==h||h(n),null==d||d(n),y("")):(null==d||d(null),y(""))}),[g,h,y,d]),stateReducer:function(e,n){switch(n.type){case u.stateChangeTypes.InputKeyDownEnter:case u.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:null,isOpen:!a});case u.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},n.changes),{inputValue:null});default:return n.changes}}}),x=B.reset;return{isOpen:B.isOpen,inputValue:B.inputValue,highlightedIndex:B.highlightedIndex,selectedItem:C,getToggleButtonProps:B.getToggleButtonProps,getLabelProps:B.getLabelProps,getMenuProps:B.getMenuProps,getInputProps:B.getInputProps,getItemProps:B.getItemProps,reset:function(){void 0===g&&M(null),x(),y("")},filteredOptions:j,openMenu:B.openMenu,toggleMenu:B.toggleMenu,closeMenu:B.closeMenu}}export{s as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t,useCallback as u}from"react";import{useCombobox as l}from"downshift";import i from"./useDropdownFiltering.js";function s(s,o,r,a,p,g,c,d,f,m,I,h,O,P){var b=n(p||null),v=e(b,2),M=v[1],C=void 0!==g?g:v[0],T=t((function(){return C?[C]:[]}),[C]),V=i(s,O,P,T),j=V.filteredOptions,y=V.filterOptions,w=t((function(){return j.flatMap((function(e){return e.options}))}),[j]),B=l({items:w,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:c||"",selectedItem:C,isOpen:o,initialIsOpen:r,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:u((function(e){var n=e.inputValue;y(n||""),null==f||f(n||"")}),[f,y]),onSelectedItemChange:u((function(e){var n=e.selectedItem;void 0===g&&M(n||null),n?(null==h||h(n),null==d||d(n),y("")):(null==d||d(null),y(""))}),[g,h,y,d]),stateReducer:function(e,n){switch(n.type){case l.stateChangeTypes.InputKeyDownEnter:case l.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:"",isOpen:!a});case l.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},n.changes),{inputValue:""});default:return n.changes}}}),x=B.reset;return{isOpen:B.isOpen,inputValue:B.inputValue,highlightedIndex:B.highlightedIndex,selectedItem:C,getToggleButtonProps:B.getToggleButtonProps,getLabelProps:B.getLabelProps,getMenuProps:B.getMenuProps,getInputProps:B.getInputProps,getItemProps:B.getItemProps,reset:function(){void 0===g&&M(null),x(),y("")},filteredOptions:j,openMenu:B.openMenu,toggleMenu:B.toggleMenu,closeMenu:B.closeMenu}}export{s as default};
2
2
  //# sourceMappingURL=useDropdownCombobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/DropdownNew/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: null };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"kOAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBX,GAAgB,MAAKY,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAG5CG,OAAyBC,IAAVf,EAAsBA,EAHjBW,EAAA,GAKpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEJI,EAA2CC,EACzCxB,EACAY,EACAC,EACAQ,GAJMI,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cAOnBC,EAAcL,GAAQ,WAAA,OAAMG,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAM7B,aAAU,CAACyB,IACpFK,EAaIC,EAAe,CACjBC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,kBAAmBjC,GAAkB,GACrCa,aAAcA,EACdqB,OAAQvC,EACRwC,cAAevC,EACfwC,eAAgB,SAAAC,GAASA,EAANH,OACR9B,SAAAA,IAAkBD,SAAAA,GAC5B,EAEDmC,mBAAoBC,GAClB,SAAAC,GAAmB,IAAhBC,EAAUD,EAAVC,WACDrB,EAAcqB,GAAc,IAC5BvC,SAAAA,EAAgBuC,EAClB,GACA,CAACvC,EAAekB,IAElBsB,qBAAsBH,GACpB,SAAAI,GAAqB,IAAlB9B,EAAY8B,EAAZ9B,kBACaC,IAAVf,GACFa,EAAuBC,GAAgB,MAErCA,GACFR,SAAAA,EAAiBQ,GACjBZ,SAAAA,EAAWY,GACXO,EAAc,MAEdnB,SAAAA,EAAW,MACXmB,EAAc,IAEjB,GACD,CAACrB,EAAOM,EAAgBe,EAAenB,IAEzC2C,aAAc,SAACC,EAAOC,GACpB,OAAQA,EAAiBC,MACvB,KAAKtB,EAAYuB,iBAAiBC,kBAClC,KAAKxB,EAAYuB,iBAAiBE,UAChC,OAAAC,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,SAAO,CAAEZ,WAAY,KAAMP,QAASrC,IACnE,KAAK4B,EAAYuB,iBAAiBM,UAChC,OAAAH,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,UAASZ,WAAY,OAEpD,QACE,OAAOK,EAAiBO,QAE9B,IAlDAE,EAAK/B,EAAL+B,MAqDF,MAAO,CACLrB,OA9DMV,EAANU,OA+DAO,WA9DUjB,EAAViB,WA+DAe,iBA9DgBhC,EAAhBgC,iBA+DA3C,aAAAA,EACA4C,qBA/DoBjC,EAApBiC,qBAgEAC,cA/DalC,EAAbkC,cAgEAC,aA/DYnC,EAAZmC,aAgEAC,cA/DapC,EAAboC,cAgEAC,aA/DYrC,EAAZqC,aAgEAN,MAAO,gBACSzC,IAAVf,GACFa,EAAuB,MAEzB2C,IACAnC,EAAc,GACf,EACDD,gBAAAA,EACA2C,SAtEQtC,EAARsC,SAuEAC,WAtEUvC,EAAVuC,WAuEAC,UAtESxC,EAATwC,UAwEJ"}
1
+ {"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/DropdownNew/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"kOAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBX,GAAgB,MAAKY,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAG5CG,OAAyBC,IAAVf,EAAsBA,EAHjBW,EAAA,GAKpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEJI,EAA2CC,EACzCxB,EACAY,EACAC,EACAQ,GAJMI,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cAOnBC,EAAcL,GAAQ,WAAA,OAAMG,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAM7B,aAAU,CAACyB,IACpFK,EAaIC,EAAe,CACjBC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,kBAAmBjC,GAAkB,GACrCa,aAAcA,EACdqB,OAAQvC,EACRwC,cAAevC,EACfwC,eAAgB,SAAAC,GAASA,EAANH,OACR9B,SAAAA,IAAkBD,SAAAA,GAC5B,EAEDmC,mBAAoBC,GAClB,SAAAC,GAAmB,IAAhBC,EAAUD,EAAVC,WACDrB,EAAcqB,GAAc,IAC5BvC,SAAAA,EAAgBuC,GAAc,GAChC,GACA,CAACvC,EAAekB,IAElBsB,qBAAsBH,GACpB,SAAAI,GAAqB,IAAlB9B,EAAY8B,EAAZ9B,kBACaC,IAAVf,GACFa,EAAuBC,GAAgB,MAErCA,GACFR,SAAAA,EAAiBQ,GACjBZ,SAAAA,EAAWY,GACXO,EAAc,MAEdnB,SAAAA,EAAW,MACXmB,EAAc,IAEjB,GACD,CAACrB,EAAOM,EAAgBe,EAAenB,IAEzC2C,aAAc,SAACC,EAAOC,GACpB,OAAQA,EAAiBC,MACvB,KAAKtB,EAAYuB,iBAAiBC,kBAClC,KAAKxB,EAAYuB,iBAAiBE,UAChC,OAAAC,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,SAAO,CAAEZ,WAAY,GAAIP,QAASrC,IACjE,KAAK4B,EAAYuB,iBAAiBM,UAChC,OAAAH,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,UAASZ,WAAY,KAEpD,QACE,OAAOK,EAAiBO,QAE9B,IAlDAE,EAAK/B,EAAL+B,MAqDF,MAAO,CACLrB,OA9DMV,EAANU,OA+DAO,WA9DUjB,EAAViB,WA+DAe,iBA9DgBhC,EAAhBgC,iBA+DA3C,aAAAA,EACA4C,qBA/DoBjC,EAApBiC,qBAgEAC,cA/DalC,EAAbkC,cAgEAC,aA/DYnC,EAAZmC,aAgEAC,cA/DapC,EAAboC,cAgEAC,aA/DYrC,EAAZqC,aAgEAN,MAAO,gBACSzC,IAAVf,GACFa,EAAuB,MAEzB2C,IACAnC,EAAc,GACf,EACDD,gBAAAA,EACA2C,SAtEQtC,EAARsC,SAuEAC,WAtEUvC,EAAVuC,WAuEAC,UAtESxC,EAATwC,UAwEJ"}
@@ -1,2 +1,2 @@
1
- import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as l,useCombobox as o}from"downshift";function s(s,i,u,r,a,p,g,c,d,m,I,f,h,v,O){var P=void 0!==g?g:i,S=n(s,v,O,P),b=S.filteredOptions,M=S.filterOptions,C=e((function(){return b.flatMap((function(e){return e.options}))}),[b]),V=l({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===g&&u(t||[]),null==d||d(t||[])}}),w=V.getSelectedItemProps,T=V.getDropdownProps,j=V.addSelectedItem,y=V.removeSelectedItem,D=o({items:C,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},isOpen:r,initialIsOpen:a,initialInputValue:c||"",onIsOpenChange:function(e){e.isOpen?null==f||f():null==I||I()},onInputValueChange:function(e){var t=e.inputValue;M(t||""),null==m||m(t)},onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?y(n):j(t),null==h||h(t),M("")}},stateReducer:function(e,t){switch(t.type){case o.stateChangeTypes.InputKeyDownEnter:case o.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},t.changes),{inputValue:null,isOpen:!0});case o.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},t.changes),{inputValue:null});default:return t.changes}}}),x=D.isOpen,B=D.inputValue,L=D.highlightedIndex,k=D.getToggleButtonProps,E=D.getLabelProps,F=D.getMenuProps,K=D.getInputProps,R=D.getItemProps,q=D.reset,z=D.openMenu,A=D.toggleMenu,G=D.closeMenu,H=t((function(){void 0===g&&u([]),q(),null==d||d([])}),[g,u,q,d]);return{isOpen:x,inputValue:B,highlightedIndex:L,selectedItems:P,getSelectedItemProps:w,getDropdownProps:T,addSelectedItem:j,getToggleButtonProps:k,getLabelProps:E,getMenuProps:F,getInputProps:K,getItemProps:R,reset:H,removeSelectedItem:y,filteredOptions:b,openMenu:z,toggleMenu:A,closeMenu:G}}export{s as default};
1
+ import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as o,useCombobox as s}from"downshift";function i(i,l,u,r,a,p,g,c,d,m,I,f,h,v,O){var P=void 0!==g?g:l,S=n(i,v,O,P),b=S.filteredOptions,M=S.filterOptions,C=e((function(){return b.flatMap((function(e){return e.options}))}),[b]),V=o({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===g&&u(t||[]),null==d||d(t||[])}}),w=V.getSelectedItemProps,T=V.getDropdownProps,j=V.addSelectedItem,y=V.removeSelectedItem,D=s({items:C,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},isOpen:r,initialIsOpen:a,initialInputValue:c||"",onIsOpenChange:function(e){e.isOpen?null==f||f():null==I||I()},onInputValueChange:function(e){var t=e.inputValue;M(t||""),null==m||m(t||"")},onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?y(n):j(t),null==h||h(t),M("")}},stateReducer:function(e,t){switch(t.type){case s.stateChangeTypes.InputKeyDownEnter:case s.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},t.changes),{inputValue:"",isOpen:!0});case s.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},t.changes),{inputValue:""});default:return t.changes}}}),x=D.isOpen,B=D.inputValue,L=D.highlightedIndex,k=D.getToggleButtonProps,E=D.getLabelProps,F=D.getMenuProps,K=D.getInputProps,R=D.getItemProps,q=D.reset,z=D.openMenu,A=D.toggleMenu,G=D.closeMenu,H=t((function(){void 0===g&&u([]),q(),null==d||d([])}),[g,u,q,d]);return{isOpen:x,inputValue:B,highlightedIndex:L,selectedItems:P,getSelectedItemProps:w,getDropdownProps:T,addSelectedItem:j,getToggleButtonProps:k,getLabelProps:E,getMenuProps:F,getInputProps:K,getItemProps:R,reset:H,removeSelectedItem:y,filteredOptions:b,openMenu:z,toggleMenu:A,closeMenu:G}}export{i as default};
2
2
  //# sourceMappingURL=useDropdownMultiCombobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../../src/components/DropdownNew/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: true };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: null };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","existingItem","find","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../../src/components/DropdownNew/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: true };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","existingItem","find","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import e from"react";import t from"../../../Flex/Flex.js";import l from"../MultiSelectedValues/MultiSelectedValues.js";import r from"./DropdownInput.js";import{useDropdownContext as n}from"../../context/DropdownContext.js";import a from"./TriggerActions.js";import i from"./Trigger.module.scss.js";import{getStyle as o}from"../../../../helpers/typesciptCssModulesHelper.js";import s from"classnames";import m from"./DropdownChip.js";var p=function(){var p,c=n(),d=c.selectedItems,u=void 0===d?[]:d,f=c.contextOnOptionRemove,g=c.multiline,v=c.disabled,b=c.readOnly,E=c.searchable,j=c.getToggleButtonProps,x=c.label,y=c.getLabelProps,h=c.ariaLabel;return e.createElement(t,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:s(i.triggerWrapper,o(i,c.size))},E?{}:j({"aria-haspopup":"dialog","aria-labelledby":x?y().id:void 0,"aria-label":h||(x||null===(p=y())||void 0===p?void 0:p.id)})),u.length>0?e.createElement("div",{className:i.multiWrapper},g?e.createElement(t,{gap:"xs",wrap:!0},u.map((function(l,n){var a,i;return e.createElement(t,{key:(null!==(i=null!==(a=l.id)&&void 0!==a?a:l.value)&&void 0!==i?i:n)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(m,{item:l,onDelete:function(){null==f||f(l)},readOnly:b,disabled:v})),n===u.length-1&&e.createElement(r,{inputSize:"small"}))}))):e.createElement(l,{disabled:v,readOnly:b,selectedItems:u,onRemove:function(e){null==f||f(e)},renderInput:function(){return e.createElement(r,{inputSize:"small"})}})):e.createElement(r,null)),e.createElement(a,null))};export{p as default};
1
+ import e from"react";import t from"../../../Flex/Flex.js";import r from"../MultiSelectedValues/MultiSelectedValues.js";import l from"./DropdownInput.js";import{useDropdownContext as a}from"../../context/DropdownContext.js";import i from"./TriggerActions.js";import n from"./Trigger.module.scss.js";import{getStyle as o}from"../../../../helpers/typesciptCssModulesHelper.js";import s from"classnames";import m from"./DropdownChip.js";var d=function(){var d,p=a(),u=p.selectedItems,c=void 0===u?[]:u,v=p.contextOnOptionRemove,f=p.multiline,g=p.disabled,b=p.readOnly,E=p.error,j=p.searchable,y=p.getToggleButtonProps,x=p.label,h=p.getLabelProps,O=p.ariaLabel;return e.createElement(t,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:s(n.triggerWrapper,o(n,p.size))},j?{}:y({"aria-haspopup":"dialog","aria-labelledby":x?h().id:void 0,"aria-label":O||(x||null===(d=h())||void 0===d?void 0:d.id),"aria-disabled":g?"true":void 0,"aria-invalid":E?"true":void 0,"aria-readonly":b?"true":void 0})),c.length>0?e.createElement("div",{className:n.multiWrapper},f?e.createElement(t,{gap:"xs",wrap:!0},c.map((function(r,a){var i,n;return e.createElement(t,{key:(null!==(n=null!==(i=r.id)&&void 0!==i?i:r.value)&&void 0!==n?n:a)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(m,{item:r,onDelete:function(){null==v||v(r)},readOnly:b,disabled:g})),a===c.length-1&&e.createElement(l,{inputSize:"small"}))}))):e.createElement(r,{disabled:g,readOnly:b,selectedItems:c,onRemove:function(e){null==v||v(e)},renderInput:function(){return e.createElement(l,{inputSize:"small"})}})):e.createElement(l,null)),e.createElement(i,null))};export{d as default};
2
2
  //# sourceMappingURL=MultiSelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../src/components/DropdownNew/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"../../../Flex\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id)\n })\n : {})}\n >\n {selectedItems.length > 0 ? (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={() => <DropdownInput inputSize=\"small\" />}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n ) : (\n <DropdownInput />\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","multiline","disabled","readOnly","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","size","id","undefined","_a","length","multiWrapper","gap","wrap","map","item","index","key","_b","value","String","style","flexShrink","DropdownChip","onDelete","DropdownInput","inputSize","MultiSelectedValues","onRemove","renderInput","TriggerActions"],"mappings":"ibAYA,IAAMA,EAAqB,iBACzBC,EAYIC,IAAsCC,EAAAF,EAXxCG,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAqBJ,EAArBI,sBACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAQP,EAARO,SAEAC,EAAUR,EAAVQ,WACAC,EAAoBT,EAApBS,qBACAC,EAAKV,EAALU,MACAC,EAAaX,EAAbW,cACAC,EAASZ,EAATY,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAX9CtB,EAAJyB,QAYUjB,EAMF,CAAA,EALAC,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBC,EAAQC,IAAgBe,QAAKC,EAChD,aAAcf,IAAcF,GAAmC,QAAfkB,EAAAjB,WAAe,IAAAiB,OAA3BD,EAA2BC,EAAEF,OAItEvB,EAAc0B,OAAS,EACtBhB,uBAAKO,UAAWE,EAAOQ,cACnBzB,EAWAQ,EAAAC,cAACC,EAAK,CAAAgB,IAAI,KAAKC,MAAI,GAChB7B,EAAc8B,KAAI,SAACC,EAAMC,WAAU,OAClCtB,EAACC,cAAAC,GAAKqB,KAAiC,QAArBC,EAAW,UAAXH,EAAKR,UAAM,IAAAE,EAAAA,EAAAM,EAAKI,aAAK,IAAAD,EAAAA,EAAIF,GAAhCI,IACT1B,EAAAC,cAAA,MAAA,CAAK0B,MAAO,CAAEC,WAAY,IACxB5B,EAACC,cAAA4B,GACCR,KAAMA,EACNS,SAAU,WACRvC,SAAAA,EAAwB8B,EACzB,EACD3B,SAAUA,EACVD,SAAUA,KAGb6B,IAAUhC,EAAc0B,OAAS,GAAKhB,EAAAC,cAAC8B,EAAa,CAACC,UAAU,UAEnE,KAzBHhC,EAACC,cAAAgC,GACCxC,SAAUA,EACVC,SAAUA,EACVJ,cAAeA,EACf4C,SAAU,SAAAb,GACR9B,SAAAA,EAAwB8B,EACzB,EACDc,YAAa,WAAA,OAAMnC,EAACC,cAAA8B,EAAc,CAAAC,UAAU,SAAU,KAuB5DhC,EAACC,cAAA8B,EAAgB,OAGrB/B,EAAAC,cAACmC,EAAc,MAGrB"}
1
+ {"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../src/components/DropdownNew/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"../../../Flex\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n error,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n {selectedItems.length > 0 ? (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={() => <DropdownInput inputSize=\"small\" />}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n ) : (\n <DropdownInput />\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","multiline","disabled","readOnly","error","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","size","id","undefined","_a","length","multiWrapper","gap","wrap","map","item","index","key","_b","value","String","style","flexShrink","DropdownChip","onDelete","DropdownInput","inputSize","MultiSelectedValues","onRemove","renderInput","TriggerActions"],"mappings":"ibAYA,IAAMA,EAAqB,iBACzBC,EAaIC,IAAsCC,EAAAF,EAZxCG,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAqBJ,EAArBI,sBACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAQP,EAARO,SACAC,EAAKR,EAALQ,MAEAC,EAAUT,EAAVS,WACAC,EAAoBV,EAApBU,qBACAC,EAAKX,EAALW,MACAC,EAAaZ,EAAbY,cACAC,EAASb,EAATa,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAX9CvB,EAAJ0B,QAYUjB,EASF,CAAA,EARAC,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBC,EAAQC,IAAgBe,QAAKC,EAChD,aAAcf,IAAcF,GAAmC,QAAfkB,EAAAjB,WAAe,IAAAiB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBrB,EAAW,YAASsB,EACrC,eAAgBpB,EAAQ,YAASoB,EACjC,gBAAiBrB,EAAW,YAASqB,KAI1CzB,EAAc2B,OAAS,EACtBhB,uBAAKO,UAAWE,EAAOQ,cACnB1B,EAWAS,EAAAC,cAACC,EAAK,CAAAgB,IAAI,KAAKC,MAAI,GAChB9B,EAAc+B,KAAI,SAACC,EAAMC,WAAU,OAClCtB,EAACC,cAAAC,GAAKqB,KAAiC,QAArBC,EAAW,UAAXH,EAAKR,UAAM,IAAAE,EAAAA,EAAAM,EAAKI,aAAK,IAAAD,EAAAA,EAAIF,GAAhCI,IACT1B,EAAAC,cAAA,MAAA,CAAK0B,MAAO,CAAEC,WAAY,IACxB5B,EAACC,cAAA4B,GACCR,KAAMA,EACNS,SAAU,WACRxC,SAAAA,EAAwB+B,EACzB,EACD5B,SAAUA,EACVD,SAAUA,KAGb8B,IAAUjC,EAAc2B,OAAS,GAAKhB,EAAAC,cAAC8B,EAAa,CAACC,UAAU,UAEnE,KAzBHhC,EAACC,cAAAgC,GACCzC,SAAUA,EACVC,SAAUA,EACVJ,cAAeA,EACf6C,SAAU,SAAAb,GACR/B,SAAAA,EAAwB+B,EACzB,EACDc,YAAa,WAAA,OAAMnC,EAACC,cAAA8B,EAAc,CAAAC,UAAU,SAAU,KAuB5DhC,EAACC,cAAA8B,EAAgB,OAGrB/B,EAAAC,cAACmC,EAAc,MAGrB"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"react";import r from"classnames";import a from"../../../BaseListItem/BaseListItem.js";import s from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as i}from"../../context/DropdownContext.js";import o from"../../../Flex/Flex.js";import m from"./TriggerActions.js";import{getStyle as n}from"../../../../helpers/typesciptCssModulesHelper.js";var d=function(){var d,p,c=i(),u=c.inputValue,g=c.selectedItem,f=c.searchable,b=c.size,v=c.valueRenderer,j=c.isFocused,E=c.getToggleButtonProps,y=c.disabled,x=c.label,I=c.getLabelProps,B=c.ariaLabel;return t.createElement(o,{justify:"space-between",align:"center"},t.createElement("div",Object.assign({className:r(l.triggerWrapper,n(l,b))},f?{}:E({"aria-haspopup":"dialog","aria-labelledby":x?I().id:void 0,"aria-label":B||(x||null===(d=I())||void 0===d?void 0:d.id)})),t.createElement(s,null),!u&&g&&t.createElement("div",{className:r(l.selectedItem,e({},l.faded,j&&f),n(l,b))},t.createElement(a,{component:"div",itemRenderer:v,size:b,readOnly:!0,item:Object.assign(Object.assign({},g),{disabled:y,startElement:"indent"===(null===(p=g.startElement)||void 0===p?void 0:p.type)?void 0:g.startElement})}))),t.createElement(m,null))};export{d as default};
1
+ import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import t from"classnames";import a from"../../../BaseListItem/BaseListItem.js";import i from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";import o from"../../../Flex/Flex.js";import n from"./TriggerActions.js";import{getStyle as d}from"../../../../helpers/typesciptCssModulesHelper.js";var m=function(){var m,p,c=s(),u=c.inputValue,v=c.selectedItem,g=c.searchable,b=c.size,f=c.valueRenderer,j=c.isFocused,E=c.getToggleButtonProps,y=c.disabled,x=c.readOnly,I=c.error,O=c.label,B=c.getLabelProps,L=c.ariaLabel;return r.createElement(o,{justify:"space-between",align:"center"},r.createElement("div",Object.assign({className:t(l.triggerWrapper,d(l,b))},g?{}:E({"aria-haspopup":"dialog","aria-labelledby":O?B().id:void 0,"aria-label":L||(O||null===(m=B())||void 0===m?void 0:m.id),"aria-disabled":y?"true":void 0,"aria-invalid":I?"true":void 0,"aria-readonly":x?"true":void 0})),r.createElement(i,null),!u&&v&&r.createElement("div",{className:t(l.selectedItem,e({},l.faded,j&&g),d(l,b))},r.createElement(a,{component:"div",itemRenderer:f,size:b,readOnly:!0,item:Object.assign(Object.assign({},v),{disabled:y,startElement:"indent"===(null===(p=v.startElement)||void 0===p?void 0:p.type)?void 0:v.startElement})}))),r.createElement(n,null))};export{m as default};
2
2
  //# sourceMappingURL=SingleSelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../src/components/DropdownNew/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseListItem, type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"../../../Flex\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n isFocused,\n getToggleButtonProps,\n disabled,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id)\n })\n : {})}\n >\n <DropdownInput />\n\n {!inputValue && selectedItem && (\n <div\n className={cx(\n styles.selectedItem,\n {\n [styles.faded]: isFocused && searchable\n },\n getStyle(styles, size)\n )}\n >\n <BaseListItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","inputValue","selectedItem","searchable","size","valueRenderer","isFocused","getToggleButtonProps","disabled","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","_a","DropdownInput","_defineProperty","faded","BaseListItem","component","itemRenderer","readOnly","item","startElement","_b","type","TriggerActions"],"mappings":"8dAUA,IAAMA,EAAsB,mBAC1BC,EAYIC,IAXFC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAASP,EAATO,UACAC,EAAoBR,EAApBQ,qBACAC,EAAQT,EAARS,SACAC,EAAKV,EAALU,MACAC,EAAaX,EAAbW,cACAC,EAASZ,EAATY,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQjB,KAChDD,EAMF,CAAA,EALAI,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBE,EAAQC,IAAgBc,QAAKC,EAChD,aAAcd,IAAcF,GAAmC,QAAfiB,EAAAhB,WAAe,IAAAgB,OAA3BD,EAA2BC,EAAEF,OAIvEZ,EAAAC,cAACc,EAAgB,OAEf1B,GAAcC,GACdU,EAAAC,cAAA,MAAA,CACEM,UAAWC,EACTC,EAAOnB,aAAY0B,EAAA,CAAA,EAEhBP,EAAOQ,MAAQvB,GAAaH,GAE/BoB,EAASF,EAAQjB,KAGnBQ,EAACC,cAAAiB,GACCC,UAAU,MACVC,aAAc3B,EACdD,KAAMA,EACN6B,UAAQ,EACRC,KACKjB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAhB,GACH,CAAAM,SAAAA,EACA2B,aAAkD,oBAApCC,EAAAlC,EAAaiC,mCAAcE,WAAoBZ,EAAYvB,EAAaiC,mBAMhGvB,EAAAC,cAACyB,EAAc,MAGrB"}
1
+ {"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../src/components/DropdownNew/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseListItem, type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"../../../Flex\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"../../../../helpers/typesciptCssModulesHelper\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n isFocused,\n getToggleButtonProps,\n disabled,\n readOnly,\n error,\n label,\n getLabelProps,\n ariaLabel\n } = useDropdownContext<BaseListItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n <DropdownInput />\n\n {!inputValue && selectedItem && (\n <div\n className={cx(\n styles.selectedItem,\n {\n [styles.faded]: isFocused && searchable\n },\n getStyle(styles, size)\n )}\n >\n <BaseListItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","inputValue","selectedItem","searchable","size","valueRenderer","isFocused","getToggleButtonProps","disabled","readOnly","error","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","_a","DropdownInput","_defineProperty","faded","BaseListItem","component","itemRenderer","item","startElement","_b","type","TriggerActions"],"mappings":"8dAUA,IAAMA,EAAsB,mBAC1BC,EAcIC,IAbFC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAASP,EAATO,UACAC,EAAoBR,EAApBQ,qBACAC,EAAQT,EAARS,SACAC,EAAQV,EAARU,SACAC,EAAKX,EAALW,MACAC,EAAKZ,EAALY,MACAC,EAAab,EAAba,cACAC,EAASd,EAATc,UAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQnB,KAChDD,EASF,CAAA,EARAI,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBI,EAAQC,IAAgBc,QAAKC,EAChD,aAAcd,IAAcF,GAAmC,QAAfiB,EAAAhB,WAAe,IAAAgB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBlB,EAAW,YAASmB,EACrC,eAAgBjB,EAAQ,YAASiB,EACjC,gBAAiBlB,EAAW,YAASkB,KAI3Cb,EAAAC,cAACc,EAAgB,OAEf5B,GAAcC,GACdY,EAAAC,cAAA,MAAA,CACEM,UAAWC,EACTC,EAAOrB,aAAY4B,EAAA,CAAA,EAEhBP,EAAOQ,MAAQzB,GAAaH,GAE/BsB,EAASF,EAAQnB,KAGnBU,EAACC,cAAAiB,GACCC,UAAU,MACVC,aAAc7B,EACdD,KAAMA,EACNK,UAAQ,EACR0B,KACKhB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAlB,GACH,CAAAM,SAAAA,EACA4B,aAAkD,oBAApCC,EAAAnC,EAAakC,mCAAcE,WAAoBX,EAAYzB,EAAakC,mBAMhGtB,EAAAC,cAACwB,EAAc,MAGrB"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t,useCallback as l}from"react";import{useCombobox as u}from"downshift";import i from"./useDropdownFiltering.js";function s(s,o,r,a,p,g,c,d,f,m,I,h,O,P){var b=n(p||null),v=e(b,2),M=v[1],C=void 0!==g?g:v[0],T=t((function(){return C?[C]:[]}),[C]),V=i(s,O,P,T),j=V.filteredOptions,y=V.filterOptions,w=t((function(){return j.flatMap((function(e){return e.options}))}),[j]),B=u({items:w,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:c||"",selectedItem:C,isOpen:o,initialIsOpen:r,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:l((function(e){var n=e.inputValue;y(n||""),null==f||f(n)}),[f,y]),onSelectedItemChange:l((function(e){var n=e.selectedItem;void 0===g&&M(n||null),n?(null==h||h(n),null==d||d(n),y("")):(null==d||d(null),y(""))}),[g,h,y,d]),stateReducer:function(e,n){switch(n.type){case u.stateChangeTypes.InputKeyDownEnter:case u.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:null,isOpen:!a});case u.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},n.changes),{inputValue:null});default:return n.changes}}}),x=B.reset;return{isOpen:B.isOpen,inputValue:B.inputValue,highlightedIndex:B.highlightedIndex,selectedItem:C,getToggleButtonProps:B.getToggleButtonProps,getLabelProps:B.getLabelProps,getMenuProps:B.getMenuProps,getInputProps:B.getInputProps,getItemProps:B.getItemProps,reset:function(){void 0===g&&M(null),x(),y("")},filteredOptions:j,openMenu:B.openMenu,toggleMenu:B.toggleMenu,closeMenu:B.closeMenu}}export{s as default};
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t,useCallback as u}from"react";import{useCombobox as l}from"downshift";import i from"./useDropdownFiltering.js";function s(s,o,r,a,p,g,c,d,f,m,I,h,O,P){var b=n(p||null),v=e(b,2),M=v[1],C=void 0!==g?g:v[0],T=t((function(){return C?[C]:[]}),[C]),V=i(s,O,P,T),j=V.filteredOptions,y=V.filterOptions,w=t((function(){return j.flatMap((function(e){return e.options}))}),[j]),B=l({items:w,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:c||"",selectedItem:C,isOpen:o,initialIsOpen:r,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:u((function(e){var n=e.inputValue;y(n||""),null==f||f(n||"")}),[f,y]),onSelectedItemChange:u((function(e){var n=e.selectedItem;void 0===g&&M(n||null),n?(null==h||h(n),null==d||d(n),y("")):(null==d||d(null),y(""))}),[g,h,y,d]),stateReducer:function(e,n){switch(n.type){case l.stateChangeTypes.InputKeyDownEnter:case l.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:"",isOpen:!a});case l.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},n.changes),{inputValue:""});default:return n.changes}}}),x=B.reset;return{isOpen:B.isOpen,inputValue:B.inputValue,highlightedIndex:B.highlightedIndex,selectedItem:C,getToggleButtonProps:B.getToggleButtonProps,getLabelProps:B.getLabelProps,getMenuProps:B.getMenuProps,getInputProps:B.getInputProps,getItemProps:B.getItemProps,reset:function(){void 0===g&&M(null),x(),y("")},filteredOptions:j,openMenu:B.openMenu,toggleMenu:B.toggleMenu,closeMenu:B.closeMenu}}export{s as default};
2
2
  //# sourceMappingURL=useDropdownCombobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: null };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"kOAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBX,GAAgB,MAAKY,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAG5CG,OAAyBC,IAAVf,EAAsBA,EAHjBW,EAAA,GAKpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEJI,EAA2CC,EACzCxB,EACAY,EACAC,EACAQ,GAJMI,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cAOnBC,EAAcL,GAAQ,WAAA,OAAMG,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAM7B,aAAU,CAACyB,IACpFK,EAaIC,EAAe,CACjBC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,kBAAmBjC,GAAkB,GACrCa,aAAcA,EACdqB,OAAQvC,EACRwC,cAAevC,EACfwC,eAAgB,SAAAC,GAASA,EAANH,OACR9B,SAAAA,IAAkBD,SAAAA,GAC5B,EAEDmC,mBAAoBC,GAClB,SAAAC,GAAmB,IAAhBC,EAAUD,EAAVC,WACDrB,EAAcqB,GAAc,IAC5BvC,SAAAA,EAAgBuC,EAClB,GACA,CAACvC,EAAekB,IAElBsB,qBAAsBH,GACpB,SAAAI,GAAqB,IAAlB9B,EAAY8B,EAAZ9B,kBACaC,IAAVf,GACFa,EAAuBC,GAAgB,MAErCA,GACFR,SAAAA,EAAiBQ,GACjBZ,SAAAA,EAAWY,GACXO,EAAc,MAEdnB,SAAAA,EAAW,MACXmB,EAAc,IAEjB,GACD,CAACrB,EAAOM,EAAgBe,EAAenB,IAEzC2C,aAAc,SAACC,EAAOC,GACpB,OAAQA,EAAiBC,MACvB,KAAKtB,EAAYuB,iBAAiBC,kBAClC,KAAKxB,EAAYuB,iBAAiBE,UAChC,OAAAC,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,SAAO,CAAEZ,WAAY,KAAMP,QAASrC,IACnE,KAAK4B,EAAYuB,iBAAiBM,UAChC,OAAAH,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,UAASZ,WAAY,OAEpD,QACE,OAAOK,EAAiBO,QAE9B,IAlDAE,EAAK/B,EAAL+B,MAqDF,MAAO,CACLrB,OA9DMV,EAANU,OA+DAO,WA9DUjB,EAAViB,WA+DAe,iBA9DgBhC,EAAhBgC,iBA+DA3C,aAAAA,EACA4C,qBA/DoBjC,EAApBiC,qBAgEAC,cA/DalC,EAAbkC,cAgEAC,aA/DYnC,EAAZmC,aAgEAC,cA/DapC,EAAboC,cAgEAC,aA/DYrC,EAAZqC,aAgEAN,MAAO,gBACSzC,IAAVf,GACFa,EAAuB,MAEzB2C,IACAnC,EAAc,GACf,EACDD,gBAAAA,EACA2C,SAtEQtC,EAARsC,SAuEAC,WAtEUvC,EAAVuC,WAuEAC,UAtESxC,EAATwC,UAwEJ"}
1
+ {"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"kOAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBX,GAAgB,MAAKY,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAG5CG,OAAyBC,IAAVf,EAAsBA,EAHjBW,EAAA,GAKpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEJI,EAA2CC,EACzCxB,EACAY,EACAC,EACAQ,GAJMI,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cAOnBC,EAAcL,GAAQ,WAAA,OAAMG,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAM7B,aAAU,CAACyB,IACpFK,EAaIC,EAAe,CACjBC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,kBAAmBjC,GAAkB,GACrCa,aAAcA,EACdqB,OAAQvC,EACRwC,cAAevC,EACfwC,eAAgB,SAAAC,GAASA,EAANH,OACR9B,SAAAA,IAAkBD,SAAAA,GAC5B,EAEDmC,mBAAoBC,GAClB,SAAAC,GAAmB,IAAhBC,EAAUD,EAAVC,WACDrB,EAAcqB,GAAc,IAC5BvC,SAAAA,EAAgBuC,GAAc,GAChC,GACA,CAACvC,EAAekB,IAElBsB,qBAAsBH,GACpB,SAAAI,GAAqB,IAAlB9B,EAAY8B,EAAZ9B,kBACaC,IAAVf,GACFa,EAAuBC,GAAgB,MAErCA,GACFR,SAAAA,EAAiBQ,GACjBZ,SAAAA,EAAWY,GACXO,EAAc,MAEdnB,SAAAA,EAAW,MACXmB,EAAc,IAEjB,GACD,CAACrB,EAAOM,EAAgBe,EAAenB,IAEzC2C,aAAc,SAACC,EAAOC,GACpB,OAAQA,EAAiBC,MACvB,KAAKtB,EAAYuB,iBAAiBC,kBAClC,KAAKxB,EAAYuB,iBAAiBE,UAChC,OAAAC,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,SAAO,CAAEZ,WAAY,GAAIP,QAASrC,IACjE,KAAK4B,EAAYuB,iBAAiBM,UAChC,OAAAH,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,UAASZ,WAAY,KAEpD,QACE,OAAOK,EAAiBO,QAE9B,IAlDAE,EAAK/B,EAAL+B,MAqDF,MAAO,CACLrB,OA9DMV,EAANU,OA+DAO,WA9DUjB,EAAViB,WA+DAe,iBA9DgBhC,EAAhBgC,iBA+DA3C,aAAAA,EACA4C,qBA/DoBjC,EAApBiC,qBAgEAC,cA/DalC,EAAbkC,cAgEAC,aA/DYnC,EAAZmC,aAgEAC,cA/DapC,EAAboC,cAgEAC,aA/DYrC,EAAZqC,aAgEAN,MAAO,gBACSzC,IAAVf,GACFa,EAAuB,MAEzB2C,IACAnC,EAAc,GACf,EACDD,gBAAAA,EACA2C,SAtEQtC,EAARsC,SAuEAC,WAtEUvC,EAAVuC,WAuEAC,UAtESxC,EAATwC,UAwEJ"}
@@ -1,2 +1,2 @@
1
- import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as l,useCombobox as o}from"downshift";function s(s,i,u,r,a,p,g,c,d,m,I,f,h,v,O){var P=void 0!==g?g:i,S=n(s,v,O,P),b=S.filteredOptions,M=S.filterOptions,C=e((function(){return b.flatMap((function(e){return e.options}))}),[b]),V=l({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===g&&u(t||[]),null==d||d(t||[])}}),w=V.getSelectedItemProps,T=V.getDropdownProps,j=V.addSelectedItem,y=V.removeSelectedItem,D=o({items:C,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},isOpen:r,initialIsOpen:a,initialInputValue:c||"",onIsOpenChange:function(e){e.isOpen?null==f||f():null==I||I()},onInputValueChange:function(e){var t=e.inputValue;M(t||""),null==m||m(t)},onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?y(n):j(t),null==h||h(t),M("")}},stateReducer:function(e,t){switch(t.type){case o.stateChangeTypes.InputKeyDownEnter:case o.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},t.changes),{inputValue:null,isOpen:!0});case o.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},t.changes),{inputValue:null});default:return t.changes}}}),x=D.isOpen,B=D.inputValue,L=D.highlightedIndex,k=D.getToggleButtonProps,E=D.getLabelProps,F=D.getMenuProps,K=D.getInputProps,R=D.getItemProps,q=D.reset,z=D.openMenu,A=D.toggleMenu,G=D.closeMenu,H=t((function(){void 0===g&&u([]),q(),null==d||d([])}),[g,u,q,d]);return{isOpen:x,inputValue:B,highlightedIndex:L,selectedItems:P,getSelectedItemProps:w,getDropdownProps:T,addSelectedItem:j,getToggleButtonProps:k,getLabelProps:E,getMenuProps:F,getInputProps:K,getItemProps:R,reset:H,removeSelectedItem:y,filteredOptions:b,openMenu:z,toggleMenu:A,closeMenu:G}}export{s as default};
1
+ import{useMemo as e,useCallback as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as o,useCombobox as s}from"downshift";function i(i,l,u,r,a,p,g,c,d,m,I,f,h,v,O){var P=void 0!==g?g:l,S=n(i,v,O,P),b=S.filteredOptions,M=S.filterOptions,C=e((function(){return b.flatMap((function(e){return e.options}))}),[b]),V=o({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===g&&u(t||[]),null==d||d(t||[])}}),w=V.getSelectedItemProps,T=V.getDropdownProps,j=V.addSelectedItem,y=V.removeSelectedItem,D=s({items:C,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},isOpen:r,initialIsOpen:a,initialInputValue:c||"",onIsOpenChange:function(e){e.isOpen?null==f||f():null==I||I()},onInputValueChange:function(e){var t=e.inputValue;M(t||""),null==m||m(t||"")},onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?y(n):j(t),null==h||h(t),M("")}},stateReducer:function(e,t){switch(t.type){case s.stateChangeTypes.InputKeyDownEnter:case s.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},t.changes),{inputValue:"",isOpen:!0});case s.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},t.changes),{inputValue:""});default:return t.changes}}}),x=D.isOpen,B=D.inputValue,L=D.highlightedIndex,k=D.getToggleButtonProps,E=D.getLabelProps,F=D.getMenuProps,K=D.getInputProps,R=D.getItemProps,q=D.reset,z=D.openMenu,A=D.toggleMenu,G=D.closeMenu,H=t((function(){void 0===g&&u([]),q(),null==d||d([])}),[g,u,q,d]);return{isOpen:x,inputValue:B,highlightedIndex:L,selectedItems:P,getSelectedItemProps:w,getDropdownProps:T,addSelectedItem:j,getToggleButtonProps:k,getLabelProps:E,getMenuProps:F,getInputProps:K,getItemProps:R,reset:H,removeSelectedItem:y,filteredOptions:b,openMenu:z,toggleMenu:A,closeMenu:G}}export{i as default};
2
2
  //# sourceMappingURL=useDropdownMultiCombobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: true };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: null };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","existingItem","find","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\nimport { type BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: true };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","existingItem","find","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe/core",
3
- "version": "3.65.2-alpha-55ac2.0",
3
+ "version": "3.66.0",
4
4
  "description": "Official monday.com UI resources for application development in React.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -276,5 +276,5 @@
276
276
  "browserslist": [
277
277
  "extends browserslist-config-monday"
278
278
  ],
279
- "gitHead": "e9137f3c33e507956b0f74e9368116596d37766b"
279
+ "gitHead": "76f2ab38d9fa155ca2e466d144a592e28ab42aba"
280
280
  }