@seeqdev/qomponents 0.0.64 → 0.0.66

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 (152) hide show
  1. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.d.ts +23 -8
  2. package/dist/ButtonWithPopover/ButtonWithPopover.types.d.ts +8 -0
  3. package/dist/index.esm.js +336 -27
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +336 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/styles.css +41 -50
  8. package/package.json +1 -1
  9. package/dist/Accordion/Accordion.js +0 -9
  10. package/dist/Accordion/Accordion.js.map +0 -1
  11. package/dist/Accordion/Accordion.stories.js +0 -109
  12. package/dist/Accordion/Accordion.stories.js.map +0 -1
  13. package/dist/Accordion/Accordion.test.js +0 -55
  14. package/dist/Accordion/Accordion.test.js.map +0 -1
  15. package/dist/Accordion/Accordion.types.js +0 -2
  16. package/dist/Accordion/Accordion.types.js.map +0 -1
  17. package/dist/Accordion/index.js +0 -2
  18. package/dist/Accordion/index.js.map +0 -1
  19. package/dist/Button/Button.js +0 -87
  20. package/dist/Button/Button.js.map +0 -1
  21. package/dist/Button/Button.stories.js +0 -77
  22. package/dist/Button/Button.stories.js.map +0 -1
  23. package/dist/Button/Button.test.js +0 -49
  24. package/dist/Button/Button.test.js.map +0 -1
  25. package/dist/Button/Button.types.js +0 -4
  26. package/dist/Button/Button.types.js.map +0 -1
  27. package/dist/Button/index.js +0 -2
  28. package/dist/Button/index.js.map +0 -1
  29. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +0 -39
  30. package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +0 -1
  31. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +0 -66
  32. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +0 -1
  33. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +0 -72
  34. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +0 -1
  35. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +0 -2
  36. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +0 -1
  37. package/dist/ButtonWithDropdown/index.js +0 -2
  38. package/dist/ButtonWithDropdown/index.js.map +0 -1
  39. package/dist/ButtonWithPopover/ButtonWithPopover.js +0 -27
  40. package/dist/ButtonWithPopover/ButtonWithPopover.js.map +0 -1
  41. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +0 -50
  42. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +0 -1
  43. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +0 -61
  44. package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +0 -1
  45. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +0 -2
  46. package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +0 -1
  47. package/dist/ButtonWithPopover/index.js +0 -2
  48. package/dist/ButtonWithPopover/index.js.map +0 -1
  49. package/dist/Checkbox/Checkbox.js +0 -26
  50. package/dist/Checkbox/Checkbox.js.map +0 -1
  51. package/dist/Checkbox/Checkbox.stories.js +0 -34
  52. package/dist/Checkbox/Checkbox.stories.js.map +0 -1
  53. package/dist/Checkbox/Checkbox.test.js +0 -94
  54. package/dist/Checkbox/Checkbox.test.js.map +0 -1
  55. package/dist/Checkbox/Checkbox.types.js +0 -2
  56. package/dist/Checkbox/Checkbox.types.js.map +0 -1
  57. package/dist/Checkbox/index.js +0 -2
  58. package/dist/Checkbox/index.js.map +0 -1
  59. package/dist/Icon/Icon.js +0 -55
  60. package/dist/Icon/Icon.js.map +0 -1
  61. package/dist/Icon/Icon.stories.js +0 -41
  62. package/dist/Icon/Icon.stories.js.map +0 -1
  63. package/dist/Icon/Icon.test.js +0 -55
  64. package/dist/Icon/Icon.test.js.map +0 -1
  65. package/dist/Icon/Icon.types.js +0 -16
  66. package/dist/Icon/Icon.types.js.map +0 -1
  67. package/dist/Icon/index.js +0 -2
  68. package/dist/Icon/index.js.map +0 -1
  69. package/dist/Modal/Modal.js +0 -99
  70. package/dist/Modal/Modal.js.map +0 -1
  71. package/dist/Modal/Modal.stories.js +0 -176
  72. package/dist/Modal/Modal.stories.js.map +0 -1
  73. package/dist/Modal/Modal.test.js +0 -108
  74. package/dist/Modal/Modal.test.js.map +0 -1
  75. package/dist/Modal/Modal.types.js +0 -2
  76. package/dist/Modal/Modal.types.js.map +0 -1
  77. package/dist/Modal/index.js +0 -2
  78. package/dist/Modal/index.js.map +0 -1
  79. package/dist/Select/Select.js +0 -168
  80. package/dist/Select/Select.js.map +0 -1
  81. package/dist/Select/Select.stories.js +0 -72
  82. package/dist/Select/Select.stories.js.map +0 -1
  83. package/dist/Select/Select.test.js +0 -161
  84. package/dist/Select/Select.test.js.map +0 -1
  85. package/dist/Select/Select.types.js +0 -2
  86. package/dist/Select/Select.types.js.map +0 -1
  87. package/dist/Select/index.js +0 -2
  88. package/dist/Select/index.js.map +0 -1
  89. package/dist/Tabs/Tabs.js +0 -22
  90. package/dist/Tabs/Tabs.js.map +0 -1
  91. package/dist/Tabs/Tabs.stories.js +0 -91
  92. package/dist/Tabs/Tabs.stories.js.map +0 -1
  93. package/dist/Tabs/Tabs.test.js +0 -91
  94. package/dist/Tabs/Tabs.test.js.map +0 -1
  95. package/dist/Tabs/Tabs.types.js +0 -2
  96. package/dist/Tabs/Tabs.types.js.map +0 -1
  97. package/dist/Tabs/index.js +0 -2
  98. package/dist/Tabs/index.js.map +0 -1
  99. package/dist/TextArea/TextArea.js +0 -23
  100. package/dist/TextArea/TextArea.js.map +0 -1
  101. package/dist/TextArea/TextArea.stories.js +0 -39
  102. package/dist/TextArea/TextArea.stories.js.map +0 -1
  103. package/dist/TextArea/TextArea.test.js +0 -68
  104. package/dist/TextArea/TextArea.test.js.map +0 -1
  105. package/dist/TextArea/TextArea.types.js +0 -2
  106. package/dist/TextArea/TextArea.types.js.map +0 -1
  107. package/dist/TextArea/index.js +0 -2
  108. package/dist/TextArea/index.js.map +0 -1
  109. package/dist/TextField/TextField.js +0 -64
  110. package/dist/TextField/TextField.js.map +0 -1
  111. package/dist/TextField/TextField.stories.js +0 -41
  112. package/dist/TextField/TextField.stories.js.map +0 -1
  113. package/dist/TextField/TextField.test.js +0 -35
  114. package/dist/TextField/TextField.test.js.map +0 -1
  115. package/dist/TextField/TextField.types.js +0 -2
  116. package/dist/TextField/TextField.types.js.map +0 -1
  117. package/dist/TextField/index.js +0 -2
  118. package/dist/TextField/index.js.map +0 -1
  119. package/dist/ToolbarButton/ToolbarButton.js +0 -76
  120. package/dist/ToolbarButton/ToolbarButton.js.map +0 -1
  121. package/dist/ToolbarButton/ToolbarButton.stories.js +0 -89
  122. package/dist/ToolbarButton/ToolbarButton.stories.js.map +0 -1
  123. package/dist/ToolbarButton/ToolbarButton.test.js +0 -93
  124. package/dist/ToolbarButton/ToolbarButton.test.js.map +0 -1
  125. package/dist/ToolbarButton/ToolbarButton.types.js +0 -2
  126. package/dist/ToolbarButton/ToolbarButton.types.js.map +0 -1
  127. package/dist/ToolbarButton/index.js +0 -2
  128. package/dist/ToolbarButton/index.js.map +0 -1
  129. package/dist/Tooltip/QTip.stories.js +0 -40
  130. package/dist/Tooltip/QTip.stories.js.map +0 -1
  131. package/dist/Tooltip/QTip.types.js +0 -2
  132. package/dist/Tooltip/QTip.types.js.map +0 -1
  133. package/dist/Tooltip/QTipPerformance.stories.js +0 -30
  134. package/dist/Tooltip/QTipPerformance.stories.js.map +0 -1
  135. package/dist/Tooltip/Qtip.js +0 -154
  136. package/dist/Tooltip/Qtip.js.map +0 -1
  137. package/dist/Tooltip/Tooltip.js +0 -36
  138. package/dist/Tooltip/Tooltip.js.map +0 -1
  139. package/dist/Tooltip/Tooltip.stories.js +0 -32
  140. package/dist/Tooltip/Tooltip.stories.js.map +0 -1
  141. package/dist/Tooltip/Tooltip.types.js +0 -3
  142. package/dist/Tooltip/Tooltip.types.js.map +0 -1
  143. package/dist/Tooltip/TooltipPerformance.stories.js +0 -30
  144. package/dist/Tooltip/TooltipPerformance.stories.js.map +0 -1
  145. package/dist/Tooltip/index.js +0 -3
  146. package/dist/Tooltip/index.js.map +0 -1
  147. package/dist/Tooltip/qTip.utilities.js +0 -11
  148. package/dist/Tooltip/qTip.utilities.js.map +0 -1
  149. package/dist/types.js +0 -2
  150. package/dist/types.js.map +0 -1
  151. package/dist/utils/browserId.js +0 -29
  152. package/dist/utils/browserId.js.map +0 -1
package/dist/index.js CHANGED
@@ -109,7 +109,7 @@ const Icon = ({ onClick, icon, iconPrefix = undefined, type = 'theme', extraClas
109
109
  const iconPrefixString = icon.startsWith('fc') ? 'fc' : fontAwesomePrefix;
110
110
  const style = type === 'color' && color ? { color } : {};
111
111
  const appliedClassNames = `${iconPrefixString} ${icon} ${small ? 'fa-sm' : ''} ${large ? 'fa-lg' : ''}
112
- ${colorClassesThemeLight[type]} ${colorClassesThemeDark[type]} ${onClick ? 'cursor-pointer' : ''} ${extraClassNames}`;
112
+ ${colorClassesThemeLight[type]} ${colorClassesThemeDark[type]} ${onClick ? 'cursor-pointer' : ''} ${extraClassNames} focus:tw-outline-none focus-visible:tw-outline-none tw-outline-none`;
113
113
  const tooltipData = getQTipData(tooltipProps);
114
114
  return (React.createElement("i", { className: appliedClassNames, style: style, onClick: onClick, "data-testid": testId, "data-customid": customId, id: id, "data-number": number, ...tooltipData }));
115
115
  };
@@ -4568,12 +4568,8 @@ const borderStyles$3 = [
4568
4568
  'tw-border-solid',
4569
4569
  'tw-border',
4570
4570
  'tw-rounded-sm',
4571
- 'hover:tw-border-sq-light-gray',
4572
- 'focus:tw-border-sq-light-gray',
4573
- 'active:tw-border-sq-sq-light-gray',
4574
- 'dark:hover:tw-border-sq-color-dark-dark',
4575
- 'dark:focus:tw-border-sq-color-dark-dark',
4576
- 'dark:active:tw-border-sq-color-dark-dark',
4571
+ 'tw-border-sq-disabled-gray',
4572
+ 'dark:tw-border-gray-500',
4577
4573
  ].join(' ');
4578
4574
  const triggerBorderStyles = [
4579
4575
  'tw-border-solid',
@@ -4632,7 +4628,8 @@ const ToolbarButton = ({ isSmall = false, label, icon, secondIcon, forceSmallIco
4632
4628
  ' tw-relative tw-z-[1000] tw-min-w-6 tw-p-[0.5rem] focus-visible:tw-outline-none tw-outline-none data-[state=open]:animate-in data-[state=closed]:animate-out' +
4633
4629
  ' data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2' +
4634
4630
  borderStyles$3 },
4635
- hasArrow && (React__namespace.createElement($cb5cc270b50c6fcd$export$21b07c8f274aebd5, { className: "tw-fill-white tw-stroke-2 dark:tw-fill-sq-dark-background tw-stroke-slate-300 dark:tw-stroke-sq-color-dark-dark" })),
4631
+ hasArrow && (React__namespace.createElement($cb5cc270b50c6fcd$export$21b07c8f274aebd5, { asChild: true },
4632
+ React__namespace.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[15px] tw-h-[15px] tw-mt-[-7px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-500" }))),
4636
4633
  popoverContent))) : undefined));
4637
4634
  };
4638
4635
 
@@ -4715,7 +4712,7 @@ const Checkbox = (props) => {
4715
4712
  const assignedId = id ?? 'checkbox_' + Math.random();
4716
4713
  const tooltipData = getQTipData(tooltipProps);
4717
4714
  return (React.createElement("span", { className: `${alignment} ${extraClassNames}` },
4718
- React.createElement("input", { value: value, type: type, "data-testid": testId, name: name, id: assignedId, checked: checked, defaultChecked: defaultChecked, className: `${type === 'checkbox' ? checkboxClasses : radioClasses} ${disabled ? 'tw-cursor-not-allowed' : 'tw-cursor-pointer'}`, disabled: disabled, onClick: onClick, onChange: onChange, onKeyDown: onKeyDown, ...tooltipData }),
4715
+ React.createElement("input", { value: value, type: type, "data-testid": testId, name: name, id: assignedId, readOnly: !onChange, checked: checked, defaultChecked: defaultChecked, className: `${type === 'checkbox' ? checkboxClasses : radioClasses} ${disabled ? 'tw-cursor-not-allowed' : 'tw-cursor-pointer'}`, disabled: disabled, onClick: onClick, onChange: onChange, onKeyDown: onKeyDown, ...tooltipData }),
4719
4716
  React.createElement("label", { htmlFor: assignedId, className: `${labelClasses} ${extraLabelClassNames} ${disabled
4720
4717
  ? 'tw-cursor-not-allowed dark:tw-text-sq-fairly-dark-gray tw-text-sq-fairly-dark-gray'
4721
4718
  : 'tw-cursor-pointer tw-text-sq-text-color dark:tw-text-sq-dark-text'}` }, label)));
@@ -15020,20 +15017,39 @@ const borderStyles$1 = [
15020
15017
  'tw-border',
15021
15018
  'tw-rounded-sm',
15022
15019
  'tw-border-sq-disabled-gray',
15023
- 'dark:tw-border-gray-700',
15020
+ 'dark:tw-border-gray-500',
15024
15021
  ].join(' ');
15025
15022
  const disabledClasses$1 = ['tw-opacity-50', 'tw-cursor-not-allowed'].join(' ');
15026
- const ButtonWithPopover = ({ children, trigger, id, hasArrow, extraTriggerClassNames, extraPopoverClassNames, containerTestId, disabled = false, align = 'end', alignOffset = -5, placement = 'bottom', placementOffset = 2, onOpenChange, isOpen, isCloseOnContentClick = false, setFocusOnTriggerOnClose = true, ...tooltipProps }) => {
15023
+ const ButtonWithPopover = ({ children, trigger, id, hasArrow, extraTriggerClassNames, extraPopoverClassNames, containerTestId, onInteractOutside, onPointerDownOutside, disabled = false, align = 'end', alignOffset = -35, placement = 'bottom', placementOffset = 2, isHoverEnabled = false, hoverOpenDelay = 300, onOpenChange, isOpen, isCloseOnContentClick = false, setFocusOnTriggerOnClose = true, ...tooltipProps }) => {
15027
15024
  const tooltipData = getQTipData(tooltipProps);
15028
- return (React__namespace.createElement($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, { open: isOpen, defaultOpen: false, onOpenChange: onOpenChange },
15025
+ let timeout;
15026
+ const [isHoveredOpen, setIsHoveredOpen] = React__namespace.useState();
15027
+ const onHoverStart = () => {
15028
+ if (isHoverEnabled) {
15029
+ timeout = setTimeout(() => {
15030
+ setIsHoveredOpen(true);
15031
+ onOpenChange && onOpenChange(true);
15032
+ }, hoverOpenDelay);
15033
+ }
15034
+ };
15035
+ const onHoverEnd = () => {
15036
+ if (isHoverEnabled) {
15037
+ timeout = setTimeout(() => {
15038
+ setIsHoveredOpen(false);
15039
+ onOpenChange && onOpenChange(false);
15040
+ }, 200);
15041
+ }
15042
+ };
15043
+ React__namespace.useEffect(() => () => timeout && clearTimeout(timeout), []);
15044
+ return (React__namespace.createElement($cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, { open: isOpen || isHoveredOpen, defaultOpen: false, onOpenChange: onOpenChange },
15029
15045
  React__namespace.createElement($cb5cc270b50c6fcd$export$41fb9f06171c75f4, { id: id, className: `tw-border-none`, disabled: disabled },
15030
- React__namespace.createElement("div", { ...tooltipData, className: `tw-bg-transparent tw-flex tw-flex-col tw-items-center tw-justify-center ${disabled ? disabledClasses$1 : ''} ${extraTriggerClassNames || ''}` }, trigger)),
15031
- React__namespace.createElement($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, { sideOffset: placementOffset, align: align, side: placement, alignOffset: alignOffset, onCloseAutoFocus: (e) => !setFocusOnTriggerOnClose && e.preventDefault(), asChild: true, onClick: () => isCloseOnContentClick && onOpenChange && onOpenChange(false), className: "focus-visible:tw-outline-none tw-outline-none" },
15032
- React__namespace.createElement("div", { "data-testid": containerTestId, className: `${bgStyles$1} ${borderStyles$1} tw-relative tw-z-[1000] tw-min-w-6 tw-p-[0.5rem] focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out
15033
- data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade
15046
+ React__namespace.createElement("div", { ...tooltipData, onMouseOver: onHoverStart, onMouseOut: onHoverEnd, className: `tw-bg-transparent tw-flex tw-flex-col tw-items-center tw-justify-center focus-visible:tw-outline-none tw-outline-none ${disabled ? disabledClasses$1 : ''} ${extraTriggerClassNames || ''}` }, trigger)),
15047
+ React__namespace.createElement($cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, { sideOffset: placementOffset, align: align, side: placement, onInteractOutside: onInteractOutside, onPointerDownOutside: onPointerDownOutside, alignOffset: isHoverEnabled ? -10 : alignOffset, asChild: true, onClick: () => isCloseOnContentClick && onOpenChange && onOpenChange(false), className: "focus-visible:tw-outline-none tw-outline-none" },
15048
+ React__namespace.createElement("div", { "data-testid": containerTestId, className: `${bgStyles$1} ${borderStyles$1} tw-relative tw-z-[1000] tw-min-w-6 focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out
15049
+ data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade tw-text-sq-text-color
15034
15050
  ${extraPopoverClassNames || ''}` },
15035
15051
  hasArrow && (React__namespace.createElement($cb5cc270b50c6fcd$export$21b07c8f274aebd5, { asChild: true },
15036
- React__namespace.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[6px] tw-h-[6px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-700 tw-mt-[-2px]" }))),
15052
+ React__namespace.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[15px] tw-h-[15px] tw-mt-[-7px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-500" }))),
15037
15053
  children))));
15038
15054
  };
15039
15055
 
@@ -15055,6 +15071,24 @@ const $6cc32821e9371a1c$var$FIRST_LAST_KEYS = [
15055
15071
  ...$6cc32821e9371a1c$var$FIRST_KEYS,
15056
15072
  ...$6cc32821e9371a1c$var$LAST_KEYS
15057
15073
  ];
15074
+ const $6cc32821e9371a1c$var$SUB_OPEN_KEYS = {
15075
+ ltr: [
15076
+ ...$6cc32821e9371a1c$var$SELECTION_KEYS,
15077
+ 'ArrowRight'
15078
+ ],
15079
+ rtl: [
15080
+ ...$6cc32821e9371a1c$var$SELECTION_KEYS,
15081
+ 'ArrowLeft'
15082
+ ]
15083
+ };
15084
+ const $6cc32821e9371a1c$var$SUB_CLOSE_KEYS = {
15085
+ ltr: [
15086
+ 'ArrowLeft'
15087
+ ],
15088
+ rtl: [
15089
+ 'ArrowRight'
15090
+ ]
15091
+ };
15058
15092
  /* -------------------------------------------------------------------------------------------------
15059
15093
  * Menu
15060
15094
  * -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$MENU_NAME = 'Menu';
@@ -15502,7 +15536,218 @@ const $6cc32821e9371a1c$export$bcdda4773debf5fa = /*#__PURE__*/ React.forwardRef
15502
15536
  /* -------------------------------------------------------------------------------------------------
15503
15537
  * MenuSub
15504
15538
  * -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_NAME = 'MenuSub';
15505
- $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$SUB_NAME);
15539
+ const [$6cc32821e9371a1c$var$MenuSubProvider, $6cc32821e9371a1c$var$useMenuSubContext] = $6cc32821e9371a1c$var$createMenuContext($6cc32821e9371a1c$var$SUB_NAME);
15540
+ const $6cc32821e9371a1c$export$71bdb9d1e2909932 = (props)=>{
15541
+ const { __scopeMenu: __scopeMenu , children: children , open: open = false , onOpenChange: onOpenChange } = props;
15542
+ const parentMenuContext = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_NAME, __scopeMenu);
15543
+ const popperScope = $6cc32821e9371a1c$var$usePopperScope(__scopeMenu);
15544
+ const [trigger, setTrigger] = React.useState(null);
15545
+ const [content, setContent] = React.useState(null);
15546
+ const handleOpenChange = $b1b2314f5f9a1d84$export$25bec8c6f54ee79a(onOpenChange); // Prevent the parent menu from reopening with open submenus.
15547
+ React.useEffect(()=>{
15548
+ if (parentMenuContext.open === false) handleOpenChange(false);
15549
+ return ()=>handleOpenChange(false)
15550
+ ;
15551
+ }, [
15552
+ parentMenuContext.open,
15553
+ handleOpenChange
15554
+ ]);
15555
+ return /*#__PURE__*/ React.createElement($cf1ac5d9fe0e8206$export$be92b6f5f03c0fe9, popperScope, /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$MenuProvider, {
15556
+ scope: __scopeMenu,
15557
+ open: open,
15558
+ onOpenChange: handleOpenChange,
15559
+ content: content,
15560
+ onContentChange: setContent
15561
+ }, /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$MenuSubProvider, {
15562
+ scope: __scopeMenu,
15563
+ contentId: $1746a345f3d73bb7$export$f680877a34711e37(),
15564
+ triggerId: $1746a345f3d73bb7$export$f680877a34711e37(),
15565
+ trigger: trigger,
15566
+ onTriggerChange: setTrigger
15567
+ }, children)));
15568
+ };
15569
+ /* -------------------------------------------------------------------------------------------------
15570
+ * MenuSubTrigger
15571
+ * -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_TRIGGER_NAME = 'MenuSubTrigger';
15572
+ const $6cc32821e9371a1c$export$5fbbb3ba7297405f = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
15573
+ const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
15574
+ const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
15575
+ const subContext = $6cc32821e9371a1c$var$useMenuSubContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
15576
+ const contentContext = $6cc32821e9371a1c$var$useMenuContentContext($6cc32821e9371a1c$var$SUB_TRIGGER_NAME, props.__scopeMenu);
15577
+ const openTimerRef = React.useRef(null);
15578
+ const { pointerGraceTimerRef: pointerGraceTimerRef , onPointerGraceIntentChange: onPointerGraceIntentChange } = contentContext;
15579
+ const scope = {
15580
+ __scopeMenu: props.__scopeMenu
15581
+ };
15582
+ const clearOpenTimer = React.useCallback(()=>{
15583
+ if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
15584
+ openTimerRef.current = null;
15585
+ }, []);
15586
+ React.useEffect(()=>clearOpenTimer
15587
+ , [
15588
+ clearOpenTimer
15589
+ ]);
15590
+ React.useEffect(()=>{
15591
+ const pointerGraceTimer = pointerGraceTimerRef.current;
15592
+ return ()=>{
15593
+ window.clearTimeout(pointerGraceTimer);
15594
+ onPointerGraceIntentChange(null);
15595
+ };
15596
+ }, [
15597
+ pointerGraceTimerRef,
15598
+ onPointerGraceIntentChange
15599
+ ]);
15600
+ return /*#__PURE__*/ React.createElement($6cc32821e9371a1c$export$9fa5ebd18bee4d43, _extends({
15601
+ asChild: true
15602
+ }, scope), /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$MenuItemImpl, _extends({
15603
+ id: subContext.triggerId,
15604
+ "aria-haspopup": "menu",
15605
+ "aria-expanded": context.open,
15606
+ "aria-controls": subContext.contentId,
15607
+ "data-state": $6cc32821e9371a1c$var$getOpenState(context.open)
15608
+ }, props, {
15609
+ ref: $6ed0406888f73fc4$export$43e446d32b3d21af(forwardedRef, subContext.onTriggerChange) // This is redundant for mouse users but we cannot determine pointer type from
15610
+ ,
15611
+ onClick: (event)=>{
15612
+ var _props$onClick;
15613
+ (_props$onClick = props.onClick) === null || _props$onClick === void 0 || _props$onClick.call(props, event);
15614
+ if (props.disabled || event.defaultPrevented) return;
15615
+ /**
15616
+ * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)
15617
+ * and we rely heavily on `onFocusOutside` for submenus to close when switching
15618
+ * between separate submenus.
15619
+ */ event.currentTarget.focus();
15620
+ if (!context.open) context.onOpenChange(true);
15621
+ },
15622
+ onPointerMove: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerMove, $6cc32821e9371a1c$var$whenMouse((event)=>{
15623
+ contentContext.onItemEnter(event);
15624
+ if (event.defaultPrevented) return;
15625
+ if (!props.disabled && !context.open && !openTimerRef.current) {
15626
+ contentContext.onPointerGraceIntentChange(null);
15627
+ openTimerRef.current = window.setTimeout(()=>{
15628
+ context.onOpenChange(true);
15629
+ clearOpenTimer();
15630
+ }, 100);
15631
+ }
15632
+ })),
15633
+ onPointerLeave: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onPointerLeave, $6cc32821e9371a1c$var$whenMouse((event)=>{
15634
+ var _context$content;
15635
+ clearOpenTimer();
15636
+ const contentRect = (_context$content = context.content) === null || _context$content === void 0 ? void 0 : _context$content.getBoundingClientRect();
15637
+ if (contentRect) {
15638
+ var _context$content2;
15639
+ // TODO: make sure to update this when we change positioning logic
15640
+ const side = (_context$content2 = context.content) === null || _context$content2 === void 0 ? void 0 : _context$content2.dataset.side;
15641
+ const rightSide = side === 'right';
15642
+ const bleed = rightSide ? -5 : 5;
15643
+ const contentNearEdge = contentRect[rightSide ? 'left' : 'right'];
15644
+ const contentFarEdge = contentRect[rightSide ? 'right' : 'left'];
15645
+ contentContext.onPointerGraceIntentChange({
15646
+ area: [
15647
+ // consistently within polygon bounds
15648
+ {
15649
+ x: event.clientX + bleed,
15650
+ y: event.clientY
15651
+ },
15652
+ {
15653
+ x: contentNearEdge,
15654
+ y: contentRect.top
15655
+ },
15656
+ {
15657
+ x: contentFarEdge,
15658
+ y: contentRect.top
15659
+ },
15660
+ {
15661
+ x: contentFarEdge,
15662
+ y: contentRect.bottom
15663
+ },
15664
+ {
15665
+ x: contentNearEdge,
15666
+ y: contentRect.bottom
15667
+ }
15668
+ ],
15669
+ side: side
15670
+ });
15671
+ window.clearTimeout(pointerGraceTimerRef.current);
15672
+ pointerGraceTimerRef.current = window.setTimeout(()=>contentContext.onPointerGraceIntentChange(null)
15673
+ , 300);
15674
+ } else {
15675
+ contentContext.onTriggerLeave(event);
15676
+ if (event.defaultPrevented) return; // There's 100ms where the user may leave an item before the submenu was opened.
15677
+ contentContext.onPointerGraceIntentChange(null);
15678
+ }
15679
+ })),
15680
+ onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event)=>{
15681
+ const isTypingAhead = contentContext.searchRef.current !== '';
15682
+ if (props.disabled || isTypingAhead && event.key === ' ') return;
15683
+ if ($6cc32821e9371a1c$var$SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
15684
+ var _context$content3;
15685
+ context.onOpenChange(true); // The trigger may hold focus if opened via pointer interaction
15686
+ // so we ensure content is given focus again when switching to keyboard.
15687
+ (_context$content3 = context.content) === null || _context$content3 === void 0 || _context$content3.focus(); // prevent window from scrolling
15688
+ event.preventDefault();
15689
+ }
15690
+ })
15691
+ })));
15692
+ });
15693
+ /* -------------------------------------------------------------------------------------------------
15694
+ * MenuSubContent
15695
+ * -----------------------------------------------------------------------------------------------*/ const $6cc32821e9371a1c$var$SUB_CONTENT_NAME = 'MenuSubContent';
15696
+ const $6cc32821e9371a1c$export$e7142ab31822bde6 = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
15697
+ const portalContext = $6cc32821e9371a1c$var$usePortalContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
15698
+ const { forceMount: forceMount = portalContext.forceMount , ...subContentProps } = props;
15699
+ const context = $6cc32821e9371a1c$var$useMenuContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
15700
+ const rootContext = $6cc32821e9371a1c$var$useMenuRootContext($6cc32821e9371a1c$var$CONTENT_NAME, props.__scopeMenu);
15701
+ const subContext = $6cc32821e9371a1c$var$useMenuSubContext($6cc32821e9371a1c$var$SUB_CONTENT_NAME, props.__scopeMenu);
15702
+ const ref = React.useRef(null);
15703
+ const composedRefs = $6ed0406888f73fc4$export$c7b2cbe3552a0d05(forwardedRef, ref);
15704
+ return /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$Collection.Provider, {
15705
+ scope: props.__scopeMenu
15706
+ }, /*#__PURE__*/ React.createElement($921a889cee6df7e8$export$99c2b779aa4e8b8b, {
15707
+ present: forceMount || context.open
15708
+ }, /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$Collection.Slot, {
15709
+ scope: props.__scopeMenu
15710
+ }, /*#__PURE__*/ React.createElement($6cc32821e9371a1c$var$MenuContentImpl, _extends({
15711
+ id: subContext.contentId,
15712
+ "aria-labelledby": subContext.triggerId
15713
+ }, subContentProps, {
15714
+ ref: composedRefs,
15715
+ align: "start",
15716
+ side: rootContext.dir === 'rtl' ? 'left' : 'right',
15717
+ disableOutsidePointerEvents: false,
15718
+ disableOutsideScroll: false,
15719
+ trapFocus: false,
15720
+ onOpenAutoFocus: (event)=>{
15721
+ var _ref$current;
15722
+ // when opening a submenu, focus content for keyboard users only
15723
+ if (rootContext.isUsingKeyboardRef.current) (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.focus();
15724
+ event.preventDefault();
15725
+ } // The menu might close because of focusing another menu item in the parent menu. We
15726
+ ,
15727
+ onCloseAutoFocus: (event)=>event.preventDefault()
15728
+ ,
15729
+ onFocusOutside: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onFocusOutside, (event)=>{
15730
+ // We prevent closing when the trigger is focused to avoid triggering a re-open animation
15731
+ // on pointer interaction.
15732
+ if (event.target !== subContext.trigger) context.onOpenChange(false);
15733
+ }),
15734
+ onEscapeKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onEscapeKeyDown, (event)=>{
15735
+ rootContext.onClose(); // ensure pressing escape in submenu doesn't escape full screen mode
15736
+ event.preventDefault();
15737
+ }),
15738
+ onKeyDown: $e42e1063c40fb3ef$export$b9ecd428b558ff10(props.onKeyDown, (event)=>{
15739
+ // Submenu key events bubble through portals. We only care about keys in this menu.
15740
+ const isKeyDownInside = event.currentTarget.contains(event.target);
15741
+ const isCloseKey = $6cc32821e9371a1c$var$SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);
15742
+ if (isKeyDownInside && isCloseKey) {
15743
+ var _subContext$trigger;
15744
+ context.onOpenChange(false); // We focus manually because we prevented it in `onCloseAutoFocus`
15745
+ (_subContext$trigger = subContext.trigger) === null || _subContext$trigger === void 0 || _subContext$trigger.focus(); // prevent window from scrolling
15746
+ event.preventDefault();
15747
+ }
15748
+ })
15749
+ })))));
15750
+ });
15506
15751
  /* -----------------------------------------------------------------------------------------------*/ function $6cc32821e9371a1c$var$getOpenState(open) {
15507
15752
  return open ? 'open' : 'closed';
15508
15753
  }
@@ -15585,6 +15830,9 @@ const $6cc32821e9371a1c$export$b04be29aa201d4f5 = $6cc32821e9371a1c$export$dd37b
15585
15830
  const $6cc32821e9371a1c$export$6d08773d2e66f8f2 = $6cc32821e9371a1c$export$2ce376c2cc3355c8;
15586
15831
  const $6cc32821e9371a1c$export$1ff3c3f08ae963c0 = $6cc32821e9371a1c$export$1cec7dcdd713e220;
15587
15832
  const $6cc32821e9371a1c$export$21b07c8f274aebd5 = $6cc32821e9371a1c$export$bcdda4773debf5fa;
15833
+ const $6cc32821e9371a1c$export$d7a01e11500dfb6f = $6cc32821e9371a1c$export$71bdb9d1e2909932;
15834
+ const $6cc32821e9371a1c$export$2ea8a7a591ac5eac = $6cc32821e9371a1c$export$5fbbb3ba7297405f;
15835
+ const $6cc32821e9371a1c$export$6d4de93b380beddf = $6cc32821e9371a1c$export$e7142ab31822bde6;
15588
15836
 
15589
15837
  /* -------------------------------------------------------------------------------------------------
15590
15838
  * DropdownMenu
@@ -15731,6 +15979,43 @@ const $d08ef79370b62062$export$34b8980744021ec5 = /*#__PURE__*/ React.forwardRef
15731
15979
  ref: forwardedRef
15732
15980
  }));
15733
15981
  });
15982
+ /* -------------------------------------------------------------------------------------------------
15983
+ * DropdownMenuSub
15984
+ * -----------------------------------------------------------------------------------------------*/ const $d08ef79370b62062$export$2f307d81a64f5442 = (props)=>{
15985
+ const { __scopeDropdownMenu: __scopeDropdownMenu , children: children , open: openProp , onOpenChange: onOpenChange , defaultOpen: defaultOpen } = props;
15986
+ const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);
15987
+ const [open = false, setOpen] = $71cd76cc60e0454e$export$6f32135080cb4c3({
15988
+ prop: openProp,
15989
+ defaultProp: defaultOpen,
15990
+ onChange: onOpenChange
15991
+ });
15992
+ return /*#__PURE__*/ React.createElement($6cc32821e9371a1c$export$d7a01e11500dfb6f, _extends({}, menuScope, {
15993
+ open: open,
15994
+ onOpenChange: setOpen
15995
+ }), children);
15996
+ };
15997
+ const $d08ef79370b62062$export$21dcb7ec56f874cf = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
15998
+ const { __scopeDropdownMenu: __scopeDropdownMenu , ...subTriggerProps } = props;
15999
+ const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);
16000
+ return /*#__PURE__*/ React.createElement($6cc32821e9371a1c$export$2ea8a7a591ac5eac, _extends({}, menuScope, subTriggerProps, {
16001
+ ref: forwardedRef
16002
+ }));
16003
+ });
16004
+ const $d08ef79370b62062$export$f34ec8bc2482cc5f = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
16005
+ const { __scopeDropdownMenu: __scopeDropdownMenu , ...subContentProps } = props;
16006
+ const menuScope = $d08ef79370b62062$var$useMenuScope(__scopeDropdownMenu);
16007
+ return /*#__PURE__*/ React.createElement($6cc32821e9371a1c$export$6d4de93b380beddf, _extends({}, menuScope, subContentProps, {
16008
+ ref: forwardedRef,
16009
+ style: {
16010
+ ...props.style,
16011
+ '--radix-dropdown-menu-content-transform-origin': 'var(--radix-popper-transform-origin)',
16012
+ '--radix-dropdown-menu-content-available-width': 'var(--radix-popper-available-width)',
16013
+ '--radix-dropdown-menu-content-available-height': 'var(--radix-popper-available-height)',
16014
+ '--radix-dropdown-menu-trigger-width': 'var(--radix-popper-anchor-width)',
16015
+ '--radix-dropdown-menu-trigger-height': 'var(--radix-popper-anchor-height)'
16016
+ }
16017
+ }));
16018
+ });
15734
16019
  /* -----------------------------------------------------------------------------------------------*/ const $d08ef79370b62062$export$be92b6f5f03c0fe9 = $d08ef79370b62062$export$e44a253a59704894;
15735
16020
  const $d08ef79370b62062$export$41fb9f06171c75f4 = $d08ef79370b62062$export$d2469213b3befba9;
15736
16021
  const $d08ef79370b62062$export$7c6e2c02157bb7d2 = $d08ef79370b62062$export$6e76d93a37c01248;
@@ -15738,38 +16023,62 @@ const $d08ef79370b62062$export$b04be29aa201d4f5 = $d08ef79370b62062$export$76e48
15738
16023
  const $d08ef79370b62062$export$6d08773d2e66f8f2 = $d08ef79370b62062$export$ed97964d1871885d;
15739
16024
  const $d08ef79370b62062$export$1ff3c3f08ae963c0 = $d08ef79370b62062$export$da160178fd3bc7e9;
15740
16025
  const $d08ef79370b62062$export$21b07c8f274aebd5 = $d08ef79370b62062$export$34b8980744021ec5;
16026
+ const $d08ef79370b62062$export$d7a01e11500dfb6f = $d08ef79370b62062$export$2f307d81a64f5442;
16027
+ const $d08ef79370b62062$export$2ea8a7a591ac5eac = $d08ef79370b62062$export$21dcb7ec56f874cf;
16028
+ const $d08ef79370b62062$export$6d4de93b380beddf = $d08ef79370b62062$export$f34ec8bc2482cc5f;
15741
16029
 
15742
16030
  const borderStyles = [
15743
16031
  'tw-border-solid',
15744
16032
  'tw-border',
15745
16033
  'tw-rounded-sm',
15746
16034
  'tw-border-sq-disabled-gray',
15747
- 'dark:tw-border-gray-700',
16035
+ 'dark:tw-border-gray-500',
15748
16036
  ].join(' ');
15749
16037
  const bgStyles = ['tw-bg-sq-white', 'dark:tw-bg-sq-dark-background'].join(' ');
15750
16038
  const disabledClasses = ['tw-opacity-50', 'tw-cursor-not-allowed'].join(' ');
15751
- const ButtonWithDropdown = ({ dropdownItems, triggerIcon, id, extraClassNames, containerTestId, disabled = false, align = 'end', placement = 'bottom', placementOffset = 2, alignOffset = -5, hasArrow = false, onOpenChange, isOpen, setFocusOnTriggerOnClose = true, keepFocusInsideDropdown = true, ...tooltipProps }) => {
16039
+ const ButtonWithDropdown = ({ dropdownItems, triggerIcon, id, extraClassNames, containerTestId, disabled = false, align = 'end', placement = 'bottom', placementOffset = 5, alignOffset = -35, hasArrow = false, onOpenChange, isOpen, setFocusOnTriggerOnClose = true, keepFocusInsideDropdown = true, ...tooltipProps }) => {
15752
16040
  const tooltipData = getQTipData(tooltipProps);
15753
16041
  return (React__namespace.createElement($d08ef79370b62062$export$be92b6f5f03c0fe9, { defaultOpen: false, open: isOpen, onOpenChange: onOpenChange, modal: keepFocusInsideDropdown },
15754
16042
  React__namespace.createElement($d08ef79370b62062$export$41fb9f06171c75f4, { id: id, className: `tw-border-none focus-visible:tw-outline-none focus:tw-outline-none focus-within:tw-outline-none`, disabled: disabled },
15755
16043
  React__namespace.createElement("div", { ...tooltipData, className: `tw-bg-transparent tw-flex tw-flex-col tw-items-center focus-visible:tw-outline-none focus:tw-outline-none focus-within:tw-outline-none ${disabled ? disabledClasses : ''} ${extraClassNames || ''}` }, triggerIcon)),
15756
16044
  React__namespace.createElement($d08ef79370b62062$export$7c6e2c02157bb7d2, { sideOffset: placementOffset, side: placement, align: align, alignOffset: alignOffset, asChild: true, onCloseAutoFocus: (e) => !setFocusOnTriggerOnClose && e.preventDefault(), className: "focus-visible:tw-outline-none tw-outline-none" },
15757
16045
  React__namespace.createElement("div", { "data-testid": containerTestId, className: bgStyles +
15758
- ' tw-relative tw-z-[1000] tw-min-w-6 focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out' +
16046
+ ' tw-relative tw-z-[1000] tw-min-w-6 tw-py-2 focus-visible:tw-outline-none tw-outline-none' +
16047
+ ' data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out' +
15759
16048
  ' forceFont data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade ' +
15760
16049
  borderStyles },
15761
16050
  hasArrow && (React__namespace.createElement($d08ef79370b62062$export$21b07c8f274aebd5, { asChild: true },
15762
- React__namespace.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[6px] tw-h-[6px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-700 tw-mt-[-2px]" }))),
16051
+ React__namespace.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[15px] tw-h-[15px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-500 tw-mt-[-7px]" }))),
15763
16052
  dropdownItems.map((item, index) => {
15764
- return item.isLabel ? (React__namespace.createElement($d08ef79370b62062$export$b04be29aa201d4f5, { key: (item.label || '') + index, className: item.containerExtraClassNames },
15765
- item.icon && (React__namespace.createElement(Icon, { icon: item.icon, testId: item.iconTestId, type: "text", color: item.iconColor, extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" })),
15766
- React__namespace.createElement("div", { "data-testid": item.labelTestId, className: "tw-text-[13px] tw-ml-1" }, item.label))) : (React__namespace.createElement("div", { key: item.label + index },
16053
+ if (item.isLabel) {
16054
+ return (React__namespace.createElement($d08ef79370b62062$export$b04be29aa201d4f5, { key: (item.label || '') + index, className: item.containerExtraClassNames },
16055
+ item.icon && (React__namespace.createElement(Icon, { icon: item.icon, testId: item.iconTestId, type: "text", color: item.iconColor, extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" })),
16056
+ React__namespace.createElement("div", { "data-testid": item.labelTestId, className: "tw-text-[13px] tw-ml-1" }, item.label)));
16057
+ }
16058
+ if (Array.isArray(item.subMenuItems) && item.subMenuItems.length > 0) {
16059
+ return (React__namespace.createElement($d08ef79370b62062$export$d7a01e11500dfb6f, { key: item.label + index },
16060
+ React__namespace.createElement($d08ef79370b62062$export$2ea8a7a591ac5eac, { id: id, className: `tw-cursor-pointer tw-flex tw-justify-between dark:tw-text-sq-white hover:tw-bg-sq-gray-highlight dark:hover:tw-bg-sq-gray-highlight-dark tw-leading-none tw-items-center tw-h-[27px] tw-pl-[19px] tw-relative tw-select-none tw-outline-none data-[disabled]:tw-text-sq-disabled-gray data-[disabled]:tw-pointer-events-none ${item.containerExtraClassNames || ''}`, "data-testid": item.testId, disabled: item.disabled },
16061
+ React__namespace.createElement("div", { className: "tw-flex" },
16062
+ item.icon && (React__namespace.createElement(Icon, { icon: item.icon, extraClassNames: `tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px] ${item.iconExtraClassNames || ''}` })),
16063
+ React__namespace.createElement("div", { "data-testid": item.labelTestId, "data-customid": item.labelCustomId, className: `tw-text-[13px] tw-ml-1 ${item.labelClasses}` }, item.label)),
16064
+ React__namespace.createElement(Icon, { small: true, icon: "fc-arrow-dropdown -tw-rotate-90", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px] tw-ml-4 tw-text-[8px] tw-justify-center tw-flex" })),
16065
+ React__namespace.createElement($d08ef79370b62062$export$6d4de93b380beddf, { className: "focus-visible:tw-outline-none tw-outline-none" },
16066
+ React__namespace.createElement("div", { "data-testid": containerTestId, className: bgStyles +
16067
+ ' tw-relative tw-z-[1000] tw-min-w-6 tw-py-2 focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out' +
16068
+ ' forceFont data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade ' +
16069
+ borderStyles }, item.subMenuItems.map((subItem, subIndex) => {
16070
+ return (React__namespace.createElement($d08ef79370b62062$export$6d08773d2e66f8f2, { key: subItem.label + subIndex, onSelect: subItem.onClick, "data-qtip-text": subItem.tooltip, className: "tw-cursor-pointer tw-flex dark:tw-text-sq-white hover:tw-bg-sq-gray-highlight dark:hover:tw-bg-sq-gray-highlight-dark tw-leading-none tw-items-center tw-h-[27px] tw-px-[19px] tw-relative tw-select-none tw-outline-none data-[disabled]:tw-text-sq-disabled-gray data-[disabled]:tw-pointer-events-none", disabled: subItem.disabled },
16071
+ subItem.iconClass && (React__namespace.createElement(Icon, { icon: subItem.iconClass, extraClassNames: `tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]` })),
16072
+ React__namespace.createElement("div", { className: `tw-text-[13px] tw-ml-1` }, subItem.label)));
16073
+ })))));
16074
+ }
16075
+ return (React__namespace.createElement("div", { key: item.label + index },
15767
16076
  React__namespace.createElement($d08ef79370b62062$export$6d08773d2e66f8f2, { key: item.label + index, "data-customid": item.itemCustomId, onSelect: (e) => {
15768
16077
  item.onClick(e);
15769
- }, className: `tw-cursor-pointer tw-flex dark:tw-text-sq-white hover:tw-bg-sq-colored-hover hover:dark:tw-bg-sq-colored-hover-dark tw-leading-none tw-items-center tw-h-[27px] tw-px-[19px] tw-relative tw-select-none tw-outline-none data-[disabled]:tw-text-sq-disabled-gray data-[disabled]:tw-pointer-events-none ${item.containerExtraClassNames || ''}`, "data-testid": item.testId, disabled: item.disabled },
16078
+ }, className: `tw-cursor-pointer tw-flex dark:tw-text-sq-white hover:tw-bg-sq-gray-highlight dark:hover:tw-bg-sq-gray-highlight-dark tw-leading-none tw-items-center tw-h-[27px] tw-px-[19px] tw-relative tw-select-none tw-outline-none data-[disabled]:tw-text-sq-disabled-gray data-[disabled]:tw-pointer-events-none ${item.containerExtraClassNames || ''}`, "data-testid": item.testId, disabled: item.disabled },
15770
16079
  item.icon && (React__namespace.createElement(Icon, { icon: item.icon, testId: item.iconTestId, type: (item.iconType || 'text'), color: item.iconColor, customId: item.iconCustomId, extraClassNames: `tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px] ${item.iconExtraClassNames || ''}` })),
15771
16080
  React__namespace.createElement("div", { "data-testid": item.labelTestId, "data-customid": item.labelCustomId, className: `tw-text-[13px] tw-ml-1 ${item.labelClasses}` }, item.label)),
15772
- item.hasDivider && (React__namespace.createElement($d08ef79370b62062$export$1ff3c3f08ae963c0, { "data-testid": `dropdown-divider-${index}`, className: "tw-h-[1px] tw-bg-sq-disabled-gray dark:tw-bg-gray-700 tw-my-[8px]" }))));
16081
+ item.hasDivider && (React__namespace.createElement($d08ef79370b62062$export$1ff3c3f08ae963c0, { "data-testid": `dropdown-divider-${index}`, className: "tw-h-[1px] tw-bg-sq-disabled-gray dark:tw-bg-gray-500 tw-my-[8px]" }))));
15773
16082
  })))));
15774
16083
  };
15775
16084