@televet/kibble-ui 4.0.0-beta.21 → 4.0.0-beta.25
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/README.md +13 -35
- package/dist/chunks/IconLogo-BurrDDT6.js +62 -0
- package/dist/chunks/IconLogo-BurrDDT6.js.map +1 -0
- package/dist/chunks/IconLogo-Dd5mp5A_.js +2 -0
- package/dist/chunks/IconLogo-Dd5mp5A_.js.map +1 -0
- package/dist/chunks/alert.component-BSUteYep.js +2 -0
- package/dist/chunks/alert.component-BSUteYep.js.map +1 -0
- package/dist/chunks/alert.component-CJmYmkOs.js +182 -0
- package/dist/chunks/alert.component-CJmYmkOs.js.map +1 -0
- package/dist/chunks/alert.types-JdzSuSVO.js +5 -0
- package/dist/chunks/alert.types-JdzSuSVO.js.map +1 -0
- package/dist/chunks/alert.types-R_9yno9e.js +2 -0
- package/dist/chunks/alert.types-R_9yno9e.js.map +1 -0
- package/dist/chunks/{avatar.component-DLqm7tQt.js → avatar.component-Bq-iwROm.js} +16 -16
- package/dist/chunks/avatar.component-Bq-iwROm.js.map +1 -0
- package/dist/chunks/{avatar.component-B14bRpeL.js → avatar.component-DVcDtvDR.js} +2 -2
- package/dist/chunks/avatar.component-DVcDtvDR.js.map +1 -0
- package/dist/chunks/{avatarGroup.component-4kVezqP-.js → avatarGroup.component-CXilO0oZ.js} +2 -2
- package/dist/chunks/{avatarGroup.component-4kVezqP-.js.map → avatarGroup.component-CXilO0oZ.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-DIDIECGK.js → avatarGroup.component-DCfOKiyR.js} +16 -16
- package/dist/chunks/{avatarGroup.component-DIDIECGK.js.map → avatarGroup.component-DCfOKiyR.js.map} +1 -1
- package/dist/chunks/{button.component-CA9bIFbq.js → button.component-BZEZZa7D.js} +7 -7
- package/dist/chunks/{button.component-CA9bIFbq.js.map → button.component-BZEZZa7D.js.map} +1 -1
- package/dist/chunks/{button.component-DDjwI0xh.js → button.component-DnWrqGc4.js} +2 -2
- package/dist/chunks/{button.component-DDjwI0xh.js.map → button.component-DnWrqGc4.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-DKnPmFIM.js → buttonGroup.component-DQswSQ0l.js} +2 -2
- package/dist/chunks/{buttonGroup.component-DKnPmFIM.js.map → buttonGroup.component-DQswSQ0l.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-BLRJnRJW.js → buttonGroup.component-toHK3QbU.js} +12 -12
- package/dist/chunks/{buttonGroup.component-BLRJnRJW.js.map → buttonGroup.component-toHK3QbU.js.map} +1 -1
- package/dist/chunks/card.component-1JqO34tC.js +2 -0
- package/dist/chunks/card.component-1JqO34tC.js.map +1 -0
- package/dist/chunks/card.component-CI7pt6L8.js +59 -0
- package/dist/chunks/card.component-CI7pt6L8.js.map +1 -0
- package/dist/chunks/card.types-Cixp7ouC.js +5 -0
- package/dist/chunks/card.types-Cixp7ouC.js.map +1 -0
- package/dist/chunks/card.types-MvkQTTZF.js +2 -0
- package/dist/chunks/card.types-MvkQTTZF.js.map +1 -0
- package/dist/chunks/chakra-BHjfByoV.js +5 -0
- package/dist/chunks/chakra-BHjfByoV.js.map +1 -0
- package/dist/chunks/{chakra-BqBkjpvZ.js → chakra-DEgvQPwa.js} +4066 -2306
- package/dist/chunks/chakra-DEgvQPwa.js.map +1 -0
- package/dist/chunks/{characterCounter.component-BXxyn_IB.js → characterCounter.component-0-1clNqF.js} +2 -2
- package/dist/chunks/{characterCounter.component-BXxyn_IB.js.map → characterCounter.component-0-1clNqF.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-DhiMcztY.js → characterCounter.component-BhtK0SKA.js} +9 -9
- package/dist/chunks/{characterCounter.component-DhiMcztY.js.map → characterCounter.component-BhtK0SKA.js.map} +1 -1
- package/dist/chunks/{checkbox.component-BnNl7j1h.js → checkbox.component-Kn48K9JS.js} +2 -2
- package/dist/chunks/{checkbox.component-BnNl7j1h.js.map → checkbox.component-Kn48K9JS.js.map} +1 -1
- package/dist/chunks/{checkbox.component-BN9GeeiB.js → checkbox.component-X_SD-4T8.js} +22 -22
- package/dist/chunks/{checkbox.component-BN9GeeiB.js.map → checkbox.component-X_SD-4T8.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-DNwf69Ss.js → checkboxGroup.component-COD9t2JC.js} +16 -16
- package/dist/chunks/{checkboxGroup.component-DNwf69Ss.js.map → checkboxGroup.component-COD9t2JC.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-CMSLo_U5.js → checkboxGroup.component-CYr1-Aci.js} +2 -2
- package/dist/chunks/{checkboxGroup.component-CMSLo_U5.js.map → checkboxGroup.component-CYr1-Aci.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-CAKvEh_2.js → conversationCard.component-DjbHIWpM.js} +20 -20
- package/dist/chunks/conversationCard.component-DjbHIWpM.js.map +1 -0
- package/dist/chunks/{conversationCard.component-D56k22in.js → conversationCard.component-eWR68X0w.js} +2 -2
- package/dist/chunks/conversationCard.component-eWR68X0w.js.map +1 -0
- package/dist/chunks/{date-1NFv48Qu.js → date-CQ_hzmOK.js} +144 -144
- package/dist/chunks/date-CQ_hzmOK.js.map +1 -0
- package/dist/chunks/date-Dn1AgqaP.js +15 -0
- package/dist/chunks/date-Dn1AgqaP.js.map +1 -0
- package/dist/chunks/{datePicker.component-ZmMJoE3c.js → datePicker.component-C7TjBUEe.js} +2 -2
- package/dist/chunks/{datePicker.component-ZmMJoE3c.js.map → datePicker.component-C7TjBUEe.js.map} +1 -1
- package/dist/chunks/{datePicker.component-D1WtrZJd.js → datePicker.component-CLJT4YOv.js} +71 -71
- package/dist/chunks/{datePicker.component-D1WtrZJd.js.map → datePicker.component-CLJT4YOv.js.map} +1 -1
- package/dist/chunks/{dnd-DDR6viHX.js → dnd-B2xPQNV1.js} +2 -2
- package/dist/chunks/{dnd-DDR6viHX.js.map → dnd-B2xPQNV1.js.map} +1 -1
- package/dist/chunks/{dnd-4IMP_kRN.js → dnd-Whsk3gIz.js} +2 -2
- package/dist/chunks/{dnd-4IMP_kRN.js.map → dnd-Whsk3gIz.js.map} +1 -1
- package/dist/chunks/heading.component-BrXfTzEU.js +10 -0
- package/dist/chunks/{heading.component-B8niLTxz.js.map → heading.component-BrXfTzEU.js.map} +1 -1
- package/dist/chunks/{heading.component-CExbjSBi.js → heading.component-C92ZA4Md.js} +2 -2
- package/dist/chunks/{heading.component-CExbjSBi.js.map → heading.component-C92ZA4Md.js.map} +1 -1
- package/dist/chunks/{icon.component-w5bWbfVU.js → icon.component-DOan8Ddb.js} +6 -6
- package/dist/chunks/{icon.component-w5bWbfVU.js.map → icon.component-DOan8Ddb.js.map} +1 -1
- package/dist/chunks/{icon.component-CzjzLiO_.js → icon.component-Drw3LiG5.js} +2 -2
- package/dist/chunks/{icon.component-CzjzLiO_.js.map → icon.component-Drw3LiG5.js.map} +1 -1
- package/dist/chunks/{index-CloRZB5L.js → index-T4HRvnPT.js} +3 -3
- package/dist/chunks/{index-CloRZB5L.js.map → index-T4HRvnPT.js.map} +1 -1
- package/dist/chunks/{index-BlB7iuVg.js → index-tw4s2PIA.js} +2 -2
- package/dist/chunks/{index-BlB7iuVg.js.map → index-tw4s2PIA.js.map} +1 -1
- package/dist/chunks/{link.component-Cmdnhc-F.js → link.component-BV-T_tzT.js} +2 -2
- package/dist/chunks/{link.component-Cmdnhc-F.js.map → link.component-BV-T_tzT.js.map} +1 -1
- package/dist/chunks/{link.component-DGC1Xu5B.js → link.component-DbXsouSQ.js} +15 -15
- package/dist/chunks/{link.component-DGC1Xu5B.js.map → link.component-DbXsouSQ.js.map} +1 -1
- package/dist/chunks/logo.types-BRPr2KIZ.js +74 -0
- package/dist/chunks/logo.types-BRPr2KIZ.js.map +1 -0
- package/dist/chunks/logo.types-DPrISgm0.js +2 -0
- package/dist/chunks/logo.types-DPrISgm0.js.map +1 -0
- package/dist/chunks/{menu.component-BCRZgrRr.js → menu.component-BsNXuoLB.js} +2 -2
- package/dist/chunks/{menu.component-BCRZgrRr.js.map → menu.component-BsNXuoLB.js.map} +1 -1
- package/dist/chunks/{menu.component-Bscyjw7R.js → menu.component-xKsPT0Zc.js} +44 -44
- package/dist/chunks/{menu.component-Bscyjw7R.js.map → menu.component-xKsPT0Zc.js.map} +1 -1
- package/dist/chunks/{modal.types-CELCFObr.js → modal.types-Bhcd1P_H.js} +2 -2
- package/dist/chunks/{modal.types-CELCFObr.js.map → modal.types-Bhcd1P_H.js.map} +1 -1
- package/dist/chunks/{modal.types-BfXHtZ4i.js → modal.types-C7OrqSGs.js} +16 -16
- package/dist/chunks/{modal.types-BfXHtZ4i.js.map → modal.types-C7OrqSGs.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-BH6anjzq.js → notificationCounter.component-CIzFZpAS.js} +2 -2
- package/dist/chunks/{notificationCounter.component-BH6anjzq.js.map → notificationCounter.component-CIzFZpAS.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-CSuqzMTF.js → notificationCounter.component-COTswull.js} +3 -3
- package/dist/chunks/{notificationCounter.component-CSuqzMTF.js.map → notificationCounter.component-COTswull.js.map} +1 -1
- package/dist/chunks/pinInput.types-10zyeINr.js +64 -0
- package/dist/chunks/pinInput.types-10zyeINr.js.map +1 -0
- package/dist/chunks/pinInput.types-BFZZszU7.js +2 -0
- package/dist/chunks/pinInput.types-BFZZszU7.js.map +1 -0
- package/dist/chunks/{popover.component-CzKeBedr.js → popover.component-BnvmpVHq.js} +2 -2
- package/dist/chunks/{popover.component-CzKeBedr.js.map → popover.component-BnvmpVHq.js.map} +1 -1
- package/dist/chunks/{popover.component-CW5KsTYh.js → popover.component-GcAhSDeI.js} +19 -19
- package/dist/chunks/{popover.component-CW5KsTYh.js.map → popover.component-GcAhSDeI.js.map} +1 -1
- package/dist/chunks/{popover.recipe-Pfz3evii.js → popover.recipe-DDPfFy3l.js} +2 -2
- package/dist/chunks/{popover.recipe-Pfz3evii.js.map → popover.recipe-DDPfFy3l.js.map} +1 -1
- package/dist/chunks/{popover.recipe-DnCuZJd3.js → popover.recipe-E6-zKuvF.js} +2 -2
- package/dist/chunks/{popover.recipe-DnCuZJd3.js.map → popover.recipe-E6-zKuvF.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-DP9JgY1J.js → radioGroup.component-BtxjtKro.js} +2 -2
- package/dist/chunks/{radioGroup.component-DP9JgY1J.js.map → radioGroup.component-BtxjtKro.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-kn8czn3N.js → radioGroup.component-ByokG1ms.js} +18 -18
- package/dist/chunks/{radioGroup.component-kn8czn3N.js.map → radioGroup.component-ByokG1ms.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-D0FX80wA.js → ratingDots.component-Bhh27z7J.js} +5 -5
- package/dist/chunks/{ratingDots.component-D0FX80wA.js.map → ratingDots.component-Bhh27z7J.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-D5-xY2db.js → ratingDots.component-CBlKmrKG.js} +2 -2
- package/dist/chunks/{ratingDots.component-D5-xY2db.js.map → ratingDots.component-CBlKmrKG.js.map} +1 -1
- package/dist/chunks/{select.component-CQQ4z--7.js → select.component-CKo_vUjT.js} +2 -2
- package/dist/chunks/{select.component-CQQ4z--7.js.map → select.component-CKo_vUjT.js.map} +1 -1
- package/dist/chunks/{select.component-CqvAx7vP.js → select.component-vzYNxpKs.js} +41 -41
- package/dist/chunks/{select.component-CqvAx7vP.js.map → select.component-vzYNxpKs.js.map} +1 -1
- package/dist/chunks/{sortableList.component-DcjKdsDK.js → sortableList.component-C_kBtF5S.js} +2 -2
- package/dist/chunks/{sortableList.component-DcjKdsDK.js.map → sortableList.component-C_kBtF5S.js.map} +1 -1
- package/dist/chunks/{sortableList.component-_DXfCTac.js → sortableList.component-Cf0JaJ_t.js} +18 -18
- package/dist/chunks/{sortableList.component-_DXfCTac.js.map → sortableList.component-Cf0JaJ_t.js.map} +1 -1
- package/dist/chunks/{spinner.component-CUuidnSK.js → spinner.component-BSDKzlvm.js} +2 -2
- package/dist/chunks/{spinner.component-CUuidnSK.js.map → spinner.component-BSDKzlvm.js.map} +1 -1
- package/dist/chunks/{spinner.component-D5tkelNc.js → spinner.component-D3If6khz.js} +6 -6
- package/dist/chunks/{spinner.component-D5tkelNc.js.map → spinner.component-D3If6khz.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-ByQoyukM.js → styledAvatar.types-CpzTd2Jl.js} +3 -3
- package/dist/chunks/styledAvatar.types-CpzTd2Jl.js.map +1 -0
- package/dist/chunks/{styledAvatar.types-CpU5SOAS.js → styledAvatar.types-D8JOpljn.js} +2 -2
- package/dist/chunks/styledAvatar.types-D8JOpljn.js.map +1 -0
- package/dist/chunks/{switch.component-diomUHZW.js → switch.component-BkC3TpSW.js} +2 -2
- package/dist/chunks/{switch.component-diomUHZW.js.map → switch.component-BkC3TpSW.js.map} +1 -1
- package/dist/chunks/{switch.component-C9WMHurt.js → switch.component-D8hb9FSO.js} +6 -6
- package/dist/chunks/{switch.component-C9WMHurt.js.map → switch.component-D8hb9FSO.js.map} +1 -1
- package/dist/chunks/{tabs.component-Bp1Lu8Xb.js → tabs.component-BjyZZY1w.js} +6 -6
- package/dist/chunks/{tabs.component-Bp1Lu8Xb.js.map → tabs.component-BjyZZY1w.js.map} +1 -1
- package/dist/chunks/{tabs.component-D6QT597P.js → tabs.component-DF92o83d.js} +2 -2
- package/dist/chunks/{tabs.component-D6QT597P.js.map → tabs.component-DF92o83d.js.map} +1 -1
- package/dist/chunks/{tag.component-BjOfy3Bw.js → tag.component-CHwt3mTK.js} +2 -2
- package/dist/chunks/{tag.component-BjOfy3Bw.js.map → tag.component-CHwt3mTK.js.map} +1 -1
- package/dist/chunks/{tag.component-A__B03TA.js → tag.component-DRL_uBU8.js} +3 -3
- package/dist/chunks/{tag.component-A__B03TA.js.map → tag.component-DRL_uBU8.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-BKnmbWil.js → tagBlock.component-S9-bfH87.js} +2 -2
- package/dist/chunks/tagBlock.component-S9-bfH87.js.map +1 -0
- package/dist/chunks/{tagBlock.component-B99Qzj2K.js → tagBlock.component-nox0ltrv.js} +9 -9
- package/dist/chunks/tagBlock.component-nox0ltrv.js.map +1 -0
- package/dist/chunks/text.component-B1g7jaUt.js +10 -0
- package/dist/chunks/{text.component-XYjOAc2s.js.map → text.component-B1g7jaUt.js.map} +1 -1
- package/dist/chunks/{text.component-CBa_saMP.js → text.component-MDGpqA76.js} +2 -2
- package/dist/chunks/{text.component-CBa_saMP.js.map → text.component-MDGpqA76.js.map} +1 -1
- package/dist/chunks/{textInput.component-K4f7h4pP.js → textInput.component-CeMv8ruX.js} +13 -13
- package/dist/chunks/{textInput.component-K4f7h4pP.js.map → textInput.component-CeMv8ruX.js.map} +1 -1
- package/dist/chunks/{textInput.component-BalBo9uP.js → textInput.component-DIc2KQit.js} +2 -2
- package/dist/chunks/{textInput.component-BalBo9uP.js.map → textInput.component-DIc2KQit.js.map} +1 -1
- package/dist/chunks/{textarea.component-Cmbax8lT.js → textarea.component-BxiOP655.js} +12 -12
- package/dist/chunks/{textarea.component-Cmbax8lT.js.map → textarea.component-BxiOP655.js.map} +1 -1
- package/dist/chunks/{textarea.component-8tjcO0T7.js → textarea.component-CvCJMMjE.js} +2 -2
- package/dist/chunks/{textarea.component-8tjcO0T7.js.map → textarea.component-CvCJMMjE.js.map} +1 -1
- package/dist/chunks/theme.provider-CDBx4ruC.js +24 -0
- package/dist/chunks/theme.provider-CDBx4ruC.js.map +1 -0
- package/dist/chunks/theme.provider-tNFKZLVb.js +2681 -0
- package/dist/chunks/theme.provider-tNFKZLVb.js.map +1 -0
- package/dist/chunks/{timePicker.component-BwYdnFmw.js → timePicker.component-C3BvCG9H.js} +2 -2
- package/dist/chunks/{timePicker.component-BwYdnFmw.js.map → timePicker.component-C3BvCG9H.js.map} +1 -1
- package/dist/chunks/{timePicker.component-DGKUi5P9.js → timePicker.component-R19FX4-n.js} +23 -23
- package/dist/chunks/{timePicker.component-DGKUi5P9.js.map → timePicker.component-R19FX4-n.js.map} +1 -1
- package/dist/chunks/{timeRange.component-BhDFpXK-.js → timeRange.component-BXHsAP2P.js} +2 -2
- package/dist/chunks/{timeRange.component-BhDFpXK-.js.map → timeRange.component-BXHsAP2P.js.map} +1 -1
- package/dist/chunks/timeRange.component-D5-0fc2e.js +17 -0
- package/dist/chunks/{timeRange.component-uYrO4YEs.js.map → timeRange.component-D5-0fc2e.js.map} +1 -1
- package/dist/chunks/{timestamp.component-D764INLm.js → timestamp.component-7z9zT8EN.js} +5 -5
- package/dist/chunks/timestamp.component-7z9zT8EN.js.map +1 -0
- package/dist/chunks/{timestamp.component-CuqY4euh.js → timestamp.component-X_D71fgZ.js} +2 -2
- package/dist/chunks/timestamp.component-X_D71fgZ.js.map +1 -0
- package/dist/chunks/toaster.records-Dm3AFmL1.js +2 -0
- package/dist/chunks/toaster.records-Dm3AFmL1.js.map +1 -0
- package/dist/chunks/toaster.records-GZYhSv5r.js +47 -0
- package/dist/chunks/toaster.records-GZYhSv5r.js.map +1 -0
- package/dist/chunks/{tooltip.component-qWFa28S5.js → tooltip.component-BoZP4UV7.js} +2 -2
- package/dist/chunks/{tooltip.component-qWFa28S5.js.map → tooltip.component-BoZP4UV7.js.map} +1 -1
- package/dist/chunks/{tooltip.component-C3v2m2T2.js → tooltip.component-ZBmhLLNH.js} +10 -10
- package/dist/chunks/{tooltip.component-C3v2m2T2.js.map → tooltip.component-ZBmhLLNH.js.map} +1 -1
- package/dist/chunks/vendor-CRIhG-7s.js +21518 -0
- package/dist/chunks/vendor-CRIhG-7s.js.map +1 -0
- package/dist/chunks/vendor-DcKGwQlH.js +64 -0
- package/dist/chunks/vendor-DcKGwQlH.js.map +1 -0
- package/dist/chunks/{withFormControl-CDQGc9aO.js → withFormControl-BCyb1yXC.js} +22 -22
- package/dist/chunks/{withFormControl-CDQGc9aO.js.map → withFormControl-BCyb1yXC.js.map} +1 -1
- package/dist/chunks/{withFormControl-BJSHfbF_.js → withFormControl-BJIa-ZxM.js} +2 -2
- package/dist/chunks/{withFormControl-BJSHfbF_.js.map → withFormControl-BJIa-ZxM.js.map} +1 -1
- package/dist/chunks/{withTruncation-C2xFKhgB.js → withTruncation-C4IBRfqV.js} +4 -4
- package/dist/chunks/{withTruncation-C2xFKhgB.js.map → withTruncation-C4IBRfqV.js.map} +1 -1
- package/dist/chunks/{withTruncation-BskZBBVs.js → withTruncation-DZqJYnSw.js} +2 -2
- package/dist/chunks/{withTruncation-BskZBBVs.js.map → withTruncation-DZqJYnSw.js.map} +1 -1
- package/dist/cjs/chakra.cjs +2 -0
- package/dist/cjs/chakra.cjs.map +1 -0
- package/dist/cjs/cli/postinstall.cjs +1 -1
- package/dist/cjs/cli/postinstall.cjs.map +1 -1
- package/dist/cjs/components/Alert.cjs +1 -1
- package/dist/cjs/components/Avatar.cjs +1 -1
- package/dist/cjs/components/AvatarGroup.cjs +1 -1
- package/dist/cjs/components/Button.cjs +1 -1
- package/dist/cjs/components/ButtonGroup.cjs +1 -1
- package/dist/cjs/components/Card.cjs +1 -1
- package/dist/cjs/components/Card.cjs.map +1 -1
- package/dist/cjs/components/CharacterCounter.cjs +1 -1
- package/dist/cjs/components/Checkbox.cjs +1 -1
- package/dist/cjs/components/CheckboxGroup.cjs +1 -1
- package/dist/cjs/{patterns → components}/ConversationCard.cjs +1 -1
- package/dist/cjs/components/DatePicker.cjs +1 -1
- package/dist/cjs/components/Divider.cjs +2 -0
- package/dist/cjs/components/Divider.cjs.map +1 -0
- package/dist/cjs/components/Heading.cjs +1 -1
- package/dist/cjs/components/Icon/generated.cjs +1 -1
- package/dist/cjs/components/Icon.cjs +1 -1
- package/dist/cjs/components/Link.cjs +1 -1
- package/dist/cjs/components/Logo/generated.cjs +2 -0
- package/dist/cjs/components/Logo/generated.cjs.map +1 -0
- package/dist/cjs/components/Logo.cjs +2 -0
- package/dist/cjs/components/Logo.cjs.map +1 -0
- package/dist/cjs/components/Menu.cjs +1 -1
- package/dist/cjs/components/Modal.cjs +1 -1
- package/dist/cjs/components/NotificationCounter.cjs +1 -1
- package/dist/cjs/components/Picture.cjs +1 -1
- package/dist/cjs/components/PinInput.cjs +2 -0
- package/dist/cjs/components/PinInput.cjs.map +1 -0
- package/dist/cjs/components/Popover.cjs +1 -1
- package/dist/cjs/components/RadioGroup.cjs +1 -1
- package/dist/cjs/components/RatingDots.cjs +1 -1
- package/dist/cjs/components/Select.cjs +1 -1
- package/dist/cjs/components/SortableList.cjs +1 -1
- package/dist/cjs/components/Spinner.cjs +1 -1
- package/dist/cjs/{patterns → components}/StyledAvatar.cjs +1 -1
- package/dist/cjs/components/Swatch.cjs +1 -1
- package/dist/cjs/components/Switch.cjs +1 -1
- package/dist/cjs/components/Tabs.cjs +1 -1
- package/dist/cjs/components/Tag.cjs +1 -1
- package/dist/cjs/{patterns → components}/TagBlock.cjs +1 -1
- package/dist/cjs/components/Text.cjs +1 -1
- package/dist/cjs/components/TextInput.cjs +1 -1
- package/dist/cjs/components/Textarea.cjs +1 -1
- package/dist/cjs/components/TimePicker.cjs +1 -1
- package/dist/cjs/components/TimeRange.cjs +1 -1
- package/dist/cjs/{patterns → components}/Timestamp.cjs +1 -1
- package/dist/cjs/components/Toast.cjs +2 -0
- package/dist/cjs/components/Toast.cjs.map +1 -0
- package/dist/cjs/components/Tooltip.cjs +1 -1
- package/dist/cjs/components.cjs +1 -1
- package/dist/cjs/hocs.cjs +1 -1
- package/dist/cjs/hooks.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/shared.cjs +2 -0
- package/dist/cjs/shared.cjs.map +1 -0
- package/dist/cjs/theme/tokens/blurs.cjs +1 -1
- package/dist/cjs/theme.cjs +1 -23
- package/dist/cjs/theme.cjs.map +1 -1
- package/dist/esm/chakra.js +69 -0
- package/dist/esm/chakra.js.map +1 -0
- package/dist/esm/cli/postinstall.js +6 -6
- package/dist/esm/cli/postinstall.js.map +1 -1
- package/dist/esm/components/Alert.js +4 -3
- package/dist/esm/components/Alert.js.map +1 -1
- package/dist/esm/components/Avatar.js +1 -1
- package/dist/esm/components/AvatarGroup.js +1 -1
- package/dist/esm/components/Button.js +1 -1
- package/dist/esm/components/ButtonGroup.js +1 -1
- package/dist/esm/components/Card.js +4 -4
- package/dist/esm/components/Card.js.map +1 -1
- package/dist/esm/components/CharacterCounter.js +1 -1
- package/dist/esm/components/Checkbox.js +1 -1
- package/dist/esm/components/CheckboxGroup.js +1 -1
- package/dist/esm/{patterns → components}/ConversationCard.js +1 -1
- package/dist/esm/components/DatePicker.js +1 -1
- package/dist/esm/components/Divider.js +27 -0
- package/dist/esm/components/Divider.js.map +1 -0
- package/dist/esm/components/Heading.js +1 -1
- package/dist/esm/components/Icon/generated.js +1 -1
- package/dist/esm/components/Icon.js +1 -1
- package/dist/esm/components/Link.js +1 -1
- package/dist/esm/components/Logo/generated.js +6 -0
- package/dist/esm/components/Logo/generated.js.map +1 -0
- package/dist/esm/components/Logo.js +7 -0
- package/dist/esm/components/Logo.js.map +1 -0
- package/dist/esm/components/Menu.js +1 -1
- package/dist/esm/components/Modal.js +1 -1
- package/dist/esm/components/NotificationCounter.js +1 -1
- package/dist/esm/components/Picture.js +3 -3
- package/dist/esm/components/PinInput.js +6 -0
- package/dist/esm/components/PinInput.js.map +1 -0
- package/dist/esm/components/Popover.js +1 -1
- package/dist/esm/components/RadioGroup.js +1 -1
- package/dist/esm/components/RatingDots.js +1 -1
- package/dist/esm/components/Select.js +1 -1
- package/dist/esm/components/SortableList.js +1 -1
- package/dist/esm/components/Spinner.js +1 -1
- package/dist/esm/{patterns → components}/StyledAvatar.js +1 -1
- package/dist/esm/components/Swatch.js +6 -6
- package/dist/esm/components/Switch.js +1 -1
- package/dist/esm/components/Tabs.js +1 -1
- package/dist/esm/components/Tag.js +1 -1
- package/dist/esm/{patterns → components}/TagBlock.js +1 -1
- package/dist/esm/components/Text.js +1 -1
- package/dist/esm/components/TextInput.js +1 -1
- package/dist/esm/components/Textarea.js +1 -1
- package/dist/esm/components/TimePicker.js +1 -1
- package/dist/esm/components/TimeRange.js +1 -1
- package/dist/esm/components/Timestamp.js +5 -0
- package/dist/esm/components/Toast.js +38 -0
- package/dist/esm/components/Toast.js.map +1 -0
- package/dist/esm/components/Tooltip.js +1 -1
- package/dist/esm/components.js +123 -98
- package/dist/esm/components.js.map +1 -1
- package/dist/esm/hocs.js +1 -1
- package/dist/esm/hooks.js +1 -1
- package/dist/esm/index.js +133 -118
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared.js +9 -0
- package/dist/esm/shared.js.map +1 -0
- package/dist/esm/theme/tokens/blurs.js +2 -1
- package/dist/esm/theme/tokens/blurs.js.map +1 -1
- package/dist/esm/theme.js +3 -2608
- package/dist/esm/theme.js.map +1 -1
- package/dist/types/chakra/index.d.ts +52 -0
- package/dist/types/chakra.d.ts +2 -0
- package/dist/types/components/Alert/alert.component.d.ts +5 -13
- package/dist/types/components/Avatar/components/AvatarBadge/avatarBadge.component.d.ts +1 -1
- package/dist/types/components/Card/card.component.d.ts +1 -1
- package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardButtons/conversationCardButtons.component.d.ts +1 -1
- package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardContent/conversationCardContent.component.d.ts +1 -1
- package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardFooter/conversationCardFooter.component.d.ts +2 -2
- package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardTags/conversationCardTags.component.d.ts +1 -1
- package/dist/types/{patterns → components}/ConversationCard/conversationCard.component.d.ts +1 -1
- package/dist/types/components/Divider/divider.component.d.ts +4 -0
- package/dist/types/components/Divider/divider.types.d.ts +6 -0
- package/dist/types/components/Divider/index.d.ts +2 -0
- package/dist/types/components/Divider.d.ts +2 -0
- package/dist/types/components/Logo/generated/FullLogo.d.ts +10 -0
- package/dist/types/components/Logo/generated/IconLogo.d.ts +10 -0
- package/dist/types/components/Logo/generated/index.d.ts +4 -0
- package/dist/types/components/Logo/generated.d.ts +2 -0
- package/dist/types/components/Logo/index.d.ts +2 -0
- package/dist/types/components/Logo/logo.component.d.ts +10 -0
- package/dist/types/components/Logo/logo.recipe.d.ts +9 -0
- package/dist/types/components/Logo/logo.types.d.ts +4 -0
- package/dist/types/components/Logo.d.ts +2 -0
- package/dist/types/components/Modal/modal.recipe.d.ts +1 -1
- package/dist/types/components/PinInput/index.d.ts +2 -0
- package/dist/types/components/PinInput/pinInput.component.d.ts +10 -0
- package/dist/types/components/PinInput/pinInput.recipe.d.ts +21 -0
- package/dist/types/components/PinInput/pinInput.records.d.ts +1 -0
- package/dist/types/components/PinInput/pinInput.types.d.ts +2 -0
- package/dist/types/components/PinInput.d.ts +2 -0
- package/dist/types/{patterns → components}/StyledAvatar/styledAvatar.component.d.ts +1 -1
- package/dist/types/{patterns → components}/TagBlock/tagBlock.component.d.ts +1 -1
- package/dist/types/{patterns → components}/Timestamp/timestamp.component.d.ts +1 -1
- package/dist/types/components/Toast/components/Toaster/toaster.component.d.ts +7 -0
- package/dist/types/components/Toast/components/Toaster/toaster.records.d.ts +10 -0
- package/dist/types/components/Toast/components/Toaster/toaster.types.d.ts +12 -0
- package/dist/types/components/Toast/index.d.ts +2 -0
- package/dist/types/components/Toast/toast.component.d.ts +3 -0
- package/dist/types/components/Toast/toast.types.d.ts +19 -0
- package/dist/types/components/Toast.d.ts +2 -0
- package/dist/types/components/index.d.ts +9 -1
- package/dist/types/index.d.ts +1 -2
- package/dist/types/shared/index.d.ts +1 -0
- package/dist/types/shared.d.ts +2 -0
- package/dist/types/theme/semanticTokens/semanticTokens.config.d.ts +4 -0
- package/dist/types/theme/semanticTokens/semanticTokens.records.d.ts +8 -0
- package/package.json +58 -46
- package/dist/chunks/alert.types-CiHDB6qK.js +0 -2
- package/dist/chunks/alert.types-CiHDB6qK.js.map +0 -1
- package/dist/chunks/alert.types-CvARYqVc.js +0 -170
- package/dist/chunks/alert.types-CvARYqVc.js.map +0 -1
- package/dist/chunks/avatar.component-B14bRpeL.js.map +0 -1
- package/dist/chunks/avatar.component-DLqm7tQt.js.map +0 -1
- package/dist/chunks/card.component-HX-4Y0j7.js +0 -51
- package/dist/chunks/card.component-HX-4Y0j7.js.map +0 -1
- package/dist/chunks/card.component-ZIoJIWVV.js +0 -2
- package/dist/chunks/card.component-ZIoJIWVV.js.map +0 -1
- package/dist/chunks/chakra-BqBkjpvZ.js.map +0 -1
- package/dist/chunks/chakra-DmF8Cxqs.js +0 -5
- package/dist/chunks/chakra-DmF8Cxqs.js.map +0 -1
- package/dist/chunks/conversationCard.component-CAKvEh_2.js.map +0 -1
- package/dist/chunks/conversationCard.component-D56k22in.js.map +0 -1
- package/dist/chunks/date-1NFv48Qu.js.map +0 -1
- package/dist/chunks/date-Du64Exix.js +0 -15
- package/dist/chunks/date-Du64Exix.js.map +0 -1
- package/dist/chunks/heading.component-B8niLTxz.js +0 -10
- package/dist/chunks/styledAvatar.types-ByQoyukM.js.map +0 -1
- package/dist/chunks/styledAvatar.types-CpU5SOAS.js.map +0 -1
- package/dist/chunks/tagBlock.component-B99Qzj2K.js.map +0 -1
- package/dist/chunks/tagBlock.component-BKnmbWil.js.map +0 -1
- package/dist/chunks/text.component-XYjOAc2s.js +0 -10
- package/dist/chunks/timeRange.component-uYrO4YEs.js +0 -17
- package/dist/chunks/timestamp.component-CuqY4euh.js.map +0 -1
- package/dist/chunks/timestamp.component-D764INLm.js.map +0 -1
- package/dist/chunks/vendor-BBfll6i3.js +0 -11757
- package/dist/chunks/vendor-BBfll6i3.js.map +0 -1
- package/dist/chunks/vendor-D-x6W6ez.js +0 -57
- package/dist/chunks/vendor-D-x6W6ez.js.map +0 -1
- package/dist/cjs/cli/configure-paths.cjs +0 -3
- package/dist/cjs/cli/configure-paths.cjs.map +0 -1
- package/dist/cjs/patterns.cjs +0 -2
- package/dist/cjs/patterns.cjs.map +0 -1
- package/dist/esm/cli/configure-paths.js +0 -48
- package/dist/esm/cli/configure-paths.js.map +0 -1
- package/dist/esm/patterns/Timestamp.js +0 -5
- package/dist/esm/patterns.js +0 -13
- package/dist/esm/patterns.js.map +0 -1
- package/dist/types/cli/configure-paths.d.ts +0 -2
- package/dist/types/patterns/index.d.ts +0 -4
- package/dist/types/patterns.d.ts +0 -2
- /package/dist/cjs/{patterns → components}/ConversationCard.cjs.map +0 -0
- /package/dist/cjs/{patterns → components}/StyledAvatar.cjs.map +0 -0
- /package/dist/cjs/{patterns → components}/TagBlock.cjs.map +0 -0
- /package/dist/cjs/{patterns → components}/Timestamp.cjs.map +0 -0
- /package/dist/esm/{patterns → components}/ConversationCard.js.map +0 -0
- /package/dist/esm/{patterns → components}/StyledAvatar.js.map +0 -0
- /package/dist/esm/{patterns → components}/TagBlock.js.map +0 -0
- /package/dist/esm/{patterns → components}/Timestamp.js.map +0 -0
- /package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardAvatarGroup/conversationCardAvatarGroup.component.d.ts +0 -0
- /package/dist/types/{patterns → components}/ConversationCard/components/ConversationCardHeader/conversationCardHeader.component.d.ts +0 -0
- /package/dist/types/{patterns → components}/ConversationCard/index.d.ts +0 -0
- /package/dist/types/{patterns → components}/ConversationCard.d.ts +0 -0
- /package/dist/types/{patterns → components}/StyledAvatar/index.d.ts +0 -0
- /package/dist/types/{patterns → components}/StyledAvatar/styledAvatar.types.d.ts +0 -0
- /package/dist/types/{patterns → components}/StyledAvatar.d.ts +0 -0
- /package/dist/types/{patterns → components}/TagBlock/index.d.ts +0 -0
- /package/dist/types/{patterns → components}/TagBlock/tagBlock.types.d.ts +0 -0
- /package/dist/types/{patterns → components}/TagBlock.d.ts +0 -0
- /package/dist/types/{patterns → components}/Timestamp/index.d.ts +0 -0
- /package/dist/types/{patterns → components}/Timestamp.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.component-BCRZgrRr.js","sources":["../../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":["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":["MenuButton","hideCaret","size","text","textProps","variant","rest","jsxs","Button","jsx","Text","Flex","Icon","MenuItem","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","useCallback","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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"}
|
|
1
|
+
{"version":3,"file":"menu.component-BsNXuoLB.js","sources":["../../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":["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":["MenuButton","hideCaret","size","text","textProps","variant","rest","jsxs","Button","jsx","Text","Flex","Icon","MenuItem","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","useCallback","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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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { x as e,
|
|
1
|
+
import { x as e, eC as te, ew as se } from "./vendor-CRIhG-7s.js";
|
|
2
2
|
import ne, { useCallback as g, useState as V, useMemo as v } from "react";
|
|
3
|
-
import { B as
|
|
4
|
-
import { I as
|
|
5
|
-
import { W as
|
|
6
|
-
import { F as k,
|
|
7
|
-
import { W as he } from "./textInput.component-
|
|
8
|
-
import { S as xe } from "./spinner.component-
|
|
9
|
-
import { W as be } from "./checkbox.component-
|
|
3
|
+
import { B as T } from "./button.component-BZEZZa7D.js";
|
|
4
|
+
import { I as P } from "./icon.component-DOan8Ddb.js";
|
|
5
|
+
import { W as B } from "./text.component-B1g7jaUt.js";
|
|
6
|
+
import { F as k, bq as ae, br as le, bs as ce, a as I, bt as re, bu as oe, bv as ue, bw as ie, bx as de, by as me } from "./chakra-DEgvQPwa.js";
|
|
7
|
+
import { W as he } from "./textInput.component-CeMv8ruX.js";
|
|
8
|
+
import { S as xe } from "./spinner.component-D3If6khz.js";
|
|
9
|
+
import { W as be } from "./checkbox.component-X_SD-4T8.js";
|
|
10
10
|
const pe = ({
|
|
11
11
|
hideCaret: n = !1,
|
|
12
12
|
size: a = "md",
|
|
@@ -15,7 +15,7 @@ const pe = ({
|
|
|
15
15
|
variant: d,
|
|
16
16
|
...m
|
|
17
17
|
}) => /* @__PURE__ */ e.jsxs(
|
|
18
|
-
|
|
18
|
+
T,
|
|
19
19
|
{
|
|
20
20
|
className: "Menu__Button",
|
|
21
21
|
"data-testid": "kibble-menu-button",
|
|
@@ -24,7 +24,7 @@ const pe = ({
|
|
|
24
24
|
...m,
|
|
25
25
|
children: [
|
|
26
26
|
l && /* @__PURE__ */ e.jsx(
|
|
27
|
-
|
|
27
|
+
B,
|
|
28
28
|
{
|
|
29
29
|
className: "Menu__ButtonText",
|
|
30
30
|
"data-testid": "kibble-menu-button-text",
|
|
@@ -41,7 +41,7 @@ const pe = ({
|
|
|
41
41
|
{
|
|
42
42
|
className: "Menu__ButtonCaret",
|
|
43
43
|
"data-testid": "kibble-menu-button-caret",
|
|
44
|
-
children: /* @__PURE__ */ e.jsx(
|
|
44
|
+
children: /* @__PURE__ */ e.jsx(P, { name: "chevronDown", size: a === "lg" ? "sm" : "xs" })
|
|
45
45
|
}
|
|
46
46
|
)
|
|
47
47
|
]
|
|
@@ -70,7 +70,7 @@ const pe = ({
|
|
|
70
70
|
justifyContent: "space-between",
|
|
71
71
|
children: [
|
|
72
72
|
/* @__PURE__ */ e.jsx(
|
|
73
|
-
|
|
73
|
+
N,
|
|
74
74
|
{
|
|
75
75
|
label: n,
|
|
76
76
|
leftElement: a,
|
|
@@ -78,7 +78,7 @@ const pe = ({
|
|
|
78
78
|
variant: m
|
|
79
79
|
}
|
|
80
80
|
),
|
|
81
|
-
/* @__PURE__ */ e.jsx(
|
|
81
|
+
/* @__PURE__ */ e.jsx(P, { name: "chevronRight", size: "sm" })
|
|
82
82
|
]
|
|
83
83
|
}
|
|
84
84
|
),
|
|
@@ -101,7 +101,7 @@ const pe = ({
|
|
|
101
101
|
children: [
|
|
102
102
|
/* @__PURE__ */ e.jsx(be, { checked: !!b, size: "md" }),
|
|
103
103
|
/* @__PURE__ */ e.jsx(
|
|
104
|
-
|
|
104
|
+
N,
|
|
105
105
|
{
|
|
106
106
|
label: n,
|
|
107
107
|
leftElement: a,
|
|
@@ -125,7 +125,7 @@ const pe = ({
|
|
|
125
125
|
...b && { bgColor: "background.secondaryAlpha.hover" },
|
|
126
126
|
...u,
|
|
127
127
|
children: /* @__PURE__ */ e.jsx(
|
|
128
|
-
|
|
128
|
+
N,
|
|
129
129
|
{
|
|
130
130
|
label: n,
|
|
131
131
|
leftElement: a,
|
|
@@ -137,14 +137,14 @@ const pe = ({
|
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
139
|
return /* @__PURE__ */ e.jsx(e.Fragment, {});
|
|
140
|
-
},
|
|
140
|
+
}, N = ({
|
|
141
141
|
label: n,
|
|
142
142
|
leftElement: a,
|
|
143
143
|
shouldTruncateText: l,
|
|
144
144
|
variant: o
|
|
145
145
|
}) => /* @__PURE__ */ e.jsxs(k, { className: "Menu__ItemLabel", alignItems: "center", gap: 3, children: [
|
|
146
146
|
a,
|
|
147
|
-
typeof n == "string" ? /* @__PURE__ */ e.jsx(
|
|
147
|
+
typeof n == "string" ? /* @__PURE__ */ e.jsx(B, { size: "sm", truncated: l, variant: o, children: n }) : n
|
|
148
148
|
] }), L = ({
|
|
149
149
|
groupName: n,
|
|
150
150
|
hasSelectedItems: a = !1,
|
|
@@ -158,16 +158,16 @@ const pe = ({
|
|
|
158
158
|
"data-testid": "kibble-menu-toggle-buttons",
|
|
159
159
|
...o ? { textAlign: "right", w: "50%" } : { mt: 2 },
|
|
160
160
|
children: o ? /* @__PURE__ */ e.jsx(e.Fragment, { children: a ? /* @__PURE__ */ e.jsx(
|
|
161
|
-
|
|
161
|
+
D,
|
|
162
162
|
{
|
|
163
163
|
hasSelectedItems: a,
|
|
164
164
|
groupName: n,
|
|
165
165
|
onToggle: l
|
|
166
166
|
}
|
|
167
|
-
) : /* @__PURE__ */ e.jsx(
|
|
168
|
-
/* @__PURE__ */ e.jsx(
|
|
167
|
+
) : /* @__PURE__ */ e.jsx($, { groupName: n, onToggle: l }) }) : /* @__PURE__ */ e.jsxs(k, { justifyContent: "space-between", children: [
|
|
168
|
+
/* @__PURE__ */ e.jsx($, { groupName: n, onToggle: l }),
|
|
169
169
|
/* @__PURE__ */ e.jsx(
|
|
170
|
-
|
|
170
|
+
D,
|
|
171
171
|
{
|
|
172
172
|
hasSelectedItems: a,
|
|
173
173
|
groupName: n,
|
|
@@ -177,23 +177,23 @@ const pe = ({
|
|
|
177
177
|
] })
|
|
178
178
|
}
|
|
179
179
|
);
|
|
180
|
-
},
|
|
180
|
+
}, $ = ({
|
|
181
181
|
groupName: n,
|
|
182
182
|
onToggle: a
|
|
183
183
|
}) => /* @__PURE__ */ e.jsx(
|
|
184
|
-
|
|
184
|
+
T,
|
|
185
185
|
{
|
|
186
186
|
variant: "ghost",
|
|
187
187
|
size: "xs",
|
|
188
188
|
onClick: () => a({ groupName: n, clear: !1 }),
|
|
189
189
|
children: "Select All"
|
|
190
190
|
}
|
|
191
|
-
),
|
|
191
|
+
), D = ({
|
|
192
192
|
hasSelectedItems: n,
|
|
193
193
|
groupName: a,
|
|
194
194
|
onToggle: l
|
|
195
195
|
}) => /* @__PURE__ */ e.jsx(
|
|
196
|
-
|
|
196
|
+
T,
|
|
197
197
|
{
|
|
198
198
|
variant: "ghostNeutral",
|
|
199
199
|
iconName: "arrowCircle",
|
|
@@ -221,21 +221,21 @@ const pe = ({
|
|
|
221
221
|
onSelect: w,
|
|
222
222
|
onSelectAll: A,
|
|
223
223
|
searchable: F,
|
|
224
|
-
searchPlaceholder:
|
|
225
|
-
shouldTruncateText:
|
|
226
|
-
...
|
|
227
|
-
} = a || {}, [
|
|
224
|
+
searchPlaceholder: q = "Search...",
|
|
225
|
+
shouldTruncateText: E,
|
|
226
|
+
...J
|
|
227
|
+
} = a || {}, [K, S] = V(""), [O, y] = V(u), W = v(() => {
|
|
228
228
|
const t = {};
|
|
229
229
|
return O?.forEach((s) => {
|
|
230
230
|
const c = s.groupLabel || "default", r = s.type === "checkbox" ? "checkbox" : "default";
|
|
231
231
|
t[c] || (t[c] = {}), t[c][r] || (t[c][r] = []), t[c][r].push(s);
|
|
232
232
|
}), t;
|
|
233
|
-
}, [O]),
|
|
233
|
+
}, [O]), G = v(() => Object.entries(W), [W]), p = v(
|
|
234
234
|
() => u?.filter((t) => t.type === "checkbox") || [],
|
|
235
235
|
[u]
|
|
236
|
-
),
|
|
237
|
-
defaultValue:
|
|
238
|
-
}),
|
|
236
|
+
), Q = v(() => (p?.filter((s) => s.checked) || []).map((s) => s.value), [p]), i = te({
|
|
237
|
+
defaultValue: Q
|
|
238
|
+
}), z = g(
|
|
239
239
|
(t) => {
|
|
240
240
|
const s = t.target.value;
|
|
241
241
|
if (S(s), _)
|
|
@@ -259,7 +259,7 @@ const pe = ({
|
|
|
259
259
|
A?.(c), i.setValue(c);
|
|
260
260
|
},
|
|
261
261
|
[p, A, i]
|
|
262
|
-
),
|
|
262
|
+
), U = g(
|
|
263
263
|
(t) => {
|
|
264
264
|
t.onSelect?.(t.value);
|
|
265
265
|
const s = i.value, c = i.isChecked(t.value);
|
|
@@ -299,7 +299,7 @@ const pe = ({
|
|
|
299
299
|
"data-testid": "kibble-menu-content",
|
|
300
300
|
maxH: f,
|
|
301
301
|
minW: H,
|
|
302
|
-
...
|
|
302
|
+
...J,
|
|
303
303
|
children: [
|
|
304
304
|
(F || m) && /* @__PURE__ */ e.jsxs(
|
|
305
305
|
I,
|
|
@@ -313,13 +313,13 @@ const pe = ({
|
|
|
313
313
|
{
|
|
314
314
|
className: "Menu__SearchBar",
|
|
315
315
|
"data-testid": "kibble-menu-search-bar",
|
|
316
|
-
placeholder:
|
|
317
|
-
onChange:
|
|
316
|
+
placeholder: q,
|
|
317
|
+
onChange: z,
|
|
318
318
|
size: "sm",
|
|
319
|
-
value:
|
|
319
|
+
value: K,
|
|
320
320
|
clearable: !0,
|
|
321
321
|
onClear: () => {
|
|
322
|
-
S(""),
|
|
322
|
+
S(""), z({
|
|
323
323
|
target: { value: "" }
|
|
324
324
|
});
|
|
325
325
|
},
|
|
@@ -336,7 +336,7 @@ const pe = ({
|
|
|
336
336
|
]
|
|
337
337
|
}
|
|
338
338
|
),
|
|
339
|
-
b ? /* @__PURE__ */ e.jsx(k, { justifyContent: "center", py: 5, children: /* @__PURE__ */ e.jsx(xe, {}) }) : /* @__PURE__ */ e.jsx(I, { className: "Menu__List", "data-testid": "kibble-menu-list", children:
|
|
339
|
+
b ? /* @__PURE__ */ e.jsx(k, { justifyContent: "center", py: 5, children: /* @__PURE__ */ e.jsx(xe, {}) }) : /* @__PURE__ */ e.jsx(I, { className: "Menu__List", "data-testid": "kibble-menu-list", children: G.length ? /* @__PURE__ */ e.jsx(e.Fragment, { children: G.map(([t, s]) => {
|
|
340
340
|
const c = t === "default", r = Object.keys(s), x = c ? ne.Fragment : de, Y = s.checkbox?.map(
|
|
341
341
|
(j) => j.value
|
|
342
342
|
)?.some(
|
|
@@ -366,17 +366,17 @@ const pe = ({
|
|
|
366
366
|
fe,
|
|
367
367
|
{
|
|
368
368
|
...C,
|
|
369
|
-
shouldTruncateText:
|
|
369
|
+
shouldTruncateText: E,
|
|
370
370
|
...C.type === "checkbox" && {
|
|
371
371
|
checked: i.isChecked(C.value)
|
|
372
372
|
},
|
|
373
|
-
onSelect: () =>
|
|
373
|
+
onSelect: () => U(C)
|
|
374
374
|
},
|
|
375
375
|
`menu-item-${t}-${j}-${ee}`
|
|
376
376
|
))
|
|
377
377
|
)
|
|
378
378
|
] }, t);
|
|
379
|
-
}) }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsx(I, { textAlign: "center", p: 3, children: /* @__PURE__ */ e.jsx(
|
|
379
|
+
}) }) : /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsx(I, { textAlign: "center", p: 3, children: /* @__PURE__ */ e.jsx(B, { size: "sm", variant: "subtle", children: M }) }) }) })
|
|
380
380
|
]
|
|
381
381
|
}
|
|
382
382
|
) }) })
|
|
@@ -387,4 +387,4 @@ const pe = ({
|
|
|
387
387
|
export {
|
|
388
388
|
je as M
|
|
389
389
|
};
|
|
390
|
-
//# sourceMappingURL=menu.component-
|
|
390
|
+
//# sourceMappingURL=menu.component-xKsPT0Zc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.component-Bscyjw7R.js","sources":["../../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":["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":["MenuButton","hideCaret","size","text","textProps","variant","rest","jsxs","Button","jsx","Text","Flex","Icon","MenuItem","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","useCallback","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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"}
|
|
1
|
+
{"version":3,"file":"menu.component-xKsPT0Zc.js","sources":["../../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":["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":["MenuButton","hideCaret","size","text","textProps","variant","rest","jsxs","Button","jsx","Text","Flex","Icon","MenuItem","label","leftElement","onSelect","shouldTruncateText","type","handleOnSelect","useCallback","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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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("./vendor-
|
|
2
|
-
//# sourceMappingURL=modal.types-
|
|
1
|
+
"use strict";const t=require("./vendor-DcKGwQlH.js"),R=require("react"),a=require("./button.component-DnWrqGc4.js"),e=require("./chakra-BHjfByoV.js"),_=require("./heading.component-C92ZA4Md.js"),k=({children:o,destructive:i,disabled:l,hideCancel:s=!1,loading:n,loadingText:r,onCancel:d,onSubmit:c,submitText:m="Submit",...x})=>t.jsxRuntimeExports.jsx(e.DialogFooter,{className:"Modal__Footer","data-testid":"kibble-modal-footer",...x,children:o||t.jsxRuntimeExports.jsxs(e.Flex,{alignItems:"center",justifyContent:"space-between",w:"100%",children:[!s&&t.jsxRuntimeExports.jsx(e.DialogActionTrigger,{asChild:!0,className:"Modal__CancelButton","data-testid":"kibble-modal-cancel-button",children:t.jsxRuntimeExports.jsx(a.Button,{variant:"tertiary",onClick:d,children:"Cancel"})}),t.jsxRuntimeExports.jsx(a.Button,{className:"Modal__SubmitButton","data-testid":"kibble-modal-submit-button",onClick:c,loading:n,loadingText:r,disabled:l,variant:i?"primaryDestructive":"primary",children:m})]})}),B=({children:o,footerProps:i,fullScreenMobile:l=!0,header:s,headerProps:n,hideCloseButton:r=!1,hideFooter:d=!1,motionPreset:c="slide-in-bottom",placement:m="center",showExpandButton:x=!1,size:u="md",trigger:j,...b})=>{const[p,g]=R.useState(!1),h=e.useBreakpointValue({base:l?"full":u,md:u});return t.jsxRuntimeExports.jsxs(e.DialogRoot,{motionPreset:c,placement:m,size:h,...b,expanded:p,children:[j&&t.jsxRuntimeExports.jsx(e.DialogTrigger,{asChild:!0,children:j}),t.jsxRuntimeExports.jsxs(t.Portal,{children:[t.jsxRuntimeExports.jsx(e.DialogBackdrop,{}),t.jsxRuntimeExports.jsx(e.DialogPositioner,{children:t.jsxRuntimeExports.jsxs(e.DialogContent,{className:"Modal","data-testid":"kibble-modal",children:[!r&&t.jsxRuntimeExports.jsx(e.DialogCloseTrigger,{asChild:!0,className:"Modal__CloseButton","data-testid":"kibble-modal-close-button",children:t.jsxRuntimeExports.jsx(a.Button,{iconName:"close",variant:"ghostNeutral"})}),x&&t.jsxRuntimeExports.jsx(a.Button,{className:"Modal__ExpandButton","data-testid":"kibble-modal-expand-button",variant:"ghostNeutral",iconName:p?"arrowsIn":"arrowsOut",position:"absolute",top:2,right:12,onClick:()=>g(E=>!E)}),t.jsxRuntimeExports.jsx(e.DialogHeader,{className:"Modal__Header","data-testid":"kibble-modal-header",children:s&&t.jsxRuntimeExports.jsx(e.DialogTitle,{className:"Modal__Title","data-testid":"kibble-modal-title",children:typeof s=="string"?t.jsxRuntimeExports.jsx(_.WrappedHeading,{size:"xl",...n,children:s}):s})}),t.jsxRuntimeExports.jsx(e.DialogBody,{className:"Modal__Body","data-testid":"kibble-modal-body",children:o}),!d&&t.jsxRuntimeExports.jsx(k,{...i})]})})]})]})},M=["xs","sm","md","lg","cover","full"],N=["center","top","bottom"],C=["inside","outside"],D=["scale","slide-in-bottom","slide-in-top","slide-in-left","slide-in-right","none"];exports.Modal=B;exports.modalMotionPresets=D;exports.modalPlacements=N;exports.modalScrollBehaviors=C;exports.modalSizes=M;
|
|
2
|
+
//# sourceMappingURL=modal.types-Bhcd1P_H.js.map
|