@televet/kibble-ui 4.0.0-beta.26 → 4.0.0-beta.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{alert.component-CJmYmkOs.js → alert.component-CScEVv6S.js} +3 -3
- package/dist/chunks/{alert.component-CJmYmkOs.js.map → alert.component-CScEVv6S.js.map} +1 -1
- package/dist/chunks/{alert.component-BSUteYep.js → alert.component-DQsPpI41.js} +2 -2
- package/dist/chunks/{alert.component-BSUteYep.js.map → alert.component-DQsPpI41.js.map} +1 -1
- package/dist/chunks/{avatar.component-DVcDtvDR.js → avatar.component--L3ECWeo.js} +2 -2
- package/dist/chunks/{avatar.component-DVcDtvDR.js.map → avatar.component--L3ECWeo.js.map} +1 -1
- package/dist/chunks/{avatar.component-Bq-iwROm.js → avatar.component-BSzwRJTm.js} +2 -2
- package/dist/chunks/{avatar.component-Bq-iwROm.js.map → avatar.component-BSzwRJTm.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-DCfOKiyR.js → avatarGroup.component-10iqUcvn.js} +2 -2
- package/dist/chunks/{avatarGroup.component-DCfOKiyR.js.map → avatarGroup.component-10iqUcvn.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-CXilO0oZ.js → avatarGroup.component-DssMfCb6.js} +2 -2
- package/dist/chunks/{avatarGroup.component-CXilO0oZ.js.map → avatarGroup.component-DssMfCb6.js.map} +1 -1
- package/dist/chunks/{button.component-BZEZZa7D.js → button.component-914arWrg.js} +2 -2
- package/dist/chunks/{button.component-BZEZZa7D.js.map → button.component-914arWrg.js.map} +1 -1
- package/dist/chunks/{button.component-DnWrqGc4.js → button.component-a_ZvSZ2C.js} +2 -2
- package/dist/chunks/{button.component-DnWrqGc4.js.map → button.component-a_ZvSZ2C.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-DQswSQ0l.js → buttonGroup.component-Cr4TYg6i.js} +2 -2
- package/dist/chunks/{buttonGroup.component-DQswSQ0l.js.map → buttonGroup.component-Cr4TYg6i.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-toHK3QbU.js → buttonGroup.component-Ds1JQmOW.js} +3 -3
- package/dist/chunks/{buttonGroup.component-toHK3QbU.js.map → buttonGroup.component-Ds1JQmOW.js.map} +1 -1
- package/dist/chunks/{checkbox.component-Kn48K9JS.js → checkbox.component-B9N58qy9.js} +2 -2
- package/dist/chunks/{checkbox.component-Kn48K9JS.js.map → checkbox.component-B9N58qy9.js.map} +1 -1
- package/dist/chunks/{checkbox.component-X_SD-4T8.js → checkbox.component-D6OR0mHM.js} +2 -2
- package/dist/chunks/{checkbox.component-X_SD-4T8.js.map → checkbox.component-D6OR0mHM.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-COD9t2JC.js → checkboxGroup.component-CPh5N1bQ.js} +3 -3
- package/dist/chunks/{checkboxGroup.component-COD9t2JC.js.map → checkboxGroup.component-CPh5N1bQ.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-CYr1-Aci.js → checkboxGroup.component-CXB6HvgU.js} +2 -2
- package/dist/chunks/{checkboxGroup.component-CYr1-Aci.js.map → checkboxGroup.component-CXB6HvgU.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-DjbHIWpM.js → conversationCard.component-CVKE1WuY.js} +5 -5
- package/dist/chunks/{conversationCard.component-DjbHIWpM.js.map → conversationCard.component-CVKE1WuY.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-eWR68X0w.js → conversationCard.component-DJJunPo8.js} +2 -2
- package/dist/chunks/{conversationCard.component-eWR68X0w.js.map → conversationCard.component-DJJunPo8.js.map} +1 -1
- package/dist/chunks/{datePicker.component-CLJT4YOv.js → datePicker.component-CVfx9iHP.js} +5 -5
- package/dist/chunks/{datePicker.component-CLJT4YOv.js.map → datePicker.component-CVfx9iHP.js.map} +1 -1
- package/dist/chunks/{datePicker.component-C7TjBUEe.js → datePicker.component-CY61BztN.js} +2 -2
- package/dist/chunks/{datePicker.component-C7TjBUEe.js.map → datePicker.component-CY61BztN.js.map} +1 -1
- package/dist/chunks/icon.component-Ci7jB4Bh.js +2 -0
- package/dist/chunks/{icon.component-Drw3LiG5.js.map → icon.component-Ci7jB4Bh.js.map} +1 -1
- package/dist/chunks/{icon.component-DOan8Ddb.js → icon.component-DuOuGzcI.js} +2 -2
- package/dist/chunks/{icon.component-DOan8Ddb.js.map → icon.component-DuOuGzcI.js.map} +1 -1
- package/dist/chunks/{link.component-BV-T_tzT.js → link.component-D2WDPwD5.js} +2 -2
- package/dist/chunks/{link.component-BV-T_tzT.js.map → link.component-D2WDPwD5.js.map} +1 -1
- package/dist/chunks/{link.component-DbXsouSQ.js → link.component-v7sWq3vs.js} +2 -2
- package/dist/chunks/{link.component-DbXsouSQ.js.map → link.component-v7sWq3vs.js.map} +1 -1
- package/dist/chunks/{menu.component-xKsPT0Zc.js → menu.component-DMelGQeh.js} +5 -5
- package/dist/chunks/{menu.component-xKsPT0Zc.js.map → menu.component-DMelGQeh.js.map} +1 -1
- package/dist/chunks/{menu.component-BsNXuoLB.js → menu.component-Dszjswev.js} +2 -2
- package/dist/chunks/{menu.component-BsNXuoLB.js.map → menu.component-Dszjswev.js.map} +1 -1
- package/dist/chunks/{modal.types-C7OrqSGs.js → modal.types-BqbUP2fq.js} +2 -2
- package/dist/chunks/{modal.types-C7OrqSGs.js.map → modal.types-BqbUP2fq.js.map} +1 -1
- package/dist/chunks/{modal.types-Bhcd1P_H.js → modal.types-DbmIHymm.js} +2 -2
- package/dist/chunks/{modal.types-Bhcd1P_H.js.map → modal.types-DbmIHymm.js.map} +1 -1
- package/dist/chunks/{pinInput.types-BFZZszU7.js → pinInput.types-BNw91BQv.js} +2 -2
- package/dist/chunks/{pinInput.types-BFZZszU7.js.map → pinInput.types-BNw91BQv.js.map} +1 -1
- package/dist/chunks/{pinInput.types-10zyeINr.js → pinInput.types-DSyDqeFg.js} +2 -2
- package/dist/chunks/{pinInput.types-10zyeINr.js.map → pinInput.types-DSyDqeFg.js.map} +1 -1
- package/dist/chunks/{popover.component-GcAhSDeI.js → popover.component-BtT7CSIT.js} +2 -2
- package/dist/chunks/{popover.component-GcAhSDeI.js.map → popover.component-BtT7CSIT.js.map} +1 -1
- package/dist/chunks/{popover.component-BnvmpVHq.js → popover.component-Cme5pDPS.js} +2 -2
- package/dist/chunks/{popover.component-BnvmpVHq.js.map → popover.component-Cme5pDPS.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-ByokG1ms.js → radioGroup.component-C1GNEK2L.js} +3 -3
- package/dist/chunks/{radioGroup.component-ByokG1ms.js.map → radioGroup.component-C1GNEK2L.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-BtxjtKro.js → radioGroup.component-wK4Cx5VC.js} +2 -2
- package/dist/chunks/{radioGroup.component-BtxjtKro.js.map → radioGroup.component-wK4Cx5VC.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-Bhh27z7J.js → ratingDots.component-Bke0W3ea.js} +2 -2
- package/dist/chunks/{ratingDots.component-Bhh27z7J.js.map → ratingDots.component-Bke0W3ea.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-CBlKmrKG.js → ratingDots.component-C2rjJGto.js} +2 -2
- package/dist/chunks/{ratingDots.component-CBlKmrKG.js.map → ratingDots.component-C2rjJGto.js.map} +1 -1
- package/dist/chunks/{select.component-CKo_vUjT.js → select.component-DtaD7sfx.js} +2 -2
- package/dist/chunks/{select.component-CKo_vUjT.js.map → select.component-DtaD7sfx.js.map} +1 -1
- package/dist/chunks/{select.component-vzYNxpKs.js → select.component-TXK_OeSy.js} +4 -4
- package/dist/chunks/{select.component-vzYNxpKs.js.map → select.component-TXK_OeSy.js.map} +1 -1
- package/dist/chunks/{sortableList.component-C_kBtF5S.js → sortableList.component-BD7NUWze.js} +2 -2
- package/dist/chunks/{sortableList.component-C_kBtF5S.js.map → sortableList.component-BD7NUWze.js.map} +1 -1
- package/dist/chunks/{sortableList.component-Cf0JaJ_t.js → sortableList.component-G-mYPUz4.js} +2 -2
- package/dist/chunks/{sortableList.component-Cf0JaJ_t.js.map → sortableList.component-G-mYPUz4.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-D8JOpljn.js → styledAvatar.types-BLDIBD1a.js} +2 -2
- package/dist/chunks/{styledAvatar.types-D8JOpljn.js.map → styledAvatar.types-BLDIBD1a.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-CpzTd2Jl.js → styledAvatar.types-uB5TkfNC.js} +2 -2
- package/dist/chunks/{styledAvatar.types-CpzTd2Jl.js.map → styledAvatar.types-uB5TkfNC.js.map} +1 -1
- package/dist/chunks/{switch.component-D8hb9FSO.js → switch.component-B0k5ADaq.js} +2 -2
- package/dist/chunks/{switch.component-D8hb9FSO.js.map → switch.component-B0k5ADaq.js.map} +1 -1
- package/dist/chunks/{switch.component-BkC3TpSW.js → switch.component-BtOvYni1.js} +2 -2
- package/dist/chunks/{switch.component-BkC3TpSW.js.map → switch.component-BtOvYni1.js.map} +1 -1
- package/dist/chunks/{tabs.component-DF92o83d.js → tabs.component-CeCT7LAy.js} +2 -2
- package/dist/chunks/{tabs.component-DF92o83d.js.map → tabs.component-CeCT7LAy.js.map} +1 -1
- package/dist/chunks/{tabs.component-BjyZZY1w.js → tabs.component-rtTAPsqJ.js} +2 -2
- package/dist/chunks/{tabs.component-BjyZZY1w.js.map → tabs.component-rtTAPsqJ.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-S9-bfH87.js → tagBlock.component-BIRnbeT0.js} +2 -2
- package/dist/chunks/{tagBlock.component-S9-bfH87.js.map → tagBlock.component-BIRnbeT0.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-nox0ltrv.js → tagBlock.component-qCR3O5_s.js} +3 -3
- package/dist/chunks/{tagBlock.component-nox0ltrv.js.map → tagBlock.component-qCR3O5_s.js.map} +1 -1
- package/dist/chunks/{textInput.component-DIc2KQit.js → textInput.component-0XG65SHy.js} +2 -2
- package/dist/chunks/{textInput.component-DIc2KQit.js.map → textInput.component-0XG65SHy.js.map} +1 -1
- package/dist/chunks/{textInput.component-CeMv8ruX.js → textInput.component-DbMDm4jG.js} +3 -3
- package/dist/chunks/{textInput.component-CeMv8ruX.js.map → textInput.component-DbMDm4jG.js.map} +1 -1
- package/dist/chunks/{textarea.component-CvCJMMjE.js → textarea.component-BpUg00OD.js} +2 -2
- package/dist/chunks/{textarea.component-CvCJMMjE.js.map → textarea.component-BpUg00OD.js.map} +1 -1
- package/dist/chunks/{textarea.component-BxiOP655.js → textarea.component-DMh_uKQh.js} +2 -2
- package/dist/chunks/{textarea.component-BxiOP655.js.map → textarea.component-DMh_uKQh.js.map} +1 -1
- package/dist/chunks/theme.provider-BYVWanMT.js +24 -0
- package/dist/chunks/{theme.provider-CDBx4ruC.js.map → theme.provider-BYVWanMT.js.map} +1 -1
- package/dist/chunks/{theme.provider-tNFKZLVb.js → theme.provider-DHykCat2.js} +3 -3
- package/dist/chunks/{theme.provider-tNFKZLVb.js.map → theme.provider-DHykCat2.js.map} +1 -1
- package/dist/chunks/{timePicker.component-R19FX4-n.js → timePicker.component-CEcA8Cvn.js} +4 -4
- package/dist/chunks/{timePicker.component-R19FX4-n.js.map → timePicker.component-CEcA8Cvn.js.map} +1 -1
- package/dist/chunks/{timePicker.component-C3BvCG9H.js → timePicker.component-nv1D1p6D.js} +2 -2
- package/dist/chunks/{timePicker.component-C3BvCG9H.js.map → timePicker.component-nv1D1p6D.js.map} +1 -1
- package/dist/chunks/{timeRange.component-D5-0fc2e.js → timeRange.component-C3thzmu8.js} +2 -2
- package/dist/chunks/{timeRange.component-D5-0fc2e.js.map → timeRange.component-C3thzmu8.js.map} +1 -1
- package/dist/chunks/{timeRange.component-BXHsAP2P.js → timeRange.component-Dqq1m_O3.js} +2 -2
- package/dist/chunks/{timeRange.component-BXHsAP2P.js.map → timeRange.component-Dqq1m_O3.js.map} +1 -1
- package/dist/chunks/{withFormControl-BCyb1yXC.js → withFormControl-BCq_tW73.js} +2 -2
- package/dist/chunks/{withFormControl-BCyb1yXC.js.map → withFormControl-BCq_tW73.js.map} +1 -1
- package/dist/chunks/{withFormControl-BJIa-ZxM.js → withFormControl-Cer0SZNr.js} +2 -2
- package/dist/chunks/{withFormControl-BJIa-ZxM.js.map → withFormControl-Cer0SZNr.js.map} +1 -1
- package/dist/cjs/chakra/index.cjs +2 -0
- package/dist/cjs/chakra/index.cjs.map +1 -0
- package/dist/cjs/components/Alert/index.cjs +2 -0
- package/dist/cjs/components/Alert/index.cjs.map +1 -0
- package/dist/cjs/components/Avatar/index.cjs +2 -0
- package/dist/cjs/components/Avatar/index.cjs.map +1 -0
- package/dist/cjs/components/AvatarGroup/index.cjs +2 -0
- package/dist/cjs/components/AvatarGroup/index.cjs.map +1 -0
- package/dist/cjs/components/Button/index.cjs +2 -0
- package/dist/cjs/components/Button/index.cjs.map +1 -0
- package/dist/cjs/components/ButtonGroup/index.cjs +2 -0
- package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -0
- package/dist/cjs/components/Card/index.cjs +2 -0
- package/dist/cjs/components/Card/index.cjs.map +1 -0
- package/dist/cjs/components/CharacterCounter/index.cjs +2 -0
- package/dist/cjs/components/CharacterCounter/index.cjs.map +1 -0
- package/dist/cjs/components/Checkbox/index.cjs +2 -0
- package/dist/cjs/components/Checkbox/index.cjs.map +1 -0
- package/dist/cjs/components/CheckboxGroup/index.cjs +2 -0
- package/dist/cjs/components/CheckboxGroup/index.cjs.map +1 -0
- package/dist/cjs/components/ConversationCard/index.cjs +2 -0
- package/dist/cjs/components/ConversationCard/index.cjs.map +1 -0
- package/dist/cjs/components/DatePicker/index.cjs +2 -0
- package/dist/cjs/components/DatePicker/index.cjs.map +1 -0
- package/dist/cjs/components/Divider/index.cjs +2 -0
- package/dist/cjs/components/Divider/index.cjs.map +1 -0
- package/dist/cjs/components/Heading/index.cjs +2 -0
- package/dist/cjs/components/Heading/index.cjs.map +1 -0
- package/dist/cjs/components/Icon/generated/index.cjs +2 -0
- package/dist/cjs/components/Icon/generated/index.cjs.map +1 -0
- package/dist/cjs/components/Icon/index.cjs +2 -0
- package/dist/cjs/components/Icon/index.cjs.map +1 -0
- package/dist/cjs/components/Link/index.cjs +2 -0
- package/dist/cjs/components/Link/index.cjs.map +1 -0
- package/dist/cjs/components/Logo/generated/index.cjs +2 -0
- package/dist/cjs/components/Logo/generated/index.cjs.map +1 -0
- package/dist/cjs/components/Logo/index.cjs +2 -0
- package/dist/cjs/components/Logo/index.cjs.map +1 -0
- package/dist/cjs/components/Menu/index.cjs +2 -0
- package/dist/cjs/components/Menu/index.cjs.map +1 -0
- package/dist/cjs/components/Modal/index.cjs +2 -0
- package/dist/cjs/components/Modal/index.cjs.map +1 -0
- package/dist/cjs/components/NotificationCounter/index.cjs +2 -0
- package/dist/cjs/components/NotificationCounter/index.cjs.map +1 -0
- package/dist/cjs/components/Picture/index.cjs +2 -0
- package/dist/cjs/components/Picture/index.cjs.map +1 -0
- package/dist/cjs/components/PinInput/index.cjs +2 -0
- package/dist/cjs/components/PinInput/index.cjs.map +1 -0
- package/dist/cjs/components/Popover/index.cjs +2 -0
- package/dist/cjs/components/Popover/index.cjs.map +1 -0
- package/dist/cjs/components/RadioGroup/index.cjs +2 -0
- package/dist/cjs/components/RadioGroup/index.cjs.map +1 -0
- package/dist/cjs/components/RatingDots/index.cjs +2 -0
- package/dist/cjs/components/RatingDots/index.cjs.map +1 -0
- package/dist/cjs/components/Select/index.cjs +2 -0
- package/dist/cjs/components/Select/index.cjs.map +1 -0
- package/dist/cjs/components/SortableList/index.cjs +2 -0
- package/dist/cjs/components/SortableList/index.cjs.map +1 -0
- package/dist/cjs/components/Spinner/index.cjs +2 -0
- package/dist/cjs/components/Spinner/index.cjs.map +1 -0
- package/dist/cjs/components/StyledAvatar/index.cjs +2 -0
- package/dist/cjs/components/StyledAvatar/index.cjs.map +1 -0
- package/dist/cjs/components/Swatch/index.cjs +2 -0
- package/dist/cjs/components/Swatch/index.cjs.map +1 -0
- package/dist/cjs/components/Switch/index.cjs +2 -0
- package/dist/cjs/components/Switch/index.cjs.map +1 -0
- package/dist/cjs/components/Tabs/index.cjs +2 -0
- package/dist/cjs/components/Tabs/index.cjs.map +1 -0
- package/dist/cjs/components/Tag/index.cjs +2 -0
- package/dist/cjs/components/Tag/index.cjs.map +1 -0
- package/dist/cjs/components/TagBlock/index.cjs +2 -0
- package/dist/cjs/components/TagBlock/index.cjs.map +1 -0
- package/dist/cjs/components/Text/index.cjs +2 -0
- package/dist/cjs/components/Text/index.cjs.map +1 -0
- package/dist/cjs/components/TextInput/index.cjs +2 -0
- package/dist/cjs/components/TextInput/index.cjs.map +1 -0
- package/dist/cjs/components/Textarea/index.cjs +2 -0
- package/dist/cjs/components/Textarea/index.cjs.map +1 -0
- package/dist/cjs/components/TimePicker/index.cjs +2 -0
- package/dist/cjs/components/TimePicker/index.cjs.map +1 -0
- package/dist/cjs/components/TimeRange/index.cjs +2 -0
- package/dist/cjs/components/TimeRange/index.cjs.map +1 -0
- package/dist/cjs/components/Timestamp/index.cjs +2 -0
- package/dist/cjs/components/Timestamp/index.cjs.map +1 -0
- package/dist/cjs/components/Toast/index.cjs +2 -0
- package/dist/cjs/components/Toast/index.cjs.map +1 -0
- package/dist/cjs/components/Tooltip/index.cjs +2 -0
- package/dist/cjs/components/Tooltip/index.cjs.map +1 -0
- package/dist/cjs/components/index.cjs +2 -0
- package/dist/cjs/components/index.cjs.map +1 -0
- package/dist/cjs/hocs/index.cjs +2 -0
- package/dist/cjs/hocs/index.cjs.map +1 -0
- package/dist/cjs/hooks/index.cjs +2 -0
- package/dist/cjs/hooks/index.cjs.map +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/shared/index.cjs +2 -0
- package/dist/cjs/shared/index.cjs.map +1 -0
- package/dist/cjs/shared/{types.cjs → types/index.cjs} +1 -1
- package/dist/cjs/shared/types/index.cjs.map +1 -0
- package/dist/cjs/theme/index.cjs +2 -0
- package/dist/cjs/theme/index.cjs.map +1 -0
- package/dist/cjs/theme/{semanticTokens.cjs → semanticTokens/index.cjs} +1 -1
- package/dist/cjs/theme/semanticTokens/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/blurs/index.cjs +2 -0
- package/dist/cjs/theme/tokens/blurs/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/borders/index.cjs +2 -0
- package/dist/cjs/theme/tokens/borders/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/{colors.cjs → colors/index.cjs} +1 -1
- package/dist/cjs/theme/tokens/colors/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/index.cjs +2 -0
- package/dist/cjs/theme/tokens/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/shadows/index.cjs +2 -0
- package/dist/cjs/theme/tokens/shadows/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/sizes/index.cjs +2 -0
- package/dist/cjs/theme/tokens/sizes/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/spacing/index.cjs +2 -0
- package/dist/cjs/theme/tokens/spacing/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/transitions/index.cjs +2 -0
- package/dist/cjs/theme/tokens/transitions/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/typography/index.cjs +2 -0
- package/dist/cjs/theme/tokens/typography/index.cjs.map +1 -0
- package/dist/cjs/theme/tokens/zIndices/index.cjs +2 -0
- package/dist/cjs/theme/tokens/zIndices/index.cjs.map +1 -0
- package/dist/esm/{chakra.js → chakra/index.js} +3 -3
- package/dist/esm/chakra/index.js.map +1 -0
- package/dist/esm/components/Alert/index.js +7 -0
- package/dist/esm/components/Alert/index.js.map +1 -0
- package/dist/esm/components/Avatar/index.js +8 -0
- package/dist/esm/components/Avatar/index.js.map +1 -0
- package/dist/esm/components/AvatarGroup/index.js +5 -0
- package/dist/esm/components/AvatarGroup/index.js.map +1 -0
- package/dist/esm/components/Button/index.js +11 -0
- package/dist/esm/components/Button/index.js.map +1 -0
- package/dist/esm/components/ButtonGroup/index.js +5 -0
- package/dist/esm/components/ButtonGroup/index.js.map +1 -0
- package/dist/esm/components/Card/index.js +7 -0
- package/dist/esm/components/Card/index.js.map +1 -0
- package/dist/esm/components/CharacterCounter/index.js +5 -0
- package/dist/esm/components/CharacterCounter/index.js.map +1 -0
- package/dist/esm/components/Checkbox/index.js +5 -0
- package/dist/esm/components/Checkbox/index.js.map +1 -0
- package/dist/esm/components/CheckboxGroup/index.js +5 -0
- package/dist/esm/components/CheckboxGroup/index.js.map +1 -0
- package/dist/esm/components/ConversationCard/index.js +5 -0
- package/dist/esm/components/ConversationCard/index.js.map +1 -0
- package/dist/esm/components/DatePicker/index.js +6 -0
- package/dist/esm/components/DatePicker/index.js.map +1 -0
- package/dist/esm/components/{Divider.js → Divider/index.js} +3 -3
- package/dist/esm/components/Divider/index.js.map +1 -0
- package/dist/esm/components/Heading/index.js +5 -0
- package/dist/esm/components/Heading/index.js.map +1 -0
- package/dist/esm/components/Icon/{generated.js → generated/index.js} +2 -2
- package/dist/esm/components/Icon/generated/index.js.map +1 -0
- package/dist/esm/components/Icon/index.js +7 -0
- package/dist/esm/components/Icon/index.js.map +1 -0
- package/dist/esm/components/Link/index.js +5 -0
- package/dist/esm/components/Link/index.js.map +1 -0
- package/dist/esm/components/Logo/generated/index.js +6 -0
- package/dist/esm/components/Logo/generated/index.js.map +1 -0
- package/dist/esm/components/Logo/index.js +7 -0
- package/dist/esm/components/Logo/index.js.map +1 -0
- package/dist/esm/components/Menu/index.js +5 -0
- package/dist/esm/components/Menu/index.js.map +1 -0
- package/dist/esm/components/Modal/index.js +9 -0
- package/dist/esm/components/Modal/index.js.map +1 -0
- package/dist/esm/components/{NotificationCounter.js → NotificationCounter/index.js} +2 -2
- package/dist/esm/components/NotificationCounter/index.js.map +1 -0
- package/dist/esm/components/{Picture.js → Picture/index.js} +3 -3
- package/dist/{cjs/components/Picture.cjs.map → esm/components/Picture/index.js.map} +1 -1
- package/dist/esm/components/PinInput/index.js +6 -0
- package/dist/esm/components/PinInput/index.js.map +1 -0
- package/dist/esm/components/Popover/index.js +9 -0
- package/dist/esm/components/Popover/index.js.map +1 -0
- package/dist/esm/components/RadioGroup/index.js +5 -0
- package/dist/esm/components/RadioGroup/index.js.map +1 -0
- package/dist/esm/components/RatingDots/index.js +5 -0
- package/dist/esm/components/RatingDots/index.js.map +1 -0
- package/dist/esm/components/Select/index.js +5 -0
- package/dist/esm/components/Select/index.js.map +1 -0
- package/dist/esm/components/SortableList/index.js +5 -0
- package/dist/esm/components/SortableList/index.js.map +1 -0
- package/dist/esm/components/Spinner/index.js +7 -0
- package/dist/esm/components/Spinner/index.js.map +1 -0
- package/dist/esm/components/StyledAvatar/index.js +6 -0
- package/dist/esm/components/StyledAvatar/index.js.map +1 -0
- package/dist/esm/components/{Swatch.js → Swatch/index.js} +3 -3
- package/dist/esm/components/Swatch/index.js.map +1 -0
- package/dist/esm/components/Switch/index.js +5 -0
- package/dist/esm/components/Switch/index.js.map +1 -0
- package/dist/esm/components/Tabs/index.js +5 -0
- package/dist/esm/components/Tabs/index.js.map +1 -0
- package/dist/esm/components/Tag/index.js +8 -0
- package/dist/esm/components/Tag/index.js.map +1 -0
- package/dist/esm/components/TagBlock/index.js +6 -0
- package/dist/esm/components/TagBlock/index.js.map +1 -0
- package/dist/esm/components/Text/index.js +5 -0
- package/dist/esm/components/Text/index.js.map +1 -0
- package/dist/esm/components/TextInput/index.js +5 -0
- package/dist/esm/components/TextInput/index.js.map +1 -0
- package/dist/esm/components/Textarea/index.js +5 -0
- package/dist/esm/components/Textarea/index.js.map +1 -0
- package/dist/esm/components/TimePicker/index.js +6 -0
- package/dist/esm/components/TimePicker/index.js.map +1 -0
- package/dist/esm/components/TimeRange/index.js +5 -0
- package/dist/esm/components/TimeRange/index.js.map +1 -0
- package/dist/esm/components/Timestamp/index.js +5 -0
- package/dist/esm/components/Timestamp/index.js.map +1 -0
- package/dist/esm/components/{Toast.js → Toast/index.js} +2 -2
- package/dist/esm/components/Toast/index.js.map +1 -0
- package/dist/esm/components/Tooltip/index.js +5 -0
- package/dist/esm/components/Tooltip/index.js.map +1 -0
- package/dist/esm/components/index.js +127 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/hocs/index.js +6 -0
- package/dist/esm/hocs/index.js.map +1 -0
- package/dist/esm/{hooks.js → hooks/index.js} +2 -2
- package/dist/esm/hooks/index.js.map +1 -0
- package/dist/esm/index.js +35 -35
- package/dist/esm/{shared.js → shared/index.js} +2 -2
- package/dist/esm/shared/index.js.map +1 -0
- package/dist/esm/shared/{types.js → types/index.js} +1 -1
- package/dist/esm/shared/types/index.js.map +1 -0
- package/dist/esm/theme/index.js +6 -0
- package/dist/esm/theme/index.js.map +1 -0
- package/dist/esm/theme/{semanticTokens.js → semanticTokens/index.js} +1 -1
- package/dist/esm/theme/semanticTokens/index.js.map +1 -0
- package/dist/esm/theme/tokens/blurs/index.js +3 -0
- package/dist/esm/theme/tokens/blurs/index.js.map +1 -0
- package/dist/esm/theme/tokens/borders/index.js +2 -0
- package/dist/esm/theme/tokens/borders/index.js.map +1 -0
- package/dist/esm/theme/tokens/{colors.js → colors/index.js} +1 -1
- package/dist/esm/theme/tokens/colors/index.js.map +1 -0
- package/dist/esm/theme/tokens/index.js +5 -0
- package/dist/esm/theme/tokens/index.js.map +1 -0
- package/dist/esm/theme/tokens/shadows/index.js +2 -0
- package/dist/esm/theme/tokens/shadows/index.js.map +1 -0
- package/dist/esm/theme/tokens/sizes/index.js +2 -0
- package/dist/esm/theme/tokens/sizes/index.js.map +1 -0
- package/dist/esm/theme/tokens/spacing/index.js +2 -0
- package/dist/esm/theme/tokens/spacing/index.js.map +1 -0
- package/dist/esm/theme/tokens/transitions/index.js +2 -0
- package/dist/esm/theme/tokens/transitions/index.js.map +1 -0
- package/dist/esm/theme/tokens/typography/index.js +2 -0
- package/dist/esm/theme/tokens/typography/index.js.map +1 -0
- package/dist/esm/theme/tokens/zIndices/index.js +2 -0
- package/dist/esm/theme/tokens/zIndices/index.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunks/icon.component-Drw3LiG5.js +0 -2
- package/dist/chunks/theme.provider-CDBx4ruC.js +0 -24
- package/dist/cjs/chakra.cjs +0 -2
- package/dist/cjs/chakra.cjs.map +0 -1
- package/dist/cjs/components/Alert.cjs +0 -2
- package/dist/cjs/components/Alert.cjs.map +0 -1
- package/dist/cjs/components/Avatar.cjs +0 -2
- package/dist/cjs/components/Avatar.cjs.map +0 -1
- package/dist/cjs/components/AvatarGroup.cjs +0 -2
- package/dist/cjs/components/AvatarGroup.cjs.map +0 -1
- package/dist/cjs/components/Button.cjs +0 -2
- package/dist/cjs/components/Button.cjs.map +0 -1
- package/dist/cjs/components/ButtonGroup.cjs +0 -2
- package/dist/cjs/components/ButtonGroup.cjs.map +0 -1
- package/dist/cjs/components/Card.cjs +0 -2
- package/dist/cjs/components/Card.cjs.map +0 -1
- package/dist/cjs/components/CharacterCounter.cjs +0 -2
- package/dist/cjs/components/CharacterCounter.cjs.map +0 -1
- package/dist/cjs/components/Checkbox.cjs +0 -2
- package/dist/cjs/components/Checkbox.cjs.map +0 -1
- package/dist/cjs/components/CheckboxGroup.cjs +0 -2
- package/dist/cjs/components/CheckboxGroup.cjs.map +0 -1
- package/dist/cjs/components/ConversationCard.cjs +0 -2
- package/dist/cjs/components/ConversationCard.cjs.map +0 -1
- package/dist/cjs/components/DatePicker.cjs +0 -2
- package/dist/cjs/components/DatePicker.cjs.map +0 -1
- package/dist/cjs/components/Divider.cjs +0 -2
- package/dist/cjs/components/Divider.cjs.map +0 -1
- package/dist/cjs/components/Heading.cjs +0 -2
- package/dist/cjs/components/Heading.cjs.map +0 -1
- package/dist/cjs/components/Icon/generated.cjs +0 -2
- package/dist/cjs/components/Icon/generated.cjs.map +0 -1
- package/dist/cjs/components/Icon.cjs +0 -2
- package/dist/cjs/components/Icon.cjs.map +0 -1
- package/dist/cjs/components/Link.cjs +0 -2
- package/dist/cjs/components/Link.cjs.map +0 -1
- package/dist/cjs/components/Logo/generated.cjs +0 -2
- package/dist/cjs/components/Logo/generated.cjs.map +0 -1
- package/dist/cjs/components/Logo.cjs +0 -2
- package/dist/cjs/components/Logo.cjs.map +0 -1
- package/dist/cjs/components/Menu.cjs +0 -2
- package/dist/cjs/components/Menu.cjs.map +0 -1
- package/dist/cjs/components/Modal.cjs +0 -2
- package/dist/cjs/components/Modal.cjs.map +0 -1
- package/dist/cjs/components/NotificationCounter.cjs +0 -2
- package/dist/cjs/components/NotificationCounter.cjs.map +0 -1
- package/dist/cjs/components/Picture.cjs +0 -2
- package/dist/cjs/components/PinInput.cjs +0 -2
- package/dist/cjs/components/PinInput.cjs.map +0 -1
- package/dist/cjs/components/Popover.cjs +0 -2
- package/dist/cjs/components/Popover.cjs.map +0 -1
- package/dist/cjs/components/RadioGroup.cjs +0 -2
- package/dist/cjs/components/RadioGroup.cjs.map +0 -1
- package/dist/cjs/components/RatingDots.cjs +0 -2
- package/dist/cjs/components/RatingDots.cjs.map +0 -1
- package/dist/cjs/components/Select.cjs +0 -2
- package/dist/cjs/components/Select.cjs.map +0 -1
- package/dist/cjs/components/SortableList.cjs +0 -2
- package/dist/cjs/components/SortableList.cjs.map +0 -1
- package/dist/cjs/components/Spinner.cjs +0 -2
- package/dist/cjs/components/Spinner.cjs.map +0 -1
- package/dist/cjs/components/StyledAvatar.cjs +0 -2
- package/dist/cjs/components/StyledAvatar.cjs.map +0 -1
- package/dist/cjs/components/Swatch.cjs +0 -2
- package/dist/cjs/components/Swatch.cjs.map +0 -1
- package/dist/cjs/components/Switch.cjs +0 -2
- package/dist/cjs/components/Switch.cjs.map +0 -1
- package/dist/cjs/components/Tabs.cjs +0 -2
- package/dist/cjs/components/Tabs.cjs.map +0 -1
- package/dist/cjs/components/Tag.cjs +0 -2
- package/dist/cjs/components/Tag.cjs.map +0 -1
- package/dist/cjs/components/TagBlock.cjs +0 -2
- package/dist/cjs/components/TagBlock.cjs.map +0 -1
- package/dist/cjs/components/Text.cjs +0 -2
- package/dist/cjs/components/Text.cjs.map +0 -1
- package/dist/cjs/components/TextInput.cjs +0 -2
- package/dist/cjs/components/TextInput.cjs.map +0 -1
- package/dist/cjs/components/Textarea.cjs +0 -2
- package/dist/cjs/components/Textarea.cjs.map +0 -1
- package/dist/cjs/components/TimePicker.cjs +0 -2
- package/dist/cjs/components/TimePicker.cjs.map +0 -1
- package/dist/cjs/components/TimeRange.cjs +0 -2
- package/dist/cjs/components/TimeRange.cjs.map +0 -1
- package/dist/cjs/components/Timestamp.cjs +0 -2
- package/dist/cjs/components/Timestamp.cjs.map +0 -1
- package/dist/cjs/components/Toast.cjs +0 -2
- package/dist/cjs/components/Toast.cjs.map +0 -1
- package/dist/cjs/components/Tooltip.cjs +0 -2
- package/dist/cjs/components/Tooltip.cjs.map +0 -1
- package/dist/cjs/components.cjs +0 -2
- package/dist/cjs/components.cjs.map +0 -1
- package/dist/cjs/hocs.cjs +0 -2
- package/dist/cjs/hocs.cjs.map +0 -1
- package/dist/cjs/hooks.cjs +0 -2
- package/dist/cjs/hooks.cjs.map +0 -1
- package/dist/cjs/shared/types.cjs.map +0 -1
- package/dist/cjs/shared.cjs +0 -2
- package/dist/cjs/shared.cjs.map +0 -1
- package/dist/cjs/theme/semanticTokens.cjs.map +0 -1
- package/dist/cjs/theme/tokens/blurs.cjs +0 -2
- package/dist/cjs/theme/tokens/blurs.cjs.map +0 -1
- package/dist/cjs/theme/tokens/borders.cjs +0 -2
- package/dist/cjs/theme/tokens/borders.cjs.map +0 -1
- package/dist/cjs/theme/tokens/colors.cjs.map +0 -1
- package/dist/cjs/theme/tokens/shadows.cjs +0 -2
- package/dist/cjs/theme/tokens/shadows.cjs.map +0 -1
- package/dist/cjs/theme/tokens/sizes.cjs +0 -2
- package/dist/cjs/theme/tokens/sizes.cjs.map +0 -1
- package/dist/cjs/theme/tokens/spacing.cjs +0 -2
- package/dist/cjs/theme/tokens/spacing.cjs.map +0 -1
- package/dist/cjs/theme/tokens/transitions.cjs +0 -2
- package/dist/cjs/theme/tokens/transitions.cjs.map +0 -1
- package/dist/cjs/theme/tokens/typography.cjs +0 -2
- package/dist/cjs/theme/tokens/typography.cjs.map +0 -1
- package/dist/cjs/theme/tokens/zIndices.cjs +0 -2
- package/dist/cjs/theme/tokens/zIndices.cjs.map +0 -1
- package/dist/cjs/theme/tokens.cjs +0 -2
- package/dist/cjs/theme/tokens.cjs.map +0 -1
- package/dist/cjs/theme.cjs +0 -2
- package/dist/cjs/theme.cjs.map +0 -1
- package/dist/esm/chakra.js.map +0 -1
- package/dist/esm/components/Alert.js +0 -7
- package/dist/esm/components/Alert.js.map +0 -1
- package/dist/esm/components/Avatar.js +0 -8
- package/dist/esm/components/Avatar.js.map +0 -1
- package/dist/esm/components/AvatarGroup.js +0 -5
- package/dist/esm/components/AvatarGroup.js.map +0 -1
- package/dist/esm/components/Button.js +0 -11
- package/dist/esm/components/Button.js.map +0 -1
- package/dist/esm/components/ButtonGroup.js +0 -5
- package/dist/esm/components/ButtonGroup.js.map +0 -1
- package/dist/esm/components/Card.js +0 -7
- package/dist/esm/components/Card.js.map +0 -1
- package/dist/esm/components/CharacterCounter.js +0 -5
- package/dist/esm/components/CharacterCounter.js.map +0 -1
- package/dist/esm/components/Checkbox.js +0 -5
- package/dist/esm/components/Checkbox.js.map +0 -1
- package/dist/esm/components/CheckboxGroup.js +0 -5
- package/dist/esm/components/CheckboxGroup.js.map +0 -1
- package/dist/esm/components/ConversationCard.js +0 -5
- package/dist/esm/components/ConversationCard.js.map +0 -1
- package/dist/esm/components/DatePicker.js +0 -6
- package/dist/esm/components/DatePicker.js.map +0 -1
- package/dist/esm/components/Divider.js.map +0 -1
- package/dist/esm/components/Heading.js +0 -5
- package/dist/esm/components/Heading.js.map +0 -1
- package/dist/esm/components/Icon/generated.js.map +0 -1
- package/dist/esm/components/Icon.js +0 -7
- package/dist/esm/components/Icon.js.map +0 -1
- package/dist/esm/components/Link.js +0 -5
- package/dist/esm/components/Link.js.map +0 -1
- package/dist/esm/components/Logo/generated.js +0 -6
- package/dist/esm/components/Logo/generated.js.map +0 -1
- package/dist/esm/components/Logo.js +0 -7
- package/dist/esm/components/Logo.js.map +0 -1
- package/dist/esm/components/Menu.js +0 -5
- package/dist/esm/components/Menu.js.map +0 -1
- package/dist/esm/components/Modal.js +0 -9
- package/dist/esm/components/Modal.js.map +0 -1
- package/dist/esm/components/NotificationCounter.js.map +0 -1
- package/dist/esm/components/Picture.js.map +0 -1
- package/dist/esm/components/PinInput.js +0 -6
- package/dist/esm/components/PinInput.js.map +0 -1
- package/dist/esm/components/Popover.js +0 -9
- package/dist/esm/components/Popover.js.map +0 -1
- package/dist/esm/components/RadioGroup.js +0 -5
- package/dist/esm/components/RadioGroup.js.map +0 -1
- package/dist/esm/components/RatingDots.js +0 -5
- package/dist/esm/components/RatingDots.js.map +0 -1
- package/dist/esm/components/Select.js +0 -5
- package/dist/esm/components/Select.js.map +0 -1
- package/dist/esm/components/SortableList.js +0 -5
- package/dist/esm/components/SortableList.js.map +0 -1
- package/dist/esm/components/Spinner.js +0 -7
- package/dist/esm/components/Spinner.js.map +0 -1
- package/dist/esm/components/StyledAvatar.js +0 -6
- package/dist/esm/components/StyledAvatar.js.map +0 -1
- package/dist/esm/components/Swatch.js.map +0 -1
- package/dist/esm/components/Switch.js +0 -5
- package/dist/esm/components/Switch.js.map +0 -1
- package/dist/esm/components/Tabs.js +0 -5
- package/dist/esm/components/Tabs.js.map +0 -1
- package/dist/esm/components/Tag.js +0 -8
- package/dist/esm/components/Tag.js.map +0 -1
- package/dist/esm/components/TagBlock.js +0 -6
- package/dist/esm/components/TagBlock.js.map +0 -1
- package/dist/esm/components/Text.js +0 -5
- package/dist/esm/components/Text.js.map +0 -1
- package/dist/esm/components/TextInput.js +0 -5
- package/dist/esm/components/TextInput.js.map +0 -1
- package/dist/esm/components/Textarea.js +0 -5
- package/dist/esm/components/Textarea.js.map +0 -1
- package/dist/esm/components/TimePicker.js +0 -6
- package/dist/esm/components/TimePicker.js.map +0 -1
- package/dist/esm/components/TimeRange.js +0 -5
- package/dist/esm/components/TimeRange.js.map +0 -1
- package/dist/esm/components/Timestamp.js +0 -5
- package/dist/esm/components/Timestamp.js.map +0 -1
- package/dist/esm/components/Toast.js.map +0 -1
- package/dist/esm/components/Tooltip.js +0 -5
- package/dist/esm/components/Tooltip.js.map +0 -1
- package/dist/esm/components.js +0 -127
- package/dist/esm/components.js.map +0 -1
- package/dist/esm/hocs.js +0 -6
- package/dist/esm/hocs.js.map +0 -1
- package/dist/esm/hooks.js.map +0 -1
- package/dist/esm/shared/types.js.map +0 -1
- package/dist/esm/shared.js.map +0 -1
- package/dist/esm/theme/semanticTokens.js.map +0 -1
- package/dist/esm/theme/tokens/blurs.js +0 -3
- package/dist/esm/theme/tokens/blurs.js.map +0 -1
- package/dist/esm/theme/tokens/borders.js +0 -2
- package/dist/esm/theme/tokens/borders.js.map +0 -1
- package/dist/esm/theme/tokens/colors.js.map +0 -1
- package/dist/esm/theme/tokens/shadows.js +0 -2
- package/dist/esm/theme/tokens/shadows.js.map +0 -1
- package/dist/esm/theme/tokens/sizes.js +0 -2
- package/dist/esm/theme/tokens/sizes.js.map +0 -1
- package/dist/esm/theme/tokens/spacing.js +0 -2
- package/dist/esm/theme/tokens/spacing.js.map +0 -1
- package/dist/esm/theme/tokens/transitions.js +0 -2
- package/dist/esm/theme/tokens/transitions.js.map +0 -1
- package/dist/esm/theme/tokens/typography.js +0 -2
- package/dist/esm/theme/tokens/typography.js.map +0 -1
- package/dist/esm/theme/tokens/zIndices.js +0 -2
- package/dist/esm/theme/tokens/zIndices.js.map +0 -1
- package/dist/esm/theme/tokens.js +0 -5
- package/dist/esm/theme/tokens.js.map +0 -1
- package/dist/esm/theme.js +0 -6
- package/dist/esm/theme.js.map +0 -1
- package/dist/types/chakra.d.ts +0 -2
- package/dist/types/components/Alert.d.ts +0 -2
- package/dist/types/components/Avatar.d.ts +0 -2
- package/dist/types/components/AvatarGroup.d.ts +0 -2
- package/dist/types/components/Button.d.ts +0 -2
- package/dist/types/components/ButtonGroup.d.ts +0 -2
- package/dist/types/components/Card.d.ts +0 -2
- package/dist/types/components/CharacterCounter.d.ts +0 -2
- package/dist/types/components/Checkbox.d.ts +0 -2
- package/dist/types/components/CheckboxGroup.d.ts +0 -2
- package/dist/types/components/ConversationCard.d.ts +0 -2
- package/dist/types/components/DatePicker.d.ts +0 -2
- package/dist/types/components/Divider.d.ts +0 -2
- package/dist/types/components/Heading.d.ts +0 -2
- package/dist/types/components/Icon/generated.d.ts +0 -2
- package/dist/types/components/Icon.d.ts +0 -2
- package/dist/types/components/Link.d.ts +0 -2
- package/dist/types/components/Logo/generated.d.ts +0 -2
- package/dist/types/components/Logo.d.ts +0 -2
- package/dist/types/components/Menu.d.ts +0 -2
- package/dist/types/components/Modal.d.ts +0 -2
- package/dist/types/components/NotificationCounter.d.ts +0 -2
- package/dist/types/components/Picture.d.ts +0 -2
- package/dist/types/components/PinInput.d.ts +0 -2
- package/dist/types/components/Popover.d.ts +0 -2
- package/dist/types/components/RadioGroup.d.ts +0 -2
- package/dist/types/components/RatingDots.d.ts +0 -2
- package/dist/types/components/Select.d.ts +0 -2
- package/dist/types/components/SortableList.d.ts +0 -2
- package/dist/types/components/Spinner.d.ts +0 -2
- package/dist/types/components/StyledAvatar.d.ts +0 -2
- package/dist/types/components/Swatch.d.ts +0 -2
- package/dist/types/components/Switch.d.ts +0 -2
- package/dist/types/components/Tabs.d.ts +0 -2
- package/dist/types/components/Tag.d.ts +0 -2
- package/dist/types/components/TagBlock.d.ts +0 -2
- package/dist/types/components/Text.d.ts +0 -2
- package/dist/types/components/TextInput.d.ts +0 -2
- package/dist/types/components/Textarea.d.ts +0 -2
- package/dist/types/components/TimePicker.d.ts +0 -2
- package/dist/types/components/TimeRange.d.ts +0 -2
- package/dist/types/components/Timestamp.d.ts +0 -2
- package/dist/types/components/Toast.d.ts +0 -2
- package/dist/types/components/Tooltip.d.ts +0 -2
- package/dist/types/components.d.ts +0 -2
- package/dist/types/hocs.d.ts +0 -2
- package/dist/types/hooks.d.ts +0 -2
- package/dist/types/shared/types.d.ts +0 -2
- package/dist/types/shared.d.ts +0 -2
- package/dist/types/theme/semanticTokens.d.ts +0 -2
- package/dist/types/theme/tokens/blurs.d.ts +0 -2
- package/dist/types/theme/tokens/borders.d.ts +0 -2
- package/dist/types/theme/tokens/colors.d.ts +0 -2
- package/dist/types/theme/tokens/shadows.d.ts +0 -2
- package/dist/types/theme/tokens/sizes.d.ts +0 -2
- package/dist/types/theme/tokens/spacing.d.ts +0 -2
- package/dist/types/theme/tokens/transitions.d.ts +0 -2
- package/dist/types/theme/tokens/typography.d.ts +0 -2
- package/dist/types/theme/tokens/zIndices.d.ts +0 -2
- package/dist/types/theme/tokens.d.ts +0 -2
- package/dist/types/theme.d.ts +0 -2
package/dist/chunks/{datePicker.component-C7TjBUEe.js.map → datePicker.component-CY61BztN.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datePicker.component-C7TjBUEe.js","sources":["../../src/components/DatePicker/datePicker.types.ts","../../src/components/DatePicker/context/datePicker.context.tsx","../../src/components/DatePicker/context/datePicker.provider.tsx","../../src/components/DatePicker/components/DatePickerInput/datePickerInput.utils.ts","../../src/components/DatePicker/components/DatePickerInput/datePickerInput.component.tsx","../../src/components/DatePicker/components/DatePickerFooter/datePickerFooter.component.tsx","../../src/components/DatePicker/datePicker.records.ts","../../src/components/DatePicker/components/DatePickerHeader/datePickerHeader.component.tsx","../../src/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.recipe.ts","../../src/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.component.tsx","../../src/components/DatePicker/components/DatePickerMonth/datePickerCalendarMonth.component.tsx","../../src/components/DatePicker/components/DatePickerCalendar/datePickerCalendar.component.tsx","../../src/components/DatePicker/datePicker.component.tsx"],"sourcesContent":["export enum DateFormats {\n \"ShortDate\" = \"MM/dd/yyyy\",\n \"LongDate\" = \"MMM dd yyyy\",\n \"DayOfWeekDayOfMonth\" = \"eeee, MMMM do\",\n}\n\nexport interface DateRange {\n startDate: Date | null;\n endDate?: Date | null;\n}\n","import { FirstDayOfWeek, MonthType } from \"@datepicker-react/hooks\";\nimport { useContext, createContext } from \"react\";\nimport { DateFormats, DateRange } from \"../datePicker.types\";\n\nexport enum FocusedInput {\n StartDate = \"startDate\",\n EndDate = \"endDate\",\n}\n\nexport interface IDatePickerContext {\n activeMonth?: MonthType;\n dateFormat: DateFormats | string;\n endDate: Date | null;\n focusedInput: FocusedInput | null;\n setFocusedInput: (focusedInput: FocusedInput | null) => void;\n withDateRange: boolean;\n maxDate?: Date;\n maxYear: number;\n minDate?: Date;\n minYear: number;\n onDateChange?: ({ startDate, endDate }: DateRange) => void;\n startDate: Date | null;\n onClose: () => void;\n clearDates: ({ open }: { open?: boolean }) => void;\n // The following are all values returned by the datepicker-react useDatePicker hook\n // Setting them here in our own context to be referenced in child components\n focusedDate: Date | null;\n firstDayOfWeek?: FirstDayOfWeek;\n activeMonths: MonthType[];\n isDateFocused: (date: Date) => boolean;\n isDateSelected: (date: Date) => boolean;\n isDateHovered: (date: Date) => boolean;\n isDateBlocked: (date: Date) => boolean;\n isFirstOrLastSelectedDate: (date: Date) => boolean;\n onDateFocus: (date: Date) => void;\n onDateHover: (date: Date | null) => void;\n onDateSelect: (date: Date) => void;\n goToPreviousMonths: () => void;\n goToNextMonths: () => void;\n goToDate: (date: Date) => void;\n}\n\nexport const today = new Date();\nexport const currentYear = today.getFullYear();\nexport const currentMonth = today.getMonth();\n\nexport const defaultFocusedDate = today;\nexport const defaultMinYear = currentYear - 100;\nexport const defaultMaxYear = currentYear + 5;\nexport const defaultDateFormat = DateFormats.ShortDate;\n\nconst initialDatePickerState: IDatePickerContext = {\n dateFormat: defaultDateFormat,\n endDate: null,\n focusedInput: null,\n withDateRange: false,\n maxYear: defaultMaxYear,\n minYear: defaultMinYear,\n startDate: null,\n onClose: (): void => {\n throw new Error(\"onClose(): boolean not implemented\");\n },\n setFocusedInput: (): void => {\n throw new Error(\"setFocusedInput(): boolean not implemented\");\n },\n focusedDate: today,\n firstDayOfWeek: undefined,\n activeMonths: [],\n isDateFocused: (): boolean => {\n throw new Error(\"isDateFocused(): boolean not implemented\");\n },\n isDateSelected: (): boolean => {\n throw new Error(\"isDateSelected(): boolean not implemented\");\n },\n isDateHovered: (): boolean => {\n throw new Error(\"isDateHovered(): boolean not implemented\");\n },\n isDateBlocked: (): boolean => {\n throw new Error(\"isDateBlocked(): boolean not implemented\");\n },\n isFirstOrLastSelectedDate: (): boolean => {\n throw new Error(\"isFirstOrLastSelectedDate(): boolean not implemented\");\n },\n onDateFocus: (): void => {\n throw new Error(\"onDateFocus(): boolean not implemented\");\n },\n onDateHover: (): void => {\n throw new Error(\"onDateHover(): boolean not implemented\");\n },\n onDateSelect: (): Date => {\n throw new Error(\"onDateSelect(): boolean not implemented\");\n },\n goToPreviousMonths: (): Date => {\n throw new Error(\"goToPreviousMonths(): boolean not implemented\");\n },\n goToNextMonths: (): Date => {\n throw new Error(\"goToNextMonths(): boolean not implemented\");\n },\n goToDate: (): Date => {\n throw new Error(\"goToDate(): boolean not implemented\");\n },\n clearDates: (): void => {\n throw new Error(\"clearDates(): boolean not implemented\");\n },\n};\n\nexport const DatePickerContext = createContext<IDatePickerContext>(\n initialDatePickerState,\n);\n\nexport const useDatePickerContext = (): IDatePickerContext =>\n useContext<IDatePickerContext>(DatePickerContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Popover as CPopover } from \"@chakra-ui/react/popover\";\nimport { DatePickerProps } from \"../datePicker.component\";\nimport { useDatepicker } from \"@datepicker-react/hooks\";\nimport {\n DatePickerContext,\n defaultDateFormat,\n defaultFocusedDate,\n defaultMaxYear,\n defaultMinYear,\n FocusedInput,\n today,\n} from \"./datePicker.context\";\nimport startOfDay from \"date-fns/startOfDay\";\nimport endOfDay from \"date-fns/endOfDay\";\nimport add from \"date-fns/add\";\nimport isAfter from \"date-fns/isAfter\";\n\ntype DatePickerProviderProps = DatePickerProps & {\n children: React.ReactNode;\n};\n\ninterface DatePickerInternalState {\n startDate: Date | null;\n endDate: Date | null;\n focusedInput: FocusedInput | null;\n}\n\nexport const DatePickerProvider = ({\n children,\n dateFormat = defaultDateFormat,\n endDate,\n inputProps,\n maxDate,\n maxDaysInRange,\n maxYear,\n minDate,\n minYear,\n onDateChange,\n placement = \"bottom\",\n startDate,\n withDateRange,\n}: DatePickerProviderProps): React.JSX.Element => {\n const [state, setState] = useState<DatePickerInternalState>({\n startDate,\n endDate: endDate || startDate,\n focusedInput: null,\n });\n\n /**\n * Calculates the max booking date based on the following criteria:\n * _maxDaysInRange_\n * * should only ever be used by date ranges\n * * should take precedence over the maxDate value\n * * should use it's value plus the start date of the range to calculate the max date\n * _maxDate_\n * * can be passed to either a single date input or a date range\n * * if provided it will be ignored if maxDaysInRange is passed\n * If neither of these values is specified return undefined\n */\n const getMaxBookingDate = useCallback(\n (startDate: Date | null) => {\n if (maxDaysInRange && startDate) {\n return add(startDate, { days: maxDaysInRange });\n } else if (maxDate) {\n return maxDate;\n }\n\n return;\n },\n [maxDate, maxDaysInRange],\n );\n\n const onDatesChange = (data: DatePickerInternalState): void => {\n if (!data) {\n return;\n }\n\n // Default the end date to the start date if no value is provided\n if (!data.endDate) {\n data.endDate = data.startDate;\n }\n\n // If end date exceeds new max booking date, reset the end date value\n const _maxBookingDate = getMaxBookingDate(data.startDate);\n if (\n data.endDate &&\n _maxBookingDate &&\n isAfter(data.endDate, _maxBookingDate)\n ) {\n data.endDate = null;\n }\n\n // Set the start date to start of day and end date to end of day to create a range\n data.startDate = data.startDate\n ? startOfDay(data.startDate)\n : data.startDate;\n data.endDate = data.endDate ? endOfDay(data.endDate) : data.endDate;\n\n setState({\n ...data,\n focusedInput: data.focusedInput || FocusedInput.StartDate,\n });\n if (!withDateRange && onDateChange) {\n onDateChange(data);\n }\n };\n\n const clearDates = useCallback(({ open }: { open?: boolean }) => {\n setState({\n startDate: null,\n endDate: null,\n focusedInput: open ? FocusedInput.StartDate : null,\n });\n }, []);\n\n const {\n activeMonths,\n firstDayOfWeek,\n focusedDate,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n isDateBlocked,\n isDateFocused,\n isDateHovered,\n isDateSelected,\n isFirstOrLastSelectedDate,\n onDateFocus,\n onDateHover,\n onDateSelect,\n } = useDatepicker({\n endDate: state.endDate,\n focusedInput: state.focusedInput,\n initialVisibleMonth: state.startDate || today,\n // Only show max disabled dates for date range when focused on end date input\n maxBookingDate:\n withDateRange && state.focusedInput === FocusedInput.StartDate\n ? undefined\n : getMaxBookingDate(state.startDate),\n minBookingDate: minDate,\n minBookingDays: 1,\n numberOfMonths: 1,\n onDatesChange,\n startDate: state.startDate,\n ...(!withDateRange && { exactMinBookingDays: true }),\n });\n\n const navigateToFocusedInputDate = useCallback(\n (focusedInput: FocusedInput | null) => {\n if (focusedInput === FocusedInput.EndDate && state.endDate) {\n goToDate(state.endDate);\n } else if (state.startDate) {\n goToDate(state.startDate);\n }\n },\n [goToDate, state.endDate, state.startDate],\n );\n\n const setFocusedInput = useCallback(\n (focusedInput: FocusedInput | null): void => {\n setState((prevState) => ({ ...prevState, focusedInput }));\n navigateToFocusedInputDate(focusedInput);\n },\n [navigateToFocusedInputDate],\n );\n\n const handleOpen = (): void => {\n if (inputProps?.disabled) return;\n\n // Default to start date input on open if no start date value has been set\n if (!state.startDate || !withDateRange) {\n setFocusedInput(FocusedInput.StartDate);\n }\n };\n\n const handleClose = useCallback((): void => {\n setFocusedInput(null);\n\n if (withDateRange && onDateChange) {\n setTimeout(() => {\n onDateChange({ startDate: state.startDate, endDate: state.endDate });\n }, 200);\n }\n }, [\n withDateRange,\n onDateChange,\n setFocusedInput,\n state.endDate,\n state.startDate,\n ]);\n\n const activeMonth = useMemo(() => activeMonths[0], [activeMonths]);\n\n // Listen for external changes to start and end dates and update internal state\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n startDate,\n endDate: endDate || startDate,\n }));\n }, [startDate, endDate]);\n\n return (\n <DatePickerContext.Provider\n value={{\n activeMonth,\n activeMonths,\n dateFormat: dateFormat || defaultDateFormat,\n endDate: state.endDate || null,\n firstDayOfWeek,\n focusedDate: focusedDate || defaultFocusedDate,\n focusedInput: state.focusedInput,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n setFocusedInput,\n isDateBlocked,\n isDateFocused,\n isDateHovered,\n withDateRange: withDateRange || false,\n isDateSelected,\n isFirstOrLastSelectedDate,\n maxDate,\n maxYear: maxYear || defaultMaxYear,\n minDate,\n minYear: minYear || defaultMinYear,\n onDateChange,\n onDateFocus,\n onDateHover,\n onDateSelect,\n startDate: state.startDate,\n onClose: handleClose,\n clearDates,\n }}\n >\n <CPopover.Root\n onOpenChange={({ open }) => {\n if (open) {\n handleOpen();\n } else {\n setFocusedInput(null);\n }\n }}\n positioning={{ placement }}\n variant=\"default\"\n >\n {children}\n </CPopover.Root>\n </DatePickerContext.Provider>\n );\n};\n","import isAfter from \"date-fns/isAfter\";\nimport isBefore from \"date-fns/isBefore\";\n\nexport const isDateAfterMin = (date: Date, minDate?: Date): boolean =>\n minDate ? isAfter(date, minDate) : true;\nexport const isDateBeforeMax = (date: Date, maxDate?: Date): boolean =>\n maxDate ? isBefore(date, maxDate) : true;\n","import React, { ChangeEvent } from \"react\";\nimport { Flex } from \"@chakra-ui/react/flex\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport {\n TextInput,\n TextInputProps,\n} from \"components/TextInput/textInput.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { Text } from \"components/Text/text.component\";\nimport isDate from \"date-fns/isDate\";\nimport { getInputValue, parseDate } from \"@datepicker-react/hooks\";\nimport { isDateAfterMin, isDateBeforeMax } from \"./datePickerInput.utils\";\nimport {\n FocusedInput,\n today,\n useDatePickerContext,\n} from \"../../context/datePicker.context\";\nimport format from \"date-fns/format\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\ninterface DatePickerInputProps {\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n}\n\nexport function DatePickerInput({\n inputProps,\n}: DatePickerInputProps): React.JSX.Element {\n const {\n setFocusedInput,\n startDate,\n endDate,\n focusedInput,\n dateFormat,\n withDateRange,\n minDate,\n maxDate,\n onDateChange,\n onDateSelect,\n onClose,\n } = useDatePickerContext();\n const { open, setOpen } = usePopoverContext();\n const iconSize = inputProps?.size || \"md\";\n\n const onKeyDown = (e: React.KeyboardEvent): void => {\n if (e.key === \"Enter\" && open) {\n setOpen(false);\n onClose();\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onInputChange = (e: ChangeEvent<HTMLInputElement>): void => {\n const dateValue = e.target.value;\n const parsedDate = parseDate(dateValue, dateFormat, today);\n\n if (\n dateValue.length === dateFormat.length &&\n isDate(parsedDate) &&\n isDateAfterMin(parsedDate, minDate) &&\n isDateBeforeMax(parsedDate, maxDate)\n ) {\n onDateSelect(parsedDate);\n }\n\n // Trigger change when input is empty\n if (!dateValue.length && onDateChange) {\n onDateChange({ startDate: null, endDate: null });\n }\n };\n\n return (\n <HStack\n w=\"100%\"\n className=\"DatePicker__Trigger\"\n data-testid=\"kibble-datepicker-trigger\"\n >\n <TextInput\n className=\"DatePicker__Input--Start\"\n data-testid=\"kibble-datepicker-input-start\"\n autoComplete=\"off\"\n rightElement={\n <Flex\n {...(!inputProps?.disabled && {\n onClick: (): void => setFocusedInput(FocusedInput.StartDate),\n })}\n h=\"100%\"\n align=\"center\"\n >\n <Icon name=\"calendarDate\" size={iconSize} />\n </Flex>\n }\n value={getInputValue(startDate, dateFormat, \"\")}\n onChange={onInputChange}\n onKeyDown={onKeyDown}\n {...(!inputProps?.disabled && {\n onFocus: (): void => {\n setFocusedInput(FocusedInput.StartDate);\n },\n })}\n placeholder={format(today, dateFormat).toString()}\n {...(focusedInput === FocusedInput.StartDate && {\n \"data-focus\": true,\n })}\n {...inputProps}\n />\n {withDateRange && (\n <>\n <Text> - </Text>\n <TextInput\n className=\"DatePicker__Input--End\"\n data-testid=\"kibble-datepicker-input-end\"\n rightElement={\n <Flex\n {...(!inputProps?.disabled && {\n onClick: (): void => setFocusedInput(FocusedInput.StartDate),\n })}\n h=\"100%\"\n align=\"center\"\n >\n <Icon name=\"calendarDate\" size={iconSize} />\n </Flex>\n }\n value={getInputValue(endDate, dateFormat, \"\")}\n onChange={onInputChange}\n {...(!inputProps?.disabled && {\n onFocus: (): void => setFocusedInput(FocusedInput.EndDate),\n })}\n onKeyDown={onKeyDown}\n placeholder={format(today, dateFormat).toString()}\n {...(focusedInput === FocusedInput.EndDate && {\n \"data-focus\": true,\n })}\n {...inputProps}\n />\n </>\n )}\n </HStack>\n );\n}\n","import React, { useCallback } from \"react\";\nimport { Button } from \"components/Button/button.component\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { DateRange } from \"../../datePicker.types\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\nexport interface DatePickerFooterProps {\n buttonText?: string;\n onSubmit?: ({ startDate, endDate }: DateRange) => void;\n hideResetButton?: boolean;\n}\n\nexport function DatePickerFooter({\n buttonText = \"Apply\",\n onSubmit,\n hideResetButton,\n}: DatePickerFooterProps): React.JSX.Element {\n const { startDate, endDate, onClose, clearDates } = useDatePickerContext();\n const { open, setOpen } = usePopoverContext();\n\n const handleSubmit = useCallback((): void => {\n setOpen(false);\n onClose();\n\n if (onSubmit) {\n onSubmit({ startDate, endDate });\n }\n }, [setOpen, onClose, onSubmit, startDate, endDate]);\n\n return (\n <HStack\n w=\"100%\"\n justify={hideResetButton ? \"end\" : \"space-between\"}\n align=\"center\"\n borderTop=\"1px\"\n borderColor=\"border.default\"\n px={3}\n py={2}\n >\n {!hideResetButton && (\n <Button\n size=\"sm\"\n variant=\"ghostNeutral\"\n onClick={() => clearDates({ open })}\n >\n Clear Dates\n </Button>\n )}\n <Button size=\"sm\" onClick={handleSubmit}>\n {buttonText}\n </Button>\n </HStack>\n );\n}\n","export const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n","import React, { useMemo, useRef } from \"react\";\nimport { Menu, MenuItemProps } from \"components/Menu\";\nimport range from \"lodash-es/range\";\nimport { Button } from \"components/Button/button.component\";\nimport set from \"date-fns/set\";\nimport { today, useDatePickerContext } from \"../../context/datePicker.context\";\nimport { monthNames } from \"../../datePicker.records\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Center } from \"@chakra-ui/react/center\";\n\nexport function DatePickerHeader(): React.JSX.Element {\n const selectedMonthRef = useRef<HTMLDivElement | null>(null);\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n\n const {\n focusedDate,\n activeMonth,\n minYear,\n maxYear,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n } = useDatePickerContext();\n\n const monthMenuItems: MenuItemProps[] = useMemo(\n () =>\n monthNames.map((month, index) => ({\n label: month,\n value: String(index),\n selected: index === activeMonth?.month,\n })),\n [activeMonth?.month],\n );\n\n const yearMenuItems: MenuItemProps[] = useMemo(\n () =>\n range(minYear, maxYear + 1).map((year: number) => {\n const stringYear = String(year);\n const selected = year === activeMonth?.year;\n return {\n label: stringYear,\n value: stringYear,\n selected,\n ...(selected && { ref: selectedYearRef }),\n };\n }),\n [activeMonth?.year, maxYear, minYear],\n );\n\n const handleMonthChange = (selectedItem: string | undefined): void =>\n goToDate(\n set(focusedDate || today, {\n month: Number(selectedItem),\n year: activeMonth?.year,\n }),\n );\n\n const handleYearChange = (selectedItem: string | undefined): void =>\n goToDate(\n set(focusedDate || today, {\n month: activeMonth?.month,\n year: Number(selectedItem),\n }),\n );\n\n const scrollToSelectedItem = ({ type }: { type: \"month\" | \"year\" }): void => {\n setTimeout(() => {\n const selectedNode =\n type === \"year\" ? selectedYearRef?.current : selectedMonthRef?.current;\n if (selectedNode) {\n selectedNode.scrollIntoView({ block: \"center\" });\n }\n });\n };\n\n return (\n <HStack\n className=\"DatePicker__Header\"\n data-testid=\"kibble-datepicker-header\"\n w=\"100%\"\n justify=\"space-between\"\n borderBottom=\"1px\"\n borderColor=\"border.default\"\n py={2}\n px={3}\n >\n <Button\n iconName=\"chevronLeft\"\n onClick={goToPreviousMonths}\n variant=\"ghostNeutral\"\n size=\"sm\"\n />\n <Center gap={2} h=\"100%\">\n <Menu\n data-testid=\"kibble-datepicker-month-menu\"\n buttonProps={{\n variant: \"tertiary\",\n text: monthNames[activeMonth?.month || 0],\n size: \"sm\",\n }}\n listProps={{\n menuItems: monthMenuItems,\n onSelect: handleMonthChange,\n maxH: 250,\n }}\n onOpenChange={({ open }) => {\n if (open) scrollToSelectedItem({ type: \"month\" });\n }}\n />\n <Menu\n data-testid=\"kibble-datepicker-year-menu\"\n buttonProps={{\n variant: \"tertiary\",\n text: String(activeMonth?.year),\n size: \"sm\",\n }}\n listProps={{\n menuItems: yearMenuItems,\n onSelect: handleYearChange,\n maxH: 250,\n }}\n onOpenChange={({ open }) => {\n if (open) scrollToSelectedItem({ type: \"year\" });\n }}\n />\n </Center>\n <Button\n iconName=\"chevronRight\"\n onClick={goToNextMonths}\n variant=\"ghostNeutral\"\n size=\"sm\"\n />\n </HStack>\n );\n}\n","import {\n defineSlotRecipe,\n SystemStyleObject,\n} from \"@chakra-ui/react/styled-system\";\nimport { DayVariant } from \"./datePickerCalendarDay.types\";\n\ntype CalendarDaySlot = \"root\" | \"indicator\";\nconst calendarDaySlots: CalendarDaySlot[] = [\"root\", \"indicator\"] as const;\n\ntype CalendarDaySlotStyles = {\n [key in CalendarDaySlot]?: SystemStyleObject;\n};\n\nconst datePickerCalendarDayVariantStyles: Record<\n DayVariant,\n CalendarDaySlotStyles\n> = {\n default: {\n root: {\n borderColor: \"transparent\",\n _hover: {\n bg: \"background.secondaryAlpha.hover\",\n },\n },\n },\n disabled: {\n root: {\n bg: \"background.subtle\",\n borderColor: \"transparent\",\n cursor: \"not-allowed\",\n opacity: 0.4,\n },\n },\n inRange: {\n root: {\n bg: \"background.secondaryAlpha.hover\",\n borderColor: \"transparent\",\n borderRadius: \"none\",\n color: \"text.info\",\n },\n },\n selectedEnd: {\n root: {\n borderColor: \"border.focus\",\n color: \"text.info\",\n },\n },\n selectedStart: {\n root: {\n bg: \"background.secondary\",\n borderColor: \"border.focus\",\n color: \"text.contrast\",\n _hover: {\n bg: \"background.secondary\",\n },\n },\n },\n};\n\nexport const datePickerCalendarDayRecipe = defineSlotRecipe({\n slots: calendarDaySlots,\n base: {\n indicator: {\n position: \"absolute\",\n h: 6,\n right: -4,\n top: -4,\n transform: \"rotate(45deg)\",\n w: 6,\n },\n root: {\n border: \"2px\",\n borderRadius: \"4px\",\n color: \"text.subtle\",\n cursor: \"pointer\",\n fontSize: \"sm\",\n fontWeight: \"normal !important\",\n position: \"relative\",\n px: 3,\n py: 1,\n overflow: \"hidden\",\n },\n },\n variants: {\n variant: datePickerCalendarDayVariantStyles,\n isToday: {\n true: {\n indicator: {\n bg: \"background.secondary\",\n },\n },\n false: {},\n },\n withDateRange: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [\n {\n variant: \"selectedStart\",\n isToday: true,\n css: {\n indicator: {\n bg: \"background\",\n },\n },\n },\n {\n withDateRange: true,\n variant: \"selectedStart\",\n css: {\n root: {\n borderRightRadius: 0,\n },\n },\n },\n {\n withDateRange: true,\n variant: \"selectedEnd\",\n css: {\n root: {\n borderLeftRadius: 0,\n },\n },\n },\n ],\n defaultVariants: {},\n});\n","import React, { useRef, useMemo } from \"react\";\nimport { useDay } from \"@datepicker-react/hooks\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { Button } from \"components/Button/button.component\";\nimport format from \"date-fns/format\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { DayVariant } from \"./datePickerCalendarDay.types\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { datePickerCalendarDayRecipe } from \"./datePickerCalendarDay.recipe\";\n\ninterface DayProps {\n dayLabel: string;\n date: Date;\n onDaySelected: () => void;\n}\n\nexport const DatePickerCalendarDay = ({\n dayLabel,\n date,\n onDaySelected,\n}: DayProps): React.JSX.Element => {\n const today = new Date();\n const dayRef = useRef<HTMLButtonElement>(null);\n const { startDate, endDate, dateFormat, withDateRange } =\n useDatePickerContext();\n const formattedDates = useMemo(\n () => ({\n currentDay: format(date, dateFormat),\n startDate: startDate && format(startDate, dateFormat),\n endDate: endDate && format(endDate, dateFormat),\n }),\n [date, dateFormat, endDate, startDate],\n );\n const isRangeStart = formattedDates.currentDay === formattedDates.startDate;\n const isRangeEnd = formattedDates.currentDay === formattedDates.endDate;\n const isToday = formattedDates.currentDay === format(today, dateFormat);\n\n const {\n focusedDate,\n isDateFocused,\n isDateSelected,\n isDateHovered,\n isDateBlocked,\n isFirstOrLastSelectedDate,\n onDateSelect,\n onDateFocus,\n onDateHover,\n } = useDatePickerContext();\n\n const {\n disabledDate,\n isSelected,\n onClick,\n onKeyDown,\n onMouseEnter,\n tabIndex,\n } = useDay({\n date,\n focusedDate,\n isDateFocused,\n isDateSelected,\n isDateHovered,\n isDateBlocked,\n isFirstOrLastSelectedDate,\n onDateFocus,\n onDateSelect,\n onDateHover,\n dayRef: dayRef as React.RefObject<HTMLButtonElement>,\n });\n\n const buttonVariant = useMemo((): DayVariant => {\n switch (true) {\n case disabledDate:\n return \"disabled\";\n case isRangeStart:\n return \"selectedStart\";\n case isRangeEnd:\n return \"selectedEnd\";\n case isSelected && !isRangeStart && !isRangeEnd:\n return \"inRange\";\n default:\n return \"default\";\n }\n }, [disabledDate, isRangeEnd, isRangeStart, isSelected]);\n\n const recipe = useSlotRecipe({ recipe: datePickerCalendarDayRecipe });\n const styles = recipe({ variant: buttonVariant, isToday, withDateRange });\n\n if (!dayLabel) {\n return <></>;\n }\n\n const onSelectDay = (): void => {\n if (buttonVariant === \"disabled\") {\n return;\n }\n\n onClick();\n onDaySelected();\n };\n\n return (\n <Button\n className=\"DatePicker__Day\"\n data-testid={`kibble-datepicker-day--${formattedDates.currentDay}`}\n onClick={onSelectDay}\n onKeyDown={onKeyDown}\n onMouseEnter={onMouseEnter}\n tabIndex={tabIndex}\n ref={dayRef}\n unstyled\n css={styles.root}\n >\n {isToday && <Box css={styles.indicator} />}\n {dayLabel}\n </Button>\n );\n};\n","import React, { useRef } from \"react\";\nimport { useMonth } from \"@datepicker-react/hooks\";\nimport { Text } from \"components/Text/text.component\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { Center } from \"@chakra-ui/react/center\";\nimport { Grid, GridItem } from \"@chakra-ui/react/grid\";\nimport { DatePickerCalendarDay } from \"../DatePickerDay/datePickerCalendarDay.component\";\nimport {\n currentMonth,\n currentYear,\n useDatePickerContext,\n} from \"../../context/datePicker.context\";\n\nexport interface MonthProps {\n onDaySelected: () => void;\n}\n\nexport const DatePickerCalendarMonth = ({\n onDaySelected,\n}: MonthProps): React.JSX.Element => {\n const ref = useRef<HTMLDivElement | null>(null);\n const { firstDayOfWeek, activeMonth } = useDatePickerContext();\n\n const { days, weekdayLabels } = useMonth({\n year: activeMonth?.year || currentYear,\n month: activeMonth?.month !== undefined ? activeMonth.month : currentMonth,\n firstDayOfWeek,\n });\n\n return (\n <Box\n ref={ref}\n className=\"DatePicker__Month\"\n data-testid=\"kibble-datepicker-month\"\n >\n <Grid templateColumns=\"repeat(7, 1fr)\" my={2}>\n {weekdayLabels.map((weekdayLabel: string) => (\n <GridItem key={weekdayLabel}>\n <Center>\n <Text size=\"xs\" variant=\"subtle\">\n {weekdayLabel}\n </Text>\n </Center>\n </GridItem>\n ))}\n </Grid>\n <Grid templateColumns=\"repeat(7, 1fr)\">\n {days.map((day, index) =>\n typeof day === \"object\" ? (\n <DatePickerCalendarDay\n key={day.date.toString()}\n date={day.date}\n dayLabel={day.dayLabel}\n onDaySelected={onDaySelected}\n />\n ) : (\n <div key={index} />\n ),\n )}\n </Grid>\n </Box>\n );\n};\n","import React from \"react\";\nimport { Grid } from \"@chakra-ui/react/grid\";\nimport { DatePickerCalendarMonth } from \"../DatePickerMonth/datePickerCalendarMonth.component\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\nexport function DatePickerCalendar(): React.JSX.Element {\n const { withDateRange, activeMonths, onClose } = useDatePickerContext();\n const { setOpen } = usePopoverContext();\n\n const handleDaySelected = (): void => {\n if (!withDateRange) {\n setOpen(false);\n onClose();\n }\n };\n\n return (\n <Grid\n className=\"DatePicker__Calendar\"\n data-testid=\"kibble-datepicker-calendar\"\n gap=\"0 64px\"\n px={3}\n py={2}\n >\n {activeMonths.map((month) => (\n <DatePickerCalendarMonth\n key={`${month.year}-${month.month}`}\n onDaySelected={handleDaySelected}\n />\n ))}\n </Grid>\n );\n}\n","import React from \"react\";\nimport { DateFormats, DateRange } from \"./datePicker.types\";\nimport { TextInputProps } from \"components/TextInput/textInput.component\";\nimport { Placement } from \"shared/types/placement\";\nimport { DatePickerProvider } from \"./context/datePicker.provider\";\nimport { DatePickerInput } from \"./components/DatePickerInput/datePickerInput.component\";\nimport {\n DatePickerFooter,\n DatePickerFooterProps,\n} from \"./components/DatePickerFooter/datePickerFooter.component\";\nimport { DatePickerHeader } from \"./components/DatePickerHeader/datePickerHeader.component\";\nimport { DatePickerCalendar } from \"./components/DatePickerCalendar/datePickerCalendar.component\";\nimport { Popover as CPopover } from \"@chakra-ui/react/popover\";\nimport { Portal } from \"@chakra-ui/react/portal\";\n\nexport interface DatePickerProps {\n dateFormat?: string | DateFormats;\n endDate?: Date | null;\n footerProps?: DatePickerFooterProps;\n hideFooter?: boolean;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n maxDate?: Date;\n maxYear?: number;\n maxDaysInRange?: number;\n minDate?: Date;\n minYear?: number;\n onDateChange?: ({ startDate, endDate }: DateRange) => void;\n placement?: Placement;\n startDate: Date | null;\n withDateRange?: boolean;\n}\n\nexport const DatePicker = (props: DatePickerProps): React.JSX.Element => {\n const {\n footerProps,\n hideFooter = false,\n inputProps,\n withDateRange = false,\n } = props;\n\n return (\n <DatePickerProvider {...props}>\n <CPopover.Trigger>\n <DatePickerInput inputProps={inputProps} />\n </CPopover.Trigger>\n <Portal>\n <CPopover.Positioner\n className=\"DatePicker\"\n data-testid=\"kibble-datepicker\"\n >\n <CPopover.Content\n className=\"DatePicker__Content\"\n data-testid=\"kibble-datepicker-content\"\n minW=\"340px\"\n >\n <CPopover.Arrow />\n <CPopover.Body p=\"0 !important\">\n <DatePickerHeader />\n <DatePickerCalendar />\n {withDateRange && !hideFooter && (\n <DatePickerFooter {...footerProps} />\n )}\n </CPopover.Body>\n </CPopover.Content>\n </CPopover.Positioner>\n </Portal>\n </DatePickerProvider>\n );\n};\n"],"names":["DateFormats","FocusedInput","today","currentYear","currentMonth","defaultFocusedDate","defaultMinYear","defaultMaxYear","defaultDateFormat","initialDatePickerState","DatePickerContext","createContext","useDatePickerContext","useContext","DatePickerProvider","children","dateFormat","endDate","inputProps","maxDate","maxDaysInRange","maxYear","minDate","minYear","onDateChange","placement","startDate","withDateRange","state","setState","useState","getMaxBookingDate","useCallback","add","onDatesChange","data","_maxBookingDate","isAfter","startOfDay","endOfDay","clearDates","open","activeMonths","firstDayOfWeek","focusedDate","goToDate","goToNextMonths","goToPreviousMonths","isDateBlocked","isDateFocused","isDateHovered","isDateSelected","isFirstOrLastSelectedDate","onDateFocus","onDateHover","onDateSelect","useDatepicker","navigateToFocusedInputDate","focusedInput","setFocusedInput","prevState","handleOpen","handleClose","activeMonth","useMemo","useEffect","jsx","CPopover.Root","isDateAfterMin","date","isDateBeforeMax","isBefore","DatePickerInput","onClose","setOpen","usePopoverContext","iconSize","onKeyDown","e","onInputChange","dateValue","parsedDate","parseDate","isDate","jsxs","HStack","TextInput","Flex","Icon","getInputValue","format","Fragment","Text","DatePickerFooter","buttonText","onSubmit","hideResetButton","handleSubmit","Button","monthNames","DatePickerHeader","selectedMonthRef","useRef","selectedYearRef","monthMenuItems","month","index","yearMenuItems","range","year","stringYear","selected","handleMonthChange","selectedItem","set","handleYearChange","scrollToSelectedItem","type","selectedNode","Center","Menu","calendarDaySlots","datePickerCalendarDayVariantStyles","datePickerCalendarDayRecipe","defineSlotRecipe","DatePickerCalendarDay","dayLabel","onDaySelected","dayRef","formattedDates","isRangeStart","isRangeEnd","isToday","disabledDate","isSelected","onClick","onMouseEnter","tabIndex","useDay","buttonVariant","styles","useSlotRecipe","onSelectDay","Box","DatePickerCalendarMonth","ref","days","weekdayLabels","useMonth","Grid","weekdayLabel","GridItem","day","DatePickerCalendar","handleDaySelected","DatePicker","props","footerProps","hideFooter","CPopover.Trigger","Portal","CPopover.Positioner","CPopover.Content","CPopover.Arrow","CPopover.Body"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datePicker.component-CY61BztN.js","sources":["../../src/components/DatePicker/datePicker.types.ts","../../src/components/DatePicker/context/datePicker.context.tsx","../../src/components/DatePicker/context/datePicker.provider.tsx","../../src/components/DatePicker/components/DatePickerInput/datePickerInput.utils.ts","../../src/components/DatePicker/components/DatePickerInput/datePickerInput.component.tsx","../../src/components/DatePicker/components/DatePickerFooter/datePickerFooter.component.tsx","../../src/components/DatePicker/datePicker.records.ts","../../src/components/DatePicker/components/DatePickerHeader/datePickerHeader.component.tsx","../../src/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.recipe.ts","../../src/components/DatePicker/components/DatePickerDay/datePickerCalendarDay.component.tsx","../../src/components/DatePicker/components/DatePickerMonth/datePickerCalendarMonth.component.tsx","../../src/components/DatePicker/components/DatePickerCalendar/datePickerCalendar.component.tsx","../../src/components/DatePicker/datePicker.component.tsx"],"sourcesContent":["export enum DateFormats {\n \"ShortDate\" = \"MM/dd/yyyy\",\n \"LongDate\" = \"MMM dd yyyy\",\n \"DayOfWeekDayOfMonth\" = \"eeee, MMMM do\",\n}\n\nexport interface DateRange {\n startDate: Date | null;\n endDate?: Date | null;\n}\n","import { FirstDayOfWeek, MonthType } from \"@datepicker-react/hooks\";\nimport { useContext, createContext } from \"react\";\nimport { DateFormats, DateRange } from \"../datePicker.types\";\n\nexport enum FocusedInput {\n StartDate = \"startDate\",\n EndDate = \"endDate\",\n}\n\nexport interface IDatePickerContext {\n activeMonth?: MonthType;\n dateFormat: DateFormats | string;\n endDate: Date | null;\n focusedInput: FocusedInput | null;\n setFocusedInput: (focusedInput: FocusedInput | null) => void;\n withDateRange: boolean;\n maxDate?: Date;\n maxYear: number;\n minDate?: Date;\n minYear: number;\n onDateChange?: ({ startDate, endDate }: DateRange) => void;\n startDate: Date | null;\n onClose: () => void;\n clearDates: ({ open }: { open?: boolean }) => void;\n // The following are all values returned by the datepicker-react useDatePicker hook\n // Setting them here in our own context to be referenced in child components\n focusedDate: Date | null;\n firstDayOfWeek?: FirstDayOfWeek;\n activeMonths: MonthType[];\n isDateFocused: (date: Date) => boolean;\n isDateSelected: (date: Date) => boolean;\n isDateHovered: (date: Date) => boolean;\n isDateBlocked: (date: Date) => boolean;\n isFirstOrLastSelectedDate: (date: Date) => boolean;\n onDateFocus: (date: Date) => void;\n onDateHover: (date: Date | null) => void;\n onDateSelect: (date: Date) => void;\n goToPreviousMonths: () => void;\n goToNextMonths: () => void;\n goToDate: (date: Date) => void;\n}\n\nexport const today = new Date();\nexport const currentYear = today.getFullYear();\nexport const currentMonth = today.getMonth();\n\nexport const defaultFocusedDate = today;\nexport const defaultMinYear = currentYear - 100;\nexport const defaultMaxYear = currentYear + 5;\nexport const defaultDateFormat = DateFormats.ShortDate;\n\nconst initialDatePickerState: IDatePickerContext = {\n dateFormat: defaultDateFormat,\n endDate: null,\n focusedInput: null,\n withDateRange: false,\n maxYear: defaultMaxYear,\n minYear: defaultMinYear,\n startDate: null,\n onClose: (): void => {\n throw new Error(\"onClose(): boolean not implemented\");\n },\n setFocusedInput: (): void => {\n throw new Error(\"setFocusedInput(): boolean not implemented\");\n },\n focusedDate: today,\n firstDayOfWeek: undefined,\n activeMonths: [],\n isDateFocused: (): boolean => {\n throw new Error(\"isDateFocused(): boolean not implemented\");\n },\n isDateSelected: (): boolean => {\n throw new Error(\"isDateSelected(): boolean not implemented\");\n },\n isDateHovered: (): boolean => {\n throw new Error(\"isDateHovered(): boolean not implemented\");\n },\n isDateBlocked: (): boolean => {\n throw new Error(\"isDateBlocked(): boolean not implemented\");\n },\n isFirstOrLastSelectedDate: (): boolean => {\n throw new Error(\"isFirstOrLastSelectedDate(): boolean not implemented\");\n },\n onDateFocus: (): void => {\n throw new Error(\"onDateFocus(): boolean not implemented\");\n },\n onDateHover: (): void => {\n throw new Error(\"onDateHover(): boolean not implemented\");\n },\n onDateSelect: (): Date => {\n throw new Error(\"onDateSelect(): boolean not implemented\");\n },\n goToPreviousMonths: (): Date => {\n throw new Error(\"goToPreviousMonths(): boolean not implemented\");\n },\n goToNextMonths: (): Date => {\n throw new Error(\"goToNextMonths(): boolean not implemented\");\n },\n goToDate: (): Date => {\n throw new Error(\"goToDate(): boolean not implemented\");\n },\n clearDates: (): void => {\n throw new Error(\"clearDates(): boolean not implemented\");\n },\n};\n\nexport const DatePickerContext = createContext<IDatePickerContext>(\n initialDatePickerState,\n);\n\nexport const useDatePickerContext = (): IDatePickerContext =>\n useContext<IDatePickerContext>(DatePickerContext);\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Popover as CPopover } from \"@chakra-ui/react/popover\";\nimport { DatePickerProps } from \"../datePicker.component\";\nimport { useDatepicker } from \"@datepicker-react/hooks\";\nimport {\n DatePickerContext,\n defaultDateFormat,\n defaultFocusedDate,\n defaultMaxYear,\n defaultMinYear,\n FocusedInput,\n today,\n} from \"./datePicker.context\";\nimport startOfDay from \"date-fns/startOfDay\";\nimport endOfDay from \"date-fns/endOfDay\";\nimport add from \"date-fns/add\";\nimport isAfter from \"date-fns/isAfter\";\n\ntype DatePickerProviderProps = DatePickerProps & {\n children: React.ReactNode;\n};\n\ninterface DatePickerInternalState {\n startDate: Date | null;\n endDate: Date | null;\n focusedInput: FocusedInput | null;\n}\n\nexport const DatePickerProvider = ({\n children,\n dateFormat = defaultDateFormat,\n endDate,\n inputProps,\n maxDate,\n maxDaysInRange,\n maxYear,\n minDate,\n minYear,\n onDateChange,\n placement = \"bottom\",\n startDate,\n withDateRange,\n}: DatePickerProviderProps): React.JSX.Element => {\n const [state, setState] = useState<DatePickerInternalState>({\n startDate,\n endDate: endDate || startDate,\n focusedInput: null,\n });\n\n /**\n * Calculates the max booking date based on the following criteria:\n * _maxDaysInRange_\n * * should only ever be used by date ranges\n * * should take precedence over the maxDate value\n * * should use it's value plus the start date of the range to calculate the max date\n * _maxDate_\n * * can be passed to either a single date input or a date range\n * * if provided it will be ignored if maxDaysInRange is passed\n * If neither of these values is specified return undefined\n */\n const getMaxBookingDate = useCallback(\n (startDate: Date | null) => {\n if (maxDaysInRange && startDate) {\n return add(startDate, { days: maxDaysInRange });\n } else if (maxDate) {\n return maxDate;\n }\n\n return;\n },\n [maxDate, maxDaysInRange],\n );\n\n const onDatesChange = (data: DatePickerInternalState): void => {\n if (!data) {\n return;\n }\n\n // Default the end date to the start date if no value is provided\n if (!data.endDate) {\n data.endDate = data.startDate;\n }\n\n // If end date exceeds new max booking date, reset the end date value\n const _maxBookingDate = getMaxBookingDate(data.startDate);\n if (\n data.endDate &&\n _maxBookingDate &&\n isAfter(data.endDate, _maxBookingDate)\n ) {\n data.endDate = null;\n }\n\n // Set the start date to start of day and end date to end of day to create a range\n data.startDate = data.startDate\n ? startOfDay(data.startDate)\n : data.startDate;\n data.endDate = data.endDate ? endOfDay(data.endDate) : data.endDate;\n\n setState({\n ...data,\n focusedInput: data.focusedInput || FocusedInput.StartDate,\n });\n if (!withDateRange && onDateChange) {\n onDateChange(data);\n }\n };\n\n const clearDates = useCallback(({ open }: { open?: boolean }) => {\n setState({\n startDate: null,\n endDate: null,\n focusedInput: open ? FocusedInput.StartDate : null,\n });\n }, []);\n\n const {\n activeMonths,\n firstDayOfWeek,\n focusedDate,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n isDateBlocked,\n isDateFocused,\n isDateHovered,\n isDateSelected,\n isFirstOrLastSelectedDate,\n onDateFocus,\n onDateHover,\n onDateSelect,\n } = useDatepicker({\n endDate: state.endDate,\n focusedInput: state.focusedInput,\n initialVisibleMonth: state.startDate || today,\n // Only show max disabled dates for date range when focused on end date input\n maxBookingDate:\n withDateRange && state.focusedInput === FocusedInput.StartDate\n ? undefined\n : getMaxBookingDate(state.startDate),\n minBookingDate: minDate,\n minBookingDays: 1,\n numberOfMonths: 1,\n onDatesChange,\n startDate: state.startDate,\n ...(!withDateRange && { exactMinBookingDays: true }),\n });\n\n const navigateToFocusedInputDate = useCallback(\n (focusedInput: FocusedInput | null) => {\n if (focusedInput === FocusedInput.EndDate && state.endDate) {\n goToDate(state.endDate);\n } else if (state.startDate) {\n goToDate(state.startDate);\n }\n },\n [goToDate, state.endDate, state.startDate],\n );\n\n const setFocusedInput = useCallback(\n (focusedInput: FocusedInput | null): void => {\n setState((prevState) => ({ ...prevState, focusedInput }));\n navigateToFocusedInputDate(focusedInput);\n },\n [navigateToFocusedInputDate],\n );\n\n const handleOpen = (): void => {\n if (inputProps?.disabled) return;\n\n // Default to start date input on open if no start date value has been set\n if (!state.startDate || !withDateRange) {\n setFocusedInput(FocusedInput.StartDate);\n }\n };\n\n const handleClose = useCallback((): void => {\n setFocusedInput(null);\n\n if (withDateRange && onDateChange) {\n setTimeout(() => {\n onDateChange({ startDate: state.startDate, endDate: state.endDate });\n }, 200);\n }\n }, [\n withDateRange,\n onDateChange,\n setFocusedInput,\n state.endDate,\n state.startDate,\n ]);\n\n const activeMonth = useMemo(() => activeMonths[0], [activeMonths]);\n\n // Listen for external changes to start and end dates and update internal state\n useEffect(() => {\n setState((prevState) => ({\n ...prevState,\n startDate,\n endDate: endDate || startDate,\n }));\n }, [startDate, endDate]);\n\n return (\n <DatePickerContext.Provider\n value={{\n activeMonth,\n activeMonths,\n dateFormat: dateFormat || defaultDateFormat,\n endDate: state.endDate || null,\n firstDayOfWeek,\n focusedDate: focusedDate || defaultFocusedDate,\n focusedInput: state.focusedInput,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n setFocusedInput,\n isDateBlocked,\n isDateFocused,\n isDateHovered,\n withDateRange: withDateRange || false,\n isDateSelected,\n isFirstOrLastSelectedDate,\n maxDate,\n maxYear: maxYear || defaultMaxYear,\n minDate,\n minYear: minYear || defaultMinYear,\n onDateChange,\n onDateFocus,\n onDateHover,\n onDateSelect,\n startDate: state.startDate,\n onClose: handleClose,\n clearDates,\n }}\n >\n <CPopover.Root\n onOpenChange={({ open }) => {\n if (open) {\n handleOpen();\n } else {\n setFocusedInput(null);\n }\n }}\n positioning={{ placement }}\n variant=\"default\"\n >\n {children}\n </CPopover.Root>\n </DatePickerContext.Provider>\n );\n};\n","import isAfter from \"date-fns/isAfter\";\nimport isBefore from \"date-fns/isBefore\";\n\nexport const isDateAfterMin = (date: Date, minDate?: Date): boolean =>\n minDate ? isAfter(date, minDate) : true;\nexport const isDateBeforeMax = (date: Date, maxDate?: Date): boolean =>\n maxDate ? isBefore(date, maxDate) : true;\n","import React, { ChangeEvent } from \"react\";\nimport { Flex } from \"@chakra-ui/react/flex\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport {\n TextInput,\n TextInputProps,\n} from \"components/TextInput/textInput.component\";\nimport { Icon } from \"components/Icon/icon.component\";\nimport { Text } from \"components/Text/text.component\";\nimport isDate from \"date-fns/isDate\";\nimport { getInputValue, parseDate } from \"@datepicker-react/hooks\";\nimport { isDateAfterMin, isDateBeforeMax } from \"./datePickerInput.utils\";\nimport {\n FocusedInput,\n today,\n useDatePickerContext,\n} from \"../../context/datePicker.context\";\nimport format from \"date-fns/format\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\ninterface DatePickerInputProps {\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n}\n\nexport function DatePickerInput({\n inputProps,\n}: DatePickerInputProps): React.JSX.Element {\n const {\n setFocusedInput,\n startDate,\n endDate,\n focusedInput,\n dateFormat,\n withDateRange,\n minDate,\n maxDate,\n onDateChange,\n onDateSelect,\n onClose,\n } = useDatePickerContext();\n const { open, setOpen } = usePopoverContext();\n const iconSize = inputProps?.size || \"md\";\n\n const onKeyDown = (e: React.KeyboardEvent): void => {\n if (e.key === \"Enter\" && open) {\n setOpen(false);\n onClose();\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n const onInputChange = (e: ChangeEvent<HTMLInputElement>): void => {\n const dateValue = e.target.value;\n const parsedDate = parseDate(dateValue, dateFormat, today);\n\n if (\n dateValue.length === dateFormat.length &&\n isDate(parsedDate) &&\n isDateAfterMin(parsedDate, minDate) &&\n isDateBeforeMax(parsedDate, maxDate)\n ) {\n onDateSelect(parsedDate);\n }\n\n // Trigger change when input is empty\n if (!dateValue.length && onDateChange) {\n onDateChange({ startDate: null, endDate: null });\n }\n };\n\n return (\n <HStack\n w=\"100%\"\n className=\"DatePicker__Trigger\"\n data-testid=\"kibble-datepicker-trigger\"\n >\n <TextInput\n className=\"DatePicker__Input--Start\"\n data-testid=\"kibble-datepicker-input-start\"\n autoComplete=\"off\"\n rightElement={\n <Flex\n {...(!inputProps?.disabled && {\n onClick: (): void => setFocusedInput(FocusedInput.StartDate),\n })}\n h=\"100%\"\n align=\"center\"\n >\n <Icon name=\"calendarDate\" size={iconSize} />\n </Flex>\n }\n value={getInputValue(startDate, dateFormat, \"\")}\n onChange={onInputChange}\n onKeyDown={onKeyDown}\n {...(!inputProps?.disabled && {\n onFocus: (): void => {\n setFocusedInput(FocusedInput.StartDate);\n },\n })}\n placeholder={format(today, dateFormat).toString()}\n {...(focusedInput === FocusedInput.StartDate && {\n \"data-focus\": true,\n })}\n {...inputProps}\n />\n {withDateRange && (\n <>\n <Text> - </Text>\n <TextInput\n className=\"DatePicker__Input--End\"\n data-testid=\"kibble-datepicker-input-end\"\n rightElement={\n <Flex\n {...(!inputProps?.disabled && {\n onClick: (): void => setFocusedInput(FocusedInput.StartDate),\n })}\n h=\"100%\"\n align=\"center\"\n >\n <Icon name=\"calendarDate\" size={iconSize} />\n </Flex>\n }\n value={getInputValue(endDate, dateFormat, \"\")}\n onChange={onInputChange}\n {...(!inputProps?.disabled && {\n onFocus: (): void => setFocusedInput(FocusedInput.EndDate),\n })}\n onKeyDown={onKeyDown}\n placeholder={format(today, dateFormat).toString()}\n {...(focusedInput === FocusedInput.EndDate && {\n \"data-focus\": true,\n })}\n {...inputProps}\n />\n </>\n )}\n </HStack>\n );\n}\n","import React, { useCallback } from \"react\";\nimport { Button } from \"components/Button/button.component\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { DateRange } from \"../../datePicker.types\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\nexport interface DatePickerFooterProps {\n buttonText?: string;\n onSubmit?: ({ startDate, endDate }: DateRange) => void;\n hideResetButton?: boolean;\n}\n\nexport function DatePickerFooter({\n buttonText = \"Apply\",\n onSubmit,\n hideResetButton,\n}: DatePickerFooterProps): React.JSX.Element {\n const { startDate, endDate, onClose, clearDates } = useDatePickerContext();\n const { open, setOpen } = usePopoverContext();\n\n const handleSubmit = useCallback((): void => {\n setOpen(false);\n onClose();\n\n if (onSubmit) {\n onSubmit({ startDate, endDate });\n }\n }, [setOpen, onClose, onSubmit, startDate, endDate]);\n\n return (\n <HStack\n w=\"100%\"\n justify={hideResetButton ? \"end\" : \"space-between\"}\n align=\"center\"\n borderTop=\"1px\"\n borderColor=\"border.default\"\n px={3}\n py={2}\n >\n {!hideResetButton && (\n <Button\n size=\"sm\"\n variant=\"ghostNeutral\"\n onClick={() => clearDates({ open })}\n >\n Clear Dates\n </Button>\n )}\n <Button size=\"sm\" onClick={handleSubmit}>\n {buttonText}\n </Button>\n </HStack>\n );\n}\n","export const monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n","import React, { useMemo, useRef } from \"react\";\nimport { Menu, MenuItemProps } from \"components/Menu\";\nimport range from \"lodash-es/range\";\nimport { Button } from \"components/Button/button.component\";\nimport set from \"date-fns/set\";\nimport { today, useDatePickerContext } from \"../../context/datePicker.context\";\nimport { monthNames } from \"../../datePicker.records\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Center } from \"@chakra-ui/react/center\";\n\nexport function DatePickerHeader(): React.JSX.Element {\n const selectedMonthRef = useRef<HTMLDivElement | null>(null);\n const selectedYearRef = useRef<HTMLDivElement | null>(null);\n\n const {\n focusedDate,\n activeMonth,\n minYear,\n maxYear,\n goToDate,\n goToNextMonths,\n goToPreviousMonths,\n } = useDatePickerContext();\n\n const monthMenuItems: MenuItemProps[] = useMemo(\n () =>\n monthNames.map((month, index) => ({\n label: month,\n value: String(index),\n selected: index === activeMonth?.month,\n })),\n [activeMonth?.month],\n );\n\n const yearMenuItems: MenuItemProps[] = useMemo(\n () =>\n range(minYear, maxYear + 1).map((year: number) => {\n const stringYear = String(year);\n const selected = year === activeMonth?.year;\n return {\n label: stringYear,\n value: stringYear,\n selected,\n ...(selected && { ref: selectedYearRef }),\n };\n }),\n [activeMonth?.year, maxYear, minYear],\n );\n\n const handleMonthChange = (selectedItem: string | undefined): void =>\n goToDate(\n set(focusedDate || today, {\n month: Number(selectedItem),\n year: activeMonth?.year,\n }),\n );\n\n const handleYearChange = (selectedItem: string | undefined): void =>\n goToDate(\n set(focusedDate || today, {\n month: activeMonth?.month,\n year: Number(selectedItem),\n }),\n );\n\n const scrollToSelectedItem = ({ type }: { type: \"month\" | \"year\" }): void => {\n setTimeout(() => {\n const selectedNode =\n type === \"year\" ? selectedYearRef?.current : selectedMonthRef?.current;\n if (selectedNode) {\n selectedNode.scrollIntoView({ block: \"center\" });\n }\n });\n };\n\n return (\n <HStack\n className=\"DatePicker__Header\"\n data-testid=\"kibble-datepicker-header\"\n w=\"100%\"\n justify=\"space-between\"\n borderBottom=\"1px\"\n borderColor=\"border.default\"\n py={2}\n px={3}\n >\n <Button\n iconName=\"chevronLeft\"\n onClick={goToPreviousMonths}\n variant=\"ghostNeutral\"\n size=\"sm\"\n />\n <Center gap={2} h=\"100%\">\n <Menu\n data-testid=\"kibble-datepicker-month-menu\"\n buttonProps={{\n variant: \"tertiary\",\n text: monthNames[activeMonth?.month || 0],\n size: \"sm\",\n }}\n listProps={{\n menuItems: monthMenuItems,\n onSelect: handleMonthChange,\n maxH: 250,\n }}\n onOpenChange={({ open }) => {\n if (open) scrollToSelectedItem({ type: \"month\" });\n }}\n />\n <Menu\n data-testid=\"kibble-datepicker-year-menu\"\n buttonProps={{\n variant: \"tertiary\",\n text: String(activeMonth?.year),\n size: \"sm\",\n }}\n listProps={{\n menuItems: yearMenuItems,\n onSelect: handleYearChange,\n maxH: 250,\n }}\n onOpenChange={({ open }) => {\n if (open) scrollToSelectedItem({ type: \"year\" });\n }}\n />\n </Center>\n <Button\n iconName=\"chevronRight\"\n onClick={goToNextMonths}\n variant=\"ghostNeutral\"\n size=\"sm\"\n />\n </HStack>\n );\n}\n","import {\n defineSlotRecipe,\n SystemStyleObject,\n} from \"@chakra-ui/react/styled-system\";\nimport { DayVariant } from \"./datePickerCalendarDay.types\";\n\ntype CalendarDaySlot = \"root\" | \"indicator\";\nconst calendarDaySlots: CalendarDaySlot[] = [\"root\", \"indicator\"] as const;\n\ntype CalendarDaySlotStyles = {\n [key in CalendarDaySlot]?: SystemStyleObject;\n};\n\nconst datePickerCalendarDayVariantStyles: Record<\n DayVariant,\n CalendarDaySlotStyles\n> = {\n default: {\n root: {\n borderColor: \"transparent\",\n _hover: {\n bg: \"background.secondaryAlpha.hover\",\n },\n },\n },\n disabled: {\n root: {\n bg: \"background.subtle\",\n borderColor: \"transparent\",\n cursor: \"not-allowed\",\n opacity: 0.4,\n },\n },\n inRange: {\n root: {\n bg: \"background.secondaryAlpha.hover\",\n borderColor: \"transparent\",\n borderRadius: \"none\",\n color: \"text.info\",\n },\n },\n selectedEnd: {\n root: {\n borderColor: \"border.focus\",\n color: \"text.info\",\n },\n },\n selectedStart: {\n root: {\n bg: \"background.secondary\",\n borderColor: \"border.focus\",\n color: \"text.contrast\",\n _hover: {\n bg: \"background.secondary\",\n },\n },\n },\n};\n\nexport const datePickerCalendarDayRecipe = defineSlotRecipe({\n slots: calendarDaySlots,\n base: {\n indicator: {\n position: \"absolute\",\n h: 6,\n right: -4,\n top: -4,\n transform: \"rotate(45deg)\",\n w: 6,\n },\n root: {\n border: \"2px\",\n borderRadius: \"4px\",\n color: \"text.subtle\",\n cursor: \"pointer\",\n fontSize: \"sm\",\n fontWeight: \"normal !important\",\n position: \"relative\",\n px: 3,\n py: 1,\n overflow: \"hidden\",\n },\n },\n variants: {\n variant: datePickerCalendarDayVariantStyles,\n isToday: {\n true: {\n indicator: {\n bg: \"background.secondary\",\n },\n },\n false: {},\n },\n withDateRange: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [\n {\n variant: \"selectedStart\",\n isToday: true,\n css: {\n indicator: {\n bg: \"background\",\n },\n },\n },\n {\n withDateRange: true,\n variant: \"selectedStart\",\n css: {\n root: {\n borderRightRadius: 0,\n },\n },\n },\n {\n withDateRange: true,\n variant: \"selectedEnd\",\n css: {\n root: {\n borderLeftRadius: 0,\n },\n },\n },\n ],\n defaultVariants: {},\n});\n","import React, { useRef, useMemo } from \"react\";\nimport { useDay } from \"@datepicker-react/hooks\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { Button } from \"components/Button/button.component\";\nimport format from \"date-fns/format\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { DayVariant } from \"./datePickerCalendarDay.types\";\nimport { useSlotRecipe } from \"@chakra-ui/react/styled-system\";\nimport { datePickerCalendarDayRecipe } from \"./datePickerCalendarDay.recipe\";\n\ninterface DayProps {\n dayLabel: string;\n date: Date;\n onDaySelected: () => void;\n}\n\nexport const DatePickerCalendarDay = ({\n dayLabel,\n date,\n onDaySelected,\n}: DayProps): React.JSX.Element => {\n const today = new Date();\n const dayRef = useRef<HTMLButtonElement>(null);\n const { startDate, endDate, dateFormat, withDateRange } =\n useDatePickerContext();\n const formattedDates = useMemo(\n () => ({\n currentDay: format(date, dateFormat),\n startDate: startDate && format(startDate, dateFormat),\n endDate: endDate && format(endDate, dateFormat),\n }),\n [date, dateFormat, endDate, startDate],\n );\n const isRangeStart = formattedDates.currentDay === formattedDates.startDate;\n const isRangeEnd = formattedDates.currentDay === formattedDates.endDate;\n const isToday = formattedDates.currentDay === format(today, dateFormat);\n\n const {\n focusedDate,\n isDateFocused,\n isDateSelected,\n isDateHovered,\n isDateBlocked,\n isFirstOrLastSelectedDate,\n onDateSelect,\n onDateFocus,\n onDateHover,\n } = useDatePickerContext();\n\n const {\n disabledDate,\n isSelected,\n onClick,\n onKeyDown,\n onMouseEnter,\n tabIndex,\n } = useDay({\n date,\n focusedDate,\n isDateFocused,\n isDateSelected,\n isDateHovered,\n isDateBlocked,\n isFirstOrLastSelectedDate,\n onDateFocus,\n onDateSelect,\n onDateHover,\n dayRef: dayRef as React.RefObject<HTMLButtonElement>,\n });\n\n const buttonVariant = useMemo((): DayVariant => {\n switch (true) {\n case disabledDate:\n return \"disabled\";\n case isRangeStart:\n return \"selectedStart\";\n case isRangeEnd:\n return \"selectedEnd\";\n case isSelected && !isRangeStart && !isRangeEnd:\n return \"inRange\";\n default:\n return \"default\";\n }\n }, [disabledDate, isRangeEnd, isRangeStart, isSelected]);\n\n const recipe = useSlotRecipe({ recipe: datePickerCalendarDayRecipe });\n const styles = recipe({ variant: buttonVariant, isToday, withDateRange });\n\n if (!dayLabel) {\n return <></>;\n }\n\n const onSelectDay = (): void => {\n if (buttonVariant === \"disabled\") {\n return;\n }\n\n onClick();\n onDaySelected();\n };\n\n return (\n <Button\n className=\"DatePicker__Day\"\n data-testid={`kibble-datepicker-day--${formattedDates.currentDay}`}\n onClick={onSelectDay}\n onKeyDown={onKeyDown}\n onMouseEnter={onMouseEnter}\n tabIndex={tabIndex}\n ref={dayRef}\n unstyled\n css={styles.root}\n >\n {isToday && <Box css={styles.indicator} />}\n {dayLabel}\n </Button>\n );\n};\n","import React, { useRef } from \"react\";\nimport { useMonth } from \"@datepicker-react/hooks\";\nimport { Text } from \"components/Text/text.component\";\nimport { Box } from \"@chakra-ui/react/box\";\nimport { Center } from \"@chakra-ui/react/center\";\nimport { Grid, GridItem } from \"@chakra-ui/react/grid\";\nimport { DatePickerCalendarDay } from \"../DatePickerDay/datePickerCalendarDay.component\";\nimport {\n currentMonth,\n currentYear,\n useDatePickerContext,\n} from \"../../context/datePicker.context\";\n\nexport interface MonthProps {\n onDaySelected: () => void;\n}\n\nexport const DatePickerCalendarMonth = ({\n onDaySelected,\n}: MonthProps): React.JSX.Element => {\n const ref = useRef<HTMLDivElement | null>(null);\n const { firstDayOfWeek, activeMonth } = useDatePickerContext();\n\n const { days, weekdayLabels } = useMonth({\n year: activeMonth?.year || currentYear,\n month: activeMonth?.month !== undefined ? activeMonth.month : currentMonth,\n firstDayOfWeek,\n });\n\n return (\n <Box\n ref={ref}\n className=\"DatePicker__Month\"\n data-testid=\"kibble-datepicker-month\"\n >\n <Grid templateColumns=\"repeat(7, 1fr)\" my={2}>\n {weekdayLabels.map((weekdayLabel: string) => (\n <GridItem key={weekdayLabel}>\n <Center>\n <Text size=\"xs\" variant=\"subtle\">\n {weekdayLabel}\n </Text>\n </Center>\n </GridItem>\n ))}\n </Grid>\n <Grid templateColumns=\"repeat(7, 1fr)\">\n {days.map((day, index) =>\n typeof day === \"object\" ? (\n <DatePickerCalendarDay\n key={day.date.toString()}\n date={day.date}\n dayLabel={day.dayLabel}\n onDaySelected={onDaySelected}\n />\n ) : (\n <div key={index} />\n ),\n )}\n </Grid>\n </Box>\n );\n};\n","import React from \"react\";\nimport { Grid } from \"@chakra-ui/react/grid\";\nimport { DatePickerCalendarMonth } from \"../DatePickerMonth/datePickerCalendarMonth.component\";\nimport { useDatePickerContext } from \"../../context/datePicker.context\";\nimport { usePopoverContext } from \"@chakra-ui/react/popover\";\n\nexport function DatePickerCalendar(): React.JSX.Element {\n const { withDateRange, activeMonths, onClose } = useDatePickerContext();\n const { setOpen } = usePopoverContext();\n\n const handleDaySelected = (): void => {\n if (!withDateRange) {\n setOpen(false);\n onClose();\n }\n };\n\n return (\n <Grid\n className=\"DatePicker__Calendar\"\n data-testid=\"kibble-datepicker-calendar\"\n gap=\"0 64px\"\n px={3}\n py={2}\n >\n {activeMonths.map((month) => (\n <DatePickerCalendarMonth\n key={`${month.year}-${month.month}`}\n onDaySelected={handleDaySelected}\n />\n ))}\n </Grid>\n );\n}\n","import React from \"react\";\nimport { DateFormats, DateRange } from \"./datePicker.types\";\nimport { TextInputProps } from \"components/TextInput/textInput.component\";\nimport { Placement } from \"shared/types/placement\";\nimport { DatePickerProvider } from \"./context/datePicker.provider\";\nimport { DatePickerInput } from \"./components/DatePickerInput/datePickerInput.component\";\nimport {\n DatePickerFooter,\n DatePickerFooterProps,\n} from \"./components/DatePickerFooter/datePickerFooter.component\";\nimport { DatePickerHeader } from \"./components/DatePickerHeader/datePickerHeader.component\";\nimport { DatePickerCalendar } from \"./components/DatePickerCalendar/datePickerCalendar.component\";\nimport { Popover as CPopover } from \"@chakra-ui/react/popover\";\nimport { Portal } from \"@chakra-ui/react/portal\";\n\nexport interface DatePickerProps {\n dateFormat?: string | DateFormats;\n endDate?: Date | null;\n footerProps?: DatePickerFooterProps;\n hideFooter?: boolean;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n maxDate?: Date;\n maxYear?: number;\n maxDaysInRange?: number;\n minDate?: Date;\n minYear?: number;\n onDateChange?: ({ startDate, endDate }: DateRange) => void;\n placement?: Placement;\n startDate: Date | null;\n withDateRange?: boolean;\n}\n\nexport const DatePicker = (props: DatePickerProps): React.JSX.Element => {\n const {\n footerProps,\n hideFooter = false,\n inputProps,\n withDateRange = false,\n } = props;\n\n return (\n <DatePickerProvider {...props}>\n <CPopover.Trigger>\n <DatePickerInput inputProps={inputProps} />\n </CPopover.Trigger>\n <Portal>\n <CPopover.Positioner\n className=\"DatePicker\"\n data-testid=\"kibble-datepicker\"\n >\n <CPopover.Content\n className=\"DatePicker__Content\"\n data-testid=\"kibble-datepicker-content\"\n minW=\"340px\"\n >\n <CPopover.Arrow />\n <CPopover.Body p=\"0 !important\">\n <DatePickerHeader />\n <DatePickerCalendar />\n {withDateRange && !hideFooter && (\n <DatePickerFooter {...footerProps} />\n )}\n </CPopover.Body>\n </CPopover.Content>\n </CPopover.Positioner>\n </Portal>\n </DatePickerProvider>\n );\n};\n"],"names":["DateFormats","FocusedInput","today","currentYear","currentMonth","defaultFocusedDate","defaultMinYear","defaultMaxYear","defaultDateFormat","initialDatePickerState","DatePickerContext","createContext","useDatePickerContext","useContext","DatePickerProvider","children","dateFormat","endDate","inputProps","maxDate","maxDaysInRange","maxYear","minDate","minYear","onDateChange","placement","startDate","withDateRange","state","setState","useState","getMaxBookingDate","useCallback","add","onDatesChange","data","_maxBookingDate","isAfter","startOfDay","endOfDay","clearDates","open","activeMonths","firstDayOfWeek","focusedDate","goToDate","goToNextMonths","goToPreviousMonths","isDateBlocked","isDateFocused","isDateHovered","isDateSelected","isFirstOrLastSelectedDate","onDateFocus","onDateHover","onDateSelect","useDatepicker","navigateToFocusedInputDate","focusedInput","setFocusedInput","prevState","handleOpen","handleClose","activeMonth","useMemo","useEffect","jsx","CPopover.Root","isDateAfterMin","date","isDateBeforeMax","isBefore","DatePickerInput","onClose","setOpen","usePopoverContext","iconSize","onKeyDown","e","onInputChange","dateValue","parsedDate","parseDate","isDate","jsxs","HStack","TextInput","Flex","Icon","getInputValue","format","Fragment","Text","DatePickerFooter","buttonText","onSubmit","hideResetButton","handleSubmit","Button","monthNames","DatePickerHeader","selectedMonthRef","useRef","selectedYearRef","monthMenuItems","month","index","yearMenuItems","range","year","stringYear","selected","handleMonthChange","selectedItem","set","handleYearChange","scrollToSelectedItem","type","selectedNode","Center","Menu","calendarDaySlots","datePickerCalendarDayVariantStyles","datePickerCalendarDayRecipe","defineSlotRecipe","DatePickerCalendarDay","dayLabel","onDaySelected","dayRef","formattedDates","isRangeStart","isRangeEnd","isToday","disabledDate","isSelected","onClick","onMouseEnter","tabIndex","useDay","buttonVariant","styles","useSlotRecipe","onSelectDay","Box","DatePickerCalendarMonth","ref","days","weekdayLabels","useMonth","Grid","weekdayLabel","GridItem","day","DatePickerCalendar","handleDaySelected","DatePicker","props","footerProps","hideFooter","CPopover.Trigger","Portal","CPopover.Positioner","CPopover.Content","CPopover.Arrow","CPopover.Body"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const c=require("./vendor-DcKGwQlH.js"),r=require("react"),d=require("../cjs/components/Icon/generated/index.cjs"),u=require("./typography-CtiaGoJG.js"),x=require("./chakra-BHjfByoV.js"),I=d.IconMap,m={xs:14,sm:16,md:20,lg:24,xl:32,"2xl":38},h=r.forwardRef(({name:t,size:s="lg",color:e,variant:o,...i},a)=>{const p=I[t],n=m[s]+"px",l=r.useMemo(()=>o?u.typographyVariantStyles[o].color:e,[o,e]);return c.jsxRuntimeExports.jsx(x.Box,{className:"Icon__Wrapper","data-testid":"kibble-icon-wrapper",color:l,display:"inline-block",...i,children:c.jsxRuntimeExports.jsx(p,{className:"Icon","data-testid":"kibble-icon",ref:a,width:n,height:n,color:"currentColor"})})});exports.Icon=h;
|
|
2
|
+
//# sourceMappingURL=icon.component-Ci7jB4Bh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.component-
|
|
1
|
+
{"version":3,"file":"icon.component-Ci7jB4Bh.js","sources":["../../src/components/Icon/icon.records.ts","../../src/components/Icon/icon.component.tsx"],"sourcesContent":["import { IconMap as GeneratedIconMap } from \"./generated/index\";\nimport { IconSize } from \"./icon.types\";\n\nexport const IconMap = GeneratedIconMap;\n\nexport const IconSizeMap: Record<IconSize, number> = {\n xs: 14,\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n \"2xl\": 38,\n};\n","import React, { forwardRef, useMemo } from \"react\";\nimport { IconMap, IconSizeMap } from \"./icon.records\";\nimport { IconName, IconSize } from \"./icon.types\";\nimport { Box, BoxProps } from \"@chakra-ui/react/box\";\nimport { TypographyVariant } from \"shared/types/typography\";\nimport { typographyVariantStyles } from \"shared/records/typography\";\n\nexport interface BaseIconProps {\n name: IconName;\n size?: IconSize;\n variant?: TypographyVariant;\n}\n\nexport type IconProps = BaseIconProps & BoxProps;\n\nexport const Icon = forwardRef(\n (\n { name, size = \"lg\", color, variant, ...rest }: IconProps,\n ref: React.ForwardedRef<IconProps>,\n ): React.JSX.Element => {\n const MappedIcon = IconMap[name];\n const d = IconSizeMap[size] + \"px\";\n\n const iconColor = useMemo(() => {\n return variant ? typographyVariantStyles[variant].color : color;\n }, [variant, color]);\n\n return (\n <Box\n className=\"Icon__Wrapper\"\n data-testid=\"kibble-icon-wrapper\"\n color={iconColor}\n display=\"inline-block\"\n {...rest}\n >\n <MappedIcon\n className=\"Icon\"\n data-testid=\"kibble-icon\"\n ref={ref}\n width={d}\n height={d}\n color=\"currentColor\"\n />\n </Box>\n );\n },\n);\n"],"names":["IconMap","GeneratedIconMap","IconSizeMap","Icon","forwardRef","name","size","color","variant","rest","ref","MappedIcon","d","iconColor","useMemo","typographyVariantStyles","jsx","Box"],"mappings":"wMAGaA,EAAUC,EAAA,QAEVC,EAAwC,CACnD,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,MAAO,EACT,ECGaC,EAAOC,EAAA,WAClB,CACE,CAAE,KAAAC,EAAM,KAAAC,EAAO,KAAM,MAAAC,EAAO,QAAAC,EAAS,GAAGC,CAAK,EAC7CC,IACsB,CAChB,MAAAC,EAAaX,EAAQK,CAAI,EACzBO,EAAIV,EAAYI,CAAI,EAAI,KAExBO,EAAYC,EAAAA,QAAQ,IACjBN,EAAUO,EAAA,wBAAwBP,CAAO,EAAE,MAAQD,EACzD,CAACC,EAASD,CAAK,CAAC,EAGjB,OAAAS,EAAA,kBAAA,IAACC,EAAA,IAAA,CACC,UAAU,gBACV,cAAY,sBACZ,MAAOJ,EACP,QAAQ,eACP,GAAGJ,EAEJ,SAAAO,EAAA,kBAAA,IAACL,EAAA,CACC,UAAU,OACV,cAAY,cACZ,IAAAD,EACA,MAAOE,EACP,OAAQA,EACR,MAAM,cAAA,CAAA,CACR,CACF,CAAA,CAGN"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { x as s } from "./vendor-CRIhG-7s.js";
|
|
2
2
|
import { forwardRef as l, useMemo as m } from "react";
|
|
3
|
-
import { IconMap as d } from "../esm/components/Icon/generated.js";
|
|
3
|
+
import { IconMap as d } from "../esm/components/Icon/generated/index.js";
|
|
4
4
|
import { t as x } from "./typography-Cqrokog3.js";
|
|
5
5
|
import { a as I } from "./chakra-DEgvQPwa.js";
|
|
6
6
|
const f = d, M = {
|
|
@@ -39,4 +39,4 @@ const f = d, M = {
|
|
|
39
39
|
export {
|
|
40
40
|
j as I
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=icon.component-
|
|
42
|
+
//# sourceMappingURL=icon.component-DuOuGzcI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.component-
|
|
1
|
+
{"version":3,"file":"icon.component-DuOuGzcI.js","sources":["../../src/components/Icon/icon.records.ts","../../src/components/Icon/icon.component.tsx"],"sourcesContent":["import { IconMap as GeneratedIconMap } from \"./generated/index\";\nimport { IconSize } from \"./icon.types\";\n\nexport const IconMap = GeneratedIconMap;\n\nexport const IconSizeMap: Record<IconSize, number> = {\n xs: 14,\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n \"2xl\": 38,\n};\n","import React, { forwardRef, useMemo } from \"react\";\nimport { IconMap, IconSizeMap } from \"./icon.records\";\nimport { IconName, IconSize } from \"./icon.types\";\nimport { Box, BoxProps } from \"@chakra-ui/react/box\";\nimport { TypographyVariant } from \"shared/types/typography\";\nimport { typographyVariantStyles } from \"shared/records/typography\";\n\nexport interface BaseIconProps {\n name: IconName;\n size?: IconSize;\n variant?: TypographyVariant;\n}\n\nexport type IconProps = BaseIconProps & BoxProps;\n\nexport const Icon = forwardRef(\n (\n { name, size = \"lg\", color, variant, ...rest }: IconProps,\n ref: React.ForwardedRef<IconProps>,\n ): React.JSX.Element => {\n const MappedIcon = IconMap[name];\n const d = IconSizeMap[size] + \"px\";\n\n const iconColor = useMemo(() => {\n return variant ? typographyVariantStyles[variant].color : color;\n }, [variant, color]);\n\n return (\n <Box\n className=\"Icon__Wrapper\"\n data-testid=\"kibble-icon-wrapper\"\n color={iconColor}\n display=\"inline-block\"\n {...rest}\n >\n <MappedIcon\n className=\"Icon\"\n data-testid=\"kibble-icon\"\n ref={ref}\n width={d}\n height={d}\n color=\"currentColor\"\n />\n </Box>\n );\n },\n);\n"],"names":["IconMap","GeneratedIconMap","IconSizeMap","Icon","forwardRef","name","size","color","variant","rest","ref","MappedIcon","d","iconColor","useMemo","typographyVariantStyles","jsx","Box"],"mappings":";;;;;AAGO,MAAMA,IAAUC,GAEVC,IAAwC;AAAA,EACnD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AACT,GCGaC,IAAOC;AAAA,EAClB,CACE,EAAE,MAAAC,GAAM,MAAAC,IAAO,MAAM,OAAAC,GAAO,SAAAC,GAAS,GAAGC,EAAK,GAC7CC,MACsB;AAChB,UAAAC,IAAaX,EAAQK,CAAI,GACzBO,IAAIV,EAAYI,CAAI,IAAI,MAExBO,IAAYC,EAAQ,MACjBN,IAAUO,EAAwBP,CAAO,EAAE,QAAQD,GACzD,CAACC,GAASD,CAAK,CAAC;AAGjB,WAAAS,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA,QACZ,OAAOJ;AAAA,QACP,SAAQ;AAAA,QACP,GAAGJ;AAAA,QAEJ,UAAAO,gBAAAA,EAAA;AAAA,UAACL;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA,YACZ,KAAAD;AAAA,YACA,OAAOE;AAAA,YACP,QAAQA;AAAA,YACR,OAAM;AAAA,UAAA;AAAA,QAAA;AAAA,MACR;AAAA,IACF;AAAA,EAAA;AAGN;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./vendor-DcKGwQlH.js"),d=require("react"),j=require("./text.component-MDGpqA76.js"),k=require("./icon.component-
|
|
2
|
-
//# sourceMappingURL=link.component-
|
|
1
|
+
"use strict";const e=require("./vendor-DcKGwQlH.js"),d=require("react"),j=require("./text.component-MDGpqA76.js"),k=require("./icon.component-Ci7jB4Bh.js"),R=require("./useIconTextSizeMap-BXmABb54.js"),c=require("./chakra-BHjfByoV.js"),x=({variant:i,...r})=>e.jsxRuntimeExports.jsx(k.Icon,{variant:i||"interactive",...r}),p=d.forwardRef((i,r)=>{const{children:u,external:m,iconProps:n,size:s="md",variant:t="interactive",...l}=i,o=R.useIconTextSizeMap(s),a=n?.position||"start";return e.jsxRuntimeExports.jsx(c.Link,{className:"Link","data-testid":"kibble-link",variant:t,display:"inline-block",size:s,ref:r,...m&&{target:"_blank",rel:"noopener noreferrer"},...l,children:e.jsxRuntimeExports.jsxs(c.HStack,{gap:1,align:"center",children:[n&&a==="start"&&e.jsxRuntimeExports.jsx(x,{name:n.name,variant:t,size:o}),e.jsxRuntimeExports.jsx(j.WrappedText,{size:s,variant:t,children:u}),n&&a==="end"&&e.jsxRuntimeExports.jsx(x,{name:n.name,variant:t,size:o})]})})});p.displayName="Link";exports.Link=p;
|
|
2
|
+
//# sourceMappingURL=link.component-D2WDPwD5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.component-
|
|
1
|
+
{"version":3,"file":"link.component-D2WDPwD5.js","sources":["../../src/components/Link/components/LinkIcon/linkIcon.component.tsx","../../src/components/Link/link.component.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, IconProps } from \"components/Icon\";\n\nexport interface LinkIconProps extends Pick<IconProps, \"name\"> {\n position?: \"start\" | \"end\";\n}\n\ntype InternalLinkIconProps = Pick<IconProps, \"name\" | \"variant\" | \"size\">;\n\nexport const LinkIcon = ({\n variant,\n ...rest\n}: InternalLinkIconProps): React.JSX.Element => {\n return <Icon variant={variant || \"interactive\"} {...rest} />;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Link as CLink, LinkProps as CLinkProps } from \"@chakra-ui/react/link\"; // Make sure to use named imports from Chakra UI\nimport { TypographyVariant } from \"shared/types\";\nimport { TextSize } from \"components/Text/text.types\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Text } from \"components/Text\";\nimport {\n LinkIcon,\n LinkIconProps,\n} from \"./components/LinkIcon/linkIcon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\n\nexport interface LinkProps extends CLinkProps {\n iconProps?: LinkIconProps;\n external?: boolean;\n size?: TextSize;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n to?: any;\n variant?: TypographyVariant;\n}\n\nexport const Link = forwardRef(\n (\n props: LinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n ): React.JSX.Element => {\n const {\n children,\n external,\n iconProps,\n size = \"md\",\n variant = \"interactive\",\n ...rest\n } = props;\n const mapIconSize = useIconTextSizeMap(size);\n const iconPosition = iconProps?.position || \"start\";\n\n return (\n <CLink\n className=\"Link\"\n data-testid=\"kibble-link\"\n variant={variant}\n display=\"inline-block\"\n size={size}\n ref={ref}\n {...(external && { target: \"_blank\", rel: \"noopener noreferrer\" })}\n {...rest}\n >\n <HStack gap={1} align=\"center\">\n {iconProps && iconPosition === \"start\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n <Text size={size} variant={variant}>\n {children}\n </Text>\n {iconProps && iconPosition === \"end\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n </HStack>\n </CLink>\n );\n },\n);\n\nLink.displayName = \"Link\";\n"],"names":["LinkIcon","variant","rest","Icon","Link","forwardRef","props","ref","children","external","iconProps","size","mapIconSize","useIconTextSizeMap","iconPosition","jsx","CLink","jsxs","HStack","Text"],"mappings":"4OASaA,EAAW,CAAC,CACvB,QAAAC,EACA,GAAGC,CACL,4BACUC,EAAAA,KAAK,CAAA,QAASF,GAAW,cAAgB,GAAGC,EAAM,ECQ/CE,EAAOC,EAAA,WAClB,CACEC,EACAC,IACsB,CAChB,KAAA,CACJ,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,KAAAC,EAAO,KACP,QAAAV,EAAU,cACV,GAAGC,CAAA,EACDI,EACEM,EAAcC,qBAAmBF,CAAI,EACrCG,EAAeJ,GAAW,UAAY,QAG1C,OAAAK,EAAA,kBAAA,IAACC,EAAA,KAAA,CACC,UAAU,OACV,cAAY,cACZ,QAAAf,EACA,QAAQ,eACR,KAAAU,EACA,IAAAJ,EACC,GAAIE,GAAY,CAAE,OAAQ,SAAU,IAAK,qBAAsB,EAC/D,GAAGP,EAEJ,SAACe,EAAAA,kBAAAA,KAAAC,EAAAA,OAAA,CAAO,IAAK,EAAG,MAAM,SACnB,SAAA,CAAAR,GAAaI,IAAiB,SAC7BC,EAAA,kBAAA,IAACf,EAAA,CACC,KAAMU,EAAU,KAChB,QAAAT,EACA,KAAMW,CAAA,CACR,EAEDG,EAAAA,kBAAAA,IAAAI,EAAAA,YAAA,CAAK,KAAAR,EAAY,QAAAV,EACf,SAAAO,CACH,CAAA,EACCE,GAAaI,IAAiB,OAC7BC,EAAA,kBAAA,IAACf,EAAA,CACC,KAAMU,EAAU,KAChB,QAAAT,EACA,KAAMW,CAAA,CAAA,CACR,CAEJ,CAAA,CAAA,CACF,CAAA,CAGN,EAEAR,EAAK,YAAc"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { x as e } from "./vendor-CRIhG-7s.js";
|
|
2
2
|
import { forwardRef as x } from "react";
|
|
3
3
|
import { W as d } from "./text.component-B1g7jaUt.js";
|
|
4
|
-
import { I as k } from "./icon.component-
|
|
4
|
+
import { I as k } from "./icon.component-DuOuGzcI.js";
|
|
5
5
|
import { u as f } from "./useIconTextSizeMap-BK-pUrQv.js";
|
|
6
6
|
import { az as j, H as z } from "./chakra-DEgvQPwa.js";
|
|
7
7
|
const m = ({
|
|
@@ -55,4 +55,4 @@ L.displayName = "Link";
|
|
|
55
55
|
export {
|
|
56
56
|
L
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=link.component-
|
|
58
|
+
//# sourceMappingURL=link.component-v7sWq3vs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.component-
|
|
1
|
+
{"version":3,"file":"link.component-v7sWq3vs.js","sources":["../../src/components/Link/components/LinkIcon/linkIcon.component.tsx","../../src/components/Link/link.component.tsx"],"sourcesContent":["import React from \"react\";\nimport { Icon, IconProps } from \"components/Icon\";\n\nexport interface LinkIconProps extends Pick<IconProps, \"name\"> {\n position?: \"start\" | \"end\";\n}\n\ntype InternalLinkIconProps = Pick<IconProps, \"name\" | \"variant\" | \"size\">;\n\nexport const LinkIcon = ({\n variant,\n ...rest\n}: InternalLinkIconProps): React.JSX.Element => {\n return <Icon variant={variant || \"interactive\"} {...rest} />;\n};\n","import React, { ForwardedRef, forwardRef } from \"react\";\nimport { Link as CLink, LinkProps as CLinkProps } from \"@chakra-ui/react/link\"; // Make sure to use named imports from Chakra UI\nimport { TypographyVariant } from \"shared/types\";\nimport { TextSize } from \"components/Text/text.types\";\nimport { HStack } from \"@chakra-ui/react/stack\";\nimport { Text } from \"components/Text\";\nimport {\n LinkIcon,\n LinkIconProps,\n} from \"./components/LinkIcon/linkIcon.component\";\nimport { useIconTextSizeMap } from \"hooks/useIconTextSizeMap\";\n\nexport interface LinkProps extends CLinkProps {\n iconProps?: LinkIconProps;\n external?: boolean;\n size?: TextSize;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n to?: any;\n variant?: TypographyVariant;\n}\n\nexport const Link = forwardRef(\n (\n props: LinkProps,\n ref: ForwardedRef<HTMLAnchorElement>,\n ): React.JSX.Element => {\n const {\n children,\n external,\n iconProps,\n size = \"md\",\n variant = \"interactive\",\n ...rest\n } = props;\n const mapIconSize = useIconTextSizeMap(size);\n const iconPosition = iconProps?.position || \"start\";\n\n return (\n <CLink\n className=\"Link\"\n data-testid=\"kibble-link\"\n variant={variant}\n display=\"inline-block\"\n size={size}\n ref={ref}\n {...(external && { target: \"_blank\", rel: \"noopener noreferrer\" })}\n {...rest}\n >\n <HStack gap={1} align=\"center\">\n {iconProps && iconPosition === \"start\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n <Text size={size} variant={variant}>\n {children}\n </Text>\n {iconProps && iconPosition === \"end\" && (\n <LinkIcon\n name={iconProps.name}\n variant={variant}\n size={mapIconSize}\n />\n )}\n </HStack>\n </CLink>\n );\n },\n);\n\nLink.displayName = \"Link\";\n"],"names":["LinkIcon","variant","rest","Icon","Link","forwardRef","props","ref","children","external","iconProps","size","mapIconSize","useIconTextSizeMap","iconPosition","jsx","CLink","jsxs","HStack","Text"],"mappings":";;;;;;AASO,MAAMA,IAAW,CAAC;AAAA,EACvB,SAAAC;AAAA,EACA,GAAGC;AACL,4BACUC,GAAK,EAAA,SAASF,KAAW,eAAgB,GAAGC,GAAM,GCQ/CE,IAAOC;AAAA,EAClB,CACEC,GACAC,MACsB;AAChB,UAAA;AAAA,MACJ,UAAAC;AAAA,MACA,UAAAC;AAAA,MACA,WAAAC;AAAA,MACA,MAAAC,IAAO;AAAA,MACP,SAAAV,IAAU;AAAA,MACV,GAAGC;AAAA,IAAA,IACDI,GACEM,IAAcC,EAAmBF,CAAI,GACrCG,IAAeJ,GAAW,YAAY;AAG1C,WAAAK,gBAAAA,EAAA;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA,QACZ,SAAAf;AAAA,QACA,SAAQ;AAAA,QACR,MAAAU;AAAA,QACA,KAAAJ;AAAA,QACC,GAAIE,KAAY,EAAE,QAAQ,UAAU,KAAK,sBAAsB;AAAA,QAC/D,GAAGP;AAAA,QAEJ,UAACe,gBAAAA,EAAAA,KAAAC,GAAA,EAAO,KAAK,GAAG,OAAM,UACnB,UAAA;AAAA,UAAAR,KAAaI,MAAiB,WAC7BC,gBAAAA,EAAA;AAAA,YAACf;AAAA,YAAA;AAAA,cACC,MAAMU,EAAU;AAAA,cAChB,SAAAT;AAAA,cACA,MAAMW;AAAA,YAAA;AAAA,UACR;AAAA,UAEDG,gBAAAA,EAAAA,IAAAI,GAAA,EAAK,MAAAR,GAAY,SAAAV,GACf,UAAAO,EACH,CAAA;AAAA,UACCE,KAAaI,MAAiB,SAC7BC,gBAAAA,EAAA;AAAA,YAACf;AAAA,YAAA;AAAA,cACC,MAAMU,EAAU;AAAA,cAChB,SAAAT;AAAA,cACA,MAAMW;AAAA,YAAA;AAAA,UAAA;AAAA,QACR,EAEJ,CAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN;AAEAR,EAAK,cAAc;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
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 T } from "./button.component-
|
|
4
|
-
import { I as P } from "./icon.component-
|
|
3
|
+
import { B as T } from "./button.component-914arWrg.js";
|
|
4
|
+
import { I as P } from "./icon.component-DuOuGzcI.js";
|
|
5
5
|
import { W as B } from "./text.component-B1g7jaUt.js";
|
|
6
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-
|
|
7
|
+
import { W as he } from "./textInput.component-DbMDm4jG.js";
|
|
8
8
|
import { S as xe } from "./spinner.component-D3If6khz.js";
|
|
9
|
-
import { W as be } from "./checkbox.component-
|
|
9
|
+
import { W as be } from "./checkbox.component-D6OR0mHM.js";
|
|
10
10
|
const pe = ({
|
|
11
11
|
hideCaret: n = !1,
|
|
12
12
|
size: a = "md",
|
|
@@ -387,4 +387,4 @@ const pe = ({
|
|
|
387
387
|
export {
|
|
388
388
|
je as M
|
|
389
389
|
};
|
|
390
|
-
//# sourceMappingURL=menu.component-
|
|
390
|
+
//# sourceMappingURL=menu.component-DMelGQeh.js.map
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"menu.component-DMelGQeh.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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"}
|