@vibe/core 3.74.0-alpha-10c01.0 → 3.74.0-alpha-f7c48.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 (70) hide show
  1. package/dist/components/Dialog/Dialog.d.ts +0 -7
  2. package/dist/components/next/Dropdown/Dropdown.types.d.ts +22 -7
  3. package/dist/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.d.ts +3 -0
  4. package/dist/components/next/Dropdown/components/Menu/MenuList.d.ts +4 -0
  5. package/dist/components/next/Dropdown/context/DropdownContext.types.d.ts +1 -1
  6. package/dist/components/next/index.d.ts +0 -1
  7. package/dist/components/next.d.ts +1 -0
  8. package/dist/metadata.json +2078 -1198
  9. package/dist/mocked_classnames/components/Dialog/Dialog.d.ts +0 -7
  10. package/dist/mocked_classnames/components/next/Dropdown/Dropdown.types.d.ts +22 -7
  11. package/dist/mocked_classnames/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.d.ts +3 -0
  12. package/dist/mocked_classnames/components/next/Dropdown/components/Menu/MenuList.d.ts +4 -0
  13. package/dist/mocked_classnames/components/next/Dropdown/context/DropdownContext.types.d.ts +1 -1
  14. package/dist/mocked_classnames/components/next/index.d.ts +0 -1
  15. package/dist/mocked_classnames/components/next.d.ts +1 -0
  16. package/dist/mocked_classnames/src/components/Dialog/Dialog.js +1 -1
  17. package/dist/mocked_classnames/src/components/Dialog/Dialog.js.map +1 -1
  18. package/dist/mocked_classnames/src/components/RadioButton/RadioButton.js.map +1 -1
  19. package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js +1 -1
  20. package/dist/mocked_classnames/src/components/Tipseen/Tipseen.js.map +1 -1
  21. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBase/DropdownBase.js +1 -1
  22. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBase/DropdownBase.js.map +1 -1
  23. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
  24. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.js +2 -0
  25. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.js.map +1 -0
  26. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js +2 -0
  27. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js.map +1 -0
  28. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownWrapperUI.js +1 -1
  29. package/dist/mocked_classnames/src/components/next/Dropdown/components/DropdownWrapperUI.js.map +1 -1
  30. package/dist/mocked_classnames/src/components/next/Dropdown/components/Menu/Menu.js +1 -1
  31. package/dist/mocked_classnames/src/components/next/Dropdown/components/Menu/Menu.js.map +1 -1
  32. package/dist/mocked_classnames/src/components/next/Dropdown/components/Menu/MenuList.js +2 -0
  33. package/dist/mocked_classnames/src/components/next/Dropdown/components/Menu/MenuList.js.map +1 -0
  34. package/dist/mocked_classnames/src/components/next/Dropdown/components/Trigger/DropdownInput.js +1 -1
  35. package/dist/mocked_classnames/src/components/next/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
  36. package/dist/mocked_classnames/src/components/next/Dropdown/components/Trigger/TriggerActions.js +1 -1
  37. package/dist/mocked_classnames/src/components/next/Dropdown/components/Trigger/TriggerActions.js.map +1 -1
  38. package/dist/mocked_classnames/src/components/next/Dropdown/modes/DropdownComboboxController.js +1 -1
  39. package/dist/mocked_classnames/src/components/next/Dropdown/modes/DropdownComboboxController.js.map +1 -1
  40. package/dist/mocked_classnames/src/components/next/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
  41. package/dist/mocked_classnames/src/components/next/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
  42. package/dist/mocked_classnames/src/components/next.js +1 -1
  43. package/dist/src/components/Dialog/Dialog.js +1 -1
  44. package/dist/src/components/Dialog/Dialog.js.map +1 -1
  45. package/dist/src/components/RadioButton/RadioButton.js.map +1 -1
  46. package/dist/src/components/Tipseen/Tipseen.js +1 -1
  47. package/dist/src/components/Tipseen/Tipseen.js.map +1 -1
  48. package/dist/src/components/next/Dropdown/components/DropdownBase/DropdownBase.js +1 -1
  49. package/dist/src/components/next/Dropdown/components/DropdownBase/DropdownBase.js.map +1 -1
  50. package/dist/src/components/next/Dropdown/components/DropdownBase/DropdownBase.module.scss.js +1 -1
  51. package/dist/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.js +2 -0
  52. package/dist/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.js.map +1 -0
  53. package/dist/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js +2 -0
  54. package/dist/src/components/next/Dropdown/components/DropdownBoxMode/DropdownBoxMode.module.scss.js.map +1 -0
  55. package/dist/src/components/next/Dropdown/components/DropdownWrapperUI.js +1 -1
  56. package/dist/src/components/next/Dropdown/components/DropdownWrapperUI.js.map +1 -1
  57. package/dist/src/components/next/Dropdown/components/Menu/Menu.js +1 -1
  58. package/dist/src/components/next/Dropdown/components/Menu/Menu.js.map +1 -1
  59. package/dist/src/components/next/Dropdown/components/Menu/MenuList.js +2 -0
  60. package/dist/src/components/next/Dropdown/components/Menu/MenuList.js.map +1 -0
  61. package/dist/src/components/next/Dropdown/components/Trigger/DropdownInput.js +1 -1
  62. package/dist/src/components/next/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
  63. package/dist/src/components/next/Dropdown/components/Trigger/TriggerActions.js +1 -1
  64. package/dist/src/components/next/Dropdown/components/Trigger/TriggerActions.js.map +1 -1
  65. package/dist/src/components/next/Dropdown/modes/DropdownComboboxController.js +1 -1
  66. package/dist/src/components/next/Dropdown/modes/DropdownComboboxController.js.map +1 -1
  67. package/dist/src/components/next/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
  68. package/dist/src/components/next/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
  69. package/dist/src/components/next.js +1 -1
  70. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownWrapperUI.js","sources":["../../../../../../../src/components/next/Dropdown/components/DropdownWrapperUI.tsx"],"sourcesContent":["import React from \"react\";\nimport { DropdownContext } from \"../context/DropdownContext\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownPopup from \"./DropdownPopup/DropdownPopup\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownBase from \"./DropdownBase/DropdownBase\";\n\ninterface DropdownWrapperUIProps<Item extends BaseListItemData<Record<string, unknown>>> {\n contextValue: DropdownContextProps<Item>;\n dropdownRef: React.Ref<HTMLDivElement>;\n}\n\nconst DropdownWrapperUI = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownWrapperUIProps<Item>\n) => {\n const { contextValue, dropdownRef } = props;\n\n return (\n <DropdownContext.Provider value={contextValue}>\n <DropdownBase dropdownRef={dropdownRef}>\n <DropdownPopup />\n </DropdownBase>\n </DropdownContext.Provider>\n );\n};\n\nexport default DropdownWrapperUI;\n"],"names":["DropdownWrapperUI","props","React","DropdownContext","Provider","value","contextValue","createElement","DropdownBase","dropdownRef","DropdownPopup"],"mappings":"mLAYA,IAAMA,EAAoB,SACxBC,GAIA,OACEC,gBAACC,EAAgBC,SAAS,CAAAC,MAHUJ,EAA9BK,cAIJJ,EAAAK,cAACC,EAAY,CAACC,YAJoBR,EAAhBQ,aAKhBP,EAAAK,cAACG,EAAa,OAItB"}
1
+ {"version":3,"file":"DropdownWrapperUI.js","sources":["../../../../../../../src/components/next/Dropdown/components/DropdownWrapperUI.tsx"],"sourcesContent":["import React from \"react\";\nimport { DropdownContext } from \"../context/DropdownContext\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownPopup from \"./DropdownPopup/DropdownPopup\";\nimport DropdownBoxMode from \"./DropdownBoxMode/DropdownBoxMode\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport DropdownBase from \"./DropdownBase/DropdownBase\";\n\ninterface DropdownWrapperUIProps<Item extends BaseListItemData<Record<string, unknown>>> {\n contextValue: DropdownContextProps<Item>;\n dropdownRef: React.Ref<HTMLDivElement>;\n}\n\nconst DropdownWrapperUI = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownWrapperUIProps<Item>\n) => {\n const { contextValue, dropdownRef } = props;\n\n return (\n <DropdownContext.Provider value={contextValue}>\n <DropdownBase dropdownRef={dropdownRef}>\n {contextValue.boxMode ? <DropdownBoxMode /> : <DropdownPopup />}\n </DropdownBase>\n </DropdownContext.Provider>\n );\n};\n\nexport default DropdownWrapperUI;\n"],"names":["DropdownWrapperUI","props","contextValue","React","DropdownContext","Provider","value","createElement","DropdownBase","dropdownRef","boxMode","DropdownBoxMode","DropdownPopup"],"mappings":"uOAaA,IAAMA,EAAoB,SACxBC,GAEA,IAAQC,EAA8BD,EAA9BC,aAER,OACEC,gBAACC,EAAgBC,SAAS,CAAAC,MAAOJ,GAC/BC,EAACI,cAAAC,EAAa,CAAAC,YAJoBR,EAAhBQ,aAKQN,gBAAvBD,EAAaQ,QAAWC,EAAsBC,EAAP,OAIhD"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"react";import r from"classnames";import i from"../../../../DialogContentContainer/DialogContentContainer.js";import n from"../../../../BaseList/BaseList.js";import{useDropdownContext as o}from"../../context/DropdownContext.js";import s from"./Menu.module.scss.js";var l=function(){var l=o(),a=l.isOpen,m=l.filteredOptions,p=l.highlightedIndex,u=l.getMenuProps,d=l.getItemProps,c=l.optionRenderer,g=l.menuRenderer,f=l.size,h=l.withGroupDivider,v=l.stickyGroupTitle,b=l.dir,j=l.noOptionsMessage,x=l.maxMenuHeight,I=l.onScroll,M=l.menuAriaLabel,O=l.selectedItem,C=l.selectedItems,P=l.menuWrapperClassName,D=l.multi,y=(null==C?void 0:C.length)>0?C:O?[O]:[];return t.createElement(i,{className:r(e(e({},s.menuVisible,a),s.menuHidden,!a),P),style:a?void 0:{padding:0}},t.createElement(n,{size:f,options:m,selectedItems:y,highlightedIndex:p,menuAriaLabel:M,getMenuProps:function(e){var t=(null==u?void 0:u(e))||{};return D?Object.assign(Object.assign({},t),{"aria-multiselectable":"true"}):t},getItemProps:d,withGroupDivider:h,stickyGroupTitle:v,dir:b,itemRenderer:c,noOptionsMessage:j,renderOptions:a,onScroll:I,maxMenuHeight:x,menuRenderer:g}))};export{l as default};
1
+ import{defineProperty as e}from"../../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import o from"classnames";import t from"../../../../DialogContentContainer/DialogContentContainer.js";import{useDropdownContext as n}from"../../context/DropdownContext.js";import m from"./MenuList.js";import a from"./Menu.module.scss.js";var i=function(){var i=n(),s=i.isOpen,l=i.menuWrapperClassName;return r.createElement(t,{className:o(e(e({},a.menuVisible,s),a.menuHidden,!s),l),style:s?void 0:{padding:0}},r.createElement(m,null))};export{i as default};
2
2
  //# sourceMappingURL=Menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Menu/Menu.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { DialogContentContainer } from \"../../../../DialogContentContainer\";\nimport { BaseList } from \"../../../../BaseList\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\nimport styles from \"./Menu.module.scss\";\n\nconst Menu = <Item extends BaseListItemData<Record<string, unknown>>>() => {\n const {\n isOpen,\n filteredOptions,\n highlightedIndex,\n getMenuProps,\n getItemProps,\n optionRenderer,\n menuRenderer,\n size,\n withGroupDivider,\n stickyGroupTitle,\n dir,\n noOptionsMessage,\n maxMenuHeight,\n onScroll,\n menuAriaLabel,\n selectedItem,\n selectedItems,\n menuWrapperClassName,\n multi\n } = useDropdownContext<Item>();\n\n const currentSelection = selectedItems?.length > 0 ? selectedItems : selectedItem ? [selectedItem] : [];\n\n const enhancedGetMenuProps = (props?: Record<string, unknown>) => {\n const baseProps = getMenuProps?.(props) || {};\n return multi ? { ...baseProps, \"aria-multiselectable\": \"true\" } : baseProps;\n };\n\n return (\n <DialogContentContainer\n className={cx({ [styles.menuVisible]: isOpen, [styles.menuHidden]: !isOpen }, menuWrapperClassName)}\n style={!isOpen ? { padding: 0 } : undefined}\n >\n <BaseList<Item>\n size={size}\n options={filteredOptions}\n selectedItems={currentSelection}\n highlightedIndex={highlightedIndex}\n menuAriaLabel={menuAriaLabel}\n getMenuProps={enhancedGetMenuProps}\n getItemProps={getItemProps}\n withGroupDivider={withGroupDivider}\n stickyGroupTitle={stickyGroupTitle}\n dir={dir}\n itemRenderer={optionRenderer}\n noOptionsMessage={noOptionsMessage}\n renderOptions={isOpen}\n onScroll={onScroll}\n maxMenuHeight={maxMenuHeight}\n menuRenderer={menuRenderer}\n />\n </DialogContentContainer>\n );\n};\n\nexport default Menu;\n"],"names":["Menu","_useDropdownContext","useDropdownContext","isOpen","filteredOptions","highlightedIndex","getMenuProps","getItemProps","optionRenderer","menuRenderer","size","withGroupDivider","stickyGroupTitle","dir","noOptionsMessage","maxMenuHeight","onScroll","menuAriaLabel","selectedItem","selectedItems","menuWrapperClassName","multi","currentSelection","length","React","DialogContentContainer","className","cx","_defineProperty","styles","menuVisible","menuHidden","style","undefined","padding","createElement","BaseList","options","props","baseProps","Object","assign","itemRenderer","renderOptions"],"mappings":"+WAQA,IAAMA,EAAO,WACX,IAAAC,EAoBIC,IAnBFC,EAAMF,EAANE,OACAC,EAAeH,EAAfG,gBACAC,EAAgBJ,EAAhBI,iBACAC,EAAYL,EAAZK,aACAC,EAAYN,EAAZM,aACAC,EAAcP,EAAdO,eACAC,EAAYR,EAAZQ,aACAC,EAAIT,EAAJS,KACAC,EAAgBV,EAAhBU,iBACAC,EAAgBX,EAAhBW,iBACAC,EAAGZ,EAAHY,IACAC,EAAgBb,EAAhBa,iBACAC,EAAad,EAAbc,cACAC,EAAQf,EAARe,SACAC,EAAahB,EAAbgB,cACAC,EAAYjB,EAAZiB,aACAC,EAAalB,EAAbkB,cACAC,EAAoBnB,EAApBmB,qBACAC,EAAKpB,EAALoB,MAGIC,GAAmBH,aAAA,EAAAA,EAAeI,QAAS,EAAIJ,EAAgBD,EAAe,CAACA,GAAgB,GAOrG,OACEM,gBAACC,EAAsB,CACrBC,UAAWC,EAAEC,EAAAA,EAAA,CAAA,EAAIC,EAAOC,YAAc3B,GAAS0B,EAAOE,YAAc5B,GAAUiB,GAC9EY,MAAQ7B,OAA0B8B,EAAjB,CAAEC,QAAS,IAE5BV,EAAAW,cAACC,EAAQ,CACP1B,KAAMA,EACN2B,QAASjC,EACTe,cAAeG,EACfjB,iBAAkBA,EAClBY,cAAeA,EACfX,aAhBuB,SAACgC,GAC5B,IAAMC,GAAYjC,aAAA,EAAAA,EAAegC,KAAU,CAAA,EAC3C,OAAOjB,EAAOmB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAMF,GAAS,CAAE,uBAAwB,SAAWA,GAe9DhC,aAAcA,EACdI,iBAAkBA,EAClBC,iBAAkBA,EAClBC,IAAKA,EACL6B,aAAclC,EACdM,iBAAkBA,EAClB6B,cAAexC,EACfa,SAAUA,EACVD,cAAeA,EACfN,aAAcA,IAItB"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Menu/Menu.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { DialogContentContainer } from \"../../../../DialogContentContainer\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\nimport MenuList from \"./MenuList\";\nimport styles from \"./Menu.module.scss\";\n\nconst Menu = <Item extends BaseListItemData<Record<string, unknown>>>() => {\n const { isOpen, menuWrapperClassName } = useDropdownContext<Item>();\n\n return (\n <DialogContentContainer\n className={cx({ [styles.menuVisible]: isOpen, [styles.menuHidden]: !isOpen }, menuWrapperClassName)}\n style={!isOpen ? { padding: 0 } : undefined}\n >\n <MenuList<Item> />\n </DialogContentContainer>\n );\n};\n\nexport default Menu;\n"],"names":["Menu","_useDropdownContext","useDropdownContext","isOpen","menuWrapperClassName","React","DialogContentContainer","className","cx","_defineProperty","styles","menuVisible","menuHidden","style","undefined","padding","createElement","MenuList"],"mappings":"4VAQA,IAAMA,EAAO,WACX,IAAAC,EAAyCC,IAAjCC,EAAMF,EAANE,OAAQC,EAAoBH,EAApBG,qBAEhB,OACEC,gBAACC,EAAsB,CACrBC,UAAWC,EAAEC,EAAAA,EAAA,CAAA,EAAIC,EAAOC,YAAcR,GAASO,EAAOE,YAAcT,GAAUC,GAC9ES,MAAQV,OAA0BW,EAAjB,CAAEC,QAAS,IAE5BV,EAAAW,cAACC,EAAQ,MAGf"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import t from"../../../../BaseList/BaseList.js";import{useDropdownContext as r}from"../../context/DropdownContext.js";var i=function(){var i=r(),n=i.getMenuProps,o=i.selectedItem,s=i.selectedItems,l=i.multi;return e.createElement(t,{size:i.size,options:i.filteredOptions,selectedItems:(null==s?void 0:s.length)>0?s:o?[o]:[],highlightedIndex:i.highlightedIndex,menuAriaLabel:i.menuAriaLabel,getMenuProps:function(e){var t=(null==n?void 0:n(e))||{};return l?Object.assign(Object.assign({},t),{"aria-multiselectable":"true"}):t},getItemProps:i.getItemProps,withGroupDivider:i.withGroupDivider,stickyGroupTitle:i.stickyGroupTitle,dir:i.dir,itemRenderer:i.optionRenderer,noOptionsMessage:i.noOptionsMessage,renderOptions:!!i.boxMode||i.isOpen,onScroll:i.onScroll,maxMenuHeight:i.maxMenuHeight,menuRenderer:i.menuRenderer})};export{i as default};
2
+ //# sourceMappingURL=MenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuList.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Menu/MenuList.tsx"],"sourcesContent":["import React from \"react\";\nimport { BaseList } from \"../../../../BaseList\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\n\nconst MenuList = <Item extends BaseListItemData<Record<string, unknown>>>() => {\n const {\n filteredOptions,\n highlightedIndex,\n getMenuProps,\n getItemProps,\n optionRenderer,\n menuRenderer,\n size,\n withGroupDivider,\n stickyGroupTitle,\n dir,\n noOptionsMessage,\n maxMenuHeight,\n onScroll,\n menuAriaLabel,\n selectedItem,\n selectedItems,\n multi,\n isOpen,\n boxMode\n } = useDropdownContext<Item>();\n\n const currentSelection = selectedItems?.length > 0 ? selectedItems : selectedItem ? [selectedItem] : [];\n\n const enhancedGetMenuProps = (props?: Record<string, unknown>) => {\n const baseProps = getMenuProps?.(props) || {};\n return multi ? { ...baseProps, \"aria-multiselectable\": \"true\" } : baseProps;\n };\n\n return (\n <BaseList<Item>\n size={size}\n options={filteredOptions}\n selectedItems={currentSelection}\n highlightedIndex={highlightedIndex}\n menuAriaLabel={menuAriaLabel}\n getMenuProps={enhancedGetMenuProps}\n getItemProps={getItemProps}\n withGroupDivider={withGroupDivider}\n stickyGroupTitle={stickyGroupTitle}\n dir={dir}\n itemRenderer={optionRenderer}\n noOptionsMessage={noOptionsMessage}\n renderOptions={boxMode ? true : isOpen}\n onScroll={onScroll}\n maxMenuHeight={maxMenuHeight}\n menuRenderer={menuRenderer}\n />\n );\n};\n\nexport default MenuList;\n"],"names":["MenuList","_useDropdownContext","useDropdownContext","getMenuProps","selectedItem","selectedItems","multi","React","createElement","BaseList","size","options","filteredOptions","length","highlightedIndex","menuAriaLabel","props","baseProps","Object","assign","getItemProps","withGroupDivider","stickyGroupTitle","dir","itemRenderer","optionRenderer","noOptionsMessage","renderOptions","boxMode","isOpen","onScroll","maxMenuHeight","menuRenderer"],"mappings":"2IAKA,IAAMA,EAAW,WACf,IAAAC,EAoBIC,IAjBFC,EAAYF,EAAZE,aAYAC,EAAYH,EAAZG,aACAC,EAAaJ,EAAbI,cACAC,EAAKL,EAALK,MAYF,OACEC,EAACC,cAAAC,EACC,CAAAC,KAxBET,EAAJS,KAyBEC,QA/BaV,EAAfW,gBAgCEP,eAXqBA,aAAA,EAAAA,EAAeQ,QAAS,EAAIR,EAAgBD,EAAe,CAACA,GAAgB,GAYjGU,iBAhCcb,EAAhBa,iBAiCEC,cArBWd,EAAbc,cAsBEZ,aAZyB,SAACa,GAC5B,IAAMC,GAAYd,aAAA,EAAAA,EAAea,KAAU,CAAA,EAC3C,OAAOV,EAAOY,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAMF,GAAS,CAAE,uBAAwB,SAAWA,GAWhEG,aAjCUnB,EAAZmB,aAkCEC,iBA9BcpB,EAAhBoB,iBA+BEC,iBA9BcrB,EAAhBqB,iBA+BEC,IA9BCtB,EAAHsB,IA+BEC,aApCYvB,EAAdwB,eAqCEC,iBA/BczB,EAAhByB,iBAgCEC,gBAxBK1B,EAAP2B,SADM3B,EAAN4B,OA0BEC,SA/BM7B,EAAR6B,SAgCEC,cAjCW9B,EAAb8B,cAkCEC,aAxCU/B,EAAZ+B,cA2CJ"}
@@ -1,2 +1,2 @@
1
- import{defineProperty as e}from"../../../../../../_virtual/_rollupPluginBabelHelpers.js";import t from"react";import l from"classnames";import a from"../../../../BaseInput/BaseInput.js";import r from"./Trigger.module.scss.js";import{useDropdownContext as o}from"../../context/DropdownContext.js";import s from"../../../../Text/Text.js";var i=function(i){var n,m=i.inputSize,p=o(),d=p.inputValue,c=p.autoFocus,u=p.disabled,b=p.readOnly,g=p.placeholder,f=p.multi,v=p.selectedItem,x=p.selectedItems,j=p.inputAriaLabel,y=p.searchable,h=p.size,I=p.label,O=p.getDropdownProps,P=p.getLabelProps,E=p.getInputProps,F=f?(void 0===x?[]:x).length>0:!!v,T=O?O({preventKeyAction:p.isOpen}):{};return t.createElement(t.Fragment,null,y?t.createElement(a,Object.assign({},E(Object.assign({"aria-labelledby":I?P().id:void 0,"aria-label":j||(I||null===(n=P())||void 0===n?void 0:n.id),placeholder:F?"":g},T)),{inputRole:"combobox",value:d||"",autoFocus:c,size:m||h,className:l(r.inputWrapper,e(e(e(e({},r.hasSelected,!f&&v&&!d),r.small,"small"===m),r.multi,f&&F),r.multiSelected,f&&F&&"small"===m)),disabled:u,readOnly:b})):t.createElement(t.Fragment,null,!F&&g&&t.createElement(s,{color:"secondary",className:l(r.placeholderText,e({},r.disabled,!!u)),type:"small"===h?"text2":"text1"},g)))};export{i as default};
1
+ import{defineProperty as e}from"../../../../../../_virtual/_rollupPluginBabelHelpers.js";import l,{useRef as t}from"react";import a from"classnames";import r from"../../../../BaseInput/BaseInput.js";import o from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";import i from"../../../../Text/Text.js";var n=function(n){var m,p=n.inputSize,d=s(),u=d.inputValue,c=d.autoFocus,b=d.disabled,f=d.readOnly,g=d.placeholder,v=d.multi,x=d.selectedItem,j=d.selectedItems,y=void 0===j?[]:j,h=d.inputAriaLabel,I=d.searchable,O=d.size,P=d.label,E=d.isOpen,F=d.getDropdownProps,T=d.getLabelProps,z=d.getInputProps,B=t(null),S=v?y.length>0:!!x,w=F?F({preventKeyAction:E}):{};return l.createElement(l.Fragment,null,I?l.createElement(r,Object.assign({},z(Object.assign({"aria-labelledby":P?T().id:void 0,"aria-label":h||(P||null===(m=T())||void 0===m?void 0:m.id),placeholder:S?"":g,ref:B},w)),{ref:B,inputRole:"combobox",value:u||"",autoFocus:c,size:p||O,className:a(o.inputWrapper,e(e(e(e({},o.hasSelected,!v&&x&&!u),o.small,"small"===p),o.multi,v&&S),o.multiSelected,v&&S&&"small"===p)),disabled:b,readOnly:f})):l.createElement(l.Fragment,null,!S&&g&&l.createElement(i,{color:"secondary",className:a(o.placeholderText,e({},o.disabled,!!b)),type:"small"===O?"text2":"text1"},g)))};export{n as default};
2
2
  //# sourceMappingURL=DropdownInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownInput.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseInput } from \"../../../../BaseInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\nimport { Text } from \"../../../../Text\";\n\nconst DropdownInput = ({ inputSize }: { inputSize?: \"small\" | \"medium\" | \"large\" }) => {\n const {\n inputValue,\n autoFocus,\n disabled,\n readOnly,\n placeholder,\n multi,\n selectedItem,\n selectedItems = [],\n inputAriaLabel,\n searchable,\n size,\n label,\n isOpen,\n getDropdownProps,\n getLabelProps,\n getInputProps\n } = useDropdownContext<BaseListItemData>();\n\n const hasSelection = multi ? selectedItems.length > 0 : !!selectedItem;\n\n const multipleSelectionDropdownProps = getDropdownProps ? getDropdownProps({ preventKeyAction: isOpen }) : {};\n\n return (\n <>\n {searchable ? (\n <BaseInput\n {...getInputProps({\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": inputAriaLabel || (label ? undefined : getLabelProps()?.id),\n placeholder: hasSelection ? \"\" : placeholder,\n ...multipleSelectionDropdownProps\n })}\n inputRole=\"combobox\"\n value={inputValue || \"\"}\n autoFocus={autoFocus}\n size={inputSize || size}\n className={cx(styles.inputWrapper, {\n [styles.hasSelected]: !multi && selectedItem && !inputValue,\n [styles.small]: inputSize === \"small\",\n [styles.multi]: multi && hasSelection,\n [styles.multiSelected]: multi && hasSelection && inputSize === \"small\"\n })}\n disabled={disabled}\n readOnly={readOnly}\n />\n ) : (\n <>\n {!hasSelection && placeholder && (\n <Text\n color=\"secondary\"\n className={cx(styles.placeholderText, {\n [styles.disabled]: !!disabled\n })}\n type={size === \"small\" ? \"text2\" : \"text1\"}\n >\n {placeholder}\n </Text>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default DropdownInput;\n"],"names":["DropdownInput","_ref","inputSize","_useDropdownContext","useDropdownContext","inputValue","autoFocus","disabled","readOnly","placeholder","multi","selectedItem","_useDropdownContext$s","selectedItems","inputAriaLabel","searchable","size","label","getDropdownProps","getLabelProps","getInputProps","hasSelection","length","multipleSelectionDropdownProps","preventKeyAction","isOpen","React","createElement","Fragment","BaseInput","Object","assign","id","undefined","_a","inputRole","value","className","cx","styles","inputWrapper","_defineProperty","hasSelected","small","multiSelected","Text","color","placeholderText","type"],"mappings":"gVAQA,IAAMA,EAAgB,SAAHC,GAAmE,MAA7DC,EAASD,EAATC,UACvBC,EAiBIC,IAhBFC,EAAUF,EAAVE,WACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SACAC,EAAWN,EAAXM,YACAC,EAAKP,EAALO,MACAC,EAAYR,EAAZQ,aAAYC,EAAAT,EACZU,cACAC,EAAcX,EAAdW,eACAC,EAAUZ,EAAVY,WACAC,EAAIb,EAAJa,KACAC,EAAKd,EAALc,MAEAC,EAAgBf,EAAhBe,iBACAC,EAAahB,EAAbgB,cACAC,EAAajB,EAAbiB,cAGIC,EAAeX,QAXH,IAAHE,EAAG,GAAEA,GAWuBU,OAAS,IAAMX,EAEpDY,EAAiCL,EAAmBA,EAAiB,CAAEM,iBARrErB,EAANsB,SAQyG,CAAA,EAE3G,OACEC,EACGC,cAAAD,EAAAE,SAAA,KAAAb,EACCW,EAACC,cAAAE,mBACKT,EAAaU,OAAAC,OAAA,CACf,kBAAmBd,EAAQE,IAAgBa,QAAKC,EAChD,aAAcnB,IAAmBG,GAAmC,QAAfiB,EAAAf,WAAe,IAAAe,OAA3BD,EAA2BC,EAAEF,IACtEvB,YAAaY,EAAe,GAAKZ,GAC9Bc,KAELY,UAAU,WACVC,MAAO/B,GAAc,GACrBC,UAAWA,EACXU,KAAMd,GAAac,EACnBqB,UAAWC,EAAGC,EAAOC,aAAYC,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAC9BF,EAAOG,aAAehC,GAASC,IAAiBN,GAChDkC,EAAOI,MAAsB,UAAdzC,GACfqC,EAAO7B,MAAQA,GAASW,GACxBkB,EAAOK,cAAgBlC,GAASW,GAA8B,UAAdnB,IAEnDK,SAAUA,EACVC,SAAUA,KAGZkB,iCACIL,GAAgBZ,GAChBiB,EAAAC,cAACkB,EAAI,CACHC,MAAM,YACNT,UAAWC,EAAGC,EAAOQ,gBAAeN,EACjCF,GAAAA,EAAOhC,WAAaA,IAEvByC,KAAe,UAAThC,EAAmB,QAAU,SAElCP,IAOf"}
1
+ {"version":3,"file":"DropdownInput.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport cx from \"classnames\";\nimport { BaseInput } from \"../../../../BaseInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\nimport { Text } from \"../../../../Text\";\n\nconst DropdownInput = ({ inputSize }: { inputSize?: \"small\" | \"medium\" | \"large\" }) => {\n const {\n inputValue,\n autoFocus,\n disabled,\n readOnly,\n placeholder,\n multi,\n selectedItem,\n selectedItems = [],\n inputAriaLabel,\n searchable,\n size,\n label,\n isOpen,\n getDropdownProps,\n getLabelProps,\n getInputProps\n } = useDropdownContext<BaseListItemData>();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const hasSelection = multi ? selectedItems.length > 0 : !!selectedItem;\n const multipleSelectionDropdownProps = getDropdownProps ? getDropdownProps({ preventKeyAction: isOpen }) : {};\n\n return (\n <>\n {searchable ? (\n <BaseInput\n {...getInputProps({\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": inputAriaLabel || (label ? undefined : getLabelProps()?.id),\n placeholder: hasSelection ? \"\" : placeholder,\n ref: inputRef,\n ...multipleSelectionDropdownProps\n })}\n ref={inputRef}\n inputRole=\"combobox\"\n value={inputValue || \"\"}\n autoFocus={autoFocus}\n size={inputSize || size}\n className={cx(styles.inputWrapper, {\n [styles.hasSelected]: !multi && selectedItem && !inputValue,\n [styles.small]: inputSize === \"small\",\n [styles.multi]: multi && hasSelection,\n [styles.multiSelected]: multi && hasSelection && inputSize === \"small\"\n })}\n disabled={disabled}\n readOnly={readOnly}\n />\n ) : (\n <>\n {!hasSelection && placeholder && (\n <Text\n color=\"secondary\"\n className={cx(styles.placeholderText, {\n [styles.disabled]: !!disabled\n })}\n type={size === \"small\" ? \"text2\" : \"text1\"}\n >\n {placeholder}\n </Text>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default DropdownInput;\n"],"names":["DropdownInput","_ref","inputSize","_useDropdownContext","useDropdownContext","inputValue","autoFocus","disabled","readOnly","placeholder","multi","selectedItem","_useDropdownContext$s","selectedItems","inputAriaLabel","searchable","size","label","isOpen","getDropdownProps","getLabelProps","getInputProps","inputRef","useRef","hasSelection","length","multipleSelectionDropdownProps","preventKeyAction","React","BaseInput","Object","assign","id","undefined","_a","ref","inputRole","value","className","cx","styles","inputWrapper","_defineProperty","hasSelected","small","multiSelected","createElement","Text","color","placeholderText","type"],"mappings":"6VAQA,IAAMA,EAAgB,SAAHC,GAAmE,MAA7DC,EAASD,EAATC,UACvBC,EAiBIC,IAhBFC,EAAUF,EAAVE,WACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SACAC,EAAWN,EAAXM,YACAC,EAAKP,EAALO,MACAC,EAAYR,EAAZQ,aAAYC,EAAAT,EACZU,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAcX,EAAdW,eACAC,EAAUZ,EAAVY,WACAC,EAAIb,EAAJa,KACAC,EAAKd,EAALc,MACAC,EAAMf,EAANe,OACAC,EAAgBhB,EAAhBgB,iBACAC,EAAajB,EAAbiB,cACAC,EAAalB,EAAbkB,cAGIC,EAAWC,EAAyB,MACpCC,EAAed,EAAQG,EAAcY,OAAS,IAAMd,EACpDe,EAAiCP,EAAmBA,EAAiB,CAAEQ,iBAAkBT,IAAY,CAAA,EAE3G,OACEU,gCACGb,EACCa,gBAACC,EAASC,OAAAC,OAAA,CAAA,EACJV,EACFS,OAAAC,OAAA,CAAA,kBAAmBd,EAAQG,IAAgBY,QAAKC,EAChD,aAAcnB,IAAmBG,GAAmC,QAAfiB,EAAAd,WAAe,IAAAc,OAA3BD,EAA2BC,EAAEF,IACtEvB,YAAae,EAAe,GAAKf,EACjC0B,IAAKb,GACFI,IACH,CACFS,IAAKb,EACLc,UAAU,WACVC,MAAOhC,GAAc,GACrBC,UAAWA,EACXU,KAAMd,GAAac,EACnBsB,UAAWC,EAAGC,EAAOC,aAAYC,EAAAA,EAAAA,EAAAA,EAAA,CAAA,EAC9BF,EAAOG,aAAejC,GAASC,IAAiBN,GAChDmC,EAAOI,MAAsB,UAAd1C,GACfsC,EAAO9B,MAAQA,GAASc,GACxBgB,EAAOK,cAAgBnC,GAASc,GAA8B,UAAdtB,IAEnDK,SAAUA,EACVC,SAAUA,KAGZoB,iCACIJ,GAAgBf,GAChBmB,EAAAkB,cAACC,EAAI,CACHC,MAAM,YACNV,UAAWC,EAAGC,EAAOS,gBAAeP,EACjCF,GAAAA,EAAOjC,WAAaA,IAEvB2C,KAAe,UAATlC,EAAmB,QAAU,SAElCP,IAOf"}
@@ -1,2 +1,2 @@
1
- import e from"react";import o from"../../../../IconButton/IconButton.js";import t from"../../../../Flex/Flex.js";import r from"./Trigger.module.scss.js";import{useDropdownContext as a}from"../../context/DropdownContext.js";import n from"../../../../../../components/loader/dist/Loader/Loader.js";import i from"../../../../../../icons/dist/react/CloseSmall.js";import l from"../../../../../../icons/dist/react/DropdownChevronUp.js";import s from"../../../../../../icons/dist/react/DropdownChevronDown.js";var m={large:"medium",medium:"small",small:"xs"},d=function(){var d=a(),c=d.isOpen,p=d.reset,u=d.contextOnClear,f=d.disabled,g=d.clearable,x=d.selectedItems,b=void 0===x?[]:x,j=d.toggleMenu,C=d.getMenuProps,v=d.clearAriaLabel,w=d.multi?(null==b?void 0:b.length)>0:!!d.selectedItem,E=m[d.size]||"small";return d.readOnly?null:e.createElement("div",{onKeyDown:function(e){e.stopPropagation()}},e.createElement(t,{className:r.actionsWrapper},d.loading&&e.createElement(n,{size:"xs"===E?16:"small"===E?20:24,color:"secondary"}),w&&g&&!f&&e.createElement(o,{"data-testid":"dropdown-clear-button",icon:i,onClick:function(e){e.stopPropagation(),u?u():p()},size:E,ariaLabel:v,hideTooltip:!0}),e.createElement(o,{icon:c?l:s,size:E,disabled:f,ariaControls:C().id,ariaExpanded:c,ariaLabeledBy:C().id,tabIndex:-1,onClick:function(){j()}})))};export{d as default};
1
+ import e from"react";import o from"../../../../IconButton/IconButton.js";import t from"../../../../Flex/Flex.js";import r from"./Trigger.module.scss.js";import{useDropdownContext as a}from"../../context/DropdownContext.js";import n from"../../../../../../components/loader/dist/Loader/Loader.js";import i from"../../../../../../icons/dist/react/CloseSmall.js";import l from"../../../../../../icons/dist/react/DropdownChevronUp.js";import s from"../../../../../../icons/dist/react/DropdownChevronDown.js";var d={large:"medium",medium:"small",small:"xs"},m=function(){var m=a(),c=m.isOpen,p=m.reset,u=m.contextOnClear,f=m.disabled,x=m.clearable,g=m.selectedItems,b=void 0===g?[]:g,j=m.toggleMenu,C=m.getMenuProps,v=m.clearAriaLabel,w=m.boxMode,E=m.multi?(null==b?void 0:b.length)>0:!!m.selectedItem,D=d[m.size]||"small";return m.readOnly?null:e.createElement("div",{onKeyDown:function(e){e.stopPropagation()}},e.createElement(t,{className:r.actionsWrapper},m.loading&&e.createElement(n,{size:"xs"===D?16:"small"===D?20:24,color:"secondary"}),E&&x&&!f&&e.createElement(o,{"data-testid":"dropdown-clear-button",icon:i,onClick:function(e){e.stopPropagation(),u?u():p()},size:D,ariaLabel:v,hideTooltip:!0}),!w&&e.createElement(o,{icon:c?l:s,size:D,disabled:f,ariaControls:C().id,ariaExpanded:c,ariaLabeledBy:C().id,tabIndex:-1,onClick:function(){j()}})))};export{m as default};
2
2
  //# sourceMappingURL=TriggerActions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerActions.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Trigger/TriggerActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { CloseSmall, DropdownChevronDown, DropdownChevronUp } from \"@vibe/icons\";\nimport { IconButton } from \"../../../../IconButton\";\nimport { Flex } from \"../../../../Flex\";\nimport { Loader } from \"@vibe/loader\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\n\nconst sizeMap = {\n large: \"medium\",\n medium: \"small\",\n small: \"xs\"\n} as const;\n\nconst TriggerActions = () => {\n const {\n isOpen,\n reset,\n contextOnClear,\n size,\n disabled,\n clearable,\n readOnly,\n multi,\n selectedItem,\n selectedItems = [],\n toggleMenu,\n getMenuProps,\n loading,\n clearAriaLabel\n } = useDropdownContext<BaseListItemData>();\n\n const hasSelection = multi ? selectedItems?.length > 0 : !!selectedItem;\n const iconButtonSize = sizeMap[size] || \"small\";\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (contextOnClear) {\n contextOnClear();\n } else {\n reset();\n }\n };\n\n if (readOnly) {\n return null;\n }\n\n return (\n <div\n onKeyDown={e => {\n e.stopPropagation();\n }}\n >\n <Flex className={styles.actionsWrapper}>\n {loading && (\n <Loader size={iconButtonSize === \"xs\" ? 16 : iconButtonSize === \"small\" ? 20 : 24} color=\"secondary\" />\n )}\n {hasSelection && clearable && !disabled && (\n <IconButton\n data-testid=\"dropdown-clear-button\"\n icon={CloseSmall}\n onClick={handleClear}\n size={iconButtonSize}\n ariaLabel={clearAriaLabel}\n hideTooltip\n />\n )}\n <IconButton\n icon={isOpen ? DropdownChevronUp : DropdownChevronDown}\n size={iconButtonSize}\n disabled={disabled}\n ariaControls={getMenuProps().id}\n ariaExpanded={isOpen}\n ariaLabeledBy={getMenuProps().id}\n tabIndex={-1}\n onClick={() => {\n toggleMenu();\n }}\n />\n </Flex>\n </div>\n );\n};\n\nexport default TriggerActions;\n"],"names":["sizeMap","large","medium","small","TriggerActions","_useDropdownContext","useDropdownContext","isOpen","reset","contextOnClear","disabled","clearable","_useDropdownContext$s","selectedItems","toggleMenu","getMenuProps","clearAriaLabel","hasSelection","multi","length","selectedItem","iconButtonSize","size","readOnly","React","createElement","onKeyDown","e","stopPropagation","Flex","className","styles","actionsWrapper","loading","Loader","color","IconButton","icon","CloseSmall","onClick","ariaLabel","hideTooltip","DropdownChevronUp","DropdownChevronDown","ariaControls","id","ariaExpanded","ariaLabeledBy","tabIndex"],"mappings":"wfASA,IAAMA,EAAU,CACdC,MAAO,SACPC,OAAQ,QACRC,MAAO,MAGHC,EAAiB,WACrB,IAAAC,EAeIC,IAdFC,EAAMF,EAANE,OACAC,EAAKH,EAALG,MACAC,EAAcJ,EAAdI,eAEAC,EAAQL,EAARK,SACAC,EAASN,EAATM,UAGYC,EAAAP,EACZQ,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAUT,EAAVS,WACAC,EAAYV,EAAZU,aAEAC,EAAcX,EAAdW,eAGIC,EATCZ,EAALa,OAS2BL,aAAa,EAAbA,EAAeM,QAAS,IARvCd,EAAZe,aASIC,EAAiBrB,EAdjBK,EAAJiB,OAcsC,QAWxC,OAtBUjB,EAARkB,SAuBO,KAIPC,EACEC,cAAA,MAAA,CAAAC,UAAW,SAAAC,GACTA,EAAEC,iBACJ,GAEAJ,EAAAC,cAACI,EAAK,CAAAC,UAAWC,EAAOC,gBA1BnB3B,EAAP4B,SA4BMT,EAACC,cAAAS,GAAOZ,KAAyB,OAAnBD,EAA0B,GAAwB,UAAnBA,EAA6B,GAAK,GAAIc,MAAM,cAE1FlB,GAAgBN,IAAcD,GAC7Bc,EAAAC,cAACW,EAAU,CAAA,cACG,wBACZC,KAAMC,EACNC,QA3BU,SAACZ,GACnBA,EAAEC,kBACEnB,EACFA,IAEAD,KAuBMc,KAAMD,EACNmB,UAAWxB,EACXyB,iBAGJjB,EAACC,cAAAW,GACCC,KAAM9B,EAASmC,EAAoBC,EACnCrB,KAAMD,EACNX,SAAUA,EACVkC,aAAc7B,IAAe8B,GAC7BC,aAAcvC,EACdwC,cAAehC,IAAe8B,GAC9BG,UAAW,EACXT,QAAS,WACPzB,GACF,KAKV"}
1
+ {"version":3,"file":"TriggerActions.js","sources":["../../../../../../../../src/components/next/Dropdown/components/Trigger/TriggerActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { CloseSmall, DropdownChevronDown, DropdownChevronUp } from \"@vibe/icons\";\nimport { IconButton } from \"../../../../IconButton\";\nimport { Flex } from \"../../../../Flex\";\nimport { Loader } from \"@vibe/loader\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseListItemData } from \"../../../../BaseListItem\";\n\nconst sizeMap = {\n large: \"medium\",\n medium: \"small\",\n small: \"xs\"\n} as const;\n\nconst TriggerActions = () => {\n const {\n isOpen,\n reset,\n contextOnClear,\n size,\n disabled,\n clearable,\n readOnly,\n multi,\n selectedItem,\n selectedItems = [],\n toggleMenu,\n getMenuProps,\n loading,\n clearAriaLabel,\n boxMode\n } = useDropdownContext<BaseListItemData>();\n\n const hasSelection = multi ? selectedItems?.length > 0 : !!selectedItem;\n const iconButtonSize = sizeMap[size] || \"small\";\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (contextOnClear) {\n contextOnClear();\n } else {\n reset();\n }\n };\n\n if (readOnly) {\n return null;\n }\n\n return (\n <div\n onKeyDown={e => {\n e.stopPropagation();\n }}\n >\n <Flex className={styles.actionsWrapper}>\n {loading && (\n <Loader size={iconButtonSize === \"xs\" ? 16 : iconButtonSize === \"small\" ? 20 : 24} color=\"secondary\" />\n )}\n {hasSelection && clearable && !disabled && (\n <IconButton\n data-testid=\"dropdown-clear-button\"\n icon={CloseSmall}\n onClick={handleClear}\n size={iconButtonSize}\n ariaLabel={clearAriaLabel}\n hideTooltip\n />\n )}\n {!boxMode && (\n <IconButton\n icon={isOpen ? DropdownChevronUp : DropdownChevronDown}\n size={iconButtonSize}\n disabled={disabled}\n ariaControls={getMenuProps().id}\n ariaExpanded={isOpen}\n ariaLabeledBy={getMenuProps().id}\n tabIndex={-1}\n onClick={() => {\n toggleMenu();\n }}\n />\n )}\n </Flex>\n </div>\n );\n};\n\nexport default TriggerActions;\n"],"names":["sizeMap","large","medium","small","TriggerActions","_useDropdownContext","useDropdownContext","isOpen","reset","contextOnClear","disabled","clearable","_useDropdownContext$s","selectedItems","toggleMenu","getMenuProps","clearAriaLabel","boxMode","hasSelection","multi","length","selectedItem","iconButtonSize","size","readOnly","React","createElement","onKeyDown","e","stopPropagation","Flex","className","styles","actionsWrapper","loading","Loader","color","IconButton","icon","CloseSmall","onClick","ariaLabel","hideTooltip","DropdownChevronUp","DropdownChevronDown","ariaControls","id","ariaExpanded","ariaLabeledBy","tabIndex"],"mappings":"wfASA,IAAMA,EAAU,CACdC,MAAO,SACPC,OAAQ,QACRC,MAAO,MAGHC,EAAiB,WACrB,IAAAC,EAgBIC,IAfFC,EAAMF,EAANE,OACAC,EAAKH,EAALG,MACAC,EAAcJ,EAAdI,eAEAC,EAAQL,EAARK,SACAC,EAASN,EAATM,UAGYC,EAAAP,EACZQ,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAUT,EAAVS,WACAC,EAAYV,EAAZU,aAEAC,EAAcX,EAAdW,eACAC,EAAOZ,EAAPY,QAGIC,EAVCb,EAALc,OAU2BN,aAAa,EAAbA,EAAeO,QAAS,IATvCf,EAAZgB,aAUIC,EAAiBtB,EAfjBK,EAAJkB,OAesC,QAWxC,OAvBUlB,EAARmB,SAwBO,KAIPC,EACEC,cAAA,MAAA,CAAAC,UAAW,SAAAC,GACTA,EAAEC,iBACJ,GAEAJ,EAAAC,cAACI,EAAK,CAAAC,UAAWC,EAAOC,gBA3BnB5B,EAAP6B,SA6BMT,EAACC,cAAAS,GAAOZ,KAAyB,OAAnBD,EAA0B,GAAwB,UAAnBA,EAA6B,GAAK,GAAIc,MAAM,cAE1FlB,GAAgBP,IAAcD,GAC7Be,EAAAC,cAACW,EAAU,CAAA,cACG,wBACZC,KAAMC,EACNC,QA3BU,SAACZ,GACnBA,EAAEC,kBACEpB,EACFA,IAEAD,KAuBMe,KAAMD,EACNmB,UAAWzB,EACX0B,kBAGFzB,GACAQ,EAACC,cAAAW,GACCC,KAAM/B,EAASoC,EAAoBC,EACnCrB,KAAMD,EACNZ,SAAUA,EACVmC,aAAc9B,IAAe+B,GAC7BC,aAAcxC,EACdyC,cAAejC,IAAe+B,GAC9BG,UAAW,EACXT,QAAS,WACP1B,GACF,KAMZ"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import l from"../hooks/useDropdownCombobox.js";import t from"../components/DropdownWrapperUI.js";var i=function(i){var u=i.options,r=i.isMenuOpen,s=i.autoFocus,a=i.closeMenuOnSelect,d=void 0===a||a,c=i.defaultValue,p=i.value,g=i.inputValue,m=i.onChange,v=i.onInputChange,f=i.onMenuClose,O=i.onMenuOpen,b=i.onOptionSelect,I=i.filterOption,h=i.showSelectedOptions,P=void 0===h||h,M=i.clearable,w=void 0===M||M,j=i.searchable,x=void 0===j||j,B=i.multi,C=void 0!==B&&B,S=i.dropdownRef,y=i.onFocus,D=i.onBlur,F=i.onKeyDown,V=i.onClear,K=i.loading,R=void 0!==K&&K,T=i.size,z=void 0===T?"medium":T,L=i.id,_=i.readOnly,k=i.disabled,A=n(!1),E=e(A,2),H=E[0],U=E[1],W=l(u,r,s,d,c,p,g,m,v,f,O,(function(e){null==b||b(e),e&&U(!1)}),I,P,L),q=W.isOpen,G=W.inputValue,J=W.highlightedIndex,N=W.getToggleButtonProps,Q=W.getLabelProps,X=W.getMenuProps,Y=W.getItemProps,Z=W.getInputProps,$=W.reset,ee=W.filteredOptions,oe=W.selectedItem,ne=W.toggleMenu,le=Object.assign(Object.assign({},i),{isOpen:q,inputValue:null!=G?G:null,highlightedIndex:J,selectedItem:oe,selectedItems:[],filteredOptions:ee,getToggleButtonProps:N,getLabelProps:Q,getMenuProps:X,getItemProps:Y,getInputProps:function(e){return Z(Object.assign(Object.assign({},e||{}),{disabled:_||k,onFocus:function(o){var n;U(!0),null==y||y(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;U(!1),null==D||D(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==F||F(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:$,contextOnClear:function(){$(),null==V||V()},contextOnOptionRemove:function(){},addSelectedItem:void 0,removeSelectedItem:void 0,isFocused:H,clearable:w,searchable:x,multi:C,closeMenuOnSelect:d,size:z,toggleMenu:ne,loading:R});return o.createElement(t,{contextValue:le,dropdownRef:S})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import l from"../hooks/useDropdownCombobox.js";import t from"../components/DropdownWrapperUI.js";var i=function(i){var u=i.options,r=i.autoFocus,s=i.closeMenuOnSelect,d=void 0===s||s,a=i.defaultValue,c=i.value,p=i.inputValue,g=i.onChange,v=i.onInputChange,m=i.onMenuClose,f=i.onMenuOpen,O=i.onOptionSelect,b=i.filterOption,I=i.showSelectedOptions,h=void 0===I||I,P=i.clearable,M=void 0===P||P,w=i.searchable,x=void 0===w||w,j=i.multi,B=void 0!==j&&j,C=i.dropdownRef,S=i.onFocus,y=i.onBlur,D=i.onKeyDown,F=i.onClear,V=i.loading,K=void 0!==V&&V,R=i.size,T=void 0===R?"medium":R,z=i.id,L=i.readOnly,_=i.disabled,k=i.boxMode,A=!!(void 0!==k&&k)||i.isMenuOpen,E=n(!1),H=e(E,2),U=H[0],W=H[1],q=l(u,A,r,d,a,c,p,g,v,m,f,(function(e){null==O||O(e),e&&W(!1)}),b,h,z),G=q.isOpen,J=q.inputValue,N=q.highlightedIndex,Q=q.getToggleButtonProps,X=q.getLabelProps,Y=q.getMenuProps,Z=q.getItemProps,$=q.getInputProps,ee=q.reset,oe=q.filteredOptions,ne=q.selectedItem,le=q.toggleMenu,te=Object.assign(Object.assign({},i),{isOpen:G,inputValue:null!=J?J:null,highlightedIndex:N,selectedItem:ne,selectedItems:[],filteredOptions:oe,getToggleButtonProps:Q,getLabelProps:X,getMenuProps:Y,getItemProps:Z,getInputProps:function(e){return $(Object.assign(Object.assign({},e||{}),{disabled:L||_,onFocus:function(o){var n;W(!0),null==S||S(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;W(!1),null==y||y(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==D||D(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:ee,contextOnClear:function(){ee(),null==F||F()},contextOnOptionRemove:function(){},addSelectedItem:void 0,removeSelectedItem:void 0,isFocused:U,clearable:M,searchable:x,multi:B,closeMenuOnSelect:d,size:T,toggleMenu:le,loading:K});return o.createElement(t,{contextValue:te,dropdownRef:C})};export{i as default};
2
2
  //# sourceMappingURL=DropdownComboboxController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownComboboxController.js","sources":["../../../../../../../src/components/next/Dropdown/modes/DropdownComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownCombobox from \"../hooks/useDropdownCombobox\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownComboboxController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect = true,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = false,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n loading = false,\n size = \"medium\",\n id,\n readOnly,\n disabled\n } = props;\n\n const [isFocused, setIsFocused] = useState(false);\n\n const handleOptionSelect = (item: Item | null) => {\n onOptionSelect?.(item);\n if (item) {\n setIsFocused(false);\n }\n };\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n filteredOptions,\n selectedItem: hookSelectedItem,\n toggleMenu\n } = useDropdownCombobox<Item>(\n options,\n isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n handleOptionSelect,\n filterOption,\n showSelectedOptions,\n id\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n selectedItems: [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: readOnly || disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n toggleMenu,\n loading\n };\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownComboboxController;\n"],"names":["DropdownComboboxController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","_props$closeMenuOnSel","closeMenuOnSelect","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onFocus","onBlur","onKeyDown","onClear","_props$loading","loading","_props$size","size","id","readOnly","disabled","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","_useDropdownCombobox","useDropdownCombobox","item","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","filteredOptions","hookSelectedItem","selectedItem","toggleMenu","contextValue","Object","assign","selectedItems","inputOptions","event","_a","call","contextOnClear","contextOnOptionRemove","addSelectedItem","undefined","removeSelectedItem","React","createElement","DropdownWrapperUI"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownComboboxController.js","sources":["../../../../../../../src/components/next/Dropdown/modes/DropdownComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownCombobox from \"../hooks/useDropdownCombobox\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownComboboxController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n closeMenuOnSelect = true,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = false,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n loading = false,\n size = \"medium\",\n id,\n readOnly,\n disabled,\n boxMode = false\n } = props;\n\n const isMenuOpen = boxMode ? true : isMenuOpenProp;\n\n const [isFocused, setIsFocused] = useState(false);\n\n const handleOptionSelect = (item: Item | null) => {\n onOptionSelect?.(item);\n if (item) {\n setIsFocused(false);\n }\n };\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n filteredOptions,\n selectedItem: hookSelectedItem,\n toggleMenu\n } = useDropdownCombobox<Item>(\n options,\n isMenuOpen,\n autoFocus,\n closeMenuOnSelect,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n handleOptionSelect,\n filterOption,\n showSelectedOptions,\n id\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n selectedItems: [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: readOnly || disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n toggleMenu,\n loading\n };\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownComboboxController;\n"],"names":["DropdownComboboxController","props","options","autoFocus","_props$closeMenuOnSel","closeMenuOnSelect","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onFocus","onBlur","onKeyDown","onClear","_props$loading","loading","_props$size","size","id","readOnly","disabled","_props$boxMode","boxMode","isMenuOpen","_useState","useState","_useState2","_slicedToArray","isFocused","setIsFocused","_useDropdownCombobox","useDropdownCombobox","item","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","filteredOptions","hookSelectedItem","selectedItem","toggleMenu","contextValue","Object","assign","selectedItems","inputOptions","event","_a","call","contextOnClear","contextOnOptionRemove","addSelectedItem","undefined","removeSelectedItem","React","createElement","DropdownWrapperUI"],"mappings":"0NAOA,IAAMA,EAA6B,SACjCC,GAEA,IACEC,EA4BED,EA5BFC,QAEAC,EA0BEF,EA1BFE,UAASC,EA0BPH,EAzBFI,kBAAAA,OAAoB,IAAHD,GAAOA,EACxBE,EAwBEL,EAxBFK,aACAC,EAuBEN,EAvBFM,MACYC,EAsBVP,EAtBFQ,WACAC,EAqBET,EArBFS,SACAC,EAoBEV,EApBFU,cACAC,EAmBEX,EAnBFW,YACAC,EAkBEZ,EAlBFY,WACAC,EAiBEb,EAjBFa,eACAC,EAgBEd,EAhBFc,aAAYC,EAgBVf,EAfFgB,oBAAAA,OAAsB,IAAHD,GAAOA,EAAAE,EAexBjB,EAdFkB,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EAcdnB,EAbFoB,WAAAA,OAAa,IAAHD,GAAOA,EAAAE,EAafrB,EAZFsB,MAAAA,OAAQ,IAAHD,GAAQA,EACbE,EAWEvB,EAXFuB,YACAC,EAUExB,EAVFwB,QACAC,EASEzB,EATFyB,OACAC,EAQE1B,EARF0B,UACAC,EAOE3B,EAPF2B,QAAOC,EAOL5B,EANF6B,QAAAA,OAAU,IAAHD,GAAQA,EAAAE,EAMb9B,EALF+B,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EACfE,EAIEhC,EAJFgC,GACAC,EAGEjC,EAHFiC,SACAC,EAEElC,EAFFkC,SAAQC,EAENnC,EADFoC,QAGIC,UAHM,IAAHF,GAAQA,IACbnC,EA3BFqC,WA+BFC,EAAkCC,GAAS,GAAMC,EAAAC,EAAAH,EAAA,GAA1CI,EAASF,EAAA,GAAEG,EAAYH,EAAA,GAS9BI,EAaIC,EACF5C,EACAoC,EACAnC,EACAE,EACAC,EACAC,EACAC,EACAE,EACAC,EACAC,EACAC,GA/ByB,SAACkC,GAC1BjC,SAAAA,EAAiBiC,GACbA,GACFH,GAAa,KA8Bf7B,EACAE,EACAgB,GA3BAe,EAAMH,EAANG,OACYC,EAAcJ,EAA1BpC,WACAyC,EAAgBL,EAAhBK,iBACAC,EAAoBN,EAApBM,qBACAC,EAAaP,EAAbO,cACAC,EAAYR,EAAZQ,aACAC,EAAYT,EAAZS,aACeC,EAAiBV,EAAhCW,cACOC,GAASZ,EAAhBa,MACAC,GAAed,EAAfc,gBACcC,GAAgBf,EAA9BgB,aACAC,GAAUjB,EAAViB,WAmBIC,GACDC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAhE,GACH,CAAA+C,OAAAA,EACAvC,WAAYwC,QAAAA,EAAkB,KAC9BC,iBAAAA,EACAW,aAAcD,GACdM,cAAe,GACfP,gBAAAA,GACAR,qBAAAA,EACAC,cAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAE,cAAe,SAACW,GACd,OAAOZ,EACFS,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAACE,GAAgB,CAAA,GACpB,CAAAhC,SAAUD,GAAYC,EACtBV,QAAS,SAAC2C,SACRxB,GAAa,GACbnB,SAAAA,EAAU2C,GACW,QAArBC,EAAAF,aAAA,EAAAA,EAAc1C,eAAO,IAAA4C,GAAAA,EAAAC,KAAAH,EAAGC,EACzB,EACD1C,OAAQ,SAAC0C,SACPxB,GAAa,GACblB,SAAAA,EAAS0C,GACW,QAApBC,EAAAF,aAAA,EAAAA,EAAczC,cAAM,IAAA2C,GAAAA,EAAAC,KAAAH,EAAGC,EACxB,EACDzC,UAAW,SAACyC,SACVzC,SAAAA,EAAYyC,GACW,QAAvBC,EAAAF,aAAA,EAAAA,EAAcxC,iBAAS,IAAA0C,GAAAA,EAAAC,KAAAH,EAAGC,EAC5B,IAEH,EACDV,MAAOD,GACPc,eAAgB,WACdd,KACA7B,SAAAA,GACD,EACD4C,sBAAuB,WAAQ,EAC/BC,qBAAiBC,EACjBC,wBAAoBD,EACpB/B,UAAAA,EACAxB,UAAAA,EACAE,WAAAA,EACAE,MAAAA,EACAlB,kBAAAA,EACA2B,KAAAA,EACA8B,WAAAA,GACAhC,QAAAA,IAEF,OAAO8C,EAAAC,cAACC,EAAiB,CAACf,aAAcA,GAAcvC,YAAaA,GACrE"}
@@ -1,2 +1,2 @@
1
- import{slicedToArray as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import t from"../hooks/useDropdownMultiCombobox.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var r=i.options,u=i.isMenuOpen,s=i.autoFocus,a=i.defaultValue,d=i.value,p=i.inputValue,c=i.onChange,g=i.onInputChange,m=i.onMenuClose,v=i.onMenuOpen,O=i.onOptionSelect,f=i.filterOption,b=i.showSelectedOptions,I=void 0===b||b,P=i.clearable,h=void 0===P||P,w=i.searchable,M=void 0===w||w,S=i.multi,j=void 0===S||S,x=i.closeMenuOnSelect,y=void 0===x||x,D=i.dropdownRef,B=i.onFocus,C=i.onBlur,F=i.onKeyDown,V=i.onClear,R=i.onOptionRemove,A=i.loading,K=void 0!==A&&A,T=i.size,z=void 0===T?"medium":T,L=i.id,_=n(Array.isArray(a)?a:[]),k=e(_,2),E=k[0],H=k[1],U=n(!1),W=e(U,2),q=W[0],G=W[1],J=t(r,E,H,u,s,a,d,p,c,g,m,v,O,f,I,L),N=J.isOpen,Q=J.inputValue,X=J.highlightedIndex,Y=J.getToggleButtonProps,Z=J.getLabelProps,$=J.getMenuProps,ee=J.getItemProps,oe=J.getInputProps,ne=J.reset,te=J.toggleMenu,le=J.filteredOptions,ie=J.selectedItems,re=J.addSelectedItem,ue=J.removeSelectedItem,se=J.getDropdownProps,ae=Object.assign(Object.assign({},i),{isOpen:N,inputValue:null!=Q?Q:null,highlightedIndex:X,selectedItems:ie||[],filteredOptions:le,getToggleButtonProps:Y,getLabelProps:Z,getMenuProps:$,getItemProps:ee,getInputProps:function(e){return oe(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(o){var n;G(!0),null==B||B(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;G(!1),null==C||C(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==F||F(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:ne,contextOnClear:function(){ne(),void 0===d&&H([]),null==V||V()},contextOnOptionRemove:function(e){ue&&ue(e),null==R||R(e)},addSelectedItem:re,removeSelectedItem:ue,isFocused:q,clearable:h,searchable:M,multi:j,closeMenuOnSelect:y,size:z,getDropdownProps:se,toggleMenu:te,loading:K});return o.createElement(l,{contextValue:ae,dropdownRef:D})};export{i as default};
1
+ import{slicedToArray as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import o,{useState as n}from"react";import t from"../hooks/useDropdownMultiCombobox.js";import l from"../components/DropdownWrapperUI.js";var i=function(i){var r=i.options,u=i.autoFocus,s=i.defaultValue,d=i.value,a=i.inputValue,p=i.onChange,c=i.onInputChange,g=i.onMenuClose,m=i.onMenuOpen,v=i.onOptionSelect,O=i.filterOption,f=i.showSelectedOptions,b=void 0===f||f,I=i.clearable,P=void 0===I||I,h=i.searchable,M=void 0===h||h,w=i.multi,x=void 0===w||w,S=i.closeMenuOnSelect,j=void 0===S||S,y=i.dropdownRef,D=i.onFocus,B=i.onBlur,C=i.onKeyDown,F=i.onClear,V=i.onOptionRemove,R=i.loading,A=void 0!==R&&R,K=i.size,T=void 0===K?"medium":K,z=i.id,L=i.boxMode,_=!!(void 0!==L&&L)||i.isMenuOpen,k=n(Array.isArray(s)?s:[]),E=e(k,2),H=E[0],U=E[1],W=n(!1),q=e(W,2),G=q[0],J=q[1],N=t(r,H,U,_,u,s,d,a,p,c,g,m,v,O,b,z),Q=N.isOpen,X=N.inputValue,Y=N.highlightedIndex,Z=N.getToggleButtonProps,$=N.getLabelProps,ee=N.getMenuProps,oe=N.getItemProps,ne=N.getInputProps,te=N.reset,le=N.toggleMenu,ie=N.filteredOptions,re=N.selectedItems,ue=N.addSelectedItem,se=N.removeSelectedItem,de=N.getDropdownProps,ae=Object.assign(Object.assign({},i),{isOpen:Q,inputValue:null!=X?X:null,highlightedIndex:Y,selectedItems:re||[],filteredOptions:ie,getToggleButtonProps:Z,getLabelProps:$,getMenuProps:ee,getItemProps:oe,getInputProps:function(e){return ne(Object.assign(Object.assign({},e||{}),{disabled:i.readOnly||i.disabled,onFocus:function(o){var n;J(!0),null==D||D(o),null===(n=null==e?void 0:e.onFocus)||void 0===n||n.call(e,o)},onBlur:function(o){var n;J(!1),null==B||B(o),null===(n=null==e?void 0:e.onBlur)||void 0===n||n.call(e,o)},onKeyDown:function(o){var n;null==C||C(o),null===(n=null==e?void 0:e.onKeyDown)||void 0===n||n.call(e,o)}}))},reset:te,contextOnClear:function(){te(),void 0===d&&U([]),null==F||F()},contextOnOptionRemove:function(e){se&&se(e),null==V||V(e)},addSelectedItem:ue,removeSelectedItem:se,isFocused:G,clearable:P,searchable:M,multi:x,closeMenuOnSelect:j,size:T,getDropdownProps:de,toggleMenu:le,loading:A});return o.createElement(l,{contextValue:ae,dropdownRef:y})};export{i as default};
2
2
  //# sourceMappingURL=DropdownMultiComboboxController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMultiComboboxController.js","sources":["../../../../../../../src/components/next/Dropdown/modes/DropdownMultiComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiCombobox from \"../hooks/useDropdownMultiCombobox\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiComboboxController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = true,\n closeMenuOnSelect = true,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n onOptionRemove,\n loading = false,\n size = \"medium\",\n id\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiCombobox<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions,\n id\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item) => {\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n getDropdownProps,\n toggleMenu,\n loading\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiComboboxController;\n"],"names":["DropdownMultiComboboxController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","_props$closeMenuOnSel","closeMenuOnSelect","dropdownRef","onFocus","onBlur","onKeyDown","onClear","onOptionRemove","_props$loading","loading","_props$size","size","id","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","_useDropdownMultiComb","useDropdownMultiCombobox","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","Object","assign","inputOptions","disabled","readOnly","event","_a","call","contextOnClear","undefined","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownMultiComboboxController.js","sources":["../../../../../../../src/components/next/Dropdown/modes/DropdownMultiComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { type DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiCombobox from \"../hooks/useDropdownMultiCombobox\";\nimport { type BaseListItemData } from \"../../../BaseListItem\";\nimport { type DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiComboboxController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownMultiControllerProps<Item>\n) => {\n const {\n options,\n isMenuOpen: isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n inputValue: inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions = true,\n clearable = true,\n searchable = true,\n multi = true,\n closeMenuOnSelect = true,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n onOptionRemove,\n loading = false,\n size = \"medium\",\n id,\n boxMode = false\n } = props;\n\n const isMenuOpen = boxMode ? true : isMenuOpenProp;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n const [isFocused, setIsFocused] = useState(false);\n\n const {\n isOpen,\n inputValue: hookInputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: hookGetInputProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiCombobox<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpen,\n autoFocus,\n defaultValue,\n value,\n inputValueProp,\n onChange,\n onInputChange,\n onMenuClose,\n onMenuOpen,\n onOptionSelect,\n filterOption,\n showSelectedOptions,\n id\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: hookInputValue ?? null,\n highlightedIndex,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n getInputProps: (inputOptions?: any) => {\n return hookGetInputProps!({\n ...(inputOptions || {}),\n disabled: props.readOnly || props.disabled,\n onFocus: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(true);\n onFocus?.(event as any);\n inputOptions?.onFocus?.(event);\n },\n onBlur: (event: React.FocusEvent<HTMLInputElement>) => {\n setIsFocused(false);\n onBlur?.(event);\n inputOptions?.onBlur?.(event);\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n inputOptions?.onKeyDown?.(event);\n }\n });\n },\n reset: hookReset,\n contextOnClear: () => {\n hookReset();\n if (value === undefined) {\n setMultiSelectedItemsState([]);\n }\n onClear?.();\n },\n contextOnOptionRemove: (option: Item) => {\n if (hookRemoveSelectedItem) {\n hookRemoveSelectedItem(option);\n }\n onOptionRemove?.(option);\n },\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n isFocused,\n clearable,\n searchable,\n multi,\n closeMenuOnSelect,\n size,\n getDropdownProps,\n toggleMenu,\n loading\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiComboboxController;\n"],"names":["DropdownMultiComboboxController","props","options","autoFocus","defaultValue","value","inputValueProp","inputValue","onChange","onInputChange","onMenuClose","onMenuOpen","onOptionSelect","filterOption","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","_props$closeMenuOnSel","closeMenuOnSelect","dropdownRef","onFocus","onBlur","onKeyDown","onClear","onOptionRemove","_props$loading","loading","_props$size","size","id","_props$boxMode","boxMode","isMenuOpen","_useState","useState","Array","isArray","_useState2","_slicedToArray","multiSelectedItemsState","setMultiSelectedItemsState","_useState3","_useState4","isFocused","setIsFocused","_useDropdownMultiComb","useDropdownMultiCombobox","isOpen","hookInputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookGetInputProps","getInputProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","Object","assign","inputOptions","disabled","readOnly","event","_a","call","contextOnClear","undefined","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export{default as AttentionBox}from"./next/AttentionBox/AttentionBox.js";export{default as Dropdown}from"./next/Dropdown/Dropdown.js";export{default as ModalFooter}from"./Modal/footers/ModalFooter/ModalFooter.js";export{default as ModalFooterWizard}from"./Modal/footers/ModalFooterWizard/ModalFooterWizard.js";export{default as ModalBasicLayout}from"./Modal/layouts/ModalBasicLayout/ModalBasicLayout.js";export{default as ModalMediaLayout}from"./Modal/layouts/ModalMediaLayout/ModalMediaLayout.js";export{default as ModalSideBySideLayout}from"./Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.js";export{default as Modal}from"./Modal/Modal/Modal.js";export{default as ModalHeader}from"./Modal/ModalHeader/ModalHeader.js";export{default as ModalContent}from"./Modal/ModalContent/ModalContent.js";export{default as ModalMedia}from"./Modal/ModalMedia/ModalMedia.js";
1
+ export{default as ModalFooter}from"./Modal/footers/ModalFooter/ModalFooter.js";export{default as ModalFooterWizard}from"./Modal/footers/ModalFooterWizard/ModalFooterWizard.js";export{default as ModalBasicLayout}from"./Modal/layouts/ModalBasicLayout/ModalBasicLayout.js";export{default as ModalMediaLayout}from"./Modal/layouts/ModalMediaLayout/ModalMediaLayout.js";export{default as ModalSideBySideLayout}from"./Modal/layouts/ModalSideBySideLayout/ModalSideBySideLayout.js";export{default as Modal}from"./Modal/Modal/Modal.js";export{default as ModalHeader}from"./Modal/ModalHeader/ModalHeader.js";export{default as ModalContent}from"./Modal/ModalContent/ModalContent.js";export{default as ModalMedia}from"./Modal/ModalMedia/ModalMedia.js";export{default as AttentionBox}from"./next/AttentionBox/AttentionBox.js";export{default as Dropdown}from"./next/Dropdown/Dropdown.js";
2
2
  //# sourceMappingURL=next.js.map
@@ -1,2 +1,2 @@
1
- import{inherits as e,createClass as n,toConsumableArray as o,classCallCheck as t,callSuper as i}from"../../../_virtual/_rollupPluginBabelHelpers.js";import s from"classnames";import r,{PureComponent as a}from"react";import{createPortal as l}from"react-dom";import{Manager as u,Reference as h,Popper as d}from"react-popper";import{isFunction as c}from"es-toolkit";import{NOOP as p,chainRefFunctions as m,chainFunctions as f,convertToArray as g}from"../../utils/function-utils.js";import v from"./DialogContent/DialogContent.js";import{isInsideClass as D}from"../../utils/dom-utils.js";import{Refable as y}from"../Refable/Refable.js";import{HideShowEvent as w,DialogPosition as E,AnimationType as C}from"./DialogConstants.js";import k from"./Dialog.module.scss.js";import{getTestId as T,ComponentDefaultTestId as b}from"../../tests/testIds.js";import S from"../LayerProvider/LayerContext.js";import O from"../LayerProvider/LayerProvider.js";import{isClient as M}from"../../utils/ssr-utils.js";import{createObserveContentResizeModifier as x}from"./modifiers/observeContentResizeModifier.js";var H=function(p){function f(e){var n;return t(this,f),(n=i(this,f,[e])).state={shouldUseDerivedStateFromProps:e.useDerivedStateFromProps,isOpen:e.shouldShowOnMount},n.containerRef=r.createRef(),n.onMouseEnter=n.onMouseEnter.bind(n),n.onMouseLeave=n.onMouseLeave.bind(n),n.onMouseDown=n.onMouseDown.bind(n),n.onClick=n.onClick.bind(n),n.onFocus=n.onFocus.bind(n),n.onBlur=n.onBlur.bind(n),n.isShown=n.isShown.bind(n),n.onEsc=n.onEsc.bind(n),n.onClickOutside=n.onClickOutside.bind(n),n.onDialogEnter=n.onDialogEnter.bind(n),n.onDialogLeave=n.onDialogLeave.bind(n),n.getContainer=n.getContainer.bind(n),n.onContentClick=n.onContentClick.bind(n),n.onKeyDown=n.onKeyDown.bind(n),n.closeDialogOnEscape=n.closeDialogOnEscape.bind(n),n.onContextMenu=n.onContextMenu.bind(n),n.getDefaultContainer=n.getDefaultContainer.bind(n),n.hideTimeout=null,n.showTimeout=null,n}return e(f,a),n(f,[{key:"closeDialogOnEscape",value:function(e){if(this.state.isOpen)switch(e.key){case"Escape":this.hideDialogIfNeeded(e,w.ESCAPE_KEY);break;case"Tab":this.handleEvent(w.TAB_KEY,e.target,e);break;case"Enter":this.handleEvent(w.ENTER,e.target,e)}}},{key:"componentDidMount",value:function(){var e=this.props,n=e.shouldCallbackOnMount,o=e.onDialogDidShow,t=this.state.isOpen;M()&&document.addEventListener("keyup",this.closeDialogOnEscape),n&&t&&o&&o()}},{key:"componentWillUnmount",value:function(){M()&&document.removeEventListener("keyup",this.closeDialogOnEscape),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}},{key:"getDefaultContainer",value:function(){var e=this.context.layerRef;return(null==e?void 0:e.current)?e.current:document.body}},{key:"getContainer",value:function(){var e=this.props.containerSelector;if(!e)return this.getDefaultContainer();var n=document.querySelector(e);return n&&n instanceof Element?n:this.getDefaultContainer()}},{key:"showDialog",value:function(e,n){var o=this,t=this.props,i=t.instantShowAndHide,s=t.getDynamicShowDelay,r=t.showDelay,a=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).preventAnimation;if(s){var l=s();r=l.showDelay||0,a=a||l.preventAnimation}i?(this.onShowDialog(e,n),this.setState({isOpen:!0,preventAnimation:a}),this.showTimeout=null):this.showTimeout=setTimeout((function(){o.onShowDialog(e,n),o.showTimeout=null,o.setState({isOpen:!0,preventAnimation:a})}),r)}},{key:"onShowDialog",value:function(e,n){this.isShown()||(0,this.props.onDialogDidShow)(e,n)}},{key:"showDialogIfNeeded",value:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.props.disable||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout||this.showDialog(e,n,o))}},{key:"hideDialog",value:function(e,n){var o=this,t=this.props,i=t.hideDelay;t.instantShowAndHide?(this.onHideDialog(e,n),this.setState({isOpen:!1}),this.hideTimeout=null):this.hideTimeout=setTimeout((function(){o.onHideDialog(e,n),o.setState({isOpen:!1}),o.hideTimeout=null}),i)}},{key:"onHideDialog",value:function(e,n){var o=this.props.onDialogDidHide;o&&o(e,n)}},{key:"hideDialogIfNeeded",value:function(e,n){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout||this.hideDialog(e,n)}},{key:"handleEvent",value:function(e,n,o){var t=this.props,i=t.showTriggerIgnoreClass,s=t.hideTriggerIgnoreClass;return!this.isShowTrigger(e)||this.isShown()||D(n,i)?this.isHideTrigger(e)&&!D(n,s)?this.hideDialogIfNeeded(o,e):void 0:this.showDialogIfNeeded(o,e)}},{key:"isShown",value:function(){return this.state.isOpen||this.props.open}},{key:"isShowTrigger",value:function(e){var n=this.props,o=n.addKeyboardHideShowTriggersByDefault,t=g(n.showTrigger);return!(!o||"focus"!==e||-1>=t.indexOf("mouseenter"))||t.indexOf(e)>-1}},{key:"isHideTrigger",value:function(e){var n=this.props,o=n.addKeyboardHideShowTriggersByDefault,t=g(n.hideTrigger);return!(!o||"blur"!==e||-1>=t.indexOf("mouseleave"))||t.indexOf(e)>-1}},{key:"onMouseEnter",value:function(e){this.handleEvent("mouseenter",e.target,e)}},{key:"onMouseLeave",value:function(e){this.handleEvent("mouseleave",e.target,e)}},{key:"onClick",value:function(e){e.button||this.handleEvent("click",e.target,e)}},{key:"onKeyDown",value:function(e){"Enter"===e.key&&this.handleEvent("enter",e.target,e),"Tab"===e.key&&this.handleEvent("tab",e.target,e)}},{key:"onMouseDown",value:function(e){e.button||this.handleEvent("mousedown",e.target,e)}},{key:"onFocus",value:function(e){this.handleEvent("focus",e.target,e)}},{key:"onBlur",value:function(e){this.handleEvent("blur",e.relatedTarget,e)}},{key:"onEsc",value:function(e){this.handleEvent("esckey",e.target,e)}},{key:"onContextMenu",value:function(e){var n=this.isShown();(this.isShowTrigger("contextmenu")&&!n||this.isHideTrigger("contextmenu")&&n)&&e.preventDefault(),this.handleEvent("contextmenu",e.target,e)}},{key:"onClickOutside",value:function(e){var n=this.props.onClickOutside;this.handleEvent("clickoutside",e.target,e),n(e)}},{key:"onDialogEnter",value:function(e){this.props.showOnDialogEnter&&this.showDialogIfNeeded(e,"DialogEnter")}},{key:"onDialogLeave",value:function(e){this.props.showOnDialogEnter&&this.hideDialogIfNeeded(e,"DialogLeave")}},{key:"onContentClick",value:function(e){var n=this.props.onContentClick;this.handleEvent("onContentClick",e.target,e),n(e)}},{key:"render",value:function(){var e=this,n=this.props,t=n.wrapperClassName,i=n.content,a=n.startingEdge,p=n.children,f=n.preventAnimationOnMount,g=n.animationType,D=n.position,w=n.showDelay,E=n.moveBy,C=n.modifiers,S=n.tooltip,H=n.tooltipClassName,R=n.referenceWrapperClassName,N=n.referenceWrapperElement,A=n.zIndex,I=n.hideWhenReferenceHidden,j=n.disableContainerScroll,P=n.containerSelector,B=n.observeContentResize,F=n.enableNestedDialogLayer,K=this.state.preventAnimation,z=n["data-testid"]||T(b.DIALOG,n.id),_=f||K?void 0:g,U=c(i)?i():i;return U?r.createElement(u,null,r.createElement(h,null,(function(n){var o=n.ref;return r.createElement(y,{className:s(R),wrapperElement:N,ref:o,onBlur:L("onBlur",e,e.props),onKeyDown:L("onKeyDown",e,e.props),onClick:L("onClick",e,e.props),onFocus:L("onFocus",e,e.props),onMouseDown:L("onMouseDown",e,e.props),onMouseEnter:L("onMouseEnter",e,e.props),onMouseLeave:L("onMouseLeave",e,e.props),onContextMenu:L("onContextMenu",e,e.props)},p)})),M()&&l(r.createElement(d,{placement:D,modifiers:[{name:"offset",options:{offset:[E.secondary,E.main]}},{name:"zIndex",enabled:!0,phase:"write",fn:function(e){var n=e.state;return A&&(n.styles.popper.zIndex=A+""),n}},{name:"rotator",enabled:!0,phase:"write",fn:function(e){var n=e.state;return n.styles.arrow?(n.styles.arrow.transform="".concat(n.styles.arrow.transform," rotate(45deg)"),n):n}},x(B)].concat(o(C))},(function(n){var o=n.placement,i=n.style,l=n.ref,u=n.arrowProps,h=n.isReferenceHidden;if(!e.isShown()&&o)return null;if(I&&h){var d=new CustomEvent("onReferenceHidden");e.hideDialog(d,"onReferenceHidden")}var c=m([l,e.containerRef]),p=r.createElement(v,{"data-testid":z,isReferenceHidden:I&&h,onMouseEnter:e.onDialogEnter,onMouseLeave:e.onDialogLeave,onClickOutside:e.onClickOutside,onContextMenu:e.onContextMenu,onEsc:e.onEsc,animationType:_,position:o,wrapperClassName:t,startingEdge:a,isOpen:e.isShown(),showDelay:w,styleObject:i,ref:c,onClick:e.onContentClick,hasTooltip:!!S,containerSelector:P,disableContainerScroll:j},U,S&&r.createElement("div",{style:u.style,ref:u.ref,className:s(k.arrow,H),"data-placement":o}));return F?r.createElement(O,{layerRef:e.containerRef},p):p})),this.getContainer())):p}}],[{key:"getDerivedStateFromProps",value:function(e,n){return n.shouldUseDerivedStateFromProps?{isOpen:e.isOpen}:null}}])}();function L(e,n,o){return f([o[e],n[e]],!0)}H.hideShowTriggers=w,H.positions=E,H.animationTypes=C,H.defaultProps={position:"top",modifiers:[],moveBy:{main:0,secondary:0},showDelay:100,hideDelay:100,showTrigger:H.hideShowTriggers.MOUSE_ENTER,hideTrigger:H.hideShowTriggers.MOUSE_LEAVE,showOnDialogEnter:!1,shouldShowOnMount:!1,disable:!1,open:!1,animationType:H.animationTypes.EXPAND,preventAnimationOnMount:!1,tooltip:!1,onDialogDidShow:p,onDialogDidHide:p,onClickOutside:p,onContentClick:p,useDerivedStateFromProps:!1,hideWhenReferenceHidden:!1,shouldCallbackOnMount:!1,instantShowAndHide:!1,addKeyboardHideShowTriggersByDefault:!1,observeContentResize:!1,enableNestedDialogLayer:!1},H.contextType=S;export{H as default};
1
+ import{inherits as e,createClass as n,toConsumableArray as o,classCallCheck as t,callSuper as i}from"../../../_virtual/_rollupPluginBabelHelpers.js";import s from"classnames";import r,{PureComponent as a}from"react";import{createPortal as l}from"react-dom";import{Manager as u,Reference as h,Popper as d}from"react-popper";import{isFunction as c}from"es-toolkit";import{NOOP as p,chainRefFunctions as m,chainFunctions as f,convertToArray as g}from"../../utils/function-utils.js";import v from"./DialogContent/DialogContent.js";import{isInsideClass as D}from"../../utils/dom-utils.js";import{Refable as y}from"../Refable/Refable.js";import{HideShowEvent as w,DialogPosition as E,AnimationType as C}from"./DialogConstants.js";import k from"./Dialog.module.scss.js";import{getTestId as T,ComponentDefaultTestId as S}from"../../tests/testIds.js";import b from"../LayerProvider/LayerContext.js";import O from"../LayerProvider/LayerProvider.js";import{isClient as M}from"../../utils/ssr-utils.js";import{createObserveContentResizeModifier as x}from"./modifiers/observeContentResizeModifier.js";var H=function(p){function f(e){var n;return t(this,f),(n=i(this,f,[e])).state={shouldUseDerivedStateFromProps:e.useDerivedStateFromProps,isOpen:e.shouldShowOnMount},n.containerRef=r.createRef(),n.onMouseEnter=n.onMouseEnter.bind(n),n.onMouseLeave=n.onMouseLeave.bind(n),n.onMouseDown=n.onMouseDown.bind(n),n.onClick=n.onClick.bind(n),n.onFocus=n.onFocus.bind(n),n.onBlur=n.onBlur.bind(n),n.isShown=n.isShown.bind(n),n.onEsc=n.onEsc.bind(n),n.onClickOutside=n.onClickOutside.bind(n),n.onDialogEnter=n.onDialogEnter.bind(n),n.onDialogLeave=n.onDialogLeave.bind(n),n.getContainer=n.getContainer.bind(n),n.onContentClick=n.onContentClick.bind(n),n.onKeyDown=n.onKeyDown.bind(n),n.closeDialogOnEscape=n.closeDialogOnEscape.bind(n),n.onContextMenu=n.onContextMenu.bind(n),n.getDefaultContainer=n.getDefaultContainer.bind(n),n.hideTimeout=null,n.showTimeout=null,n}return e(f,a),n(f,[{key:"closeDialogOnEscape",value:function(e){if(this.state.isOpen)switch(e.key){case"Escape":this.hideDialogIfNeeded(e,w.ESCAPE_KEY);break;case"Tab":this.handleEvent(w.TAB_KEY,e.target,e);break;case"Enter":this.handleEvent(w.ENTER,e.target,e)}}},{key:"componentDidMount",value:function(){var e=this.props,n=e.shouldCallbackOnMount,o=e.onDialogDidShow,t=this.state.isOpen;M()&&document.addEventListener("keyup",this.closeDialogOnEscape),n&&t&&o&&o()}},{key:"componentWillUnmount",value:function(){M()&&document.removeEventListener("keyup",this.closeDialogOnEscape),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null)}},{key:"getDefaultContainer",value:function(){var e=this.context.layerRef;return(null==e?void 0:e.current)?e.current:document.body}},{key:"getContainer",value:function(){var e=this.props.containerSelector;if(!e)return this.getDefaultContainer();var n=document.querySelector(e);return n&&n instanceof Element?n:this.getDefaultContainer()}},{key:"showDialog",value:function(e,n){var o=this,t=this.props,i=t.instantShowAndHide,s=t.getDynamicShowDelay,r=t.showDelay,a=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).preventAnimation;if(s){var l=s();r=l.showDelay||0,a=a||l.preventAnimation}i?(this.onShowDialog(e,n),this.setState({isOpen:!0,preventAnimation:a}),this.showTimeout=null):this.showTimeout=setTimeout((function(){o.onShowDialog(e,n),o.showTimeout=null,o.setState({isOpen:!0,preventAnimation:a})}),r)}},{key:"onShowDialog",value:function(e,n){this.isShown()||(0,this.props.onDialogDidShow)(e,n)}},{key:"showDialogIfNeeded",value:function(e,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.props.disable||(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=null),this.showTimeout||this.showDialog(e,n,o))}},{key:"hideDialog",value:function(e,n){var o=this,t=this.props,i=t.hideDelay;t.instantShowAndHide?(this.onHideDialog(e,n),this.setState({isOpen:!1}),this.hideTimeout=null):this.hideTimeout=setTimeout((function(){o.onHideDialog(e,n),o.setState({isOpen:!1}),o.hideTimeout=null}),i)}},{key:"onHideDialog",value:function(e,n){var o=this.props.onDialogDidHide;o&&o(e,n)}},{key:"hideDialogIfNeeded",value:function(e,n){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.hideTimeout||this.hideDialog(e,n)}},{key:"handleEvent",value:function(e,n,o){var t=this.props,i=t.showTriggerIgnoreClass,s=t.hideTriggerIgnoreClass;return!this.isShowTrigger(e)||this.isShown()||D(n,i)?this.isHideTrigger(e)&&!D(n,s)?this.hideDialogIfNeeded(o,e):void 0:this.showDialogIfNeeded(o,e)}},{key:"isShown",value:function(){return this.state.isOpen||this.props.open}},{key:"isShowTrigger",value:function(e){var n=this.props,o=n.addKeyboardHideShowTriggersByDefault,t=g(n.showTrigger);return!(!o||"focus"!==e||-1>=t.indexOf("mouseenter"))||t.indexOf(e)>-1}},{key:"isHideTrigger",value:function(e){var n=this.props,o=n.addKeyboardHideShowTriggersByDefault,t=g(n.hideTrigger);return!(!o||"blur"!==e||-1>=t.indexOf("mouseleave"))||t.indexOf(e)>-1}},{key:"onMouseEnter",value:function(e){this.handleEvent("mouseenter",e.target,e)}},{key:"onMouseLeave",value:function(e){this.handleEvent("mouseleave",e.target,e)}},{key:"onClick",value:function(e){e.button||this.handleEvent("click",e.target,e)}},{key:"onKeyDown",value:function(e){"Enter"===e.key&&this.handleEvent("enter",e.target,e),"Tab"===e.key&&this.handleEvent("tab",e.target,e)}},{key:"onMouseDown",value:function(e){e.button||this.handleEvent("mousedown",e.target,e)}},{key:"onFocus",value:function(e){this.handleEvent("focus",e.target,e)}},{key:"onBlur",value:function(e){this.handleEvent("blur",e.relatedTarget,e)}},{key:"onEsc",value:function(e){this.handleEvent("esckey",e.target,e)}},{key:"onContextMenu",value:function(e){var n=this.isShown();(this.isShowTrigger("contextmenu")&&!n||this.isHideTrigger("contextmenu")&&n)&&e.preventDefault(),this.handleEvent("contextmenu",e.target,e)}},{key:"onClickOutside",value:function(e){var n=this.props.onClickOutside;this.handleEvent("clickoutside",e.target,e),n(e)}},{key:"onDialogEnter",value:function(e){this.props.showOnDialogEnter&&this.showDialogIfNeeded(e,"DialogEnter")}},{key:"onDialogLeave",value:function(e){this.props.showOnDialogEnter&&this.hideDialogIfNeeded(e,"DialogLeave")}},{key:"onContentClick",value:function(e){var n=this.props.onContentClick;this.handleEvent("onContentClick",e.target,e),n(e)}},{key:"render",value:function(){var e=this,n=this.props,t=n.wrapperClassName,i=n.content,a=n.startingEdge,p=n.children,f=n.preventAnimationOnMount,g=n.animationType,D=n.position,w=n.showDelay,E=n.moveBy,C=n.modifiers,b=n.tooltip,H=n.tooltipClassName,R=n.referenceWrapperClassName,A=n.referenceWrapperElement,N=n.zIndex,I=n.hideWhenReferenceHidden,j=n.disableContainerScroll,P=n.containerSelector,B=n.observeContentResize,F=this.state.preventAnimation,K=n["data-testid"]||T(S.DIALOG,n.id),z=f||F?void 0:g,_=c(i)?i():i;return _?r.createElement(u,null,r.createElement(h,null,(function(n){var o=n.ref;return r.createElement(y,{className:s(R),wrapperElement:A,ref:o,onBlur:L("onBlur",e,e.props),onKeyDown:L("onKeyDown",e,e.props),onClick:L("onClick",e,e.props),onFocus:L("onFocus",e,e.props),onMouseDown:L("onMouseDown",e,e.props),onMouseEnter:L("onMouseEnter",e,e.props),onMouseLeave:L("onMouseLeave",e,e.props),onContextMenu:L("onContextMenu",e,e.props)},p)})),M()&&l(r.createElement(d,{placement:D,modifiers:[{name:"offset",options:{offset:[E.secondary,E.main]}},{name:"zIndex",enabled:!0,phase:"write",fn:function(e){var n=e.state;return N&&(n.styles.popper.zIndex=N+""),n}},{name:"rotator",enabled:!0,phase:"write",fn:function(e){var n=e.state;return n.styles.arrow?(n.styles.arrow.transform="".concat(n.styles.arrow.transform," rotate(45deg)"),n):n}},x(B)].concat(o(C))},(function(n){var o=n.placement,i=n.style,l=n.ref,u=n.arrowProps,h=n.isReferenceHidden;if(!e.isShown()&&o)return null;if(I&&h){var d=new CustomEvent("onReferenceHidden");e.hideDialog(d,"onReferenceHidden")}var c=m([l,e.containerRef]);return r.createElement(O,{layerRef:e.containerRef},r.createElement(v,{"data-testid":K,isReferenceHidden:I&&h,onMouseEnter:e.onDialogEnter,onMouseLeave:e.onDialogLeave,onClickOutside:e.onClickOutside,onContextMenu:e.onContextMenu,onEsc:e.onEsc,animationType:z,position:o,wrapperClassName:t,startingEdge:a,isOpen:e.isShown(),showDelay:w,styleObject:i,ref:c,onClick:e.onContentClick,hasTooltip:!!b,containerSelector:P,disableContainerScroll:j},_,b&&r.createElement("div",{style:u.style,ref:u.ref,className:s(k.arrow,H),"data-placement":o})))})),this.getContainer())):p}}],[{key:"getDerivedStateFromProps",value:function(e,n){return n.shouldUseDerivedStateFromProps?{isOpen:e.isOpen}:null}}])}();function L(e,n,o){return f([o[e],n[e]],!0)}H.hideShowTriggers=w,H.positions=E,H.animationTypes=C,H.defaultProps={position:"top",modifiers:[],moveBy:{main:0,secondary:0},showDelay:100,hideDelay:100,showTrigger:H.hideShowTriggers.MOUSE_ENTER,hideTrigger:H.hideShowTriggers.MOUSE_LEAVE,showOnDialogEnter:!1,shouldShowOnMount:!1,disable:!1,open:!1,animationType:H.animationTypes.EXPAND,preventAnimationOnMount:!1,tooltip:!1,onDialogDidShow:p,onDialogDidHide:p,onClickOutside:p,onContentClick:p,useDerivedStateFromProps:!1,hideWhenReferenceHidden:!1,shouldCallbackOnMount:!1,instantShowAndHide:!1,addKeyboardHideShowTriggersByDefault:!1,observeContentResize:!1},H.contextType=b;export{H as default};
2
2
  //# sourceMappingURL=Dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport { chainFunctions, chainRefFunctions, convertToArray, NOOP } from \"../../utils/function-utils\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { isInsideClass } from \"../../utils/dom-utils\";\nimport { Refable } from \"../Refable/Refable\";\nimport {\n AnimationType as AnimationTypeEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogPosition as DialogPositionEnum\n} from \"./DialogConstants\";\nimport { type VibeComponentProps } from \"../../types\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { type DialogAnimationType, type DialogPosition, type DialogTriggerEvent } from \"./Dialog.types\";\nimport LayerContext from \"../LayerProvider/LayerContext\";\nimport { LayerProvider } from \"../LayerProvider\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n /**\n * If true, provides a LayerProvider context for nested dialogs to render correctly.\n * This is useful when you have components that use Dialog internally (like Dropdown)\n * inside another Dialog, ensuring proper z-index stacking and click-outside behavior.\n */\n enableNestedDialogLayer?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport type DialogEvent = React.MouseEvent | React.KeyboardEvent | KeyboardEvent | React.FocusEvent | CustomEvent;\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static hideShowTriggers = DialogTriggerEventEnum;\n static positions = DialogPositionEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: Dialog.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Dialog.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: Dialog.animationTypes.EXPAND,\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false,\n enableNestedDialogLayer: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, DialogTriggerEventEnum.ESCAPE_KEY);\n break;\n case \"Tab\":\n this.handleEvent(DialogTriggerEventEnum.TAB_KEY, event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(DialogTriggerEventEnum.ENTER, event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n enableNestedDialogLayer,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n const dialogContent = (\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n );\n\n return enableNestedDialogLayer ? (\n <LayerProvider layerRef={this.containerRef}>{dialogContent}</LayerProvider>\n ) : (\n dialogContent\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","_PureComponent","props","_this","_classCallCheck","_callSuper","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","_inherits","PureComponent","_createClass","key","value","event","this","hideDialogIfNeeded","DialogTriggerEventEnum","ESCAPE_KEY","handleEvent","TAB_KEY","target","ENTER","_this$props","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","removeEventListener","clearTimeout","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","eventName","_this2","_this$props2","instantShowAndHide","getDynamicShowDelay","finalShowDelay","showDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","options","arguments","length","undefined","disable","showDialog","_this3","_this$props3","hideDelay","onHideDialog","onDialogDidHide","hideDialog","_this$props4","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","showDialogIfNeeded","open","_this$props5","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","showTrigger","indexOf","_this$props6","hideTriggersArray","hideTrigger","e","button","relatedTarget","preventDefault","showOnDialogEnter","_this4","_this$props7","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","enableNestedDialogLayer","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","id","animationTypeCalculated","contentRendered","isFunction","Manager","createElement","Reference","_ref","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","_ref2","styles","popper","String","_ref3","arrow","transform","concat","createObserveContentResizeModifier","_toConsumableArray","_ref4","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","dialogContent","DialogContent","styleObject","hasTooltip","LayerProvider","nextProps","instance","chainFunctions","hideShowTriggers","positions","DialogPositionEnum","animationTypes","AnimationTypeEnum","defaultProps","MOUSE_ENTER","MOUSE_LEAVE","EXPAND","NOOP","contextType","LayerContext"],"mappings":"gkCAkNqBA,IAAAA,WAAOC,GAoC1B,SAAAD,EAAYE,GAAkB,IAAAC,EA8BJ,OA9BIC,OAAAJ,IAC5BG,EAAAE,EAAAL,KAAAA,GAAME,KACDI,MAAQ,CACXC,+BAAgCL,EAAMM,yBACtCC,OAAQP,EAAMQ,mBAGhBP,EAAKQ,aAAeC,EAAMC,YAG1BV,EAAKW,aAAeX,EAAKW,aAAaC,KAAIZ,GAC1CA,EAAKa,aAAeb,EAAKa,aAAaD,KAAIZ,GAC1CA,EAAKc,YAAcd,EAAKc,YAAYF,KAAIZ,GACxCA,EAAKe,QAAUf,EAAKe,QAAQH,KAAIZ,GAChCA,EAAKgB,QAAUhB,EAAKgB,QAAQJ,KAAIZ,GAChCA,EAAKiB,OAASjB,EAAKiB,OAAOL,KAAIZ,GAC9BA,EAAKkB,QAAUlB,EAAKkB,QAAQN,KAAIZ,GAChCA,EAAKmB,MAAQnB,EAAKmB,MAAMP,KAAIZ,GAC5BA,EAAKoB,eAAiBpB,EAAKoB,eAAeR,KAAIZ,GAC9CA,EAAKqB,cAAgBrB,EAAKqB,cAAcT,KAAIZ,GAC5CA,EAAKsB,cAAgBtB,EAAKsB,cAAcV,KAAIZ,GAC5CA,EAAKuB,aAAevB,EAAKuB,aAAaX,KAAIZ,GAC1CA,EAAKwB,eAAiBxB,EAAKwB,eAAeZ,KAAIZ,GAC9CA,EAAKyB,UAAYzB,EAAKyB,UAAUb,KAAIZ,GACpCA,EAAK0B,oBAAsB1B,EAAK0B,oBAAoBd,KAAIZ,GACxDA,EAAK2B,cAAgB3B,EAAK2B,cAAcf,KAAIZ,GAC5CA,EAAK4B,oBAAsB5B,EAAK4B,oBAAoBhB,KAAIZ,GAGxDA,EAAK6B,YAAc,KACnB7B,EAAK8B,YAAc,KAAK9B,CAC1B,CAAC,OAAA+B,EAAAlC,EAnEiCmC,GAmEjCC,EAAApC,EAAA,CAAA,CAAAqC,IAAA,sBAAAC,MAED,SAAoBC,GAElB,GADmBC,KAAKlC,MAAhBG,OAIR,OAAQ8B,EAAMF,KACZ,IAAK,SACHG,KAAKC,mBAAmBF,EAAOG,EAAuBC,YACtD,MACF,IAAK,MACHH,KAAKI,YAAYF,EAAuBG,QAASN,EAAMO,OAAQP,GAC/D,MACF,IAAK,QACHC,KAAKI,YAAYF,EAAuBK,MAAOR,EAAMO,OAAQP,GAKnE,GAAC,CAAAF,IAAA,oBAAAC,MAED,WACE,IAAAU,EAAmDR,KAAKtC,MAAhD+C,EAAqBD,EAArBC,sBAAuBC,EAAeF,EAAfE,gBACvBzC,EAAW+B,KAAKlC,MAAhBG,OACJ0C,KACFC,SAASC,iBAAiB,QAASb,KAAKX,qBAEtCoB,GAAyBxC,GAC3ByC,GAAmBA,GAEvB,GAAC,CAAAb,IAAA,uBAAAC,MAED,WACMa,KACFC,SAASE,oBAAoB,QAASd,KAAKX,qBAEzCW,KAAKP,cACPsB,aAAaf,KAAKP,aAClBO,KAAKP,YAAc,MAEjBO,KAAKR,cACPuB,aAAaf,KAAKR,aAClBQ,KAAKR,YAAc,KAEvB,GAAC,CAAAK,IAAA,sBAAAC,MASD,WACE,IAAQkB,EAAahB,KAAKiB,QAAlBD,SACR,OAAIA,eAAAA,EAAUE,SACLF,EAASE,QAEXN,SAASO,IAClB,GAAC,CAAAtB,IAAA,eAAAC,MAED,WACE,IAAQsB,EAAsBpB,KAAKtC,MAA3B0D,kBACR,IAAKA,EACH,OAAOpB,KAAKT,sBAGd,IAAM8B,EAAmBT,SAASU,cAAcF,GAChD,OAAKC,GAAsBA,aAA4BE,QAGhDF,EAFErB,KAAKT,qBAGhB,GAAC,CAAAM,IAAA,aAAAC,MAED,SAAWC,EAAoByB,GAAoF,IAAAC,EAAAzB,KACjH0B,EAA+D1B,KAAKtC,MAAjDiE,EAAkBD,EAAlBC,mBAAoBC,EAAmBF,EAAnBE,oBACnCC,EADaH,EAATI,UAEJC,0DAH2G,CAAA,GAGhFA,iBAC/B,GAAIH,EAAqB,CACvB,IAAMI,EAAkBJ,IACxBC,EAAiBG,EAAgBF,WAAa,EAC9CC,EAAmBA,GAAoBC,EAAgBD,gBACxD,CAEGJ,GACF3B,KAAKiC,aAAalC,EAAOyB,GACzBxB,KAAKkC,SAAS,CAAEjE,QAAQ,EAAM8D,iBAAAA,IAC9B/B,KAAKP,YAAc,MAEnBO,KAAKP,YAAc0C,YAAW,WAC5BV,EAAKQ,aAAalC,EAAOyB,GACzBC,EAAKhC,YAAc,KACnBgC,EAAKS,SAAS,CAAEjE,QAAQ,EAAM8D,iBAAAA,GAC/B,GAAEF,EAEP,GAAC,CAAAhC,IAAA,eAAAC,MAED,SAAaC,EAAoByB,GAC3BxB,KAAKnB,YAET6B,EAD4BV,KAAKtC,MAAzBgD,iBACQX,EAAOyB,EACzB,GAAC,CAAA3B,IAAA,qBAAAC,MAED,SAAmBC,EAAoByB,GAAoD,IAAZY,EAAOC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAA,EACnErC,KAAKtC,MAAjB8E,UAKJxC,KAAKR,cACPuB,aAAaf,KAAKR,aAClBQ,KAAKR,YAAc,MAGhBQ,KAAKP,aACRO,KAAKyC,WAAW1C,EAAOyB,EAAWY,GAEtC,GAAC,CAAAvC,IAAA,aAAAC,MAED,SAAWC,EAAoByB,GAAsC,IAAAkB,EAAA1C,KACnE2C,EAA0C3C,KAAKtC,MAAvCkF,EAASD,EAATC,UAA6BD,EAAlBhB,oBAEjB3B,KAAK6C,aAAa9C,EAAOyB,GACzBxB,KAAKkC,SAAS,CAAEjE,QAAQ,IACxB+B,KAAKR,YAAc,MAEnBQ,KAAKR,YAAc2C,YAAW,WAC5BO,EAAKG,aAAa9C,EAAOyB,GACzBkB,EAAKR,SAAS,CAAEjE,QAAQ,IACxByE,EAAKlD,YAAc,IACpB,GAAEoD,EAEP,GAAC,CAAA/C,IAAA,eAAAC,MAED,SAAaC,EAAoByB,GAC/B,IAAQsB,EAAoB9C,KAAKtC,MAAzBoF,gBACJA,GAAiBA,EAAgB/C,EAAOyB,EAC9C,GAAC,CAAA3B,IAAA,qBAAAC,MAED,SAAmBC,EAAoByB,GACjCxB,KAAKP,cACPsB,aAAaf,KAAKP,aAClBO,KAAKP,YAAc,MAGjBO,KAAKR,aAGTQ,KAAK+C,WAAWhD,EAAOyB,EACzB,GAAC,CAAA3B,IAAA,cAAAC,MAED,SAAY0B,EAA+BlB,EAAqBP,GAC9D,IAAAiD,EAA2DhD,KAAKtC,MAAxDuF,EAAsBD,EAAtBC,uBAAwBC,EAAsBF,EAAtBE,uBAChC,OACElD,KAAKmD,cAAc3B,IAClBxB,KAAKnB,WACLuE,EAAc9C,EAAuB2C,GAKpCjD,KAAKqD,cAAc7B,KAAe4B,EAAc9C,EAAuB4C,GAClElD,KAAKC,mBAAmBF,EAAOyB,QADxC,EAHSxB,KAAKsD,mBAAmBvD,EAAOyB,EAM1C,GAAC,CAAA3B,IAAA,UAAAC,MAED,WAIE,OAHmBE,KAAKlC,MAAhBG,QACS+B,KAAKtC,MAAd6F,IAGV,GAAC,CAAA1D,IAAA,gBAAAC,MAED,SAAc0B,GACZ,IAAAgC,EAA8DxD,KAAKtC,MAA9C+F,EAAoCD,EAApCC,qCACfC,EAAoBC,EADPH,EAAXI,aAGR,SAAIH,GACgB,UAAdjC,IAAoE,GAA3CkC,EAAkBG,QAAQ,gBAKlDH,EAAkBG,QAAQrC,IAAc,CACjD,GAAC,CAAA3B,IAAA,gBAAAC,MAED,SAAc0B,GACZ,IAAAsC,EAA8D9D,KAAKtC,MAA9C+F,EAAoCK,EAApCL,qCACfM,EAAoBJ,EADPG,EAAXE,aAGR,SAAIP,GACgB,SAAdjC,IAAmE,GAA3CuC,EAAkBF,QAAQ,gBAKjDE,EAAkBF,QAAQrC,IAAc,CACjD,GAAC,CAAA3B,IAAA,eAAAC,MAED,SAAamE,GACXjE,KAAKI,YAAY,aAAc6D,EAAE3D,OAAQ2D,EAC3C,GAAC,CAAApE,IAAA,eAAAC,MAED,SAAamE,GACXjE,KAAKI,YAAY,aAAc6D,EAAE3D,OAAQ2D,EAC3C,GAAC,CAAApE,IAAA,UAAAC,MAED,SAAQmE,GACFA,EAAEC,QACNlE,KAAKI,YAAY,QAAS6D,EAAE3D,OAAQ2D,EACtC,GAAC,CAAApE,IAAA,YAAAC,MAED,SAAUC,GACU,UAAdA,EAAMF,KACRG,KAAKI,YAAY,QAASL,EAAMO,OAAQP,GAGxB,QAAdA,EAAMF,KACRG,KAAKI,YAAY,MAAOL,EAAMO,OAAQP,EAE1C,GAAC,CAAAF,IAAA,cAAAC,MAED,SAAYmE,GACNA,EAAEC,QACNlE,KAAKI,YAAY,YAAa6D,EAAE3D,OAAQ2D,EAC1C,GAAC,CAAApE,IAAA,UAAAC,MAED,SAAQmE,GACNjE,KAAKI,YAAY,QAAS6D,EAAE3D,OAAQ2D,EACtC,GAAC,CAAApE,IAAA,SAAAC,MAED,SAAOmE,GACLjE,KAAKI,YAAY,OAAQ6D,EAAEE,cAAeF,EAC5C,GAAC,CAAApE,IAAA,QAAAC,MAED,SAAMmE,GACJjE,KAAKI,YAAY,SAAU6D,EAAE3D,OAAQ2D,EACvC,GAAC,CAAApE,IAAA,gBAAAC,MAED,SAAcmE,GACZ,IAAMpF,EAAUmB,KAAKnB,WAChBmB,KAAKmD,cAAc,iBAAmBtE,GAAamB,KAAKqD,cAAc,gBAAkBxE,IAC3FoF,EAAEG,iBAEJpE,KAAKI,YAAY,cAAe6D,EAAE3D,OAAQ2D,EAC5C,GAAC,CAAApE,IAAA,iBAAAC,MAED,SAAeC,GACb,IAAQhB,EAAmBiB,KAAKtC,MAAxBqB,eACRiB,KAAKI,YAAY,eAAgBL,EAAMO,OAAQP,GAC/ChB,EAAegB,EACjB,GAAC,CAAAF,IAAA,gBAAAC,MAED,SAAcC,GACkBC,KAAKtC,MAA3B2G,mBACerE,KAAKsD,mBAAmBvD,EAAO,cACxD,GAAC,CAAAF,IAAA,gBAAAC,MAED,SAAcC,GACkBC,KAAKtC,MAA3B2G,mBACerE,KAAKC,mBAAmBF,EAAO,cACxD,GAAC,CAAAF,IAAA,iBAAAC,MAED,SAAemE,GACb,IAAQ9E,EAAmBa,KAAKtC,MAAxByB,eACRa,KAAKI,YAAY,iBAAkB6D,EAAE3D,OAAQ2D,GAC7C9E,EAAe8E,EACjB,GAAC,CAAApE,IAAA,SAAAC,MAED,WAAM,IAAAwE,EAAAtE,KACJuE,EAuBIvE,KAAKtC,MAtBP8G,EAAgBD,EAAhBC,iBACAC,EAAOF,EAAPE,QACAC,EAAYH,EAAZG,aACAC,EAAQJ,EAARI,SACAC,EAAuBL,EAAvBK,wBACAC,EAAaN,EAAbM,cACAC,EAAQP,EAARO,SACAhD,EAASyC,EAATzC,UACAiD,EAAMR,EAANQ,OACAC,EAAST,EAATS,UACAC,EAAOV,EAAPU,QACAC,EAAgBX,EAAhBW,iBACAC,EAAyBZ,EAAzBY,0BACAC,EAAuBb,EAAvBa,wBACAC,EAAMd,EAANc,OACAC,EAAuBf,EAAvBe,wBACAC,EAAsBhB,EAAtBgB,uBACAnE,EAAiBmD,EAAjBnD,kBACAoE,EAAoBjB,EAApBiB,qBACAC,EAAuBlB,EAAvBkB,wBAIM1D,EAAqB/B,KAAKlC,MAA1BiE,iBACF2D,EAHqBnB,EAAzB,gBAGuCoB,EAAUC,EAAuBC,OAJtEtB,EAAFuB,IAMIC,EAA0BnB,GAA2B7C,OAAmBQ,EAAYsC,EACpFmB,EAAkBC,EAAWxB,GAAWA,IAAYA,EAE1D,OAAKuB,EAIH5H,gBAAC8H,EAAO,KACN9H,EAAA+H,cAACC,EACE,MAAA,SAAAC,GAAY,IAATC,EAAGD,EAAHC,IACF,OACElI,EAAA+H,cAACI,EAAO,CACNC,UAAWC,EAAGtB,GACduB,eAAgBtB,EAChBkB,IAAKA,EACL1H,OAAQ+H,EAAwB,SAAUrC,EAAMA,EAAK5G,OACrD0B,UAAWuH,EAAwB,YAAarC,EAAMA,EAAK5G,OAC3DgB,QAASiI,EAAwB,UAAWrC,EAAMA,EAAK5G,OACvDiB,QAASgI,EAAwB,UAAWrC,EAAMA,EAAK5G,OACvDe,YAAakI,EAAwB,cAAerC,EAAMA,EAAK5G,OAC/DY,aAAcqI,EAAwB,eAAgBrC,EAAMA,EAAK5G,OACjEc,aAAcmI,EAAwB,eAAgBrC,EAAMA,EAAK5G,OACjE4B,cAAeqH,EAAwB,gBAAiBrC,EAAMA,EAAK5G,QAElEiH,EAGP,IAEDhE,KACCiG,EACExI,gBAACyI,EAAM,CACLC,UAAWhC,EACXE,UACE,CAAA,CACE+B,KAAM,SACN3E,QAAS,CACP4E,OAAQ,CAACjC,EAAOkC,UAAWlC,EAAOmC,QAGtC,CACEH,KAAM,SACNI,SAAS,EACTC,MAAO,QACPC,GAAE,SAAAC,GAAU,IAAPxJ,EAAKwJ,EAALxJ,MAIH,OAHIuH,IACFvH,EAAMyJ,OAAOC,OAAOnC,OAAgBA,EAAPoC,IAExB3J,CACT,GAEF,CACEiJ,KAAM,UACNI,SAAS,EACTC,MAAO,QACPC,GAAE,SAAAK,GAAU,IAAP5J,EAAK4J,EAAL5J,MACH,OAAKA,EAAMyJ,OAAOI,OAUlB7J,EAAMyJ,OAAOI,MAAMC,UAASC,GAAAA,OAAM/J,EAAMyJ,OAAOI,MAAMC,UAAyB,kBACvE9J,GAVEA,CAWX,GAEFgK,EAAmCtC,IAAqBqC,OAAAE,EACrD/C,MAGJ,SAAAgD,GAA6D,IAA1DlB,EAASkB,EAATlB,UAAWmB,EAAKD,EAALC,MAAO3B,EAAG0B,EAAH1B,IAAK4B,EAAUF,EAAVE,WAAYC,EAAiBH,EAAjBG,kBACrC,IAAK7D,EAAKzF,WAAaiI,EACrB,OAAO,KAGT,GAAIxB,GAA2B6C,EAAmB,CAChD,IAAMpI,EAAQ,IAAIqI,YAAY,qBAC9B9D,EAAKvB,WAAWhD,EAAO,oBACxB,CAED,IAAMsI,EAAYC,EAAkB,CAAChC,EAAKhC,EAAKnG,eAEzCoK,EACJnK,EAAA+H,cAACqC,EACc,CAAA,cAAA9C,EACbyC,kBAAmB7C,GAA2B6C,EAC9C7J,aAAcgG,EAAKtF,cACnBR,aAAc8F,EAAKrF,cACnBF,eAAgBuF,EAAKvF,eACrBO,cAAegF,EAAKhF,cACpBR,MAAOwF,EAAKxF,MACZ+F,cAAekB,EACfjB,SAAUgC,EACVtC,iBAAkBA,EAClBE,aAAcA,EACdzG,OAAQqG,EAAKzF,UACbiD,UAAWA,EACX2G,YAAaR,EACb3B,IAAK+B,EACL3J,QAAS4F,EAAKnF,eACduJ,aAAczD,EACd7D,kBAAmBA,EACnBmE,uBAAwBA,GAEvBS,EACAf,GACC7G,EACE+H,cAAA,MAAA,CAAA8B,MAAOC,EAAWD,MAClB3B,IAAK4B,EAAW5B,IAChBE,UAAWC,EAAGc,EAAOI,MAAOzC,GAAiB,iBAC7B4B,KAMxB,OAAOrB,EACLrH,EAAC+H,cAAAwC,EAAc,CAAA3H,SAAUsD,EAAKnG,cAAeoK,GAE7CA,CAEH,IAEHvI,KAAKd,iBA3HJyF,CA+HX,IAAC,CAAA,CAAA9E,IAAA,2BAAAC,MA9XD,SAAgC8I,EAAwB9K,GACtD,OAAIA,EAAMC,+BACD,CAAEE,OAAQ2K,EAAU3K,QAEtB,IACT,IAAC,IA4XH,SAAS0I,EAAwBI,EAAc8B,EAAkBnL,GAE/D,OAAOoL,EAAe,CAACpL,EAAMqJ,GAAO8B,EAAS9B,KAAQ,EACvD,CArfSvJ,EAAgBuL,iBAAG7I,EACnB1C,EAASwL,UAAGC,EACZzL,EAAc0L,eAAGC,EACjB3L,EAAA4L,aAAe,CACpBtE,SAAU,MACVE,UAAW,GACXD,OAAQ,CAAEmC,KAAM,EAAGD,UAAW,GAC9BnF,UAAW,IACXc,UAAW,IACXgB,YAAapG,EAAOuL,iBAAiBM,YACrCrF,YAAaxG,EAAOuL,iBAAiBO,YACrCjF,mBAAmB,EACnBnG,mBAAmB,EACnBsE,SAAS,EACTe,MAAM,EACNsB,cAAerH,EAAO0L,eAAeK,OACrC3E,yBAAyB,EACzBK,SAAS,EACTvE,gBAAiB8I,EACjB1G,gBAAiB0G,EACjBzK,eAAgByK,EAChBrK,eAAgBqK,EAChBxL,0BAA0B,EAC1BsH,yBAAyB,EACzB7E,uBAAuB,EACvBkB,oBAAoB,EACpB8B,sCAAsC,EACtC+B,sBAAsB,EACtBC,yBAAyB,GA2d7BjI,EAAOiM,YAAcC"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { PureComponent, type ReactElement } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Manager, type Modifier, Popper, Reference } from \"react-popper\";\nimport { isFunction } from \"es-toolkit\";\nimport { chainFunctions, chainRefFunctions, convertToArray, NOOP } from \"../../utils/function-utils\";\nimport DialogContent from \"./DialogContent/DialogContent\";\nimport { isInsideClass } from \"../../utils/dom-utils\";\nimport { Refable } from \"../Refable/Refable\";\nimport {\n AnimationType as AnimationTypeEnum,\n HideShowEvent as DialogTriggerEventEnum,\n DialogPosition as DialogPositionEnum\n} from \"./DialogConstants\";\nimport { type VibeComponentProps } from \"../../types\";\nimport type * as PopperJS from \"@popperjs/core\";\nimport styles from \"./Dialog.module.scss\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport { type DialogAnimationType, type DialogPosition, type DialogTriggerEvent } from \"./Dialog.types\";\nimport LayerContext from \"../LayerProvider/LayerContext\";\nimport { LayerProvider } from \"../LayerProvider\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport { createObserveContentResizeModifier } from \"./modifiers/observeContentResizeModifier\";\n\nexport interface DialogProps extends VibeComponentProps {\n /**\n * Class name applied to the reference wrapper element.\n */\n referenceWrapperClassName?: string;\n /**\n * The wrapper element type to use for React components. Defaults to \"span\".\n */\n referenceWrapperElement?: \"span\" | \"div\";\n /**\n * The placement of the dialog relative to the reference element.\n */\n position?: DialogPosition;\n /**\n * Custom Popper.js modifiers.\n * https://popper.js.org/docs/v2/modifiers/\n */\n modifiers?: Modifier<any>[];\n /**\n * The starting edge of the dialog.\n */\n startingEdge?: string;\n /**\n * Offset values for positioning adjustments.\n * `main` - horizontal offset\n * `secondary` - vertical offset\n */\n moveBy?: { main?: number; secondary?: number };\n /**\n * Delay in milliseconds before showing the dialog.\n */\n showDelay?: number;\n /**\n * Delay in milliseconds before hiding the dialog.\n */\n hideDelay?: number;\n /**\n * Events that trigger showing the dialog.\n */\n showTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * Events that trigger hiding the dialog.\n */\n hideTrigger?: DialogTriggerEvent | DialogTriggerEvent[];\n /**\n * If true, prevents closing the dialog when the mouse enters it.\n */\n showOnDialogEnter?: boolean;\n /**\n * If true, shows the dialog when the component mounts.\n */\n shouldShowOnMount?: boolean;\n /**\n * If true, disables opening the dialog.\n */\n disable?: boolean;\n /**\n * Controls the open state of the dialog.\n */\n open?: boolean;\n /**\n * Derived state control for managing dialog visibility.\n */\n isOpen?: boolean;\n /**\n * Classes that prevent showing the dialog when present.\n */\n showTriggerIgnoreClass?: string | Array<string>;\n /**\n * Classes that prevent hiding the dialog when present.\n */\n hideTriggerIgnoreClass?: string | Array<string>;\n /**\n * The animation type used for the dialog.\n */\n animationType?: DialogAnimationType;\n /**\n * Class name applied to the dialog content container.\n */\n wrapperClassName?: string;\n /**\n * If true, prevents animation when mounting.\n */\n preventAnimationOnMount?: boolean;\n /**\n * The CSS selector of the container where the dialog is rendered.\n */\n containerSelector?: string;\n /**\n * If true, positions the tooltip element.\n */\n tooltip?: boolean;\n /**\n * Class name applied to the tooltip element.\n */\n tooltipClassName?: string;\n /**\n * Callback fired when the dialog is shown.\n */\n onDialogDidShow?: (event?: DialogEvent, eventName?: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when the dialog is hidden.\n */\n onDialogDidHide?: (event: DialogEvent, eventName: DialogTriggerEvent | string) => void;\n /**\n * Callback fired when clicking outside the dialog.\n */\n onClickOutside?: (event: React.MouseEvent) => void;\n /**\n * Callback fired when clicking inside the dialog content.\n */\n onContentClick?: (event: React.MouseEvent) => void;\n /**\n * The z-index applied to the dialog.\n */\n zIndex?: number;\n /**\n * If true, uses derived state from props.\n */\n useDerivedStateFromProps?: boolean;\n /**\n * If true, makes the dialog disappear when the reference element is hidden.\n */\n hideWhenReferenceHidden?: boolean;\n /**\n * If true, triggers the callback when the dialog mounts.\n */\n shouldCallbackOnMount?: boolean;\n /**\n * If true, instantly shows and hides the dialog without delay.\n */\n instantShowAndHide?: boolean;\n /**\n * Callback to dynamically adjust show delay and animation behavior.\n */\n getDynamicShowDelay?: () => { showDelay: number; preventAnimation: boolean };\n /**\n * The content displayed inside the dialog.\n */\n content?: (() => JSX.Element) | JSX.Element;\n /**\n * The element to position the dialog beside.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * If true, keyboard focus/blur events behave like mouse enter/leave.\n */\n addKeyboardHideShowTriggersByDefault?: boolean;\n /**\n * If true, disables scrolling for the container element.\n */\n disableContainerScroll?: boolean | string;\n /**\n * Enables the observation of content resize for the popper element.\n * When set to `true`, a ResizeObserver is attached to the popper content,\n * automatically triggering repositioning when the size of the content changes.\n *\n * This is useful for dialogs, tooltips, or popovers with dynamic content\n * that may grow or shrink without a re-render being triggered.\n */\n observeContentResize?: boolean;\n}\n\nexport interface DialogState {\n /**\n * If true, the dialog is open.\n */\n isOpen?: boolean;\n /**\n * If true, the dialog state is derived from props.\n */\n shouldUseDerivedStateFromProps?: boolean;\n /**\n * If true, prevents animation when opening or closing the dialog.\n */\n preventAnimation?: boolean;\n}\n\nexport type DialogEvent = React.MouseEvent | React.KeyboardEvent | KeyboardEvent | React.FocusEvent | CustomEvent;\n\nexport default class Dialog extends PureComponent<DialogProps, DialogState> {\n static hideShowTriggers = DialogTriggerEventEnum;\n static positions = DialogPositionEnum;\n static animationTypes = AnimationTypeEnum;\n static defaultProps = {\n position: \"top\",\n modifiers: [] as Modifier<any>[],\n moveBy: { main: 0, secondary: 0 },\n showDelay: 100,\n hideDelay: 100,\n showTrigger: Dialog.hideShowTriggers.MOUSE_ENTER,\n hideTrigger: Dialog.hideShowTriggers.MOUSE_LEAVE,\n showOnDialogEnter: false,\n shouldShowOnMount: false,\n disable: false,\n open: false,\n animationType: Dialog.animationTypes.EXPAND,\n preventAnimationOnMount: false,\n tooltip: false,\n onDialogDidShow: NOOP,\n onDialogDidHide: NOOP,\n onClickOutside: NOOP,\n onContentClick: NOOP,\n useDerivedStateFromProps: false,\n hideWhenReferenceHidden: false,\n shouldCallbackOnMount: false,\n instantShowAndHide: false,\n addKeyboardHideShowTriggersByDefault: false,\n observeContentResize: false\n };\n private showTimeout: NodeJS.Timeout;\n private hideTimeout: NodeJS.Timeout;\n private containerRef: React.RefObject<HTMLDivElement>;\n context!: React.ContextType<typeof LayerContext>;\n\n constructor(props: DialogProps) {\n super(props);\n this.state = {\n shouldUseDerivedStateFromProps: props.useDerivedStateFromProps,\n isOpen: props.shouldShowOnMount\n };\n\n this.containerRef = React.createRef<HTMLDivElement>();\n\n // Binding section.\n this.onMouseEnter = this.onMouseEnter.bind(this);\n this.onMouseLeave = this.onMouseLeave.bind(this);\n this.onMouseDown = this.onMouseDown.bind(this);\n this.onClick = this.onClick.bind(this);\n this.onFocus = this.onFocus.bind(this);\n this.onBlur = this.onBlur.bind(this);\n this.isShown = this.isShown.bind(this);\n this.onEsc = this.onEsc.bind(this);\n this.onClickOutside = this.onClickOutside.bind(this);\n this.onDialogEnter = this.onDialogEnter.bind(this);\n this.onDialogLeave = this.onDialogLeave.bind(this);\n this.getContainer = this.getContainer.bind(this);\n this.onContentClick = this.onContentClick.bind(this);\n this.onKeyDown = this.onKeyDown.bind(this);\n this.closeDialogOnEscape = this.closeDialogOnEscape.bind(this);\n this.onContextMenu = this.onContextMenu.bind(this);\n this.getDefaultContainer = this.getDefaultContainer.bind(this);\n\n // Timeouts\n this.hideTimeout = null;\n this.showTimeout = null;\n }\n\n closeDialogOnEscape(event: KeyboardEvent) {\n const { isOpen } = this.state;\n if (!isOpen) {\n return;\n }\n switch (event.key) {\n case \"Escape\":\n this.hideDialogIfNeeded(event, DialogTriggerEventEnum.ESCAPE_KEY);\n break;\n case \"Tab\":\n this.handleEvent(DialogTriggerEventEnum.TAB_KEY, event.target, event);\n break;\n case \"Enter\":\n this.handleEvent(DialogTriggerEventEnum.ENTER, event.target, event);\n break;\n default:\n break;\n }\n }\n\n componentDidMount() {\n const { shouldCallbackOnMount, onDialogDidShow } = this.props;\n const { isOpen } = this.state;\n if (isClient()) {\n document.addEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (shouldCallbackOnMount && isOpen) {\n onDialogDidShow && onDialogDidShow();\n }\n }\n\n componentWillUnmount() {\n if (isClient()) {\n document.removeEventListener(\"keyup\", this.closeDialogOnEscape);\n }\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n }\n\n static getDerivedStateFromProps(nextProps: DialogProps, state: DialogState): DialogState {\n if (state.shouldUseDerivedStateFromProps) {\n return { isOpen: nextProps.isOpen };\n }\n return null;\n }\n\n getDefaultContainer() {\n const { layerRef } = this.context;\n if (layerRef?.current) {\n return layerRef.current;\n }\n return document.body;\n }\n\n getContainer() {\n const { containerSelector } = this.props;\n if (!containerSelector) {\n return this.getDefaultContainer();\n }\n\n const containerElement = document.querySelector(containerSelector);\n if (!containerElement || !(containerElement instanceof Element)) {\n return this.getDefaultContainer();\n }\n return containerElement;\n }\n\n showDialog(event: DialogEvent, eventName: DialogTriggerEvent | string, options: { preventAnimation?: boolean } = {}) {\n const { showDelay, instantShowAndHide, getDynamicShowDelay } = this.props;\n let finalShowDelay = showDelay;\n let preventAnimation = options.preventAnimation;\n if (getDynamicShowDelay) {\n const dynamicDelayObj = getDynamicShowDelay();\n finalShowDelay = dynamicDelayObj.showDelay || 0;\n preventAnimation = preventAnimation || dynamicDelayObj.preventAnimation;\n }\n\n if (instantShowAndHide) {\n this.onShowDialog(event, eventName);\n this.setState({ isOpen: true, preventAnimation });\n this.showTimeout = null;\n } else {\n this.showTimeout = setTimeout(() => {\n this.onShowDialog(event, eventName);\n this.showTimeout = null;\n this.setState({ isOpen: true, preventAnimation });\n }, finalShowDelay);\n }\n }\n\n onShowDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.isShown()) return;\n const { onDialogDidShow } = this.props;\n onDialogDidShow(event, eventName);\n }\n\n showDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string, options = {}) {\n const { disable } = this.props;\n if (disable) {\n return;\n }\n\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n if (!this.showTimeout) {\n this.showDialog(event, eventName, options);\n }\n }\n\n hideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { hideDelay, instantShowAndHide } = this.props;\n if (instantShowAndHide) {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n } else {\n this.hideTimeout = setTimeout(() => {\n this.onHideDialog(event, eventName);\n this.setState({ isOpen: false });\n this.hideTimeout = null;\n }, hideDelay);\n }\n }\n\n onHideDialog(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n const { onDialogDidHide } = this.props;\n if (onDialogDidHide) onDialogDidHide(event, eventName);\n }\n\n hideDialogIfNeeded(event: DialogEvent, eventName: DialogTriggerEvent | string) {\n if (this.showTimeout) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n if (this.hideTimeout) {\n return;\n }\n this.hideDialog(event, eventName);\n }\n\n handleEvent(eventName: DialogTriggerEvent, target: EventTarget, event: DialogEvent) {\n const { showTriggerIgnoreClass, hideTriggerIgnoreClass } = this.props;\n if (\n this.isShowTrigger(eventName) &&\n !this.isShown() &&\n !isInsideClass(target as HTMLElement, showTriggerIgnoreClass)\n ) {\n return this.showDialogIfNeeded(event, eventName);\n }\n\n if (this.isHideTrigger(eventName) && !isInsideClass(target as HTMLElement, hideTriggerIgnoreClass)) {\n return this.hideDialogIfNeeded(event, eventName);\n }\n }\n\n isShown() {\n const { isOpen } = this.state;\n const { open } = this.props;\n\n return isOpen || open;\n }\n\n isShowTrigger(eventName: DialogTriggerEvent) {\n const { showTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const showTriggersArray = convertToArray(showTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"focus\" && showTriggersArray.indexOf(\"mouseenter\") > -1) {\n return true;\n }\n }\n\n return showTriggersArray.indexOf(eventName) > -1;\n }\n\n isHideTrigger(eventName: DialogTriggerEvent) {\n const { hideTrigger, addKeyboardHideShowTriggersByDefault } = this.props;\n const hideTriggersArray = convertToArray(hideTrigger);\n\n if (addKeyboardHideShowTriggersByDefault) {\n if (eventName === \"blur\" && hideTriggersArray.indexOf(\"mouseleave\") > -1) {\n return true;\n }\n }\n\n return hideTriggersArray.indexOf(eventName) > -1;\n }\n\n onMouseEnter(e: React.MouseEvent) {\n this.handleEvent(\"mouseenter\", e.target, e);\n }\n\n onMouseLeave(e: React.MouseEvent) {\n this.handleEvent(\"mouseleave\", e.target, e);\n }\n\n onClick(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"click\", e.target, e);\n }\n\n onKeyDown(event: React.KeyboardEvent) {\n if (event.key === \"Enter\") {\n this.handleEvent(\"enter\", event.target, event);\n }\n\n if (event.key === \"Tab\") {\n this.handleEvent(\"tab\", event.target, event);\n }\n }\n\n onMouseDown(e: React.MouseEvent) {\n if (e.button) return;\n this.handleEvent(\"mousedown\", e.target, e);\n }\n\n onFocus(e: React.FocusEvent) {\n this.handleEvent(\"focus\", e.target, e);\n }\n\n onBlur(e: React.FocusEvent) {\n this.handleEvent(\"blur\", e.relatedTarget, e);\n }\n\n onEsc(e: React.KeyboardEvent) {\n this.handleEvent(\"esckey\", e.target, e);\n }\n\n onContextMenu(e: React.MouseEvent) {\n const isShown = this.isShown();\n if ((this.isShowTrigger(\"contextmenu\") && !isShown) || (this.isHideTrigger(\"contextmenu\") && isShown)) {\n e.preventDefault();\n }\n this.handleEvent(\"contextmenu\", e.target, e);\n }\n\n onClickOutside(event: React.MouseEvent) {\n const { onClickOutside } = this.props;\n this.handleEvent(\"clickoutside\", event.target, event);\n onClickOutside(event);\n }\n\n onDialogEnter(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.showDialogIfNeeded(event, \"DialogEnter\");\n }\n\n onDialogLeave(event: React.MouseEvent) {\n const { showOnDialogEnter } = this.props;\n if (showOnDialogEnter) this.hideDialogIfNeeded(event, \"DialogLeave\");\n }\n\n onContentClick(e: React.MouseEvent) {\n const { onContentClick } = this.props;\n this.handleEvent(\"onContentClick\", e.target, e);\n onContentClick(e);\n }\n\n render() {\n const {\n wrapperClassName,\n content,\n startingEdge,\n children,\n preventAnimationOnMount,\n animationType,\n position,\n showDelay,\n moveBy,\n modifiers,\n tooltip,\n tooltipClassName,\n referenceWrapperClassName,\n referenceWrapperElement,\n zIndex,\n hideWhenReferenceHidden,\n disableContainerScroll,\n containerSelector,\n observeContentResize,\n id,\n \"data-testid\": dataTestId\n } = this.props;\n const { preventAnimation } = this.state;\n const overrideDataTestId = dataTestId || getTestId(ComponentDefaultTestId.DIALOG, id);\n\n const animationTypeCalculated = preventAnimationOnMount || preventAnimation ? undefined : animationType;\n const contentRendered = isFunction(content) ? content() : content;\n\n if (!contentRendered) {\n return children;\n }\n return (\n <Manager>\n <Reference>\n {({ ref }) => {\n return (\n <Refable\n className={cx(referenceWrapperClassName)}\n wrapperElement={referenceWrapperElement}\n ref={ref}\n onBlur={chainOnPropsAndInstance(\"onBlur\", this, this.props)}\n onKeyDown={chainOnPropsAndInstance(\"onKeyDown\", this, this.props)}\n onClick={chainOnPropsAndInstance(\"onClick\", this, this.props)}\n onFocus={chainOnPropsAndInstance(\"onFocus\", this, this.props)}\n onMouseDown={chainOnPropsAndInstance(\"onMouseDown\", this, this.props)}\n onMouseEnter={chainOnPropsAndInstance(\"onMouseEnter\", this, this.props)}\n onMouseLeave={chainOnPropsAndInstance(\"onMouseLeave\", this, this.props)}\n onContextMenu={chainOnPropsAndInstance(\"onContextMenu\", this, this.props)}\n >\n {children}\n </Refable>\n );\n }}\n </Reference>\n {isClient() &&\n createPortal(\n <Popper\n placement={position as unknown as PopperJS.Placement}\n modifiers={[\n {\n name: \"offset\",\n options: {\n offset: [moveBy.secondary, moveBy.main]\n }\n },\n {\n name: \"zIndex\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (zIndex) {\n state.styles.popper.zIndex = String(zIndex);\n }\n return state;\n }\n },\n {\n name: \"rotator\",\n enabled: true,\n phase: \"write\",\n fn({ state }) {\n if (!state.styles.arrow) {\n return state;\n }\n // const reg = new RegExp(\n // /translate\\(([0-9].*)px, ([0-9].*)px\\)/\n // );\n // const transform = state.styles.arrow.transform;\n // const res = reg.exec(transform);\n // state.styles.popper.transformOrigin = `${100 -\n // res[1]}% ${100 - res[2]}%`;\n state.styles.arrow.transform = `${state.styles.arrow.transform} rotate(45deg)`;\n return state;\n }\n },\n createObserveContentResizeModifier(observeContentResize),\n ...modifiers\n ]}\n >\n {({ placement, style, ref, arrowProps, isReferenceHidden }) => {\n if (!this.isShown() && placement) {\n return null;\n }\n\n if (hideWhenReferenceHidden && isReferenceHidden) {\n const event = new CustomEvent(\"onReferenceHidden\");\n this.hideDialog(event, \"onReferenceHidden\");\n }\n\n const mergedRef = chainRefFunctions([ref, this.containerRef]);\n\n return (\n <LayerProvider layerRef={this.containerRef}>\n <DialogContent\n data-testid={overrideDataTestId}\n isReferenceHidden={hideWhenReferenceHidden && isReferenceHidden}\n onMouseEnter={this.onDialogEnter}\n onMouseLeave={this.onDialogLeave}\n onClickOutside={this.onClickOutside}\n onContextMenu={this.onContextMenu}\n onEsc={this.onEsc}\n animationType={animationTypeCalculated}\n position={placement}\n wrapperClassName={wrapperClassName}\n startingEdge={startingEdge}\n isOpen={this.isShown()}\n showDelay={showDelay}\n styleObject={style}\n ref={mergedRef}\n onClick={this.onContentClick}\n hasTooltip={!!tooltip}\n containerSelector={containerSelector}\n disableContainerScroll={disableContainerScroll}\n >\n {contentRendered}\n {tooltip && (\n <div\n style={arrowProps.style}\n ref={arrowProps.ref}\n className={cx(styles.arrow, tooltipClassName)}\n data-placement={placement}\n />\n )}\n </DialogContent>\n </LayerProvider>\n );\n }}\n </Popper>,\n this.getContainer()\n )}\n </Manager>\n );\n }\n}\n\nfunction chainOnPropsAndInstance(name: string, instance: Dialog, props: DialogProps) {\n // @ts-ignore\n return chainFunctions([props[name], instance[name]], true);\n}\n\nDialog.contextType = LayerContext;\n"],"names":["Dialog","_PureComponent","props","_this","_classCallCheck","_callSuper","state","shouldUseDerivedStateFromProps","useDerivedStateFromProps","isOpen","shouldShowOnMount","containerRef","React","createRef","onMouseEnter","bind","onMouseLeave","onMouseDown","onClick","onFocus","onBlur","isShown","onEsc","onClickOutside","onDialogEnter","onDialogLeave","getContainer","onContentClick","onKeyDown","closeDialogOnEscape","onContextMenu","getDefaultContainer","hideTimeout","showTimeout","_inherits","PureComponent","_createClass","key","value","event","this","hideDialogIfNeeded","DialogTriggerEventEnum","ESCAPE_KEY","handleEvent","TAB_KEY","target","ENTER","_this$props","shouldCallbackOnMount","onDialogDidShow","isClient","document","addEventListener","removeEventListener","clearTimeout","layerRef","context","current","body","containerSelector","containerElement","querySelector","Element","eventName","_this2","_this$props2","instantShowAndHide","getDynamicShowDelay","finalShowDelay","showDelay","preventAnimation","dynamicDelayObj","onShowDialog","setState","setTimeout","options","arguments","length","undefined","disable","showDialog","_this3","_this$props3","hideDelay","onHideDialog","onDialogDidHide","hideDialog","_this$props4","showTriggerIgnoreClass","hideTriggerIgnoreClass","isShowTrigger","isInsideClass","isHideTrigger","showDialogIfNeeded","open","_this$props5","addKeyboardHideShowTriggersByDefault","showTriggersArray","convertToArray","showTrigger","indexOf","_this$props6","hideTriggersArray","hideTrigger","e","button","relatedTarget","preventDefault","showOnDialogEnter","_this4","_this$props7","wrapperClassName","content","startingEdge","children","preventAnimationOnMount","animationType","position","moveBy","modifiers","tooltip","tooltipClassName","referenceWrapperClassName","referenceWrapperElement","zIndex","hideWhenReferenceHidden","disableContainerScroll","observeContentResize","overrideDataTestId","getTestId","ComponentDefaultTestId","DIALOG","id","animationTypeCalculated","contentRendered","isFunction","Manager","createElement","Reference","_ref","ref","Refable","className","cx","wrapperElement","chainOnPropsAndInstance","createPortal","Popper","placement","name","offset","secondary","main","enabled","phase","fn","_ref2","styles","popper","String","_ref3","arrow","transform","concat","createObserveContentResizeModifier","_toConsumableArray","_ref4","style","arrowProps","isReferenceHidden","CustomEvent","mergedRef","chainRefFunctions","LayerProvider","DialogContent","styleObject","hasTooltip","nextProps","instance","chainFunctions","hideShowTriggers","positions","DialogPositionEnum","animationTypes","AnimationTypeEnum","defaultProps","MOUSE_ENTER","MOUSE_LEAVE","EXPAND","NOOP","contextType","LayerContext"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useCallback, useMemo, useRef } from \"react\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport Clickable from \"../Clickable/Clickable\";\nimport Text from \"../Text/Text\";\nimport { type VibeComponentProps } from \"../../types\";\nimport Tooltip from \"../Tooltip/Tooltip\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./RadioButton.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface RadioButtonProps extends VibeComponentProps {\n /**\n * Class name applied to the label text.\n */\n labelClassName?: string;\n /**\n * Class name applied to the radio button element.\n */\n radioButtonClassName?: string;\n /**\n * The label text displayed next to the radio button.\n */\n text?: string;\n /**\n * The value associated with the radio button.\n */\n value?: string;\n /**\n * The name of the radio button group.\n */\n name?: string;\n /**\n * If true, the radio button automatically receives focus on mount.\n */\n autoFocus?: boolean;\n /**\n * If true, the radio button is disabled.\n */\n disabled?: boolean;\n /**\n * The reason why the radio button is disabled, displayed in a tooltip.\n */\n disabledReason?: string;\n /**\n * If true, the radio button is checked by default.\n */\n defaultChecked?: boolean;\n /**\n * The child elements inside the radio button.\n */\n children?: React.ReactNode;\n /**\n * Callback fired when the radio button selection changes.\n */\n onSelect?: (event: React.ChangeEvent<HTMLInputElement | null>) => void;\n /**\n * If provided, controls the checked state of the radio button.\n */\n checked?: boolean;\n /**\n * If true, clicking on children will trigger selection.\n */\n retainChildClick?: boolean;\n /**\n * The tab index applied to the children.\n */\n childrenTabIndex?: string;\n /**\n * If true, disables the label animation.\n */\n noLabelAnimation?: boolean;\n /**\n * ARIA label for accessibility when no text is provided.\n */\n ariaLabel?: string;\n /**\n * ID of element that describe this radio button.\n */\n ariaDescribedby?: string;\n}\n\nconst RadioButton = forwardRef(\n (\n {\n className,\n text = \"\",\n value = \"\",\n name = \"\",\n labelClassName,\n radioButtonClassName,\n disabled = false,\n autoFocus,\n disabledReason,\n defaultChecked = false,\n children,\n onSelect,\n checked,\n retainChildClick = true,\n childrenTabIndex = \"0\",\n noLabelAnimation = false,\n ariaLabel,\n ariaDescribedby,\n id,\n \"data-testid\": dataTestId\n }: RadioButtonProps,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement | null>();\n const mergedRef = useMergeRef(ref, inputRef);\n\n const onChildClick = useCallback(() => {\n if (disabled || !retainChildClick) return;\n if (inputRef.current) {\n inputRef.current.checked = true;\n }\n if (onSelect) {\n onSelect(null);\n }\n }, [onSelect, inputRef, disabled, retainChildClick]);\n\n const checkedProps = useMemo(() => {\n if (checked !== undefined) {\n return { checked };\n }\n return { defaultChecked };\n }, [checked, defaultChecked]);\n\n const tooltipContent = disabled ? disabledReason : null;\n\n return (\n <Tooltip content={tooltipContent}>\n <label\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.RADIO_BUTTON, id)}\n data-vibe={ComponentVibeId.RADIO_BUTTON}\n className={cx(styles.radioButton, className, {\n [styles.disabled]: disabled,\n disabled: disabled\n })}\n >\n <span className={cx(styles.inputContainer)}>\n <input\n className={cx(styles.input)}\n type=\"radio\"\n value={value}\n name={name}\n autoFocus={autoFocus}\n disabled={disabled}\n {...checkedProps}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n onChange={onSelect}\n ref={mergedRef}\n />\n <span\n data-testid={getTestId(ComponentDefaultTestId.RADIO_BUTTON_CONTROL, id)}\n className={cx(styles.control, radioButtonClassName, {\n [styles.labelAnimation]: !noLabelAnimation\n })}\n />\n </span>\n {text && (\n <Text\n element=\"span\"\n type=\"text2\"\n className={labelClassName}\n data-testid={getTestId(ComponentDefaultTestId.RADIO_BUTTON_LABEL, id)}\n >\n {text}\n </Text>\n )}\n {children && (\n <Clickable onClick={onChildClick} tabIndex={childrenTabIndex}>\n {children}\n </Clickable>\n )}\n </label>\n </Tooltip>\n );\n }\n);\n\nexport default RadioButton;\n"],"names":["RadioButton","forwardRef","_ref","ref","className","_ref$text","text","_ref$value","value","_ref$name","name","labelClassName","radioButtonClassName","_ref$disabled","disabled","autoFocus","disabledReason","_ref$defaultChecked","defaultChecked","children","onSelect","checked","_ref$retainChildClick","retainChildClick","_ref$childrenTabIndex","childrenTabIndex","_ref$noLabelAnimation","noLabelAnimation","ariaLabel","ariaDescribedby","id","dataTestId","inputRef","useRef","mergedRef","useMergeRef","onChildClick","useCallback","current","checkedProps","useMemo","undefined","React","createElement","Tooltip","content","getTestId","ComponentDefaultTestId","RADIO_BUTTON","ComponentVibeId","cx","styles","radioButton","_defineProperty","inputContainer","Object","assign","input","type","onChange","RADIO_BUTTON_CONTROL","control","labelAnimation","Text","element","RADIO_BUTTON_LABEL","Clickable","onClick","tabIndex"],"mappings":"ugBAkFMA,IAAAA,EAAcC,GAClB,SAAAC,EAuBEC,GACE,IAtBAC,EAASF,EAATE,UAASC,EAAAH,EACTI,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAL,EACTM,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAP,EACVQ,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EACTE,EAAcT,EAAdS,eACAC,EAAoBV,EAApBU,qBAAoBC,EAAAX,EACpBY,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAASb,EAATa,UACAC,EAAcd,EAAdc,eAAcC,EAAAf,EACdgB,eAAAA,OAAiB,IAAHD,GAAQA,EACtBE,EAAQjB,EAARiB,SACAC,EAAQlB,EAARkB,SACAC,EAAOnB,EAAPmB,QAAOC,EAAApB,EACPqB,iBAAAA,OAAmB,IAAHD,GAAOA,EAAAE,EAAAtB,EACvBuB,iBAAAA,OAAmB,IAAHD,EAAG,IAAGA,EAAAE,EAAAxB,EACtByB,iBAAAA,OAAmB,IAAHD,GAAQA,EACxBE,EAAS1B,EAAT0B,UACAC,EAAe3B,EAAf2B,gBACAC,EAAE5B,EAAF4B,GACeC,EAAU7B,EAAzB,eAII8B,EAAWC,IACXC,EAAYC,EAAYhC,EAAK6B,GAE7BI,EAAeC,GAAY,YAC3BvB,GAAaS,IACbS,EAASM,UACXN,EAASM,QAAQjB,SAAU,GAEzBD,GACFA,EAAS,MAEZ,GAAE,CAACA,EAAUY,EAAUlB,EAAUS,IAE5BgB,EAAeC,GAAQ,WAC3B,YAAgBC,IAAZpB,EACK,CAAEA,QAAAA,GAEJ,CAAEH,eAAAA,EACX,GAAG,CAACG,EAASH,IAIb,OACEwB,EAACC,cAAAC,EAAQ,CAAAC,QAHY/B,EAAWE,EAAiB,MAI/C0B,EACeC,cAAA,QAAA,CAAA,cAAAZ,GAAce,EAAUC,EAAuBC,aAAclB,GAC/D,YAAAmB,EAAgBD,aAC3B5C,UAAW8C,EAAGC,EAAOC,YAAahD,EAASiD,EAAAA,EAAA,CAAA,EACxCF,EAAOrC,SAAWA,GAAQ,WACjBA,KAGZ4B,EAAAC,cAAA,OAAA,CAAMvC,UAAW8C,EAAGC,EAAOG,iBACzBZ,EAAAC,cAAA,QAAAY,OAAAC,OAAA,CACEpD,UAAW8C,EAAGC,EAAOM,OACrBC,KAAK,QACLlD,MAAOA,EACPE,KAAMA,EACNK,UAAWA,EACXD,SAAUA,GACNyB,EACQ,CAAA,aAAAX,qBACMC,EAClB8B,SAAUvC,EACVjB,IAAK+B,KAEPQ,EAAAC,cAAA,OAAA,CAAA,cACeG,EAAUC,EAAuBa,qBAAsB9B,GACpE1B,UAAW8C,EAAGC,EAAOU,QAASjD,EAAoByC,KAC/CF,EAAOW,gBAAkBnC,OAI/BrB,GACCoC,EAACC,cAAAoB,EACC,CAAAC,QAAQ,OACRN,KAAK,QACLtD,UAAWO,EACE,cAAAmC,EAAUC,EAAuBkB,mBAAoBnC,IAEjExB,GAGJa,GACCuB,EAAAC,cAACuB,EAAU,CAAAC,QAAS/B,EAAcgC,SAAU3C,GACzCN,IAMb"}
1
+ {"version":3,"file":"RadioButton.js","sources":["../../../../src/components/RadioButton/RadioButton.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport React, { forwardRef, useCallback, useMemo, useRef } from \"react\";\nimport useMergeRef from \"../../hooks/useMergeRef\";\nimport Clickable from \"../Clickable/Clickable\";\nimport Text from \"../Text/Text\";\nimport { type VibeComponentProps } from \"../../types\";\nimport Tooltip from \"../Tooltip/Tooltip\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport styles from \"./RadioButton.module.scss\";\nimport { ComponentVibeId } from \"../../tests/constants\";\n\nexport interface RadioButtonProps extends VibeComponentProps {\n /**\n * Class name applied to the label text.\n */\n labelClassName?: string;\n /**\n * Class name applied to the radio button element.\n */\n radioButtonClassName?: string;\n /**\n * The label text displayed next to the radio button.\n */\n text?: string;\n /**\n * The value associated with the radio button.\n */\n value?: string;\n /**\n * The name of the radio button group.\n */\n name?: string;\n /**\n * If true, the radio button automatically receives focus on mount.\n */\n autoFocus?: boolean;\n /**\n * If true, the radio button is disabled.\n */\n disabled?: boolean;\n /**\n * The reason why the radio button is disabled, displayed in a tooltip.\n */\n disabledReason?: string;\n /**\n * If true, the radio button is checked by default.\n */\n defaultChecked?: boolean;\n /**\n * The child elements inside the radio button.\n */\n children?: React.ReactNode;\n /**\n * Callback fired when the radio button selection changes.\n */\n onSelect?: (event: React.ChangeEvent<HTMLInputElement | null>) => void;\n /**\n * If provided, controls the checked state of the radio button.\n */\n checked?: boolean;\n /**\n * If true, clicking on children will trigger selection.\n */\n retainChildClick?: boolean;\n /**\n * The tab index applied to the children.\n */\n childrenTabIndex?: string;\n /**\n * If true, disables the label animation.\n */\n noLabelAnimation?: boolean;\n /**\n * ARIA label for accessibility when no text is provided.\n */\n ariaLabel?: string;\n /**\n * ID of element that describe this radio button.\n */\n ariaDescribedby?: string;\n}\n\nconst RadioButton = forwardRef(\n (\n {\n className,\n text = \"\",\n value = \"\",\n name = \"\",\n /**\n * Radio button label class name\n */\n labelClassName,\n /**\n * Radio button marker class name\n */\n radioButtonClassName,\n disabled = false,\n autoFocus,\n disabledReason,\n defaultChecked = false,\n children,\n onSelect,\n checked,\n retainChildClick = true,\n childrenTabIndex = \"0\",\n noLabelAnimation = false,\n ariaLabel,\n ariaDescribedby,\n id,\n \"data-testid\": dataTestId\n }: RadioButtonProps,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const inputRef = useRef<HTMLInputElement | null>();\n const mergedRef = useMergeRef(ref, inputRef);\n\n const onChildClick = useCallback(() => {\n if (disabled || !retainChildClick) return;\n if (inputRef.current) {\n inputRef.current.checked = true;\n }\n if (onSelect) {\n onSelect(null);\n }\n }, [onSelect, inputRef, disabled, retainChildClick]);\n\n const checkedProps = useMemo(() => {\n if (checked !== undefined) {\n return { checked };\n }\n return { defaultChecked };\n }, [checked, defaultChecked]);\n\n const tooltipContent = disabled ? disabledReason : null;\n\n return (\n <Tooltip content={tooltipContent}>\n <label\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.RADIO_BUTTON, id)}\n data-vibe={ComponentVibeId.RADIO_BUTTON}\n className={cx(styles.radioButton, className, {\n [styles.disabled]: disabled,\n disabled: disabled\n })}\n >\n <span className={cx(styles.inputContainer)}>\n <input\n className={cx(styles.input)}\n type=\"radio\"\n value={value}\n name={name}\n autoFocus={autoFocus}\n disabled={disabled}\n {...checkedProps}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n onChange={onSelect}\n ref={mergedRef}\n />\n <span\n data-testid={getTestId(ComponentDefaultTestId.RADIO_BUTTON_CONTROL, id)}\n className={cx(styles.control, radioButtonClassName, {\n [styles.labelAnimation]: !noLabelAnimation\n })}\n />\n </span>\n {text && (\n <Text\n element=\"span\"\n type=\"text2\"\n className={labelClassName}\n data-testid={getTestId(ComponentDefaultTestId.RADIO_BUTTON_LABEL, id)}\n >\n {text}\n </Text>\n )}\n {children && (\n <Clickable onClick={onChildClick} tabIndex={childrenTabIndex}>\n {children}\n </Clickable>\n )}\n </label>\n </Tooltip>\n );\n }\n);\n\nexport default RadioButton;\n"],"names":["RadioButton","forwardRef","_ref","ref","className","_ref$text","text","_ref$value","value","_ref$name","name","labelClassName","radioButtonClassName","_ref$disabled","disabled","autoFocus","disabledReason","_ref$defaultChecked","defaultChecked","children","onSelect","checked","_ref$retainChildClick","retainChildClick","_ref$childrenTabIndex","childrenTabIndex","_ref$noLabelAnimation","noLabelAnimation","ariaLabel","ariaDescribedby","id","dataTestId","inputRef","useRef","mergedRef","useMergeRef","onChildClick","useCallback","current","checkedProps","useMemo","undefined","React","createElement","Tooltip","content","getTestId","ComponentDefaultTestId","RADIO_BUTTON","ComponentVibeId","cx","styles","radioButton","_defineProperty","inputContainer","Object","assign","input","type","onChange","RADIO_BUTTON_CONTROL","control","labelAnimation","Text","element","RADIO_BUTTON_LABEL","Clickable","onClick","tabIndex"],"mappings":"ugBAkFMA,IAAAA,EAAcC,GAClB,SAAAC,EA6BEC,GACE,IA5BAC,EAASF,EAATE,UAASC,EAAAH,EACTI,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAAAE,EAAAL,EACTM,MAAAA,OAAQ,IAAHD,EAAG,GAAEA,EAAAE,EAAAP,EACVQ,KAAAA,OAAO,IAAHD,EAAG,GAAEA,EAITE,EAAcT,EAAdS,eAIAC,EAAoBV,EAApBU,qBAAoBC,EAAAX,EACpBY,SAAAA,OAAW,IAAHD,GAAQA,EAChBE,EAASb,EAATa,UACAC,EAAcd,EAAdc,eAAcC,EAAAf,EACdgB,eAAAA,OAAiB,IAAHD,GAAQA,EACtBE,EAAQjB,EAARiB,SACAC,EAAQlB,EAARkB,SACAC,EAAOnB,EAAPmB,QAAOC,EAAApB,EACPqB,iBAAAA,OAAmB,IAAHD,GAAOA,EAAAE,EAAAtB,EACvBuB,iBAAAA,OAAmB,IAAHD,EAAG,IAAGA,EAAAE,EAAAxB,EACtByB,iBAAAA,OAAmB,IAAHD,GAAQA,EACxBE,EAAS1B,EAAT0B,UACAC,EAAe3B,EAAf2B,gBACAC,EAAE5B,EAAF4B,GACeC,EAAU7B,EAAzB,eAII8B,EAAWC,IACXC,EAAYC,EAAYhC,EAAK6B,GAE7BI,EAAeC,GAAY,YAC3BvB,GAAaS,IACbS,EAASM,UACXN,EAASM,QAAQjB,SAAU,GAEzBD,GACFA,EAAS,MAEZ,GAAE,CAACA,EAAUY,EAAUlB,EAAUS,IAE5BgB,EAAeC,GAAQ,WAC3B,YAAgBC,IAAZpB,EACK,CAAEA,QAAAA,GAEJ,CAAEH,eAAAA,EACX,GAAG,CAACG,EAASH,IAIb,OACEwB,EAACC,cAAAC,EAAQ,CAAAC,QAHY/B,EAAWE,EAAiB,MAI/C0B,EACeC,cAAA,QAAA,CAAA,cAAAZ,GAAce,EAAUC,EAAuBC,aAAclB,GAC/D,YAAAmB,EAAgBD,aAC3B5C,UAAW8C,EAAGC,EAAOC,YAAahD,EAASiD,EAAAA,EAAA,CAAA,EACxCF,EAAOrC,SAAWA,GAAQ,WACjBA,KAGZ4B,EAAAC,cAAA,OAAA,CAAMvC,UAAW8C,EAAGC,EAAOG,iBACzBZ,EAAAC,cAAA,QAAAY,OAAAC,OAAA,CACEpD,UAAW8C,EAAGC,EAAOM,OACrBC,KAAK,QACLlD,MAAOA,EACPE,KAAMA,EACNK,UAAWA,EACXD,SAAUA,GACNyB,EACQ,CAAA,aAAAX,qBACMC,EAClB8B,SAAUvC,EACVjB,IAAK+B,KAEPQ,EAAAC,cAAA,OAAA,CAAA,cACeG,EAAUC,EAAuBa,qBAAsB9B,GACpE1B,UAAW8C,EAAGC,EAAOU,QAASjD,EAAoByC,KAC/CF,EAAOW,gBAAkBnC,OAI/BrB,GACCoC,EAACC,cAAAoB,EACC,CAAAC,QAAQ,OACRN,KAAK,QACLtD,UAAWO,EACE,cAAAmC,EAAUC,EAAuBkB,mBAAoBnC,IAEjExB,GAGJa,GACCuB,EAAAC,cAACuB,EAAU,CAAAC,QAAS/B,EAAcgC,SAAU3C,GACzCN,IAMb"}