@televet/kibble-ui 4.0.0-beta.38 → 4.0.0-beta.39
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.
- package/dist/chunks/{alert.component-Dz9izFQV.js → alert.component-BrnaAnby.js} +24 -21
- package/dist/chunks/alert.component-BrnaAnby.js.map +1 -0
- package/dist/chunks/{alert.component-BKzdx_cY.js → alert.component-D4KMig7W.js} +2 -2
- package/dist/chunks/{alert.component-BKzdx_cY.js.map → alert.component-D4KMig7W.js.map} +1 -1
- package/dist/chunks/{avatar.component-X8DAz-8Y.js → avatar.component-Bh0DFMwE.js} +2 -2
- package/dist/chunks/{avatar.component-X8DAz-8Y.js.map → avatar.component-Bh0DFMwE.js.map} +1 -1
- package/dist/chunks/{avatar.component-t2R4IrZb.js → avatar.component-_Mqnl3-P.js} +2 -2
- package/dist/chunks/{avatar.component-t2R4IrZb.js.map → avatar.component-_Mqnl3-P.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-eiorUXwX.js → avatarGroup.component-Bw5gczhh.js} +2 -2
- package/dist/chunks/{avatarGroup.component-eiorUXwX.js.map → avatarGroup.component-Bw5gczhh.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-BrZUEoVD.js → avatarGroup.component-oRjqOWEB.js} +2 -2
- package/dist/chunks/{avatarGroup.component-BrZUEoVD.js.map → avatarGroup.component-oRjqOWEB.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-Bs9pKJms.js → buttonGroup.component-Bw_Wcpsd.js} +2 -2
- package/dist/chunks/{buttonGroup.component-Bs9pKJms.js.map → buttonGroup.component-Bw_Wcpsd.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-BZKBDZof.js → buttonGroup.component-DBpnBBOa.js} +2 -2
- package/dist/chunks/{buttonGroup.component-BZKBDZof.js.map → buttonGroup.component-DBpnBBOa.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-Uh0kze9U.js → characterCounter.component-BcKXSebL.js} +2 -2
- package/dist/chunks/{characterCounter.component-Uh0kze9U.js.map → characterCounter.component-BcKXSebL.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-eeCq2Syc.js → characterCounter.component-Ww-ll5pL.js} +2 -2
- package/dist/chunks/{characterCounter.component-eeCq2Syc.js.map → characterCounter.component-Ww-ll5pL.js.map} +1 -1
- package/dist/chunks/{checkbox.component-H78vY8fD.js → checkbox.component-BTG2oHN_.js} +2 -2
- package/dist/chunks/{checkbox.component-H78vY8fD.js.map → checkbox.component-BTG2oHN_.js.map} +1 -1
- package/dist/chunks/{checkbox.component-Cn7zfMpA.js → checkbox.component-WA8Y2Cfq.js} +2 -2
- package/dist/chunks/{checkbox.component-Cn7zfMpA.js.map → checkbox.component-WA8Y2Cfq.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-B5UKDlty.js → checkboxGroup.component-CoUMqdnh.js} +3 -3
- package/dist/chunks/{checkboxGroup.component-B5UKDlty.js.map → checkboxGroup.component-CoUMqdnh.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-N8ONlv_2.js → checkboxGroup.component-DMSg9Hzt.js} +2 -2
- package/dist/chunks/{checkboxGroup.component-N8ONlv_2.js.map → checkboxGroup.component-DMSg9Hzt.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-DAHw_xas.js → conversationCard.component-CMudlOxC.js} +2 -2
- package/dist/chunks/{conversationCard.component-DAHw_xas.js.map → conversationCard.component-CMudlOxC.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-BqVI0A5M.js → conversationCard.component-D2k7g7wc.js} +5 -5
- package/dist/chunks/{conversationCard.component-BqVI0A5M.js.map → conversationCard.component-D2k7g7wc.js.map} +1 -1
- package/dist/chunks/{datePicker.component-BnyKQvyQ.js → datePicker.component-D2M6DrNP.js} +4 -4
- package/dist/chunks/{datePicker.component-BnyKQvyQ.js.map → datePicker.component-D2M6DrNP.js.map} +1 -1
- package/dist/chunks/{datePicker.component-CGQRyjHR.js → datePicker.component-lUYmAZ2N.js} +2 -2
- package/dist/chunks/{datePicker.component-CGQRyjHR.js.map → datePicker.component-lUYmAZ2N.js.map} +1 -1
- package/dist/chunks/{link.component-CHsB_5hQ.js → link.component-CSyWrGG3.js} +2 -2
- package/dist/chunks/{link.component-CHsB_5hQ.js.map → link.component-CSyWrGG3.js.map} +1 -1
- package/dist/chunks/{link.component-PVTwe2h6.js → link.component-ucfag2-g.js} +2 -2
- package/dist/chunks/{link.component-PVTwe2h6.js.map → link.component-ucfag2-g.js.map} +1 -1
- package/dist/chunks/{menu.component-BQ-ffGbb.js → menu.component-B5OYYpa8.js} +5 -5
- package/dist/chunks/{menu.component-BQ-ffGbb.js.map → menu.component-B5OYYpa8.js.map} +1 -1
- package/dist/chunks/{menu.component-BRw4MdLq.js → menu.component-BsPmuH77.js} +2 -2
- package/dist/chunks/{menu.component-BRw4MdLq.js.map → menu.component-BsPmuH77.js.map} +1 -1
- package/dist/chunks/{pinInput.types-CfpH-EVW.js → pinInput.types-DDODRsaX.js} +2 -2
- package/dist/chunks/{pinInput.types-CfpH-EVW.js.map → pinInput.types-DDODRsaX.js.map} +1 -1
- package/dist/chunks/{pinInput.types-Drsvga74.js → pinInput.types-PLeb9Wy4.js} +2 -2
- package/dist/chunks/{pinInput.types-Drsvga74.js.map → pinInput.types-PLeb9Wy4.js.map} +1 -1
- package/dist/chunks/{popover.component-BfScbbtS.js → popover.component-8ETQVr48.js} +2 -2
- package/dist/chunks/{popover.component-BfScbbtS.js.map → popover.component-8ETQVr48.js.map} +1 -1
- package/dist/chunks/{popover.component-hbxVPtMW.js → popover.component-CewrKFIu.js} +2 -2
- package/dist/chunks/{popover.component-hbxVPtMW.js.map → popover.component-CewrKFIu.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-DcNcJlPG.js → radioGroup.component-BqJ9MJq_.js} +4 -4
- package/dist/chunks/{radioGroup.component-DcNcJlPG.js.map → radioGroup.component-BqJ9MJq_.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-Bh-uxuNv.js → radioGroup.component-aQ5WaHHz.js} +2 -2
- package/dist/chunks/{radioGroup.component-Bh-uxuNv.js.map → radioGroup.component-aQ5WaHHz.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-Dm92ajL2.js → ratingDots.component-3aUZ-7-n.js} +2 -2
- package/dist/chunks/{ratingDots.component-Dm92ajL2.js.map → ratingDots.component-3aUZ-7-n.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-C5aSJ1Q4.js → ratingDots.component-Bgh1iv_C.js} +3 -3
- package/dist/chunks/{ratingDots.component-C5aSJ1Q4.js.map → ratingDots.component-Bgh1iv_C.js.map} +1 -1
- package/dist/chunks/{select.component-BDBwwiO5.js → select.component-C-D415HK.js} +2 -2
- package/dist/chunks/{select.component-BDBwwiO5.js.map → select.component-C-D415HK.js.map} +1 -1
- package/dist/chunks/{select.component-FuB-fMhN.js → select.component-CceQLD7L.js} +4 -4
- package/dist/chunks/{select.component-FuB-fMhN.js.map → select.component-CceQLD7L.js.map} +1 -1
- package/dist/chunks/{sortableList.component-BoLoNqnM.js → sortableList.component-B8ch3VZ9.js} +2 -2
- package/dist/chunks/{sortableList.component-BoLoNqnM.js.map → sortableList.component-B8ch3VZ9.js.map} +1 -1
- package/dist/chunks/{sortableList.component-CH3vyqJx.js → sortableList.component-COofj0TO.js} +2 -2
- package/dist/chunks/{sortableList.component-CH3vyqJx.js.map → sortableList.component-COofj0TO.js.map} +1 -1
- package/dist/chunks/{spinner.component-D33KPNJg.js → spinner.component-DRQDBF8j.js} +2 -2
- package/dist/chunks/{spinner.component-D33KPNJg.js.map → spinner.component-DRQDBF8j.js.map} +1 -1
- package/dist/chunks/{spinner.component-DrxwjIwy.js → spinner.component-DjiFeql5.js} +2 -2
- package/dist/chunks/{spinner.component-DrxwjIwy.js.map → spinner.component-DjiFeql5.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-BxmVHmqr.js → styledAvatar.types-Cq3BLvCU.js} +2 -2
- package/dist/chunks/{styledAvatar.types-BxmVHmqr.js.map → styledAvatar.types-Cq3BLvCU.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-Cs1V_5QN.js → styledAvatar.types-cc6fpkt6.js} +2 -2
- package/dist/chunks/{styledAvatar.types-Cs1V_5QN.js.map → styledAvatar.types-cc6fpkt6.js.map} +1 -1
- package/dist/chunks/{switch.component-Bt1upkuX.js → switch.component-8Ksb8br3.js} +2 -2
- package/dist/chunks/{switch.component-Bt1upkuX.js.map → switch.component-8Ksb8br3.js.map} +1 -1
- package/dist/chunks/{switch.component-BxgQbGjU.js → switch.component-BkifDkJ0.js} +2 -2
- package/dist/chunks/{switch.component-BxgQbGjU.js.map → switch.component-BkifDkJ0.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-CJkYMBVe.js → tagBlock.component-D_3b0Ebn.js} +2 -2
- package/dist/chunks/{tagBlock.component-CJkYMBVe.js.map → tagBlock.component-D_3b0Ebn.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-hFiLlj_t.js → tagBlock.component-DjIgrPCX.js} +4 -4
- package/dist/chunks/{tagBlock.component-hFiLlj_t.js.map → tagBlock.component-DjIgrPCX.js.map} +1 -1
- package/dist/chunks/text.component-C_Zg4dMh.js +2 -0
- package/dist/chunks/{text.component-DHUP6rVA.js.map → text.component-C_Zg4dMh.js.map} +1 -1
- package/dist/chunks/text.component-DZkwd4C0.js +16 -0
- package/dist/chunks/{text.component-nwRL3NcQ.js.map → text.component-DZkwd4C0.js.map} +1 -1
- package/dist/chunks/{textInput.component-6V4W8zUy.js → textInput.component-7QTnQmYu.js} +2 -2
- package/dist/chunks/{textInput.component-6V4W8zUy.js.map → textInput.component-7QTnQmYu.js.map} +1 -1
- package/dist/chunks/{textInput.component-CO6Yc8rV.js → textInput.component-c9ySCd-c.js} +3 -3
- package/dist/chunks/{textInput.component-CO6Yc8rV.js.map → textInput.component-c9ySCd-c.js.map} +1 -1
- package/dist/chunks/{textarea.component-bI2mmDIC.js → textarea.component-7yXlR6OD.js} +3 -3
- package/dist/chunks/{textarea.component-bI2mmDIC.js.map → textarea.component-7yXlR6OD.js.map} +1 -1
- package/dist/chunks/{textarea.component-DuShtgjy.js → textarea.component-Bbf7OmgY.js} +2 -2
- package/dist/chunks/{textarea.component-DuShtgjy.js.map → textarea.component-Bbf7OmgY.js.map} +1 -1
- package/dist/chunks/{theme.provider-BmGgVgv0.js → theme.provider-CGOc_ofu.js} +3 -3
- package/dist/chunks/{theme.provider-BmGgVgv0.js.map → theme.provider-CGOc_ofu.js.map} +1 -1
- package/dist/chunks/{theme.provider-C4tVwQeK.js → theme.provider-DHyAAmb8.js} +280 -274
- package/dist/chunks/{theme.provider-C4tVwQeK.js.map → theme.provider-DHyAAmb8.js.map} +1 -1
- package/dist/chunks/{timePicker.component-DI6_l0os.js → timePicker.component-CWQsy1FJ.js} +2 -2
- package/dist/chunks/{timePicker.component-DI6_l0os.js.map → timePicker.component-CWQsy1FJ.js.map} +1 -1
- package/dist/chunks/{timePicker.component-DfLcDGEI.js → timePicker.component-DayAeaAE.js} +3 -3
- package/dist/chunks/{timePicker.component-DfLcDGEI.js.map → timePicker.component-DayAeaAE.js.map} +1 -1
- package/dist/chunks/{timeRange.component-ezG1IHSG.js → timeRange.component-BMIZhDDZ.js} +2 -2
- package/dist/chunks/{timeRange.component-ezG1IHSG.js.map → timeRange.component-BMIZhDDZ.js.map} +1 -1
- package/dist/chunks/{timeRange.component-BHR6YGkb.js → timeRange.component-kKGWfXnG.js} +2 -2
- package/dist/chunks/{timeRange.component-BHR6YGkb.js.map → timeRange.component-kKGWfXnG.js.map} +1 -1
- package/dist/chunks/{timestamp.component-BpaULUVT.js → timestamp.component-C51FWMrY.js} +2 -2
- package/dist/chunks/{timestamp.component-BpaULUVT.js.map → timestamp.component-C51FWMrY.js.map} +1 -1
- package/dist/chunks/{timestamp.component-Bw8TF_DO.js → timestamp.component-p5tMHeq4.js} +2 -2
- package/dist/chunks/{timestamp.component-Bw8TF_DO.js.map → timestamp.component-p5tMHeq4.js.map} +1 -1
- package/dist/chunks/{withFormControl-IvahwTqo.js → withFormControl-BldbKXiV.js} +2 -2
- package/dist/chunks/{withFormControl-IvahwTqo.js.map → withFormControl-BldbKXiV.js.map} +1 -1
- package/dist/chunks/{withFormControl--_8HmXJB.js → withFormControl-C35JkDEH.js} +2 -2
- package/dist/chunks/{withFormControl--_8HmXJB.js.map → withFormControl-C35JkDEH.js.map} +1 -1
- package/dist/cjs/components/Alert/index.cjs +1 -1
- package/dist/cjs/components/Avatar/index.cjs +1 -1
- package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/CharacterCounter/index.cjs +1 -1
- package/dist/cjs/components/Checkbox/index.cjs +1 -1
- package/dist/cjs/components/CheckboxGroup/index.cjs +1 -1
- package/dist/cjs/components/ConversationCard/index.cjs +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +1 -1
- package/dist/cjs/components/Link/index.cjs +1 -1
- package/dist/cjs/components/Menu/index.cjs +1 -1
- package/dist/cjs/components/PinInput/index.cjs +1 -1
- package/dist/cjs/components/Popover/index.cjs +1 -1
- package/dist/cjs/components/RadioGroup/index.cjs +1 -1
- package/dist/cjs/components/RatingDots/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/SortableList/index.cjs +1 -1
- package/dist/cjs/components/Spinner/index.cjs +1 -1
- package/dist/cjs/components/StyledAvatar/index.cjs +1 -1
- package/dist/cjs/components/Switch/index.cjs +1 -1
- package/dist/cjs/components/TagBlock/index.cjs +1 -1
- package/dist/cjs/components/Text/index.cjs +1 -1
- package/dist/cjs/components/TextInput/index.cjs +1 -1
- package/dist/cjs/components/Textarea/index.cjs +1 -1
- package/dist/cjs/components/TimePicker/index.cjs +1 -1
- package/dist/cjs/components/TimeRange/index.cjs +1 -1
- package/dist/cjs/components/Timestamp/index.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/theme/index.cjs +1 -1
- package/dist/esm/components/Alert/index.js +1 -1
- package/dist/esm/components/Avatar/index.js +1 -1
- package/dist/esm/components/AvatarGroup/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/ConversationCard/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +1 -1
- package/dist/esm/components/Link/index.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/PinInput/index.js +1 -1
- package/dist/esm/components/Popover/index.js +1 -1
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/StyledAvatar/index.js +1 -1
- package/dist/esm/components/Switch/index.js +1 -1
- package/dist/esm/components/TagBlock/index.js +1 -1
- package/dist/esm/components/Text/index.js +1 -1
- package/dist/esm/components/TextInput/index.js +1 -1
- package/dist/esm/components/Textarea/index.js +1 -1
- package/dist/esm/components/TimePicker/index.js +1 -1
- package/dist/esm/components/TimeRange/index.js +1 -1
- package/dist/esm/components/Timestamp/index.js +1 -1
- package/dist/esm/components/index.js +27 -27
- package/dist/esm/index.js +28 -28
- package/dist/esm/theme/index.js +1 -1
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.types.d.ts +1 -1
- package/package.json +5 -1
- package/dist/chunks/alert.component-Dz9izFQV.js.map +0 -1
- package/dist/chunks/text.component-DHUP6rVA.js +0 -12
- package/dist/chunks/text.component-nwRL3NcQ.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),l=require("react"),k=require("./text.component-
|
|
2
|
-
//# sourceMappingURL=link.component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),l=require("react"),k=require("./text.component-C_Zg4dMh.js"),j=require("./icon.component-4aaCABoX.js"),d=require("./useIconTextSizeMap-BXmABb54.js"),R=require("./create-recipe-context-DdRyhQQD.js"),q=require("./h-stack-DxezNoY3.js"),{withContext:z}=R.createRecipeContext({key:"link"}),E=z("a"),a=({variant:i,...s})=>e.jsxRuntimeExports.jsx(j.Icon,{variant:i||"interactive",...s}),x=l.forwardRef((i,s)=>{const{children:p,external:u,iconProps:t,size:r="md",variant:n="interactive",...m}=i,o=d.useIconTextSizeMap(r),c=t?.position||"start";return e.jsxRuntimeExports.jsx(E,{className:"Link","data-testid":"kibble-link",variant:n,display:"inline-block",size:r,ref:s,...u&&{target:"_blank",rel:"noopener noreferrer"},...m,children:e.jsxRuntimeExports.jsxs(q.HStack,{gap:1,align:"center",children:[t&&c==="start"&&e.jsxRuntimeExports.jsx(a,{name:t.name,variant:n,size:o}),e.jsxRuntimeExports.jsx(k.WrappedText,{size:r,variant:n,children:p}),t&&c==="end"&&e.jsxRuntimeExports.jsx(a,{name:t.name,variant:n,size:o})]})})});x.displayName="Link";exports.Link=x;
|
|
2
|
+
//# sourceMappingURL=link.component-CSyWrGG3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.component-
|
|
1
|
+
{"version":3,"file":"link.component-CSyWrGG3.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/link/link.js","../../src/components/Link/components/LinkIcon/linkIcon.component.tsx","../../src/components/Link/link.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"link\"\n});\nconst Link = withContext(\"a\");\nconst LinkPropsProvider = PropsProvider;\n\nexport { Link, LinkPropsProvider };\n","import React from \"react\";\nimport { Icon, IconProps } from \"components/Icon\";\n\nexport interface LinkIconProps extends Pick<IconProps, \"name\"> {\n position?: \"start\" | \"end\";\n}\n\ntype InternalLinkIconProps = Pick<IconProps, \"name\" | \"variant\" | \"size\">;\n\nexport const LinkIcon = ({\n variant,\n ...rest\n}: InternalLinkIconProps): React.JSX.Element => {\n return <Icon variant={variant || \"interactive\"} {...rest} />;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Link as CLink, LinkProps as CLinkProps } from \"@chakra-ui/react/link\"; // Make sure to use named imports from Chakra UI\nimport { TypographyVariant } from \"shared/types\";\nimport { TextSize } from \"components/Text/text.types\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Text } from \"components/Text\";\nimport {\n LinkIcon,\n LinkIconProps,\n} from \"./components/LinkIcon/linkIcon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\n\nexport interface LinkProps extends CLinkProps {\n iconProps?: LinkIconProps;\n external?: boolean;\n size?: TextSize;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n to?: any;\n variant?: TypographyVariant;\n}\n\nexport const Link = forwardRef(\n (\n props: LinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n ): React.JSX.Element => {\n const {\n children,\n external,\n iconProps,\n size = \"md\",\n variant = \"interactive\",\n ...rest\n } = props;\n const mapIconSize = useIconTextSizeMap(size);\n const iconPosition = iconProps?.position || \"start\";\n\n return (\n <CLink\n className=\"Link\"\n data-testid=\"kibble-link\"\n variant={variant}\n display=\"inline-block\"\n size={size}\n ref={ref}\n {...(external && { target: \"_blank\", rel: \"noopener noreferrer\" })}\n {...rest}\n >\n <HStack gap={1} align=\"center\">\n {iconProps && iconPosition === \"start\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n <Text size={size} variant={variant}>\n {children}\n </Text>\n {iconProps && iconPosition === \"end\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n </HStack>\n </CLink>\n );\n },\n);\n\nLink.displayName = \"Link\";\n"],"names":["withContext","createRecipeContext","Link","LinkIcon","variant","rest","Icon","forwardRef","props","ref","children","external","iconProps","size","mapIconSize","useIconTextSizeMap","iconPosition","jsx","CLink","jsxs","HStack","Text"],"mappings":"mSAIM,CAAE,YAAAA,CAA2B,EAAIC,sBAAoB,CACzD,IAAK,MACP,CAAC,EACKC,EAAOF,EAAY,GAAG,ECEfG,EAAW,CAAC,CACvB,QAAAC,EACA,GAAGC,CACL,4BACUC,EAAAA,KAAK,CAAA,QAASF,GAAW,cAAgB,GAAGC,EAAM,ECQ/CH,EAAOK,EAAA,WAClB,CACEC,EACAC,IACsB,CAChB,KAAA,CACJ,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,KAAAC,EAAO,KACP,QAAAT,EAAU,cACV,GAAGC,CAAA,EACDG,EACEM,EAAcC,qBAAmBF,CAAI,EACrCG,EAAeJ,GAAW,UAAY,QAG1C,OAAAK,EAAA,kBAAA,IAACC,EAAA,CACC,UAAU,OACV,cAAY,cACZ,QAAAd,EACA,QAAQ,eACR,KAAAS,EACA,IAAAJ,EACC,GAAIE,GAAY,CAAE,OAAQ,SAAU,IAAK,qBAAsB,EAC/D,GAAGN,EAEJ,SAACc,EAAAA,kBAAAA,KAAAC,EAAAA,OAAA,CAAO,IAAK,EAAG,MAAM,SACnB,SAAA,CAAAR,GAAaI,IAAiB,SAC7BC,EAAA,kBAAA,IAACd,EAAA,CACC,KAAMS,EAAU,KAChB,QAAAR,EACA,KAAMU,CAAA,CACR,EAEDG,EAAAA,kBAAAA,IAAAI,EAAAA,YAAA,CAAK,KAAAR,EAAY,QAAAT,EACf,SAAAM,CACH,CAAA,EACCE,GAAaI,IAAiB,OAC7BC,EAAA,kBAAA,IAACd,EAAA,CACC,KAAMS,EAAU,KAChB,QAAAR,EACA,KAAMU,CAAA,CAAA,CACR,CAEJ,CAAA,CAAA,CACF,CAAA,CAGN,EAEAZ,EAAK,YAAc","x_google_ignoreList":[0]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { forwardRef as x } from "react";
|
|
3
|
-
import { W as k } from "./text.component-
|
|
3
|
+
import { W as k } from "./text.component-DZkwd4C0.js";
|
|
4
4
|
import { I as d } from "./icon.component-BmcWaysM.js";
|
|
5
5
|
import { u as f } from "./useIconTextSizeMap-BK-pUrQv.js";
|
|
6
6
|
import { c as j } from "./create-recipe-context-BcvaE0iS.js";
|
|
@@ -58,4 +58,4 @@ I.displayName = "Link";
|
|
|
58
58
|
export {
|
|
59
59
|
I as L
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=link.component-
|
|
61
|
+
//# sourceMappingURL=link.component-ucfag2-g.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.component-
|
|
1
|
+
{"version":3,"file":"link.component-ucfag2-g.js","sources":["../../node_modules/@chakra-ui/react/dist/esm/components/link/link.js","../../src/components/Link/components/LinkIcon/linkIcon.component.tsx","../../src/components/Link/link.component.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\nimport { createRecipeContext } from '../../styled-system/create-recipe-context.js';\n\nconst { withContext, PropsProvider } = createRecipeContext({\n key: \"link\"\n});\nconst Link = withContext(\"a\");\nconst LinkPropsProvider = PropsProvider;\n\nexport { Link, LinkPropsProvider };\n","import React from \"react\";\nimport { Icon, IconProps } from \"components/Icon\";\n\nexport interface LinkIconProps extends Pick<IconProps, \"name\"> {\n position?: \"start\" | \"end\";\n}\n\ntype InternalLinkIconProps = Pick<IconProps, \"name\" | \"variant\" | \"size\">;\n\nexport const LinkIcon = ({\n variant,\n ...rest\n}: InternalLinkIconProps): React.JSX.Element => {\n return <Icon variant={variant || \"interactive\"} {...rest} />;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Link as CLink, LinkProps as CLinkProps } from \"@chakra-ui/react/link\"; // Make sure to use named imports from Chakra UI\nimport { TypographyVariant } from \"shared/types\";\nimport { TextSize } from \"components/Text/text.types\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Text } from \"components/Text\";\nimport {\n LinkIcon,\n LinkIconProps,\n} from \"./components/LinkIcon/linkIcon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\n\nexport interface LinkProps extends CLinkProps {\n iconProps?: LinkIconProps;\n external?: boolean;\n size?: TextSize;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n to?: any;\n variant?: TypographyVariant;\n}\n\nexport const Link = forwardRef(\n (\n props: LinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n ): React.JSX.Element => {\n const {\n children,\n external,\n iconProps,\n size = \"md\",\n variant = \"interactive\",\n ...rest\n } = props;\n const mapIconSize = useIconTextSizeMap(size);\n const iconPosition = iconProps?.position || \"start\";\n\n return (\n <CLink\n className=\"Link\"\n data-testid=\"kibble-link\"\n variant={variant}\n display=\"inline-block\"\n size={size}\n ref={ref}\n {...(external && { target: \"_blank\", rel: \"noopener noreferrer\" })}\n {...rest}\n >\n <HStack gap={1} align=\"center\">\n {iconProps && iconPosition === \"start\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n <Text size={size} variant={variant}>\n {children}\n </Text>\n {iconProps && iconPosition === \"end\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n </HStack>\n </CLink>\n );\n },\n);\n\nLink.displayName = \"Link\";\n"],"names":["withContext","createRecipeContext","Link","LinkIcon","variant","rest","Icon","forwardRef","props","ref","children","external","iconProps","size","mapIconSize","useIconTextSizeMap","iconPosition","jsx","CLink","jsxs","HStack","Text"],"mappings":";;;;;;;AAIA,MAAM,EAAE,aAAAA,EAA2B,IAAIC,EAAoB;AAAA,EACzD,KAAK;AACP,CAAC,GACKC,IAAOF,EAAY,GAAG,GCEfG,IAAW,CAAC;AAAA,EACvB,SAAAC;AAAA,EACA,GAAGC;AACL,4BACUC,GAAK,EAAA,SAASF,KAAW,eAAgB,GAAGC,GAAM,GCQ/CH,IAAOK;AAAA,EAClB,CACEC,GACAC,MACsB;AAChB,UAAA;AAAA,MACJ,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,MAAAC,IAAO;AAAA,MACP,SAAAT,IAAU;AAAA,MACV,GAAGC;AAAA,IAAA,IACDG,GACEM,IAAcC,EAAmBF,CAAI,GACrCG,IAAeJ,GAAW,YAAY;AAG1C,WAAAK,gBAAAA,EAAA;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA,QACZ,SAAAd;AAAA,QACA,SAAQ;AAAA,QACR,MAAAS;AAAA,QACA,KAAAJ;AAAA,QACC,GAAIE,KAAY,EAAE,QAAQ,UAAU,KAAK,sBAAsB;AAAA,QAC/D,GAAGN;AAAA,QAEJ,UAACc,gBAAAA,EAAAA,KAAAC,GAAA,EAAO,KAAK,GAAG,OAAM,UACnB,UAAA;AAAA,UAAAR,KAAaI,MAAiB,WAC7BC,gBAAAA,EAAA;AAAA,YAACd;AAAA,YAAA;AAAA,cACC,MAAMS,EAAU;AAAA,cAChB,SAAAR;AAAA,cACA,MAAMU;AAAA,YAAA;AAAA,UACR;AAAA,UAEDG,gBAAAA,EAAAA,IAAAI,GAAA,EAAK,MAAAR,GAAY,SAAAT,GACf,UAAAM,EACH,CAAA;AAAA,UACCE,KAAaI,MAAiB,SAC7BC,gBAAAA,EAAA;AAAA,YAACd;AAAA,YAAA;AAAA,cACC,MAAMS,EAAU;AAAA,cAChB,SAAAR;AAAA,cACA,MAAMU;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,EAEJ,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEAZ,EAAK,cAAc;","x_google_ignoreList":[0]}
|
|
@@ -2,12 +2,12 @@ import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
|
2
2
|
import De, { forwardRef as x, useEffect as $, useId as B, useRef as Q, useCallback as j, useState as X, useMemo as y } from "react";
|
|
3
3
|
import { B as F } from "./button.component-BWlRjD5a.js";
|
|
4
4
|
import { I as te } from "./icon.component-BmcWaysM.js";
|
|
5
|
-
import { W as L } from "./text.component-
|
|
5
|
+
import { W as L } from "./text.component-DZkwd4C0.js";
|
|
6
6
|
import { F as w } from "./flex-C2d2LH-K.js";
|
|
7
|
-
import { W as Ee } from "./textInput.component-
|
|
8
|
-
import { S as He } from "./spinner.component-
|
|
7
|
+
import { W as Ee } from "./textInput.component-c9ySCd-c.js";
|
|
8
|
+
import { S as He } from "./spinner.component-DRQDBF8j.js";
|
|
9
9
|
import { B as A } from "./box-y05hq0PT.js";
|
|
10
|
-
import { W as Ke, u as Ue } from "./checkbox.component-
|
|
10
|
+
import { W as Ke, u as Ue } from "./checkbox.component-BTG2oHN_.js";
|
|
11
11
|
import { a as k, f as g, b as S, u as V, h as qe, i as Je, j as Qe, k as Xe, n as Ye, s as ne, l as oe, m as se, P as Ze } from "./use-locale-context-zakBNK5b.js";
|
|
12
12
|
import { c as et } from "./create-slot-recipe-context-DJkLYvCT.js";
|
|
13
13
|
import { b as tt } from "./icons-grAfs3Oz.js";
|
|
@@ -665,4 +665,4 @@ const ft = ({
|
|
|
665
665
|
export {
|
|
666
666
|
It as M
|
|
667
667
|
};
|
|
668
|
-
//# sourceMappingURL=menu.component-
|
|
668
|
+
//# sourceMappingURL=menu.component-B5OYYpa8.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.component-BQ-ffGbb.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.components.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.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 [MenuOptionItemPropsProvider, useMenuOptionItemPropsContext] = createContext({\n name: \"MenuOptionItemPropsContext\",\n hookName: \"useMenuOptionItemPropsContext\",\n providerName: \"<MenuOptionItemPropsProvider />\"\n});\n\nexport { MenuOptionItemPropsProvider, useMenuOptionItemPropsContext };\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 { MenuOptionItemPropsProvider } 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(MenuOptionItemPropsProvider, { 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';\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(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 { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(optionItemProps), 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 { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(optionItemProps), 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 { MenuOptionItemPropsProvider } 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(MenuOptionItemPropsProvider, { 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 { Button, ButtonProps } from \"components/Button/button.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { Text, TextProps } from \"components/Text/text.component\";\nimport React from \"react\";\n\nexport interface MenuButtonProps extends Omit<ButtonProps, \"children\"> {\n hideCaret?: boolean;\n text?: string;\n textProps?: TextProps;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = \"md\",\n text,\n textProps,\n variant,\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid=\"kibble-menu-button\"\n size={size}\n variant={variant}\n {...rest}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid=\"kibble-menu-button-text\"\n fontWeight=\"semibold\"\n size={size}\n color={variant ? \"inherit\" : textProps?.color || \"text.contrast\"}\n truncate\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex\n className=\"Menu__ButtonCaret\"\n data-testid=\"kibble-menu-button-caret\"\n >\n <Icon name=\"chevronDown\" size={size === \"lg\" ? \"sm\" : \"xs\"} />\n </Flex>\n )}\n </Button>\n );\n};\n","import { Flex } from \"@chakra-ui/react/flex\";\nimport { Menu as CMenu } from \"@chakra-ui/react/menu\";\nimport React, { useCallback } 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\";\n\ninterface BaseMenuItemProps {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n groupLabel?: string;\n onSelect?: (value: string) => void;\n shouldTruncateText?: boolean;\n type?: MenuItemType;\n value: string;\n variant?: TypographyVariant;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, \"onSelect\"> {\n type?: \"default\";\n selected?: boolean;\n}\n\ninterface CheckboxMenuItemProps\n extends Omit<CMenu.CheckboxItemProps, \"onSelect\"> {\n type: \"checkbox\";\n checked: boolean;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, \"buttonProps\"> {\n type: \"submenu\";\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps &\n (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = \"default\",\n variant,\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const handleOnSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === \"submenu\") {\n return (\n <Menu\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid=\"kibble-menu-item-submenu\"\n justifyContent=\"space-between\"\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 {...rest}\n />\n );\n }\n\n if (type === \"checkbox\") {\n const { checked, value, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.CheckboxItem\n className=\"Menu__Item--Checkbox\"\n data-testid=\"kibble-menu-item-checkbox\"\n value={value}\n checked={!!checked}\n onCheckedChange={handleOnSelect}\n closeOnSelect={rest.closeOnSelect || false}\n gap={3}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} size=\"md\" />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n </CMenu.CheckboxItem>\n );\n }\n\n if (type === \"default\") {\n const { selected, value, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid=\"kibble-menu-item-default\"\n value={value}\n onSelect={handleOnSelect}\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 />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n}): React.JSX.Element => {\n return (\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};\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 hasSelectedItems?: boolean;\n groupName?: string;\n onToggle: ({\n groupName,\n clear,\n }: {\n clear: boolean;\n groupName?: string;\n }) => void;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box\n className=\"Menu__ToggleButtons\"\n data-testid=\"kibble-menu-toggle-buttons\"\n {...(isGrouped ? { textAlign: \"right\", w: \"50%\" } : { mt: 2 })}\n >\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton\n hasSelectedItems={hasSelectedItems}\n groupName={groupName}\n onToggle={onToggle}\n />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton\n hasSelectedItems={hasSelectedItems}\n groupName={groupName}\n onToggle={onToggle}\n />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({\n groupName,\n onToggle,\n}: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghost\"\n size=\"xs\"\n onClick={(): void => onToggle({ groupName, clear: false })}\n >\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({\n hasSelectedItems,\n groupName,\n onToggle,\n}: 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, useMemo, useState } from \"react\";\nimport { Menu as CMenu } from \"@chakra-ui/react/menu\";\nimport { Portal } from \"@chakra-ui/react/portal\";\nimport {\n MenuButton,\n MenuButtonProps,\n} from \"./components/MenuButton/menuButton.components\";\nimport {\n MenuItem,\n MenuItemProps,\n} from \"./components/MenuItem/menuItem.component\";\nimport { useCheckboxGroup } from \"@chakra-ui/react/checkbox\";\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\";\n\nexport type MenuListOnSelect =\n | ((selectedItem: string | undefined, allSelectedItems?: string[]) => void)\n | ((\n selectedItem: string | undefined,\n allSelectedItems?: string[],\n ) => Promise<void>);\n\nexport type MenuListOnSelectAll =\n | ((selectedItems: string[]) => void)\n | ((selectedItems: string[]) => Promise<void>);\n\nexport interface MenuListProps extends Omit<CMenu.ContentProps, \"onSelect\"> {\n canSelectAll?: boolean;\n canSelectGroups?: boolean;\n emptyStateText?: string;\n loading?: boolean;\n menuItems?: MenuItemProps[];\n onSearch?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onSelect?: MenuListOnSelect;\n onSelectAll?: MenuListOnSelectAll;\n searchable?: boolean;\n searchPlaceholder?: string;\n shouldTruncateText?: boolean;\n}\n\nexport interface MenuProps extends Omit<CMenu.RootProps, \"children\"> {\n buttonProps?: MenuButtonProps;\n listProps?: MenuListProps;\n portalled?: boolean;\n}\n\ninterface InternalMenuProps extends MenuProps {\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n portalled = false,\n submenuTrigger,\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const {\n canSelectAll,\n canSelectGroups,\n emptyStateText = \"No results found\",\n loading,\n maxH = \"480px\",\n menuItems = [],\n minW = \"240px\",\n onSearch,\n onSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = \"Search...\",\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [searchText, setSearchText] = useState<string>(\"\");\n const [filteredMenuItems, setFilteredMenuItems] =\n 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(() => Object.entries(groupedItems), [groupedItems]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(\n () => menuItems?.filter((item) => item.type === \"checkbox\") || [],\n [menuItems],\n );\n\n const defaultSelectedItems = useMemo(() => {\n const selectedMenuItems =\n checkboxItems?.filter((item) => item.checked) || [];\n return selectedMenuItems.map((item) => item.value);\n }, [checkboxItems]);\n\n const selectedItems = useCheckboxGroup({\n defaultValue: defaultSelectedItems,\n });\n\n // Search\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 } else {\n if (searchInput === \"\" || !searchInput) {\n setFilteredMenuItems(menuItems);\n } else {\n const filterdItems = menuItems.filter((item): boolean => {\n const labelText =\n typeof item.label === \"string\" ? item.label : item.valueText;\n\n return !!labelText\n ?.toLowerCase()\n .includes(searchInput.toLowerCase());\n });\n setFilteredMenuItems(filterdItems);\n }\n }\n },\n [menuItems, onSearch],\n );\n\n // Selection\n const handleToggle = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newValues: string[] = [];\n if (groupName) {\n const groupItems = checkboxItems\n .filter((item) => item.groupLabel === groupName)\n .map((item) => item.value);\n newValues = clear\n ? selectedItems.value.filter((value) => !groupItems.includes(value))\n : [...selectedItems.value, ...groupItems];\n } else {\n newValues = clear ? [] : checkboxItems.map((item) => item.value);\n }\n onSelectAll?.(newValues);\n selectedItems.setValue(newValues);\n },\n [checkboxItems, onSelectAll, selectedItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n item.onSelect?.(item.value);\n const currentSelection = selectedItems.value;\n const isItemSelected = selectedItems.isChecked(item.value);\n onSelect?.(\n item.value,\n isItemSelected\n ? currentSelection.filter((value) => value !== item.value)\n : [...currentSelection, item.value],\n );\n if (item.type === \"checkbox\") {\n selectedItems.toggleValue(item.value);\n }\n },\n [onSelect, selectedItems],\n );\n\n // Cleanup\n const handleCleanup = useCallback(\n (open: boolean) => {\n if (!open) {\n setSearchText(\"\");\n setFilteredMenuItems(menuItems);\n }\n },\n [menuItems],\n );\n\n return (\n <CMenu.Root\n {...rest}\n onOpenChange={(details) => {\n handleCleanup(details.open);\n rest.onOpenChange?.(details);\n }}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger\n asChild\n className=\"Menu__Trigger\"\n data-testid=\"kibble-menu-trigger\"\n >\n <MenuButton {...buttonProps} />\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled}>\n <CMenu.Positioner className=\"Menu\" data-testid=\"kibble-menu\">\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid=\"kibble-menu-content\"\n maxH={maxH}\n minW={minW}\n {...restListProps}\n >\n {(searchable || canSelectAll) && (\n <Box\n className=\"Menu__Header\"\n data-testid=\"kibble-menu-header\"\n m=\"0 12px 8px\"\n >\n {searchable && (\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid=\"kibble-menu-search-bar\"\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={(): void => {\n setSearchText(\"\");\n handleSearch({\n target: { value: \"\" },\n } as React.ChangeEvent<HTMLInputElement>);\n }}\n formControlStyle={{ mt: 1 }}\n />\n )}\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggle}\n hasSelectedItems={!!selectedItems.value.length}\n />\n )}\n </Box>\n )}\n {!loading ? (\n <Box className=\"Menu__List\" data-testid=\"kibble-menu-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\n ? CMenu.ItemGroup\n : React.Fragment;\n const groupValues = types[\"checkbox\"]?.map(\n (item) => item.value,\n );\n const hasSelectedItems = groupValues?.some((value) =>\n selectedItems.value.includes(value),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n {groupLabel}\n {canSelectGroups &&\n itemTypes.includes(\"checkbox\") && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggle}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n {...item}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === \"checkbox\" && {\n checked: selectedItems.isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n />\n )),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box textAlign=\"center\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n {emptyStateText}\n </Text>\n </Box>\n </>\n )}\n </Box>\n ) : (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner />\n </Flex>\n )}\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","MenuOptionItemPropsProvider","useMenuOptionItemPropsContext","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","rest","jsxs","Button","Text","Flex","Icon","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","checkboxRest","CMenu.CheckboxItem","Checkbox","selected","defaultRest","CMenu.Item","Fragment","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","Box","ClearAllButton","SelectAllButton","buttonProps","listProps","portalled","submenuTrigger","canSelectAll","canSelectGroups","emptyStateText","loading","maxH","menuItems","minW","onSearch","onSelectAll","searchable","searchPlaceholder","restListProps","searchText","setSearchText","useState","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","checkboxItems","defaultSelectedItems","selectedItems","useCheckboxGroup","handleSearch","e","searchInput","filterdItems","handleToggle","clear","newValues","groupItems","handleSelect","currentSelection","isItemSelected","handleCleanup","open","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]}
|
|
1
|
+
{"version":3,"file":"menu.component-B5OYYpa8.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.components.tsx","../../src/components/Menu/components/MenuItem/menuItem.component.tsx","../../src/components/Menu/components/MenuToggleButtons/menuToggleButtons.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 [MenuOptionItemPropsProvider, useMenuOptionItemPropsContext] = createContext({\n name: \"MenuOptionItemPropsContext\",\n hookName: \"useMenuOptionItemPropsContext\",\n providerName: \"<MenuOptionItemPropsProvider />\"\n});\n\nexport { MenuOptionItemPropsProvider, useMenuOptionItemPropsContext };\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 { MenuOptionItemPropsProvider } 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(MenuOptionItemPropsProvider, { 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';\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(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 { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemIndicator = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemIndicatorProps(optionItemProps), 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 { useMenuOptionItemPropsContext } from './use-menu-option-item-props-context.js';\n\nconst MenuItemText = forwardRef((props, ref) => {\n const menu = useMenuContext();\n const optionItemProps = useMenuOptionItemPropsContext();\n const mergedProps = mergeProps(menu.getItemTextProps(optionItemProps), 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 { MenuOptionItemPropsProvider } 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(MenuOptionItemPropsProvider, { 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 { Button, ButtonProps } from \"components/Button/button.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { Text, TextProps } from \"components/Text/text.component\";\nimport React from \"react\";\n\nexport interface MenuButtonProps extends Omit<ButtonProps, \"children\"> {\n hideCaret?: boolean;\n text?: string;\n textProps?: TextProps;\n}\n\nexport const MenuButton = ({\n hideCaret = false,\n size = \"md\",\n text,\n textProps,\n variant,\n ...rest\n}: MenuButtonProps): React.JSX.Element => {\n return (\n <Button\n className=\"Menu__Button\"\n data-testid=\"kibble-menu-button\"\n size={size}\n variant={variant}\n {...rest}\n >\n {text && (\n <Text\n className=\"Menu__ButtonText\"\n data-testid=\"kibble-menu-button-text\"\n fontWeight=\"semibold\"\n size={size}\n color={variant ? \"inherit\" : textProps?.color || \"text.contrast\"}\n truncate\n {...textProps}\n >\n {text}\n </Text>\n )}\n {!hideCaret && (\n <Flex\n className=\"Menu__ButtonCaret\"\n data-testid=\"kibble-menu-button-caret\"\n >\n <Icon name=\"chevronDown\" size={size === \"lg\" ? \"sm\" : \"xs\"} />\n </Flex>\n )}\n </Button>\n );\n};\n","import { Flex } from \"@chakra-ui/react/flex\";\nimport { Menu as CMenu } from \"@chakra-ui/react/menu\";\nimport React, { useCallback } 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\";\n\ninterface BaseMenuItemProps {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n groupLabel?: string;\n onSelect?: (value: string) => void;\n shouldTruncateText?: boolean;\n type?: MenuItemType;\n value: string;\n variant?: TypographyVariant;\n}\n\ninterface DefaultMenuItemProps extends Omit<CMenu.ItemProps, \"onSelect\"> {\n type?: \"default\";\n selected?: boolean;\n}\n\ninterface CheckboxMenuItemProps\n extends Omit<CMenu.CheckboxItemProps, \"onSelect\"> {\n type: \"checkbox\";\n checked: boolean;\n}\n\ninterface SubmenuMenuItemProps extends Omit<MenuProps, \"buttonProps\"> {\n type: \"submenu\";\n valueText?: string;\n}\n\nexport type MenuItemProps = BaseMenuItemProps &\n (DefaultMenuItemProps | CheckboxMenuItemProps | SubmenuMenuItemProps);\n\nexport const MenuItem = ({\n label,\n leftElement,\n onSelect,\n shouldTruncateText,\n type = \"default\",\n variant,\n ...rest\n}: MenuItemProps): React.JSX.Element => {\n const handleOnSelect = useCallback(() => {\n if (onSelect) {\n onSelect(rest.value);\n }\n }, [onSelect, rest.value]);\n\n if (type === \"submenu\") {\n return (\n <Menu\n submenuTrigger={\n <CMenu.TriggerItem\n className=\"Menu__Item--Submenu\"\n data-testid=\"kibble-menu-item-submenu\"\n justifyContent=\"space-between\"\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 {...rest}\n />\n );\n }\n\n if (type === \"checkbox\") {\n const { checked, value, ...checkboxRest } = rest as CheckboxMenuItemProps;\n return (\n <CMenu.CheckboxItem\n className=\"Menu__Item--Checkbox\"\n data-testid=\"kibble-menu-item-checkbox\"\n value={value}\n checked={!!checked}\n onCheckedChange={handleOnSelect}\n closeOnSelect={rest.closeOnSelect || false}\n gap={3}\n {...checkboxRest}\n >\n <Checkbox checked={!!checked} size=\"md\" />\n <MenuItemLabel\n label={label}\n leftElement={leftElement}\n shouldTruncateText={shouldTruncateText}\n variant={variant}\n />\n </CMenu.CheckboxItem>\n );\n }\n\n if (type === \"default\") {\n const { selected, value, ...defaultRest } = rest as DefaultMenuItemProps;\n return (\n <CMenu.Item\n className=\"Menu__Item--Default\"\n data-testid=\"kibble-menu-item-default\"\n value={value}\n onSelect={handleOnSelect}\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 />\n </CMenu.Item>\n );\n }\n\n return <></>;\n};\n\nconst MenuItemLabel = ({\n label,\n leftElement,\n shouldTruncateText,\n variant,\n}: {\n label?: React.ReactNode;\n leftElement?: React.ReactNode;\n shouldTruncateText?: boolean;\n variant?: TypographyVariant;\n}): React.JSX.Element => {\n return (\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};\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 hasSelectedItems?: boolean;\n groupName?: string;\n onToggle: ({\n groupName,\n clear,\n }: {\n clear: boolean;\n groupName?: string;\n }) => void;\n}\n\nexport const MenuToggleButtons = ({\n groupName,\n hasSelectedItems = false,\n onToggle,\n}: MenuToggleButtonsProps): React.JSX.Element => {\n const isGrouped = !!groupName;\n return (\n <Box\n className=\"Menu__ToggleButtons\"\n data-testid=\"kibble-menu-toggle-buttons\"\n {...(isGrouped ? { textAlign: \"right\", w: \"50%\" } : { mt: 2 })}\n >\n {isGrouped ? (\n <>\n {hasSelectedItems ? (\n <ClearAllButton\n hasSelectedItems={hasSelectedItems}\n groupName={groupName}\n onToggle={onToggle}\n />\n ) : (\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n )}\n </>\n ) : (\n <Flex justifyContent=\"space-between\">\n <SelectAllButton groupName={groupName} onToggle={onToggle} />\n <ClearAllButton\n hasSelectedItems={hasSelectedItems}\n groupName={groupName}\n onToggle={onToggle}\n />\n </Flex>\n )}\n </Box>\n );\n};\n\nconst SelectAllButton = ({\n groupName,\n onToggle,\n}: MenuToggleButtonsProps): React.JSX.Element => {\n return (\n <Button\n variant=\"ghost\"\n size=\"xs\"\n onClick={(): void => onToggle({ groupName, clear: false })}\n >\n Select All\n </Button>\n );\n};\n\nconst ClearAllButton = ({\n hasSelectedItems,\n groupName,\n onToggle,\n}: 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, useMemo, useState } from \"react\";\nimport { Menu as CMenu } from \"@chakra-ui/react/menu\";\nimport { Portal } from \"@chakra-ui/react/portal\";\nimport {\n MenuButton,\n MenuButtonProps,\n} from \"./components/MenuButton/menuButton.components\";\nimport {\n MenuItem,\n MenuItemProps,\n} from \"./components/MenuItem/menuItem.component\";\nimport { useCheckboxGroup } from \"@chakra-ui/react/checkbox\";\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\";\n\nexport type MenuListOnSelect =\n | ((selectedItem: string | undefined, allSelectedItems?: string[]) => void)\n | ((\n selectedItem: string | undefined,\n allSelectedItems?: string[],\n ) => Promise<void>);\n\nexport type MenuListOnSelectAll =\n | ((selectedItems: string[]) => void)\n | ((selectedItems: string[]) => Promise<void>);\n\nexport interface MenuListProps extends Omit<CMenu.ContentProps, \"onSelect\"> {\n canSelectAll?: boolean;\n canSelectGroups?: boolean;\n emptyStateText?: string;\n loading?: boolean;\n menuItems?: MenuItemProps[];\n onSearch?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onSelect?: MenuListOnSelect;\n onSelectAll?: MenuListOnSelectAll;\n searchable?: boolean;\n searchPlaceholder?: string;\n shouldTruncateText?: boolean;\n}\n\nexport interface MenuProps extends Omit<CMenu.RootProps, \"children\"> {\n buttonProps?: MenuButtonProps;\n listProps?: MenuListProps;\n portalled?: boolean;\n}\n\ninterface InternalMenuProps extends MenuProps {\n submenuTrigger?: React.ReactNode;\n}\n\nexport const Menu = ({\n buttonProps,\n listProps,\n portalled = false,\n submenuTrigger,\n ...rest\n}: InternalMenuProps): React.JSX.Element => {\n const {\n canSelectAll,\n canSelectGroups,\n emptyStateText = \"No results found\",\n loading,\n maxH = \"480px\",\n menuItems = [],\n minW = \"240px\",\n onSearch,\n onSelect,\n onSelectAll,\n searchable,\n searchPlaceholder = \"Search...\",\n shouldTruncateText,\n ...restListProps\n } = listProps || {};\n const [searchText, setSearchText] = useState<string>(\"\");\n const [filteredMenuItems, setFilteredMenuItems] =\n 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(() => Object.entries(groupedItems), [groupedItems]);\n\n // Checkbox State Management\n const checkboxItems = useMemo(\n () => menuItems?.filter((item) => item.type === \"checkbox\") || [],\n [menuItems],\n );\n\n const defaultSelectedItems = useMemo(() => {\n const selectedMenuItems =\n checkboxItems?.filter((item) => item.checked) || [];\n return selectedMenuItems.map((item) => item.value);\n }, [checkboxItems]);\n\n const selectedItems = useCheckboxGroup({\n defaultValue: defaultSelectedItems,\n });\n\n // Search\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 } else {\n if (searchInput === \"\" || !searchInput) {\n setFilteredMenuItems(menuItems);\n } else {\n const filterdItems = menuItems.filter((item): boolean => {\n const labelText =\n typeof item.label === \"string\" ? item.label : item.valueText;\n\n return !!labelText\n ?.toLowerCase()\n .includes(searchInput.toLowerCase());\n });\n setFilteredMenuItems(filterdItems);\n }\n }\n },\n [menuItems, onSearch],\n );\n\n // Selection\n const handleToggle = useCallback(\n ({ groupName, clear }: { groupName?: string; clear: boolean }) => {\n let newValues: string[] = [];\n if (groupName) {\n const groupItems = checkboxItems\n .filter((item) => item.groupLabel === groupName)\n .map((item) => item.value);\n newValues = clear\n ? selectedItems.value.filter((value) => !groupItems.includes(value))\n : [...selectedItems.value, ...groupItems];\n } else {\n newValues = clear ? [] : checkboxItems.map((item) => item.value);\n }\n onSelectAll?.(newValues);\n selectedItems.setValue(newValues);\n },\n [checkboxItems, onSelectAll, selectedItems],\n );\n\n const handleSelect = useCallback(\n (item: MenuItemProps) => {\n item.onSelect?.(item.value);\n const currentSelection = selectedItems.value;\n const isItemSelected = selectedItems.isChecked(item.value);\n onSelect?.(\n item.value,\n isItemSelected\n ? currentSelection.filter((value) => value !== item.value)\n : [...currentSelection, item.value],\n );\n if (item.type === \"checkbox\") {\n selectedItems.toggleValue(item.value);\n }\n },\n [onSelect, selectedItems],\n );\n\n // Cleanup\n const handleCleanup = useCallback(\n (open: boolean) => {\n if (!open) {\n setSearchText(\"\");\n setFilteredMenuItems(menuItems);\n }\n },\n [menuItems],\n );\n\n return (\n <CMenu.Root\n {...rest}\n onOpenChange={(details) => {\n handleCleanup(details.open);\n rest.onOpenChange?.(details);\n }}\n >\n {!submenuTrigger ? (\n <CMenu.Trigger\n asChild\n className=\"Menu__Trigger\"\n data-testid=\"kibble-menu-trigger\"\n >\n <MenuButton {...buttonProps} />\n </CMenu.Trigger>\n ) : (\n submenuTrigger\n )}\n <Portal disabled={!portalled}>\n <CMenu.Positioner className=\"Menu\" data-testid=\"kibble-menu\">\n <CMenu.Content\n className=\"Menu__Content\"\n data-testid=\"kibble-menu-content\"\n maxH={maxH}\n minW={minW}\n {...restListProps}\n >\n {(searchable || canSelectAll) && (\n <Box\n className=\"Menu__Header\"\n data-testid=\"kibble-menu-header\"\n m=\"0 12px 8px\"\n >\n {searchable && (\n <TextInput\n className=\"Menu__SearchBar\"\n data-testid=\"kibble-menu-search-bar\"\n placeholder={searchPlaceholder}\n onChange={handleSearch}\n size=\"sm\"\n value={searchText}\n clearable\n onClear={(): void => {\n setSearchText(\"\");\n handleSearch({\n target: { value: \"\" },\n } as React.ChangeEvent<HTMLInputElement>);\n }}\n formControlStyle={{ mt: 1 }}\n />\n )}\n {canSelectAll && !!checkboxItems.length && (\n <MenuToggleButtons\n onToggle={handleToggle}\n hasSelectedItems={!!selectedItems.value.length}\n />\n )}\n </Box>\n )}\n {!loading ? (\n <Box className=\"Menu__List\" data-testid=\"kibble-menu-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\n ? CMenu.ItemGroup\n : React.Fragment;\n const groupValues = types[\"checkbox\"]?.map(\n (item) => item.value,\n );\n const hasSelectedItems = groupValues?.some((value) =>\n selectedItems.value.includes(value),\n );\n return (\n <MenuGroupContainer key={groupLabel}>\n {!isDefaultGroup && (\n <CMenu.ItemGroupLabel>\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n {groupLabel}\n {canSelectGroups &&\n itemTypes.includes(\"checkbox\") && (\n <MenuToggleButtons\n groupName={groupLabel}\n onToggle={handleToggle}\n hasSelectedItems={hasSelectedItems}\n />\n )}\n </Flex>\n </CMenu.ItemGroupLabel>\n )}\n {Object.entries(types).map(([type, items]) =>\n items.map((item, index) => (\n <MenuItem\n key={`menu-item-${groupLabel}-${type}-${index}`}\n {...item}\n shouldTruncateText={shouldTruncateText}\n {...(item.type === \"checkbox\" && {\n checked: selectedItems.isChecked(item.value),\n })}\n onSelect={() => handleSelect(item)}\n />\n )),\n )}\n </MenuGroupContainer>\n );\n })}\n </>\n ) : (\n <>\n <Box textAlign=\"center\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n {emptyStateText}\n </Text>\n </Box>\n </>\n )}\n </Box>\n ) : (\n <Flex justifyContent=\"center\" py={5}>\n <Spinner />\n </Flex>\n )}\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","MenuOptionItemPropsProvider","useMenuOptionItemPropsContext","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","rest","jsxs","Button","Text","Flex","Icon","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","Menu","CMenu.TriggerItem","MenuItemLabel","checked","value","checkboxRest","CMenu.CheckboxItem","Checkbox","selected","defaultRest","CMenu.Item","Fragment","MenuToggleButtons","groupName","hasSelectedItems","onToggle","isGrouped","Box","ClearAllButton","SelectAllButton","buttonProps","listProps","portalled","submenuTrigger","canSelectAll","canSelectGroups","emptyStateText","loading","maxH","menuItems","minW","onSearch","onSelectAll","searchable","searchPlaceholder","restListProps","searchText","setSearchText","useState","filteredMenuItems","setFilteredMenuItems","groupedItems","useMemo","groups","item","group","checkboxItems","defaultSelectedItems","selectedItems","useCheckboxGroup","handleSearch","e","searchInput","filterdItems","handleToggle","clear","newValues","groupItems","handleSelect","currentSelection","isItemSelected","handleCleanup","open","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]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),i=require("react"),_=require("./button.component-ytAmAAJg.js"),K=require("./icon.component-4aaCABoX.js"),y=require("./text.component-nwRL3NcQ.js"),E=require("./flex-DKWxn8hO.js"),Ae=require("./textInput.component-6V4W8zUy.js"),Ge=require("./spinner.component-DrxwjIwy.js"),k=require("./box-ca2FvcWF.js"),J=require("./checkbox.component-Cn7zfMpA.js"),o=require("./use-locale-context-BdqHZ8L8.js"),Oe=require("./create-slot-recipe-context-D-pJ8fgs.js"),Be=require("./icons-BVYVhH49.js"),z=require("./index-ZaGEDS_0.js"),m=require("./index-CZ42b9rT.js"),qe=t=>t&&t.__esModule?t:{default:t},$e=qe(i),[Q,d]=o.createContext({name:"MenuContext",hookName:"useMenuContext",providerName:"<MenuProvider />",strict:!1}),U=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getArrowProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});U.displayName="MenuArrow";const X=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getArrowTipProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});X.displayName="MenuArrowTip";const[A,nt]=o.createContext({name:"MenuItemContext",hookName:"useMenuItemContext",providerName:"<MenuItemProvider />"}),[Y,Z]=o.createContext({name:"MenuOptionItemPropsContext",hookName:"useMenuOptionItemPropsContext",providerName:"<MenuOptionItemPropsProvider />"}),ee=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["checked","closeOnSelect","disabled","onCheckedChange","value","valueText"]),u={...s,type:"checkbox"},l=d(),a=m.mergeProps(l.getOptionItemProps(u),r),x=l.getOptionItemState(u);return e.jsxRuntimeExports.jsx(Y,{value:u,children:e.jsxRuntimeExports.jsx(A,{value:x,children:e.jsxRuntimeExports.jsx(o.ark.div,{...a,ref:n})})})});ee.displayName="MenuCheckboxItem";const te=i.forwardRef((t,n)=>{const s=d(),r=o.usePresenceContext(),u=m.mergeProps(s.getContentProps(),r.getPresenceProps(),t);return r.unmounted?null:e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:o.composeRefs(r.ref,n)})});te.displayName="MenuContent";const se=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getContextTriggerProps(),t);return e.jsxRuntimeExports.jsx(o.ark.button,{...r,ref:n})});se.displayName="MenuContextTrigger";const ne=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getIndicatorProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});ne.displayName="MenuIndicator";const re=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["closeOnSelect","disabled","value","valueText","onSelect"]),u=d(),l=m.mergeProps(u.getItemProps(s),r),a=u.getItemState(s);return i.useEffect(()=>u.addItemListener({id:a.id,onSelect:s.onSelect}),[a.id,s.onSelect]),e.jsxRuntimeExports.jsx(A,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...l,ref:n})})});re.displayName="MenuItem";const[oe,ue]=o.createContext({name:"MenuItemGroupContext",hookName:"useMenuItemGroupContext",providerName:"<MenuItemGroupProvider />"}),ie=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["id"]),u=d(),a={id:i.useId(),...s},x=m.mergeProps(u.getItemGroupProps(a),r);return e.jsxRuntimeExports.jsx(oe,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})});ie.displayName="MenuItemGroup";const ce=i.forwardRef((t,n)=>{const s=d(),r=ue(),u=m.mergeProps(s.getItemGroupLabelProps({htmlFor:r.id}),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});ce.displayName="MenuItemGroupLabel";const ae=i.forwardRef((t,n)=>{const s=d(),r=Z(),u=m.mergeProps(s.getItemIndicatorProps(r),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});ae.displayName="MenuItemIndicator";const le=i.forwardRef((t,n)=>{const s=d(),r=Z(),u=m.mergeProps(s.getItemTextProps(r),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});le.displayName="MenuItemText";const pe=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getPositionerProps(),t);return o.usePresenceContext().unmounted?null:e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});pe.displayName="MenuPositioner";const xe=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["closeOnSelect","disabled","value","valueText"]),u=d(),l=ue(),a={...s,checked:l.value===s.value,type:"radio",onCheckedChange:()=>l.onValueChange?.({value:s.value})},x=m.mergeProps(u.getOptionItemProps(a),r),P=u.getOptionItemState(a);return e.jsxRuntimeExports.jsx(Y,{value:a,children:e.jsxRuntimeExports.jsx(A,{value:P,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})})});xe.displayName="MenuRadioItem";const me=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["id","onValueChange","value"]),u=d(),a={id:i.useId(),...s},x=m.mergeProps(u.getItemGroupProps({id:a.id}),r);return e.jsxRuntimeExports.jsx(oe,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})});me.displayName="MenuRadioItemGroup";const de=t=>{const n=i.useRef(t),s=i.useRef(!1);i.useEffect(()=>{n.current=t}),i.useEffect(()=>{s.current!==!0&&(s.current=!0,n.current())},[])},Fe=t=>{const n=i.useId(),{getRootNode:s}=o.useEnvironmentContext(),{dir:r}=o.useLocaleContext(),u={id:n,dir:r,getRootNode:s,...t},l=o.useMachine(z.machine,u);return{api:z.connect(l,o.normalizeProps),service:l}},[je,he]=o.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),[ge,Le]=o.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),Ve=t=>{const[n,s]=o.splitPresenceProps(t),[r,u]=o.createSplitProps()(s,["anchorPoint","aria-label","closeOnSelect","composite","defaultHighlightedValue","defaultOpen","highlightedValue","id","ids","loopFocus","navigate","onEscapeKeyDown","onFocusOutside","onHighlightChange","onInteractOutside","onOpenChange","onPointerDownOutside","onSelect","open","positioning","typeahead"]),l=d(),a=he(),{api:x,service:P}=Fe(r),M=o.usePresence(m.mergeProps({present:x.open},n));de(()=>{a&&l&&(l.setChild(P),x.setParent(a))});const f=i.useCallback(()=>l?.getTriggerItemProps(x),[x,l]);return e.jsxRuntimeExports.jsx(ge,{value:f,children:e.jsxRuntimeExports.jsx(je,{value:P,children:e.jsxRuntimeExports.jsx(Q,{value:x,children:e.jsxRuntimeExports.jsx(o.PresenceProvider,{value:M,...u})})})})},ze=t=>{const n=d(),s=he(),[r,{value:u,children:l}]=o.splitPresenceProps(t),{api:a,service:x}=u,P=o.usePresence(m.mergeProps({present:a.open},r));de(()=>{s&&n&&(n.setChild(x),a.setParent(s))});const M=i.useCallback(()=>n?.getTriggerItemProps(a),[a,n]);return e.jsxRuntimeExports.jsx(ge,{value:M,children:e.jsxRuntimeExports.jsx(je,{value:x,children:e.jsxRuntimeExports.jsx(Q,{value:a,children:e.jsxRuntimeExports.jsx(o.PresenceProvider,{value:P,children:l})})})})},Pe=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getSeparatorProps(),t);return e.jsxRuntimeExports.jsx(o.ark.hr,{...r,ref:n})});Pe.displayName="MenuSeparator";const fe=i.forwardRef((t,n)=>{const s=d(),r=o.usePresenceContext(),u=m.mergeProps({...s.getTriggerProps(),"aria-controls":r.unmounted?void 0:s.getTriggerProps()["aria-controls"]},t);return e.jsxRuntimeExports.jsx(o.ark.button,{...u,ref:n})});fe.displayName="MenuTrigger";const Re=i.forwardRef((t,n)=>{const s=Le(),r=m.mergeProps(s?.()??{},t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});Re.displayName="MenuTriggerItem";const{withRootProvider:Me,withContext:j}=Oe.createSlotRecipeContext({key:"menu"});Me(ze);const We=Me(Ve,{defaultProps:{lazyMount:!0,unmountOnExit:!0}}),De=j(fe,"trigger",{forwardAsChild:!0});j(se,"contextTrigger",{forwardAsChild:!0});const He=j(pe,"positioner",{forwardAsChild:!0});j(Pe,"separator",{forwardAsChild:!0});const Ke=j(te,"content",{forwardAsChild:!0}),Je=j(X,"arrowTip",{forwardAsChild:!0});j(U,"arrow",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(Je,{})}});j(ne,"indicator",{forwardAsChild:!0});const Qe=j(ie,"itemGroup",{forwardAsChild:!0}),Ue=j(ce,"itemGroupLabel",{forwardAsChild:!0}),Xe=j(re,"item",{forwardAsChild:!0}),Ye=j(Re,"item",{forwardAsChild:!0});j(le,"itemText",{forwardAsChild:!0});j("kbd","itemCommand");j(ae,"itemIndicator",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(Be.CheckIcon,{boxSize:"4"})}});const Ze=j(ee,"item",{forwardAsChild:!0});j(me,"itemGroup",{forwardAsChild:!0});j(xe,"item",{forwardAsChild:!0});const et=({hideCaret:t=!1,size:n="md",text:s,textProps:r,variant:u,...l})=>e.jsxRuntimeExports.jsxs(_.Button,{className:"Menu__Button","data-testid":"kibble-menu-button",size:n,variant:u,...l,children:[s&&e.jsxRuntimeExports.jsx(y.WrappedText,{className:"Menu__ButtonText","data-testid":"kibble-menu-button-text",fontWeight:"semibold",size:n,color:u?"inherit":r?.color||"text.contrast",truncate:!0,...r,children:s}),!t&&e.jsxRuntimeExports.jsx(E.Flex,{className:"Menu__ButtonCaret","data-testid":"kibble-menu-button-caret",children:e.jsxRuntimeExports.jsx(K.Icon,{name:"chevronDown",size:n==="lg"?"sm":"xs"})})]}),tt=({label:t,leftElement:n,onSelect:s,shouldTruncateText:r,type:u="default",variant:l,...a})=>{const x=i.useCallback(()=>{s&&s(a.value)},[s,a.value]);if(u==="submenu")return e.jsxRuntimeExports.jsx(Ce,{submenuTrigger:e.jsxRuntimeExports.jsxs(Ye,{className:"Menu__Item--Submenu","data-testid":"kibble-menu-item-submenu",justifyContent:"space-between",children:[e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:l}),e.jsxRuntimeExports.jsx(K.Icon,{name:"chevronRight",size:"sm"})]}),...a});if(u==="checkbox"){const{checked:P,value:M,...f}=a;return e.jsxRuntimeExports.jsxs(Ze,{className:"Menu__Item--Checkbox","data-testid":"kibble-menu-item-checkbox",value:M,checked:!!P,onCheckedChange:x,closeOnSelect:a.closeOnSelect||!1,gap:3,...f,children:[e.jsxRuntimeExports.jsx(J.WrappedCheckbox,{checked:!!P,size:"md"}),e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:l})]})}if(u==="default"){const{selected:P,value:M,...f}=a;return e.jsxRuntimeExports.jsx(Xe,{className:"Menu__Item--Default","data-testid":"kibble-menu-item-default",value:M,onSelect:x,...P&&{bgColor:"background.secondaryAlpha.hover"},...f,children:e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:P?"info":l})})}return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{})},T=({label:t,leftElement:n,shouldTruncateText:s,variant:r})=>e.jsxRuntimeExports.jsxs(E.Flex,{className:"Menu__ItemLabel",alignItems:"center",gap:3,children:[n,typeof t=="string"?e.jsxRuntimeExports.jsx(y.WrappedText,{size:"sm",truncated:s,variant:r,children:t}):t]}),W=({groupName:t,hasSelectedItems:n=!1,onToggle:s})=>{const r=!!t;return e.jsxRuntimeExports.jsx(k.Box,{className:"Menu__ToggleButtons","data-testid":"kibble-menu-toggle-buttons",...r?{textAlign:"right",w:"50%"}:{mt:2},children:r?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:n?e.jsxRuntimeExports.jsx(H,{hasSelectedItems:n,groupName:t,onToggle:s}):e.jsxRuntimeExports.jsx(D,{groupName:t,onToggle:s})}):e.jsxRuntimeExports.jsxs(E.Flex,{justifyContent:"space-between",children:[e.jsxRuntimeExports.jsx(D,{groupName:t,onToggle:s}),e.jsxRuntimeExports.jsx(H,{hasSelectedItems:n,groupName:t,onToggle:s})]})})},D=({groupName:t,onToggle:n})=>e.jsxRuntimeExports.jsx(_.Button,{variant:"ghost",size:"xs",onClick:()=>n({groupName:t,clear:!1}),children:"Select All"}),H=({hasSelectedItems:t,groupName:n,onToggle:s})=>e.jsxRuntimeExports.jsx(_.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",disabled:!t,onClick:()=>s({groupName:n,clear:!0}),children:"Clear All"}),Ce=({buttonProps:t,listProps:n,portalled:s=!1,submenuTrigger:r,...u})=>{const{canSelectAll:l,canSelectGroups:a,emptyStateText:x="No results found",loading:P,maxH:M="480px",menuItems:f=[],minW:Ie="240px",onSearch:w,onSelect:G,onSelectAll:O,searchable:B,searchPlaceholder:ve="Search...",shouldTruncateText:Ee,...be}=n||{},[ke,S]=i.useState(""),[q,N]=i.useState(f),$=i.useMemo(()=>{const c={};return q?.forEach(p=>{const h=p.groupLabel||"default",g=p.type==="checkbox"?"checkbox":"default";c[h]||(c[h]={}),c[h][g]||(c[h][g]=[]),c[h][g].push(p)}),c},[q]),F=i.useMemo(()=>Object.entries($),[$]),I=i.useMemo(()=>f?.filter(c=>c.type==="checkbox")||[],[f]),we=i.useMemo(()=>(I?.filter(p=>p.checked)||[]).map(p=>p.value),[I]),R=J.useCheckboxGroup({defaultValue:we}),L=i.useCallback(c=>{const p=c.target.value;if(S(p),w)w(c);else if(p===""||!p)N(f);else{const h=f.filter(g=>!!(typeof g.label=="string"?g.label:g.valueText)?.toLowerCase().includes(p.toLowerCase()));N(h)}},[f,w]),V=i.useCallback(({groupName:c,clear:p})=>{let h=[];if(c){const g=I.filter(C=>C.groupLabel===c).map(C=>C.value);h=p?R.value.filter(C=>!g.includes(C)):[...R.value,...g]}else h=p?[]:I.map(g=>g.value);O?.(h),R.setValue(h)},[I,O,R]),Se=i.useCallback(c=>{c.onSelect?.(c.value);const p=R.value,h=R.isChecked(c.value);G?.(c.value,h?p.filter(g=>g!==c.value):[...p,c.value]),c.type==="checkbox"&&R.toggleValue(c.value)},[G,R]),Ne=i.useCallback(c=>{c||(S(""),N(f))},[f]);return e.jsxRuntimeExports.jsxs(We,{...u,onOpenChange:c=>{Ne(c.open),u.onOpenChange?.(c)},children:[r||e.jsxRuntimeExports.jsx(De,{asChild:!0,className:"Menu__Trigger","data-testid":"kibble-menu-trigger",children:e.jsxRuntimeExports.jsx(et,{...t})}),e.jsxRuntimeExports.jsx(o.Portal,{disabled:!s,children:e.jsxRuntimeExports.jsx(He,{className:"Menu","data-testid":"kibble-menu",children:e.jsxRuntimeExports.jsxs(Ke,{className:"Menu__Content","data-testid":"kibble-menu-content",maxH:M,minW:Ie,...be,children:[(B||l)&&e.jsxRuntimeExports.jsxs(k.Box,{className:"Menu__Header","data-testid":"kibble-menu-header",m:"0 12px 8px",children:[B&&e.jsxRuntimeExports.jsx(Ae.WrappedTextInput,{className:"Menu__SearchBar","data-testid":"kibble-menu-search-bar",placeholder:ve,onChange:L,size:"sm",value:ke,clearable:!0,onClear:()=>{S(""),L({target:{value:""}})},formControlStyle:{mt:1}}),l&&!!I.length&&e.jsxRuntimeExports.jsx(W,{onToggle:V,hasSelectedItems:!!R.value.length})]}),P?e.jsxRuntimeExports.jsx(E.Flex,{justifyContent:"center",py:5,children:e.jsxRuntimeExports.jsx(Ge.Spinner,{})}):e.jsxRuntimeExports.jsx(k.Box,{className:"Menu__List","data-testid":"kibble-menu-list",children:F.length?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:F.map(([c,p])=>{const h=c==="default",g=Object.keys(p),C=h?$e.default.Fragment:Qe,Te=p.checkbox?.map(v=>v.value)?.some(v=>R.value.includes(v));return e.jsxRuntimeExports.jsxs(C,{children:[!h&&e.jsxRuntimeExports.jsx(Ue,{children:e.jsxRuntimeExports.jsxs(E.Flex,{alignItems:"center",justifyContent:"space-between",children:[c,a&&g.includes("checkbox")&&e.jsxRuntimeExports.jsx(W,{groupName:c,onToggle:V,hasSelectedItems:Te})]})}),Object.entries(p).map(([v,_e])=>_e.map((b,ye)=>e.jsxRuntimeExports.jsx(tt,{...b,shouldTruncateText:Ee,...b.type==="checkbox"&&{checked:R.isChecked(b.value)},onSelect:()=>Se(b)},`menu-item-${c}-${v}-${ye}`)))]},c)})}):e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx(k.Box,{textAlign:"center",p:3,children:e.jsxRuntimeExports.jsx(y.WrappedText,{size:"sm",variant:"subtle",children:x})})})})]})})})]})};exports.Menu=Ce;
|
|
2
|
-
//# sourceMappingURL=menu.component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),i=require("react"),_=require("./button.component-ytAmAAJg.js"),K=require("./icon.component-4aaCABoX.js"),y=require("./text.component-C_Zg4dMh.js"),E=require("./flex-DKWxn8hO.js"),Ae=require("./textInput.component-7QTnQmYu.js"),Ge=require("./spinner.component-DjiFeql5.js"),k=require("./box-ca2FvcWF.js"),J=require("./checkbox.component-WA8Y2Cfq.js"),o=require("./use-locale-context-BdqHZ8L8.js"),Oe=require("./create-slot-recipe-context-D-pJ8fgs.js"),Be=require("./icons-BVYVhH49.js"),z=require("./index-ZaGEDS_0.js"),m=require("./index-CZ42b9rT.js"),qe=t=>t&&t.__esModule?t:{default:t},$e=qe(i),[Q,d]=o.createContext({name:"MenuContext",hookName:"useMenuContext",providerName:"<MenuProvider />",strict:!1}),U=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getArrowProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});U.displayName="MenuArrow";const X=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getArrowTipProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});X.displayName="MenuArrowTip";const[A,nt]=o.createContext({name:"MenuItemContext",hookName:"useMenuItemContext",providerName:"<MenuItemProvider />"}),[Y,Z]=o.createContext({name:"MenuOptionItemPropsContext",hookName:"useMenuOptionItemPropsContext",providerName:"<MenuOptionItemPropsProvider />"}),ee=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["checked","closeOnSelect","disabled","onCheckedChange","value","valueText"]),u={...s,type:"checkbox"},l=d(),a=m.mergeProps(l.getOptionItemProps(u),r),x=l.getOptionItemState(u);return e.jsxRuntimeExports.jsx(Y,{value:u,children:e.jsxRuntimeExports.jsx(A,{value:x,children:e.jsxRuntimeExports.jsx(o.ark.div,{...a,ref:n})})})});ee.displayName="MenuCheckboxItem";const te=i.forwardRef((t,n)=>{const s=d(),r=o.usePresenceContext(),u=m.mergeProps(s.getContentProps(),r.getPresenceProps(),t);return r.unmounted?null:e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:o.composeRefs(r.ref,n)})});te.displayName="MenuContent";const se=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getContextTriggerProps(),t);return e.jsxRuntimeExports.jsx(o.ark.button,{...r,ref:n})});se.displayName="MenuContextTrigger";const ne=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getIndicatorProps(),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});ne.displayName="MenuIndicator";const re=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["closeOnSelect","disabled","value","valueText","onSelect"]),u=d(),l=m.mergeProps(u.getItemProps(s),r),a=u.getItemState(s);return i.useEffect(()=>u.addItemListener({id:a.id,onSelect:s.onSelect}),[a.id,s.onSelect]),e.jsxRuntimeExports.jsx(A,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...l,ref:n})})});re.displayName="MenuItem";const[oe,ue]=o.createContext({name:"MenuItemGroupContext",hookName:"useMenuItemGroupContext",providerName:"<MenuItemGroupProvider />"}),ie=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["id"]),u=d(),a={id:i.useId(),...s},x=m.mergeProps(u.getItemGroupProps(a),r);return e.jsxRuntimeExports.jsx(oe,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})});ie.displayName="MenuItemGroup";const ce=i.forwardRef((t,n)=>{const s=d(),r=ue(),u=m.mergeProps(s.getItemGroupLabelProps({htmlFor:r.id}),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});ce.displayName="MenuItemGroupLabel";const ae=i.forwardRef((t,n)=>{const s=d(),r=Z(),u=m.mergeProps(s.getItemIndicatorProps(r),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});ae.displayName="MenuItemIndicator";const le=i.forwardRef((t,n)=>{const s=d(),r=Z(),u=m.mergeProps(s.getItemTextProps(r),t);return e.jsxRuntimeExports.jsx(o.ark.div,{...u,ref:n})});le.displayName="MenuItemText";const pe=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getPositionerProps(),t);return o.usePresenceContext().unmounted?null:e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});pe.displayName="MenuPositioner";const xe=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["closeOnSelect","disabled","value","valueText"]),u=d(),l=ue(),a={...s,checked:l.value===s.value,type:"radio",onCheckedChange:()=>l.onValueChange?.({value:s.value})},x=m.mergeProps(u.getOptionItemProps(a),r),P=u.getOptionItemState(a);return e.jsxRuntimeExports.jsx(Y,{value:a,children:e.jsxRuntimeExports.jsx(A,{value:P,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})})});xe.displayName="MenuRadioItem";const me=i.forwardRef((t,n)=>{const[s,r]=o.createSplitProps()(t,["id","onValueChange","value"]),u=d(),a={id:i.useId(),...s},x=m.mergeProps(u.getItemGroupProps({id:a.id}),r);return e.jsxRuntimeExports.jsx(oe,{value:a,children:e.jsxRuntimeExports.jsx(o.ark.div,{...x,ref:n})})});me.displayName="MenuRadioItemGroup";const de=t=>{const n=i.useRef(t),s=i.useRef(!1);i.useEffect(()=>{n.current=t}),i.useEffect(()=>{s.current!==!0&&(s.current=!0,n.current())},[])},Fe=t=>{const n=i.useId(),{getRootNode:s}=o.useEnvironmentContext(),{dir:r}=o.useLocaleContext(),u={id:n,dir:r,getRootNode:s,...t},l=o.useMachine(z.machine,u);return{api:z.connect(l,o.normalizeProps),service:l}},[je,he]=o.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),[ge,Le]=o.createContext({name:"MenuMachineContext",hookName:"useMenuMachineContext",providerName:"<MenuMachineProvider />",strict:!1}),Ve=t=>{const[n,s]=o.splitPresenceProps(t),[r,u]=o.createSplitProps()(s,["anchorPoint","aria-label","closeOnSelect","composite","defaultHighlightedValue","defaultOpen","highlightedValue","id","ids","loopFocus","navigate","onEscapeKeyDown","onFocusOutside","onHighlightChange","onInteractOutside","onOpenChange","onPointerDownOutside","onSelect","open","positioning","typeahead"]),l=d(),a=he(),{api:x,service:P}=Fe(r),M=o.usePresence(m.mergeProps({present:x.open},n));de(()=>{a&&l&&(l.setChild(P),x.setParent(a))});const f=i.useCallback(()=>l?.getTriggerItemProps(x),[x,l]);return e.jsxRuntimeExports.jsx(ge,{value:f,children:e.jsxRuntimeExports.jsx(je,{value:P,children:e.jsxRuntimeExports.jsx(Q,{value:x,children:e.jsxRuntimeExports.jsx(o.PresenceProvider,{value:M,...u})})})})},ze=t=>{const n=d(),s=he(),[r,{value:u,children:l}]=o.splitPresenceProps(t),{api:a,service:x}=u,P=o.usePresence(m.mergeProps({present:a.open},r));de(()=>{s&&n&&(n.setChild(x),a.setParent(s))});const M=i.useCallback(()=>n?.getTriggerItemProps(a),[a,n]);return e.jsxRuntimeExports.jsx(ge,{value:M,children:e.jsxRuntimeExports.jsx(je,{value:x,children:e.jsxRuntimeExports.jsx(Q,{value:a,children:e.jsxRuntimeExports.jsx(o.PresenceProvider,{value:P,children:l})})})})},Pe=i.forwardRef((t,n)=>{const s=d(),r=m.mergeProps(s.getSeparatorProps(),t);return e.jsxRuntimeExports.jsx(o.ark.hr,{...r,ref:n})});Pe.displayName="MenuSeparator";const fe=i.forwardRef((t,n)=>{const s=d(),r=o.usePresenceContext(),u=m.mergeProps({...s.getTriggerProps(),"aria-controls":r.unmounted?void 0:s.getTriggerProps()["aria-controls"]},t);return e.jsxRuntimeExports.jsx(o.ark.button,{...u,ref:n})});fe.displayName="MenuTrigger";const Re=i.forwardRef((t,n)=>{const s=Le(),r=m.mergeProps(s?.()??{},t);return e.jsxRuntimeExports.jsx(o.ark.div,{...r,ref:n})});Re.displayName="MenuTriggerItem";const{withRootProvider:Me,withContext:j}=Oe.createSlotRecipeContext({key:"menu"});Me(ze);const We=Me(Ve,{defaultProps:{lazyMount:!0,unmountOnExit:!0}}),De=j(fe,"trigger",{forwardAsChild:!0});j(se,"contextTrigger",{forwardAsChild:!0});const He=j(pe,"positioner",{forwardAsChild:!0});j(Pe,"separator",{forwardAsChild:!0});const Ke=j(te,"content",{forwardAsChild:!0}),Je=j(X,"arrowTip",{forwardAsChild:!0});j(U,"arrow",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(Je,{})}});j(ne,"indicator",{forwardAsChild:!0});const Qe=j(ie,"itemGroup",{forwardAsChild:!0}),Ue=j(ce,"itemGroupLabel",{forwardAsChild:!0}),Xe=j(re,"item",{forwardAsChild:!0}),Ye=j(Re,"item",{forwardAsChild:!0});j(le,"itemText",{forwardAsChild:!0});j("kbd","itemCommand");j(ae,"itemIndicator",{forwardAsChild:!0,defaultProps:{children:e.jsxRuntimeExports.jsx(Be.CheckIcon,{boxSize:"4"})}});const Ze=j(ee,"item",{forwardAsChild:!0});j(me,"itemGroup",{forwardAsChild:!0});j(xe,"item",{forwardAsChild:!0});const et=({hideCaret:t=!1,size:n="md",text:s,textProps:r,variant:u,...l})=>e.jsxRuntimeExports.jsxs(_.Button,{className:"Menu__Button","data-testid":"kibble-menu-button",size:n,variant:u,...l,children:[s&&e.jsxRuntimeExports.jsx(y.WrappedText,{className:"Menu__ButtonText","data-testid":"kibble-menu-button-text",fontWeight:"semibold",size:n,color:u?"inherit":r?.color||"text.contrast",truncate:!0,...r,children:s}),!t&&e.jsxRuntimeExports.jsx(E.Flex,{className:"Menu__ButtonCaret","data-testid":"kibble-menu-button-caret",children:e.jsxRuntimeExports.jsx(K.Icon,{name:"chevronDown",size:n==="lg"?"sm":"xs"})})]}),tt=({label:t,leftElement:n,onSelect:s,shouldTruncateText:r,type:u="default",variant:l,...a})=>{const x=i.useCallback(()=>{s&&s(a.value)},[s,a.value]);if(u==="submenu")return e.jsxRuntimeExports.jsx(Ce,{submenuTrigger:e.jsxRuntimeExports.jsxs(Ye,{className:"Menu__Item--Submenu","data-testid":"kibble-menu-item-submenu",justifyContent:"space-between",children:[e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:l}),e.jsxRuntimeExports.jsx(K.Icon,{name:"chevronRight",size:"sm"})]}),...a});if(u==="checkbox"){const{checked:P,value:M,...f}=a;return e.jsxRuntimeExports.jsxs(Ze,{className:"Menu__Item--Checkbox","data-testid":"kibble-menu-item-checkbox",value:M,checked:!!P,onCheckedChange:x,closeOnSelect:a.closeOnSelect||!1,gap:3,...f,children:[e.jsxRuntimeExports.jsx(J.WrappedCheckbox,{checked:!!P,size:"md"}),e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:l})]})}if(u==="default"){const{selected:P,value:M,...f}=a;return e.jsxRuntimeExports.jsx(Xe,{className:"Menu__Item--Default","data-testid":"kibble-menu-item-default",value:M,onSelect:x,...P&&{bgColor:"background.secondaryAlpha.hover"},...f,children:e.jsxRuntimeExports.jsx(T,{label:t,leftElement:n,shouldTruncateText:r,variant:P?"info":l})})}return e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{})},T=({label:t,leftElement:n,shouldTruncateText:s,variant:r})=>e.jsxRuntimeExports.jsxs(E.Flex,{className:"Menu__ItemLabel",alignItems:"center",gap:3,children:[n,typeof t=="string"?e.jsxRuntimeExports.jsx(y.WrappedText,{size:"sm",truncated:s,variant:r,children:t}):t]}),W=({groupName:t,hasSelectedItems:n=!1,onToggle:s})=>{const r=!!t;return e.jsxRuntimeExports.jsx(k.Box,{className:"Menu__ToggleButtons","data-testid":"kibble-menu-toggle-buttons",...r?{textAlign:"right",w:"50%"}:{mt:2},children:r?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:n?e.jsxRuntimeExports.jsx(H,{hasSelectedItems:n,groupName:t,onToggle:s}):e.jsxRuntimeExports.jsx(D,{groupName:t,onToggle:s})}):e.jsxRuntimeExports.jsxs(E.Flex,{justifyContent:"space-between",children:[e.jsxRuntimeExports.jsx(D,{groupName:t,onToggle:s}),e.jsxRuntimeExports.jsx(H,{hasSelectedItems:n,groupName:t,onToggle:s})]})})},D=({groupName:t,onToggle:n})=>e.jsxRuntimeExports.jsx(_.Button,{variant:"ghost",size:"xs",onClick:()=>n({groupName:t,clear:!1}),children:"Select All"}),H=({hasSelectedItems:t,groupName:n,onToggle:s})=>e.jsxRuntimeExports.jsx(_.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",disabled:!t,onClick:()=>s({groupName:n,clear:!0}),children:"Clear All"}),Ce=({buttonProps:t,listProps:n,portalled:s=!1,submenuTrigger:r,...u})=>{const{canSelectAll:l,canSelectGroups:a,emptyStateText:x="No results found",loading:P,maxH:M="480px",menuItems:f=[],minW:Ie="240px",onSearch:w,onSelect:G,onSelectAll:O,searchable:B,searchPlaceholder:ve="Search...",shouldTruncateText:Ee,...be}=n||{},[ke,S]=i.useState(""),[q,N]=i.useState(f),$=i.useMemo(()=>{const c={};return q?.forEach(p=>{const h=p.groupLabel||"default",g=p.type==="checkbox"?"checkbox":"default";c[h]||(c[h]={}),c[h][g]||(c[h][g]=[]),c[h][g].push(p)}),c},[q]),F=i.useMemo(()=>Object.entries($),[$]),I=i.useMemo(()=>f?.filter(c=>c.type==="checkbox")||[],[f]),we=i.useMemo(()=>(I?.filter(p=>p.checked)||[]).map(p=>p.value),[I]),R=J.useCheckboxGroup({defaultValue:we}),L=i.useCallback(c=>{const p=c.target.value;if(S(p),w)w(c);else if(p===""||!p)N(f);else{const h=f.filter(g=>!!(typeof g.label=="string"?g.label:g.valueText)?.toLowerCase().includes(p.toLowerCase()));N(h)}},[f,w]),V=i.useCallback(({groupName:c,clear:p})=>{let h=[];if(c){const g=I.filter(C=>C.groupLabel===c).map(C=>C.value);h=p?R.value.filter(C=>!g.includes(C)):[...R.value,...g]}else h=p?[]:I.map(g=>g.value);O?.(h),R.setValue(h)},[I,O,R]),Se=i.useCallback(c=>{c.onSelect?.(c.value);const p=R.value,h=R.isChecked(c.value);G?.(c.value,h?p.filter(g=>g!==c.value):[...p,c.value]),c.type==="checkbox"&&R.toggleValue(c.value)},[G,R]),Ne=i.useCallback(c=>{c||(S(""),N(f))},[f]);return e.jsxRuntimeExports.jsxs(We,{...u,onOpenChange:c=>{Ne(c.open),u.onOpenChange?.(c)},children:[r||e.jsxRuntimeExports.jsx(De,{asChild:!0,className:"Menu__Trigger","data-testid":"kibble-menu-trigger",children:e.jsxRuntimeExports.jsx(et,{...t})}),e.jsxRuntimeExports.jsx(o.Portal,{disabled:!s,children:e.jsxRuntimeExports.jsx(He,{className:"Menu","data-testid":"kibble-menu",children:e.jsxRuntimeExports.jsxs(Ke,{className:"Menu__Content","data-testid":"kibble-menu-content",maxH:M,minW:Ie,...be,children:[(B||l)&&e.jsxRuntimeExports.jsxs(k.Box,{className:"Menu__Header","data-testid":"kibble-menu-header",m:"0 12px 8px",children:[B&&e.jsxRuntimeExports.jsx(Ae.WrappedTextInput,{className:"Menu__SearchBar","data-testid":"kibble-menu-search-bar",placeholder:ve,onChange:L,size:"sm",value:ke,clearable:!0,onClear:()=>{S(""),L({target:{value:""}})},formControlStyle:{mt:1}}),l&&!!I.length&&e.jsxRuntimeExports.jsx(W,{onToggle:V,hasSelectedItems:!!R.value.length})]}),P?e.jsxRuntimeExports.jsx(E.Flex,{justifyContent:"center",py:5,children:e.jsxRuntimeExports.jsx(Ge.Spinner,{})}):e.jsxRuntimeExports.jsx(k.Box,{className:"Menu__List","data-testid":"kibble-menu-list",children:F.length?e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:F.map(([c,p])=>{const h=c==="default",g=Object.keys(p),C=h?$e.default.Fragment:Qe,Te=p.checkbox?.map(v=>v.value)?.some(v=>R.value.includes(v));return e.jsxRuntimeExports.jsxs(C,{children:[!h&&e.jsxRuntimeExports.jsx(Ue,{children:e.jsxRuntimeExports.jsxs(E.Flex,{alignItems:"center",justifyContent:"space-between",children:[c,a&&g.includes("checkbox")&&e.jsxRuntimeExports.jsx(W,{groupName:c,onToggle:V,hasSelectedItems:Te})]})}),Object.entries(p).map(([v,_e])=>_e.map((b,ye)=>e.jsxRuntimeExports.jsx(tt,{...b,shouldTruncateText:Ee,...b.type==="checkbox"&&{checked:R.isChecked(b.value)},onSelect:()=>Se(b)},`menu-item-${c}-${v}-${ye}`)))]},c)})}):e.jsxRuntimeExports.jsx(e.jsxRuntimeExports.Fragment,{children:e.jsxRuntimeExports.jsx(k.Box,{textAlign:"center",p:3,children:e.jsxRuntimeExports.jsx(y.WrappedText,{size:"sm",variant:"subtle",children:x})})})})]})})})]})};exports.Menu=Ce;
|
|
2
|
+
//# sourceMappingURL=menu.component-BsPmuH77.js.map
|