@vibe/core 3.54.3-alpha-aef80.0 → 3.55.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 (169) hide show
  1. package/dist/components/BaseListItem/BaseListItem.d.ts +1 -1
  2. package/dist/components/BaseListItem/BaseListItem.types.d.ts +5 -1
  3. package/dist/components/DropdownNew/Dropdown.types.d.ts +16 -5
  4. package/dist/components/DropdownNew/context/DropdownContext.d.ts +1 -0
  5. package/dist/components/DropdownNew/context/DropdownContext.types.d.ts +3 -1
  6. package/dist/components/DropdownNew/hooks/useDropdownFiltering.d.ts +1 -0
  7. package/dist/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +2 -2
  8. package/dist/components/DropdownNew/hooks/useDropdownMultiSelect.d.ts +1 -1
  9. package/dist/components/DropdownNew/index.d.ts +1 -1
  10. package/dist/components/DropdownNew/modes/DropdownComboboxController.d.ts +2 -2
  11. package/dist/components/DropdownNew/modes/DropdownMultiComboboxController.d.ts +2 -2
  12. package/dist/components/DropdownNew/modes/DropdownMultiSelectController.d.ts +2 -2
  13. package/dist/components/DropdownNew/modes/DropdownSelectController.d.ts +2 -2
  14. package/dist/components/Toast/Toast.d.ts +1 -1
  15. package/dist/components/next.d.ts +1 -0
  16. package/dist/metadata.json +484 -0
  17. package/dist/mocked_classnames/components/BaseListItem/BaseListItem.d.ts +1 -1
  18. package/dist/mocked_classnames/components/BaseListItem/BaseListItem.types.d.ts +5 -1
  19. package/dist/mocked_classnames/components/DropdownNew/Dropdown.types.d.ts +16 -5
  20. package/dist/mocked_classnames/components/DropdownNew/context/DropdownContext.d.ts +1 -0
  21. package/dist/mocked_classnames/components/DropdownNew/context/DropdownContext.types.d.ts +3 -1
  22. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownFiltering.d.ts +1 -0
  23. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownMultiCombobox.d.ts +2 -2
  24. package/dist/mocked_classnames/components/DropdownNew/hooks/useDropdownMultiSelect.d.ts +1 -1
  25. package/dist/mocked_classnames/components/DropdownNew/index.d.ts +1 -1
  26. package/dist/mocked_classnames/components/DropdownNew/modes/DropdownComboboxController.d.ts +2 -2
  27. package/dist/mocked_classnames/components/DropdownNew/modes/DropdownMultiComboboxController.d.ts +2 -2
  28. package/dist/mocked_classnames/components/DropdownNew/modes/DropdownMultiSelectController.d.ts +2 -2
  29. package/dist/mocked_classnames/components/DropdownNew/modes/DropdownSelectController.d.ts +2 -2
  30. package/dist/mocked_classnames/components/Toast/Toast.d.ts +1 -1
  31. package/dist/mocked_classnames/components/next.d.ts +1 -0
  32. package/dist/mocked_classnames/src/components/BaseList/BaseList.js +2 -0
  33. package/dist/mocked_classnames/src/components/BaseList/BaseList.js.map +1 -0
  34. package/dist/mocked_classnames/src/components/BaseList/BaseList.module.scss.js +2 -0
  35. package/dist/mocked_classnames/src/components/BaseList/BaseList.module.scss.js.map +1 -0
  36. package/dist/mocked_classnames/src/components/BaseListItem/BaseListItem.js +2 -0
  37. package/dist/mocked_classnames/src/components/BaseListItem/BaseListItem.js.map +1 -0
  38. package/dist/mocked_classnames/src/components/BaseListItem/BaseListItem.module.scss.js +2 -0
  39. package/dist/mocked_classnames/src/components/BaseListItem/BaseListItem.module.scss.js.map +1 -0
  40. package/dist/mocked_classnames/src/components/BaseListItem/utils.js +2 -0
  41. package/dist/mocked_classnames/src/components/BaseListItem/utils.js.map +1 -0
  42. package/dist/mocked_classnames/src/components/DropdownNew/Dropdown.js +2 -0
  43. package/dist/mocked_classnames/src/components/DropdownNew/Dropdown.js.map +1 -0
  44. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownBase/DropdownBase.js +2 -0
  45. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownBase/DropdownBase.js.map +1 -0
  46. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownBase/DropdownBase.module.scss.js +2 -0
  47. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownBase/DropdownBase.module.scss.js.map +1 -0
  48. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownPopup/DropdownPopup.js +2 -0
  49. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownPopup/DropdownPopup.js.map +1 -0
  50. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownWrapperUI.js +2 -0
  51. package/dist/mocked_classnames/src/components/DropdownNew/components/DropdownWrapperUI.js.map +1 -0
  52. package/dist/mocked_classnames/src/components/DropdownNew/components/Menu/Menu.js +2 -0
  53. package/dist/mocked_classnames/src/components/DropdownNew/components/Menu/Menu.js.map +1 -0
  54. package/dist/mocked_classnames/src/components/DropdownNew/components/Menu/Menu.module.scss.js +2 -0
  55. package/dist/mocked_classnames/src/components/DropdownNew/components/Menu/Menu.module.scss.js.map +1 -0
  56. package/dist/mocked_classnames/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.js +2 -0
  57. package/dist/mocked_classnames/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.js.map +1 -0
  58. package/dist/mocked_classnames/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +2 -0
  59. package/dist/mocked_classnames/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.module.scss.js.map +1 -0
  60. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/DropdownChip.js +2 -0
  61. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/DropdownChip.js.map +1 -0
  62. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/DropdownInput.js +2 -0
  63. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/DropdownInput.js.map +1 -0
  64. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js +2 -0
  65. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js.map +1 -0
  66. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js +2 -0
  67. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js.map +1 -0
  68. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/Trigger.module.scss.js +2 -0
  69. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/Trigger.module.scss.js.map +1 -0
  70. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/TriggerActions.js +2 -0
  71. package/dist/mocked_classnames/src/components/DropdownNew/components/Trigger/TriggerActions.js.map +1 -0
  72. package/dist/mocked_classnames/src/components/DropdownNew/context/DropdownContext.js +2 -0
  73. package/dist/mocked_classnames/src/components/DropdownNew/context/DropdownContext.js.map +1 -0
  74. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownCombobox.js +2 -0
  75. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownCombobox.js.map +1 -0
  76. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownFiltering.js +2 -0
  77. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownFiltering.js.map +1 -0
  78. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js +2 -0
  79. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js.map +1 -0
  80. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiSelect.js +2 -0
  81. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownMultiSelect.js.map +1 -0
  82. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownSelect.js +2 -0
  83. package/dist/mocked_classnames/src/components/DropdownNew/hooks/useDropdownSelect.js.map +1 -0
  84. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownComboboxController.js +2 -0
  85. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownComboboxController.js.map +1 -0
  86. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownMultiComboboxController.js +2 -0
  87. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownMultiComboboxController.js.map +1 -0
  88. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownMultiSelectController.js +2 -0
  89. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownMultiSelectController.js.map +1 -0
  90. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownSelectController.js +2 -0
  91. package/dist/mocked_classnames/src/components/DropdownNew/modes/DropdownSelectController.js.map +1 -0
  92. package/dist/mocked_classnames/src/components/DropdownNew/utils/dropdown-modifiers.js +2 -0
  93. package/dist/mocked_classnames/src/components/DropdownNew/utils/dropdown-modifiers.js.map +1 -0
  94. package/dist/mocked_classnames/src/components/DropdownNew/utils/dropdownUtils.js +2 -0
  95. package/dist/mocked_classnames/src/components/DropdownNew/utils/dropdownUtils.js.map +1 -0
  96. package/dist/mocked_classnames/src/components/Toast/Toast.js.map +1 -1
  97. package/dist/mocked_classnames/src/components/next.js +1 -1
  98. package/dist/mocked_classnames/src/hooks/useItemsOverflow/useItemsOverflow.js +2 -0
  99. package/dist/mocked_classnames/src/hooks/useItemsOverflow/useItemsOverflow.js.map +1 -0
  100. package/dist/src/components/BaseList/BaseList.js +2 -0
  101. package/dist/src/components/BaseList/BaseList.js.map +1 -0
  102. package/dist/src/components/BaseList/BaseList.module.scss.js +2 -0
  103. package/dist/src/components/BaseList/BaseList.module.scss.js.map +1 -0
  104. package/dist/src/components/BaseListItem/BaseListItem.js +2 -0
  105. package/dist/src/components/BaseListItem/BaseListItem.js.map +1 -0
  106. package/dist/src/components/BaseListItem/BaseListItem.module.scss.js +2 -0
  107. package/dist/src/components/BaseListItem/BaseListItem.module.scss.js.map +1 -0
  108. package/dist/src/components/BaseListItem/utils.js +2 -0
  109. package/dist/src/components/BaseListItem/utils.js.map +1 -0
  110. package/dist/src/components/DropdownNew/Dropdown.js +2 -0
  111. package/dist/src/components/DropdownNew/Dropdown.js.map +1 -0
  112. package/dist/src/components/DropdownNew/components/DropdownBase/DropdownBase.js +2 -0
  113. package/dist/src/components/DropdownNew/components/DropdownBase/DropdownBase.js.map +1 -0
  114. package/dist/src/components/DropdownNew/components/DropdownBase/DropdownBase.module.scss.js +2 -0
  115. package/dist/src/components/DropdownNew/components/DropdownBase/DropdownBase.module.scss.js.map +1 -0
  116. package/dist/src/components/DropdownNew/components/DropdownPopup/DropdownPopup.js +2 -0
  117. package/dist/src/components/DropdownNew/components/DropdownPopup/DropdownPopup.js.map +1 -0
  118. package/dist/src/components/DropdownNew/components/DropdownWrapperUI.js +2 -0
  119. package/dist/src/components/DropdownNew/components/DropdownWrapperUI.js.map +1 -0
  120. package/dist/src/components/DropdownNew/components/Menu/Menu.js +2 -0
  121. package/dist/src/components/DropdownNew/components/Menu/Menu.js.map +1 -0
  122. package/dist/src/components/DropdownNew/components/Menu/Menu.module.scss.js +2 -0
  123. package/dist/src/components/DropdownNew/components/Menu/Menu.module.scss.js.map +1 -0
  124. package/dist/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.js +2 -0
  125. package/dist/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.js.map +1 -0
  126. package/dist/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.module.scss.js +2 -0
  127. package/dist/src/components/DropdownNew/components/MultiSelectedValues/MultiSelectedValues.module.scss.js.map +1 -0
  128. package/dist/src/components/DropdownNew/components/Trigger/DropdownChip.js +2 -0
  129. package/dist/src/components/DropdownNew/components/Trigger/DropdownChip.js.map +1 -0
  130. package/dist/src/components/DropdownNew/components/Trigger/DropdownInput.js +2 -0
  131. package/dist/src/components/DropdownNew/components/Trigger/DropdownInput.js.map +1 -0
  132. package/dist/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js +2 -0
  133. package/dist/src/components/DropdownNew/components/Trigger/MultiSelectTrigger.js.map +1 -0
  134. package/dist/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js +2 -0
  135. package/dist/src/components/DropdownNew/components/Trigger/SingleSelectTrigger.js.map +1 -0
  136. package/dist/src/components/DropdownNew/components/Trigger/Trigger.module.scss.js +2 -0
  137. package/dist/src/components/DropdownNew/components/Trigger/Trigger.module.scss.js.map +1 -0
  138. package/dist/src/components/DropdownNew/components/Trigger/TriggerActions.js +2 -0
  139. package/dist/src/components/DropdownNew/components/Trigger/TriggerActions.js.map +1 -0
  140. package/dist/src/components/DropdownNew/context/DropdownContext.js +2 -0
  141. package/dist/src/components/DropdownNew/context/DropdownContext.js.map +1 -0
  142. package/dist/src/components/DropdownNew/hooks/useDropdownCombobox.js +2 -0
  143. package/dist/src/components/DropdownNew/hooks/useDropdownCombobox.js.map +1 -0
  144. package/dist/src/components/DropdownNew/hooks/useDropdownFiltering.js +2 -0
  145. package/dist/src/components/DropdownNew/hooks/useDropdownFiltering.js.map +1 -0
  146. package/dist/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js +2 -0
  147. package/dist/src/components/DropdownNew/hooks/useDropdownMultiCombobox.js.map +1 -0
  148. package/dist/src/components/DropdownNew/hooks/useDropdownMultiSelect.js +2 -0
  149. package/dist/src/components/DropdownNew/hooks/useDropdownMultiSelect.js.map +1 -0
  150. package/dist/src/components/DropdownNew/hooks/useDropdownSelect.js +2 -0
  151. package/dist/src/components/DropdownNew/hooks/useDropdownSelect.js.map +1 -0
  152. package/dist/src/components/DropdownNew/modes/DropdownComboboxController.js +2 -0
  153. package/dist/src/components/DropdownNew/modes/DropdownComboboxController.js.map +1 -0
  154. package/dist/src/components/DropdownNew/modes/DropdownMultiComboboxController.js +2 -0
  155. package/dist/src/components/DropdownNew/modes/DropdownMultiComboboxController.js.map +1 -0
  156. package/dist/src/components/DropdownNew/modes/DropdownMultiSelectController.js +2 -0
  157. package/dist/src/components/DropdownNew/modes/DropdownMultiSelectController.js.map +1 -0
  158. package/dist/src/components/DropdownNew/modes/DropdownSelectController.js +2 -0
  159. package/dist/src/components/DropdownNew/modes/DropdownSelectController.js.map +1 -0
  160. package/dist/src/components/DropdownNew/utils/dropdown-modifiers.js +2 -0
  161. package/dist/src/components/DropdownNew/utils/dropdown-modifiers.js.map +1 -0
  162. package/dist/src/components/DropdownNew/utils/dropdownUtils.js +2 -0
  163. package/dist/src/components/DropdownNew/utils/dropdownUtils.js.map +1 -0
  164. package/dist/src/components/Toast/Toast.js.map +1 -1
  165. package/dist/src/components/next.js +1 -1
  166. package/dist/src/hooks/useItemsOverflow/useItemsOverflow.js +2 -0
  167. package/dist/src/hooks/useItemsOverflow/useItemsOverflow.js.map +1 -0
  168. package/dist/tokens/tokens.d.ts +1 -0
  169. package/package.json +12 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownContext.js","sources":["../../../../../src/components/DropdownNew/context/DropdownContext.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport { ListGroup } from \"../../BaseList\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { BaseDropdownProps, DropdownSizes } from \"../Dropdown.types\";\nimport { DropdownContextProps } from \"./DropdownContext.types\";\n\ntype PropGetter = (options?: any) => Record<string, any>;\ntype ItemPropGetter<Item> = (options: { item: Item; index: number }) => Record<string, any>;\n\nexport interface DropdownContextValue<Item extends BaseListItemData<Record<string, unknown>> = any> {\n isOpen: boolean;\n inputValue: string | null;\n highlightedIndex: number | null;\n selectedItem: Item | null | undefined;\n selectedItems: Item[];\n filteredOptions: ListGroup<Item>[];\n\n getToggleButtonProps: PropGetter;\n getLabelProps: PropGetter;\n getMenuProps: PropGetter;\n getInputProps: PropGetter;\n getItemProps: ItemPropGetter<Item>;\n getDropdownProps?: PropGetter;\n\n reset: () => void;\n toggleMenu: () => void;\n onClear?: () => void;\n onOptionSelect?: (option: Item) => void;\n onOptionRemove?: (option: Item) => void;\n addSelectedItem?: (item: Item) => void;\n removeSelectedItem?: (item: Item) => void;\n setSelectedItems?: (items: Item[]) => void;\n\n searchable?: boolean;\n multi?: boolean;\n multiline?: boolean;\n disabled?: boolean;\n readOnly?: boolean;\n size?: DropdownSizes;\n optionRenderer?: BaseDropdownProps<Item>[\"optionRenderer\"];\n valueRenderer?: BaseDropdownProps<Item>[\"valueRenderer\"];\n noOptionsMessage?: BaseDropdownProps<Item>[\"noOptionsMessage\"];\n placeholder?: BaseDropdownProps<Item>[\"placeholder\"];\n withGroupDivider?: BaseDropdownProps<Item>[\"withGroupDivider\"];\n stickyGroupTitle?: BaseDropdownProps<Item>[\"stickyGroupTitle\"];\n maxMenuHeight?: BaseDropdownProps<Item>[\"maxMenuHeight\"];\n clearable?: boolean;\n autoFocus?: boolean;\n isFocused?: boolean;\n inputAriaLabel?: string;\n menuAriaLabel?: string;\n closeMenuOnSelect?: boolean;\n dir?: BaseDropdownProps<Item>[\"dir\"];\n originalOnFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n originalOnBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n originalOnKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n originalOnScroll?: (event: React.UIEvent<HTMLUListElement>) => void;\n}\n\nexport const DropdownContext = createContext<DropdownContextProps<any> | undefined>(undefined);\n\nexport function useDropdownContext<Item extends BaseListItemData<Record<string, unknown>>>() {\n const context = useContext(DropdownContext) as DropdownContextProps<Item>;\n if (context === undefined) {\n throw new Error(\"useDropdownContext must be used within a DropdownProvider\");\n }\n return context;\n}\n"],"names":["DropdownContext","createContext","undefined","useDropdownContext","context","useContext","Error"],"mappings":"0DA2DaA,EAAkBC,OAAqDC,YAEpEC,IACd,IAAMC,EAAUC,EAAWL,GAC3B,QAAgBE,IAAZE,EACF,MAAUE,MAAM,6DAElB,OAAOF,CACT"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t,useCallback as u}from"react";import{useCombobox as l}from"downshift";import i from"./useDropdownFiltering.js";function s(s,o,r,a,p,g,c,d,f,m,I,h,O,P){var b=n(p||null),v=e(b,2),M=v[1],C=void 0!==g?g:v[0],T=t((function(){return C?[C]:[]}),[C]),V=i(s,O,P,T),j=V.filteredOptions,y=V.filterOptions,w=t((function(){return j.flatMap((function(e){return e.options}))}),[j]),B=l({items:w,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:c||"",selectedItem:C,isOpen:o,initialIsOpen:r,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:u((function(e){var n=e.inputValue;y(n||""),null==f||f(n||"")}),[f,y]),onSelectedItemChange:u((function(e){var n=e.selectedItem;void 0===g&&M(n||null),n?(null==h||h(n),null==d||d(n),y("")):(null==d||d(null),y(""))}),[g,h,y,d]),stateReducer:function(e,n){switch(n.type){case l.stateChangeTypes.InputKeyDownEnter:case l.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:"",isOpen:!a});case l.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},n.changes),{inputValue:""});default:return n.changes}}}),x=B.reset;return{isOpen:B.isOpen,inputValue:B.inputValue,highlightedIndex:B.highlightedIndex,selectedItem:C,getToggleButtonProps:B.getToggleButtonProps,getLabelProps:B.getLabelProps,getMenuProps:B.getMenuProps,getInputProps:B.getInputProps,getItemProps:B.getItemProps,reset:function(){void 0===g&&M(null),x(),y("")},filteredOptions:j,openMenu:B.openMenu,toggleMenu:B.toggleMenu,closeMenu:B.closeMenu}}export{s as default};
2
+ //# sourceMappingURL=useDropdownCombobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"kOAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBX,GAAgB,MAAKY,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAG5CG,OAAyBC,IAAVf,EAAsBA,EAHjBW,EAAA,GAKpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEJI,EAA2CC,EACzCxB,EACAY,EACAC,EACAQ,GAJMI,EAAeF,EAAfE,gBAAiBC,EAAaH,EAAbG,cAOnBC,EAAcL,GAAQ,WAAA,OAAMG,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAM7B,aAAU,CAACyB,IACpFK,EAaIC,EAAe,CACjBC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,kBAAmBjC,GAAkB,GACrCa,aAAcA,EACdqB,OAAQvC,EACRwC,cAAevC,EACfwC,eAAgB,SAAAC,GAASA,EAANH,OACR9B,SAAAA,IAAkBD,SAAAA,GAC5B,EAEDmC,mBAAoBC,GAClB,SAAAC,GAAmB,IAAhBC,EAAUD,EAAVC,WACDrB,EAAcqB,GAAc,IAC5BvC,SAAAA,EAAgBuC,GAAc,GAChC,GACA,CAACvC,EAAekB,IAElBsB,qBAAsBH,GACpB,SAAAI,GAAqB,IAAlB9B,EAAY8B,EAAZ9B,kBACaC,IAAVf,GACFa,EAAuBC,GAAgB,MAErCA,GACFR,SAAAA,EAAiBQ,GACjBZ,SAAAA,EAAWY,GACXO,EAAc,MAEdnB,SAAAA,EAAW,MACXmB,EAAc,IAEjB,GACD,CAACrB,EAAOM,EAAgBe,EAAenB,IAEzC2C,aAAc,SAACC,EAAOC,GACpB,OAAQA,EAAiBC,MACvB,KAAKtB,EAAYuB,iBAAiBC,kBAClC,KAAKxB,EAAYuB,iBAAiBE,UAChC,OAAAC,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,SAAO,CAAEZ,WAAY,GAAIP,QAASrC,IACjE,KAAK4B,EAAYuB,iBAAiBM,UAChC,OAAAH,OAAAC,OAAAD,OAAAC,OAAA,GAAYN,EAAiBO,UAASZ,WAAY,KAEpD,QACE,OAAOK,EAAiBO,QAE9B,IAlDAE,EAAK/B,EAAL+B,MAqDF,MAAO,CACLrB,OA9DMV,EAANU,OA+DAO,WA9DUjB,EAAViB,WA+DAe,iBA9DgBhC,EAAhBgC,iBA+DA3C,aAAAA,EACA4C,qBA/DoBjC,EAApBiC,qBAgEAC,cA/DalC,EAAbkC,cAgEAC,aA/DYnC,EAAZmC,aAgEAC,cA/DapC,EAAboC,cAgEAC,aA/DYrC,EAAZqC,aAgEAN,MAAO,gBACSzC,IAAVf,GACFa,EAAuB,MAEzB2C,IACAnC,EAAc,GACf,EACDD,gBAAAA,EACA2C,SAtEQtC,EAARsC,SAuEAC,WAtEUvC,EAAVuC,WAuEAC,UAtESxC,EAATwC,UAwEJ"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as r}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as t,useEffect as i}from"react";import{normalizeOptions as o}from"../utils/dropdownUtils.js";function e(e,n,l,s){var u=t((function(){return o(e,void 0,void 0,l,s)})),f=r(u,2),p=f[0],a=f[1],d=t(""),c=r(d,2),m=c[0],v=c[1];i((function(){a(o(e,m,n,l,s))}),[e,m,n,l,s]);return{filteredOptions:p,filterOptions:function(r){v(r)},setFilteredOptions:a}}export{e as default};
2
+ //# sourceMappingURL=useDropdownFiltering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownFiltering.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownFiltering.ts"],"sourcesContent":["import { useState, useEffect } from \"react\";\nimport { normalizeOptions } from \"../utils/dropdownUtils\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { ListGroup } from \"../../BaseList\";\nimport { DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownFiltering<Item extends BaseListItemData>(\n options: DropdownGroupOption<Item>,\n filterOption?: (option: Item, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n selectedItems?: Item[]\n) {\n const [filteredOptions, setFilteredOptions] = useState<ListGroup<Item>[]>(() =>\n normalizeOptions(options, undefined, undefined, showSelectedOptions, selectedItems)\n );\n const [filterValue, setFilterValue] = useState<string>(\"\");\n\n useEffect(() => {\n setFilteredOptions(normalizeOptions(options, filterValue, filterOption, showSelectedOptions, selectedItems));\n }, [options, filterValue, filterOption, showSelectedOptions, selectedItems]);\n\n const filterOptions = (inputValue: string) => {\n setFilterValue(inputValue);\n };\n\n return { filteredOptions, filterOptions, setFilteredOptions };\n}\n\nexport default useDropdownFiltering;\n"],"names":["useDropdownFiltering","options","filterOption","showSelectedOptions","selectedItems","_useState","useState","normalizeOptions","undefined","_useState2","_slicedToArray","filteredOptions","setFilteredOptions","_useState3","_useState4","filterValue","setFilterValue","useEffect","filterOptions","inputValue"],"mappings":"+LAMA,SAASA,EACPC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAA8CC,GAA4B,WAAA,OACxEC,EAAiBN,OAASO,OAAWA,EAAWL,EAAqBC,MACtEK,EAAAC,EAAAL,EAAA,GAFMM,EAAeF,EAAA,GAAEG,EAAkBH,EAAA,GAG1CI,EAAsCP,EAAiB,IAAGQ,EAAAJ,EAAAG,EAAA,GAAnDE,EAAWD,EAAA,GAAEE,EAAcF,EAAA,GAElCG,GAAU,WACRL,EAAmBL,EAAiBN,EAASc,EAAab,EAAcC,EAAqBC,GAC/F,GAAG,CAACH,EAASc,EAAab,EAAcC,EAAqBC,IAM7D,MAAO,CAAEO,gBAAAA,EAAiBO,cAJJ,SAACC,GACrBH,EAAeG,IAGwBP,mBAAAA,EAC3C"}
@@ -0,0 +1,2 @@
1
+ import{toConsumableArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useMemo as t}from"react";import n from"./useDropdownFiltering.js";import{useMultipleSelection as o,useCombobox as s}from"downshift";function i(i,l,r,u,a,p,c,g,d,m,I,f,v,h,P){var O=void 0!==c?c:l,b=n(i,h,P,O),S=b.filteredOptions,C=b.filterOptions,M=t((function(){return S.flatMap((function(e){return e.options}))}),[S]),V=o({selectedItems:O,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===c&&r(t||[]),null==d||d(t||[])}}),j=V.getSelectedItemProps,w=V.getDropdownProps,y=V.addSelectedItem,T=V.removeSelectedItem,D=s({items:M,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},isOpen:u,initialIsOpen:a,initialInputValue:g||"",onIsOpenChange:function(e){e.isOpen?null==f||f():null==I||I()},onInputValueChange:function(e){var t=e.inputValue;C(t||""),null==m||m(t||"")},onSelectedItemChange:function(t){var n=t.selectedItem;if(n){var o=O.findIndex((function(e){return e.value===n.value}));if(o>-1){var s=[].concat(e(O.slice(0,o)),e(O.slice(o+1)));void 0===c&&r(s),T(n)}else{var i=[].concat(e(O),[n]);void 0===c&&r(i),y(n)}null==v||v(n),C("")}},stateReducer:function(e,t){switch(t.type){case s.stateChangeTypes.InputKeyDownEnter:case s.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},t.changes),{inputValue:"",isOpen:!0});case s.stateChangeTypes.InputBlur:return Object.assign(Object.assign({},t.changes),{inputValue:""});default:return t.changes}}});return{isOpen:D.isOpen,inputValue:D.inputValue,highlightedIndex:D.highlightedIndex,selectedItems:O,getSelectedItemProps:j,getDropdownProps:w,addSelectedItem:y,getToggleButtonProps:D.getToggleButtonProps,getLabelProps:D.getLabelProps,getMenuProps:D.getMenuProps,getInputProps:D.getInputProps,getItemProps:D.getItemProps,reset:D.reset,removeSelectedItem:T,filteredOptions:S,openMenu:D.openMenu,toggleMenu:D.toggleMenu,closeMenu:D.closeMenu}}export{i as default};
2
+ //# sourceMappingURL=useDropdownMultiCombobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownMultiCombobox.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownMultiCombobox.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { useMultipleSelection, useCombobox } from \"downshift\";\nimport { DropdownGroupOption } from \"../Dropdown.types\";\nimport { BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiCombobox<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n inputValueProp?: string,\n onChange?: (options: T[]) => void,\n onInputChange?: (value: string) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean\n) {\n // Use controlled value if provided, otherwise use internal state\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n currentSelectedItems\n );\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const { getSelectedItemProps, getDropdownProps, addSelectedItem, removeSelectedItem } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems }) => {\n if (value === undefined) {\n setSelectedItems(selectedItems || []);\n }\n onChange?.(selectedItems || []);\n }\n });\n\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n initialInputValue: inputValueProp || \"\",\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n onInputValueChange: ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue || \"\");\n },\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const itemIndex = currentSelectedItems.findIndex(item => item.value === newSelectedItem.value);\n if (itemIndex > -1) {\n const newSelectedItems = [\n ...currentSelectedItems.slice(0, itemIndex),\n ...currentSelectedItems.slice(itemIndex + 1)\n ];\n if (value === undefined) {\n setSelectedItems(newSelectedItems);\n }\n removeSelectedItem(newSelectedItem);\n } else {\n const newSelectedItems = [...currentSelectedItems, newSelectedItem];\n if (value === undefined) {\n setSelectedItems(newSelectedItems);\n }\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n filterOptions(\"\");\n },\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: \"\", isOpen: true };\n case useCombobox.stateChangeTypes.InputBlur:\n return { ...actionAndChanges.changes, inputValue: \"\" };\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n getDropdownProps,\n addSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n removeSelectedItem,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownMultiCombobox;\n"],"names":["useDropdownMultiCombobox","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","currentSelectedItems","undefined","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","getSelectedItemProps","getDropdownProps","addSelectedItem","removeSelectedItem","_useCombobox","useCombobox","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","initialInputValue","onIsOpenChange","_ref2","onInputValueChange","_ref3","inputValue","onSelectedItemChange","_ref4","newSelectedItem","selectedItem","itemIndex","findIndex","newSelectedItems","concat","_toConsumableArray","slice","stateReducer","state","actionAndChanges","type","stateChangeTypes","InputKeyDownEnter","ItemClick","Object","assign","changes","InputBlur","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","reset","openMenu","toggleMenu","closeMenu"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{useMemo as e,useCallback as t}from"react";import{useMultipleSelection as n,useSelect as o}from"downshift";import i from"./useDropdownFiltering.js";function l(l,r,s,u,d,p,c,g,a,m,I,f,v){var P=void 0!==c?c:r,h=i(l,v,f,P).filteredOptions,O=e((function(){return h.flatMap((function(e){return e.options}))}),[h]),S=n({selectedItems:P,initialSelectedItems:p,onSelectedItemsChange:function(e){var t=e.selectedItems;void 0===c&&s(t||[]),null==g||g(t||[])}}),M=S.getSelectedItemProps,b=S.addSelectedItem,C=S.removeSelectedItem,w=S.getDropdownProps,D=o({items:O,itemToString:function(e){var t;return null!==(t=null==e?void 0:e.label)&&void 0!==t?t:""},isItemDisabled:function(e){return!!e.disabled},selectedItem:null,isOpen:u,initialIsOpen:d,onSelectedItemChange:function(e){var t=e.selectedItem;if(t){var n=P.find((function(e){return e.value===t.value}));n?C(n):b(t),null==I||I(t)}},stateReducer:function(e,t){var n=t.changes;return t.type===o.stateChangeTypes.ItemClick?Object.assign(Object.assign({},n),{isOpen:!0}):n},onIsOpenChange:function(e){e.isOpen?null==a||a():null==m||m()}}),T=D.isOpen,j=D.highlightedIndex,x=D.getToggleButtonProps,y=D.getLabelProps,B=D.getMenuProps,L=D.getItemProps,k=D.reset,F=D.openMenu,R=D.toggleMenu,V=D.closeMenu,q=t((function(){void 0===c&&s([]),k(),null==g||g([])}),[c,s,k,g]);return{isOpen:T,inputValue:"",highlightedIndex:j,selectedItems:P,getSelectedItemProps:M,addSelectedItem:b,removeSelectedItem:C,getToggleButtonProps:x,getLabelProps:y,getMenuProps:B,getInputProps:function(){return{}},getItemProps:L,reset:q,filteredOptions:h,openMenu:F,toggleMenu:R,closeMenu:V,getDropdownProps:w}}export{l as default};
2
+ //# sourceMappingURL=useDropdownMultiSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownMultiSelect.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownMultiSelect.ts"],"sourcesContent":["import { useMemo, useCallback } from \"react\";\nimport { useMultipleSelection, useSelect } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { DropdownGroupOption } from \"../Dropdown.types\";\nimport { BaseListItemData } from \"../../BaseListItem\";\n\nfunction useDropdownMultiSelect<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n selectedItems: T[],\n setSelectedItems: (items: T[]) => void,\n isMenuOpen: boolean,\n autoFocus?: boolean,\n defaultValue?: T[],\n value?: T[],\n onChange?: (options: T[]) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n showSelectedOptions?: boolean,\n filterOption?: (option: T, inputValue: string) => boolean\n) {\n const currentSelectedItems = value !== undefined ? value : selectedItems;\n\n const { filteredOptions } = useDropdownFiltering<T>(options, filterOption, showSelectedOptions, currentSelectedItems);\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n\n const { getSelectedItemProps, addSelectedItem, removeSelectedItem, getDropdownProps } = useMultipleSelection<T>({\n selectedItems: currentSelectedItems,\n initialSelectedItems: defaultValue,\n onSelectedItemsChange: ({ selectedItems: newSelected }) => {\n if (value === undefined) {\n setSelectedItems(newSelected || []);\n }\n onChange?.(newSelected || []);\n }\n });\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useSelect<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n selectedItem: null,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (!newSelectedItem) return;\n const existingItem = currentSelectedItems.find(item => item.value === newSelectedItem.value);\n if (existingItem) {\n removeSelectedItem(existingItem);\n } else {\n addSelectedItem(newSelectedItem);\n }\n onOptionSelect?.(newSelectedItem);\n },\n stateReducer: (state, actionAndChanges) => {\n const { type, changes } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true\n };\n default:\n return changes;\n }\n },\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuOpen?.() : onMenuClose?.();\n }\n });\n\n const reset = useCallback(() => {\n if (value === undefined) {\n setSelectedItems([]);\n }\n downshiftReset();\n onChange?.([]);\n }, [value, setSelectedItems, downshiftReset, onChange]);\n\n const getInputProps = () => ({});\n\n return {\n isOpen,\n inputValue: \"\",\n highlightedIndex,\n selectedItems: currentSelectedItems,\n getSelectedItemProps,\n addSelectedItem,\n removeSelectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu,\n getDropdownProps\n };\n}\n\nexport default useDropdownMultiSelect;\n"],"names":["useDropdownMultiSelect","options","selectedItems","setSelectedItems","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","showSelectedOptions","filterOption","currentSelectedItems","undefined","filteredOptions","useDropdownFiltering","flatOptions","useMemo","flatMap","group","_useMultipleSelection","useMultipleSelection","initialSelectedItems","onSelectedItemsChange","_ref","newSelected","getSelectedItemProps","addSelectedItem","removeSelectedItem","getDropdownProps","_useSelect","useSelect","items","itemToString","item","_a","label","isItemDisabled","disabled","selectedItem","isOpen","initialIsOpen","onSelectedItemChange","_ref2","newSelectedItem","existingItem","find","stateReducer","state","actionAndChanges","changes","type","stateChangeTypes","ItemClick","Object","assign","onIsOpenChange","_ref3","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","downshiftReset","reset","openMenu","toggleMenu","closeMenu","useCallback","inputValue","getInputProps"],"mappings":"0JAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAMC,OAAiCC,IAAVR,EAAsBA,EAAQL,EAEnDc,EAAoBC,EAAwBhB,EAASY,EAAcD,EAAqBE,GAAxFE,gBAEFE,EAAcC,GAAQ,WAAA,OAAMH,EAAgBI,SAAQ,SAAAC,GAAK,OAAIA,EAAMpB,aAAU,CAACe,IAEpFM,EAAwFC,EAAwB,CAC9GrB,cAAeY,EACfU,qBAAsBlB,EACtBmB,sBAAuB,SAAAC,GAAmC,IAAjBC,EAAWD,EAA1BxB,mBACVa,IAAVR,GACFJ,EAAiBwB,GAAe,IAElCnB,SAAAA,EAAWmB,GAAe,GAC5B,IARMC,EAAoBN,EAApBM,qBAAsBC,EAAeP,EAAfO,gBAAiBC,EAAkBR,EAAlBQ,mBAAoBC,EAAgBT,EAAhBS,iBAWnEC,EAWIC,EAAa,CACfC,MAAOhB,EACPiB,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,aAAc,KACdC,OAAQtC,EACRuC,cAAetC,EACfuC,qBAAsB,SAAAC,GAAsC,IAArBC,EAAeD,EAA7BJ,aACvB,GAAKK,EAAL,CACA,IAAMC,EAAejC,EAAqBkC,MAAK,SAAAZ,GAAI,OAAIA,EAAK7B,QAAUuC,EAAgBvC,SAClFwC,EACFjB,EAAmBiB,GAEnBlB,EAAgBiB,GAElBnC,SAAAA,EAAiBmC,EAPK,CAQvB,EACDG,aAAc,SAACC,EAAOC,GACpB,IAAcC,EAAYD,EAAZC,QACd,OAD0BD,EAAlBE,OAEDpB,EAAUqB,iBAAiBC,UAC9BC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACKL,GAAO,CACVV,QAAQ,IAGHU,CAEZ,EACDM,eAAgB,SAAAC,GAASA,EAANjB,OACRjC,SAAAA,IAAiBC,SAAAA,GAC5B,IAzCAgC,EAAMV,EAANU,OACAkB,EAAgB5B,EAAhB4B,iBACAC,EAAoB7B,EAApB6B,qBACAC,EAAa9B,EAAb8B,cACAC,EAAY/B,EAAZ+B,aACAC,EAAYhC,EAAZgC,aACOC,EAAcjC,EAArBkC,MACAC,EAAQnC,EAARmC,SACAC,EAAUpC,EAAVoC,WACAC,EAASrC,EAATqC,UAmCIH,EAAQI,GAAY,gBACVvD,IAAVR,GACFJ,EAAiB,IAEnB8D,IACAzD,SAAAA,EAAW,GACZ,GAAE,CAACD,EAAOJ,EAAkB8D,EAAgBzD,IAI7C,MAAO,CACLkC,OAAAA,EACA6B,WAAY,GACZX,iBAAAA,EACA1D,cAAeY,EACfc,qBAAAA,EACAC,gBAAAA,EACAC,mBAAAA,EACA+B,qBAAAA,EACAC,cAAAA,EACAC,aAAAA,EACAS,cAboB,WAAH,MAAU,IAc3BR,aAAAA,EACAE,MAAAA,EACAlD,gBAAAA,EACAmD,SAAAA,EACAC,WAAAA,EACAC,UAAAA,EACAtC,iBAAAA,EAEJ"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useMemo as t}from"react";import{useSelect as l}from"downshift";import o from"./useDropdownFiltering.js";function i(i,r,u,s,p,g,d,a,f,c,m){var I=n(s||null),P=e(I,2),h=P[1],v=void 0!==p?p:P[0],M=t((function(){return v?[v]:[]}),[v]),O=o(i,m,c,M).filteredOptions,b=t((function(){return O.flatMap((function(e){return e.options}))}),[O]),T=l({items:b,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},isItemDisabled:function(e){return!!e.disabled},isOpen:u,initialIsOpen:r,selectedItem:v,onSelectedItemChange:function(e){var n=e.selectedItem;void 0===p&&h(n||null),n&&(null==f||f(n)),null==g||g(n||null)},onIsOpenChange:function(e){e.isOpen?null==d||d():null==a||a()}}),x=T.reset;return{isOpen:T.isOpen,inputValue:"",highlightedIndex:T.highlightedIndex,selectedItem:v,getToggleButtonProps:T.getToggleButtonProps,getLabelProps:T.getLabelProps,getMenuProps:T.getMenuProps,getInputProps:function(){return{}},getItemProps:T.getItemProps,reset:function(){void 0===p&&h(null),x(),null==g||g(null)},filteredOptions:O,openMenu:T.openMenu,toggleMenu:T.toggleMenu,closeMenu:T.closeMenu}}export{i as default};
2
+ //# sourceMappingURL=useDropdownSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownSelect.js","sources":["../../../../../src/components/DropdownNew/hooks/useDropdownSelect.ts"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { useSelect } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownSelect<T extends BaseListItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n autoFocus?: boolean,\n isMenuOpen?: boolean,\n defaultValue?: T,\n value?: T,\n onChange?: (option: T | T[] | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n showSelectedOptions?: boolean,\n filterOption?: (option: T, inputValue: string) => boolean\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: downshiftReset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useSelect<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n isItemDisabled: item => Boolean(item.disabled),\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n selectedItem: selectedItem,\n onSelectedItemChange: ({ selectedItem: newSelectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(newSelectedItem || null);\n }\n if (newSelectedItem) {\n onOptionSelect?.(newSelectedItem);\n }\n onChange?.(newSelectedItem || null);\n },\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuOpen?.() : onMenuClose?.();\n }\n });\n\n const reset = () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n downshiftReset();\n onChange?.(null);\n };\n\n const getInputProps = () => ({});\n\n return {\n isOpen,\n inputValue: \"\",\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownSelect;\n"],"names":["useDropdownSelect","options","autoFocus","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","showSelectedOptions","filterOption","_useState","useState","_useState2","_slicedToArray","setCurrentSelectedItem","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","filteredOptions","useDropdownFiltering","flatOptions","flatMap","group","_useSelect","useSelect","items","itemToString","item","_a","label","isItemDisabled","disabled","isOpen","initialIsOpen","onSelectedItemChange","_ref","newSelectedItem","onIsOpenChange","_ref2","downshiftReset","reset","inputValue","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getInputProps","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"+MAMA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,IAAAC,EAAsDC,EAAmBT,GAAgB,MAAKU,EAAAC,EAAAH,EAAA,GAAlEI,EAAsBF,EAAA,GAE5CG,OAAyBC,IAAVb,EAAsBA,EAFjBS,EAAA,GAIpBK,EAAmCC,GAAQ,WAC/C,OAAOH,EAAe,CAACA,GAAgB,EACzC,GAAG,CAACA,IAEII,EAAoBC,EAC1BrB,EACAU,EACAD,EACAS,GAJME,gBAOFE,EAAcH,GAAQ,WAAA,OAAMC,EAAgBG,SAAQ,SAAAC,GAAK,OAAIA,EAAMxB,aAAU,CAACoB,IAEpFK,EAWIC,EAAa,CACfC,MAAOL,EACPM,aAAc,SAAAC,GAAO,IAAAC,EAAC,OAAe,QAAfA,EAAAD,eAAAA,EAAME,aAAS,IAAAD,EAAAA,EAAA,EAAE,EACvCE,eAAgB,SAAAH,GAAI,QAAYA,EAAKI,QAAS,EAC9CC,OAAQhC,EACRiC,cAAelC,EACfe,aAAcA,EACdoB,qBAAsB,SAAAC,GAAsC,IAArBC,EAAeD,EAA7BrB,kBACTC,IAAVb,GACFW,EAAuBuB,GAAmB,MAExCA,IACF9B,SAAAA,EAAiB8B,IAEnBjC,SAAAA,EAAWiC,GAAmB,KAC/B,EACDC,eAAgB,SAAAC,GAASA,EAANN,OACR5B,SAAAA,IAAiBC,SAAAA,GAC5B,IAtBOkC,EAAchB,EAArBiB,MAmCF,MAAO,CACLR,OA1CMT,EAANS,OA2CAS,WAAY,GACZC,iBA3CgBnB,EAAhBmB,iBA4CA5B,aAAAA,EACA6B,qBA5CoBpB,EAApBoB,qBA6CAC,cA5CarB,EAAbqB,cA6CAC,aA5CYtB,EAAZsB,aA6CAC,cAVoB,WAAH,MAAU,IAW3BC,aA7CYxB,EAAZwB,aA8CAP,MApBY,gBACEzB,IAAVb,GACFW,EAAuB,MAEzB0B,IACApC,SAAAA,EAAW,OAgBXe,gBAAAA,EACA8B,SA9CQzB,EAARyB,SA+CAC,WA9CU1B,EAAV0B,WA+CAC,UA9CS3B,EAAT2B,UAgDJ"}
@@ -0,0 +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 u=function(u){var i=u.options,r=u.isMenuOpen,s=u.autoFocus,a=u.closeMenuOnSelect,d=void 0===a||a,c=u.defaultValue,p=u.value,g=u.inputValue,m=u.onChange,v=u.onInputChange,f=u.onMenuClose,O=u.onMenuOpen,b=u.onOptionSelect,I=u.filterOption,h=u.showSelectedOptions,P=void 0!==h&&h,M=u.clearable,w=void 0===M||M,j=u.searchable,x=void 0===j||j,B=u.multi,C=void 0!==B&&B,S=u.dropdownRef,y=u.onFocus,D=u.onBlur,F=u.onKeyDown,V=u.onClear,K=u.size,R=void 0===K?"medium":K,T=u.readOnly,z=u.disabled,L=n(!1),_=e(L,2),k=_[0],A=_[1],E=l(i,r,s,d,c,p,g,m,v,f,O,(function(e){null==b||b(e),e&&A(!1)}),I,P),H=E.isOpen,U=E.inputValue,W=E.highlightedIndex,q=E.getToggleButtonProps,G=E.getLabelProps,J=E.getMenuProps,N=E.getItemProps,Q=E.getInputProps,X=E.reset,Y=E.filteredOptions,Z=E.selectedItem,$=E.toggleMenu,ee=Object.assign(Object.assign({},u),{isOpen:H,inputValue:null!=U?U:null,highlightedIndex:W,selectedItem:Z,selectedItems:[],filteredOptions:Y,getToggleButtonProps:q,getLabelProps:G,getMenuProps:J,getItemProps:N,getInputProps:function(e){return Q(Object.assign(Object.assign({},e||{}),{disabled:T||z,onFocus:function(o){var n;A(!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;A(!1),null==D||D(),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:X,contextOnClear:function(){X(),null==V||V()},contextOnOptionRemove:function(){},addSelectedItem:void 0,removeSelectedItem:void 0,isFocused:k,clearable:w,searchable:x,multi:C,closeMenuOnSelect:d,size:R,toggleMenu:$});return o.createElement(t,{contextValue:ee,dropdownRef:S})};export{u as default};
2
+ //# sourceMappingURL=DropdownComboboxController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownComboboxController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownCombobox from \"../hooks/useDropdownCombobox\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { 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 = false,\n clearable = true,\n searchable = true,\n multi = false,\n dropdownRef,\n onFocus,\n onBlur,\n onKeyDown,\n onClear,\n\n size = \"medium\",\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 );\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?.();\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 };\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$size","size","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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"}
@@ -0,0 +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 r=function(r){var u=r.options,i=r.isMenuOpen,s=r.autoFocus,a=r.defaultValue,d=r.value,p=r.inputValue,c=r.onChange,g=r.onInputChange,m=r.onMenuClose,v=r.onMenuOpen,O=r.onOptionSelect,f=r.filterOption,b=r.showSelectedOptions,I=void 0!==b&&b,P=r.clearable,h=void 0===P||P,w=r.searchable,M=void 0===w||w,S=r.multi,j=void 0===S||S,x=r.closeMenuOnSelect,y=void 0===x||x,D=r.dropdownRef,B=r.onFocus,C=r.onBlur,F=r.onKeyDown,V=r.onClear,R=r.onOptionRemove,A=r.size,K=void 0===A?"medium":A,T=n(Array.isArray(a)?a:[]),z=e(T,2),L=z[0],_=z[1],k=n(!1),E=e(k,2),H=E[0],U=E[1],W=t(u,L,_,i,s,a,d,p,c,g,m,v,O,f,I),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.toggleMenu,oe=W.filteredOptions,ne=W.selectedItems,te=W.addSelectedItem,le=W.removeSelectedItem,re=W.getDropdownProps,ue=Object.assign(Object.assign({},r),{isOpen:q,inputValue:null!=G?G:null,highlightedIndex:J,selectedItems:ne||[],filteredOptions:oe,getToggleButtonProps:N,getLabelProps:Q,getMenuProps:X,getItemProps:Y,getInputProps:function(e){return Z(Object.assign(Object.assign({},e||{}),{disabled:r.readOnly||r.disabled,onFocus:function(o){var n;U(!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;U(!1),null==C||C(),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(){$(),void 0===d&&_([]),null==V||V()},contextOnOptionRemove:function(e){le&&le(e),null==R||R(e)},addSelectedItem:te,removeSelectedItem:le,isFocused:H,clearable:h,searchable:M,multi:j,closeMenuOnSelect:y,size:K,getDropdownProps:re,toggleMenu:ee});return o.createElement(l,{contextValue:ue,dropdownRef:D})};export{r as default};
2
+ //# sourceMappingURL=DropdownMultiComboboxController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMultiComboboxController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownMultiComboboxController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiCombobox from \"../hooks/useDropdownMultiCombobox\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { 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 = false,\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 size = \"medium\"\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 );\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?.();\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 };\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$size","size","_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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"}
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{useState as o}from"react";import n from"../hooks/useDropdownMultiSelect.js";import r from"../components/DropdownWrapperUI.js";var l=function(l){var s=l.options,i=l.isMenuOpen,d=l.autoFocus,p=l.defaultValue,a=l.value,u=l.onChange,c=l.onMenuOpen,g=l.onMenuClose,m=l.onOptionSelect,O=l.clearable,f=void 0===O||O,v=l.showSelectedOptions,I=void 0!==v&&v,b=l.filterOption,P=l.dropdownRef,h=l.onClear,M=l.onOptionRemove,j=l.size,w=void 0===j?"medium":j,S=o(Array.isArray(p)?p:[]),x=e(S,2),y=x[1],C=n(s,x[0],y,i,d,p,a,u,c,g,m,I,b),D=C.isOpen,R=C.highlightedIndex,A=C.getToggleButtonProps,B=C.getLabelProps,T=C.getMenuProps,V=C.getItemProps,z=C.reset,L=C.toggleMenu,_=C.filteredOptions,k=C.selectedItems,E=C.addSelectedItem,F=C.removeSelectedItem,H=C.getDropdownProps,U=Object.assign(Object.assign({},l),{isOpen:D,inputValue:null,highlightedIndex:R,selectedItem:void 0,selectedItems:k||[],filteredOptions:_,clearable:f,getToggleButtonProps:function(e){return A(Object.assign(Object.assign({},e||{}),{disabled:l.readOnly||l.disabled}))},getLabelProps:B,getMenuProps:T,getItemProps:V,reset:z,getDropdownProps:H,contextOnClear:function(){z(),void 0===a&&y([]),null==h||h()},contextOnOptionRemove:function(e){F&&F(e),null==M||M(e)},addSelectedItem:E,removeSelectedItem:F,size:w,toggleMenu:L});return t.createElement(r,{contextValue:U,dropdownRef:P})};export{l as default};
2
+ //# sourceMappingURL=DropdownMultiSelectController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMultiSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownMultiSelectController.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { DropdownMultiControllerProps } from \"../Dropdown.types\";\nimport useDropdownMultiSelect from \"../hooks/useDropdownMultiSelect\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownMultiSelectController = <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 onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n clearable = true,\n showSelectedOptions = false,\n filterOption,\n dropdownRef,\n onClear,\n onOptionRemove,\n size = \"medium\"\n } = props;\n\n const initialMultiSelectedItems = Array.isArray(defaultValue) ? defaultValue : [];\n const [multiSelectedItemsState, setMultiSelectedItemsState] = useState<Item[]>(initialMultiSelectedItems);\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItems: hookSelectedItems,\n addSelectedItem: hookAddSelectedItem,\n removeSelectedItem: hookRemoveSelectedItem,\n getDropdownProps\n } = useDropdownMultiSelect<Item>(\n options,\n multiSelectedItemsState,\n setMultiSelectedItemsState,\n isMenuOpenProp,\n autoFocus,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n inputValue: null,\n highlightedIndex,\n selectedItem: undefined,\n selectedItems: hookSelectedItems || [],\n filteredOptions,\n clearable,\n getToggleButtonProps: (toggleOptions?: any) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n getDropdownProps,\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 size,\n toggleMenu\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownMultiSelectController;\n"],"names":["DropdownMultiSelectController","props","options","isMenuOpenProp","isMenuOpen","autoFocus","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","_props$clearable","clearable","_props$showSelectedOp","showSelectedOptions","filterOption","dropdownRef","onClear","onOptionRemove","_props$size","size","_useState","useState","Array","isArray","_useState2","_slicedToArray","setMultiSelectedItemsState","_useDropdownMultiSele","useDropdownMultiSelect","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItems","selectedItems","hookAddSelectedItem","addSelectedItem","hookRemoveSelectedItem","removeSelectedItem","getDropdownProps","contextValue","inputValue","selectedItem","undefined","toggleOptions","Object","assign","disabled","readOnly","contextOnClear","contextOnOptionRemove","option","React","createElement","DropdownWrapperUI"],"mappings":"0NAOA,IAAMA,EAAgC,SACpCC,GAEA,IACEC,EAgBED,EAhBFC,QACYC,EAeVF,EAfFG,WACAC,EAcEJ,EAdFI,UACAC,EAaEL,EAbFK,aACAC,EAYEN,EAZFM,MACAC,EAWEP,EAXFO,SACAC,EAUER,EAVFQ,WACAC,EASET,EATFS,YACAC,EAQEV,EARFU,eAAcC,EAQZX,EAPFY,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EAOdb,EANFc,oBAAAA,OAAsB,IAAHD,GAAQA,EAC3BE,EAKEf,EALFe,aACAC,EAIEhB,EAJFgB,YACAC,EAGEjB,EAHFiB,QACAC,EAEElB,EAFFkB,eAAcC,EAEZnB,EADFoB,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAIjBE,EAA8DC,EAD5BC,MAAMC,QAAQnB,GAAgBA,EAAe,IAC0BoB,EAAAC,EAAAL,EAAA,GAAzEM,EAA0BF,EAAA,GAE1DG,EAcIC,EACF5B,EAjB4BwB,EAAA,GAmB5BE,EACAzB,EACAE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAI,EACAC,GA1BAe,EAAMF,EAANE,OACAC,EAAgBH,EAAhBG,iBACAC,EAAoBJ,EAApBI,qBACAC,EAAaL,EAAbK,cACAC,EAAYN,EAAZM,aACAC,EAAYP,EAAZO,aACOC,EAASR,EAAhBS,MACAC,EAAUV,EAAVU,WACAC,EAAeX,EAAfW,gBACeC,EAAiBZ,EAAhCa,cACiBC,EAAmBd,EAApCe,gBACoBC,EAAsBhB,EAA1CiB,mBACAC,EAAgBlB,EAAhBkB,iBAiBIC,iCACD/C,GAAK,CACR8B,OAAAA,EACAkB,WAAY,KACZjB,iBAAAA,EACAkB,kBAAcC,EACdT,cAAeD,GAAqB,GACpCD,gBAAAA,EACA3B,UAAAA,EACAoB,qBAAsB,SAACmB,GACrB,OAAOnB,EACFoB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAACF,GAAiB,CAAA,GACrB,CAAAG,SAAUtD,EAAMuD,UAAYvD,EAAMsD,WAErC,EACDrB,cAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAE,MAAOD,EACPU,iBAAAA,EACAU,eAAgB,WACdpB,SACcc,IAAV5C,GACFqB,EAA2B,IAE7BV,SAAAA,GACD,EACDwC,sBAAuB,SAACC,GAClBd,GACFA,EAAuBc,GAEzBxC,SAAAA,EAAiBwC,EAClB,EACDf,gBAAiBD,EACjBG,mBAAoBD,EACpBxB,KAAAA,EACAkB,WAAAA,IAGF,OAAOqB,EAAAC,cAACC,EAAiB,CAACd,aAAcA,EAAc/B,YAAaA,GACrE"}
@@ -0,0 +1,2 @@
1
+ import e from"react";import t from"../hooks/useDropdownSelect.js";import o from"../components/DropdownWrapperUI.js";var n=function(n){var l=n.autoFocus,s=n.showSelectedOptions,i=n.clearable,r=void 0===i||i,a=n.searchable,d=void 0!==a&&a,u=n.multi,p=void 0!==u&&u,c=n.dropdownRef,g=n.onClear,m=n.size,O=void 0===m?"medium":m,f=t(n.options,l,n.isMenuOpen,n.defaultValue,n.value,n.onChange,n.onMenuOpen,n.onMenuClose,n.onOptionSelect,void 0!==s&&s,n.filterOption),b=f.isOpen,v=f.highlightedIndex,h=f.getToggleButtonProps,I=f.getLabelProps,P=f.getMenuProps,M=f.getItemProps,j=f.reset,x=f.toggleMenu,w=f.filteredOptions,C=f.selectedItem,S=Object.assign(Object.assign({},n),{isOpen:b,highlightedIndex:v,selectedItem:C,filteredOptions:w,getToggleButtonProps:function(e){return h(Object.assign(Object.assign({},e||{}),{disabled:n.readOnly||n.disabled}))},getLabelProps:I,getMenuProps:P,getItemProps:M,reset:j,inputValue:null,selectedItems:[],addSelectedItem:void 0,removeSelectedItem:void 0,contextOnClear:function(){j(),null==g||g()},contextOnOptionRemove:function(){},clearable:r,searchable:d,multi:p,autoFocus:l,onClear:g,size:O,toggleMenu:x});return e.createElement(o,{contextValue:S,dropdownRef:c})};export{n as default};
2
+ //# sourceMappingURL=DropdownSelectController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownSelectController.js","sources":["../../../../../src/components/DropdownNew/modes/DropdownSelectController.tsx"],"sourcesContent":["import React from \"react\";\nimport { DropdownSingleControllerProps } from \"../Dropdown.types\";\nimport useDropdownSelect from \"../hooks/useDropdownSelect\";\nimport { BaseListItemData } from \"../../BaseListItem\";\nimport { DropdownContextProps } from \"../context/DropdownContext.types\";\nimport DropdownWrapperUI from \"../components/DropdownWrapperUI\";\n\nconst DropdownSelectController = <Item extends BaseListItemData<Record<string, unknown>>>(\n props: DropdownSingleControllerProps<Item>\n) => {\n const {\n options,\n autoFocus,\n isMenuOpen: isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions = false,\n filterOption,\n clearable = true,\n searchable = false,\n multi = false,\n dropdownRef,\n onClear,\n size = \"medium\"\n } = props;\n\n const {\n isOpen,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n toggleMenu,\n filteredOptions,\n selectedItem: hookSelectedItem\n } = useDropdownSelect<Item>(\n options,\n autoFocus,\n isMenuOpenProp,\n defaultValue,\n value,\n onChange,\n onMenuOpen,\n onMenuClose,\n onOptionSelect,\n showSelectedOptions,\n filterOption\n );\n\n const contextValue: DropdownContextProps<Item> = {\n ...props,\n isOpen,\n highlightedIndex,\n selectedItem: hookSelectedItem,\n filteredOptions,\n getToggleButtonProps: (toggleOptions?: any) => {\n return getToggleButtonProps({\n ...(toggleOptions || {}),\n disabled: props.readOnly || props.disabled\n });\n },\n getLabelProps,\n getMenuProps,\n getItemProps,\n reset: hookReset,\n inputValue: null,\n selectedItems: [],\n addSelectedItem: undefined,\n removeSelectedItem: undefined,\n contextOnClear: () => {\n hookReset();\n onClear?.();\n },\n contextOnOptionRemove: () => {},\n clearable,\n searchable,\n multi,\n autoFocus,\n onClear,\n size,\n toggleMenu\n };\n\n return <DropdownWrapperUI contextValue={contextValue} dropdownRef={dropdownRef} />;\n};\n\nexport default DropdownSelectController;\n"],"names":["DropdownSelectController","props","autoFocus","_props$showSelectedOp","showSelectedOptions","_props$clearable","clearable","_props$searchable","searchable","_props$multi","multi","dropdownRef","onClear","_props$size","size","_useDropdownSelect","useDropdownSelect","options","isMenuOpen","defaultValue","value","onChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","isOpen","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","getItemProps","hookReset","reset","toggleMenu","filteredOptions","hookSelectedItem","selectedItem","contextValue","Object","assign","toggleOptions","disabled","readOnly","inputValue","selectedItems","addSelectedItem","undefined","removeSelectedItem","contextOnClear","contextOnOptionRemove","React","createElement","DropdownWrapperUI"],"mappings":"oHAOA,IAAMA,EAA2B,SAC/BC,GAEA,IAEEC,EAgBED,EAhBFC,UAOcC,EASZF,EARFG,oBACYC,EAOVJ,EANFK,UAAAA,OAAY,IAAHD,GAAOA,EAAAE,EAMdN,EALFO,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAKhBR,EAJFS,MAAAA,OAAQ,IAAHD,GAAQA,EACbE,EAGEV,EAHFU,YACAC,EAEEX,EAFFW,QAAOC,EAELZ,EADFa,KAAAA,OAAO,IAAHD,EAAG,SAAQA,EAGjBE,EAWIC,EAbAf,EAjBFgB,QAgCAf,EAfED,EAfFiB,WAeEjB,EAdFkB,aAcElB,EAbFmB,MAaEnB,EAZFoB,SAYEpB,EAXFqB,WAWErB,EAVFsB,YAUEtB,EATFuB,oBACsB,IAAHrB,GAAQA,EAQzBF,EAPFwB,cAUAC,EAAMX,EAANW,OACAC,EAAgBZ,EAAhBY,iBACAC,EAAoBb,EAApBa,qBACAC,EAAad,EAAbc,cACAC,EAAYf,EAAZe,aACAC,EAAYhB,EAAZgB,aACOC,EAASjB,EAAhBkB,MACAC,EAAUnB,EAAVmB,WACAC,EAAepB,EAAfoB,gBACcC,EAAgBrB,EAA9BsB,aAeIC,EAAYC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACbvC,GAAK,CACRyB,OAAAA,EACAC,iBAAAA,EACAU,aAAcD,EACdD,gBAAAA,EACAP,qBAAsB,SAACa,GACrB,OAAOb,EACFW,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAACC,GAAiB,CAAA,GACrB,CAAAC,SAAUzC,EAAM0C,UAAY1C,EAAMyC,WAErC,EACDb,cAAAA,EACAC,aAAAA,EACAC,aAAAA,EACAE,MAAOD,EACPY,WAAY,KACZC,cAAe,GACfC,qBAAiBC,EACjBC,wBAAoBD,EACpBE,eAAgB,WACdjB,IACApB,SAAAA,GACD,EACDsC,sBAAuB,WAAQ,EAC/B5C,UAAAA,EACAE,WAAAA,EACAE,MAAAA,EACAR,UAAAA,EACAU,QAAAA,EACAE,KAAAA,EACAoB,WAAAA,IAGF,OAAOiB,EAAAC,cAACC,EAAiB,CAACf,aAAcA,EAAc3B,YAAaA,GACrE"}
@@ -0,0 +1,2 @@
1
+ var e=[{name:"matchWidth",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(e){var t=e.state;t.rects&&t.rects.reference&&(t.styles.popper.width="".concat(t.rects.reference.width,"px"))}}];export{e as matchWidthModifier};
2
+ //# sourceMappingURL=dropdown-modifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-modifiers.js","sources":["../../../../../src/components/DropdownNew/utils/dropdown-modifiers.ts"],"sourcesContent":["import { Modifier } from \"react-popper\";\n\nexport const matchWidthModifier: Modifier<any>[] = [\n {\n name: \"matchWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n if (state.rects && state.rects.reference) {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n }\n }\n }\n];\n"],"names":["matchWidthModifier","name","enabled","phase","requires","fn","_ref","state","rects","reference","styles","popper","width","concat"],"mappings":"AAEO,IAAMA,EAAsC,CACjD,CACEC,KAAM,aACNC,SAAS,EACTC,MAAO,cACPC,SAAU,CAAC,iBACXC,GAAI,SAAAC,GAAc,IAAXC,EAAKD,EAALC,MACDA,EAAMC,OAASD,EAAMC,MAAMC,YAC7BF,EAAMG,OAAOC,OAAOC,MAAKC,GAAAA,OAAMN,EAAMC,MAAMC,UAAUG,MAAS,MAElE"}
@@ -0,0 +1,2 @@
1
+ function n(n,t,e){var r=3>=arguments.length||void 0===arguments[3]||arguments[3],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],o=0,u=e||function(n,t){return!t||n.label.toLowerCase().includes(t.toLowerCase())},a=function(n){return i.some((function(t){return t.value===n.value}))};return Array.isArray(n)&&n.some((function(n){return"options"in n}))?n.flatMap((function(n){var e=n.options.filter((function(n){var e=u(n,t||"");return!(!r&&a(n))&&e})).map((function(n){return Object.assign(Object.assign({},n),{index:o++})}));return e.length>0?[Object.assign(Object.assign({},n),{options:e})]:[]})):[{label:void 0,options:n.filter((function(n){var e=u(n,t||"");return!(!r&&a(n))&&e})).map((function(n){return Object.assign(Object.assign({},n),{index:o++})}))}]}export{n as normalizeOptions};
2
+ //# sourceMappingURL=dropdownUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdownUtils.js","sources":["../../../../../src/components/DropdownNew/utils/dropdownUtils.ts"],"sourcesContent":["import { BaseListItemData } from \"../../BaseListItem\";\nimport { ListGroup } from \"../../BaseList\";\n\nexport function normalizeOptions<Item extends BaseListItemData>(\n options: ListGroup<Item>[] | BaseListItemData<Item>[],\n filter?: string,\n filterOption?: (option: Item, inputValue: string) => boolean,\n showSelectedOptions = true,\n selectedItems: Item[] = []\n): ListGroup<Item>[] {\n let indexCounter = 0;\n const defaultFilterFn = (item: Item, inputValue: string) =>\n !inputValue || item.label.toLowerCase().includes(inputValue.toLowerCase());\n const currentFilterFn = filterOption || defaultFilterFn;\n\n const isItemSelected = (item: Item) => selectedItems.some(selected => selected.value === item.value);\n\n return Array.isArray(options) && options.some(item => \"options\" in item)\n ? (options as ListGroup<Item>[]).flatMap(group => {\n const filteredGroupOptions = group.options\n .filter(item => {\n const matchesFilter = currentFilterFn(item, filter || \"\");\n if (!showSelectedOptions && isItemSelected(item)) {\n return false;\n }\n return matchesFilter;\n })\n .map(item => ({ ...item, index: indexCounter++ }));\n\n return filteredGroupOptions.length > 0 ? [{ ...group, options: filteredGroupOptions }] : [];\n })\n : [\n {\n label: undefined,\n options: (options as BaseListItemData<Item>[])\n .filter(item => {\n const matchesFilter = currentFilterFn(item, filter || \"\");\n if (!showSelectedOptions && isItemSelected(item)) {\n return false;\n }\n return matchesFilter;\n })\n .map(item => ({ ...item, index: indexCounter++ }))\n }\n ];\n}\n"],"names":["normalizeOptions","options","filter","filterOption","showSelectedOptions","arguments","length","undefined","selectedItems","indexCounter","currentFilterFn","item","inputValue","label","toLowerCase","includes","isItemSelected","some","selected","value","Array","isArray","flatMap","group","filteredGroupOptions","matchesFilter","map","Object","assign","index"],"mappings":"AAGgB,SAAAA,EACdC,EACAC,EACAC,GAE0B,IAD1BC,EAAmB,GAAAC,UAAAC,aAAAC,IAAAF,UAAA,IAAAA,UAAA,GACnBG,yDAAwB,GAEpBC,EAAe,EAGbC,EAAkBP,GAFA,SAACQ,EAAYC,GAAkB,OACpDA,GAAcD,EAAKE,MAAMC,cAAcC,SAASH,EAAWE,cAAc,EAGtEE,EAAiB,SAACL,GAAU,OAAKH,EAAcS,MAAK,SAAAC,GAAQ,OAAIA,EAASC,QAAUR,EAAKQ,QAAM,EAEpG,OAAOC,MAAMC,QAAQpB,IAAYA,EAAQgB,MAAK,SAAAN,GAAI,MAAI,YAAaA,CAAI,IAClEV,EAA8BqB,SAAQ,SAAAC,GACrC,IAAMC,EAAuBD,EAAMtB,QAChCC,QAAO,SAAAS,GACN,IAAMc,EAAgBf,EAAgBC,EAAMT,GAAU,IACtD,SAAKE,GAAuBY,EAAeL,KAGpCc,CACT,IACCC,KAAI,SAAAf,GAAI,OAAUgB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAjB,GAAM,CAAAkB,MAAOpB,KAAc,IAEhD,OAAOe,EAAqBlB,OAAS,EAAI,CAAAqB,OAAAC,OAAAD,OAAAC,OAAA,GAAML,GAAO,CAAAtB,QAASuB,KAA0B,EAC1F,IACD,CACE,CACEX,WAAON,EACPN,QAAUA,EACPC,QAAO,SAAAS,GACN,IAAMc,EAAgBf,EAAgBC,EAAMT,GAAU,IACtD,SAAKE,GAAuBY,EAAeL,KAGpCc,CACT,IACCC,KAAI,SAAAf,GAAI,OAAIgB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAMjB,GAAI,CAAEkB,MAAOpB,UAG5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { ReactElement, useCallback, useEffect, useMemo, useRef, JSX } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { IconSubComponentProps } from \"../Icon/Icon\";\nimport Text from \"../Text/Text\";\nimport Loader from \"../Loader/Loader\";\nimport Flex from \"../Flex/Flex\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport ToastLink from \"./ToastLink/ToastLink\";\nimport ToastButton from \"./ToastButton/ToastButton\";\nimport { ToastActionType as ToastActionTypeEnum, ToastType as ToastTypeEnum } from \"./ToastConstants\";\nimport { ToastType, ToastAction } from \"./Toast.types\";\nimport { getIcon } from \"./ToastHelpers\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { VibeComponentProps, withStaticPropsWithoutForwardRef } from \"../../types\";\nimport styles from \"./Toast.module.scss\";\nimport IconButton from \"../IconButton/IconButton\";\nimport usePrevious from \"../../hooks/usePrevious\";\n\nexport interface ToastProps extends VibeComponentProps {\n /**\n * The actions available in the toast.\n */\n actions?: ToastAction[];\n /**\n * If true, the toast is open (visible).\n */\n open?: boolean;\n /**\n * If true, displays a loading indicator inside the toast.\n */\n loading?: boolean;\n /**\n * The type of toast.\n */\n type?: ToastType;\n /**\n * The icon displayed in the toast.\n */\n icon?: string | React.FC<IconSubComponentProps> | null;\n /**\n * If true, hides the toast icon.\n */\n hideIcon?: boolean;\n /**\n * The action element displayed in the toast.\n */\n action?: JSX.Element;\n /**\n * If false, hides the close button.\n */\n closeable?: boolean;\n /**\n * Callback fired when the toast is closed.\n */\n onClose?: () => void;\n /**\n * The number of milliseconds before the toast automatically closes.\n * (0 or null disables auto-close behavior).\n */\n autoHideDuration?: number;\n /**\n * The content displayed inside the toast.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * The aria-label for the close button.\n */\n closeButtonAriaLabel?: string;\n}\n\nconst Toast = ({\n open = false,\n loading = false,\n autoHideDuration = null,\n type = \"normal\",\n icon,\n hideIcon = false,\n action: deprecatedAction,\n actions,\n children,\n closeable = true,\n onClose = NOOP,\n className,\n id,\n closeButtonAriaLabel = \"Close\",\n \"data-testid\": dataTestId\n}: ToastProps) => {\n const ref = useRef(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n const prevActions = usePrevious(actions?.length);\n const toastLinks = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"link\")\n .map(({ type: _type, ...otherProps }) => (\n <ToastLink key={otherProps.href} className={styles.actionLink} {...otherProps} />\n ))\n : null;\n }, [actions]);\n\n const shouldShowButtonTransition = useMemo(() => {\n return prevActions !== undefined && actions?.length !== prevActions;\n }, [actions, prevActions]);\n\n const toastButtons: JSX.Element[] | null = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"button\")\n .map(({ type: _type, content, ...otherProps }, index) => (\n <ToastButton\n key={`alert-button-${index}`}\n className={cx(styles.actionButton, { [styles.withTransition]: shouldShowButtonTransition })}\n {...otherProps}\n >\n {content}\n </ToastButton>\n ))\n : null;\n }, [actions, shouldShowButtonTransition]);\n\n const classNames = useMemo(\n () => cx(styles.toast, getStyle(styles, camelCase(\"type-\" + type)), className),\n [type, className]\n );\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n /* Timer */\n const timerAutoHide = useRef<NodeJS.Timeout>();\n const setAutoHideTimer = useCallback(\n (duration: number) => {\n if (!onClose || duration == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose();\n }, duration);\n },\n [handleClose, onClose]\n );\n\n useEffect(() => {\n if (open && autoHideDuration > 0) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n const iconElement = !hideIcon && getIcon(type, icon);\n\n // https://n12v.com/css-transition-to-from-auto/\n const recalculateElementWidth = useCallback((element: HTMLElement) => {\n const prevWidth = element.style.width;\n element.style.width = \"auto\";\n const endWidth = getComputedStyle(element).width;\n element.style.width = prevWidth;\n element.offsetWidth; // force repaint\n element.style.width = endWidth;\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n recalculateElementWidth(ref.current);\n }\n }, [children, recalculateElementWidth]);\n\n return (\n <CSSTransition\n in={open}\n nodeRef={nodeRef}\n classNames={{ enterActive: styles.enterActive, exitActive: styles.exitActive }}\n timeout={400}\n unmountOnExit\n >\n <Text\n ref={nodeRef}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TOAST, id)}\n type=\"text2\"\n element=\"div\"\n color=\"fixedLight\"\n className={classNames}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {iconElement && <div className={cx(styles.icon)}>{iconElement}</div>}\n <Flex align=\"center\" gap=\"large\" className={styles.content}>\n <Flex\n gap=\"medium\"\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CONTENT)}\n className={styles.textContent}\n >\n <span>{children}</span>\n {toastLinks}\n </Flex>\n {(toastButtons || deprecatedAction) && (toastButtons || deprecatedAction)}\n {loading && <Loader size=\"xs\" />}\n </Flex>\n {closeable && (\n <IconButton\n className={cx(styles.closeButton)}\n onClick={handleClose}\n size=\"small\"\n kind=\"tertiary\"\n color=\"fixed-light\"\n ariaLabel={closeButtonAriaLabel}\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CLOSE_BUTTON)}\n icon={CloseSmall}\n hideTooltip\n />\n )}\n </Text>\n </CSSTransition>\n );\n};\n\ninterface ToastStaticProps {\n types: typeof ToastTypeEnum;\n actionTypes: typeof ToastActionTypeEnum;\n}\n\nexport default withStaticPropsWithoutForwardRef<ToastProps, ToastStaticProps>(Toast, {\n types: ToastTypeEnum,\n actionTypes: ToastActionTypeEnum\n});\n"],"names":["withStaticPropsWithoutForwardRef","_ref","_ref$open","open","_ref$loading","loading","_ref$autoHideDuration","autoHideDuration","_ref$type","type","icon","_ref$hideIcon","hideIcon","deprecatedAction","action","actions","children","_ref$closeable","closeable","_ref$onClose","onClose","NOOP","className","id","_ref$closeButtonAriaL","closeButtonAriaLabel","dataTestId","ref","useRef","nodeRef","prevActions","usePrevious","length","toastLinks","useMemo","filter","map","_a","otherProps","__rest","React","createElement","ToastLink","key","href","styles","actionLink","shouldShowButtonTransition","undefined","toastButtons","index","content","ToastButton","Object","assign","concat","cx","actionButton","_defineProperty","withTransition","classNames","toast","getStyle","camelCase","handleClose","useCallback","timerAutoHide","setAutoHideTimer","duration","clearTimeout","current","setTimeout","useEffect","iconElement","getIcon","recalculateElementWidth","element","prevWidth","style","width","endWidth","getComputedStyle","CSSTransition","in","enterActive","exitActive","timeout","unmountOnExit","Text","getTestId","ComponentDefaultTestId","TOAST","color","role","Flex","align","gap","TOAST_CONTENT","textContent","Loader","size","IconButton","closeButton","onClick","kind","ariaLabel","TOAST_CLOSE_BUTTON","CloseSmall","hideTooltip","types","ToastTypeEnum","actionTypes","ToastActionTypeEnum"],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { camelCase } from \"lodash-es\";\nimport { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport React, { ReactElement, useCallback, useEffect, useMemo, useRef } from \"react\";\nimport { CSSTransition } from \"react-transition-group\";\nimport { IconSubComponentProps } from \"../Icon/Icon\";\nimport Text from \"../Text/Text\";\nimport Loader from \"../Loader/Loader\";\nimport Flex from \"../Flex/Flex\";\nimport { CloseSmall } from \"@vibe/icons\";\nimport ToastLink from \"./ToastLink/ToastLink\";\nimport ToastButton from \"./ToastButton/ToastButton\";\nimport { ToastActionType as ToastActionTypeEnum, ToastType as ToastTypeEnum } from \"./ToastConstants\";\nimport { ToastType, ToastAction } from \"./Toast.types\";\nimport { getIcon } from \"./ToastHelpers\";\nimport { NOOP } from \"../../utils/function-utils\";\nimport { getStyle } from \"../../helpers/typesciptCssModulesHelper\";\nimport { VibeComponentProps, withStaticPropsWithoutForwardRef } from \"../../types\";\nimport styles from \"./Toast.module.scss\";\nimport IconButton from \"../IconButton/IconButton\";\nimport usePrevious from \"../../hooks/usePrevious\";\n\nexport interface ToastProps extends VibeComponentProps {\n /**\n * The actions available in the toast.\n */\n actions?: ToastAction[];\n /**\n * If true, the toast is open (visible).\n */\n open?: boolean;\n /**\n * If true, displays a loading indicator inside the toast.\n */\n loading?: boolean;\n /**\n * The type of toast.\n */\n type?: ToastType;\n /**\n * The icon displayed in the toast.\n */\n icon?: string | React.FC<IconSubComponentProps> | null;\n /**\n * If true, hides the toast icon.\n */\n hideIcon?: boolean;\n /**\n * The action element displayed in the toast.\n */\n action?: JSX.Element;\n /**\n * If false, hides the close button.\n */\n closeable?: boolean;\n /**\n * Callback fired when the toast is closed.\n */\n onClose?: () => void;\n /**\n * The number of milliseconds before the toast automatically closes.\n * (0 or null disables auto-close behavior).\n */\n autoHideDuration?: number;\n /**\n * The content displayed inside the toast.\n */\n children?: ReactElement | ReactElement[] | string;\n /**\n * The aria-label for the close button.\n */\n closeButtonAriaLabel?: string;\n}\n\nconst Toast = ({\n open = false,\n loading = false,\n autoHideDuration = null,\n type = \"normal\",\n icon,\n hideIcon = false,\n action: deprecatedAction,\n actions,\n children,\n closeable = true,\n onClose = NOOP,\n className,\n id,\n closeButtonAriaLabel = \"Close\",\n \"data-testid\": dataTestId\n}: ToastProps) => {\n const ref = useRef(null);\n const nodeRef = useRef<HTMLDivElement>(null);\n const prevActions = usePrevious(actions?.length);\n const toastLinks = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"link\")\n .map(({ type: _type, ...otherProps }) => (\n <ToastLink key={otherProps.href} className={styles.actionLink} {...otherProps} />\n ))\n : null;\n }, [actions]);\n\n const shouldShowButtonTransition = useMemo(() => {\n return prevActions !== undefined && actions?.length !== prevActions;\n }, [actions, prevActions]);\n\n const toastButtons: JSX.Element[] | null = useMemo(() => {\n return actions\n ? actions\n .filter(action => action.type === \"button\")\n .map(({ type: _type, content, ...otherProps }, index) => (\n <ToastButton\n key={`alert-button-${index}`}\n className={cx(styles.actionButton, { [styles.withTransition]: shouldShowButtonTransition })}\n {...otherProps}\n >\n {content}\n </ToastButton>\n ))\n : null;\n }, [actions, shouldShowButtonTransition]);\n\n const classNames = useMemo(\n () => cx(styles.toast, getStyle(styles, camelCase(\"type-\" + type)), className),\n [type, className]\n );\n\n const handleClose = useCallback(() => {\n if (onClose) {\n onClose();\n }\n }, [onClose]);\n\n /* Timer */\n const timerAutoHide = useRef<NodeJS.Timeout>();\n const setAutoHideTimer = useCallback(\n (duration: number) => {\n if (!onClose || duration == null) {\n return;\n }\n\n clearTimeout(timerAutoHide.current);\n timerAutoHide.current = setTimeout(() => {\n handleClose();\n }, duration);\n },\n [handleClose, onClose]\n );\n\n useEffect(() => {\n if (open && autoHideDuration > 0) {\n setAutoHideTimer(autoHideDuration);\n }\n\n return () => {\n clearTimeout(timerAutoHide.current);\n };\n }, [open, autoHideDuration, setAutoHideTimer]);\n\n const iconElement = !hideIcon && getIcon(type, icon);\n\n // https://n12v.com/css-transition-to-from-auto/\n const recalculateElementWidth = useCallback((element: HTMLElement) => {\n const prevWidth = element.style.width;\n element.style.width = \"auto\";\n const endWidth = getComputedStyle(element).width;\n element.style.width = prevWidth;\n element.offsetWidth; // force repaint\n element.style.width = endWidth;\n }, []);\n\n useEffect(() => {\n if (ref.current) {\n recalculateElementWidth(ref.current);\n }\n }, [children, recalculateElementWidth]);\n\n return (\n <CSSTransition\n in={open}\n nodeRef={nodeRef}\n classNames={{ enterActive: styles.enterActive, exitActive: styles.exitActive }}\n timeout={400}\n unmountOnExit\n >\n <Text\n ref={nodeRef}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.TOAST, id)}\n type=\"text2\"\n element=\"div\"\n color=\"fixedLight\"\n className={classNames}\n role=\"alert\"\n aria-live=\"polite\"\n >\n {iconElement && <div className={cx(styles.icon)}>{iconElement}</div>}\n <Flex align=\"center\" gap=\"large\" className={styles.content}>\n <Flex\n gap=\"medium\"\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CONTENT)}\n className={styles.textContent}\n >\n <span>{children}</span>\n {toastLinks}\n </Flex>\n {(toastButtons || deprecatedAction) && (toastButtons || deprecatedAction)}\n {loading && <Loader size=\"xs\" />}\n </Flex>\n {closeable && (\n <IconButton\n className={cx(styles.closeButton)}\n onClick={handleClose}\n size=\"small\"\n kind=\"tertiary\"\n color=\"fixed-light\"\n ariaLabel={closeButtonAriaLabel}\n data-testid={getTestId(ComponentDefaultTestId.TOAST_CLOSE_BUTTON)}\n icon={CloseSmall}\n hideTooltip\n />\n )}\n </Text>\n </CSSTransition>\n );\n};\n\ninterface ToastStaticProps {\n types: typeof ToastTypeEnum;\n actionTypes: typeof ToastActionTypeEnum;\n}\n\nexport default withStaticPropsWithoutForwardRef<ToastProps, ToastStaticProps>(Toast, {\n types: ToastTypeEnum,\n actionTypes: ToastActionTypeEnum\n});\n"],"names":["withStaticPropsWithoutForwardRef","_ref","_ref$open","open","_ref$loading","loading","_ref$autoHideDuration","autoHideDuration","_ref$type","type","icon","_ref$hideIcon","hideIcon","deprecatedAction","action","actions","children","_ref$closeable","closeable","_ref$onClose","onClose","NOOP","className","id","_ref$closeButtonAriaL","closeButtonAriaLabel","dataTestId","ref","useRef","nodeRef","prevActions","usePrevious","length","toastLinks","useMemo","filter","map","_a","otherProps","__rest","React","createElement","ToastLink","key","href","styles","actionLink","shouldShowButtonTransition","undefined","toastButtons","index","content","ToastButton","Object","assign","concat","cx","actionButton","_defineProperty","withTransition","classNames","toast","getStyle","camelCase","handleClose","useCallback","timerAutoHide","setAutoHideTimer","duration","clearTimeout","current","setTimeout","useEffect","iconElement","getIcon","recalculateElementWidth","element","prevWidth","style","width","endWidth","getComputedStyle","CSSTransition","in","enterActive","exitActive","timeout","unmountOnExit","Text","getTestId","ComponentDefaultTestId","TOAST","color","role","Flex","align","gap","TOAST_CONTENT","textContent","Loader","size","IconButton","closeButton","onClick","kind","ariaLabel","TOAST_CLOSE_BUTTON","CloseSmall","hideTooltip","types","ToastTypeEnum","actionTypes","ToastActionTypeEnum"],"mappings":"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"}
@@ -1,2 +1,2 @@
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";
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 Dropdown}from"./DropdownNew/Dropdown.js";
2
2
  //# sourceMappingURL=next.js.map
@@ -0,0 +1,2 @@
1
+ import{slicedToArray as r}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as e,useCallback as t}from"react";import u from"../ssr/useIsomorphicLayoutEffect.js";function i(i){var c=i.containerRef,o=i.gap,l=i.deductedSpaceRef,f=i.itemRefs,a=n(f.length),s=r(a,2),g=s[0],d=s[1],h=e([]),v=e(0),m=e(!1),p=t((function(){var r=null==c?void 0:c.current;if(r&&f.length){for(var n=r.offsetWidth-v.current,e=0,t=0,u=Math.min(f.length,h.current.length),i=0;u>i;i++){var l=h.current[i],a=i>0?l+o:l;if(e+a>n)break;e+=a,t++}d(t)}else d(f.length)}),[c,f,o]),R=t((function(){v.current=(null==l?void 0:l.current)?l.current.getBoundingClientRect().width:0}),[l]),b=t((function(){m.current||(m.current=!0,requestAnimationFrame((function(){try{if(!c.current||!f.length)return void d(f.length);R();var r=f.map((function(r){return r.current})).filter((function(r){return null!==r}));if(0===r.length)return d(0),void(h.current=[]);h.current=r.map((function(r){return r.getBoundingClientRect().width})),p()}finally{m.current=!1}})))}),[c,f,p,R]);return u((function(){if(c.current){var r=new ResizeObserver((function(){f.length>0?h.current.length?(R(),p()):b():(d(0),h.current=[])}));return r.observe(c.current),(null==l?void 0:l.current)&&r.observe(l.current),function(){return r.disconnect()}}}),[c,l,R,p,b,f]),u((function(){f.length>0?b():(d(0),h.current=[])}),[f,b]),g}export{i as default};
2
+ //# sourceMappingURL=useItemsOverflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useItemsOverflow.js","sources":["../../../../src/hooks/useItemsOverflow/useItemsOverflow.ts"],"sourcesContent":["import { RefObject, useCallback, useState, useRef } from \"react\";\nimport useIsomorphicLayoutEffect from \"../ssr/useIsomorphicLayoutEffect\";\n\n/**\n * Custom hook that calculates how many items can fit in a container without overflowing\n */\nexport default function useItemsOverflow({\n containerRef,\n gap,\n deductedSpaceRef,\n itemRefs\n}: {\n containerRef: RefObject<HTMLElement>;\n gap: number;\n deductedSpaceRef?: RefObject<HTMLElement>;\n itemRefs: RefObject<HTMLElement>[];\n}) {\n const [visibleCount, setVisibleCount] = useState<number>(itemRefs.length);\n const itemWidthsRef = useRef<number[]>([]);\n const deductedWidthRef = useRef<number>(0);\n const isCalculatingRef = useRef(false);\n\n const calculateFromCachedWidths = useCallback(() => {\n const container = containerRef?.current;\n if (!container || !itemRefs.length) {\n setVisibleCount(itemRefs.length);\n return;\n }\n\n const containerWidth = container.offsetWidth;\n const deductedWidth = deductedWidthRef.current;\n const availableWidth = containerWidth - deductedWidth;\n\n let totalItemsWidth = 0;\n let count = 0;\n\n const maxIter = Math.min(itemRefs.length, itemWidthsRef.current.length);\n\n for (let i = 0; i < maxIter; i++) {\n const itemWidth = itemWidthsRef.current[i];\n const itemWidthWithGap = i > 0 ? itemWidth + gap : itemWidth;\n\n if (totalItemsWidth + itemWidthWithGap <= availableWidth) {\n totalItemsWidth += itemWidthWithGap;\n count++;\n } else {\n break;\n }\n }\n setVisibleCount(count);\n }, [containerRef, itemRefs, gap]);\n\n const measureDeductedWidth = useCallback(() => {\n if (deductedSpaceRef?.current) {\n deductedWidthRef.current = deductedSpaceRef.current.getBoundingClientRect().width;\n } else {\n deductedWidthRef.current = 0;\n }\n }, [deductedSpaceRef]);\n\n const measureAndCacheItems = useCallback(() => {\n if (isCalculatingRef.current) return;\n isCalculatingRef.current = true;\n\n requestAnimationFrame(() => {\n try {\n const container = containerRef.current;\n if (!container || !itemRefs.length) {\n setVisibleCount(itemRefs.length);\n return;\n }\n\n measureDeductedWidth();\n\n const itemElements = itemRefs.map(ref => ref.current).filter(el => el !== null) as HTMLElement[];\n\n if (itemElements.length === 0) {\n setVisibleCount(0);\n itemWidthsRef.current = [];\n return;\n }\n\n itemWidthsRef.current = itemElements.map(item => item.getBoundingClientRect().width);\n calculateFromCachedWidths();\n } finally {\n isCalculatingRef.current = false;\n }\n });\n }, [containerRef, itemRefs, calculateFromCachedWidths, measureDeductedWidth]);\n\n useIsomorphicLayoutEffect(() => {\n if (!containerRef.current) return;\n\n const resizeObserver = new ResizeObserver(() => {\n if (itemRefs.length > 0) {\n if (itemWidthsRef.current.length) {\n measureDeductedWidth();\n calculateFromCachedWidths();\n } else {\n measureAndCacheItems();\n }\n } else {\n setVisibleCount(0);\n itemWidthsRef.current = [];\n }\n });\n\n resizeObserver.observe(containerRef.current);\n\n if (deductedSpaceRef?.current) {\n resizeObserver.observe(deductedSpaceRef.current);\n }\n\n return () => resizeObserver.disconnect();\n }, [containerRef, deductedSpaceRef, measureDeductedWidth, calculateFromCachedWidths, measureAndCacheItems, itemRefs]);\n\n useIsomorphicLayoutEffect(() => {\n if (itemRefs.length > 0) {\n measureAndCacheItems();\n } else {\n setVisibleCount(0);\n itemWidthsRef.current = [];\n }\n }, [itemRefs, measureAndCacheItems]);\n\n return visibleCount;\n}\n"],"names":["useItemsOverflow","_ref","containerRef","gap","deductedSpaceRef","itemRefs","_useState","useState","length","_useState2","_slicedToArray","visibleCount","setVisibleCount","itemWidthsRef","useRef","deductedWidthRef","isCalculatingRef","calculateFromCachedWidths","useCallback","container","current","availableWidth","offsetWidth","totalItemsWidth","count","maxIter","Math","min","i","itemWidth","itemWidthWithGap","measureDeductedWidth","getBoundingClientRect","width","measureAndCacheItems","requestAnimationFrame","itemElements","map","ref","filter","el","item","useIsomorphicLayoutEffect","resizeObserver","ResizeObserver","observe","disconnect"],"mappings":"gMAMwB,SAAAA,EAAgBC,GAUvC,IATCC,EAAYD,EAAZC,aACAC,EAAGF,EAAHE,IACAC,EAAgBH,EAAhBG,iBACAC,EAAQJ,EAARI,SAOAC,EAAwCC,EAAiBF,EAASG,QAAOC,EAAAC,EAAAJ,EAAA,GAAlEK,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAC9BI,EAAgBC,EAAiB,IACjCC,EAAmBD,EAAe,GAClCE,EAAmBF,GAAO,GAE1BG,EAA4BC,GAAY,WAC5C,IAAMC,EAAYjB,aAAA,EAAAA,EAAckB,QAChC,GAAKD,GAAcd,EAASG,OAA5B,CAcA,IATA,IAEMa,EAFiBF,EAAUG,YACXP,EAAiBK,QAGnCG,EAAkB,EAClBC,EAAQ,EAENC,EAAUC,KAAKC,IAAItB,EAASG,OAAQK,EAAcO,QAAQZ,QAEvDoB,EAAI,EAAOH,EAAJG,EAAaA,IAAK,CAChC,IAAMC,EAAYhB,EAAcO,QAAQQ,GAClCE,EAAmBF,EAAI,EAAIC,EAAY1B,EAAM0B,EAEnD,GAAIN,EAAkBO,EAAoBT,EAIxC,MAHAE,GAAmBO,EACnBN,GAIH,CACDZ,EAAgBY,EAtBf,MAFCZ,EAAgBP,EAASG,OAyB5B,GAAE,CAACN,EAAcG,EAAUF,IAEtB4B,EAAuBb,GAAY,WAErCH,EAAiBK,SADfhB,eAAAA,EAAkBgB,SACOhB,EAAiBgB,QAAQY,wBAAwBC,MAEjD,CAE/B,GAAG,CAAC7B,IAEE8B,EAAuBhB,GAAY,WACnCF,EAAiBI,UACrBJ,EAAiBI,SAAU,EAE3Be,uBAAsB,WACpB,IAEE,IADkBjC,EAAakB,UACZf,EAASG,OAE1B,YADAI,EAAgBP,EAASG,QAI3BuB,IAEA,IAAMK,EAAe/B,EAASgC,KAAI,SAAAC,GAAG,OAAIA,EAAIlB,OAAO,IAAEmB,QAAO,SAAAC,GAAE,OAAW,OAAPA,KAEnE,GAA4B,IAAxBJ,EAAa5B,OAGf,OAFAI,EAAgB,QAChBC,EAAcO,QAAU,IAI1BP,EAAcO,QAAUgB,EAAaC,KAAI,SAAAI,GAAI,OAAIA,EAAKT,wBAAwBC,SAC9EhB,GACD,CAAS,QACRD,EAAiBI,SAAU,CAC5B,CACH,IACD,GAAE,CAAClB,EAAcG,EAAUY,EAA2Bc,IAqCvD,OAnCAW,GAA0B,WACxB,GAAKxC,EAAakB,QAAlB,CAEA,IAAMuB,EAAiB,IAAIC,gBAAe,WACpCvC,EAASG,OAAS,EAChBK,EAAcO,QAAQZ,QACxBuB,IACAd,KAEAiB,KAGFtB,EAAgB,GAChBC,EAAcO,QAAU,GAE5B,IAQA,OANAuB,EAAeE,QAAQ3C,EAAakB,UAEhChB,eAAAA,EAAkBgB,UACpBuB,EAAeE,QAAQzC,EAAiBgB,SAGnC,WAAA,OAAMuB,EAAeG,YAAY,CAtBb,CAuB7B,GAAG,CAAC5C,EAAcE,EAAkB2B,EAAsBd,EAA2BiB,EAAsB7B,IAE3GqC,GAA0B,WACpBrC,EAASG,OAAS,EACpB0B,KAEAtB,EAAgB,GAChBC,EAAcO,QAAU,GAE5B,GAAG,CAACf,EAAU6B,IAEPvB,CACT"}
@@ -0,0 +1 @@
1
+ declare module "@vibe/core/tokens";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe/core",
3
- "version": "3.54.3-alpha-aef80.0",
3
+ "version": "3.55.0",
4
4
  "description": "Official monday.com UI resources for application development in React.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -45,7 +45,11 @@
45
45
  "import": "./dist/src/components/next.js",
46
46
  "default": "./dist/src/components/next.js"
47
47
  },
48
- "./tokens": "./dist/tokens/tokens.css",
48
+ "./tokens": {
49
+ "types": "./dist/tokens/tokens.d.ts",
50
+ "import": "./dist/tokens/tokens.css",
51
+ "default": "./dist/tokens/tokens.css"
52
+ },
49
53
  "./mockedClassNames": {
50
54
  "import": "./dist/mocked_classnames/src/index.js",
51
55
  "default": "./dist/mocked_classnames/src/index.js"
@@ -61,6 +65,9 @@
61
65
  ],
62
66
  "next": [
63
67
  "./dist/components/next.d.ts"
68
+ ],
69
+ "tokens": [
70
+ "./dist/tokens/tokens.d.ts"
64
71
  ]
65
72
  }
66
73
  },
@@ -88,7 +95,7 @@
88
95
  },
89
96
  "dependencies": {
90
97
  "@popperjs/core": "2.11.6",
91
- "@vibe/icons": "1.9.1-alpha-aef80.0",
98
+ "@vibe/icons": "1.9.0",
92
99
  "a11y-dialog": "^7.5.2",
93
100
  "body-scroll-lock": "^4.0.0-beta.0",
94
101
  "browserslist-config-monday": "1.0.6",
@@ -96,8 +103,7 @@
96
103
  "downshift": "^9.0.8",
97
104
  "framer-motion": "^6.5.1",
98
105
  "lodash-es": "^4.17.21",
99
- "monday-ui-style": "0.24.1-alpha-aef80.0",
100
- "prop-types": "^15.8.1",
106
+ "monday-ui-style": "0.24.1",
101
107
  "react-dates": "21.8.0",
102
108
  "react-focus-lock": "^2.13.2",
103
109
  "react-inlinesvg": "^4.1.3",
@@ -288,5 +294,5 @@
288
294
  "gzip": true
289
295
  }
290
296
  ],
291
- "gitHead": "9fc469702c13c69d156bfc6f2eb85a09ecd4e593"
297
+ "gitHead": "f9ca09fe5dbe2f6f42884e66717d46bc10ce953a"
292
298
  }