@televet/kibble-ui 5.0.0 → 5.0.1-beta.1
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.types-DDd-kKhQ.js → alert.types-B4ZeoVAn.js} +3 -3
- package/dist/chunks/{alert.types-DDd-kKhQ.js.map → alert.types-B4ZeoVAn.js.map} +1 -1
- package/dist/chunks/{alert.types-CoNGMaZH.js → alert.types-BjRioDMO.js} +2 -2
- package/dist/chunks/{alert.types-CoNGMaZH.js.map → alert.types-BjRioDMO.js.map} +1 -1
- package/dist/chunks/{avatar.component-DOxOCba4.js → avatar.component-8KbJ-Ql0.js} +2 -2
- package/dist/chunks/{avatar.component-DOxOCba4.js.map → avatar.component-8KbJ-Ql0.js.map} +1 -1
- package/dist/chunks/{avatar.component-jnCAquFm.js → avatar.component-CfN01aSD.js} +2 -2
- package/dist/chunks/{avatar.component-jnCAquFm.js.map → avatar.component-CfN01aSD.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-BrEOOfUM.js → avatarGroup.component-D13krxcA.js} +5 -5
- package/dist/chunks/{avatarGroup.component-BrEOOfUM.js.map → avatarGroup.component-D13krxcA.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-CDfF7iXF.js → avatarGroup.component-DGZEWrRi.js} +2 -2
- package/dist/chunks/{avatarGroup.component-CDfF7iXF.js.map → avatarGroup.component-DGZEWrRi.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-XM_2S4uj.js → buttonGroup.component-BSaFEgBh.js} +2 -2
- package/dist/chunks/{buttonGroup.component-XM_2S4uj.js.map → buttonGroup.component-BSaFEgBh.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-QIrJOCDP.js → buttonGroup.component-ByWPXj4A.js} +2 -2
- package/dist/chunks/{buttonGroup.component-QIrJOCDP.js.map → buttonGroup.component-ByWPXj4A.js.map} +1 -1
- package/dist/chunks/{calendar.component-CRXFd2qS.js → calendar.component-CdxC1U4j.js} +2 -2
- package/dist/chunks/{calendar.component-CRXFd2qS.js.map → calendar.component-CdxC1U4j.js.map} +1 -1
- package/dist/chunks/{calendar.component-CobSAMg0.js → calendar.component-DUquXoTx.js} +2 -2
- package/dist/chunks/{calendar.component-CobSAMg0.js.map → calendar.component-DUquXoTx.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-Bx1KJdtW.js → characterCounter.component-DRyxDUkf.js} +2 -2
- package/dist/chunks/{characterCounter.component-Bx1KJdtW.js.map → characterCounter.component-DRyxDUkf.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-zxpwPozD.js → characterCounter.component-DVx8ONlh.js} +2 -2
- package/dist/chunks/{characterCounter.component-zxpwPozD.js.map → characterCounter.component-DVx8ONlh.js.map} +1 -1
- package/dist/chunks/{checkbox.component-BxH9UuK7.js → checkbox.component-BKqD7ajO.js} +2 -2
- package/dist/chunks/{checkbox.component-BxH9UuK7.js.map → checkbox.component-BKqD7ajO.js.map} +1 -1
- package/dist/chunks/{checkbox.component-Dcxu48_o.js → checkbox.component-C2L3jt9X.js} +3 -3
- package/dist/chunks/{checkbox.component-Dcxu48_o.js.map → checkbox.component-C2L3jt9X.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-xqwBFmT_.js → checkboxGroup.component-DES2ChAS.js} +2 -2
- package/dist/chunks/{checkboxGroup.component-xqwBFmT_.js.map → checkboxGroup.component-DES2ChAS.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-D79xlf3v.js → checkboxGroup.component-DGRvcTQa.js} +3 -3
- package/dist/chunks/{checkboxGroup.component-D79xlf3v.js.map → checkboxGroup.component-DGRvcTQa.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-DuPS_G4j.js → conversationCard.component-Dp3Ve-s3.js} +2 -2
- package/dist/chunks/{conversationCard.component-DuPS_G4j.js.map → conversationCard.component-Dp3Ve-s3.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-BsQEPjIv.js → conversationCard.component-cUZNdM6z.js} +8 -8
- package/dist/chunks/{conversationCard.component-BsQEPjIv.js.map → conversationCard.component-cUZNdM6z.js.map} +1 -1
- package/dist/chunks/{datePicker.component-4D-aw-f3.js → datePicker.component-CrXPIoE7.js} +4 -4
- package/dist/chunks/{datePicker.component-4D-aw-f3.js.map → datePicker.component-CrXPIoE7.js.map} +1 -1
- package/dist/chunks/{datePicker.component-txR_j1pV.js → datePicker.component-DcLa118I.js} +2 -2
- package/dist/chunks/{datePicker.component-txR_j1pV.js.map → datePicker.component-DcLa118I.js.map} +1 -1
- package/dist/chunks/{datePicker.provider-WuyAKvhT.js → datePicker.provider-Bi8eOVr9.js} +2 -2
- package/dist/chunks/{datePicker.provider-WuyAKvhT.js.map → datePicker.provider-Bi8eOVr9.js.map} +1 -1
- package/dist/chunks/{datePicker.provider-Bz5WNf8N.js → datePicker.provider-RBWvoF94.js} +3 -3
- package/dist/chunks/{datePicker.provider-Bz5WNf8N.js.map → datePicker.provider-RBWvoF94.js.map} +1 -1
- package/dist/chunks/{dateTimePicker.component-BbMDPLeE.js → dateTimePicker.component-BPi7SkSd.js} +5 -5
- package/dist/chunks/{dateTimePicker.component-BbMDPLeE.js.map → dateTimePicker.component-BPi7SkSd.js.map} +1 -1
- package/dist/chunks/{dateTimePicker.component-XY7Hjy5a.js → dateTimePicker.component-BaxsvfzK.js} +2 -2
- package/dist/chunks/{dateTimePicker.component-XY7Hjy5a.js.map → dateTimePicker.component-BaxsvfzK.js.map} +1 -1
- package/dist/chunks/{heading.component-CuqmU4-A.js → heading.component-BF2uYxGh.js} +2 -2
- package/dist/chunks/{heading.component-CuqmU4-A.js.map → heading.component-BF2uYxGh.js.map} +1 -1
- package/dist/chunks/{heading.component-fjhJv_Wg.js → heading.component-CGIWJdxz.js} +2 -2
- package/dist/chunks/{heading.component-fjhJv_Wg.js.map → heading.component-CGIWJdxz.js.map} +1 -1
- package/dist/chunks/logo.types-88a31xCx.js.map +1 -1
- package/dist/chunks/logo.types-C5GwpHjM.js.map +1 -1
- package/dist/chunks/{menu.component-Ca7XKva4.js → menu.component-BWe1cfAH.js} +2 -2
- package/dist/chunks/{menu.component-Ca7XKva4.js.map → menu.component-BWe1cfAH.js.map} +1 -1
- package/dist/chunks/{menu.component-DotfjNiu.js → menu.component-CUmUL23c.js} +6 -6
- package/dist/chunks/{menu.component-DotfjNiu.js.map → menu.component-CUmUL23c.js.map} +1 -1
- package/dist/chunks/{modal.types-CC5_2AVY.js → modal.types-BQ6rpvCh.js} +2 -2
- package/dist/chunks/{modal.types-CC5_2AVY.js.map → modal.types-BQ6rpvCh.js.map} +1 -1
- package/dist/chunks/{modal.types-C8bk4syw.js → modal.types-CTfmpPtW.js} +2 -2
- package/dist/chunks/{modal.types-C8bk4syw.js.map → modal.types-CTfmpPtW.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-Bote1ygg.js → notificationCounter.component-CFHcB6hr.js} +2 -2
- package/dist/chunks/{notificationCounter.component-Bote1ygg.js.map → notificationCounter.component-CFHcB6hr.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-iPVVGxGV.js → notificationCounter.component-CaoIP9Zw.js} +2 -2
- package/dist/chunks/{notificationCounter.component-iPVVGxGV.js.map → notificationCounter.component-CaoIP9Zw.js.map} +1 -1
- package/dist/chunks/{numberInput.component-7wxjZn8E.js → numberInput.component-DbnsxDQd.js} +2 -2
- package/dist/chunks/{numberInput.component-7wxjZn8E.js.map → numberInput.component-DbnsxDQd.js.map} +1 -1
- package/dist/chunks/{numberInput.component-DO9D-2yL.js → numberInput.component-Df2jvGBx.js} +2 -2
- package/dist/chunks/{numberInput.component-DO9D-2yL.js.map → numberInput.component-Df2jvGBx.js.map} +1 -1
- package/dist/chunks/{pinInput.types-DxBsjh8_.js → pinInput.types-BVQTxHUY.js} +2 -2
- package/dist/chunks/{pinInput.types-DxBsjh8_.js.map → pinInput.types-BVQTxHUY.js.map} +1 -1
- package/dist/chunks/{pinInput.types-Cg82OPA7.js → pinInput.types-B_nfKSKk.js} +2 -2
- package/dist/chunks/{pinInput.types-Cg82OPA7.js.map → pinInput.types-B_nfKSKk.js.map} +1 -1
- package/dist/chunks/{popover.component-BsAhqfsU.js → popover.component-B51SGhRa.js} +2 -2
- package/dist/chunks/{popover.component-BsAhqfsU.js.map → popover.component-B51SGhRa.js.map} +1 -1
- package/dist/chunks/{popover.component-2CfyrrLP.js → popover.component-DtmTVjVy.js} +4 -4
- package/dist/chunks/{popover.component-2CfyrrLP.js.map → popover.component-DtmTVjVy.js.map} +1 -1
- package/dist/chunks/{radioGroup.types-D9XBscp2.js → radioGroup.types-8pv6fBcI.js} +4 -4
- package/dist/chunks/{radioGroup.types-D9XBscp2.js.map → radioGroup.types-8pv6fBcI.js.map} +1 -1
- package/dist/chunks/{radioGroup.types-F8vVdEOh.js → radioGroup.types-BCr0pawG.js} +2 -2
- package/dist/chunks/{radioGroup.types-F8vVdEOh.js.map → radioGroup.types-BCr0pawG.js.map} +1 -1
- package/dist/chunks/{rating.component-CQD7qSs1.js → rating.component-Bl1p8XX-.js} +2 -2
- package/dist/chunks/{rating.component-CQD7qSs1.js.map → rating.component-Bl1p8XX-.js.map} +1 -1
- package/dist/chunks/{rating.component-H2698UHE.js → rating.component-DN-yt40l.js} +2 -2
- package/dist/chunks/{rating.component-H2698UHE.js.map → rating.component-DN-yt40l.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-DRlCDGSd.js → ratingDots.component-BvuMDpSJ.js} +3 -3
- package/dist/chunks/{ratingDots.component-DRlCDGSd.js.map → ratingDots.component-BvuMDpSJ.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-Da9isjMP.js → ratingDots.component-C7cqMJQs.js} +2 -2
- package/dist/chunks/{ratingDots.component-Da9isjMP.js.map → ratingDots.component-C7cqMJQs.js.map} +1 -1
- package/dist/chunks/{select.component-CJiMFmhO.js → select.component-D4ZKBjaG.js} +5 -5
- package/dist/chunks/{select.component-CJiMFmhO.js.map → select.component-D4ZKBjaG.js.map} +1 -1
- package/dist/chunks/{select.component-HZ3Lf1R2.js → select.component-DH3Os24w.js} +2 -2
- package/dist/chunks/{select.component-HZ3Lf1R2.js.map → select.component-DH3Os24w.js.map} +1 -1
- package/dist/chunks/{sortableList.component-BuPCQuzG.js → sortableList.component-CEdwpgob.js} +2 -2
- package/dist/chunks/{sortableList.component-BuPCQuzG.js.map → sortableList.component-CEdwpgob.js.map} +1 -1
- package/dist/chunks/{sortableList.component-Cng3DSoo.js → sortableList.component-CeoxjOaO.js} +2 -2
- package/dist/chunks/{sortableList.component-Cng3DSoo.js.map → sortableList.component-CeoxjOaO.js.map} +1 -1
- package/dist/chunks/{spinner.component-D2Zatj34.js → spinner.component-CAbc_M1b.js} +2 -2
- package/dist/chunks/{spinner.component-D2Zatj34.js.map → spinner.component-CAbc_M1b.js.map} +1 -1
- package/dist/chunks/{spinner.component-BJbnJpC2.js → spinner.component-D3qsizvj.js} +2 -2
- package/dist/chunks/{spinner.component-BJbnJpC2.js.map → spinner.component-D3qsizvj.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-Djix6HLp.js → styledAvatar.types-Bt434az3.js} +2 -2
- package/dist/chunks/{styledAvatar.types-Djix6HLp.js.map → styledAvatar.types-Bt434az3.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-6U3cCgR9.js → styledAvatar.types-T4iZ4kzZ.js} +2 -2
- package/dist/chunks/{styledAvatar.types-6U3cCgR9.js.map → styledAvatar.types-T4iZ4kzZ.js.map} +1 -1
- package/dist/chunks/{switch.component-CjivfNlp.js → switch.component-BMChHEoj.js} +2 -2
- package/dist/chunks/{switch.component-CjivfNlp.js.map → switch.component-BMChHEoj.js.map} +1 -1
- package/dist/chunks/{switch.component-BI7FO9E2.js → switch.component-C0quBAfF.js} +2 -2
- package/dist/chunks/{switch.component-BI7FO9E2.js.map → switch.component-C0quBAfF.js.map} +1 -1
- package/dist/chunks/{tab.types-DIfnro0P.js → tab.types-78fRxxaf.js} +2 -2
- package/dist/chunks/{tab.types-DIfnro0P.js.map → tab.types-78fRxxaf.js.map} +1 -1
- package/dist/chunks/{tab.types-ilWt-Qk8.js → tab.types-V2MsJaJx.js} +3 -3
- package/dist/chunks/{tab.types-ilWt-Qk8.js.map → tab.types-V2MsJaJx.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-B-erWvSO.js → tagBlock.component-CjUEeCb0.js} +5 -5
- package/dist/chunks/{tagBlock.component-B-erWvSO.js.map → tagBlock.component-CjUEeCb0.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-C-U6kLYO.js → tagBlock.component-DTyEv1ZW.js} +2 -2
- package/dist/chunks/{tagBlock.component-C-U6kLYO.js.map → tagBlock.component-DTyEv1ZW.js.map} +1 -1
- package/dist/chunks/{text.component-BQUkayTO.js → text.component-D-HVW7NW.js} +2 -2
- package/dist/chunks/{text.component-BQUkayTO.js.map → text.component-D-HVW7NW.js.map} +1 -1
- package/dist/chunks/{text.component-RbaGyNOr.js → text.component-EW-kQ5Hv.js} +2 -2
- package/dist/chunks/{text.component-RbaGyNOr.js.map → text.component-EW-kQ5Hv.js.map} +1 -1
- package/dist/chunks/{textInput.component-DL4vmgM1.js → textInput.component-7NWlIJql.js} +3 -3
- package/dist/chunks/{textInput.component-DL4vmgM1.js.map → textInput.component-7NWlIJql.js.map} +1 -1
- package/dist/chunks/{textInput.component-mhII49iH.js → textInput.component-DCGouDzd.js} +2 -2
- package/dist/chunks/{textInput.component-mhII49iH.js.map → textInput.component-DCGouDzd.js.map} +1 -1
- package/dist/chunks/{textarea.component-DUOK7ium.js → textarea.component-BiSvZXu_.js} +2 -2
- package/dist/chunks/{textarea.component-DUOK7ium.js.map → textarea.component-BiSvZXu_.js.map} +1 -1
- package/dist/chunks/{textarea.component-B_GHJxSZ.js → textarea.component-C3nNCWmV.js} +3 -3
- package/dist/chunks/{textarea.component-B_GHJxSZ.js.map → textarea.component-C3nNCWmV.js.map} +1 -1
- package/dist/chunks/{theme.provider-nGiB4lsb.js → theme.provider-B5wHkUue.js} +3 -3
- package/dist/chunks/{theme.provider-nGiB4lsb.js.map → theme.provider-B5wHkUue.js.map} +1 -1
- package/dist/chunks/{theme.provider-BzcXUJEg.js → theme.provider-BskihI8A.js} +2 -2
- package/dist/chunks/{theme.provider-BzcXUJEg.js.map → theme.provider-BskihI8A.js.map} +1 -1
- package/dist/chunks/{timePicker.component-81Y42yiZ.js → timePicker.component-BA4Ne43R.js} +3 -3
- package/dist/chunks/{timePicker.component-81Y42yiZ.js.map → timePicker.component-BA4Ne43R.js.map} +1 -1
- package/dist/chunks/{timePicker.component-bQpqeqmS.js → timePicker.component-CCdxeuM3.js} +2 -2
- package/dist/chunks/{timePicker.component-bQpqeqmS.js.map → timePicker.component-CCdxeuM3.js.map} +1 -1
- package/dist/chunks/{timeRange.component-D8EoIwTO.js → timeRange.component-D-hxfB86.js} +2 -2
- package/dist/chunks/{timeRange.component-D8EoIwTO.js.map → timeRange.component-D-hxfB86.js.map} +1 -1
- package/dist/chunks/{timeRange.component-CFjI106c.js → timeRange.component-YqZ047RE.js} +2 -2
- package/dist/chunks/{timeRange.component-CFjI106c.js.map → timeRange.component-YqZ047RE.js.map} +1 -1
- package/dist/chunks/{timestamp.component-BhAAqd43.js → timestamp.component-BnwS99du.js} +3 -3
- package/dist/chunks/{timestamp.component-BhAAqd43.js.map → timestamp.component-BnwS99du.js.map} +1 -1
- package/dist/chunks/{timestamp.component-CBVv_SHJ.js → timestamp.component-Bxd-EH6y.js} +2 -2
- package/dist/chunks/{timestamp.component-CBVv_SHJ.js.map → timestamp.component-Bxd-EH6y.js.map} +1 -1
- package/dist/chunks/tooltip.component-B47vZ14Y.js +2 -0
- package/dist/chunks/tooltip.component-B47vZ14Y.js.map +1 -0
- package/dist/chunks/{tooltip.component-B2kgm41E.js → tooltip.component-BITkQyWl.js} +69 -72
- package/dist/chunks/tooltip.component-BITkQyWl.js.map +1 -0
- package/dist/chunks/{withFormControl-BwtO61gv.js → withFormControl-86sUug8X.js} +2 -2
- package/dist/chunks/{withFormControl-BwtO61gv.js.map → withFormControl-86sUug8X.js.map} +1 -1
- package/dist/chunks/{withFormControl-Df9GvsWo.js → withFormControl-BRLX_WpM.js} +2 -2
- package/dist/chunks/{withFormControl-Df9GvsWo.js.map → withFormControl-BRLX_WpM.js.map} +1 -1
- package/dist/chunks/{withTruncation-B-Li8sxr.js → withTruncation-C8c1SEk-.js} +2 -2
- package/dist/chunks/{withTruncation-B-Li8sxr.js.map → withTruncation-C8c1SEk-.js.map} +1 -1
- package/dist/chunks/{withTruncation-5g3W1Yem.js → withTruncation-iyMkcJnM.js} +2 -2
- package/dist/chunks/{withTruncation-5g3W1Yem.js.map → withTruncation-iyMkcJnM.js.map} +1 -1
- package/dist/cjs/components/Alert/index.cjs +1 -1
- package/dist/cjs/components/Avatar/index.cjs +1 -1
- package/dist/cjs/components/AvatarGroup/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/Calendar/index.cjs +1 -1
- package/dist/cjs/components/CharacterCounter/index.cjs +1 -1
- package/dist/cjs/components/Checkbox/index.cjs +1 -1
- package/dist/cjs/components/CheckboxGroup/index.cjs +1 -1
- package/dist/cjs/components/ConversationCard/index.cjs +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +1 -1
- package/dist/cjs/components/DateTimePicker/index.cjs +1 -1
- package/dist/cjs/components/Heading/index.cjs +1 -1
- package/dist/cjs/components/Menu/index.cjs +1 -1
- package/dist/cjs/components/Modal/index.cjs +1 -1
- package/dist/cjs/components/NotificationCounter/index.cjs +1 -1
- package/dist/cjs/components/NumberInput/index.cjs +1 -1
- package/dist/cjs/components/PinInput/index.cjs +1 -1
- package/dist/cjs/components/Popover/index.cjs +1 -1
- package/dist/cjs/components/RadioGroup/index.cjs +1 -1
- package/dist/cjs/components/Rating/index.cjs +1 -1
- package/dist/cjs/components/RatingDots/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/SortableList/index.cjs +1 -1
- package/dist/cjs/components/Spinner/index.cjs +1 -1
- package/dist/cjs/components/StyledAvatar/index.cjs +1 -1
- package/dist/cjs/components/Switch/index.cjs +1 -1
- package/dist/cjs/components/Tabs/index.cjs +1 -1
- package/dist/cjs/components/TagBlock/index.cjs +1 -1
- package/dist/cjs/components/Text/index.cjs +1 -1
- package/dist/cjs/components/TextInput/index.cjs +1 -1
- package/dist/cjs/components/Textarea/index.cjs +1 -1
- package/dist/cjs/components/TimePicker/index.cjs +1 -1
- package/dist/cjs/components/TimeRange/index.cjs +1 -1
- package/dist/cjs/components/Timestamp/index.cjs +1 -1
- package/dist/cjs/components/Tooltip/index.cjs +1 -1
- package/dist/cjs/components/index.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/theme/index.cjs +1 -1
- package/dist/esm/components/Alert/index.js +1 -1
- package/dist/esm/components/Avatar/index.js +1 -1
- package/dist/esm/components/AvatarGroup/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/Calendar/index.js +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/ConversationCard/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +2 -2
- package/dist/esm/components/DateTimePicker/index.js +1 -1
- package/dist/esm/components/Heading/index.js +1 -1
- package/dist/esm/components/Menu/index.js +1 -1
- package/dist/esm/components/Modal/index.js +1 -1
- package/dist/esm/components/NotificationCounter/index.js +1 -1
- package/dist/esm/components/NumberInput/index.js +1 -1
- package/dist/esm/components/PinInput/index.js +1 -1
- package/dist/esm/components/Popover/index.js +1 -1
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/Rating/index.js +1 -1
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/StyledAvatar/index.js +1 -1
- package/dist/esm/components/Switch/index.js +1 -1
- package/dist/esm/components/Tabs/index.js +1 -1
- package/dist/esm/components/TagBlock/index.js +1 -1
- package/dist/esm/components/Text/index.js +1 -1
- package/dist/esm/components/TextInput/index.js +1 -1
- package/dist/esm/components/Textarea/index.js +1 -1
- package/dist/esm/components/TimePicker/index.js +1 -1
- package/dist/esm/components/TimeRange/index.js +1 -1
- package/dist/esm/components/Timestamp/index.js +1 -1
- package/dist/esm/components/Tooltip/index.js +1 -1
- package/dist/esm/components/index.js +36 -36
- package/dist/esm/index.js +37 -37
- package/dist/esm/theme/index.js +1 -1
- package/dist/types/components/Alert/alert.recipe.d.ts +2 -2
- package/dist/types/components/Logo/logo.component.d.ts +2 -2
- package/dist/types/components/Modal/modal.recipe.d.ts +1 -1
- package/dist/types/components/NumberInput/numberInput.recipe.d.ts +1 -1
- package/dist/types/components/PinInput/pinInput.recipe.d.ts +1 -1
- package/dist/types/components/Popover/popover.recipe.d.ts +2 -2
- package/dist/types/components/Toast/toast.recipe.d.ts +2 -2
- package/package.json +1 -1
- package/dist/chunks/tooltip.component-B2kgm41E.js.map +0 -1
- package/dist/chunks/tooltip.component-CIWQSrgZ.js +0 -2
- package/dist/chunks/tooltip.component-CIWQSrgZ.js.map +0 -1
- package/dist/types/components/Tooltip/components/tooltipTrigger.component.d.ts +0 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as o } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { useCallback as b, useRef as J, useEffect as T, useState as k, useMemo as R } from "react";
|
|
3
|
-
import { W as K } from "./textInput.component-
|
|
4
|
-
import { P as Q } from "./popover.component-
|
|
3
|
+
import { W as K } from "./textInput.component-7NWlIJql.js";
|
|
4
|
+
import { P as Q } from "./popover.component-DtmTVjVy.js";
|
|
5
5
|
import { I as U } from "./icon.component-PV_nHBId.js";
|
|
6
6
|
import { u as X } from "./useIconTextSizeMap-BK-pUrQv.js";
|
|
7
7
|
import { f as Z } from "./format-CqTHHSak.js";
|
|
@@ -217,4 +217,4 @@ export {
|
|
|
217
217
|
d as M,
|
|
218
218
|
he as T
|
|
219
219
|
};
|
|
220
|
-
//# sourceMappingURL=timePicker.component-
|
|
220
|
+
//# sourceMappingURL=timePicker.component-BA4Ne43R.js.map
|
package/dist/chunks/{timePicker.component-81Y42yiZ.js.map → timePicker.component-BA4Ne43R.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-81Y42yiZ.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timePicker.component-BA4Ne43R.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":";;;;;;;;;;;AAEO,MAAMA,KAAmBC,GAAa;AAAA,EAC3C,MAAM;AAAA,IACJ,cAAc;AAAA,IACd,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,WAAW;AAAA,EACb;AAAA,EACA,UAAU;AAAA,IACR,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,UACN,YAAY;AAAA,QAAA;AAAA,MAEhB;AAAA,MACA,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,QAAQ;AAAA,UACN,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IACF;AAAA,EAEJ;AAAA,EACA,iBAAiB;AAAA,IACf,UAAU;AAAA,EAAA;AAEd,CAAC,GCZYC,KAAa,CAAC;AAAA,EACzB,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,CAAC,gBAAgBC,IAAa;AAChC,MAA0C;AAExC,QAAMC,IADSC,GAAU,EAAE,QAAQT,IAAkB,EAC/B,EAAE,UAAAM,GAAU,GAE5BI,IAAcC;AAAA,IAClB,CAACC,MAA4C;AACrC,YAAAC,IAAgBD,EAAM,cAAc,eAAe;AACzD,MAAAP,EAAQQ,CAAa;AAAA,IACvB;AAAA,IACA,CAACR,CAAO;AAAA,EACV;AAEA,SACGS,gBAAAA,EAAAA,IAAAC,GAAA,EAAI,WAAU,sBAAqB,eAAaR,GAAY,KAAKH,GAAU,SAASM,GAAa,KAAKF,GACpG,UACHL,GAAA;AAEJ,GCzCaa,IAAmBC,GAAiB;AAAA,EAC/C,OAAO,CAAC,WAAW,aAAa,MAAM;AAAA,EACtC,MAAM;AAAA,IACJ,SAAS;AAAA,MACP,OAAO;AAAA,IACT;AAAA,IACA,WAAW;AAAA,MACT,SAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,eAAe;AAAA,MACf,KAAK;AAAA,MACL,WAAW;AAAA,MACX,uBAAuB;AAAA,QACrB,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,EACF;AAEJ,CAAC,GCDYC,IAAW,CAAC;AAAA,EACvB,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAP;AAAA,EACA,SAAAR;AAAA,EACA,MAAAgB,IAAO;AAAA,EACP,CAAC,gBAAgBd,IAAa;AAChC,MAA+C;AAE7C,QAAMC,IADSc,EAAc,EAAE,QAAQN,GAAkB,EACnC,GAChBO,IAAUC,EAAuB,IAAI;AAE3C,SAAAC,EAAU,MAAM;AACV,IAAAJ,KAAQE,EAAQ,WAClB,sBAAsB,MAAM;AAC1B,MAAIA,EAAQ,WACVA,EAAQ,QAAQ,eAAe,EAAE,OAAO,UAAU;AAAA,IACpD,CACD;AAAA,EACH,GACC,CAACF,GAAMR,CAAa,CAAC,yBAGrBE,GAAI,EAAA,WAAU,oBAAmB,eAAa,GAAGR,CAAU,IAAIa,CAAU,SAAS,KAAKZ,EAAO,MAC5F,UAAQW,EAAA,IAAI,CAACO,MAAW;AACvB,UAAMC,IAAaD,MAAWb;AAE5B,WAAAC,gBAAAA,EAAA;AAAA,MAACZ;AAAA,MAAA;AAAA,QAEC,UAAUyB,IAAaJ,IAAU;AAAA,QACjC,OAAOG;AAAA,QACP,UAAUA,MAAWb;AAAA,QACrB,SAAAR;AAAA,QACA,eAAa,GAAGE,CAAU,IAAIa,CAAU,WAAWM,CAAM;AAAA,MAAA;AAAA,MALpD,GAAGN,CAAU,WAAWM,CAAM;AAAA,IAMrC;AAAA,EAEH,CAAA,GACH;AAEJ;AC9DY,IAAAE,sBAAAA,OACVA,EAAA,KAAK,MACLA,EAAA,KAAK,MAFKA,IAAAA,KAAA,CAAA,CAAA;ACuCL,MAAMC,KAAa,CAAC;AAAA,EACzB,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,CAAC,gBAAgB5B,IAAa;AAChC,MAA0C;AAExC,QAAMC,IADSc,EAAc,EAAE,QAAQN,GAAkB,EACnC,GAChB,CAACoB,GAAQC,CAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAcC,CAAe,IAAIF,EAASR,CAAW,GACtD,CAACW,GAAcC,CAAe,IAAIJ,EAA6B,GAC/D,CAACK,GAAgBC,CAAiB,IAAIN,EAA6B,GACnE,CAACO,GAAkBC,CAAmB,IAAIR,EAA6B,GAEvES,IAAgBC,EAAQ,MACvBT,IACEU,EAAOV,GAAc,SAAS,IADX,IAEzB,CAACA,CAAY,CAAC,GAEXW,IAAe,CAACC,MAAoC;AAClD,UAAAC,IAAiBD,EAAO,SAAS;AACnC,WAAAC,EAAe,WAAW,IACrB,IAAIA,CAAc,KAGpBA;AAAA,EACT,GAEMC,IAAcL,EAAQ,MACnB,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,IAAI,CAACM,MAASA,EAAK,UAAU,GAC3E,EAAE,GAECC,IAAgBP,EAAQ,MAAM;AAClC,UAAMQ,IAAU,CAAC;AACjB,aAASC,IAAI,GAAGA,IAAI,IAAIA,KAAKzB;AAC3B,MAAAwB,EAAQ,KAAKC,CAAC;AAGT,WAAAD,EAAQ,IAAIN,CAAY;AAAA,EAAA,GAC9B,CAAClB,CAAc,CAAC,GAEb0B,IAAkB,CAAC9B,EAAS,IAAIA,EAAS,EAAE,GAE3C+B,IAAmBhD;AAAA,IACvB,CAAC2C,GAAeM,GAAiBC,MAAsB;AACrD,YAAMC,IAAQR,KAAQ,MAChBS,IAAUH,KAAU,MACpBI,IAAYH,KAAY;AAC9B,UAAII,IAAqB;AAEzB,MAAKX,KACHZ,EAAgB,IAAI,GAEjBkB,KACHhB,EAAkB,IAAI,GAEnBiB,KACHf,EAAoB,IAAI,GAItBkB,MAAcpC,EAAS,MAAM,OAAOkC,CAAK,IAAI,OAC1BG,IAAA,KAInBD,MAAcpC,EAAS,MAAM,OAAOkC,CAAK,MAAM,OAC5BG,IAAA;AAGjB,YAAAC,IAAQ,OAAOJ,CAAK,IAAIG,GACxBE,KAAW,oBAAA,KAAA,GAAO,SAASD,GAAO,OAAOH,CAAO,GAAG,GAAG,CAAC,GACvDK,IAAO,IAAI,KAAKD,CAAI;AAC1B,MAAA3B,EAAgB4B,CAAI,GAEhBnC,KACFA,EAAamC,CAAI;AAAA,IAErB;AAAA,IACA,CAACnC,CAAY;AAAA,EACf,GAEMoC,IAAkB1D;AAAA,IACtB,CAACR,MAAkB;AACjB,MAAAuC,EAAgBvC,CAAK,GACJwD,EAAAxD,GAAOwC,GAAgBE,CAAgB;AAAA,IAC1D;AAAA,IACA,CAACc,GAAkBd,GAAkBF,CAAc;AAAA,EACrD,GAEM2B,IAAoB3D;AAAA,IACxB,CAACR,MAAkB;AACjB,MAAAyC,EAAkBzC,CAAK,GACNwD,EAAAlB,GAActC,GAAO0C,CAAgB;AAAA,IACxD;AAAA,IACA,CAACc,GAAkBlB,GAAcI,CAAgB;AAAA,EACnD,GAEM0B,IAAsB5D;AAAA,IAC1B,CAACR,MAAkB;AACjB,MAAA2C,EAAoB3C,CAAK,GACRwD,EAAAlB,GAAcE,GAAgBxC,CAAK;AAAA,IACtD;AAAA,IACA,CAACwD,GAAkBlB,GAAcE,CAAc;AAAA,EACjD;AAEA,SAAAlB,EAAU,MAAM;AAEd,QAAIK,GAAa;AACT,YAAA0C,IAAY,IAAI,KAAK1C,CAAW,GAIhC2C,IADQD,EAAU,SAAS,IACH,MAAM;AAEpC,MAAAhC,EAAgBV,CAAW,GACXY,EAAA+B,EAAc,UAAU,GACxC7B,EAAkB4B,EAAU,WAAa,EAAA,SAAA,CAAU,GACnD1B,EAAoB0B,EAAU,aAAa,KAAK5C,EAAS,KAAKA,EAAS,EAAE;AAAA,IAAA;AAAA,EAC3E,GACC,CAACE,CAAW,CAAC,GAGdhB,gBAAAA,EAAA;AAAA,IAAC4D;AAAA,IAAA;AAAA,MACC,MAAMtC;AAAA,MACN,cAAc,CAAC,EAAE,MAAAf,QAAW;AAC1B,QAAAgB,EAAUhB,CAAI,GACV,CAACA,KAAQa,KACXA,EAAQK,CAAY;AAAA,MAExB;AAAA,MACA,QACGzB,gBAAAA,EAAA,IAAAC,GAAA,EAAI,WAAU,uBAAsB,eAAa,GAAGR,CAAU,YAAY,KAAKC,EAAO,SACrF,UAAAM,gBAAAA,EAAA;AAAA,QAAC6D;AAAAA,QAAA;AAAA,UACC,aAAY;AAAA,UACZ,cAAe7D,gBAAAA,EAAA,IAAA8D,GAAA,EAAK,MAAMC,EAAmB9C,GAAY,QAAQ,IAAI,GAAG,MAAK,QAAQ,CAAA;AAAA,UACrF,OAAOgB;AAAA,UACP,UAAQ;AAAA,UACR,QAAO;AAAA,UACN,GAAGhB;AAAA,UACH,GAAIK,KAAU,EAAE,cAAc,OAAO;AAAA,QAAA;AAAA,MAAA,GAE1C;AAAA,MAEF,cAAc,EAAE,GAAG,cAAc;AAAA,MACjC,WAAAD;AAAA,MACA,SAASJ,GAAY,aAAa,aAAa;AAAA,MAC/C,WAAW;AAAA,MAEX,UAAA+C,gBAAAA,EAAAA,KAAC/D,GAAI,EAAA,WAAU,yBAAwB,eAAa,GAAGR,CAAU,cAAc,KAAKC,EAAO,WACzF,UAAA;AAAA,QAAAM,gBAAAA,EAAA;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAASmC;AAAA,YACT,YAAW;AAAA,YACX,eAAeZ;AAAA,YACf,SAAS4B;AAAA,YACT,MAAMjC;AAAA,YACN,eAAa,GAAG7B,CAAU;AAAA,UAAA;AAAA,QAC5B;AAAA,QACAO,gBAAAA,EAAA;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAASqC;AAAA,YACT,YAAW;AAAA,YACX,eAAeZ,IAAiBO,EAAaP,CAAc,IAAI;AAAA,YAC/D,SAAS2B;AAAA,YACT,MAAMlC;AAAA,YACN,eAAa,GAAG7B,CAAU;AAAA,UAAA;AAAA,QAC5B;AAAA,QACAO,gBAAAA,EAAA;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,SAASwC;AAAA,YACT,YAAW;AAAA,YACX,eAAeb;AAAA,YACf,SAAS0B;AAAA,YACT,MAAMnC;AAAA,YACN,eAAa,GAAG7B,CAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MAC5B,EACF,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("./jsx-runtime-BjDatQAs.js"),t=require("react"),Y=require("./textInput.component-
|
|
2
|
-
//# sourceMappingURL=timePicker.component-
|
|
1
|
+
"use strict";const n=require("./jsx-runtime-BjDatQAs.js"),t=require("react"),Y=require("./textInput.component-DCGouDzd.js"),G=require("./popover.component-B51SGhRa.js"),J=require("./icon.component-B1hr5lLa.js"),K=require("./useIconTextSizeMap-BXmABb54.js"),Q=require("./format-CK7Imh-5.js"),j=require("./index-BQRnVsAg.js"),v=require("./config-jChwZPSv.js"),U=require("./use-recipe-DaPWl_pL.js"),O=require("./create-slot-recipe-context-HXE1VazG.js"),X=v.defineRecipe({base:{borderRadius:"4px",cursor:"pointer",fontSize:"sm",px:3,py:1,textAlign:"center"},variants:{selected:{true:{background:"background.secondary",color:"text.contrast",_hover:{background:"background.secondary.hover"}},false:{background:"background",color:"text.subtle",_hover:{background:"background.secondaryAlpha.hover"}}}},defaultVariants:{selected:!1}}),Z=({value:s,innerRef:i,onClick:c,selected:d,["data-testid"]:m="kibble-timepicker-option"})=>{const a=U.useRecipe({recipe:X})({selected:d}),b=t.useCallback(u=>{const r=u.currentTarget.textContent||"";c(r)},[c]);return n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__Option","data-testid":m,ref:i,onClick:b,css:a,children:s})},N=v.defineSlotRecipe({slots:["trigger","container","list"],base:{trigger:{width:"100%"},container:{display:"flex",gap:1.5,height:"186px",overflow:"hidden"},list:{display:"flex",flexDirection:"column",gap:1,overflowY:"auto","&::webkit-scrollbar":{display:"none"}}}}),$=({options:s,optionType:i,selectedValue:c,onClick:d,open:m=!1,["data-testid"]:f="kibble-timepicker-list"})=>{const b=O.useSlotRecipe({recipe:N})(),u=t.useRef(null);return t.useEffect(()=>{m&&u.current&&requestAnimationFrame(()=>{u.current&&u.current.scrollIntoView({block:"center"})})},[m,c]),n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__List","data-testid":`${f}-${i}-list`,css:b.list,children:s.map(r=>{const M=r===c;return n.jsxRuntimeExports.jsx(Z,{innerRef:M?u:null,value:r,selected:r===c,onClick:d,"data-testid":`${f}-${i}-option-${r}`},`${i}-option-${r}`)})})};var l=(s=>(s.AM="AM",s.PM="PM",s))(l||{});const ee=({initialTime:s,inputProps:i,minuteInterval:c=5,onTimeChange:d,onClose:m,placement:f="bottom",["data-testid"]:a="kibble-timepicker"})=>{const u=O.useSlotRecipe({recipe:N})(),[r,M]=t.useState(!1),[h,q]=t.useState(s),[k,S]=t.useState(),[p,_]=t.useState(),[g,C]=t.useState(),T=t.useMemo(()=>h?Q.format(h,"h:mm aa"):"",[h]),y=e=>{const o=e.toString();return o.length===1?`0${o}`:o},H=t.useMemo(()=>[12,1,2,3,4,5,6,7,8,9,10,11].map(e=>e.toString()),[]),z=t.useMemo(()=>{const e=[];for(let o=0;o<60;o+=c)e.push(o);return e.map(y)},[c]),V=[l.AM,l.PM],x=t.useCallback((e,o,R)=>{const E=e||"12",F=o||"00",P=R||"AM";let A=0;e||S("12"),o||_("00"),R||C("AM"),P===l.PM&&Number(E)<12&&(A=12),P===l.AM&&Number(E)===12&&(A=-12);const I=Number(E)+A,W=new Date().setHours(I,Number(F),0,0),w=new Date(W);q(w),d&&d(w)},[d]),B=t.useCallback(e=>{S(e),x(e,p,g)},[x,g,p]),D=t.useCallback(e=>{_(e),x(k,e,g)},[x,k,g]),L=t.useCallback(e=>{C(e),x(k,p,e)},[x,k,p]);return t.useEffect(()=>{if(s){const e=new Date(s),R=e.getHours()%12||12;q(s),S(R.toString()),_(e.getMinutes().toString()),C(e.getHours()>11?l.PM:l.AM)}},[s]),n.jsxRuntimeExports.jsx(G.Popover,{open:r,onOpenChange:({open:e})=>{M(e),!e&&m&&m(h)},anchor:n.jsxRuntimeExports.jsx(j.Box,{className:"TimePicker__Trigger","data-testid":`${a}-trigger`,css:u.trigger,children:n.jsxRuntimeExports.jsx(Y.WrappedTextInput,{placeholder:"12:00 AM",rightElement:n.jsxRuntimeExports.jsx(J.Icon,{size:K.useIconTextSizeMap(i?.size||"md"),name:"clock"}),value:T,readOnly:!0,cursor:"pointer",...i,...r&&{"data-focus":"true"}})}),contentProps:{w:"max-content"},placement:f,variant:i?.onContrast?"contrast":"default",showArrow:!1,children:n.jsxRuntimeExports.jsxs(j.Box,{className:"TimePicker__Container","data-testid":`${a}-container`,css:u.container,children:[n.jsxRuntimeExports.jsx($,{options:H,optionType:"hour",selectedValue:k,onClick:B,open:r,"data-testid":`${a}-hour-list`}),n.jsxRuntimeExports.jsx($,{options:z,optionType:"minute",selectedValue:p?y(p):void 0,onClick:D,open:r,"data-testid":`${a}-minute-list`}),n.jsxRuntimeExports.jsx($,{options:V,optionType:"meridiem",selectedValue:g,onClick:L,open:r,"data-testid":`${a}-meridiem-list`})]})})};exports.Meridiem=l;exports.TimePicker=ee;
|
|
2
|
+
//# sourceMappingURL=timePicker.component-CCdxeuM3.js.map
|
package/dist/chunks/{timePicker.component-bQpqeqmS.js.map → timePicker.component-CCdxeuM3.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-bQpqeqmS.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timePicker.component-CCdxeuM3.js","sources":["../../src/components/TimePicker/components/TimeOption/timeOption.recipe.ts","../../src/components/TimePicker/components/TimeOption/timeOption.component.tsx","../../src/components/TimePicker/timePicker.recipe.ts","../../src/components/TimePicker/components/TimeList/timeList.component.tsx","../../src/components/TimePicker/timePicker.types.ts","../../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import { defineRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timeOptionRecipe = defineRecipe({\n base: {\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 'sm',\n px: 3,\n py: 1,\n textAlign: 'center',\n },\n variants: {\n selected: {\n true: {\n background: 'background.secondary',\n color: 'text.contrast',\n _hover: {\n background: 'background.secondary.hover',\n },\n },\n false: {\n background: 'background',\n color: 'text.subtle',\n _hover: {\n background: 'background.secondaryAlpha.hover',\n },\n },\n },\n },\n defaultVariants: {\n selected: false,\n },\n});\n","import React, { useCallback } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { useRecipe } from '@chakra-ui/react/styled-system';\nimport { timeOptionRecipe } from './timeOption.recipe';\n\ninterface TimeOptionProps {\n /** Ref to the option component. */\n innerRef?: React.Ref<HTMLDivElement | null> | null;\n /** Callback function to be called when the option is clicked. */\n onClick: (selectedValue: string) => void;\n /** If true, the option will be selected. */\n selected: boolean;\n /** Value of the option. */\n value: string;\n /** Data test id for the option.\n * @default kibble-timepicker-option\n */\n 'data-testid'?: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\n ['data-testid']: dataTestId = 'kibble-timepicker-option',\n}: TimeOptionProps): React.JSX.Element => {\n const recipe = useRecipe({ recipe: timeOptionRecipe });\n const styles = recipe({ selected });\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n onClick(selectedValue);\n },\n [onClick],\n );\n\n return (\n <Box className=\"TimePicker__Option\" data-testid={dataTestId} ref={innerRef} onClick={handleClick} css={styles}>\n {value}\n </Box>\n );\n};\n","import { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const timePickerRecipe = defineSlotRecipe({\n slots: ['trigger', 'container', 'list'],\n base: {\n trigger: {\n width: '100%',\n },\n container: {\n display: 'flex',\n gap: 1.5,\n height: '186px',\n overflow: 'hidden',\n },\n list: {\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n overflowY: 'auto',\n '&::webkit-scrollbar': {\n display: 'none',\n },\n },\n },\n});\n","import React, { useEffect, useRef } from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeOption } from '../TimeOption/timeOption.component';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from '../../timePicker.recipe';\n\ninterface ScrollContainerProps {\n /** Options to display in the list. */\n options: string[];\n /** Type of the option. */\n optionType: 'hour' | 'minute' | 'meridiem';\n /** Selected value of the list. */\n selectedValue?: string;\n /** Callback function to be called when the option is clicked. */\n onClick: (value: string) => void;\n /** Determines if the list is open. */\n open: boolean;\n /** Data test id for the list.\n * @default kibble-timepicker-list\n */\n 'data-testid'?: string;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n ['data-testid']: dataTestId = 'kibble-timepicker-list',\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && itemRef.current) {\n requestAnimationFrame(() => {\n if (itemRef.current) {\n itemRef.current.scrollIntoView({ block: 'center' });\n }\n });\n }\n }, [open, selectedValue]);\n\n return (\n <Box className=\"TimePicker__List\" data-testid={`${dataTestId}-${optionType}-list`} css={styles.list}>\n {options.map((option) => {\n const isSelected = option === selectedValue;\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={isSelected ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={`${dataTestId}-${optionType}-option-${option}`}\n />\n );\n })}\n </Box>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TextInput, TextInputProps } from 'components/TextInput/textInput.component';\nimport { Popover } from 'components/Popover/popover.component';\nimport { Icon } from 'components/Icon/icon.component';\nimport { useIconTextSizeMap } from 'hooks/useIconTextSizeMap';\nimport format from 'date-fns/format';\nimport { Box } from '@chakra-ui/react/box';\nimport { TimeList } from './components/TimeList/timeList.component';\nimport { Meridiem } from './timePicker.types';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { timePickerRecipe } from './timePicker.recipe';\nimport { Placement } from 'shared/types/placement';\n\nexport interface TimePickerProps {\n /** Initial time to be displayed in the input field. */\n initialTime?: Date;\n /** Props to customize the input field. See `TextInput` for more information. */\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n /**\n * Interval of minutes to be displayed in the dropdown.\n * @default 5\n */\n minuteInterval?: number;\n /** Callback function triggered when the time is changed. */\n onTimeChange?: (time: Date) => void;\n /** Callback function triggered when the time picker is closed. */\n onClose?: (time?: Date) => void;\n /**\n * Placement of the dropdown relative to the input field.\n * @default bottom\n */\n placement?: Placement;\n /**\n * Data test id for the time picker.\n * @default kibble-timepicker\n */\n 'data-testid'?: string;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n onClose,\n placement = 'bottom',\n ['data-testid']: dataTestId = 'kibble-timepicker',\n}: TimePickerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const [isOpen, setIsOpen] = useState(false);\n const [selectedTime, setSelectedTime] = useState(initialTime);\n const [selectedHour, setSelectedHour] = useState<string | undefined>();\n const [selectedMinute, setSelectedMinute] = useState<string | undefined>();\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>();\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n useEffect(() => {\n // Set default selections based on value passed in\n if (initialTime) {\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n const adjustedHours = hours % 12 || 12;\n\n setSelectedTime(initialTime);\n setSelectedHour(adjustedHours.toString());\n setSelectedMinute(localTime.getMinutes().toString());\n setSelectedMeridiem(localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM);\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => {\n setIsOpen(open);\n if (!open && onClose) {\n onClose(selectedTime);\n }\n }}\n anchor={\n <Box className=\"TimePicker__Trigger\" data-testid={`${dataTestId}-trigger`} css={styles.trigger}>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n readOnly\n cursor=\"pointer\"\n {...inputProps}\n {...(isOpen && { 'data-focus': 'true' })}\n />\n </Box>\n }\n contentProps={{ w: 'max-content' }}\n placement={placement}\n variant={inputProps?.onContrast ? 'contrast' : 'default'}\n showArrow={false}\n >\n <Box className=\"TimePicker__Container\" data-testid={`${dataTestId}-container`} css={styles.container}>\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n data-testid={`${dataTestId}-hour-list`}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n onClick={handleMinuteClick}\n open={isOpen}\n data-testid={`${dataTestId}-minute-list`}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n data-testid={`${dataTestId}-meridiem-list`}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","dataTestId","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","useEffect","option","isSelected","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","onClose","placement","isOpen","setIsOpen","useState","selectedTime","setSelectedTime","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","useMemo","format","formatNumber","number","formattedValue","hourOptions","hour","minuteOptions","minutes","i","meridiemOptions","handleTimeChange","minute","meridiem","_hour","_minute","_meridiem","meridiemAdjustment","hours","time","date","handleHourClick","handleMinuteClick","handleMeridiemClick","localTime","adjustedHours","Popover","TextInput","Icon","useIconTextSizeMap","jsxs"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),m=require("./index-BQRnVsAg.js"),t=require("./timePicker.component-
|
|
2
|
-
//# sourceMappingURL=timeRange.component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-BjDatQAs.js"),m=require("./index-BQRnVsAg.js"),t=require("./timePicker.component-CCdxeuM3.js"),c=require("./flex-BOU6tYUd.js"),a=({endTimePickerProps:s,separator:r="-",startTimePickerProps:n,["data-testid"]:i="kibble-time-range",...x})=>e.jsxRuntimeExports.jsxs(c.Flex,{className:"TimeRange","data-testid":i,...x,children:[e.jsxRuntimeExports.jsx(t.TimePicker,{...n,"data-testid":`${i}-start-time-picker`}),e.jsxRuntimeExports.jsx(m.Box,{alignSelf:"center",mx:1,children:r}),e.jsxRuntimeExports.jsx(t.TimePicker,{...s,"data-testid":`${i}-end-time-picker`})]});exports.TimeRange=a;
|
|
2
|
+
//# sourceMappingURL=timeRange.component-D-hxfB86.js.map
|
package/dist/chunks/{timeRange.component-D8EoIwTO.js.map → timeRange.component-D-hxfB86.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-D-hxfB86.js","sources":["../../src/components/TimeRange/timeRange.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { TimePicker, TimePickerProps } from 'components/TimePicker/timePicker.component';\n\nexport interface TimeRangeProps extends FlexProps {\n /**\n * Element that separates the start and end time pickers. By default, a dash is used.\n * @default -\n */\n separator?: React.ReactNode;\n /** Props for the end time picker. See `TimePicker` for more information. */\n endTimePickerProps: TimePickerProps;\n /** Props for the start time picker. See `TimePicker` for more information. */\n startTimePickerProps: TimePickerProps;\n /**\n * Data test id for the time range.\n * @default kibble-time-range\n */\n 'data-testid'?: string;\n}\n\nexport const TimeRange = ({\n endTimePickerProps,\n separator = '-',\n startTimePickerProps,\n ['data-testid']: dataTestId = 'kibble-time-range',\n ...rest\n}: TimeRangeProps): React.JSX.Element => {\n return (\n <Flex className=\"TimeRange\" data-testid={dataTestId} {...rest}>\n <TimePicker {...startTimePickerProps} data-testid={`${dataTestId}-start-time-picker`} />\n <Box alignSelf=\"center\" mx={1}>\n {separator}\n </Box>\n <TimePicker {...endTimePickerProps} data-testid={`${dataTestId}-end-time-picker`} />\n </Flex>\n );\n};\n"],"names":["TimeRange","endTimePickerProps","separator","startTimePickerProps","dataTestId","rest","Flex","jsx","TimePicker","Box"],"mappings":"2KAsBaA,EAAY,CAAC,CACxB,mBAAAC,EACA,UAAAC,EAAY,IACZ,qBAAAC,EACA,CAAC,eAAgBC,EAAa,oBAC9B,GAAGC,CACL,6BAEKC,OAAK,CAAA,UAAU,YAAY,cAAaF,EAAa,GAAGC,EACvD,SAAA,CAAAE,wBAACC,EAAAA,YAAY,GAAGL,EAAsB,cAAa,GAAGC,CAAU,qBAAsB,0BACrFK,EAAAA,IAAI,CAAA,UAAU,SAAS,GAAI,EACzB,SACHP,EAAA,0BACCM,EAAAA,WAAY,CAAA,GAAGP,EAAoB,cAAa,GAAGG,CAAU,kBAAoB,CAAA,CAAA,EACpF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { B as o } from "./index-9BerxEcw.js";
|
|
3
|
-
import { T as i } from "./timePicker.component-
|
|
3
|
+
import { T as i } from "./timePicker.component-BA4Ne43R.js";
|
|
4
4
|
import { F as n } from "./flex-CX-8gE9T.js";
|
|
5
5
|
const l = ({
|
|
6
6
|
endTimePickerProps: r,
|
|
@@ -16,4 +16,4 @@ const l = ({
|
|
|
16
16
|
export {
|
|
17
17
|
l as T
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=timeRange.component-
|
|
19
|
+
//# sourceMappingURL=timeRange.component-YqZ047RE.js.map
|
package/dist/chunks/{timeRange.component-CFjI106c.js.map → timeRange.component-YqZ047RE.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-YqZ047RE.js","sources":["../../src/components/TimeRange/timeRange.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Box } from '@chakra-ui/react/box';\nimport { Flex, FlexProps } from '@chakra-ui/react/flex';\nimport { TimePicker, TimePickerProps } from 'components/TimePicker/timePicker.component';\n\nexport interface TimeRangeProps extends FlexProps {\n /**\n * Element that separates the start and end time pickers. By default, a dash is used.\n * @default -\n */\n separator?: React.ReactNode;\n /** Props for the end time picker. See `TimePicker` for more information. */\n endTimePickerProps: TimePickerProps;\n /** Props for the start time picker. See `TimePicker` for more information. */\n startTimePickerProps: TimePickerProps;\n /**\n * Data test id for the time range.\n * @default kibble-time-range\n */\n 'data-testid'?: string;\n}\n\nexport const TimeRange = ({\n endTimePickerProps,\n separator = '-',\n startTimePickerProps,\n ['data-testid']: dataTestId = 'kibble-time-range',\n ...rest\n}: TimeRangeProps): React.JSX.Element => {\n return (\n <Flex className=\"TimeRange\" data-testid={dataTestId} {...rest}>\n <TimePicker {...startTimePickerProps} data-testid={`${dataTestId}-start-time-picker`} />\n <Box alignSelf=\"center\" mx={1}>\n {separator}\n </Box>\n <TimePicker {...endTimePickerProps} data-testid={`${dataTestId}-end-time-picker`} />\n </Flex>\n );\n};\n"],"names":["TimeRange","endTimePickerProps","separator","startTimePickerProps","dataTestId","rest","Flex","jsx","TimePicker","Box"],"mappings":";;;;AAsBO,MAAMA,IAAY,CAAC;AAAA,EACxB,oBAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,sBAAAC;AAAA,EACA,CAAC,gBAAgBC,IAAa;AAAA,EAC9B,GAAGC;AACL,6BAEKC,GAAK,EAAA,WAAU,aAAY,eAAaF,GAAa,GAAGC,GACvD,UAAA;AAAA,EAAAE,gBAAAA,MAACC,KAAY,GAAGL,GAAsB,eAAa,GAAGC,CAAU,sBAAsB;AAAA,wBACrFK,GAAI,EAAA,WAAU,UAAS,IAAI,GACzB,UACHP,GAAA;AAAA,wBACCM,GAAY,EAAA,GAAGP,GAAoB,eAAa,GAAGG,CAAU,mBAAoB,CAAA;AAAA,GACpF;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { useMemo as f } from "react";
|
|
3
|
-
import { W as x } from "./text.component-
|
|
4
|
-
import { T as n } from "./tooltip.component-
|
|
3
|
+
import { W as x } from "./text.component-EW-kQ5Hv.js";
|
|
4
|
+
import { T as n } from "./tooltip.component-BITkQyWl.js";
|
|
5
5
|
import { f as c } from "./format-CqTHHSak.js";
|
|
6
6
|
import { i as d } from "./isToday-iCYsPDMT.js";
|
|
7
7
|
const M = ({
|
|
@@ -33,4 +33,4 @@ const M = ({
|
|
|
33
33
|
export {
|
|
34
34
|
M as T
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=timestamp.component-
|
|
36
|
+
//# sourceMappingURL=timestamp.component-BnwS99du.js.map
|
package/dist/chunks/{timestamp.component-BhAAqd43.js.map → timestamp.component-BnwS99du.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.component-
|
|
1
|
+
{"version":3,"file":"timestamp.component-BnwS99du.js","sources":["../../src/components/Timestamp/timestamp.component.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip } from 'components/Tooltip/tooltip.component';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\n\nexport interface TimestampProps {\n /** The date to be shown. If it's today, it'll only show the time not the full date */\n date: Date;\n /**\n * Format of the time. See date-fns documentation for available formats.\n * @default h:mma\n */\n timeFormat?: string;\n /**\n * Format of the date. See date-fns documentation for available formats.\n * @default M/d/yy\n */\n dateFormat?: string;\n /**\n * If true and the date is today, it will only show the time not the full date.\n * @default true\n */\n shouldTodayDisplayTimeOnly?: boolean;\n /** Text shown on hover. If no text is provided, the tooltip wont be shown */\n tooltipLabel?: string;\n /** Configuration for the Text component. See the `Text` stories for more information. */\n textProps?: Omit<TextProps, 'children'>;\n /** Data test id for the timestamp. */\n 'data-testid'?: string;\n}\n\nexport const Timestamp = ({\n date,\n timeFormat = 'h:mma',\n dateFormat = 'M/d/yy',\n shouldTodayDisplayTimeOnly = true,\n tooltipLabel,\n textProps,\n ['data-testid']: dataTestId = 'kibble-timestamp',\n}: TimestampProps): React.JSX.Element => {\n const stamp = useMemo(\n () => format(date, isToday(date) && shouldTodayDisplayTimeOnly ? timeFormat : dateFormat),\n [date, dateFormat, shouldTodayDisplayTimeOnly, timeFormat],\n );\n\n return (\n <Tooltip disabled={!tooltipLabel} label={tooltipLabel || ''}>\n <Text\n className=\"Timestamp\"\n data-testid={dataTestId}\n variant=\"subtle\"\n size=\"xs\"\n textTransform=\"lowercase\"\n {...textProps}\n >\n {stamp}\n </Text>\n </Tooltip>\n );\n};\n"],"names":["Timestamp","date","timeFormat","dateFormat","shouldTodayDisplayTimeOnly","tooltipLabel","textProps","dataTestId","stamp","useMemo","format","isToday","Tooltip","jsx","Text"],"mappings":";;;;;;AAgCO,MAAMA,IAAY,CAAC;AAAA,EACxB,MAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,4BAAAC,IAA6B;AAAA,EAC7B,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,CAAC,gBAAgBC,IAAa;AAChC,MAAyC;AACvC,QAAMC,IAAQC;AAAA,IACZ,MAAMC,EAAOT,GAAMU,EAAQV,CAAI,KAAKG,IAA6BF,IAAaC,CAAU;AAAA,IACxF,CAACF,GAAME,GAAYC,GAA4BF,CAAU;AAAA,EAC3D;AAEA,+BACGU,GAAQ,EAAA,UAAU,CAACP,GAAc,OAAOA,KAAgB,IACvD,UAAAQ,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAaP;AAAA,MACb,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,eAAc;AAAA,MACb,GAAGD;AAAA,MAEH,UAAAE;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("./jsx-runtime-BjDatQAs.js"),c=require("react"),u=require("./text.component-
|
|
2
|
-
//# sourceMappingURL=timestamp.component-
|
|
1
|
+
"use strict";const n=require("./jsx-runtime-BjDatQAs.js"),c=require("react"),u=require("./text.component-D-HVW7NW.js"),p=require("./tooltip.component-B47vZ14Y.js"),x=require("./format-CK7Imh-5.js"),d=require("./isToday-BgNkHh5t.js"),l=({date:e,timeFormat:t="h:mma",dateFormat:s="M/d/yy",shouldTodayDisplayTimeOnly:r=!0,tooltipLabel:i,textProps:o,["data-testid"]:m="kibble-timestamp"})=>{const a=c.useMemo(()=>x.format(e,d.isToday(e)&&r?t:s),[e,s,r,t]);return n.jsxRuntimeExports.jsx(p.Tooltip,{disabled:!i,label:i||"",children:n.jsxRuntimeExports.jsx(u.WrappedText,{className:"Timestamp","data-testid":m,variant:"subtle",size:"xs",textTransform:"lowercase",...o,children:a})})};exports.Timestamp=l;
|
|
2
|
+
//# sourceMappingURL=timestamp.component-Bxd-EH6y.js.map
|
package/dist/chunks/{timestamp.component-CBVv_SHJ.js.map → timestamp.component-Bxd-EH6y.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.component-
|
|
1
|
+
{"version":3,"file":"timestamp.component-Bxd-EH6y.js","sources":["../../src/components/Timestamp/timestamp.component.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Text, TextProps } from 'components/Text/text.component';\nimport { Tooltip } from 'components/Tooltip/tooltip.component';\nimport format from 'date-fns/format';\nimport isToday from 'date-fns/isToday';\n\nexport interface TimestampProps {\n /** The date to be shown. If it's today, it'll only show the time not the full date */\n date: Date;\n /**\n * Format of the time. See date-fns documentation for available formats.\n * @default h:mma\n */\n timeFormat?: string;\n /**\n * Format of the date. See date-fns documentation for available formats.\n * @default M/d/yy\n */\n dateFormat?: string;\n /**\n * If true and the date is today, it will only show the time not the full date.\n * @default true\n */\n shouldTodayDisplayTimeOnly?: boolean;\n /** Text shown on hover. If no text is provided, the tooltip wont be shown */\n tooltipLabel?: string;\n /** Configuration for the Text component. See the `Text` stories for more information. */\n textProps?: Omit<TextProps, 'children'>;\n /** Data test id for the timestamp. */\n 'data-testid'?: string;\n}\n\nexport const Timestamp = ({\n date,\n timeFormat = 'h:mma',\n dateFormat = 'M/d/yy',\n shouldTodayDisplayTimeOnly = true,\n tooltipLabel,\n textProps,\n ['data-testid']: dataTestId = 'kibble-timestamp',\n}: TimestampProps): React.JSX.Element => {\n const stamp = useMemo(\n () => format(date, isToday(date) && shouldTodayDisplayTimeOnly ? timeFormat : dateFormat),\n [date, dateFormat, shouldTodayDisplayTimeOnly, timeFormat],\n );\n\n return (\n <Tooltip disabled={!tooltipLabel} label={tooltipLabel || ''}>\n <Text\n className=\"Timestamp\"\n data-testid={dataTestId}\n variant=\"subtle\"\n size=\"xs\"\n textTransform=\"lowercase\"\n {...textProps}\n >\n {stamp}\n </Text>\n </Tooltip>\n );\n};\n"],"names":["Timestamp","date","timeFormat","dateFormat","shouldTodayDisplayTimeOnly","tooltipLabel","textProps","dataTestId","stamp","useMemo","format","isToday","Tooltip","jsx","Text"],"mappings":"yOAgCaA,EAAY,CAAC,CACxB,KAAAC,EACA,WAAAC,EAAa,QACb,WAAAC,EAAa,SACb,2BAAAC,EAA6B,GAC7B,aAAAC,EACA,UAAAC,EACA,CAAC,eAAgBC,EAAa,kBAChC,IAAyC,CACvC,MAAMC,EAAQC,EAAA,QACZ,IAAMC,EAAAA,OAAOT,EAAMU,EAAA,QAAQV,CAAI,GAAKG,EAA6BF,EAAaC,CAAU,EACxF,CAACF,EAAME,EAAYC,EAA4BF,CAAU,CAC3D,EAEA,+BACGU,UAAQ,CAAA,SAAU,CAACP,EAAc,MAAOA,GAAgB,GACvD,SAAAQ,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,UAAU,YACV,cAAaP,EACb,QAAQ,SACR,KAAK,KACL,cAAc,YACb,GAAGD,EAEH,SAAAE,CAAA,CAAA,EAEL,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const s=require("./jsx-runtime-BjDatQAs.js"),g=require("react"),B=require("./config-jChwZPSv.js"),p=require("./index-CQURjLlA.js"),c=require("./index-Ts8g8jZd.js"),U=require("./index-BoulS5Zg.js"),a=require("./use-locale-context-ym21RUxU.js"),w=require("./create-slot-recipe-context-HXE1VazG.js"),[N,C]=a.createContext({name:"HoverCardContext",hookName:"useHoverCardContext",providerName:"<HoverCardProvider />"}),L=g.forwardRef((e,t)=>{const r=C(),o=p.mergeProps(r.getArrowProps(),e);return s.jsxRuntimeExports.jsx(a.ark.div,{...o,ref:t})});L.displayName="HoverCardArrow";const j=g.forwardRef((e,t)=>{const r=C(),o=p.mergeProps(r.getArrowTipProps(),e);return s.jsxRuntimeExports.jsx(a.ark.div,{...o,ref:t})});j.displayName="HoverCardArrowTip";const H=g.forwardRef((e,t)=>{const r=C(),o=c.usePresenceContext(),n=p.mergeProps(r.getContentProps(),o.getPresenceProps(),e);return o.unmounted?null:s.jsxRuntimeExports.jsx(a.ark.div,{...n,ref:a.composeRefs(o.ref,t)})});H.displayName="HoverCardContent";const Y=e=>e.children(C()),I=g.forwardRef((e,t)=>{const r=C(),o=p.mergeProps(r.getPositionerProps(),e);return c.usePresenceContext().unmounted?null:s.jsxRuntimeExports.jsx(a.ark.div,{...o,ref:t})});I.displayName="HoverCardPositioner";var R=p.createAnatomy("hoverCard").parts("arrow","arrowTip","trigger","positioner","content"),v=R.build(),k=e=>e.ids?.trigger??`hover-card:${e.id}:trigger`,D=e=>e.ids?.content??`hover-card:${e.id}:content`,A=e=>e.ids?.positioner??`hover-card:${e.id}:popper`,M=e=>e.ids?.arrow??`hover-card:${e.id}:arrow`,x=e=>e.getById(k(e)),z=e=>e.getById(D(e)),h=e=>e.getById(A(e));function J(e,t){const{state:r,send:o,prop:n,context:d,scope:u}=e,P=r.hasTag("open"),l=c.getPlacementStyles({...n("positioning"),placement:d.get("currentPlacement")});return{open:P,setOpen(i){r.hasTag("open")!==i&&o({type:i?"OPEN":"CLOSE"})},reposition(i={}){o({type:"POSITIONING.SET",options:i})},getArrowProps(){return t.element({id:M(u),...v.arrow.attrs,dir:n("dir"),style:l.arrow})},getArrowTipProps(){return t.element({...v.arrowTip.attrs,dir:n("dir"),style:l.arrowTip})},getTriggerProps(){return t.element({...v.trigger.attrs,dir:n("dir"),"data-placement":d.get("currentPlacement"),id:k(u),"data-state":P?"open":"closed",onPointerEnter(i){i.pointerType!=="touch"&&o({type:"POINTER_ENTER",src:"trigger"})},onPointerLeave(i){i.pointerType!=="touch"&&o({type:"POINTER_LEAVE",src:"trigger"})},onFocus(){o({type:"TRIGGER_FOCUS"})},onBlur(){o({type:"TRIGGER_BLUR"})}})},getPositionerProps(){return t.element({id:A(u),...v.positioner.attrs,dir:n("dir"),style:l.floating})},getContentProps(){return t.element({...v.content.attrs,dir:n("dir"),id:D(u),hidden:!P,tabIndex:-1,"data-state":P?"open":"closed","data-placement":d.get("currentPlacement"),onPointerEnter(i){i.pointerType!=="touch"&&o({type:"POINTER_ENTER",src:"content"})},onPointerLeave(i){i.pointerType!=="touch"&&o({type:"POINTER_LEAVE",src:"content"})}})}}}var{not:O,and:y}=p.createGuards(),K=p.createMachine({props({props:e}){return{openDelay:700,closeDelay:300,...e,positioning:{placement:"bottom",...e.positioning}}},initialState({prop:e}){return e("open")||e("defaultOpen")?"open":"closed"},context({prop:e,bindable:t}){return{open:t(()=>({defaultValue:e("defaultOpen"),value:e("open"),onChange(r){e("onOpenChange")?.({open:r})}})),currentPlacement:t(()=>({defaultValue:void 0})),isPointer:t(()=>({defaultValue:!1}))}},watch({track:e,context:t,action:r}){e([()=>t.get("open")],()=>{r(["toggleVisibility"])})},states:{closed:{tags:["closed"],entry:["clearIsPointer"],on:{"CONTROLLED.OPEN":{target:"open"},POINTER_ENTER:{target:"opening",actions:["setIsPointer"]},TRIGGER_FOCUS:{target:"opening"},OPEN:{target:"opening"}}},opening:{tags:["closed"],effects:["waitForOpenDelay"],on:{OPEN_DELAY:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}],"CONTROLLED.OPEN":{target:"open"},"CONTROLLED.CLOSE":{target:"closed"},POINTER_LEAVE:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}],TRIGGER_BLUR:[{guard:y("isOpenControlled",O("isPointer")),actions:["invokeOnClose","toggleVisibility"]},{guard:O("isPointer"),target:"closed",actions:["invokeOnClose"]}],CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}]}},open:{tags:["open"],effects:["trackDismissableElement","trackPositioning"],on:{"CONTROLLED.CLOSE":{target:"closed"},POINTER_ENTER:{actions:["setIsPointer"]},POINTER_LEAVE:{target:"closing"},CLOSE:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],TRIGGER_BLUR:[{guard:y("isOpenControlled",O("isPointer")),actions:["invokeOnClose"]},{guard:O("isPointer"),target:"closed",actions:["invokeOnClose"]}],"POSITIONING.SET":{actions:["reposition"]}}},closing:{tags:["open"],effects:["trackPositioning","waitForCloseDelay"],on:{CLOSE_DELAY:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"CONTROLLED.CLOSE":{target:"closed"},"CONTROLLED.OPEN":{target:"open"},POINTER_ENTER:{target:"open",actions:["setIsPointer"]}}}},implementations:{guards:{isPointer:({context:e})=>!!e.get("isPointer"),isOpenControlled:({prop:e})=>e("open")!=null},effects:{waitForOpenDelay({send:e,prop:t}){const r=setTimeout(()=>{e({type:"OPEN_DELAY"})},t("openDelay"));return()=>clearTimeout(r)},waitForCloseDelay({send:e,prop:t}){const r=setTimeout(()=>{e({type:"CLOSE_DELAY"})},t("closeDelay"));return()=>clearTimeout(r)},trackPositioning({context:e,prop:t,scope:r}){e.get("currentPlacement")||e.set("currentPlacement",t("positioning").placement);const o=()=>h(r);return c.getPlacement(x(r),o,{...t("positioning"),defer:!0,onComplete(n){e.set("currentPlacement",n.placement)}})},trackDismissableElement({send:e,scope:t,prop:r}){const o=()=>z(t);return U.trackDismissableElement(o,{defer:!0,exclude:[x(t)],onDismiss(){e({type:"CLOSE",src:"interact-outside"})},onInteractOutside:r("onInteractOutside"),onPointerDownOutside:r("onPointerDownOutside"),onFocusOutside(n){n.preventDefault(),r("onFocusOutside")?.(n)}})}},actions:{invokeOnClose({prop:e}){e("onOpenChange")?.({open:!1})},invokeOnOpen({prop:e}){e("onOpenChange")?.({open:!0})},setIsPointer({context:e}){e.set("isPointer",!0)},clearIsPointer({context:e}){e.set("isPointer",!1)},reposition({context:e,prop:t,scope:r,event:o}){const n=()=>h(r);c.getPlacement(x(r),n,{...t("positioning"),...o.options,defer:!0,listeners:!1,onComplete(d){e.set("currentPlacement",d.placement)}})},toggleVisibility({prop:e,event:t,send:r}){queueMicrotask(()=>{r({type:e("open")?"CONTROLLED.OPEN":"CONTROLLED.CLOSE",previousEvent:t})})}}}});a.createProps()(["closeDelay","dir","getRootNode","id","ids","onOpenChange","defaultOpen","open","openDelay","positioning","onInteractOutside","onPointerDownOutside","onFocusOutside"]);const Q=e=>{const t=g.useId(),{getRootNode:r}=a.useEnvironmentContext(),{dir:o}=a.useLocaleContext(),n={id:t,dir:o,getRootNode:r,...e},d=a.useMachine(K,n);return J(d,a.normalizeProps)},W=e=>{const[t,{children:r,...o}]=c.splitPresenceProps(e),n=Q(o),d=c.usePresence(p.mergeProps({present:n.open},t));return s.jsxRuntimeExports.jsx(N,{value:n,children:s.jsxRuntimeExports.jsx(c.PresenceProvider,{value:d,children:r})})},X=e=>{const[t,{value:r,children:o}]=c.splitPresenceProps(e),n=c.usePresence(p.mergeProps({present:r.open},t));return s.jsxRuntimeExports.jsx(N,{value:r,children:s.jsxRuntimeExports.jsx(c.PresenceProvider,{value:n,children:o})})},S=g.forwardRef((e,t)=>{const r=C(),o=p.mergeProps(r.getTriggerProps(),e);return s.jsxRuntimeExports.jsx(a.ark.button,{...o,ref:t})});S.displayName="HoverCardTrigger";const{withRootProvider:_,withContext:E,PropsProvider:Z}=w.createSlotRecipeContext({key:"hoverCard"}),ee=_(X),b=_(W),te=Z,$=E(S,"trigger",{forwardAsChild:!0}),G=E(I,"positioner",{forwardAsChild:!0}),V=E(H,"content",{forwardAsChild:!0}),T=E(j,"arrowTip",{forwardAsChild:!0}),F=E(L,"arrow",{forwardAsChild:!0,defaultProps:{children:s.jsxRuntimeExports.jsx(T,{})}}),re=Y,oe=B.defineSlotRecipe({slots:R.keys(),base:{arrow:{"--arrow-size":"10px"},arrowTip:{border:"none"},content:{"--hovercard-bg":"colors.background.overlay.contrast",border:"none",borderRadius:"base",boxShadow:"none",color:"text.contrast",fontSize:"sm",lineHeight:"150%",padding:2,zIndex:"tooltip"},trigger:{textAlign:"left",width:"max-content"}},variants:{onContrast:{true:{content:{"--hovercard-bg":"colors.background.overlay",color:"text"}}}}}),q=g.forwardRef(({children:e,disabled:t=!1,openDelay:r=750,placement:o="top",positioning:n,portalled:d=!0,label:u,onContrast:P=!1,["data-testid"]:l="kibble-tooltip",...i},f)=>{const m=w.useSlotRecipe({recipe:oe})({onContrast:P});return e?t||!u?e:s.jsxRuntimeExports.jsxs(b,{positioning:{...n,placement:n?.placement||o},openDelay:r,...i,children:[s.jsxRuntimeExports.jsx($,{asChild:!0,className:"Tooltip__Trigger","data-testid":`${l}-trigger`,css:m.trigger,children:s.jsxRuntimeExports.jsx("span",{children:e})}),s.jsxRuntimeExports.jsx(c.Portal,{disabled:!d,children:s.jsxRuntimeExports.jsx(G,{className:"Tooltip","data-testid":l,children:s.jsxRuntimeExports.jsxs(V,{className:"Tooltip__Content","data-testid":`${l}-content`,ref:f,css:m.content,children:[s.jsxRuntimeExports.jsx(F,{className:"Tooltip__Arrow","data-testid":`${l}-arrow`,css:m.arrow,children:s.jsxRuntimeExports.jsx(T,{css:m.arrowTip})}),u]})})})]}):s.jsxRuntimeExports.jsx(s.jsxRuntimeExports.Fragment,{})});q.displayName="Tooltip";exports.HoverCardArrow=F;exports.HoverCardArrowTip=T;exports.HoverCardContent=V;exports.HoverCardContext=re;exports.HoverCardPositioner=G;exports.HoverCardPropsProvider=te;exports.HoverCardRoot=b;exports.HoverCardRootProvider=ee;exports.HoverCardTrigger=$;exports.Tooltip=q;exports.anatomy=R;exports.useHoverCardContext=C;
|
|
2
|
+
//# sourceMappingURL=tooltip.component-B47vZ14Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.component-B47vZ14Y.js","sources":["../../node_modules/@ark-ui/react/dist/components/hover-card/use-hover-card-context.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-arrow.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-arrow-tip.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-content.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-context.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-positioner.js","../../node_modules/@zag-js/hover-card/dist/index.mjs","../../node_modules/@ark-ui/react/dist/components/hover-card/use-hover-card.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-root.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-root-provider.js","../../node_modules/@ark-ui/react/dist/components/hover-card/hover-card-trigger.js","../../node_modules/@chakra-ui/react/dist/esm/components/hover-card/hover-card.js","../../src/components/Tooltip/tooltip.recipe.ts","../../src/components/Tooltip/tooltip.component.tsx"],"sourcesContent":["'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [HoverCardProvider, useHoverCardContext] = createContext({\n name: \"HoverCardContext\",\n hookName: \"useHoverCardContext\",\n providerName: \"<HoverCardProvider />\"\n});\n\nexport { HoverCardProvider, useHoverCardContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardArrow = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getArrowProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardArrow.displayName = \"HoverCardArrow\";\n\nexport { HoverCardArrow };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardArrowTip = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getArrowTipProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardArrowTip.displayName = \"HoverCardArrowTip\";\n\nexport { HoverCardArrowTip };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardContent = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(hoverCard.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nHoverCardContent.displayName = \"HoverCardContent\";\n\nexport { HoverCardContent };\n","'use client';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardContext = (props) => props.children(useHoverCardContext());\n\nexport { HoverCardContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardPositioner = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nHoverCardPositioner.displayName = \"HoverCardPositioner\";\n\nexport { HoverCardPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/hover-card.anatomy.ts\nvar anatomy = createAnatomy(\"hoverCard\").parts(\"arrow\", \"arrowTip\", \"trigger\", \"positioner\", \"content\");\nvar parts = anatomy.build();\n\n// src/hover-card.dom.ts\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `hover-card:${ctx.id}:trigger`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `hover-card:${ctx.id}:content`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `hover-card:${ctx.id}:popper`;\nvar getArrowId = (ctx) => ctx.ids?.arrow ?? `hover-card:${ctx.id}:arrow`;\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\n\n// src/hover-card.connect.ts\nfunction connect(service, normalize) {\n const { state, send, prop, context, scope } = service;\n const open = state.hasTag(\"open\");\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: context.get(\"currentPlacement\")\n });\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n getArrowProps() {\n return normalize.element({\n id: getArrowId(scope),\n ...parts.arrow.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrow\n });\n },\n getArrowTipProps() {\n return normalize.element({\n ...parts.arrowTip.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.arrowTip\n });\n },\n getTriggerProps() {\n return normalize.element({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n \"data-placement\": context.get(\"currentPlacement\"),\n id: getTriggerId(scope),\n \"data-state\": open ? \"open\" : \"closed\",\n onPointerEnter(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_ENTER\", src: \"trigger\" });\n },\n onPointerLeave(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_LEAVE\", src: \"trigger\" });\n },\n onFocus() {\n send({ type: \"TRIGGER_FOCUS\" });\n },\n onBlur() {\n send({ type: \"TRIGGER_BLUR\" });\n }\n });\n },\n getPositionerProps() {\n return normalize.element({\n id: getPositionerId(scope),\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n hidden: !open,\n tabIndex: -1,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-placement\": context.get(\"currentPlacement\"),\n onPointerEnter(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_ENTER\", src: \"content\" });\n },\n onPointerLeave(event) {\n if (event.pointerType === \"touch\") return;\n send({ type: \"POINTER_LEAVE\", src: \"content\" });\n }\n });\n }\n };\n}\nvar { not, and } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n openDelay: 700,\n closeDelay: 300,\n ...props2,\n positioning: {\n placement: \"bottom\",\n ...props2.positioning\n }\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ prop, bindable }) {\n return {\n open: bindable(() => ({\n defaultValue: prop(\"defaultOpen\"),\n value: prop(\"open\"),\n onChange(value) {\n prop(\"onOpenChange\")?.({ open: value });\n }\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n isPointer: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n watch({ track, context, action }) {\n track([() => context.get(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n closed: {\n tags: [\"closed\"],\n entry: [\"clearIsPointer\"],\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n POINTER_ENTER: {\n target: \"opening\",\n actions: [\"setIsPointer\"]\n },\n TRIGGER_FOCUS: {\n target: \"opening\"\n },\n OPEN: {\n target: \"opening\"\n }\n }\n },\n opening: {\n tags: [\"closed\"],\n effects: [\"waitForOpenDelay\"],\n on: {\n OPEN_DELAY: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n POINTER_LEAVE: [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TRIGGER_BLUR: [\n {\n guard: and(\"isOpenControlled\", not(\"isPointer\")),\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n guard: not(\"isPointer\"),\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n // We trigger toggleVisibility manually since the `ctx.open` has not changed yet (at this point)\n actions: [\"invokeOnClose\", \"toggleVisibility\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n open: {\n tags: [\"open\"],\n effects: [\"trackDismissableElement\", \"trackPositioning\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n POINTER_ENTER: {\n actions: [\"setIsPointer\"]\n },\n POINTER_LEAVE: {\n target: \"closing\"\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TRIGGER_BLUR: [\n {\n guard: and(\"isOpenControlled\", not(\"isPointer\")),\n actions: [\"invokeOnClose\"]\n },\n {\n guard: not(\"isPointer\"),\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n },\n closing: {\n tags: [\"open\"],\n effects: [\"trackPositioning\", \"waitForCloseDelay\"],\n on: {\n CLOSE_DELAY: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n POINTER_ENTER: {\n target: \"open\",\n // no need to invokeOnOpen here because it's still open (but about to close)\n actions: [\"setIsPointer\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n isPointer: ({ context }) => !!context.get(\"isPointer\"),\n isOpenControlled: ({ prop }) => prop(\"open\") != null\n },\n effects: {\n waitForOpenDelay({ send, prop }) {\n const id = setTimeout(() => {\n send({ type: \"OPEN_DELAY\" });\n }, prop(\"openDelay\"));\n return () => clearTimeout(id);\n },\n waitForCloseDelay({ send, prop }) {\n const id = setTimeout(() => {\n send({ type: \"CLOSE_DELAY\" });\n }, prop(\"closeDelay\"));\n return () => clearTimeout(id);\n },\n trackPositioning({ context, prop, scope }) {\n if (!context.get(\"currentPlacement\")) {\n context.set(\"currentPlacement\", prop(\"positioning\").placement);\n }\n const getPositionerEl2 = () => getPositionerEl(scope);\n return getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n defer: true,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n trackDismissableElement({ send, scope, prop }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n defer: true,\n exclude: [getTriggerEl(scope)],\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n },\n onInteractOutside: prop(\"onInteractOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onFocusOutside(event) {\n event.preventDefault();\n prop(\"onFocusOutside\")?.(event);\n }\n });\n }\n },\n actions: {\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n setIsPointer({ context }) {\n context.set(\"isPointer\", true);\n },\n clearIsPointer({ context }) {\n context.set(\"isPointer\", false);\n },\n reposition({ context, prop, scope, event }) {\n const getPositionerEl2 = () => getPositionerEl(scope);\n getPlacement(getTriggerEl(scope), getPositionerEl2, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility({ prop, event, send }) {\n queueMicrotask(() => {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"closeDelay\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"onOpenChange\",\n \"defaultOpen\",\n \"open\",\n \"openDelay\",\n \"positioning\",\n \"onInteractOutside\",\n \"onPointerDownOutside\",\n \"onFocusOutside\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as hoverCard from '@zag-js/hover-card';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useHoverCard = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(hoverCard.machine, machineProps);\n return hoverCard.connect(service, normalizeProps);\n};\n\nexport { useHoverCard };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useHoverCard } from './use-hover-card.js';\nimport { HoverCardProvider } from './use-hover-card-context.js';\n\nconst HoverCardRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const hoverCard = useHoverCard(localProps);\n const presence = usePresence(mergeProps({ present: hoverCard.open }, presenceProps));\n return /* @__PURE__ */ jsx(HoverCardProvider, { value: hoverCard, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { HoverCardRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { HoverCardProvider } from './use-hover-card-context.js';\n\nconst HoverCardRootProvider = (props) => {\n const [presenceProps, { value: hoverCard, children }] = splitPresenceProps(props);\n const presence = usePresence(mergeProps({ present: hoverCard.open }, presenceProps));\n return /* @__PURE__ */ jsx(HoverCardProvider, { value: hoverCard, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) });\n};\n\nexport { HoverCardRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useHoverCardContext } from './use-hover-card-context.js';\n\nconst HoverCardTrigger = forwardRef((props, ref) => {\n const hoverCard = useHoverCardContext();\n const mergedProps = mergeProps(hoverCard.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nHoverCardTrigger.displayName = \"HoverCardTrigger\";\n\nexport { HoverCardTrigger };\n","\"use strict\";\n\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { HoverCard } from '@ark-ui/react/hover-card';\nimport { createSlotRecipeContext } from '../../styled-system/create-slot-recipe-context.js';\n\nconst {\n withRootProvider,\n withContext,\n useStyles: useHoverCardStyles,\n PropsProvider\n} = createSlotRecipeContext({ key: \"hoverCard\" });\nconst HoverCardRootProvider = withRootProvider(HoverCard.RootProvider);\nconst HoverCardRoot = withRootProvider(\n HoverCard.Root\n);\nconst HoverCardPropsProvider = PropsProvider;\nconst HoverCardTrigger = withContext(HoverCard.Trigger, \"trigger\", { forwardAsChild: true });\nconst HoverCardPositioner = withContext(HoverCard.Positioner, \"positioner\", { forwardAsChild: true });\nconst HoverCardContent = withContext(HoverCard.Content, \"content\", { forwardAsChild: true });\nconst HoverCardArrowTip = withContext(HoverCard.ArrowTip, \"arrowTip\", { forwardAsChild: true });\nconst HoverCardArrow = withContext(\n HoverCard.Arrow,\n \"arrow\",\n {\n forwardAsChild: true,\n defaultProps: { children: /* @__PURE__ */ jsx(HoverCardArrowTip, {}) }\n }\n);\nconst HoverCardContext = HoverCard.Context;\n\nexport { HoverCardArrow, HoverCardArrowTip, HoverCardContent, HoverCardContext, HoverCardPositioner, HoverCardPropsProvider, HoverCardRoot, HoverCardRootProvider, HoverCardTrigger, useHoverCardStyles };\n","import { hoverCardAnatomy } from '@chakra-ui/react/anatomy';\nimport { defineSlotRecipe } from '@chakra-ui/react/styled-system';\n\nexport const tooltipRecipe = defineSlotRecipe({\n slots: hoverCardAnatomy.keys(),\n base: {\n arrow: {\n '--arrow-size': '10px',\n },\n arrowTip: {\n border: 'none',\n },\n content: {\n '--hovercard-bg': 'colors.background.overlay.contrast',\n border: 'none',\n borderRadius: 'base',\n boxShadow: 'none',\n color: 'text.contrast',\n fontSize: 'sm',\n lineHeight: '150%',\n padding: 2,\n zIndex: 'tooltip',\n },\n trigger: {\n textAlign: 'left',\n width: 'max-content',\n },\n },\n variants: {\n onContrast: {\n true: {\n content: {\n '--hovercard-bg': 'colors.background.overlay',\n color: 'text',\n },\n },\n },\n },\n});\n","import React, { forwardRef } from 'react';\nimport { Portal } from '@chakra-ui/react/portal';\nimport { HoverCard } from '@chakra-ui/react/hover-card';\nimport { Placement } from 'shared/types/placement';\nimport { useSlotRecipe } from '@chakra-ui/react/styled-system';\nimport { tooltipRecipe } from './tooltip.recipe';\n\nexport interface TooltipProps extends Omit<HoverCard.RootProps, 'children'> {\n /** The element that the tooltip will be attached to. The tooltip will be shown when the user hovers over this element. */\n children?: React.ReactNode;\n /**\n * Controls whether the tooltip is shown on hover or not\n * @default false\n */\n disabled?: boolean;\n /** The text to be displayed in the tooltip */\n label: string;\n /**\n * Sets the placement of the tooltip in relation to the designated element. If the chosen placement puts the tooltip out-of-bounds of the viewport, the placement will automatically adjust. You should, however, choose a placement that works best with orientation of the element.\n * @default top\n */\n placement?: Placement;\n /**\n * Controls whether the tooltip is rendered in a portal or not. Portals are used to render components outside of their parent components DOM hierarchy.\n * @default true\n */\n portalled?: boolean;\n /** Ref to the portal element. */\n portalRef?: React.RefObject<HTMLElement | null>;\n /**\n * If true, the tooltip will render a contrasting variant.\n * @default false\n */\n onContrast?: boolean;\n /**\n * Data test id for the tooltip.\n * @default kibble-tooltip\n */\n 'data-testid'?: string;\n}\n\nexport const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(\n (\n {\n children,\n disabled = false,\n openDelay = 750,\n placement = 'top',\n positioning,\n portalled = true,\n label,\n onContrast = false,\n ['data-testid']: dataTestId = 'kibble-tooltip',\n ...rest\n },\n ref,\n ): React.ReactNode => {\n const recipe = useSlotRecipe({ recipe: tooltipRecipe });\n const styles = recipe({ onContrast });\n\n if (!children) return <></>;\n if (disabled || !label) return children;\n\n return (\n <HoverCard.Root\n positioning={{\n ...positioning,\n placement: positioning?.placement || placement,\n }}\n openDelay={openDelay}\n {...rest}\n >\n <HoverCard.Trigger\n asChild\n className=\"Tooltip__Trigger\"\n data-testid={`${dataTestId}-trigger`}\n css={styles.trigger}\n >\n <span>{children}</span>\n </HoverCard.Trigger>\n <Portal disabled={!portalled}>\n <HoverCard.Positioner className=\"Tooltip\" data-testid={dataTestId}>\n <HoverCard.Content\n className=\"Tooltip__Content\"\n data-testid={`${dataTestId}-content`}\n ref={ref}\n css={styles.content}\n >\n <HoverCard.Arrow className=\"Tooltip__Arrow\" data-testid={`${dataTestId}-arrow`} css={styles.arrow}>\n <HoverCard.ArrowTip css={styles.arrowTip} />\n </HoverCard.Arrow>\n {label}\n </HoverCard.Content>\n </HoverCard.Positioner>\n </Portal>\n </HoverCard.Root>\n );\n },\n);\n\nTooltip.displayName = 'Tooltip';\n"],"names":["HoverCardProvider","useHoverCardContext","createContext","HoverCardArrow","forwardRef","props","ref","hoverCard","mergedProps","mergeProps","jsx","ark","HoverCardArrowTip","HoverCardContent","presence","usePresenceContext","composeRefs","HoverCardContext","HoverCardPositioner","anatomy","createAnatomy","parts","getTriggerId","ctx","getContentId","getPositionerId","getArrowId","getTriggerEl","getContentEl","getPositionerEl","connect","service","normalize","state","send","prop","context","scope","open","popperStyles","getPlacementStyles","nextOpen","options","event","not","and","createGuards","machine","createMachine","props2","bindable","value","track","action","id","getPositionerEl2","getPlacement","data","getContentEl2","trackDismissableElement","createProps","useHoverCard","useId","getRootNode","useEnvironmentContext","dir","useLocaleContext","machineProps","useMachine","hoverCard.machine","hoverCard.connect","normalizeProps","HoverCardRoot","presenceProps","children","localProps","splitPresenceProps","usePresence","PresenceProvider","HoverCardRootProvider","HoverCardTrigger","withRootProvider","withContext","PropsProvider","createSlotRecipeContext","HoverCard.RootProvider","HoverCard.Root","HoverCardPropsProvider","HoverCard.Trigger","HoverCard.Positioner","HoverCard.Content","HoverCard.ArrowTip","HoverCard.Arrow","HoverCard.Context","tooltipRecipe","defineSlotRecipe","hoverCardAnatomy","Tooltip","disabled","openDelay","placement","positioning","portalled","label","onContrast","dataTestId","rest","styles","useSlotRecipe","jsxs","Portal","Fragment"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|