@televet/kibble-ui 5.0.3 → 5.0.4-beta.2

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 (92) hide show
  1. package/dist/chunks/{avatarGroup.component-x7ySfpyA.js → avatarGroup.component-BdhUT7n5.js} +2 -2
  2. package/dist/chunks/{avatarGroup.component-x7ySfpyA.js.map → avatarGroup.component-BdhUT7n5.js.map} +1 -1
  3. package/dist/chunks/{avatarGroup.component-CLteMZ56.js → avatarGroup.component-BwrjkSJn.js} +2 -2
  4. package/dist/chunks/{avatarGroup.component-CLteMZ56.js.map → avatarGroup.component-BwrjkSJn.js.map} +1 -1
  5. package/dist/chunks/{buttonGroup.component-Ce82BQGv.js → buttonGroup.component--dqWO06l.js} +2 -2
  6. package/dist/chunks/{buttonGroup.component-Ce82BQGv.js.map → buttonGroup.component--dqWO06l.js.map} +1 -1
  7. package/dist/chunks/{buttonGroup.component-CSEIrylL.js → buttonGroup.component-D1h4aH2G.js} +2 -2
  8. package/dist/chunks/{buttonGroup.component-CSEIrylL.js.map → buttonGroup.component-D1h4aH2G.js.map} +1 -1
  9. package/dist/chunks/{calendar.component-2i6L0Fpk.js → calendar.component-BI8rM2b7.js} +2 -2
  10. package/dist/chunks/{calendar.component-2i6L0Fpk.js.map → calendar.component-BI8rM2b7.js.map} +1 -1
  11. package/dist/chunks/{calendar.component-BbM30a06.js → calendar.component-CsOKKu1B.js} +2 -2
  12. package/dist/chunks/{calendar.component-BbM30a06.js.map → calendar.component-CsOKKu1B.js.map} +1 -1
  13. package/dist/chunks/{conversationCard.component-BpaFgj0T.js → conversationCard.component-8-HSmE3v.js} +2 -2
  14. package/dist/chunks/{conversationCard.component-BpaFgj0T.js.map → conversationCard.component-8-HSmE3v.js.map} +1 -1
  15. package/dist/chunks/{conversationCard.component-CAein2kE.js → conversationCard.component-FMq9PY8T.js} +2 -2
  16. package/dist/chunks/{conversationCard.component-CAein2kE.js.map → conversationCard.component-FMq9PY8T.js.map} +1 -1
  17. package/dist/chunks/{datePicker.component--eXoTVQV.js → datePicker.component-CcSzO2cP.js} +3 -3
  18. package/dist/chunks/{datePicker.component--eXoTVQV.js.map → datePicker.component-CcSzO2cP.js.map} +1 -1
  19. package/dist/chunks/{datePicker.component-B61MFSsZ.js → datePicker.component-DwOyIbZk.js} +2 -2
  20. package/dist/chunks/{datePicker.component-B61MFSsZ.js.map → datePicker.component-DwOyIbZk.js.map} +1 -1
  21. package/dist/chunks/{datePicker.provider-BGWL6djq.js → datePicker.provider-B3423SaO.js} +370 -370
  22. package/dist/chunks/{datePicker.provider-BGWL6djq.js.map → datePicker.provider-B3423SaO.js.map} +1 -1
  23. package/dist/chunks/datePicker.provider-Bi_9Q7nm.js +15 -0
  24. package/dist/chunks/{datePicker.provider-DvHAC4KM.js.map → datePicker.provider-Bi_9Q7nm.js.map} +1 -1
  25. package/dist/chunks/{dateTimePicker.component-decmNMjJ.js → dateTimePicker.component-COryQU_H.js} +4 -4
  26. package/dist/chunks/{dateTimePicker.component-decmNMjJ.js.map → dateTimePicker.component-COryQU_H.js.map} +1 -1
  27. package/dist/chunks/{dateTimePicker.component-B8tYT6Qh.js → dateTimePicker.component-CTx_6MBi.js} +2 -2
  28. package/dist/chunks/{dateTimePicker.component-B8tYT6Qh.js.map → dateTimePicker.component-CTx_6MBi.js.map} +1 -1
  29. package/dist/chunks/{menu.component-TeC2F3rT.js → menu.component-BuTY_3mt.js} +198 -194
  30. package/dist/chunks/menu.component-BuTY_3mt.js.map +1 -0
  31. package/dist/chunks/menu.component-D79Ce44I.js +2 -0
  32. package/dist/chunks/menu.component-D79Ce44I.js.map +1 -0
  33. package/dist/chunks/{popover.component-DbyavgPM.js → popover.component-BsiKfJR7.js} +2 -2
  34. package/dist/chunks/{popover.component-DbyavgPM.js.map → popover.component-BsiKfJR7.js.map} +1 -1
  35. package/dist/chunks/{popover.component-9PBdCDiB.js → popover.component-C0nG3J1J.js} +2 -2
  36. package/dist/chunks/{popover.component-9PBdCDiB.js.map → popover.component-C0nG3J1J.js.map} +1 -1
  37. package/dist/chunks/{popover.recipe-B9bkpDfc.js → popover.recipe-BAl0q_IZ.js} +8 -8
  38. package/dist/chunks/popover.recipe-BAl0q_IZ.js.map +1 -0
  39. package/dist/chunks/popover.recipe-NDvOfG9X.js +2 -0
  40. package/dist/chunks/popover.recipe-NDvOfG9X.js.map +1 -0
  41. package/dist/chunks/{radioGroup.types-CUg3XVch.js → radioGroup.types-C-JQsOXh.js} +2 -2
  42. package/dist/chunks/{radioGroup.types-CUg3XVch.js.map → radioGroup.types-C-JQsOXh.js.map} +1 -1
  43. package/dist/chunks/{radioGroup.types-BsKe5gz6.js → radioGroup.types-sigpU7JZ.js} +2 -2
  44. package/dist/chunks/{radioGroup.types-BsKe5gz6.js.map → radioGroup.types-sigpU7JZ.js.map} +1 -1
  45. package/dist/chunks/{tagBlock.component-BwhOg7ga.js → tagBlock.component-CUti4nJM.js} +2 -2
  46. package/dist/chunks/{tagBlock.component-BwhOg7ga.js.map → tagBlock.component-CUti4nJM.js.map} +1 -1
  47. package/dist/chunks/{tagBlock.component-D43MMwFp.js → tagBlock.component-DExd13J1.js} +2 -2
  48. package/dist/chunks/{tagBlock.component-D43MMwFp.js.map → tagBlock.component-DExd13J1.js.map} +1 -1
  49. package/dist/chunks/{timePicker.component-DKIP9ht3.js → timePicker.component-B750WQHA.js} +2 -2
  50. package/dist/chunks/{timePicker.component-DKIP9ht3.js.map → timePicker.component-B750WQHA.js.map} +1 -1
  51. package/dist/chunks/{timePicker.component-C_9VZDgk.js → timePicker.component-BOvQHyHv.js} +2 -2
  52. package/dist/chunks/{timePicker.component-C_9VZDgk.js.map → timePicker.component-BOvQHyHv.js.map} +1 -1
  53. package/dist/chunks/{timeRange.component-Bh1gGOkO.js → timeRange.component-C0f7pM9p.js} +2 -2
  54. package/dist/chunks/{timeRange.component-Bh1gGOkO.js.map → timeRange.component-C0f7pM9p.js.map} +1 -1
  55. package/dist/chunks/{timeRange.component-4CWzFhIU.js → timeRange.component-CdHkxVXb.js} +2 -2
  56. package/dist/chunks/{timeRange.component-4CWzFhIU.js.map → timeRange.component-CdHkxVXb.js.map} +1 -1
  57. package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
  58. package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
  59. package/dist/cjs/components/Calendar/index.cjs +1 -1
  60. package/dist/cjs/components/ConversationCard/index.cjs +1 -1
  61. package/dist/cjs/components/DatePicker/index.cjs +1 -1
  62. package/dist/cjs/components/DateTimePicker/index.cjs +1 -1
  63. package/dist/cjs/components/Menu/index.cjs +1 -1
  64. package/dist/cjs/components/Popover/index.cjs +1 -1
  65. package/dist/cjs/components/RadioGroup/index.cjs +1 -1
  66. package/dist/cjs/components/TagBlock/index.cjs +1 -1
  67. package/dist/cjs/components/TimePicker/index.cjs +1 -1
  68. package/dist/cjs/components/TimeRange/index.cjs +1 -1
  69. package/dist/cjs/components/index.cjs +1 -1
  70. package/dist/cjs/index.cjs +1 -1
  71. package/dist/esm/components/AvatarGroup/index.js +1 -1
  72. package/dist/esm/components/ButtonGroup/index.js +1 -1
  73. package/dist/esm/components/Calendar/index.js +1 -1
  74. package/dist/esm/components/ConversationCard/index.js +1 -1
  75. package/dist/esm/components/DatePicker/index.js +2 -2
  76. package/dist/esm/components/DateTimePicker/index.js +1 -1
  77. package/dist/esm/components/Menu/index.js +1 -1
  78. package/dist/esm/components/Popover/index.js +1 -1
  79. package/dist/esm/components/RadioGroup/index.js +1 -1
  80. package/dist/esm/components/TagBlock/index.js +1 -1
  81. package/dist/esm/components/TimePicker/index.js +1 -1
  82. package/dist/esm/components/TimeRange/index.js +1 -1
  83. package/dist/esm/components/index.js +13 -13
  84. package/dist/esm/index.js +13 -13
  85. package/package.json +1 -1
  86. package/dist/chunks/datePicker.provider-DvHAC4KM.js +0 -15
  87. package/dist/chunks/menu.component-DFkV2_Lb.js +0 -2
  88. package/dist/chunks/menu.component-DFkV2_Lb.js.map +0 -1
  89. package/dist/chunks/menu.component-TeC2F3rT.js.map +0 -1
  90. package/dist/chunks/popover.recipe-B9bkpDfc.js.map +0 -1
  91. package/dist/chunks/popover.recipe-Czy8Aeft.js +0 -2
  92. package/dist/chunks/popover.recipe-Czy8Aeft.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.component-BuTY_3mt.js","sources":["../../node_modules/@ark-ui/react/dist/components/menu/use-menu-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-option-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-checkbox-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-content.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-context-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-group-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-text.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item-group.js","../../node_modules/@ark-ui/react/dist/utils/use-effect-once.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-machine-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-trigger-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root-provider.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-separator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger-item.js","../../node_modules/@chakra-ui/react/dist/esm/components/menu/menu.js","../../src/components/Menu/components/MenuButton/menuButton.component.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.component.tsx","../../src/components/Menu/menu.component.tsx"],"sourcesContent":["'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuProvider, useMenuContext] = createContext({\n name: \"MenuContext\",\n hookName: \"useMenuContext\",\n providerName: \"<MenuProvider />\",\n strict: false\n});\n\nexport { MenuProvider, useMenuContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrow = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrow.displayName = \"MenuArrow\";\n\nexport { MenuArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrowTip = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrowTip.displayName = \"MenuArrowTip\";\n\nexport { MenuArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemProvider, useMenuItemContext] = createContext({\n name: \"MenuItemContext\",\n hookName: \"useMenuItemContext\",\n providerName: \"<MenuItemProvider />\"\n});\n\nexport { MenuItemProvider, useMenuItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemPropsProvider, useMenuItemPropsContext] = createContext({\n name: \"MenuItemPropsContext\",\n hookName: \"useMenuItemPropsContext\",\n providerName: \"<MenuItemPropsProvider />\"\n});\n\nexport { MenuItemPropsProvider, useMenuItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuCheckboxItem = forwardRef((props, ref) => {\n const [partialOptionItemProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"value\",\n \"valueText\"\n ]);\n const optionItemProps = {\n ...partialOptionItemProps,\n type: \"checkbox\"\n };\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport { MenuCheckboxItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContent = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(menu.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nMenuContent.displayName = \"MenuContent\";\n\nexport { MenuContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContextTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getContextTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\n\nexport { MenuContextTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuIndicator.displayName = \"MenuIndicator\";\n\nexport { MenuIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useEffect } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\",\n \"onSelect\"\n ]);\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getItemProps(itemProps), localProps);\n const itemState = menu.getItemState(itemProps);\n useEffect(() => {\n return menu.addItemListener({ id: itemState.id, onSelect: itemProps.onSelect });\n }, [itemState.id, itemProps.onSelect]);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuItem.displayName = \"MenuItem\";\n\nexport { MenuItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemGroupProvider, useMenuItemGroupContext] = createContext({\n name: \"MenuItemGroupContext\",\n hookName: \"useMenuItemGroupContext\",\n providerName: \"<MenuItemGroupProvider />\"\n});\n\nexport { MenuItemGroupProvider, useMenuItemGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport { MenuItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\n\nconst MenuItemGroupLabel = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const mergedProps = mergeProps(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemGroupLabel.displayName = \"MenuItemGroupLabel\";\n\nexport { MenuItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemIndicator.displayName = \"MenuItemIndicator\";\n\nexport { MenuItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemText.displayName = \"MenuItemText\";\n\nexport { MenuItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuPositioner = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuPositioner.displayName = \"MenuPositioner\";\n\nexport { MenuPositioner };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuRadioItem = forwardRef((props, ref) => {\n const [partialItemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\"\n ]);\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const optionItemProps = {\n ...partialItemProps,\n checked: itemGroup.value === partialItemProps.value,\n type: \"radio\",\n onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })\n };\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport { MenuRadioItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuRadioItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"onValueChange\",\n \"value\"\n ]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\n\nexport { MenuRadioItemGroup };\n","'use client';\nimport { useRef, useEffect } from 'react';\n\nconst useEffectOnce = (cb) => {\n const savedCallback = useRef(cb);\n const effectGuard = useRef(false);\n useEffect(() => {\n savedCallback.current = cb;\n });\n useEffect(() => {\n if (effectGuard.current !== true) {\n effectGuard.current = true;\n savedCallback.current();\n }\n }, []);\n};\n\nexport { useEffectOnce };\n","'use client';\nimport * as menu from '@zag-js/menu';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useMenu = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(menu.machine, machineProps);\n const api = menu.connect(service, normalizeProps);\n return { api, service };\n};\n\nexport { useMenu };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuMachineProvider, useMenuMachineContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuMachineProvider, useMenuMachineContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuTriggerItemProvider, useMenuTriggerItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenu } from './use-menu.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRoot = (props) => {\n const [presenceProps, menuProps] = splitPresenceProps(props);\n const [useMenuProps, localProps] = createSplitProps()(menuProps, [\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n ]);\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const { api, service } = useMenu(useMenuProps);\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, ...localProps }) }) }) });\n};\n\nexport { MenuRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRootProvider = (props) => {\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const [presenceProps, { value: menu, children }] = splitPresenceProps(props);\n const { api, service } = menu;\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) }) });\n};\n\nexport { MenuRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuSeparator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getSeparatorProps(), props);\n return /* @__PURE__ */ jsx(ark.hr, { ...mergedProps, ref });\n});\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport { MenuSeparator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...menu.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : menu.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuTrigger.displayName = \"MenuTrigger\";\n\nexport { MenuTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuTriggerItemContext } from './use-menu-trigger-item-context.js';\n\nconst MenuTriggerItem = forwardRef((props, ref) => {\n const getTriggerItemProps = useMenuTriggerItemContext();\n const mergedProps = mergeProps(getTriggerItemProps?.() ?? {}, props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport { MenuTriggerItem };\n","\"use strict\";\n\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { Menu } from '@ark-ui/react/menu';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\nimport { CheckIcon } from '../icons.js';\n\nconst {\n withRootProvider,\n withContext,\n useStyles: useMenuStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"menu\" });\nconst MenuRootProvider = withRootProvider(\n Menu.RootProvider\n);\nconst MenuRoot = withRootProvider(Menu.Root, {\n defaultProps: { lazyMount: true, unmountOnExit: true }\n});\nconst MenuPropsProvider = PropsProvider;\nconst MenuTrigger = withContext(\n Menu.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst MenuContextTrigger = withContext(Menu.ContextTrigger, \"contextTrigger\", { forwardAsChild: true });\nconst MenuPositioner = withContext(\n Menu.Positioner,\n \"positioner\",\n { forwardAsChild: true }\n);\nconst MenuSeparator = withContext(\n Menu.Separator,\n \"separator\",\n { forwardAsChild: true }\n);\nconst MenuContent = withContext(\n Menu.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst MenuArrowTip = withContext(\n Menu.ArrowTip,\n \"arrowTip\",\n { forwardAsChild: true }\n);\nconst MenuArrow = withContext(\n Menu.Arrow,\n \"arrow\",\n { forwardAsChild: true, defaultProps: { children: /* @__PURE__ */ jsx(MenuArrowTip, {}) } }\n);\nconst MenuIndicator = withContext(\n Menu.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\nconst MenuItemGroup = withContext(\n Menu.ItemGroup,\n \"itemGroup\",\n { forwardAsChild: true }\n);\nconst MenuItemGroupLabel = withContext(Menu.ItemGroupLabel, \"itemGroupLabel\", { forwardAsChild: true });\nconst MenuItem = withContext(\n Menu.Item,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuTriggerItem = withContext(Menu.TriggerItem, \"item\", { forwardAsChild: true });\nconst MenuItemText = withContext(\n Menu.ItemText,\n \"itemText\",\n { forwardAsChild: true }\n);\nconst MenuItemCommand = withContext(\n \"kbd\",\n \"itemCommand\"\n);\nconst MenuItemIndicator = withContext(Menu.ItemIndicator, \"itemIndicator\", {\n forwardAsChild: true,\n defaultProps: { children: /* @__PURE__ */ jsx(CheckIcon, { boxSize: \"4\" }) }\n});\nconst MenuCheckboxItem = withContext(Menu.CheckboxItem, \"item\", { forwardAsChild: true });\nconst MenuRadioItemGroup = withContext(Menu.RadioItemGroup, \"itemGroup\", { forwardAsChild: true });\nconst MenuRadioItem = withContext(\n Menu.RadioItem,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuContext = Menu.Context;\nconst MenuItemContext = Menu.ItemContext;\n\nexport { MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemCommand, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuPropsProvider, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuRootProvider, MenuSeparator, MenuTrigger, MenuTriggerItem, useMenuStyles };\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Box } from '@chakra-ui/react/box';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip, TooltipProps } from 'components/Tooltip/tooltip.component';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nexport interface MenuButtonProps extends Omit<ButtonProps, 'children'> {\n /** If true, the caret will be hidden.\n * @default false\n */\n hideCaret?: boolean;\n /** Text to display in the menu button. */\n text?: string;\n /** Props to customize the text. */\n textProps?: TextProps;\n /** Props to customize the tooltip. */\n tooltipProps?: Omit<TooltipProps, 'children' | 'label' | 'isOpen' | 'onClose'>;\n /** If true, the tooltip will be shown. */\n showTooltip?: boolean;\n /** Determines if the menu is open. */\n isMenuOpen?: boolean;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = 'md',\n text,\n textProps,\n variant,\n onClick,\n ['data-testid']: dataTestId = 'kibble-menu-button',\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid={dataTestId}\n size={size}\n variant={variant}\n {...rest}\n {...(!text && hideCaret && { paddingInline: 0, paddingBlock: 0 })}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid={`${dataTestId}-text`}\n fontWeight=\"semibold\"\n size={size}\n color={variant ? 'inherit' : textProps?.color || 'text.contrast'}\n truncated\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex className=\"Menu__ButtonCaret\" data-testid={`${dataTestId}-caret`}>\n <Icon name=\"chevronDown\" size={size === 'lg' ? 'sm' : 'xs'} />\n </Flex>\n )}\n </Button>\n );\n};\n\nexport const MenuButtonTooltip = ({ tooltipProps, isMenuOpen, ...rest }: MenuButtonProps): React.JSX.Element => {\n // Needed to manage tooltip open state separately to avoid sticky issues when we open and close menu list\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n\n const onMouseEnter = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(true);\n }\n }, [isMenuOpen]);\n\n const onMouseLeave = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n // Close tooltip when menu opens\n useEffect(() => {\n if (isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n return (\n <Tooltip label={rest.text || ''} open={isTooltipOpen && !isMenuOpen} {...tooltipProps}>\n <Box\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsTooltipOpen(false);\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <MenuButton {...rest} />\n </Box>\n </Tooltip>\n );\n};\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport React, { useCallback, useState } from 'react';\nimport { Text } from 'components/Text/text.component';\nimport { MenuItemType } from './menuItem.types';\nimport { Menu, MenuProps } from 'components/Menu';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { Checkbox } from 'components/Checkbox/checkbox.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Tooltip } from 'components/Tooltip';\n\ninterface BaseMenuItemProps {\n /** Label to display in the menu item. */\n label?: React.ReactNode;\n /** Left element to display in the menu item. */\n leftElement?: React.ReactNode;\n /** Group label to display in the menu item. */\n groupLabel?: string;\n /** Callback function to be called when the menu item is selected. */\n onSelect?: (value: string) => void;\n /** If true, the text will be truncated. */\n shouldTruncateText?: boolean;\n /** Type of the menu item.\n * @default default\n */\n type?: MenuItemType;\n /** Value of the menu item. */\n value: string;\n /** Variant of the menu item. */\n variant?: TypographyVariant;\n /** Data test id for the menu item.\n * @default kibble-menu-item\n */\n 'data-testid'?: string;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, 'onSelect' | 'isDisabled'> {\n /** Type of the menu item.\n * @default default\n */\n type?: 'default';\n /** If true, the menu item will be selected. */\n selected?: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface CheckboxMenuItemProps extends Omit<CMenu.CheckboxItemProps, 'onSelect'> {\n /** Type of the menu item.\n * @default checkbox\n */\n type: 'checkbox';\n /** If true, the checkbox will be checked. */\n checked: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, 'children' | 'buttonProps'> {\n /** Type of the menu item.\n * @default submenu\n */\n type: 'submenu';\n /** Value text for keyboard navigation. */\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps & (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = 'default',\n variant,\n ['data-testid']: dataTestId = 'kibble-menu-item',\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);\n\n const handleItemSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === 'submenu') {\n const {\n valueText,\n listProps,\n positionerProps,\n portalled = true,\n open,\n lazyMount = true,\n unmountOnExit = true,\n } = rest as Omit<SubmenuMenuItemProps, 'type'>;\n\n return (\n <Menu\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid={`${dataTestId}-submenu`}\n justifyContent=\"space-between\"\n aria-valuetext={valueText}\n position=\"relative\"\n onClick={(): void => {\n // If the submenu is controlled, call the onSelect callback passed to the menu\n if (open !== undefined && onSelect) {\n onSelect(rest.value);\n } else {\n // Otherwise, toggle the internalsubmenu open state\n setIsSubmenuOpen(!isSubmenuOpen);\n }\n }}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n <Icon name=\"chevronRight\" size=\"sm\" />\n </CMenu.TriggerItem>\n }\n portalled={portalled}\n open={open !== undefined ? open : isSubmenuOpen}\n listProps={listProps}\n positionerProps={positionerProps}\n />\n );\n }\n\n if (type === 'checkbox') {\n const { checked, value, disabled, tooltipLabel, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Checkbox\"\n data-testid={`${dataTestId}-checkbox`}\n value={value}\n closeOnSelect={false}\n onSelect={disabled ? undefined : handleItemSelect}\n gap={3}\n disabled={disabled}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} disabled={disabled} size=\"md\" fullWidth={false} />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n if (type === 'default') {\n const { selected = false, disabled, value, tooltipLabel, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid={`${dataTestId}-default`}\n value={value}\n onSelect={disabled ? undefined : handleItemSelect}\n disabled={disabled}\n {...(selected && { bgColor: 'background.secondaryAlpha.hover' })}\n {...defaultRest}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={selected ? 'info' : variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n tooltipLabel,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n tooltipLabel?: string;\n}): React.JSX.Element => {\n const content = (\n <Flex className=\"Menu__ItemLabel\" alignItems=\"center\" gap={3}>\n {leftElement}\n {typeof label === 'string' ? (\n <Text size=\"sm\" truncated={shouldTruncateText} variant={variant}>\n {label}\n </Text>\n ) : (\n label\n )}\n </Flex>\n );\n return tooltipLabel ? <Tooltip label={tooltipLabel}>{content}</Tooltip> : content;\n};\n","import { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\ninterface MenuToggleButtonsProps {\n /** Determines if there are selected items. */\n hasSelectedItems?: boolean;\n /** Name of the group. */\n groupName?: string;\n /** Callback function to toggle the selected items. */\n onToggle: ({ groupName, clear }: { clear: boolean; groupName?: string }) => void;\n /** Data test id for the menu toggle buttons.\n * @default kibble-menu-toggle-buttons\n */\n 'data-testid'?: string;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n ['data-testid']: dataTestId = 'kibble-menu-toggle-buttons',\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box className=\"Menu__ToggleButtons\" data-testid={dataTestId} {...(isGrouped && { textAlign: 'right', w: '50%' })}>\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({ groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => onToggle({ groupName, clear: false })}>\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({ hasSelectedItems, groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n disabled={!hasSelectedItems}\n onClick={(): void => onToggle({ groupName, clear: true })}\n >\n Clear All\n </Button>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { MenuButton, MenuButtonTooltip, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuItem, MenuItemProps } from './components/MenuItem/menuItem.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { Text } from 'components/Text/text.component';\nimport { TextInput } from 'components/TextInput/textInput.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { MenuToggleButtons } from './components/MenuToggleButtons/menuToggleButtons.component';\nimport { usePortalContentRef } from 'hooks/usePortalContentRef';\nimport { MenuListOnOpenChangeProps } from './menu.types';\nimport { MenuListProps } from './components/MenuList/menuList.types';\n\nexport interface MenuProps extends Omit<CMenu.RootProps, 'children' | 'onSelect' | 'onOpenChange'> {\n /** Props to customize the menu button trigger. */\n buttonProps?: MenuButtonProps;\n /** Props to customize the menu list. */\n listProps?: MenuListProps;\n /** Props to customize the positioner of the menu. */\n positionerProps?: CMenu.PositionerProps;\n /**\n * If true, the menu will be rendered in a Portal.\n * @default false\n */\n portalled?: boolean;\n /** Callback function to be called when the menu is opened or closed. */\n onOpenChange?: ({ open, allSelectedItems }: MenuListOnOpenChangeProps) => void;\n /** Data test id for the menu.\n * @default kibble-menu\n */\n 'data-testid'?: string;\n}\n\ninterface InternalMenuProps extends MenuProps {\n /** React element to be used as the trigger for the submenu.\n * @internal\n */\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n positionerProps,\n portalled = false,\n submenuTrigger,\n lazyMount = true,\n onOpenChange,\n ['data-testid']: dataTestId = 'kibble-menu',\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const { contentRef } = usePortalContentRef();\n const {\n canSelectAll,\n canSelectGroups,\n emptyState = 'No results found',\n groupSortOrder,\n loading,\n maxH = '480px',\n menuItems = [],\n minW = '240px',\n onSearch,\n onSelect: onListSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = 'Search...',\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [isOpen, setIsOpen] = useState(false);\n const [searchText, setSearchText] = useState<string>('');\n const [filteredMenuItems, setFilteredMenuItems] = useState<MenuItemProps[]>(menuItems);\n\n // Menu Items\n const groupedItems = useMemo(() => {\n const groups: Record<string, Record<string, MenuItemProps[]>> = {};\n\n filteredMenuItems?.forEach((item) => {\n const group = item.groupLabel || 'default';\n // Default and submenu items are grouped under \"default\"\n const type = item.type === 'checkbox' ? 'checkbox' : 'default';\n\n if (!groups[group]) {\n groups[group] = {};\n }\n\n if (!groups[group][type]) {\n groups[group][type] = [];\n }\n\n groups[group][type].push(item);\n });\n\n return groups;\n }, [filteredMenuItems]);\n\n const groups = useMemo(() => {\n const entries = Object.entries(groupedItems);\n\n if (!groupSortOrder || groupSortOrder.length === 0) {\n return entries;\n }\n\n // Sort groups based on groupSortOrder\n return entries.sort(([groupLabelA], [groupLabelB]) => {\n const indexA = groupSortOrder.indexOf(groupLabelA);\n const indexB = groupSortOrder.indexOf(groupLabelB);\n\n // If both groups are in the sort order, sort by their index\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n\n // If only groupA is in the sort order, it comes first\n if (indexA !== -1) {\n return -1;\n }\n\n // If only groupB is in the sort order, it comes first\n if (indexB !== -1) {\n return 1;\n }\n\n // If neither group is in the sort order, maintain original order\n return 0;\n });\n }, [groupedItems, groupSortOrder]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(() => menuItems?.filter((item) => item.type === 'checkbox') || [], [menuItems]);\n\n // Helper functions for checkbox state management\n const isChecked = useCallback(\n (value: string) => {\n return checkboxItems.some((item) => item.value === value && item.checked);\n },\n [checkboxItems],\n );\n\n // Helper function to get selected menu items based on selected values\n const selectedCheckboxItems = useMemo(() => {\n return checkboxItems.filter((item) => item.checked);\n }, [checkboxItems]);\n\n const handleToggleSelectAll = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newSelectedItems: MenuItemProps[];\n // Only allow checkbox items that are not disabled to be toggled\n const filteredCheckboxItems = filteredMenuItems.filter((item) => item.type === 'checkbox' && !item.disabled);\n\n // If the group name is provided, only toggle the items in the group\n if (groupName) {\n // Get the items in the group\n const groupedItems = filteredCheckboxItems.filter((item) => item.groupLabel === groupName);\n\n // If the clear flag is true, remove the items in the group\n newSelectedItems = clear\n ? selectedCheckboxItems.filter((cItem) => cItem.groupLabel !== groupName)\n : // Otherwise, add the items in the group to the selected items\n [...new Set([...selectedCheckboxItems, ...groupedItems])];\n } else {\n // If the group name is not provided, toggle all the items\n newSelectedItems = clear\n ? []\n : filteredCheckboxItems.map((item) => {\n return { ...item, checked: true };\n });\n }\n\n // Call the onSelectAll callback with the updated values\n onSelectAll?.({ allSelectedItems: newSelectedItems });\n },\n [onSelectAll, filteredMenuItems, selectedCheckboxItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n // If the item is a checkbox, update the selected checkbox values\n if (item.type === 'checkbox') {\n // Get the new list of selected checkbox items\n const allSelectedItems = isChecked(item.value)\n ? selectedCheckboxItems.filter((cItem) => cItem.value !== item.value)\n : [...selectedCheckboxItems, item];\n\n // If the item has it's own onSelect, call it with just the item value\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with the updated values\n onListSelect?.({ item, allSelectedItems });\n return;\n }\n\n // Otherwise this is a default item, so first check if the item has it's own onSelect callback\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with just the item itself\n onListSelect?.({ item, allSelectedItems: [item] });\n },\n [onListSelect, isChecked, selectedCheckboxItems],\n );\n\n // Search\n const filterOptions = useCallback((searchInput: string, itemsToFilter: MenuItemProps[]) => {\n if (searchInput === '' || !searchInput) {\n return itemsToFilter;\n }\n\n return itemsToFilter.filter((item): boolean => {\n const labelText = typeof item.label === 'string' ? item.label : item.valueText;\n\n return !!labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n }, []);\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearch) {\n onSearch(e);\n }\n },\n [onSearch],\n );\n\n const clearSearch = useCallback(() => {\n setSearchText('');\n\n if (onSearch) {\n onSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [onSearch]);\n\n // Cleanup\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open); // Track open state\n if (!open) {\n setSearchText('');\n setFilteredMenuItems(menuItems);\n }\n\n if (onOpenChange) {\n onOpenChange({ open, allSelectedItems: selectedCheckboxItems });\n }\n },\n [menuItems, onOpenChange, selectedCheckboxItems],\n );\n\n useEffect(() => {\n if (onSearch) {\n setFilteredMenuItems(menuItems);\n } else {\n setFilteredMenuItems(filterOptions(searchText, menuItems));\n }\n }, [searchText, onSearch, filterOptions, menuItems]);\n\n return (\n <CMenu.Root\n lazyMount={lazyMount}\n unmountOnExit={lazyMount}\n onOpenChange={(details) => {\n handleOpenChange(details.open);\n }}\n {...rest}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger asChild className=\"Menu__Trigger\" data-testid={`${dataTestId}-trigger`}>\n {buttonProps?.showTooltip ? (\n <MenuButtonTooltip isMenuOpen={isOpen} {...buttonProps} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled} container={contentRef || undefined}>\n <CMenu.Positioner className=\"Menu\" data-testid={dataTestId} {...positionerProps}>\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid={`${dataTestId}-content`}\n maxH={maxH}\n minW={minW}\n {...restListProps}\n {...(searchable && { pt: '0' })}\n onClick={(e) => {\n e.stopPropagation();\n restListProps?.onClick?.(e);\n }}\n >\n {searchable && (\n <Box\n className=\"Menu__SearchBarContainer\"\n data-testid={`${dataTestId}-search-bar-container`}\n px={3}\n py={2}\n position=\"sticky\"\n top={0}\n bg=\"background\"\n zIndex=\"docked\"\n >\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid={`${dataTestId}-search-bar`}\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={clearSearch}\n // Necessary to prevent the Menu from intercepting the Space key press and opening the menu when the search input is focused\n onKeyDown={(e) => {\n if (e.code === 'Space') {\n e.stopPropagation();\n }\n }}\n />\n </Box>\n )}\n {canSelectAll && (\n <Box\n className=\"Menu__CheckboxGroupHeader\"\n data-testid={`${dataTestId}-checkbox-group-header`}\n px={3}\n mt={searchable ? 1 : 2}\n >\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggleSelectAll}\n hasSelectedItems={!!selectedCheckboxItems.length}\n />\n )}\n </Box>\n )}\n {loading && (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner fullScreen />\n </Flex>\n )}\n <Box className=\"Menu__List\" data-testid={`${dataTestId}-list`}>\n {groups.length ? (\n <>\n {groups.map(([groupLabel, types]) => {\n const isDefaultGroup = groupLabel === 'default';\n const itemTypes = Object.keys(types);\n const MenuGroupContainer = !isDefaultGroup ? CMenu.ItemGroup : React.Fragment;\n const groupValues = types['checkbox']?.map((item) => item.value);\n const hasSelectedItems = groupValues?.some((value) =>\n selectedCheckboxItems.some((item) => item.value === value && item.checked),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex alignItems=\"center\" justifyContent=\"space-between\">\n {groupLabel}\n {canSelectGroups && itemTypes.includes('checkbox') && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggleSelectAll}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => {\n const { groupLabel, ...rest } = item;\n return (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === 'checkbox' && {\n checked: isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n {...(item.type === 'submenu' && {\n positionerProps,\n })}\n {...rest}\n data-testid={`${dataTestId}-item-${item.label}`}\n />\n );\n }),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box p={3}>\n {typeof emptyState === 'string' ? (\n <Box textAlign=\"center\">\n <Text size=\"sm\" variant=\"subtle\" data-testid={`${dataTestId}-empty-state`}>\n {emptyState}\n </Text>\n </Box>\n ) : (\n emptyState\n )}\n </Box>\n </>\n )}\n </Box>\n </CMenu.Content>\n </CMenu.Positioner>\n </Portal>\n </CMenu.Root>\n );\n};\n"],"names":["MenuProvider","useMenuContext","createContext","MenuArrow","forwardRef","props","ref","menu","mergedProps","mergeProps","jsx","ark","MenuArrowTip","MenuItemProvider","useMenuItemContext","MenuItemPropsProvider","useMenuItemPropsContext","MenuCheckboxItem","partialOptionItemProps","localProps","createSplitProps","optionItemProps","optionItemState","MenuContent","presence","usePresenceContext","composeRefs","MenuContextTrigger","MenuIndicator","MenuItem","itemProps","itemState","useEffect","MenuItemGroupProvider","useMenuItemGroupContext","MenuItemGroup","optionalItemGroupProps","itemGroupProps","useId","MenuItemGroupLabel","itemGroup","MenuItemIndicator","MenuItemText","MenuPositioner","MenuRadioItem","partialItemProps","MenuRadioItemGroup","useEffectOnce","cb","savedCallback","useRef","effectGuard","useMenu","id","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","service","useMachine","menu.machine","menu.connect","normalizeProps","MenuMachineProvider","useMenuMachineContext","MenuTriggerItemProvider","useMenuTriggerItemContext","MenuRoot","presenceProps","menuProps","splitPresenceProps","useMenuProps","parentApi","parentMachine","api","usePresence","triggerItemContext","useCallback","PresenceProvider","MenuRootProvider","children","MenuSeparator","MenuTrigger","MenuTriggerItem","getTriggerItemProps","withRootProvider","withContext","createSlotRecipeContext","Menu.RootProvider","Menu.Root","Menu.Trigger","Menu.ContextTrigger","Menu.Positioner","Menu.Separator","Menu.Content","Menu.ArrowTip","Menu.Arrow","Menu.Indicator","Menu.ItemGroup","Menu.ItemGroupLabel","Menu.Item","Menu.TriggerItem","Menu.ItemText","Menu.ItemIndicator","CheckIcon","Menu.CheckboxItem","Menu.RadioItemGroup","Menu.RadioItem","MenuButton","hideCaret","size","text","textProps","variant","onClick","dataTestId","rest","jsxs","Button","e","Text","Flex","Icon","MenuButtonTooltip","tooltipProps","isMenuOpen","isTooltipOpen","setIsTooltipOpen","useState","onMouseEnter","onMouseLeave","Tooltip","Box","label","leftElement","onSelect","shouldTruncateText","type","isSubmenuOpen","setIsSubmenuOpen","handleItemSelect","valueText","listProps","positionerProps","portalled","open","lazyMount","unmountOnExit","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","disabled","tooltipLabel","checkboxRest","CMenu.Item","Checkbox","selected","defaultRest","Fragment","content","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","ClearAllButton","SelectAllButton","buttonProps","submenuTrigger","onOpenChange","contentRef","usePortalContentRef","canSelectAll","canSelectGroups","emptyState","groupSortOrder","loading","maxH","menuItems","minW","onSearch","onListSelect","onSelectAll","searchable","searchPlaceholder","restListProps","isOpen","setIsOpen","searchText","setSearchText","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","entries","groupLabelA","groupLabelB","indexA","indexB","checkboxItems","isChecked","selectedCheckboxItems","handleToggleSelectAll","clear","newSelectedItems","filteredCheckboxItems","cItem","handleSelect","allSelectedItems","filterOptions","searchInput","itemsToFilter","handleSearch","clearSearch","handleOpenChange","CMenu.Root","details","CMenu.Trigger","Portal","CMenu.Positioner","CMenu.Content","TextInput","Spinner","groupLabel","types","isDefaultGroup","itemTypes","MenuGroupContainer","React","CMenu.ItemGroup","CMenu.ItemGroupLabel","items","index"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("./jsx-runtime-BjDatQAs.js"),i=require("react"),y=require("./index-BQRnVsAg.js"),K=require("./button.component-DjdgBXDC.js"),ce=require("./icon.component-B1hr5lLa.js"),J=require("./text.component-BDDz5KQP.js"),ae=require("./tooltip.component-DBw-hAPU.js"),G=require("./flex-BOU6tYUd.js"),Ue=require("./textInput.component-CWbv8giH.js"),Xe=require("./spinner.component-Dq6u4vVL.js"),Ye=require("./usePortalContentRef-CTrvBQ7I.js"),E=require("./index-Ts8g8jZd.js"),Ze=require("./create-slot-recipe-context-HXE1VazG.js"),et=require("./icons-B6Nwr9di.js"),l=require("./use-locale-context-ym21RUxU.js"),re=require("./index-rSq6Bry6.js"),m=require("./index-CQURjLlA.js"),tt=require("./checkbox.component-DkpiUlzn.js"),st=s=>s&&s.__esModule?s:{default:s},rt=st(i),[le,j]=l.createContext({name:"MenuContext",hookName:"useMenuContext",providerName:"<MenuProvider />",strict:!1}),pe=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getArrowProps(),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...o,ref:r})});pe.displayName="MenuArrow";const xe=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getArrowTipProps(),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...o,ref:r})});xe.displayName="MenuArrowTip";const[Q,ft]=l.createContext({name:"MenuItemContext",hookName:"useMenuItemContext",providerName:"<MenuItemProvider />"}),[U,de]=l.createContext({name:"MenuItemPropsContext",hookName:"useMenuItemPropsContext",providerName:"<MenuItemPropsProvider />"}),me=i.forwardRef((s,r)=>{const[t,o]=l.createSplitProps()(s,["checked","closeOnSelect","disabled","onCheckedChange","value","valueText"]),u={...t,type:"checkbox"},p=j(),c=m.mergeProps(p.getOptionItemProps(u),o),a=p.getOptionItemState(u);return e.jsxRuntimeExports.jsx(U,{value:u,children:e.jsxRuntimeExports.jsx(Q,{value:a,children:e.jsxRuntimeExports.jsx(l.ark.div,{...c,ref:r})})})});me.displayName="MenuCheckboxItem";const je=i.forwardRef((s,r)=>{const t=j(),o=E.usePresenceContext(),u=m.mergeProps(t.getContentProps(),o.getPresenceProps(),s);return o.unmounted?null:e.jsxRuntimeExports.jsx(l.ark.div,{...u,ref:l.composeRefs(o.ref,r)})});je.displayName="MenuContent";const he=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getContextTriggerProps(),s);return e.jsxRuntimeExports.jsx(l.ark.button,{...o,ref:r})});he.displayName="MenuContextTrigger";const ge=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getIndicatorProps(),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...o,ref:r})});ge.displayName="MenuIndicator";const fe=i.forwardRef((s,r)=>{const[t,o]=l.createSplitProps()(s,["closeOnSelect","disabled","value","valueText","onSelect"]),u=j(),p=m.mergeProps(u.getItemProps(t),o),c=u.getItemState(t);return i.useEffect(()=>u.addItemListener({id:c.id,onSelect:t.onSelect}),[c.id,t.onSelect]),e.jsxRuntimeExports.jsx(U,{value:t,children:e.jsxRuntimeExports.jsx(Q,{value:c,children:e.jsxRuntimeExports.jsx(l.ark.div,{...p,ref:r})})})});fe.displayName="MenuItem";const[Pe,Re]=l.createContext({name:"MenuItemGroupContext",hookName:"useMenuItemGroupContext",providerName:"<MenuItemGroupProvider />"}),Ce=i.forwardRef((s,r)=>{const[t,o]=l.createSplitProps()(s,["id"]),u=j(),c={id:i.useId(),...t},a=m.mergeProps(u.getItemGroupProps(c),o);return e.jsxRuntimeExports.jsx(Pe,{value:c,children:e.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:r})})});Ce.displayName="MenuItemGroup";const Me=i.forwardRef((s,r)=>{const t=j(),o=Re(),u=m.mergeProps(t.getItemGroupLabelProps({htmlFor:o.id}),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...u,ref:r})});Me.displayName="MenuItemGroupLabel";const ve=i.forwardRef((s,r)=>{const t=j(),o=de(),u=m.mergeProps(t.getItemIndicatorProps(o),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...u,ref:r})});ve.displayName="MenuItemIndicator";const Ee=i.forwardRef((s,r)=>{const t=j(),o=de(),u=m.mergeProps(t.getItemTextProps(o),s);return e.jsxRuntimeExports.jsx(l.ark.div,{...u,ref:r})});Ee.displayName="MenuItemText";const Ie=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getPositionerProps(),s);return E.usePresenceContext().unmounted?null:e.jsxRuntimeExports.jsx(l.ark.div,{...o,ref:r})});Ie.displayName="MenuPositioner";const be=i.forwardRef((s,r)=>{const[t,o]=l.createSplitProps()(s,["closeOnSelect","disabled","value","valueText"]),u=j(),p=Re(),c={...t,checked:p.value===t.value,type:"radio",onCheckedChange:()=>p.onValueChange?.({value:t.value})},a=m.mergeProps(u.getOptionItemProps(c),o),g=u.getOptionItemState(c);return e.jsxRuntimeExports.jsx(U,{value:c,children:e.jsxRuntimeExports.jsx(Q,{value:g,children:e.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:r})})})});be.displayName="MenuRadioItem";const ke=i.forwardRef((s,r)=>{const[t,o]=l.createSplitProps()(s,["id","onValueChange","value"]),u=j(),c={id:i.useId(),...t},a=m.mergeProps(u.getItemGroupProps({id:c.id}),o);return e.jsxRuntimeExports.jsx(Pe,{value:c,children:e.jsxRuntimeExports.jsx(l.ark.div,{...a,ref:r})})});ke.displayName="MenuRadioItemGroup";const Se=s=>{const r=i.useRef(s),t=i.useRef(!1);i.useEffect(()=>{r.current=s}),i.useEffect(()=>{t.current!==!0&&(t.current=!0,r.current())},[])},nt=s=>{const r=i.useId(),{getRootNode:t}=l.useEnvironmentContext(),{dir:o}=l.useLocaleContext(),u={id:r,dir:o,getRootNode:t,...s},p=l.useMachine(re.machine,u);return{api:re.connect(p,l.normalizeProps),service:p}},[we,Ne]=l.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),[ye,ot]=l.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),ut=s=>{const[r,t]=E.splitPresenceProps(s),[o,u]=l.createSplitProps()(t,["anchorPoint","aria-label","closeOnSelect","composite","defaultHighlightedValue","defaultOpen","highlightedValue","id","ids","loopFocus","navigate","onEscapeKeyDown","onFocusOutside","onHighlightChange","onInteractOutside","onOpenChange","onPointerDownOutside","onSelect","open","positioning","typeahead"]),p=j(),c=Ne(),{api:a,service:g}=nt(o),S=E.usePresence(m.mergeProps({present:a.open},r));Se(()=>{c&&p&&(p.setChild(g),a.setParent(c))});const w=i.useCallback(()=>p?.getTriggerItemProps(a),[a,p]);return e.jsxRuntimeExports.jsx(ye,{value:w,children:e.jsxRuntimeExports.jsx(we,{value:g,children:e.jsxRuntimeExports.jsx(le,{value:a,children:e.jsxRuntimeExports.jsx(E.PresenceProvider,{value:S,...u})})})})},it=s=>{const r=j(),t=Ne(),[o,{value:u,children:p}]=E.splitPresenceProps(s),{api:c,service:a}=u,g=E.usePresence(m.mergeProps({present:c.open},o));Se(()=>{t&&r&&(r.setChild(a),c.setParent(t))});const S=i.useCallback(()=>r?.getTriggerItemProps(c),[c,r]);return e.jsxRuntimeExports.jsx(ye,{value:S,children:e.jsxRuntimeExports.jsx(we,{value:a,children:e.jsxRuntimeExports.jsx(le,{value:c,children:e.jsxRuntimeExports.jsx(E.PresenceProvider,{value:g,children:p})})})})},_e=i.forwardRef((s,r)=>{const t=j(),o=m.mergeProps(t.getSeparatorProps(),s);return e.jsxRuntimeExports.jsx(l.ark.hr,{...o,ref:r})});_e.displayName="MenuSeparator";const Ae=i.forwardRef((s,r)=>{const t=j(),o=E.usePresenceContext(),u=m.mergeProps({...t.getTriggerProps(),"aria-controls":o.unmounted?void 0:t.getTriggerProps()["aria-controls"]},s);return e.jsxRuntimeExports.jsx(l.ark.button,{...u,ref:r})});Ae.displayName="MenuTrigger";const Te=i.forwardRef((s,r)=>{const t=ot(),o=m.mergeProps(t?.()??{},s);return e.jsxRuntimeExports.jsx(l.ark.div,{...o,ref:r})});Te.displayName="MenuTriggerItem";const{withRootProvider:Ge,withContext:h}=Ze.createSlotRecipeContext({key:"menu"});Ge(it);const ct=Ge(ut,{defaultProps:{lazyMount:!0,unmountOnExit:!0}}),at=h(Ae,"trigger",{forwardAsChild:!0});h(he,"contextTrigger",{forwardAsChild:!0});const lt=h(Ie,"positioner",{forwardAsChild:!0});h(_e,"separator",{forwardAsChild:!0});const pt=h(je,"content",{forwardAsChild:!0}),xt=h(xe,"arrowTip",{forwardAsChild:!0});h(pe,"arrow",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(xt,{})}});h(ge,"indicator",{forwardAsChild:!0});const dt=h(Ce,"itemGroup",{forwardAsChild:!0}),mt=h(Me,"itemGroupLabel",{forwardAsChild:!0}),ne=h(fe,"item",{forwardAsChild:!0}),jt=h(Te,"item",{forwardAsChild:!0});h(Ee,"itemText",{forwardAsChild:!0});h("kbd","itemCommand");h(ve,"itemIndicator",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(et.CheckIcon,{boxSize:"4"})}});h(me,"item",{forwardAsChild:!0});h(ke,"itemGroup",{forwardAsChild:!0});h(be,"item",{forwardAsChild:!0});const $e=({hideCaret:s=!1,size:r="md",text:t,textProps:o,variant:u,onClick:p,["data-testid"]:c="kibble-menu-button",...a})=>e.jsxRuntimeExports.jsxs(K.Button,{className:"Menu__Button","data-testid":c,size:r,variant:u,...a,...!t&&s&&{paddingInline:0,paddingBlock:0},onClick:g=>{g.stopPropagation(),p?.(g)},children:[t&&e.jsxRuntimeExports.jsx(J.WrappedText,{className:"Menu__ButtonText","data-testid":`${c}-text`,fontWeight:"semibold",size:r,color:u?"inherit":o?.color||"text.contrast",truncated:!0,...o,children:t}),!s&&e.jsxRuntimeExports.jsx(G.Flex,{className:"Menu__ButtonCaret","data-testid":`${c}-caret`,children:e.jsxRuntimeExports.jsx(ce.Icon,{name:"chevronDown",size:r==="lg"?"sm":"xs"})})]}),ht=({tooltipProps:s,isMenuOpen:r,...t})=>{const[o,u]=i.useState(!1),p=i.useCallback(()=>{r||u(!0)},[r]),c=i.useCallback(()=>{r||u(!1)},[r]);return i.useEffect(()=>{r&&u(!1)},[r]),e.jsxRuntimeExports.jsx(ae.Tooltip,{label:t.text||"",open:o&&!r,...s,children:e.jsxRuntimeExports.jsx(y.Box,{onClick:a=>{a.preventDefault(),a.stopPropagation(),u(!1)},onMouseEnter:p,onMouseLeave:c,children:e.jsxRuntimeExports.jsx($e,{...t})})})},gt=({label:s,leftElement:r,onSelect:t,shouldTruncateText:o,type:u="default",variant:p,["data-testid"]:c="kibble-menu-item",...a})=>{const[g,S]=i.useState(!1),w=i.useCallback(()=>{t&&t(a.value)},[t,a.value]);if(u==="submenu"){const{valueText:b,listProps:C,positionerProps:f,portalled:N=!0,open:I,lazyMount:M=!0,unmountOnExit:L=!0}=a;return e.jsxRuntimeExports.jsx(Oe,{lazyMount:M,unmountOnExit:L,submenuTrigger:e.jsxRuntimeExports.jsxs(jt,{className:"Menu__Item--Submenu","data-testid":`${c}-submenu`,justifyContent:"space-between","aria-valuetext":b,position:"relative",onClick:()=>{I!==void 0&&t?t(a.value):S(!g)},children:[e.jsxRuntimeExports.jsx(H,{label:s,leftElement:r,shouldTruncateText:o,variant:p}),e.jsxRuntimeExports.jsx(ce.Icon,{name:"chevronRight",size:"sm"})]}),portalled:N,open:I!==void 0?I:g,listProps:C,positionerProps:f})}if(u==="checkbox"){const{checked:b,value:C,disabled:f,tooltipLabel:N,...I}=a;return e.jsxRuntimeExports.jsxs(ne,{className:"Menu__Item--Checkbox","data-testid":`${c}-checkbox`,value:C,closeOnSelect:!1,onSelect:f?void 0:w,gap:3,disabled:f,...I,children:[e.jsxRuntimeExports.jsx(tt.WrappedCheckbox,{checked:!!b,disabled:f,size:"md",fullWidth:!1}),e.jsxRuntimeExports.jsx(H,{label:s,leftElement:r,shouldTruncateText:o,variant:p,tooltipLabel:N})]})}if(u==="default"){const{selected:b=!1,disabled:C,value:f,tooltipLabel:N,...I}=a;return e.jsxRuntimeExports.jsx(ne,{className:"Menu__Item--Default","data-testid":`${c}-default`,value:f,onSelect:C?void 0:w,disabled:C,...b&&{bgColor:"background.secondaryAlpha.hover"},...I,children:e.jsxRuntimeExports.jsx(H,{label:s,leftElement:r,shouldTruncateText:o,variant:b?"info":p,tooltipLabel:N})})}return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{})},H=({label:s,leftElement:r,shouldTruncateText:t,variant:o,tooltipLabel:u})=>{const p=e.jsxRuntimeExports.jsxs(G.Flex,{className:"Menu__ItemLabel",alignItems:"center",gap:3,children:[r,typeof s=="string"?e.jsxRuntimeExports.jsx(J.WrappedText,{size:"sm",truncated:t,variant:o,children:s}):s]});return u?e.jsxRuntimeExports.jsx(ae.Tooltip,{label:u,children:p}):p},oe=({groupName:s,hasSelectedItems:r=!1,onToggle:t,["data-testid"]:o="kibble-menu-toggle-buttons"})=>{const u=!!s;return e.jsxRuntimeExports.jsx(y.Box,{className:"Menu__ToggleButtons","data-testid":o,...u&&{textAlign:"right",w:"50%"},children:u?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:r?e.jsxRuntimeExports.jsx(ie,{hasSelectedItems:r,groupName:s,onToggle:t}):e.jsxRuntimeExports.jsx(ue,{groupName:s,onToggle:t})}):e.jsxRuntimeExports.jsxs(G.Flex,{justifyContent:"space-between",children:[e.jsxRuntimeExports.jsx(ue,{groupName:s,onToggle:t}),e.jsxRuntimeExports.jsx(ie,{hasSelectedItems:r,groupName:s,onToggle:t})]})})},ue=({groupName:s,onToggle:r})=>e.jsxRuntimeExports.jsx(K.Button,{variant:"ghost",size:"xs",onClick:()=>r({groupName:s,clear:!1}),children:"Select All"}),ie=({hasSelectedItems:s,groupName:r,onToggle:t})=>e.jsxRuntimeExports.jsx(K.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",disabled:!s,onClick:()=>t({groupName:r,clear:!0}),children:"Clear All"}),Oe=({buttonProps:s,listProps:r,positionerProps:t,portalled:o=!1,submenuTrigger:u,lazyMount:p=!0,onOpenChange:c,["data-testid"]:a="kibble-menu",...g})=>{const{contentRef:S}=Ye.usePortalContentRef(),{canSelectAll:w,canSelectGroups:b,emptyState:C="No results found",groupSortOrder:f,loading:N,maxH:I="480px",menuItems:M=[],minW:L="240px",onSearch:k,onSelect:q,onSelectAll:X,searchable:F,searchPlaceholder:Be="Search...",shouldTruncateText:Le,...Y}=r||{},[qe,Fe]=i.useState(!1),[z,D]=i.useState(""),[$,W]=i.useState(M),Z=i.useMemo(()=>{const n={};return $?.forEach(x=>{const d=x.groupLabel||"default",P=x.type==="checkbox"?"checkbox":"default";n[d]||(n[d]={}),n[d][P]||(n[d][P]=[]),n[d][P].push(x)}),n},[$]),ee=i.useMemo(()=>{const n=Object.entries(Z);return!f||f.length===0?n:n.sort(([x],[d])=>{const P=f.indexOf(x),R=f.indexOf(d);return P!==-1&&R!==-1?P-R:P!==-1?-1:R!==-1?1:0})},[Z,f]),A=i.useMemo(()=>M?.filter(n=>n.type==="checkbox")||[],[M]),V=i.useCallback(n=>A.some(x=>x.value===n&&x.checked),[A]),v=i.useMemo(()=>A.filter(n=>n.checked),[A]),te=i.useCallback(({groupName:n,clear:x})=>{let d;const P=$.filter(R=>R.type==="checkbox"&&!R.disabled);if(n){const R=P.filter(O=>O.groupLabel===n);d=x?v.filter(O=>O.groupLabel!==n):[...new Set([...v,...R])]}else d=x?[]:P.map(R=>({...R,checked:!0}));X?.({allSelectedItems:d})},[X,$,v]),ze=i.useCallback(n=>{if(n.type==="checkbox"){const x=V(n.value)?v.filter(d=>d.value!==n.value):[...v,n];if(n.onSelect){n.onSelect(n.value);return}q?.({item:n,allSelectedItems:x});return}if(n.onSelect){n.onSelect(n.value);return}q?.({item:n,allSelectedItems:[n]})},[q,V,v]),se=i.useCallback((n,x)=>n===""||!n?x:x.filter(d=>!!(typeof d.label=="string"?d.label:d.valueText)?.toLowerCase().includes(n.toLowerCase())),[]),De=i.useCallback(n=>{const x=n.target.value;D(x),k&&k(n)},[k]),We=i.useCallback(()=>{D(""),k&&k({target:{value:""}})},[k]),Ve=i.useCallback(n=>{Fe(n),n||(D(""),W(M)),c&&c({open:n,allSelectedItems:v})},[M,c,v]);return i.useEffect(()=>{W(k?M:se(z,M))},[z,k,se,M]),e.jsxRuntimeExports.jsxs(ct,{lazyMount:p,unmountOnExit:p,onOpenChange:n=>{Ve(n.open)},...g,children:[u||e.jsxRuntimeExports.jsx(at,{asChild:!0,className:"Menu__Trigger","data-testid":`${a}-trigger`,children:s?.showTooltip?e.jsxRuntimeExports.jsx(ht,{isMenuOpen:qe,...s}):e.jsxRuntimeExports.jsx($e,{...s})}),e.jsxRuntimeExports.jsx(E.Portal,{disabled:!o,container:S||void 0,children:e.jsxRuntimeExports.jsx(lt,{className:"Menu","data-testid":a,...t,children:e.jsxRuntimeExports.jsxs(pt,{className:"Menu__Content","data-testid":`${a}-content`,maxH:I,minW:L,...Y,...F&&{pt:"0"},onClick:n=>{n.stopPropagation(),Y?.onClick?.(n)},children:[F&&e.jsxRuntimeExports.jsx(y.Box,{className:"Menu__SearchBarContainer","data-testid":`${a}-search-bar-container`,px:3,py:2,position:"sticky",top:0,bg:"background",zIndex:"docked",children:e.jsxRuntimeExports.jsx(Ue.WrappedTextInput,{className:"Menu__SearchBar","data-testid":`${a}-search-bar`,placeholder:Be,onChange:De,size:"sm",value:z,clearable:!0,onClear:We,onKeyDown:n=>{n.code==="Space"&&n.stopPropagation()}})}),w&&e.jsxRuntimeExports.jsx(y.Box,{className:"Menu__CheckboxGroupHeader","data-testid":`${a}-checkbox-group-header`,px:3,mt:F?1:2,children:w&&!!A.length&&e.jsxRuntimeExports.jsx(oe,{onToggle:te,hasSelectedItems:!!v.length})}),N&&e.jsxRuntimeExports.jsx(G.Flex,{justifyContent:"center",py:5,children:e.jsxRuntimeExports.jsx(Xe.Spinner,{fullScreen:!0})}),e.jsxRuntimeExports.jsx(y.Box,{className:"Menu__List","data-testid":`${a}-list`,children:ee.length?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:ee.map(([n,x])=>{const d=n==="default",P=Object.keys(x),R=d?rt.default.Fragment:dt,He=x.checkbox?.map(T=>T.value)?.some(T=>v.some(B=>B.value===T&&B.checked));return e.jsxRuntimeExports.jsxs(R,{children:[!d&&e.jsxRuntimeExports.jsx(mt,{children:e.jsxRuntimeExports.jsxs(G.Flex,{alignItems:"center",justifyContent:"space-between",children:[n,b&&P.includes("checkbox")&&e.jsxRuntimeExports.jsx(oe,{groupName:n,onToggle:te,hasSelectedItems:He})]})}),Object.entries(x).map(([T,B])=>B.map((_,Ke)=>{const{groupLabel:Je,...Qe}=_;return e.jsxRuntimeExports.jsx(gt,{shouldTruncateText:Le,..._.type==="checkbox"&&{checked:V(_.value)},onSelect:()=>ze(_),..._.type==="submenu"&&{positionerProps:t},...Qe,"data-testid":`${a}-item-${_.label}`},`menu-item-${Je}-${T}-${Ke}`)}))]},n)})}):e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx(y.Box,{p:3,children:typeof C=="string"?e.jsxRuntimeExports.jsx(y.Box,{textAlign:"center",children:e.jsxRuntimeExports.jsx(J.WrappedText,{size:"sm",variant:"subtle","data-testid":`${a}-empty-state`,children:C})}):C})})})]})})})]})};exports.Menu=Oe;
2
+ //# sourceMappingURL=menu.component-D79Ce44I.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.component-D79Ce44I.js","sources":["../../node_modules/@ark-ui/react/dist/components/menu/use-menu-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-option-item-props-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-checkbox-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-content.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-context-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-item-group-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-group-label.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-indicator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-item-text.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-positioner.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-radio-item-group.js","../../node_modules/@ark-ui/react/dist/utils/use-effect-once.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-machine-context.js","../../node_modules/@ark-ui/react/dist/components/menu/use-menu-trigger-item-context.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-root-provider.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-separator.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger.js","../../node_modules/@ark-ui/react/dist/components/menu/menu-trigger-item.js","../../node_modules/@chakra-ui/react/dist/esm/components/menu/menu.js","../../src/components/Menu/components/MenuButton/menuButton.component.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.component.tsx","../../src/components/Menu/menu.component.tsx"],"sourcesContent":["'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuProvider, useMenuContext] = createContext({\n name: \"MenuContext\",\n hookName: \"useMenuContext\",\n providerName: \"<MenuProvider />\",\n strict: false\n});\n\nexport { MenuProvider, useMenuContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrow = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrow.displayName = \"MenuArrow\";\n\nexport { MenuArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuArrowTip = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuArrowTip.displayName = \"MenuArrowTip\";\n\nexport { MenuArrowTip };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemProvider, useMenuItemContext] = createContext({\n name: \"MenuItemContext\",\n hookName: \"useMenuItemContext\",\n providerName: \"<MenuItemProvider />\"\n});\n\nexport { MenuItemProvider, useMenuItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemPropsProvider, useMenuItemPropsContext] = createContext({\n name: \"MenuItemPropsContext\",\n hookName: \"useMenuItemPropsContext\",\n providerName: \"<MenuItemPropsProvider />\"\n});\n\nexport { MenuItemPropsProvider, useMenuItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuCheckboxItem = forwardRef((props, ref) => {\n const [partialOptionItemProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"closeOnSelect\",\n \"disabled\",\n \"onCheckedChange\",\n \"value\",\n \"valueText\"\n ]);\n const optionItemProps = {\n ...partialOptionItemProps,\n type: \"checkbox\"\n };\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport { MenuCheckboxItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContent = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(menu.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nMenuContent.displayName = \"MenuContent\";\n\nexport { MenuContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuContextTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getContextTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\n\nexport { MenuContextTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuIndicator.displayName = \"MenuIndicator\";\n\nexport { MenuIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useEffect } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\",\n \"onSelect\"\n ]);\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getItemProps(itemProps), localProps);\n const itemState = menu.getItemState(itemProps);\n useEffect(() => {\n return menu.addItemListener({ id: itemState.id, onSelect: itemProps.onSelect });\n }, [itemState.id, itemProps.onSelect]);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuItem.displayName = \"MenuItem\";\n\nexport { MenuItem };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuItemGroupProvider, useMenuItemGroupContext] = createContext({\n name: \"MenuItemGroupContext\",\n hookName: \"useMenuItemGroupContext\",\n providerName: \"<MenuItemGroupProvider />\"\n});\n\nexport { MenuItemGroupProvider, useMenuItemGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\"id\"]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps(itemGroupProps), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport { MenuItemGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\n\nconst MenuItemGroupLabel = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const mergedProps = mergeProps(menu.getItemGroupLabelProps({ htmlFor: itemGroup.id }), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemGroupLabel.displayName = \"MenuItemGroupLabel\";\n\nexport { MenuItemGroupLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemIndicator.displayName = \"MenuItemIndicator\";\n\nexport { MenuItemIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { useMenuItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const itemProps = useMenuItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuItemText.displayName = \"MenuItemText\";\n\nexport { MenuItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuPositioner = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuPositioner.displayName = \"MenuPositioner\";\n\nexport { MenuPositioner };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemProvider } from './use-menu-item-context.js';\nimport { useMenuItemGroupContext } from './use-menu-item-group-context.js';\nimport { MenuItemPropsProvider } from './use-menu-option-item-props-context.js';\n\nconst MenuRadioItem = forwardRef((props, ref) => {\n const [partialItemProps, localProps] = createSplitProps()(props, [\n \"closeOnSelect\",\n \"disabled\",\n \"value\",\n \"valueText\"\n ]);\n const menu = useMenuContext();\n const itemGroup = useMenuItemGroupContext();\n const optionItemProps = {\n ...partialItemProps,\n checked: itemGroup.value === partialItemProps.value,\n type: \"radio\",\n onCheckedChange: () => itemGroup.onValueChange?.({ value: partialItemProps.value })\n };\n const mergedProps = mergeProps(menu.getOptionItemProps(optionItemProps), localProps);\n const optionItemState = menu.getOptionItemState(optionItemProps);\n return /* @__PURE__ */ jsx(MenuItemPropsProvider, { value: optionItemProps, children: /* @__PURE__ */ jsx(MenuItemProvider, { value: optionItemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport { MenuRadioItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef, useId } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\nimport { MenuItemGroupProvider } from './use-menu-item-group-context.js';\n\nconst MenuRadioItemGroup = forwardRef((props, ref) => {\n const [optionalItemGroupProps, localProps] = createSplitProps()(props, [\n \"id\",\n \"onValueChange\",\n \"value\"\n ]);\n const menu = useMenuContext();\n const id = useId();\n const itemGroupProps = { id, ...optionalItemGroupProps };\n const mergedProps = mergeProps(menu.getItemGroupProps({ id: itemGroupProps.id }), localProps);\n return /* @__PURE__ */ jsx(MenuItemGroupProvider, { value: itemGroupProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\n\nexport { MenuRadioItemGroup };\n","'use client';\nimport { useRef, useEffect } from 'react';\n\nconst useEffectOnce = (cb) => {\n const savedCallback = useRef(cb);\n const effectGuard = useRef(false);\n useEffect(() => {\n savedCallback.current = cb;\n });\n useEffect(() => {\n if (effectGuard.current !== true) {\n effectGuard.current = true;\n savedCallback.current();\n }\n }, []);\n};\n\nexport { useEffectOnce };\n","'use client';\nimport * as menu from '@zag-js/menu';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useMenu = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(menu.machine, machineProps);\n const api = menu.connect(service, normalizeProps);\n return { api, service };\n};\n\nexport { useMenu };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuMachineProvider, useMenuMachineContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuMachineProvider, useMenuMachineContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [MenuTriggerItemProvider, useMenuTriggerItemContext] = createContext({\n name: \"MenuMachineContext\",\n hookName: \"useMenuMachineContext\",\n providerName: \"<MenuMachineProvider />\",\n strict: false\n});\n\nexport { MenuTriggerItemProvider, useMenuTriggerItemContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenu } from './use-menu.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRoot = (props) => {\n const [presenceProps, menuProps] = splitPresenceProps(props);\n const [useMenuProps, localProps] = createSplitProps()(menuProps, [\n \"anchorPoint\",\n \"aria-label\",\n \"closeOnSelect\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onSelect\",\n \"open\",\n \"positioning\",\n \"typeahead\"\n ]);\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const { api, service } = useMenu(useMenuProps);\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, ...localProps }) }) }) });\n};\n\nexport { MenuRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { useCallback } from 'react';\nimport { useEffectOnce } from '../../utils/use-effect-once.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useMenuContext, MenuProvider } from './use-menu-context.js';\nimport { useMenuMachineContext, MenuMachineProvider } from './use-menu-machine-context.js';\nimport { MenuTriggerItemProvider } from './use-menu-trigger-item-context.js';\n\nconst MenuRootProvider = (props) => {\n const parentApi = useMenuContext();\n const parentMachine = useMenuMachineContext();\n const [presenceProps, { value: menu, children }] = splitPresenceProps(props);\n const { api, service } = menu;\n const presence = usePresence(mergeProps({ present: api.open }, presenceProps));\n useEffectOnce(() => {\n if (!parentMachine) return;\n if (!parentApi) return;\n parentApi.setChild(service);\n api.setParent(parentMachine);\n });\n const triggerItemContext = useCallback(() => parentApi?.getTriggerItemProps(api), [api, parentApi]);\n return /* @__PURE__ */ jsx(MenuTriggerItemProvider, { value: triggerItemContext, children: /* @__PURE__ */ jsx(MenuMachineProvider, { value: service, children: /* @__PURE__ */ jsx(MenuProvider, { value: api, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) }) });\n};\n\nexport { MenuRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuSeparator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const mergedProps = mergeProps(menu.getSeparatorProps(), props);\n return /* @__PURE__ */ jsx(ark.hr, { ...mergedProps, ref });\n});\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport { MenuSeparator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useMenuContext } from './use-menu-context.js';\n\nconst MenuTrigger = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...menu.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : menu.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nMenuTrigger.displayName = \"MenuTrigger\";\n\nexport { MenuTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useMenuTriggerItemContext } from './use-menu-trigger-item-context.js';\n\nconst MenuTriggerItem = forwardRef((props, ref) => {\n const getTriggerItemProps = useMenuTriggerItemContext();\n const mergedProps = mergeProps(getTriggerItemProps?.() ?? {}, props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport { MenuTriggerItem };\n","\"use strict\";\n\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { Menu } from '@ark-ui/react/menu';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\nimport { CheckIcon } from '../icons.js';\n\nconst {\n withRootProvider,\n withContext,\n useStyles: useMenuStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"menu\" });\nconst MenuRootProvider = withRootProvider(\n Menu.RootProvider\n);\nconst MenuRoot = withRootProvider(Menu.Root, {\n defaultProps: { lazyMount: true, unmountOnExit: true }\n});\nconst MenuPropsProvider = PropsProvider;\nconst MenuTrigger = withContext(\n Menu.Trigger,\n \"trigger\",\n { forwardAsChild: true }\n);\nconst MenuContextTrigger = withContext(Menu.ContextTrigger, \"contextTrigger\", { forwardAsChild: true });\nconst MenuPositioner = withContext(\n Menu.Positioner,\n \"positioner\",\n { forwardAsChild: true }\n);\nconst MenuSeparator = withContext(\n Menu.Separator,\n \"separator\",\n { forwardAsChild: true }\n);\nconst MenuContent = withContext(\n Menu.Content,\n \"content\",\n { forwardAsChild: true }\n);\nconst MenuArrowTip = withContext(\n Menu.ArrowTip,\n \"arrowTip\",\n { forwardAsChild: true }\n);\nconst MenuArrow = withContext(\n Menu.Arrow,\n \"arrow\",\n { forwardAsChild: true, defaultProps: { children: /* @__PURE__ */ jsx(MenuArrowTip, {}) } }\n);\nconst MenuIndicator = withContext(\n Menu.Indicator,\n \"indicator\",\n { forwardAsChild: true }\n);\nconst MenuItemGroup = withContext(\n Menu.ItemGroup,\n \"itemGroup\",\n { forwardAsChild: true }\n);\nconst MenuItemGroupLabel = withContext(Menu.ItemGroupLabel, \"itemGroupLabel\", { forwardAsChild: true });\nconst MenuItem = withContext(\n Menu.Item,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuTriggerItem = withContext(Menu.TriggerItem, \"item\", { forwardAsChild: true });\nconst MenuItemText = withContext(\n Menu.ItemText,\n \"itemText\",\n { forwardAsChild: true }\n);\nconst MenuItemCommand = withContext(\n \"kbd\",\n \"itemCommand\"\n);\nconst MenuItemIndicator = withContext(Menu.ItemIndicator, \"itemIndicator\", {\n forwardAsChild: true,\n defaultProps: { children: /* @__PURE__ */ jsx(CheckIcon, { boxSize: \"4\" }) }\n});\nconst MenuCheckboxItem = withContext(Menu.CheckboxItem, \"item\", { forwardAsChild: true });\nconst MenuRadioItemGroup = withContext(Menu.RadioItemGroup, \"itemGroup\", { forwardAsChild: true });\nconst MenuRadioItem = withContext(\n Menu.RadioItem,\n \"item\",\n { forwardAsChild: true }\n);\nconst MenuContext = Menu.Context;\nconst MenuItemContext = Menu.ItemContext;\n\nexport { MenuArrow, MenuArrowTip, MenuCheckboxItem, MenuContent, MenuContext, MenuContextTrigger, MenuIndicator, MenuItem, MenuItemCommand, MenuItemContext, MenuItemGroup, MenuItemGroupLabel, MenuItemIndicator, MenuItemText, MenuPositioner, MenuPropsProvider, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuRootProvider, MenuSeparator, MenuTrigger, MenuTriggerItem, useMenuStyles };\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Box } from '@chakra-ui/react/box';\nimport { Button, ButtonProps } from 'components/Button/button.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip, TooltipProps } from 'components/Tooltip/tooltip.component';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nexport interface MenuButtonProps extends Omit<ButtonProps, 'children'> {\n /** If true, the caret will be hidden.\n * @default false\n */\n hideCaret?: boolean;\n /** Text to display in the menu button. */\n text?: string;\n /** Props to customize the text. */\n textProps?: TextProps;\n /** Props to customize the tooltip. */\n tooltipProps?: Omit<TooltipProps, 'children' | 'label' | 'isOpen' | 'onClose'>;\n /** If true, the tooltip will be shown. */\n showTooltip?: boolean;\n /** Determines if the menu is open. */\n isMenuOpen?: boolean;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = 'md',\n text,\n textProps,\n variant,\n onClick,\n ['data-testid']: dataTestId = 'kibble-menu-button',\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid={dataTestId}\n size={size}\n variant={variant}\n {...rest}\n {...(!text && hideCaret && { paddingInline: 0, paddingBlock: 0 })}\n onClick={(e) => {\n e.stopPropagation();\n onClick?.(e);\n }}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid={`${dataTestId}-text`}\n fontWeight=\"semibold\"\n size={size}\n color={variant ? 'inherit' : textProps?.color || 'text.contrast'}\n truncated\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex className=\"Menu__ButtonCaret\" data-testid={`${dataTestId}-caret`}>\n <Icon name=\"chevronDown\" size={size === 'lg' ? 'sm' : 'xs'} />\n </Flex>\n )}\n </Button>\n );\n};\n\nexport const MenuButtonTooltip = ({ tooltipProps, isMenuOpen, ...rest }: MenuButtonProps): React.JSX.Element => {\n // Needed to manage tooltip open state separately to avoid sticky issues when we open and close menu list\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n\n const onMouseEnter = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(true);\n }\n }, [isMenuOpen]);\n\n const onMouseLeave = useCallback((): void => {\n if (!isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n // Close tooltip when menu opens\n useEffect(() => {\n if (isMenuOpen) {\n setIsTooltipOpen(false);\n }\n }, [isMenuOpen]);\n\n return (\n <Tooltip label={rest.text || ''} open={isTooltipOpen && !isMenuOpen} {...tooltipProps}>\n <Box\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n setIsTooltipOpen(false);\n }}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <MenuButton {...rest} />\n </Box>\n </Tooltip>\n );\n};\n","import { Flex } from '@chakra-ui/react/flex';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport React, { useCallback, useState } from 'react';\nimport { Text } from 'components/Text/text.component';\nimport { MenuItemType } from './menuItem.types';\nimport { Menu, MenuProps } from 'components/Menu';\nimport { TypographyVariant } from 'shared/types/typography';\nimport { Checkbox } from 'components/Checkbox/checkbox.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { Tooltip } from 'components/Tooltip';\n\ninterface BaseMenuItemProps {\n /** Label to display in the menu item. */\n label?: React.ReactNode;\n /** Left element to display in the menu item. */\n leftElement?: React.ReactNode;\n /** Group label to display in the menu item. */\n groupLabel?: string;\n /** Callback function to be called when the menu item is selected. */\n onSelect?: (value: string) => void;\n /** If true, the text will be truncated. */\n shouldTruncateText?: boolean;\n /** Type of the menu item.\n * @default default\n */\n type?: MenuItemType;\n /** Value of the menu item. */\n value: string;\n /** Variant of the menu item. */\n variant?: TypographyVariant;\n /** Data test id for the menu item.\n * @default kibble-menu-item\n */\n 'data-testid'?: string;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, 'onSelect' | 'isDisabled'> {\n /** Type of the menu item.\n * @default default\n */\n type?: 'default';\n /** If true, the menu item will be selected. */\n selected?: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface CheckboxMenuItemProps extends Omit<CMenu.CheckboxItemProps, 'onSelect'> {\n /** Type of the menu item.\n * @default checkbox\n */\n type: 'checkbox';\n /** If true, the checkbox will be checked. */\n checked: boolean;\n /** Tooltip label to display in the menu item. */\n tooltipLabel?: string;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, 'children' | 'buttonProps'> {\n /** Type of the menu item.\n * @default submenu\n */\n type: 'submenu';\n /** Value text for keyboard navigation. */\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps & (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = 'default',\n variant,\n ['data-testid']: dataTestId = 'kibble-menu-item',\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const [isSubmenuOpen, setIsSubmenuOpen] = useState(false);\n\n const handleItemSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === 'submenu') {\n const {\n valueText,\n listProps,\n positionerProps,\n portalled = true,\n open,\n lazyMount = true,\n unmountOnExit = true,\n } = rest as Omit<SubmenuMenuItemProps, 'type'>;\n\n return (\n <Menu\n lazyMount={lazyMount}\n unmountOnExit={unmountOnExit}\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid={`${dataTestId}-submenu`}\n justifyContent=\"space-between\"\n aria-valuetext={valueText}\n position=\"relative\"\n onClick={(): void => {\n // If the submenu is controlled, call the onSelect callback passed to the menu\n if (open !== undefined && onSelect) {\n onSelect(rest.value);\n } else {\n // Otherwise, toggle the internalsubmenu open state\n setIsSubmenuOpen(!isSubmenuOpen);\n }\n }}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n <Icon name=\"chevronRight\" size=\"sm\" />\n </CMenu.TriggerItem>\n }\n portalled={portalled}\n open={open !== undefined ? open : isSubmenuOpen}\n listProps={listProps}\n positionerProps={positionerProps}\n />\n );\n }\n\n if (type === 'checkbox') {\n const { checked, value, disabled, tooltipLabel, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Checkbox\"\n data-testid={`${dataTestId}-checkbox`}\n value={value}\n closeOnSelect={false}\n onSelect={disabled ? undefined : handleItemSelect}\n gap={3}\n disabled={disabled}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} disabled={disabled} size=\"md\" fullWidth={false} />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n if (type === 'default') {\n const { selected = false, disabled, value, tooltipLabel, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid={`${dataTestId}-default`}\n value={value}\n onSelect={disabled ? undefined : handleItemSelect}\n disabled={disabled}\n {...(selected && { bgColor: 'background.secondaryAlpha.hover' })}\n {...defaultRest}\n >\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={selected ? 'info' : variant}\n tooltipLabel={tooltipLabel}\n />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n tooltipLabel,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n tooltipLabel?: string;\n}): React.JSX.Element => {\n const content = (\n <Flex className=\"Menu__ItemLabel\" alignItems=\"center\" gap={3}>\n {leftElement}\n {typeof label === 'string' ? (\n <Text size=\"sm\" truncated={shouldTruncateText} variant={variant}>\n {label}\n </Text>\n ) : (\n label\n )}\n </Flex>\n );\n return tooltipLabel ? <Tooltip label={tooltipLabel}>{content}</Tooltip> : content;\n};\n","import { Box } from '@chakra-ui/react/box';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Button } from 'components/Button/button.component';\n\ninterface MenuToggleButtonsProps {\n /** Determines if there are selected items. */\n hasSelectedItems?: boolean;\n /** Name of the group. */\n groupName?: string;\n /** Callback function to toggle the selected items. */\n onToggle: ({ groupName, clear }: { clear: boolean; groupName?: string }) => void;\n /** Data test id for the menu toggle buttons.\n * @default kibble-menu-toggle-buttons\n */\n 'data-testid'?: string;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n ['data-testid']: dataTestId = 'kibble-menu-toggle-buttons',\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box className=\"Menu__ToggleButtons\" data-testid={dataTestId} {...(isGrouped && { textAlign: 'right', w: '50%' })}>\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton hasSelectedItems={hasSelectedItems} groupName={groupName} onToggle={onToggle} />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({ groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => onToggle({ groupName, clear: false })}>\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({ hasSelectedItems, groupName, onToggle }: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n disabled={!hasSelectedItems}\n onClick={(): void => onToggle({ groupName, clear: true })}\n >\n Clear All\n </Button>\n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Menu as CMenu } from '@chakra-ui/react/menu';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { MenuButton, MenuButtonTooltip, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuItem, MenuItemProps } from './components/MenuItem/menuItem.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { Text } from 'components/Text/text.component';\nimport { TextInput } from 'components/TextInput/textInput.component';\nimport { Flex } from '@chakra-ui/react/flex';\nimport { Spinner } from 'components/Spinner/spinner.component';\nimport { MenuToggleButtons } from './components/MenuToggleButtons/menuToggleButtons.component';\nimport { usePortalContentRef } from 'hooks/usePortalContentRef';\nimport { MenuListOnOpenChangeProps } from './menu.types';\nimport { MenuListProps } from './components/MenuList/menuList.types';\n\nexport interface MenuProps extends Omit<CMenu.RootProps, 'children' | 'onSelect' | 'onOpenChange'> {\n /** Props to customize the menu button trigger. */\n buttonProps?: MenuButtonProps;\n /** Props to customize the menu list. */\n listProps?: MenuListProps;\n /** Props to customize the positioner of the menu. */\n positionerProps?: CMenu.PositionerProps;\n /**\n * If true, the menu will be rendered in a Portal.\n * @default false\n */\n portalled?: boolean;\n /** Callback function to be called when the menu is opened or closed. */\n onOpenChange?: ({ open, allSelectedItems }: MenuListOnOpenChangeProps) => void;\n /** Data test id for the menu.\n * @default kibble-menu\n */\n 'data-testid'?: string;\n}\n\ninterface InternalMenuProps extends MenuProps {\n /** React element to be used as the trigger for the submenu.\n * @internal\n */\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n positionerProps,\n portalled = false,\n submenuTrigger,\n lazyMount = true,\n onOpenChange,\n ['data-testid']: dataTestId = 'kibble-menu',\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const { contentRef } = usePortalContentRef();\n const {\n canSelectAll,\n canSelectGroups,\n emptyState = 'No results found',\n groupSortOrder,\n loading,\n maxH = '480px',\n menuItems = [],\n minW = '240px',\n onSearch,\n onSelect: onListSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = 'Search...',\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [isOpen, setIsOpen] = useState(false);\n const [searchText, setSearchText] = useState<string>('');\n const [filteredMenuItems, setFilteredMenuItems] = useState<MenuItemProps[]>(menuItems);\n\n // Menu Items\n const groupedItems = useMemo(() => {\n const groups: Record<string, Record<string, MenuItemProps[]>> = {};\n\n filteredMenuItems?.forEach((item) => {\n const group = item.groupLabel || 'default';\n // Default and submenu items are grouped under \"default\"\n const type = item.type === 'checkbox' ? 'checkbox' : 'default';\n\n if (!groups[group]) {\n groups[group] = {};\n }\n\n if (!groups[group][type]) {\n groups[group][type] = [];\n }\n\n groups[group][type].push(item);\n });\n\n return groups;\n }, [filteredMenuItems]);\n\n const groups = useMemo(() => {\n const entries = Object.entries(groupedItems);\n\n if (!groupSortOrder || groupSortOrder.length === 0) {\n return entries;\n }\n\n // Sort groups based on groupSortOrder\n return entries.sort(([groupLabelA], [groupLabelB]) => {\n const indexA = groupSortOrder.indexOf(groupLabelA);\n const indexB = groupSortOrder.indexOf(groupLabelB);\n\n // If both groups are in the sort order, sort by their index\n if (indexA !== -1 && indexB !== -1) {\n return indexA - indexB;\n }\n\n // If only groupA is in the sort order, it comes first\n if (indexA !== -1) {\n return -1;\n }\n\n // If only groupB is in the sort order, it comes first\n if (indexB !== -1) {\n return 1;\n }\n\n // If neither group is in the sort order, maintain original order\n return 0;\n });\n }, [groupedItems, groupSortOrder]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(() => menuItems?.filter((item) => item.type === 'checkbox') || [], [menuItems]);\n\n // Helper functions for checkbox state management\n const isChecked = useCallback(\n (value: string) => {\n return checkboxItems.some((item) => item.value === value && item.checked);\n },\n [checkboxItems],\n );\n\n // Helper function to get selected menu items based on selected values\n const selectedCheckboxItems = useMemo(() => {\n return checkboxItems.filter((item) => item.checked);\n }, [checkboxItems]);\n\n const handleToggleSelectAll = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newSelectedItems: MenuItemProps[];\n // Only allow checkbox items that are not disabled to be toggled\n const filteredCheckboxItems = filteredMenuItems.filter((item) => item.type === 'checkbox' && !item.disabled);\n\n // If the group name is provided, only toggle the items in the group\n if (groupName) {\n // Get the items in the group\n const groupedItems = filteredCheckboxItems.filter((item) => item.groupLabel === groupName);\n\n // If the clear flag is true, remove the items in the group\n newSelectedItems = clear\n ? selectedCheckboxItems.filter((cItem) => cItem.groupLabel !== groupName)\n : // Otherwise, add the items in the group to the selected items\n [...new Set([...selectedCheckboxItems, ...groupedItems])];\n } else {\n // If the group name is not provided, toggle all the items\n newSelectedItems = clear\n ? []\n : filteredCheckboxItems.map((item) => {\n return { ...item, checked: true };\n });\n }\n\n // Call the onSelectAll callback with the updated values\n onSelectAll?.({ allSelectedItems: newSelectedItems });\n },\n [onSelectAll, filteredMenuItems, selectedCheckboxItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n // If the item is a checkbox, update the selected checkbox values\n if (item.type === 'checkbox') {\n // Get the new list of selected checkbox items\n const allSelectedItems = isChecked(item.value)\n ? selectedCheckboxItems.filter((cItem) => cItem.value !== item.value)\n : [...selectedCheckboxItems, item];\n\n // If the item has it's own onSelect, call it with just the item value\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with the updated values\n onListSelect?.({ item, allSelectedItems });\n return;\n }\n\n // Otherwise this is a default item, so first check if the item has it's own onSelect callback\n if (item.onSelect) {\n item.onSelect(item.value);\n return;\n }\n\n // Otherwise call the onSelect callback with just the item itself\n onListSelect?.({ item, allSelectedItems: [item] });\n },\n [onListSelect, isChecked, selectedCheckboxItems],\n );\n\n // Search\n const filterOptions = useCallback((searchInput: string, itemsToFilter: MenuItemProps[]) => {\n if (searchInput === '' || !searchInput) {\n return itemsToFilter;\n }\n\n return itemsToFilter.filter((item): boolean => {\n const labelText = typeof item.label === 'string' ? item.label : item.valueText;\n\n return !!labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n }, []);\n\n const handleSearch = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearch) {\n onSearch(e);\n }\n },\n [onSearch],\n );\n\n const clearSearch = useCallback(() => {\n setSearchText('');\n\n if (onSearch) {\n onSearch({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }, [onSearch]);\n\n // Cleanup\n const handleOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open); // Track open state\n if (!open) {\n setSearchText('');\n setFilteredMenuItems(menuItems);\n }\n\n if (onOpenChange) {\n onOpenChange({ open, allSelectedItems: selectedCheckboxItems });\n }\n },\n [menuItems, onOpenChange, selectedCheckboxItems],\n );\n\n useEffect(() => {\n if (onSearch) {\n setFilteredMenuItems(menuItems);\n } else {\n setFilteredMenuItems(filterOptions(searchText, menuItems));\n }\n }, [searchText, onSearch, filterOptions, menuItems]);\n\n return (\n <CMenu.Root\n lazyMount={lazyMount}\n unmountOnExit={lazyMount}\n onOpenChange={(details) => {\n handleOpenChange(details.open);\n }}\n {...rest}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger asChild className=\"Menu__Trigger\" data-testid={`${dataTestId}-trigger`}>\n {buttonProps?.showTooltip ? (\n <MenuButtonTooltip isMenuOpen={isOpen} {...buttonProps} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled} container={contentRef || undefined}>\n <CMenu.Positioner className=\"Menu\" data-testid={dataTestId} {...positionerProps}>\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid={`${dataTestId}-content`}\n maxH={maxH}\n minW={minW}\n {...restListProps}\n {...(searchable && { pt: '0' })}\n onClick={(e) => {\n e.stopPropagation();\n restListProps?.onClick?.(e);\n }}\n >\n {searchable && (\n <Box\n className=\"Menu__SearchBarContainer\"\n data-testid={`${dataTestId}-search-bar-container`}\n px={3}\n py={2}\n position=\"sticky\"\n top={0}\n bg=\"background\"\n zIndex=\"docked\"\n >\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid={`${dataTestId}-search-bar`}\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={clearSearch}\n // Necessary to prevent the Menu from intercepting the Space key press and opening the menu when the search input is focused\n onKeyDown={(e) => {\n if (e.code === 'Space') {\n e.stopPropagation();\n }\n }}\n />\n </Box>\n )}\n {canSelectAll && (\n <Box\n className=\"Menu__CheckboxGroupHeader\"\n data-testid={`${dataTestId}-checkbox-group-header`}\n px={3}\n mt={searchable ? 1 : 2}\n >\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggleSelectAll}\n hasSelectedItems={!!selectedCheckboxItems.length}\n />\n )}\n </Box>\n )}\n {loading && (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner fullScreen />\n </Flex>\n )}\n <Box className=\"Menu__List\" data-testid={`${dataTestId}-list`}>\n {groups.length ? (\n <>\n {groups.map(([groupLabel, types]) => {\n const isDefaultGroup = groupLabel === 'default';\n const itemTypes = Object.keys(types);\n const MenuGroupContainer = !isDefaultGroup ? CMenu.ItemGroup : React.Fragment;\n const groupValues = types['checkbox']?.map((item) => item.value);\n const hasSelectedItems = groupValues?.some((value) =>\n selectedCheckboxItems.some((item) => item.value === value && item.checked),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex alignItems=\"center\" justifyContent=\"space-between\">\n {groupLabel}\n {canSelectGroups && itemTypes.includes('checkbox') && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggleSelectAll}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => {\n const { groupLabel, ...rest } = item;\n return (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === 'checkbox' && {\n checked: isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n {...(item.type === 'submenu' && {\n positionerProps,\n })}\n {...rest}\n data-testid={`${dataTestId}-item-${item.label}`}\n />\n );\n }),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box p={3}>\n {typeof emptyState === 'string' ? (\n <Box textAlign=\"center\">\n <Text size=\"sm\" variant=\"subtle\" data-testid={`${dataTestId}-empty-state`}>\n {emptyState}\n </Text>\n </Box>\n ) : (\n emptyState\n )}\n </Box>\n </>\n )}\n </Box>\n </CMenu.Content>\n </CMenu.Positioner>\n </Portal>\n </CMenu.Root>\n );\n};\n"],"names":["MenuProvider","useMenuContext","createContext","MenuArrow","forwardRef","props","ref","menu","mergedProps","mergeProps","jsx","ark","MenuArrowTip","MenuItemProvider","useMenuItemContext","MenuItemPropsProvider","useMenuItemPropsContext","MenuCheckboxItem","partialOptionItemProps","localProps","createSplitProps","optionItemProps","optionItemState","MenuContent","presence","usePresenceContext","composeRefs","MenuContextTrigger","MenuIndicator","MenuItem","itemProps","itemState","useEffect","MenuItemGroupProvider","useMenuItemGroupContext","MenuItemGroup","optionalItemGroupProps","itemGroupProps","useId","MenuItemGroupLabel","itemGroup","MenuItemIndicator","MenuItemText","MenuPositioner","MenuRadioItem","partialItemProps","MenuRadioItemGroup","useEffectOnce","cb","savedCallback","useRef","effectGuard","useMenu","id","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","service","useMachine","menu.machine","menu.connect","normalizeProps","MenuMachineProvider","useMenuMachineContext","MenuTriggerItemProvider","useMenuTriggerItemContext","MenuRoot","presenceProps","menuProps","splitPresenceProps","useMenuProps","parentApi","parentMachine","api","usePresence","triggerItemContext","useCallback","PresenceProvider","MenuRootProvider","children","MenuSeparator","MenuTrigger","MenuTriggerItem","getTriggerItemProps","withRootProvider","withContext","createSlotRecipeContext","Menu.RootProvider","Menu.Root","Menu.Trigger","Menu.ContextTrigger","Menu.Positioner","Menu.Separator","Menu.Content","Menu.ArrowTip","Menu.Arrow","Menu.Indicator","Menu.ItemGroup","Menu.ItemGroupLabel","Menu.Item","Menu.TriggerItem","Menu.ItemText","Menu.ItemIndicator","CheckIcon","Menu.CheckboxItem","Menu.RadioItemGroup","Menu.RadioItem","MenuButton","hideCaret","size","text","textProps","variant","onClick","dataTestId","rest","jsxs","Button","e","Text","Flex","Icon","MenuButtonTooltip","tooltipProps","isMenuOpen","isTooltipOpen","setIsTooltipOpen","useState","onMouseEnter","onMouseLeave","Tooltip","Box","label","leftElement","onSelect","shouldTruncateText","type","isSubmenuOpen","setIsSubmenuOpen","handleItemSelect","valueText","listProps","positionerProps","portalled","open","lazyMount","unmountOnExit","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","disabled","tooltipLabel","checkboxRest","CMenu.Item","Checkbox","selected","defaultRest","Fragment","content","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","ClearAllButton","SelectAllButton","buttonProps","submenuTrigger","onOpenChange","contentRef","usePortalContentRef","canSelectAll","canSelectGroups","emptyState","groupSortOrder","loading","maxH","menuItems","minW","onSearch","onListSelect","onSelectAll","searchable","searchPlaceholder","restListProps","isOpen","setIsOpen","searchText","setSearchText","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","entries","groupLabelA","groupLabelB","indexA","indexB","checkboxItems","isChecked","selectedCheckboxItems","handleToggleSelectAll","clear","newSelectedItems","filteredCheckboxItems","cItem","handleSelect","allSelectedItems","filterOptions","searchInput","itemsToFilter","handleSearch","clearSearch","handleOpenChange","CMenu.Root","details","CMenu.Trigger","Portal","CMenu.Positioner","CMenu.Content","TextInput","Spinner","groupLabel","types","isDefaultGroup","itemTypes","MenuGroupContainer","React","CMenu.ItemGroup","CMenu.ItemGroupLabel","items","index"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]}
@@ -5,7 +5,7 @@ import { H as Q, a as U, b as X, c as Y, d as Z, e as I, f as ee, g as oe, h as
5
5
  import { W as te } from "./text.component-IjomJyJY.js";
6
6
  import { W as se } from "./heading.component-PFNpLFT7.js";
7
7
  import { B as h } from "./button.component-BO6oee_V.js";
8
- import { p as b } from "./popover.recipe-B9bkpDfc.js";
8
+ import { p as b } from "./popover.recipe-BAl0q_IZ.js";
9
9
  import { u as y } from "./create-slot-recipe-context-D_FXDJGp.js";
10
10
  import { u as T } from "./popover-root-provider-DR0Iuda1.js";
11
11
  import { F as _ } from "./flex-CX-8gE9T.js";
@@ -217,4 +217,4 @@ const ve = ({
217
217
  export {
218
218
  Se as P
219
219
  };
220
- //# sourceMappingURL=popover.component-DbyavgPM.js.map
220
+ //# sourceMappingURL=popover.component-BsiKfJR7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.component-DbyavgPM.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/spacer/spacer.js","../../src/components/Popover/components/PopoverHeader/popoverHeader.component.tsx","../../src/components/Popover/components/PopoverFooter/popoverFooter.component.tsx","../../src/components/Popover/popover.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { chakra } from '../../styled-system/factory.js';\n\nconst Spacer = chakra(\"div\", {\n base: {\n flex: 1,\n justifySelf: \"stretch\",\n alignSelf: \"stretch\"\n }\n});\nSpacer.displayName = \"Spacer\";\n\nexport { Spacer };\n","import React, { ReactNode } from 'react';\nimport { usePopoverContext } from '@chakra-ui/react/popover';\nimport { useHoverCardContext } from '@chakra-ui/react/hover-card';\nimport { Heading, HeadingSize } from 'components/Heading';\nimport { Button } from 'components/Button/button.component';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { popoverRecipe } from '../../popover.recipe';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { PopoverTriggerType } from '../../popover.types';\n\nexport interface PopoverHeaderProps extends FlexProps {\n /** Content to be rendered in the header. */\n children?: ReactNode;\n /** If true, the close button will not be displayed.\n * @default false\n */\n hideCloseButton?: boolean;\n /** Callback function to be called when the close button is clicked. */\n onClose?: () => void;\n /** If true, the header will render in a contrasting color.\n * @default true\n */\n onContrast?: boolean;\n /** Size of the header.\n * @default sm\n */\n size?: HeadingSize;\n /** Data test id for the header.\n * @default kibble-popover-header\n */\n 'data-testid'?: string;\n}\n\ninterface InternalPopoverHeaderProps extends PopoverHeaderProps {\n /** Trigger type of the popover.\n * @internal\n */\n trigger: PopoverTriggerType;\n}\n\nexport const PopoverHeader = ({\n children,\n color,\n hideCloseButton = false,\n onContrast = true,\n onClose,\n size = 'sm',\n trigger,\n ['data-testid']: dataTestId = 'kibble-popover-header',\n ...rest\n}: InternalPopoverHeaderProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe();\n const { setOpen } =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n trigger === 'hover' ? useHoverCardContext() : usePopoverContext();\n\n return (\n <Flex className=\"Popover__HeaderWrapper\" data-testid={`${dataTestId}-wrapper`} css={styles.header} {...rest}>\n {typeof children === 'string' ? (\n <Heading\n className=\"Popover__Header\"\n data-testid={`${dataTestId}-header`}\n size={size}\n color={color || 'inherit'}\n w=\"100%\"\n >\n {children}\n </Heading>\n ) : (\n children\n )}\n {!hideCloseButton && trigger === 'click' && (\n <Button\n className=\"Popover__CloseButton\"\n data-testid={`${dataTestId}-close-button`}\n variant=\"ghostNeutral\"\n onContrast={onContrast}\n onClick={onClose ? onClose : (): void => setOpen(false)}\n iconName=\"close\"\n position=\"absolute\"\n right={1}\n top={1}\n size=\"xs\"\n />\n )}\n </Flex>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { usePopoverContext } from '@chakra-ui/react/popover';\nimport { useHoverCardContext } from '@chakra-ui/react/hover-card';\nimport { Spacer } from '@chakra-ui/react/spacer';\nimport { Button } from 'components/Button/button.component';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { popoverRecipe } from '../../popover.recipe';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { PopoverTriggerType } from '../../popover.types';\n\nexport interface PopoverFooterProps extends FlexProps {\n /** Content to be rendered in the footer. */\n children?: ReactNode;\n /** If true, the footer will be disabled. */\n disabled?: boolean;\n /** If true, the buttons will not be displayed.\n * @default false\n */\n hideButtons?: boolean;\n /** If true, the cancel button will not be displayed.\n * @default false\n */\n hideCancelButton?: boolean;\n /** If true, the submit button will be displayed as a destructive button.\n * @default false\n */\n destructive?: boolean;\n /** If true, the submit button will be displayed with a loading state. */\n loading?: boolean;\n /** Callback function to be called when the cancel button is clicked. */\n onCancel?: () => void;\n /** If true, the buttons will render with a contrasting variant.\n * @default true\n */\n onContrast?: boolean;\n /** Callback function to be called when the submit button is clicked. */\n onSubmit?: () => void;\n /** Text to display in the submit button. */\n submitText?: string;\n /** Data test id for the footer.\n * @default kibble-popover-footer\n */\n 'data-testid'?: string;\n}\n\ninterface InternalPopoverFooterProps extends PopoverFooterProps {\n /** Trigger type of the popover.\n * @internal\n */\n trigger: PopoverTriggerType;\n}\n\nexport const PopoverFooter = ({\n children,\n disabled,\n hideButtons = false,\n hideCancelButton = false,\n destructive,\n loading,\n onCancel,\n onContrast = true,\n onSubmit,\n submitText = 'Submit',\n trigger,\n ['data-testid']: dataTestId = 'kibble-popover-footer',\n ...rest\n}: InternalPopoverFooterProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe();\n const { setOpen } =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n trigger === 'hover' ? useHoverCardContext() : usePopoverContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n setOpen(false);\n };\n\n return (\n <Flex className=\"Popover__Footer\" data-testid={dataTestId} css={styles.footer} {...rest}>\n {children}\n {!hideButtons && (\n <Flex w=\"100%\">\n {!hideCancelButton && (\n <Button variant=\"tertiary\" onContrast={onContrast} size=\"sm\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n onClick={onSubmit}\n loading={loading}\n disabled={disabled}\n size=\"sm\"\n onContrast={onContrast}\n variant={destructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n )}\n </Flex>\n );\n};\n","import React, { useRef } from 'react';\nimport { Popover as CPopover } from '@chakra-ui/react/popover';\nimport { HoverCard } from '@chakra-ui/react/hover-card';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { Placement } from 'shared/types/placement';\nimport { Text } from 'components/Text/text.component';\nimport { PopoverSize, PopoverTriggerType, PopoverVariant } from './popover.types';\nimport { PopoverHeader, PopoverHeaderProps } from './components/PopoverHeader/popoverHeader.component';\nimport { PopoverFooter, PopoverFooterProps } from './components/PopoverFooter/popoverFooter.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { ConditionalValue, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { popoverRecipe } from './popover.recipe';\nimport { PortalContext } from 'hooks/usePortalContentRef';\nimport { useDeviceType } from 'hooks/useDeviceType';\n\nexport interface KPopoverProps {\n /** The element that triggers the popover. */\n anchor: React.ReactNode;\n /** Props to customize the content of the popover. */\n contentProps?: CPopover.ContentProps;\n /**\n * If true, the popover will be disabled.\n * @default false\n */\n disabled?: boolean;\n /** Props to configure the footer of the popover. */\n footerProps?: PopoverFooterProps;\n /** Props to configure the header of the popover. */\n headerProps?: PopoverHeaderProps;\n /** Configuration for the positioner of the popover. */\n positionerProps?: CPopover.PositionerProps;\n /**\n * If true, the popover will be rendered in a portal.\n * @default true\n */\n portalled?: boolean;\n /**\n * Sets the placement of the popover in relation to the designated element. If the chosen placement puts the tooltip out-of-bounds of the viewport, the placement will automatically adjust. You should, however, choose a placement that works best with orientation of the element.\n * @default bottom\n */\n placement?: Placement;\n /** Whether to show the arrow of the popover. */\n showArrow?: boolean;\n /**\n * The size of the popover.\n * @default md\n */\n size?: ConditionalValue<PopoverSize>;\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: PopoverTriggerType;\n /**\n * The color variant of the popover.\n * @default contrast\n */\n variant?: PopoverVariant;\n /** Data test id for the popover.\n * @default kibble-popover\n */\n 'data-testid'?: string;\n}\n\ninterface ClickPopoverProps extends CPopover.RootProps {\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: 'click';\n}\n\ninterface HoverPopoverProps extends HoverCard.RootProps {\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: 'hover';\n}\n\nexport type PopoverProps = KPopoverProps & (Omit<ClickPopoverProps, 'size'> | Omit<HoverPopoverProps, 'size'>);\n\nexport const Popover = ({\n anchor,\n children,\n contentProps,\n footerProps,\n headerProps,\n disabled = false,\n portalled = true,\n placement = 'bottom',\n positioning,\n showArrow = true,\n size = 'sm',\n trigger = 'click',\n variant = 'contrast',\n positionerProps,\n ['data-testid']: dataTestId = 'kibble-popover',\n ...rest\n}: PopoverProps): React.ReactNode => {\n const contentRef = useRef<HTMLDivElement>(null!);\n const contextValue = { contentRef };\n const deviceType = useDeviceType();\n // Forces click trigger on mobile devices for better UX\n const effectiveTrigger = deviceType === 'mobile' ? 'click' : trigger;\n const Element = effectiveTrigger === 'hover' ? HoverCard : CPopover;\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe({ variant, size });\n\n if (disabled) return anchor;\n\n const onContrast = variant === 'contrast' || variant === 'contrastDestructive';\n\n return (\n <Element.Root\n closeOnEscape={true}\n closeOnInteractOutside={true}\n positioning={{\n ...positioning,\n placement: positioning?.placement || placement,\n }}\n {...rest}\n >\n <Element.Trigger\n asChild\n className=\"Popover__Trigger\"\n data-testid={`${dataTestId}-trigger`}\n cursor={effectiveTrigger === 'click' ? 'pointer' : 'default'}\n >\n {anchor}\n </Element.Trigger>\n <Portal disabled={!portalled}>\n <Element.Positioner className=\"Popover\" data-testid={dataTestId} {...positionerProps}>\n <PortalContext.Provider value={contextValue}>\n <Element.Content\n className=\"Popover__Content\"\n data-testid={`${dataTestId}-content`}\n ref={contentRef}\n {...contentProps}\n css={styles.content}\n >\n {showArrow && (\n <Element.Arrow className=\"Popover__Arrow\" data-testid={`${dataTestId}-arrow`} css={styles.arrow}>\n <Element.ArrowTip css={styles.arrowTip} />\n </Element.Arrow>\n )}\n {headerProps && <PopoverHeader trigger={effectiveTrigger} onContrast={onContrast} {...headerProps} />}\n <Box\n className=\"Popover__Body\"\n data-testid={`${dataTestId}-body`}\n css={styles.body}\n {...(!!headerProps && { pt: 0 })}\n >\n {typeof children === 'string' ? (\n <Text variant={onContrast ? 'onContrast' : 'default'} size=\"sm\">\n {children}\n </Text>\n ) : (\n children\n )}\n </Box>\n {footerProps && (\n <PopoverFooter\n trigger={effectiveTrigger}\n destructive={variant === 'contrastDestructive' || variant === 'defaultDestructive'}\n onContrast={onContrast}\n {...footerProps}\n />\n )}\n </Element.Content>\n </PortalContext.Provider>\n </Element.Positioner>\n </Portal>\n </Element.Root>\n );\n};\n"],"names":["Spacer","chakra","PopoverHeader","children","color","hideCloseButton","onContrast","onClose","size","trigger","dataTestId","rest","styles","useSlotRecipe","popoverRecipe","setOpen","useHoverCardContext","usePopoverContext","jsxs","Flex","jsx","Heading","Button","PopoverFooter","disabled","hideButtons","hideCancelButton","destructive","loading","onCancel","onSubmit","submitText","handleCancel","Popover","anchor","contentProps","footerProps","headerProps","portalled","placement","positioning","showArrow","variant","positionerProps","contentRef","useRef","contextValue","effectiveTrigger","useDeviceType","Element","HoverCard","CPopover","Portal","PortalContext","Box","Text"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"popover.component-BsiKfJR7.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/spacer/spacer.js","../../src/components/Popover/components/PopoverHeader/popoverHeader.component.tsx","../../src/components/Popover/components/PopoverFooter/popoverFooter.component.tsx","../../src/components/Popover/popover.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { chakra } from '../../styled-system/factory.js';\n\nconst Spacer = chakra(\"div\", {\n base: {\n flex: 1,\n justifySelf: \"stretch\",\n alignSelf: \"stretch\"\n }\n});\nSpacer.displayName = \"Spacer\";\n\nexport { Spacer };\n","import React, { ReactNode } from 'react';\nimport { usePopoverContext } from '@chakra-ui/react/popover';\nimport { useHoverCardContext } from '@chakra-ui/react/hover-card';\nimport { Heading, HeadingSize } from 'components/Heading';\nimport { Button } from 'components/Button/button.component';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { popoverRecipe } from '../../popover.recipe';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { PopoverTriggerType } from '../../popover.types';\n\nexport interface PopoverHeaderProps extends FlexProps {\n /** Content to be rendered in the header. */\n children?: ReactNode;\n /** If true, the close button will not be displayed.\n * @default false\n */\n hideCloseButton?: boolean;\n /** Callback function to be called when the close button is clicked. */\n onClose?: () => void;\n /** If true, the header will render in a contrasting color.\n * @default true\n */\n onContrast?: boolean;\n /** Size of the header.\n * @default sm\n */\n size?: HeadingSize;\n /** Data test id for the header.\n * @default kibble-popover-header\n */\n 'data-testid'?: string;\n}\n\ninterface InternalPopoverHeaderProps extends PopoverHeaderProps {\n /** Trigger type of the popover.\n * @internal\n */\n trigger: PopoverTriggerType;\n}\n\nexport const PopoverHeader = ({\n children,\n color,\n hideCloseButton = false,\n onContrast = true,\n onClose,\n size = 'sm',\n trigger,\n ['data-testid']: dataTestId = 'kibble-popover-header',\n ...rest\n}: InternalPopoverHeaderProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe();\n const { setOpen } =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n trigger === 'hover' ? useHoverCardContext() : usePopoverContext();\n\n return (\n <Flex className=\"Popover__HeaderWrapper\" data-testid={`${dataTestId}-wrapper`} css={styles.header} {...rest}>\n {typeof children === 'string' ? (\n <Heading\n className=\"Popover__Header\"\n data-testid={`${dataTestId}-header`}\n size={size}\n color={color || 'inherit'}\n w=\"100%\"\n >\n {children}\n </Heading>\n ) : (\n children\n )}\n {!hideCloseButton && trigger === 'click' && (\n <Button\n className=\"Popover__CloseButton\"\n data-testid={`${dataTestId}-close-button`}\n variant=\"ghostNeutral\"\n onContrast={onContrast}\n onClick={onClose ? onClose : (): void => setOpen(false)}\n iconName=\"close\"\n position=\"absolute\"\n right={1}\n top={1}\n size=\"xs\"\n />\n )}\n </Flex>\n );\n};\n","import React, { ReactNode } from 'react';\nimport { usePopoverContext } from '@chakra-ui/react/popover';\nimport { useHoverCardContext } from '@chakra-ui/react/hover-card';\nimport { Spacer } from '@chakra-ui/react/spacer';\nimport { Button } from 'components/Button/button.component';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { popoverRecipe } from '../../popover.recipe';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { PopoverTriggerType } from '../../popover.types';\n\nexport interface PopoverFooterProps extends FlexProps {\n /** Content to be rendered in the footer. */\n children?: ReactNode;\n /** If true, the footer will be disabled. */\n disabled?: boolean;\n /** If true, the buttons will not be displayed.\n * @default false\n */\n hideButtons?: boolean;\n /** If true, the cancel button will not be displayed.\n * @default false\n */\n hideCancelButton?: boolean;\n /** If true, the submit button will be displayed as a destructive button.\n * @default false\n */\n destructive?: boolean;\n /** If true, the submit button will be displayed with a loading state. */\n loading?: boolean;\n /** Callback function to be called when the cancel button is clicked. */\n onCancel?: () => void;\n /** If true, the buttons will render with a contrasting variant.\n * @default true\n */\n onContrast?: boolean;\n /** Callback function to be called when the submit button is clicked. */\n onSubmit?: () => void;\n /** Text to display in the submit button. */\n submitText?: string;\n /** Data test id for the footer.\n * @default kibble-popover-footer\n */\n 'data-testid'?: string;\n}\n\ninterface InternalPopoverFooterProps extends PopoverFooterProps {\n /** Trigger type of the popover.\n * @internal\n */\n trigger: PopoverTriggerType;\n}\n\nexport const PopoverFooter = ({\n children,\n disabled,\n hideButtons = false,\n hideCancelButton = false,\n destructive,\n loading,\n onCancel,\n onContrast = true,\n onSubmit,\n submitText = 'Submit',\n trigger,\n ['data-testid']: dataTestId = 'kibble-popover-footer',\n ...rest\n}: InternalPopoverFooterProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe();\n const { setOpen } =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n trigger === 'hover' ? useHoverCardContext() : usePopoverContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n setOpen(false);\n };\n\n return (\n <Flex className=\"Popover__Footer\" data-testid={dataTestId} css={styles.footer} {...rest}>\n {children}\n {!hideButtons && (\n <Flex w=\"100%\">\n {!hideCancelButton && (\n <Button variant=\"tertiary\" onContrast={onContrast} size=\"sm\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n onClick={onSubmit}\n loading={loading}\n disabled={disabled}\n size=\"sm\"\n onContrast={onContrast}\n variant={destructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n )}\n </Flex>\n );\n};\n","import React, { useRef } from 'react';\nimport { Popover as CPopover } from '@chakra-ui/react/popover';\nimport { HoverCard } from '@chakra-ui/react/hover-card';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { Placement } from 'shared/types/placement';\nimport { Text } from 'components/Text/text.component';\nimport { PopoverSize, PopoverTriggerType, PopoverVariant } from './popover.types';\nimport { PopoverHeader, PopoverHeaderProps } from './components/PopoverHeader/popoverHeader.component';\nimport { PopoverFooter, PopoverFooterProps } from './components/PopoverFooter/popoverFooter.component';\nimport { Box } from '@chakra-ui/react/box';\nimport { ConditionalValue, useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { popoverRecipe } from './popover.recipe';\nimport { PortalContext } from 'hooks/usePortalContentRef';\nimport { useDeviceType } from 'hooks/useDeviceType';\n\nexport interface KPopoverProps {\n /** The element that triggers the popover. */\n anchor: React.ReactNode;\n /** Props to customize the content of the popover. */\n contentProps?: CPopover.ContentProps;\n /**\n * If true, the popover will be disabled.\n * @default false\n */\n disabled?: boolean;\n /** Props to configure the footer of the popover. */\n footerProps?: PopoverFooterProps;\n /** Props to configure the header of the popover. */\n headerProps?: PopoverHeaderProps;\n /** Configuration for the positioner of the popover. */\n positionerProps?: CPopover.PositionerProps;\n /**\n * If true, the popover will be rendered in a portal.\n * @default true\n */\n portalled?: boolean;\n /**\n * Sets the placement of the popover in relation to the designated element. If the chosen placement puts the tooltip out-of-bounds of the viewport, the placement will automatically adjust. You should, however, choose a placement that works best with orientation of the element.\n * @default bottom\n */\n placement?: Placement;\n /** Whether to show the arrow of the popover. */\n showArrow?: boolean;\n /**\n * The size of the popover.\n * @default md\n */\n size?: ConditionalValue<PopoverSize>;\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: PopoverTriggerType;\n /**\n * The color variant of the popover.\n * @default contrast\n */\n variant?: PopoverVariant;\n /** Data test id for the popover.\n * @default kibble-popover\n */\n 'data-testid'?: string;\n}\n\ninterface ClickPopoverProps extends CPopover.RootProps {\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: 'click';\n}\n\ninterface HoverPopoverProps extends HoverCard.RootProps {\n /**\n * The trigger type of the popover.\n * @default click\n */\n trigger?: 'hover';\n}\n\nexport type PopoverProps = KPopoverProps & (Omit<ClickPopoverProps, 'size'> | Omit<HoverPopoverProps, 'size'>);\n\nexport const Popover = ({\n anchor,\n children,\n contentProps,\n footerProps,\n headerProps,\n disabled = false,\n portalled = true,\n placement = 'bottom',\n positioning,\n showArrow = true,\n size = 'sm',\n trigger = 'click',\n variant = 'contrast',\n positionerProps,\n ['data-testid']: dataTestId = 'kibble-popover',\n ...rest\n}: PopoverProps): React.ReactNode => {\n const contentRef = useRef<HTMLDivElement>(null!);\n const contextValue = { contentRef };\n const deviceType = useDeviceType();\n // Forces click trigger on mobile devices for better UX\n const effectiveTrigger = deviceType === 'mobile' ? 'click' : trigger;\n const Element = effectiveTrigger === 'hover' ? HoverCard : CPopover;\n const recipe = useSlotRecipe({ recipe: popoverRecipe });\n const styles = recipe({ variant, size });\n\n if (disabled) return anchor;\n\n const onContrast = variant === 'contrast' || variant === 'contrastDestructive';\n\n return (\n <Element.Root\n closeOnEscape={true}\n closeOnInteractOutside={true}\n positioning={{\n ...positioning,\n placement: positioning?.placement || placement,\n }}\n {...rest}\n >\n <Element.Trigger\n asChild\n className=\"Popover__Trigger\"\n data-testid={`${dataTestId}-trigger`}\n cursor={effectiveTrigger === 'click' ? 'pointer' : 'default'}\n >\n {anchor}\n </Element.Trigger>\n <Portal disabled={!portalled}>\n <Element.Positioner className=\"Popover\" data-testid={dataTestId} {...positionerProps}>\n <PortalContext.Provider value={contextValue}>\n <Element.Content\n className=\"Popover__Content\"\n data-testid={`${dataTestId}-content`}\n ref={contentRef}\n {...contentProps}\n css={styles.content}\n >\n {showArrow && (\n <Element.Arrow className=\"Popover__Arrow\" data-testid={`${dataTestId}-arrow`} css={styles.arrow}>\n <Element.ArrowTip css={styles.arrowTip} />\n </Element.Arrow>\n )}\n {headerProps && <PopoverHeader trigger={effectiveTrigger} onContrast={onContrast} {...headerProps} />}\n <Box\n className=\"Popover__Body\"\n data-testid={`${dataTestId}-body`}\n css={styles.body}\n {...(!!headerProps && { pt: 0 })}\n >\n {typeof children === 'string' ? (\n <Text variant={onContrast ? 'onContrast' : 'default'} size=\"sm\">\n {children}\n </Text>\n ) : (\n children\n )}\n </Box>\n {footerProps && (\n <PopoverFooter\n trigger={effectiveTrigger}\n destructive={variant === 'contrastDestructive' || variant === 'defaultDestructive'}\n onContrast={onContrast}\n {...footerProps}\n />\n )}\n </Element.Content>\n </PortalContext.Provider>\n </Element.Positioner>\n </Portal>\n </Element.Root>\n );\n};\n"],"names":["Spacer","chakra","PopoverHeader","children","color","hideCloseButton","onContrast","onClose","size","trigger","dataTestId","rest","styles","useSlotRecipe","popoverRecipe","setOpen","useHoverCardContext","usePopoverContext","jsxs","Flex","jsx","Heading","Button","PopoverFooter","disabled","hideButtons","hideCancelButton","destructive","loading","onCancel","onSubmit","submitText","handleCancel","Popover","anchor","contentProps","footerProps","headerProps","portalled","placement","positioning","showArrow","variant","positionerProps","contentRef","useRef","contextValue","effectiveTrigger","useDeviceType","Element","HoverCard","CPopover","Portal","PortalContext","Box","Text"],"mappings":"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","x_google_ignoreList":[0]}