@razorpay/blade 12.8.2 → 12.9.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 (68) hide show
  1. package/build/lib/native/components/Button/IconButton/StyledIconButton.native.js +1 -1
  2. package/build/lib/native/components/Button/IconButton/StyledIconButton.native.js.map +1 -1
  3. package/build/lib/native/components/Dropdown/Dropdown.js +1 -1
  4. package/build/lib/native/components/Dropdown/Dropdown.js.map +1 -1
  5. package/build/lib/native/components/Dropdown/DropdownButton.js.map +1 -1
  6. package/build/lib/native/components/Dropdown/DropdownIconButton.js +13 -0
  7. package/build/lib/native/components/Dropdown/DropdownIconButton.js.map +1 -0
  8. package/build/lib/native/components/Dropdown/DropdownLink.js.map +1 -1
  9. package/build/lib/native/components/Dropdown/dropdownComponentIds.js +1 -1
  10. package/build/lib/native/components/Dropdown/dropdownComponentIds.js.map +1 -1
  11. package/build/lib/native/components/Dropdown/useDropdown.js.map +1 -1
  12. package/build/lib/native/components/index.js +1 -0
  13. package/build/lib/native/components/index.js.map +1 -1
  14. package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js +7 -4
  15. package/build/lib/web/development/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
  16. package/build/lib/web/development/components/Dropdown/Dropdown.js +4 -1
  17. package/build/lib/web/development/components/Dropdown/Dropdown.js.map +1 -1
  18. package/build/lib/web/development/components/Dropdown/DropdownButton.js +1 -7
  19. package/build/lib/web/development/components/Dropdown/DropdownButton.js.map +1 -1
  20. package/build/lib/web/development/components/Dropdown/DropdownIconButton.js +78 -0
  21. package/build/lib/web/development/components/Dropdown/DropdownIconButton.js.map +1 -0
  22. package/build/lib/web/development/components/Dropdown/DropdownLink.js +0 -5
  23. package/build/lib/web/development/components/Dropdown/DropdownLink.js.map +1 -1
  24. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js +2 -1
  25. package/build/lib/web/development/components/Dropdown/dropdownComponentIds.js.map +1 -1
  26. package/build/lib/web/development/components/Dropdown/index.js +1 -0
  27. package/build/lib/web/development/components/Dropdown/index.js.map +1 -1
  28. package/build/lib/web/development/components/Dropdown/useDropdown.js.map +1 -1
  29. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js +2 -2
  30. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -1
  31. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +3 -3
  32. package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
  33. package/build/lib/web/development/components/Tooltip/Tooltip.web.js +3 -1
  34. package/build/lib/web/development/components/Tooltip/Tooltip.web.js.map +1 -1
  35. package/build/lib/web/development/components/index.js +1 -0
  36. package/build/lib/web/development/components/index.js.map +1 -1
  37. package/build/lib/web/development/{components/SideNav/SideNavItems/TooltipifyNavItem.js → utils/TooltipifyComponent.js} +23 -6
  38. package/build/lib/web/development/utils/TooltipifyComponent.js.map +1 -0
  39. package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js +7 -4
  40. package/build/lib/web/production/components/Button/IconButton/StyledIconButton.web.js.map +1 -1
  41. package/build/lib/web/production/components/Dropdown/Dropdown.js +4 -1
  42. package/build/lib/web/production/components/Dropdown/Dropdown.js.map +1 -1
  43. package/build/lib/web/production/components/Dropdown/DropdownButton.js +1 -7
  44. package/build/lib/web/production/components/Dropdown/DropdownButton.js.map +1 -1
  45. package/build/lib/web/production/components/Dropdown/DropdownIconButton.js +78 -0
  46. package/build/lib/web/production/components/Dropdown/DropdownIconButton.js.map +1 -0
  47. package/build/lib/web/production/components/Dropdown/DropdownLink.js +0 -5
  48. package/build/lib/web/production/components/Dropdown/DropdownLink.js.map +1 -1
  49. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js +2 -1
  50. package/build/lib/web/production/components/Dropdown/dropdownComponentIds.js.map +1 -1
  51. package/build/lib/web/production/components/Dropdown/index.js +1 -0
  52. package/build/lib/web/production/components/Dropdown/index.js.map +1 -1
  53. package/build/lib/web/production/components/Dropdown/useDropdown.js.map +1 -1
  54. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js +2 -2
  55. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -1
  56. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +3 -3
  57. package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
  58. package/build/lib/web/production/components/Tooltip/Tooltip.web.js +3 -1
  59. package/build/lib/web/production/components/Tooltip/Tooltip.web.js.map +1 -1
  60. package/build/lib/web/production/components/index.js +1 -0
  61. package/build/lib/web/production/components/index.js.map +1 -1
  62. package/build/lib/web/production/{components/SideNav/SideNavItems/TooltipifyNavItem.js → utils/TooltipifyComponent.js} +23 -6
  63. package/build/lib/web/production/utils/TooltipifyComponent.js.map +1 -0
  64. package/build/types/components/index.d.ts +14 -2
  65. package/build/types/components/index.native.d.ts +14 -2
  66. package/package.json +1 -1
  67. package/build/lib/web/development/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +0 -1
  68. package/build/lib/web/production/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownButton.js","sources":["../../../../../../src/components/Dropdown/DropdownButton.tsx"],"sourcesContent":["import React from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport BaseButton from '~components/Button/BaseButton';\nimport type { ButtonProps } from '~components/Button';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseButtonProps } from '~components/Button/BaseButton/BaseButton';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\ntype DropdownButtonProps = ButtonProps & {\n onBlur?: BaseButtonProps['onBlur'];\n onKeyDown?: BaseButtonProps['onKeyDown'];\n};\n\nconst _DropdownButton = ({\n children,\n icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n size = 'medium',\n type = 'button',\n variant = 'primary',\n accessibilityLabel,\n testID,\n ...rest\n}: DropdownButtonProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseButton\n {...rest}\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n size={size}\n type={type}\n variant={variant}\n testID={testID}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownButton = assignWithoutSideEffects(_DropdownButton, {\n componentId: dropdownComponentIds.triggers.DropdownButton,\n});\n\nexport { DropdownButton };\n"],"names":["_DropdownButton","_ref","children","icon","_ref$iconPosition","iconPosition","_ref$isDisabled","isDisabled","_ref$isFullWidth","isFullWidth","_ref$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref$size","size","_ref$type","type","_ref$variant","variant","accessibilityLabel","testID","rest","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseButton","_objectSpread","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownButton","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownButton.js","sources":["../../../../../../src/components/Dropdown/DropdownButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport BaseButton from '~components/Button/BaseButton';\nimport type { ButtonProps } from '~components/Button';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseButtonProps } from '~components/Button/BaseButton/BaseButton';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\ntype DropdownButtonProps = ButtonProps & {\n onBlur?: BaseButtonProps['onBlur'];\n onKeyDown?: BaseButtonProps['onKeyDown'];\n};\n\nconst _DropdownButton = ({\n children,\n icon,\n iconPosition = 'left',\n isDisabled = false,\n isFullWidth = false,\n isLoading = false,\n onClick,\n onBlur,\n onKeyDown,\n size = 'medium',\n type = 'button',\n variant = 'primary',\n accessibilityLabel,\n testID,\n ...rest\n}: DropdownButtonProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseButton\n {...rest}\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n isDisabled={isDisabled}\n isFullWidth={isFullWidth}\n isLoading={isLoading}\n size={size}\n type={type}\n variant={variant}\n testID={testID}\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownButton = assignWithoutSideEffects(_DropdownButton, {\n componentId: dropdownComponentIds.triggers.DropdownButton,\n});\n\nexport { DropdownButton };\n"],"names":["_DropdownButton","_ref","children","icon","_ref$iconPosition","iconPosition","_ref$isDisabled","isDisabled","_ref$isFullWidth","isFullWidth","_ref$isLoading","isLoading","onClick","onBlur","onKeyDown","_ref$size","size","_ref$type","type","_ref$variant","variant","accessibilityLabel","testID","rest","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseButton","_objectSpread","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownButton","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import 'react';
4
+ import { useDropdown } from './useDropdown.js';
5
+ import { dropdownComponentIds } from './dropdownComponentIds.js';
6
+ import { getActionListContainerRole } from '../ActionList/getA11yRoles.js';
7
+ import '../../utils/assignWithoutSideEffects/index.js';
8
+ import StyledIconButton from '../Button/IconButton/StyledIconButton.web.js';
9
+ import { jsx } from 'react/jsx-runtime';
10
+ import { assignWithoutSideEffects } from '../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
11
+
12
+ var _excluded = ["icon", "isDisabled", "onClick", "onBlur", "onKeyDown", "size", "accessibilityLabel", "emphasis"];
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var _DropdownIconButton = function _DropdownIconButton(_ref) {
16
+ var icon = _ref.icon,
17
+ _ref$isDisabled = _ref.isDisabled,
18
+ isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
19
+ _onClick = _ref.onClick,
20
+ _onBlur = _ref.onBlur,
21
+ _onKeyDown = _ref.onKeyDown,
22
+ _ref$size = _ref.size,
23
+ size = _ref$size === void 0 ? 'medium' : _ref$size,
24
+ accessibilityLabel = _ref.accessibilityLabel,
25
+ _ref$emphasis = _ref.emphasis,
26
+ emphasis = _ref$emphasis === void 0 ? 'intense' : _ref$emphasis,
27
+ rest = _objectWithoutProperties(_ref, _excluded);
28
+ var _useDropdown = useDropdown(),
29
+ onTriggerClick = _useDropdown.onTriggerClick,
30
+ onTriggerKeydown = _useDropdown.onTriggerKeydown,
31
+ dropdownBaseId = _useDropdown.dropdownBaseId,
32
+ isOpen = _useDropdown.isOpen,
33
+ activeIndex = _useDropdown.activeIndex,
34
+ hasFooterAction = _useDropdown.hasFooterAction,
35
+ triggererRef = _useDropdown.triggererRef;
36
+ return (
37
+ /*#__PURE__*/
38
+ // Using StyledIconButton here to avoid exporting onKeydown, and accessibiltiyProps object
39
+ jsx(StyledIconButton, _objectSpread(_objectSpread({}, rest), {}, {
40
+ icon: icon,
41
+ isDisabled: isDisabled,
42
+ size: size,
43
+ emphasis: emphasis,
44
+ ref: triggererRef,
45
+ accessibilityLabel: accessibilityLabel,
46
+ accessibilityProps: {
47
+ label: accessibilityLabel,
48
+ hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownIconButton'),
49
+ expanded: isOpen,
50
+ controls: "".concat(dropdownBaseId, "-actionlist"),
51
+ activeDescendant: activeIndex >= 0 ? "".concat(dropdownBaseId, "-").concat(activeIndex) : undefined
52
+ },
53
+ onClick: function onClick(e) {
54
+ onTriggerClick();
55
+ // Setting it for web fails it on native typecheck and vice versa
56
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
57
+ },
58
+ onBlur: function onBlur(e) {
59
+ // With button trigger, there is no "value" as such. It's just clickable items
60
+ // Setting it for web fails it on native typecheck and vice versa
61
+ _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
62
+ },
63
+ onKeyDown: function onKeyDown(e) {
64
+ onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
65
+ event: e
66
+ });
67
+ // Setting it for web fails it on native typecheck and vice versa
68
+ _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
69
+ }
70
+ }))
71
+ );
72
+ };
73
+ var DropdownIconButton = /*#__PURE__*/assignWithoutSideEffects(_DropdownIconButton, {
74
+ componentId: dropdownComponentIds.triggers.DropdownIconButton
75
+ });
76
+
77
+ export { DropdownIconButton };
78
+ //# sourceMappingURL=DropdownIconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownIconButton.js","sources":["../../../../../../src/components/Dropdown/DropdownIconButton.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseButtonProps } from '~components/Button/BaseButton/BaseButton';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { IconButtonProps } from '~components/Button/IconButton';\nimport StyledIconButton from '~components/Button/IconButton/StyledIconButton';\n\ntype DropdownIconButtonProps = Omit<IconButtonProps, 'onClick'> & {\n onBlur?: BaseButtonProps['onBlur'];\n onKeyDown?: BaseButtonProps['onKeyDown'];\n onClick?: IconButtonProps['onClick'];\n};\n\nconst _DropdownIconButton = ({\n icon,\n isDisabled = false,\n onClick,\n onBlur,\n onKeyDown,\n size = 'medium',\n accessibilityLabel,\n emphasis = 'intense',\n ...rest\n}: DropdownIconButtonProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using StyledIconButton here to avoid exporting onKeydown, and accessibiltiyProps object\n <StyledIconButton\n {...rest}\n icon={icon}\n isDisabled={isDisabled}\n size={size}\n emphasis={emphasis}\n ref={triggererRef as any}\n accessibilityLabel={accessibilityLabel}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownIconButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // With button trigger, there is no \"value\" as such. It's just clickable items\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownIconButton = assignWithoutSideEffects(_DropdownIconButton, {\n componentId: dropdownComponentIds.triggers.DropdownIconButton,\n});\n\nexport { DropdownIconButton };\n"],"names":["_DropdownIconButton","_ref","icon","_ref$isDisabled","isDisabled","onClick","onBlur","onKeyDown","_ref$size","size","accessibilityLabel","_ref$emphasis","emphasis","rest","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","StyledIconButton","_objectSpread","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownIconButton","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":";;;;;;;;;;;;;;AAkBA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAU0B;AAAA,EAAA,IATjDC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAAC,eAAA,GAAAF,IAAA,CACJG,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAClBE,QAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,OAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,UAAS,GAAAN,IAAA,CAATM,SAAS;IAAAC,SAAA,GAAAP,IAAA,CACTQ,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;IACfE,kBAAkB,GAAAT,IAAA,CAAlBS,kBAAkB;IAAAC,aAAA,GAAAV,IAAA,CAClBW,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,aAAA;AACjBE,IAAAA,IAAI,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,YAAA,GAQIC,WAAW,EAAE;IAPfC,cAAc,GAAAF,YAAA,CAAdE,cAAc;IACdC,gBAAgB,GAAAH,YAAA,CAAhBG,gBAAgB;IAChBC,cAAc,GAAAJ,YAAA,CAAdI,cAAc;IACdC,MAAM,GAAAL,YAAA,CAANK,MAAM;IACNC,WAAW,GAAAN,YAAA,CAAXM,WAAW;IACXC,eAAe,GAAAP,YAAA,CAAfO,eAAe;IACfC,YAAY,GAAAR,YAAA,CAAZQ,YAAY,CAAA;AAGd,EAAA;AAAA;AACE;AACAC,IAAAA,GAAA,CAACC,gBAAgB,EAAAC,aAAA,CAAAA,aAAA,KACXd,IAAI,CAAA,EAAA,EAAA,EAAA;AACRX,MAAAA,IAAI,EAAEA,IAAK;AACXE,MAAAA,UAAU,EAAEA,UAAW;AACvBK,MAAAA,IAAI,EAAEA,IAAK;AACXG,MAAAA,QAAQ,EAAEA,QAAS;AACnBgB,MAAAA,GAAG,EAAEJ,YAAoB;AACzBd,MAAAA,kBAAkB,EAAEA,kBAAmB;AACvCmB,MAAAA,kBAAkB,EAAE;AAClBC,QAAAA,KAAK,EAAEpB,kBAAkB;AACzBqB,QAAAA,QAAQ,EAAEC,0BAA0B,CAACT,eAAe,EAAE,oBAAoB,CAAC;AAC3EU,QAAAA,QAAQ,EAAEZ,MAAM;AAChBa,QAAAA,QAAQ,EAAAC,EAAAA,CAAAA,MAAA,CAAKf,cAAc,EAAa,aAAA,CAAA;AACxCgB,QAAAA,gBAAgB,EAAEd,WAAW,IAAI,CAAC,GAAAa,EAAAA,CAAAA,MAAA,CAAMf,cAAc,EAAAe,GAAAA,CAAAA,CAAAA,MAAA,CAAIb,WAAW,CAAKe,GAAAA,SAAAA;OAC1E;AACFhC,MAAAA,OAAO,EAAE,SAAAA,OAACiC,CAAAA,CAAC,EAAK;AACdpB,QAAAA,cAAc,EAAE,CAAA;AAChB;AACAb,QAAAA,QAAO,aAAPA,QAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,QAAO,CAAGiC,CAAQ,CAAC,CAAA;OACnB;AACFhC,MAAAA,MAAM,EAAE,SAAAA,MAACgC,CAAAA,CAAC,EAAK;AACb;AACA;AACAhC,QAAAA,OAAM,aAANA,OAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,OAAM,CAAGgC,CAAQ,CAAC,CAAA;OAClB;AACF/B,MAAAA,SAAS,EAAE,SAAAA,SAAC+B,CAAAA,CAAC,EAAK;AAChBnB,QAAAA,gBAAgB,KAAhBA,IAAAA,IAAAA,gBAAgB,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAgB,CAAG;AAAEoB,UAAAA,KAAK,EAAED,CAAAA;AAAS,SAAC,CAAC,CAAA;AACvC;AACA/B,QAAAA,UAAS,aAATA,UAAS,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAATA,UAAS,CAAG+B,CAAQ,CAAC,CAAA;AACvB,OAAA;KACD,CAAA,CAAA;AAAC,IAAA;AAEN,CAAC,CAAA;AAED,IAAME,kBAAkB,gBAAGC,wBAAwB,CAACzC,mBAAmB,EAAE;AACvE0C,EAAAA,WAAW,EAAEC,oBAAoB,CAACC,QAAQ,CAACJ,kBAAAA;AAC7C,CAAC;;;;"}
@@ -61,7 +61,6 @@ var _DropdownLink = function _DropdownLink(_ref) {
61
61
  htmlTitle: htmlTitle,
62
62
  isDisabled: isDisabled
63
63
  }, props), makeAnalyticsAttribute(props)), {}, {
64
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
65
64
  ref: triggererRef,
66
65
  accessibilityProps: {
67
66
  label: accessibilityLabel,
@@ -73,21 +72,17 @@ var _DropdownLink = function _DropdownLink(_ref) {
73
72
  onClick: function onClick(e) {
74
73
  onTriggerClick();
75
74
  // Setting it for web fails it on native typecheck and vice versa
76
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
77
75
  _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
78
76
  },
79
77
  onBlur: function onBlur(e) {
80
78
  // Setting it for web fails it on native typecheck and vice versa
81
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
82
79
  _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(e);
83
80
  },
84
81
  onKeyDown: function onKeyDown(e) {
85
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
86
82
  onTriggerKeydown === null || onTriggerKeydown === void 0 ? void 0 : onTriggerKeydown({
87
83
  event: e
88
84
  });
89
85
  // Setting it for web fails it on native typecheck and vice versa
90
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any
91
86
  _onKeyDown === null || _onKeyDown === void 0 ? void 0 : _onKeyDown(e);
92
87
  }
93
88
  }))
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownLink.js","sources":["../../../../../../src/components/Dropdown/DropdownLink.tsx"],"sourcesContent":["import React from 'react';\nimport { getActionListContainerRole } from '../ActionList/getA11yRoles';\nimport { BaseLink } from '../Link/BaseLink';\nimport type { BaseLinkProps } from '../Link/BaseLink';\nimport type { LinkButtonVariantProps } from '../Link';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { assignWithoutSideEffects } from '~src/utils/assignWithoutSideEffects';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype DropdownLinkProps = LinkButtonVariantProps & {\n onBlur?: BaseLinkProps['onBlur'];\n onKeyDown?: BaseLinkProps['onKeyDown'];\n};\n\nconst _DropdownLink = ({\n children,\n icon,\n iconPosition = 'left',\n onClick,\n onBlur,\n onKeyDown,\n isDisabled,\n href,\n target,\n rel,\n accessibilityLabel,\n size = 'medium',\n testID,\n hitSlop,\n htmlTitle,\n ...props\n}: DropdownLinkProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseLink\n variant=\"button\"\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n size={size}\n testID={testID}\n hitSlop={hitSlop}\n htmlTitle={htmlTitle}\n isDisabled={isDisabled}\n {...props}\n {...makeAnalyticsAttribute(props)}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-explicit-any\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownLink = assignWithoutSideEffects(_DropdownLink, {\n componentId: dropdownComponentIds.triggers.DropdownLink,\n});\n\nexport { DropdownLink };\n"],"names":["_DropdownLink","_ref","children","icon","_ref$iconPosition","iconPosition","onClick","onBlur","onKeyDown","isDisabled","href","target","rel","accessibilityLabel","_ref$size","size","testID","hitSlop","htmlTitle","props","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseLink","_objectSpread","variant","makeAnalyticsAttribute","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownLink","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownLink.js","sources":["../../../../../../src/components/Dropdown/DropdownLink.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React from 'react';\nimport { getActionListContainerRole } from '../ActionList/getA11yRoles';\nimport { BaseLink } from '../Link/BaseLink';\nimport type { BaseLinkProps } from '../Link/BaseLink';\nimport type { LinkButtonVariantProps } from '../Link';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { assignWithoutSideEffects } from '~src/utils/assignWithoutSideEffects';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype DropdownLinkProps = LinkButtonVariantProps & {\n onBlur?: BaseLinkProps['onBlur'];\n onKeyDown?: BaseLinkProps['onKeyDown'];\n};\n\nconst _DropdownLink = ({\n children,\n icon,\n iconPosition = 'left',\n onClick,\n onBlur,\n onKeyDown,\n isDisabled,\n href,\n target,\n rel,\n accessibilityLabel,\n size = 'medium',\n testID,\n hitSlop,\n htmlTitle,\n ...props\n}: DropdownLinkProps): React.ReactElement => {\n const {\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n } = useDropdown();\n\n return (\n // Using BaseButton here to avoid exporting onBlur and onKeyDown from Button\n // If in future we decide to export onBlur and onKeyDown on Button, this can be replaced with Button\n <BaseLink\n variant=\"button\"\n {...(icon ? { icon, children } : { children })}\n iconPosition={iconPosition}\n size={size}\n testID={testID}\n hitSlop={hitSlop}\n htmlTitle={htmlTitle}\n isDisabled={isDisabled}\n {...props}\n {...makeAnalyticsAttribute(props)}\n ref={triggererRef as any}\n accessibilityProps={{\n label: accessibilityLabel,\n hasPopup: getActionListContainerRole(hasFooterAction, 'DropdownButton'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n // Setting it for web fails it on native typecheck and vice versa\n onClick?.(e as any);\n }}\n onBlur={(e) => {\n // Setting it for web fails it on native typecheck and vice versa\n onBlur?.(e as any);\n }}\n onKeyDown={(e) => {\n onTriggerKeydown?.({ event: e as any });\n // Setting it for web fails it on native typecheck and vice versa\n onKeyDown?.(e as any);\n }}\n />\n );\n};\n\nconst DropdownLink = assignWithoutSideEffects(_DropdownLink, {\n componentId: dropdownComponentIds.triggers.DropdownLink,\n});\n\nexport { DropdownLink };\n"],"names":["_DropdownLink","_ref","children","icon","_ref$iconPosition","iconPosition","onClick","onBlur","onKeyDown","isDisabled","href","target","rel","accessibilityLabel","_ref$size","size","testID","hitSlop","htmlTitle","props","_objectWithoutProperties","_excluded","_useDropdown","useDropdown","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","_jsx","BaseLink","_objectSpread","variant","makeAnalyticsAttribute","ref","accessibilityProps","label","hasPopup","getActionListContainerRole","expanded","controls","concat","activeDescendant","undefined","e","event","DropdownLink","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
@@ -7,7 +7,8 @@ var dropdownComponentIds = {
7
7
  DropdownButton: 'DropdownButton',
8
8
  DropdownLink: 'DropdownLink',
9
9
  AutoComplete: 'AutoComplete',
10
- SearchInput: 'SearchInput'
10
+ SearchInput: 'SearchInput',
11
+ DropdownIconButton: 'DropdownIconButton'
11
12
  }
12
13
  };
13
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"dropdownComponentIds.js","sources":["../../../../../../src/components/Dropdown/dropdownComponentIds.ts"],"sourcesContent":["export const dropdownComponentIds = {\n DropdownOverlay: 'DropdownOverlay',\n Dropdown: 'Dropdown',\n BaseBox: 'BaseBox',\n triggers: {\n SelectInput: 'SelectInput',\n DropdownButton: 'DropdownButton',\n DropdownLink: 'DropdownLink',\n AutoComplete: 'AutoComplete',\n SearchInput: 'SearchInput',\n },\n};\n"],"names":["dropdownComponentIds","DropdownOverlay","Dropdown","BaseBox","triggers","SelectInput","DropdownButton","DropdownLink","AutoComplete","SearchInput"],"mappings":"AAAO,IAAMA,oBAAoB,GAAG;AAClCC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,cAAc,EAAE,gBAAgB;AAChCC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,WAAW,EAAE,aAAA;AACf,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"dropdownComponentIds.js","sources":["../../../../../../src/components/Dropdown/dropdownComponentIds.ts"],"sourcesContent":["export const dropdownComponentIds = {\n DropdownOverlay: 'DropdownOverlay',\n Dropdown: 'Dropdown',\n BaseBox: 'BaseBox',\n triggers: {\n SelectInput: 'SelectInput',\n DropdownButton: 'DropdownButton',\n DropdownLink: 'DropdownLink',\n AutoComplete: 'AutoComplete',\n SearchInput: 'SearchInput',\n DropdownIconButton: 'DropdownIconButton',\n },\n};\n"],"names":["dropdownComponentIds","DropdownOverlay","Dropdown","BaseBox","triggers","SelectInput","DropdownButton","DropdownLink","AutoComplete","SearchInput","DropdownIconButton"],"mappings":"AAAO,IAAMA,oBAAoB,GAAG;AAClCC,EAAAA,eAAe,EAAE,iBAAiB;AAClCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,cAAc,EAAE,gBAAgB;AAChCC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,YAAY,EAAE,cAAc;AAC5BC,IAAAA,WAAW,EAAE,aAAa;AAC1BC,IAAAA,kBAAkB,EAAE,oBAAA;AACtB,GAAA;AACF;;;;"}
@@ -2,6 +2,7 @@ export { Dropdown } from './Dropdown.js';
2
2
  export { DropdownOverlay } from './DropdownOverlay.web.js';
3
3
  export { DropdownButton } from './DropdownButton.js';
4
4
  export { DropdownLink } from './DropdownLink.js';
5
+ export { DropdownIconButton } from './DropdownIconButton.js';
5
6
  export { DropdownFooter, DropdownHeader } from './DropdownHeaderFooter.js';
6
7
  import './types.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
1
+ {"version":3,"file":"useDropdown.js","sources":["../../../../../../src/components/Dropdown/useDropdown.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n ensureScrollVisiblity,\n getActionFromKey,\n getIndexByLetter,\n getUpdatedIndex,\n makeInputDisplayValue,\n makeInputValue,\n performAction,\n} from './dropdownUtils';\nimport type { SelectActionsType } from './dropdownUtils';\nimport type { DropdownProps } from './types';\n\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport type { FormInputHandleOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { isReactNative, isBrowser } from '~utils';\nimport type { ContainerElementType } from '~utils/types';\nimport { fireNativeEvent } from '~utils/fireNativeEvent';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = (): void => {};\n\ntype OptionsType = {\n title: string;\n value: string;\n onClickTrigger?: (isSelected: boolean) => void;\n}[];\n\ntype DropdownContextType = {\n isOpen: boolean;\n setIsOpen: (isOpen: boolean) => void;\n close: () => void;\n /**\n * contains the indexes of selected items\n */\n selectedIndices: number[];\n setSelectedIndices: (value: number[]) => void;\n /**\n * contains the indexes of selected items during controlled selection\n */\n controlledValueIndices: number[];\n setControlledValueIndices: (value: number[]) => void;\n /**\n * contains information about all the options inside actionlist\n */\n options: OptionsType;\n setOptions: (value: OptionsType) => void;\n\n /**\n * Filtered values for AutoComplete Inputs\n */\n filteredValues: string[];\n setFilteredValues: (values: string[]) => void;\n\n /** Currently active (focussed) index */\n activeIndex: number;\n setActiveIndex: (value: number) => void;\n\n /** Currently active (focussed) tag */\n activeTagIndex: number;\n setActiveTagIndex: (value: number) => void;\n\n /**\n * Sometimes we want to ignore the blur event to keep dropdown open but not ignore the blur animation from selectinput\n * E.g. When someone clicks on Footer, we just want to ignore the blur event and not the blur animation\n */\n shouldIgnoreBlurAnimation: boolean;\n setShouldIgnoreBlurAnimation: (value: boolean) => void;\n /** Tells you if keyboard was used. Its false by default and turns into true when keydown is called */\n isKeydownPressed: boolean;\n setIsKeydownPressed: (value: boolean) => void;\n /** common baseId which is prepended to multiple other ids inside this dropdown */\n dropdownBaseId: string;\n /** Which element has triggered the dropdown */\n dropdownTriggerer?:\n | 'SelectInput'\n | 'DropdownButton'\n | 'DropdownIconButton'\n | 'AutoComplete'\n | 'DropdownLink'\n | 'SearchInput';\n /** ref of triggerer. Used to call focus in certain places */\n triggererRef: React.MutableRefObject<HTMLButtonElement | null>;\n triggererWrapperRef: React.MutableRefObject<ContainerElementType | null>;\n actionListItemRef: React.RefObject<HTMLDivElement | null>;\n isTagDismissedRef: React.RefObject<{ value: boolean } | null>;\n visibleTagsCountRef: React.RefObject<{ value: number } | null>;\n\n selectionType?: DropdownProps['selectionType'];\n /** whether footer has an action item.\n * certain a11y behaviour changes happen here\n * E.g. tabbing moves focus to that action instead of outside\n */\n hasFooterAction: boolean;\n setHasFooterAction: (value: boolean) => void;\n\n /**\n * Apart from dropdownTriggerer prop, we also set this boolean because in BottomSheet, the initial trigger can be Select but also have autocomplete inside of it\n */\n hasAutoCompleteInBottomSheetHeader: boolean;\n setHasAutoCompleteInBottomSheetHeader: (value: boolean) => void;\n\n /**\n * A value that can be used in dependency array to know when Dropdown value is changed.\n *\n * E.g.\n * ```ts\n * useEffect(() => {\n * console.log('Uncontrolled value change');\n * }, [changeCallbackTriggerer])\n * ```\n */\n changeCallbackTriggerer: number;\n setChangeCallbackTriggerer: (changeCallbackTriggerer: number) => void;\n\n /**\n * true when SelectInput has `value` prop (when it is controlled)\n */\n isControlled: boolean;\n setIsControlled: (isControlled: boolean) => void;\n};\n\nconst DropdownContext = React.createContext<DropdownContextType>({\n isOpen: false,\n setIsOpen: noop,\n close: noop,\n selectedIndices: [],\n setSelectedIndices: noop,\n controlledValueIndices: [],\n setControlledValueIndices: noop,\n options: [],\n setOptions: noop,\n filteredValues: [],\n setFilteredValues: noop,\n activeIndex: -1,\n setActiveIndex: noop,\n activeTagIndex: -1,\n setActiveTagIndex: noop,\n shouldIgnoreBlurAnimation: false,\n setShouldIgnoreBlurAnimation: noop,\n hasFooterAction: false,\n setHasFooterAction: noop,\n hasAutoCompleteInBottomSheetHeader: false,\n setHasAutoCompleteInBottomSheetHeader: noop,\n isKeydownPressed: false,\n setIsKeydownPressed: noop,\n changeCallbackTriggerer: 0,\n setChangeCallbackTriggerer: noop,\n isControlled: false,\n setIsControlled: noop,\n dropdownBaseId: '',\n actionListItemRef: {\n current: null,\n },\n triggererRef: {\n current: null,\n },\n isTagDismissedRef: {\n current: null,\n },\n visibleTagsCountRef: {\n current: null,\n },\n triggererWrapperRef: {\n current: null,\n },\n});\n\nlet searchTimeout: number;\nlet searchString = '';\n\ntype UseDropdownReturnValue = DropdownContextType & {\n /**\n * Click event on combobox. Toggles the dropdown\n */\n onTriggerClick: () => void;\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n onTriggerKeydown: FormInputHandleOnKeyDownEvent | undefined;\n\n /**\n * Handles the click even on option.\n *\n * Contains the logic that selects the option, moves the focus, etc\n */\n onOptionClick: (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ) => void;\n\n /**\n * Removes the option with given optionsIndex\n */\n removeOption: (index: number) => void;\n\n /**\n * value that is used during form submissions\n */\n value: string;\n /**\n * This is the value that is displayed inside select after selection\n */\n displayValue: string;\n};\n\n/**\n * Handles almost all the functionality of dropdown.\n *\n * Returns the values from DropdownContext along with some helper functions and event handlers\n *\n */\nconst useDropdown = (): UseDropdownReturnValue => {\n const {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n options,\n selectionType,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n setControlledValueIndices,\n filteredValues,\n dropdownTriggerer,\n ...rest\n } = React.useContext(DropdownContext);\n\n type SelectOptionType = (\n index: number,\n properties?: {\n closeOnSelection?: boolean;\n },\n ) => boolean;\n\n const setIndices = (indices: number[]): void => {\n if (isControlled) {\n setControlledValueIndices(indices);\n } else {\n setSelectedIndices(indices);\n }\n };\n\n const removeOption = (index: number): void => {\n // remove existing item\n const existingItemIndex = selectedIndices.indexOf(index);\n if (existingItemIndex < 0) {\n return;\n }\n\n setIndices([\n ...selectedIndices.slice(0, existingItemIndex),\n ...selectedIndices.slice(existingItemIndex + 1),\n ]);\n };\n\n /**\n * Marks the given index as selected.\n *\n * In single select, it also closes the menu.\n * In multiselect, it keeps the menu open for more selections\n */\n const selectOption: SelectOptionType = (\n index,\n properties = {\n closeOnSelection: true,\n },\n ) => {\n let isSelected = false;\n\n if (index < 0 || index > options.length - 1) {\n return isSelected;\n }\n\n if (selectionType === 'multiple') {\n if (selectedIndices.includes(index)) {\n removeOption(index);\n isSelected = false;\n } else {\n setIndices([...selectedIndices, index]);\n isSelected = true;\n }\n } else {\n setIndices([index]);\n isSelected = true;\n }\n\n // Triggers `onChange` on SelectInput\n setChangeCallbackTriggerer(changeCallbackTriggerer + 1);\n\n if (activeIndex !== index) {\n setActiveIndex(index);\n }\n\n if (properties?.closeOnSelection && selectionType !== 'multiple') {\n close();\n }\n\n return isSelected;\n };\n\n /**\n * Click listener for combobox (or any triggerer of the dropdown)\n */\n const onTriggerClick = (): void => {\n if (isOpen) {\n close();\n } else {\n setIsOpen(true);\n }\n };\n\n /**\n * Function that we call when we want to move focus from one option to other\n */\n const onOptionChange = (actionType: SelectActionsType, index?: number): void => {\n setActiveTagIndex(-1);\n const newIndex = index ?? activeIndex;\n let updatedIndex: number;\n const hasAutoComplete =\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete;\n if (hasAutoComplete && filteredValues.length > 0) {\n // When its autocomplete, we don't loop over all options. We only loop on filtered options\n\n const filteredIndexes = filteredValues\n .map((filteredValue) => options.findIndex((option) => option.value === filteredValue))\n .sort((a, b) => a - b);\n\n updatedIndex =\n filteredIndexes[\n getUpdatedIndex({\n currentIndex: filteredIndexes.indexOf(newIndex),\n maxIndex: filteredIndexes.length - 1,\n actionType,\n })\n ];\n } else {\n updatedIndex = getUpdatedIndex({\n currentIndex: newIndex,\n maxIndex: options.length - 1,\n actionType,\n });\n }\n setActiveIndex(updatedIndex);\n\n const optionValues = options.map((option) => option.value);\n ensureScrollVisiblity(updatedIndex, rest.actionListItemRef.current, optionValues);\n if (isBrowser()) {\n fireNativeEvent(rest.actionListItemRef as React.RefObject<HTMLElement>, ['change', 'input']);\n }\n };\n\n /**\n * Click handler when user clicks on any particular option.\n *\n * It\n * - changes the option focus\n * - selects that option\n * - moves focus to combobox\n */\n const onOptionClick = (\n e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,\n index: number,\n ): void => {\n const actionType = getActionFromKey(e, isOpen, dropdownTriggerer);\n if (typeof actionType === 'number') {\n onOptionChange(actionType, index);\n }\n selectOption(index);\n if (!isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n };\n\n /**\n * Function we call to handle the typeahead.\n *\n * It takes a letter, stores that letter in searchString (and clears it after timeout) to maintain a word\n *\n * Then searches for that word in options and moves focus there.\n */\n const onComboType = (letter: string, actionType: SelectActionsType): void => {\n // open the listbox if it is closed\n setIsOpen(true);\n\n if (\n rest.hasAutoCompleteInBottomSheetHeader ||\n dropdownTriggerer === dropdownComponentIds.triggers.AutoComplete\n ) {\n return;\n }\n\n if (typeof searchTimeout === 'number') {\n window.clearTimeout(searchTimeout);\n }\n\n searchTimeout = window.setTimeout(() => {\n searchString = '';\n }, 500);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n searchString = searchString + letter;\n const optionTitles = options.map((option) => option.title);\n const searchIndex = getIndexByLetter(optionTitles, searchString, activeIndex + 1);\n\n // if a match was found, go to it\n if (searchIndex >= 0) {\n onOptionChange(actionType, searchIndex);\n }\n // if no matches, clear the timeout and search string\n else {\n window.clearTimeout(searchTimeout);\n searchString = '';\n }\n };\n\n /**\n * Keydown event of combobox. Handles most of the keyboard accessibility of dropdown\n */\n const onTriggerKeydown = (e: {\n event: React.KeyboardEvent<HTMLInputElement | HTMLButtonElement>;\n }): void => {\n if (!isKeydownPressed && ![' ', 'Enter', 'Escape', 'Meta'].includes(e.event.key)) {\n // When keydown is not already pressed and its not Enter, Space, Command, or Escape key (those are generic keys and we only want to handle arrow keys or home buttons etc)\n setIsKeydownPressed(true);\n }\n\n const actionType = getActionFromKey(e.event, isOpen, dropdownTriggerer);\n\n if (actionType) {\n performAction(actionType, e, {\n setIsOpen,\n close,\n onOptionChange,\n onComboType,\n selectCurrentOption: () => {\n if (activeIndex < 0) {\n return;\n }\n\n const isSelected = selectOption(activeIndex);\n if (rest.hasFooterAction && !isReactNative()) {\n rest.triggererRef.current?.focus();\n }\n\n options[activeIndex].onClickTrigger?.(isSelected);\n },\n });\n }\n };\n\n return {\n isOpen,\n setIsOpen,\n close,\n selectedIndices,\n setSelectedIndices,\n filteredValues,\n removeOption,\n setControlledValueIndices,\n onTriggerClick,\n onTriggerKeydown,\n onOptionClick,\n activeIndex,\n setActiveIndex,\n activeTagIndex,\n setActiveTagIndex,\n visibleTagsCountRef,\n isKeydownPressed,\n setIsKeydownPressed,\n changeCallbackTriggerer,\n setChangeCallbackTriggerer,\n isControlled,\n options,\n value: makeInputValue(selectedIndices, options),\n displayValue: makeInputDisplayValue(selectedIndices, options),\n selectionType,\n dropdownTriggerer,\n ...rest,\n };\n};\n\nexport type { DropdownContextType, OptionsType };\nexport { useDropdown, DropdownContext };\n"],"names":["noop","DropdownContext","React","createContext","isOpen","setIsOpen","close","selectedIndices","setSelectedIndices","controlledValueIndices","setControlledValueIndices","options","setOptions","filteredValues","setFilteredValues","activeIndex","setActiveIndex","activeTagIndex","setActiveTagIndex","shouldIgnoreBlurAnimation","setShouldIgnoreBlurAnimation","hasFooterAction","setHasFooterAction","hasAutoCompleteInBottomSheetHeader","setHasAutoCompleteInBottomSheetHeader","isKeydownPressed","setIsKeydownPressed","changeCallbackTriggerer","setChangeCallbackTriggerer","isControlled","setIsControlled","dropdownBaseId","actionListItemRef","current","triggererRef","isTagDismissedRef","visibleTagsCountRef","triggererWrapperRef","searchTimeout","searchString","useDropdown","_React$useContext","useContext","selectionType","dropdownTriggerer","rest","_objectWithoutProperties","_excluded","setIndices","indices","removeOption","index","existingItemIndex","indexOf","concat","_toConsumableArray","slice","selectOption","properties","arguments","length","undefined","closeOnSelection","isSelected","includes","onTriggerClick","onOptionChange","actionType","newIndex","updatedIndex","hasAutoComplete","dropdownComponentIds","triggers","AutoComplete","filteredIndexes","map","filteredValue","findIndex","option","value","sort","a","b","getUpdatedIndex","currentIndex","maxIndex","optionValues","ensureScrollVisiblity","isBrowser","fireNativeEvent","onOptionClick","e","getActionFromKey","isReactNative","_rest$triggererRef$cu","focus","onComboType","letter","window","clearTimeout","setTimeout","optionTitles","title","searchIndex","getIndexByLetter","onTriggerKeydown","event","key","performAction","selectCurrentOption","_options$activeIndex$","_options$activeIndex","_rest$triggererRef$cu2","onClickTrigger","call","_objectSpread","makeInputValue","displayValue","makeInputDisplayValue"],"mappings":"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"}
@@ -2,12 +2,12 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
3
  import styled from 'styled-components';
4
4
  import { getNavItemTransition, NAV_ITEM_HEIGHT, classes } from '../tokens.js';
5
- import { TooltipifyNavItem } from './TooltipifyNavItem.js';
6
5
  import '../../Box/index.js';
7
6
  import '../../Box/BaseBox/index.js';
8
7
  import '../../Typography/index.js';
9
8
  import '../../../utils/index.js';
10
9
  import '../../../utils/makeAnalyticsAttribute/index.js';
10
+ import { TooltipifyComponent } from '../../../utils/TooltipifyComponent.js';
11
11
  import { jsx, jsxs } from 'react/jsx-runtime';
12
12
  import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
13
13
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
@@ -35,7 +35,7 @@ var SideNavItem = function SideNavItem(_ref) {
35
35
  _ref$as = _ref.as,
36
36
  as = _ref$as === void 0 ? 'div' : _ref$as,
37
37
  rest = _objectWithoutProperties(_ref, _excluded);
38
- return /*#__PURE__*/jsx(TooltipifyNavItem, {
38
+ return /*#__PURE__*/jsx(TooltipifyComponent, {
39
39
  tooltip: tooltip,
40
40
  children: /*#__PURE__*/jsxs(SideNavItemContainer, _objectSpread(_objectSpread({
41
41
  display: "flex",
@@ -1 +1 @@
1
- {"version":3,"file":"SideNavItem.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavItem.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavItemProps } from '../types';\nimport { TooltipifyNavItem } from './TooltipifyNavItem';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\nconst SideNavItemContainer = styled(BaseBox)((props) => {\n return {\n transition: getNavItemTransition(props.theme),\n };\n});\n\nconst SideNavItem = ({\n leading,\n trailing,\n title,\n backgroundColor,\n tooltip,\n as = 'div',\n ...rest\n}: SideNavItemProps): React.ReactElement => {\n return (\n <TooltipifyNavItem tooltip={tooltip}>\n <SideNavItemContainer\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n paddingX=\"spacing.3\"\n height={makeSize(NAV_ITEM_HEIGHT)}\n backgroundColor={backgroundColor}\n borderRadius=\"medium\"\n as={as}\n cursor={as === 'label' ? 'pointer' : undefined}\n {...makeAnalyticsAttribute(rest)}\n >\n <Box display=\"inline-flex\" alignItems=\"center\" gap=\"spacing.3\">\n {leading}\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>\n <Text\n truncateAfterLines={1}\n weight=\"medium\"\n size=\"medium\"\n color=\"surface.text.gray.subtle\"\n >\n {title}\n </Text>\n </BaseBox>\n </Box>\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>{trailing}</BaseBox>\n </SideNavItemContainer>\n </TooltipifyNavItem>\n );\n};\n\nexport { SideNavItem };\n"],"names":["SideNavItemContainer","styled","BaseBox","withConfig","displayName","componentId","props","transition","getNavItemTransition","theme","SideNavItem","_ref","leading","trailing","title","backgroundColor","tooltip","_ref$as","as","rest","_objectWithoutProperties","_excluded","_jsx","TooltipifyNavItem","children","_jsxs","_objectSpread","display","flexDirection","justifyContent","alignItems","paddingX","height","makeSize","NAV_ITEM_HEIGHT","borderRadius","cursor","undefined","makeAnalyticsAttribute","Box","gap","className","classes","HIDE_WHEN_COLLAPSED","Text","truncateAfterLines","weight","size","color"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,oBAAoB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,sCAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAC,CAAA,CAAA,UAACC,KAAK,EAAK;EACtD,OAAO;AACLC,IAAAA,UAAU,EAAEC,oBAAoB,CAACF,KAAK,CAACG,KAAK,CAAA;GAC7C,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAQ2B;AAAA,EAAA,IAP1CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,OAAA,GAAAN,IAAA,CACPO,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,OAAA;AACPE,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;EAEP,oBACEC,GAAA,CAACC,iBAAiB,EAAA;AAACP,IAAAA,OAAO,EAAEA,OAAQ;AAAAQ,IAAAA,QAAA,eAClCC,IAAA,CAACzB,oBAAoB,EAAA0B,aAAA,CAAAA,aAAA,CAAA;AACnBC,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAC,KAAK;AACnBC,MAAAA,cAAc,EAAC,eAAe;AAC9BC,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,QAAQ,EAAC,WAAW;AACpBC,MAAAA,MAAM,EAAEC,QAAQ,CAACC,eAAe,CAAE;AAClCnB,MAAAA,eAAe,EAAEA,eAAgB;AACjCoB,MAAAA,YAAY,EAAC,QAAQ;AACrBjB,MAAAA,EAAE,EAAEA,EAAG;AACPkB,MAAAA,MAAM,EAAElB,EAAE,KAAK,OAAO,GAAG,SAAS,GAAGmB,SAAAA;KACjCC,EAAAA,sBAAsB,CAACnB,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;MAAAK,QAAA,EAAA,cAEhCC,IAAA,CAACc,GAAG,EAAA;AAACZ,QAAAA,OAAO,EAAC,aAAa;AAACG,QAAAA,UAAU,EAAC,QAAQ;AAACU,QAAAA,GAAG,EAAC,WAAW;AAAAhB,QAAAA,QAAA,EAC3DZ,CAAAA,OAAO,eACRU,GAAA,CAACpB,OAAO,EAAA;UAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;UAAAnB,QAAA,eAC9CF,GAAA,CAACsB,IAAI,EAAA;AACHC,YAAAA,kBAAkB,EAAE,CAAE;AACtBC,YAAAA,MAAM,EAAC,QAAQ;AACfC,YAAAA,IAAI,EAAC,QAAQ;AACbC,YAAAA,KAAK,EAAC,0BAA0B;AAAAxB,YAAAA,QAAA,EAE/BV,KAAAA;WACG,CAAA;AAAC,SACA,CAAC,CAAA;AAAA,OACP,CAAC,eACNQ,GAAA,CAACpB,OAAO,EAAA;QAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;AAAAnB,QAAAA,QAAA,EAAEX,QAAAA;AAAQ,OAAU,CAAC,CAAA;KACjD,CAAA,CAAA;AAAC,GACN,CAAC,CAAA;AAExB;;;;"}
1
+ {"version":3,"file":"SideNavItem.web.js","sources":["../../../../../../../src/components/SideNav/SideNavItems/SideNavItem.web.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport { classes, getNavItemTransition, NAV_ITEM_HEIGHT } from '../tokens';\nimport type { SideNavItemProps } from '../types';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Text } from '~components/Typography';\nimport { makeSize } from '~utils';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { TooltipifyComponent } from '~utils/TooltipifyComponent';\n\nconst SideNavItemContainer = styled(BaseBox)((props) => {\n return {\n transition: getNavItemTransition(props.theme),\n };\n});\n\nconst SideNavItem = ({\n leading,\n trailing,\n title,\n backgroundColor,\n tooltip,\n as = 'div',\n ...rest\n}: SideNavItemProps): React.ReactElement => {\n return (\n <TooltipifyComponent tooltip={tooltip}>\n <SideNavItemContainer\n display=\"flex\"\n flexDirection=\"row\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n paddingX=\"spacing.3\"\n height={makeSize(NAV_ITEM_HEIGHT)}\n backgroundColor={backgroundColor}\n borderRadius=\"medium\"\n as={as}\n cursor={as === 'label' ? 'pointer' : undefined}\n {...makeAnalyticsAttribute(rest)}\n >\n <Box display=\"inline-flex\" alignItems=\"center\" gap=\"spacing.3\">\n {leading}\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>\n <Text\n truncateAfterLines={1}\n weight=\"medium\"\n size=\"medium\"\n color=\"surface.text.gray.subtle\"\n >\n {title}\n </Text>\n </BaseBox>\n </Box>\n <BaseBox className={classes.HIDE_WHEN_COLLAPSED}>{trailing}</BaseBox>\n </SideNavItemContainer>\n </TooltipifyComponent>\n );\n};\n\nexport { SideNavItem };\n"],"names":["SideNavItemContainer","styled","BaseBox","withConfig","displayName","componentId","props","transition","getNavItemTransition","theme","SideNavItem","_ref","leading","trailing","title","backgroundColor","tooltip","_ref$as","as","rest","_objectWithoutProperties","_excluded","_jsx","TooltipifyComponent","children","_jsxs","_objectSpread","display","flexDirection","justifyContent","alignItems","paddingX","height","makeSize","NAV_ITEM_HEIGHT","borderRadius","cursor","undefined","makeAnalyticsAttribute","Box","gap","className","classes","HIDE_WHEN_COLLAPSED","Text","truncateAfterLines","weight","size","color"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,IAAMA,oBAAoB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,sCAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAAC,CAAA,CAAA,UAACC,KAAK,EAAK;EACtD,OAAO;AACLC,IAAAA,UAAU,EAAEC,oBAAoB,CAACF,KAAK,CAACG,KAAK,CAAA;GAC7C,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAQ2B;AAAA,EAAA,IAP1CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,OAAO,GAAAL,IAAA,CAAPK,OAAO;IAAAC,OAAA,GAAAN,IAAA,CACPO,EAAE;AAAFA,IAAAA,EAAE,GAAAD,OAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,OAAA;AACPE,IAAAA,IAAI,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;EAEP,oBACEC,GAAA,CAACC,mBAAmB,EAAA;AAACP,IAAAA,OAAO,EAAEA,OAAQ;AAAAQ,IAAAA,QAAA,eACpCC,IAAA,CAACzB,oBAAoB,EAAA0B,aAAA,CAAAA,aAAA,CAAA;AACnBC,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAC,KAAK;AACnBC,MAAAA,cAAc,EAAC,eAAe;AAC9BC,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,QAAQ,EAAC,WAAW;AACpBC,MAAAA,MAAM,EAAEC,QAAQ,CAACC,eAAe,CAAE;AAClCnB,MAAAA,eAAe,EAAEA,eAAgB;AACjCoB,MAAAA,YAAY,EAAC,QAAQ;AACrBjB,MAAAA,EAAE,EAAEA,EAAG;AACPkB,MAAAA,MAAM,EAAElB,EAAE,KAAK,OAAO,GAAG,SAAS,GAAGmB,SAAAA;KACjCC,EAAAA,sBAAsB,CAACnB,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;MAAAK,QAAA,EAAA,cAEhCC,IAAA,CAACc,GAAG,EAAA;AAACZ,QAAAA,OAAO,EAAC,aAAa;AAACG,QAAAA,UAAU,EAAC,QAAQ;AAACU,QAAAA,GAAG,EAAC,WAAW;AAAAhB,QAAAA,QAAA,EAC3DZ,CAAAA,OAAO,eACRU,GAAA,CAACpB,OAAO,EAAA;UAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;UAAAnB,QAAA,eAC9CF,GAAA,CAACsB,IAAI,EAAA;AACHC,YAAAA,kBAAkB,EAAE,CAAE;AACtBC,YAAAA,MAAM,EAAC,QAAQ;AACfC,YAAAA,IAAI,EAAC,QAAQ;AACbC,YAAAA,KAAK,EAAC,0BAA0B;AAAAxB,YAAAA,QAAA,EAE/BV,KAAAA;WACG,CAAA;AAAC,SACA,CAAC,CAAA;AAAA,OACP,CAAC,eACNQ,GAAA,CAACpB,OAAO,EAAA;QAACuC,SAAS,EAAEC,OAAO,CAACC,mBAAoB;AAAAnB,QAAAA,QAAA,EAAEX,QAAAA;AAAQ,OAAU,CAAC,CAAA;KACjD,CAAA,CAAA;AAAC,GACJ,CAAC,CAAA;AAE1B;;;;"}
@@ -5,7 +5,6 @@ import styled from 'styled-components';
5
5
  import { useFloating, FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
6
6
  import { useSideNav, useNavLink, NavLinkContext } from '../SideNavContext.js';
7
7
  import { classes, NAV_ITEM_HEIGHT, getNavItemTransition } from '../tokens.js';
8
- import { TooltipifyNavItem } from './TooltipifyNavItem.js';
9
8
  import '../../Box/index.js';
10
9
  import '../../../utils/index.js';
11
10
  import '../../Typography/BaseText/index.js';
@@ -20,6 +19,7 @@ import { useIsomorphicLayoutEffect } from '../../../utils/useIsomorphicLayoutEff
20
19
  import '../../../utils/logger/index.js';
21
20
  import '../../../utils/makeAnalyticsAttribute/index.js';
22
21
  import '../../Typography/index.js';
22
+ import { TooltipifyComponent } from '../../../utils/TooltipifyComponent.js';
23
23
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
24
24
  import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
25
25
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
@@ -171,7 +171,7 @@ var L3Trigger = function L3Trigger(_ref3) {
171
171
  size: 'medium',
172
172
  color: 'currentColor'
173
173
  };
174
- return /*#__PURE__*/jsx(TooltipifyNavItem, {
174
+ return /*#__PURE__*/jsx(TooltipifyComponent, {
175
175
  tooltip: tooltip,
176
176
  children: /*#__PURE__*/jsx(StyledNavLinkContainer, {
177
177
  $hasDescription: Boolean(description),
@@ -310,7 +310,7 @@ var SideNavLink = function SideNavLink(_ref4) {
310
310
  children: [/*#__PURE__*/jsxs(StyledNavLinkContainer, {
311
311
  $hasDescription: currentLevel !== 1 && Boolean(description),
312
312
  position: "relative",
313
- children: [/*#__PURE__*/jsx(TooltipifyNavItem, {
313
+ children: [/*#__PURE__*/jsx(TooltipifyComponent, {
314
314
  tooltip: tooltip,
315
315
  children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({
316
316
  className: STYLED_NAV_LINK,