@televet/kibble-ui 4.0.0-beta.32 → 4.0.0-beta.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{alert.component-CcCt-bb5.js → alert.component-BE3-CAp_.js} +2 -2
- package/dist/chunks/{alert.component-CcCt-bb5.js.map → alert.component-BE3-CAp_.js.map} +1 -1
- package/dist/chunks/{alert.component-Dk33kIVc.js → alert.component-Dz9izFQV.js} +10 -10
- package/dist/chunks/{alert.component-Dk33kIVc.js.map → alert.component-Dz9izFQV.js.map} +1 -1
- package/dist/chunks/{avatar.component-LWnRY2X6.js → avatar.component-BnpTQCJL.js} +2 -2
- package/dist/chunks/{avatar.component-LWnRY2X6.js.map → avatar.component-BnpTQCJL.js.map} +1 -1
- package/dist/chunks/{avatar.component-Bj-v-tJK.js → avatar.component-X8DAz-8Y.js} +12 -12
- package/dist/chunks/{avatar.component-Bj-v-tJK.js.map → avatar.component-X8DAz-8Y.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-DEDlMSqD.js → avatarGroup.component-BrZUEoVD.js} +2 -2
- package/dist/chunks/{avatarGroup.component-DEDlMSqD.js.map → avatarGroup.component-BrZUEoVD.js.map} +1 -1
- package/dist/chunks/{avatarGroup.component-Onosz6A9.js → avatarGroup.component-CkRKaKZg.js} +2 -2
- package/dist/chunks/{avatarGroup.component-Onosz6A9.js.map → avatarGroup.component-CkRKaKZg.js.map} +1 -1
- package/dist/chunks/box-BY0YYx5L.js +2 -0
- package/dist/chunks/{box-DiiiZkF4.js.map → box-BY0YYx5L.js.map} +1 -1
- package/dist/chunks/box-y05hq0PT.js +7 -0
- package/dist/chunks/{box-DQTWVrl0.js.map → box-y05hq0PT.js.map} +1 -1
- package/dist/chunks/{button.component-DrvTYE-F.js → button.component-B00-Osm7.js} +2 -2
- package/dist/chunks/{button.component-DrvTYE-F.js.map → button.component-B00-Osm7.js.map} +1 -1
- package/dist/chunks/{button.component-BZHMvNis.js → button.component-BWlRjD5a.js} +3 -3
- package/dist/chunks/{button.component-BZHMvNis.js.map → button.component-BWlRjD5a.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-DoNMqghO.js → buttonGroup.component-Bs9pKJms.js} +6 -6
- package/dist/chunks/{buttonGroup.component-DoNMqghO.js.map → buttonGroup.component-Bs9pKJms.js.map} +1 -1
- package/dist/chunks/{buttonGroup.component-CmMPEPEN.js → buttonGroup.component-cJsrnAI_.js} +2 -2
- package/dist/chunks/{buttonGroup.component-CmMPEPEN.js.map → buttonGroup.component-cJsrnAI_.js.map} +1 -1
- package/dist/chunks/{card.component-Ds2Q5-dv.js → card.component-6TV04UQT.js} +2 -2
- package/dist/chunks/{card.component-Ds2Q5-dv.js.map → card.component-6TV04UQT.js.map} +1 -1
- package/dist/chunks/{card.component-BdHsWz_5.js → card.component-z9egwqlC.js} +2 -2
- package/dist/chunks/{card.component-BdHsWz_5.js.map → card.component-z9egwqlC.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-OMu4axLo.js → characterCounter.component-BRxQbUCp.js} +2 -2
- package/dist/chunks/{characterCounter.component-OMu4axLo.js.map → characterCounter.component-BRxQbUCp.js.map} +1 -1
- package/dist/chunks/{characterCounter.component-2pxq0nJ_.js → characterCounter.component-eeCq2Syc.js} +5 -5
- package/dist/chunks/{characterCounter.component-2pxq0nJ_.js.map → characterCounter.component-eeCq2Syc.js.map} +1 -1
- package/dist/chunks/{checkbox.component-CN7VT6Kl.js → checkbox.component-BKXghymE.js} +2 -2
- package/dist/chunks/{checkbox.component-CN7VT6Kl.js.map → checkbox.component-BKXghymE.js.map} +1 -1
- package/dist/chunks/{checkbox.component-6unW8bGD.js → checkbox.component-H78vY8fD.js} +7 -7
- package/dist/chunks/{checkbox.component-6unW8bGD.js.map → checkbox.component-H78vY8fD.js.map} +1 -1
- package/dist/chunks/{checkbox.records-BEJe1isy.js → checkbox.records-Aw_NTs-t.js} +2 -2
- package/dist/chunks/{checkbox.records-BEJe1isy.js.map → checkbox.records-Aw_NTs-t.js.map} +1 -1
- package/dist/chunks/{checkbox.records-1df_6uAA.js → checkbox.records-ef7wOXPE.js} +2 -2
- package/dist/chunks/{checkbox.records-1df_6uAA.js.map → checkbox.records-ef7wOXPE.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-Dbc4R5pg.js → checkboxGroup.component-B5UKDlty.js} +4 -4
- package/dist/chunks/{checkboxGroup.component-Dbc4R5pg.js.map → checkboxGroup.component-B5UKDlty.js.map} +1 -1
- package/dist/chunks/{checkboxGroup.component-BJ12z-XW.js → checkboxGroup.component-Dp2TGaIv.js} +2 -2
- package/dist/chunks/{checkboxGroup.component-BJ12z-XW.js.map → checkboxGroup.component-Dp2TGaIv.js.map} +1 -1
- package/dist/chunks/{config-CWIRw37z.js → config-C4FE-eBu.js} +2 -2
- package/dist/chunks/{config-CWIRw37z.js.map → config-C4FE-eBu.js.map} +1 -1
- package/dist/chunks/{config-Bka1LOUG.js → config-CBtB94-l.js} +2 -2
- package/dist/chunks/{config-Bka1LOUG.js.map → config-CBtB94-l.js.map} +1 -1
- package/dist/chunks/{conversationCard.component--lfMn8rH.js → conversationCard.component-BKz2_jiC.js} +2 -2
- package/dist/chunks/{conversationCard.component--lfMn8rH.js.map → conversationCard.component-BKz2_jiC.js.map} +1 -1
- package/dist/chunks/{conversationCard.component-D0iB6mGd.js → conversationCard.component-BqVI0A5M.js} +17 -17
- package/dist/chunks/{conversationCard.component-D0iB6mGd.js.map → conversationCard.component-BqVI0A5M.js.map} +1 -1
- package/dist/chunks/{create-recipe-context-ei7-Fhjc.js → create-recipe-context-BcvaE0iS.js} +3 -3
- package/dist/chunks/{create-recipe-context-ei7-Fhjc.js.map → create-recipe-context-BcvaE0iS.js.map} +1 -1
- package/dist/chunks/{create-recipe-context-yj-_0pxV.js → create-recipe-context-zuvJCzon.js} +2 -2
- package/dist/chunks/{create-recipe-context-yj-_0pxV.js.map → create-recipe-context-zuvJCzon.js.map} +1 -1
- package/dist/chunks/{create-slot-recipe-context-CNbTdeS5.js → create-slot-recipe-context-CGr0CNLL.js} +2 -2
- package/dist/chunks/{create-slot-recipe-context-CNbTdeS5.js.map → create-slot-recipe-context-CGr0CNLL.js.map} +1 -1
- package/dist/chunks/{create-slot-recipe-context-B6kmgvsX.js → create-slot-recipe-context-DJkLYvCT.js} +3 -3
- package/dist/chunks/{create-slot-recipe-context-B6kmgvsX.js.map → create-slot-recipe-context-DJkLYvCT.js.map} +1 -1
- package/dist/chunks/{datePicker.component-BjPLm6FH.js → datePicker.component-BnyKQvyQ.js} +13 -13
- package/dist/chunks/{datePicker.component-BjPLm6FH.js.map → datePicker.component-BnyKQvyQ.js.map} +1 -1
- package/dist/chunks/{datePicker.component-DOq_pEln.js → datePicker.component-smXCtDzN.js} +2 -2
- package/dist/chunks/{datePicker.component-DOq_pEln.js.map → datePicker.component-smXCtDzN.js.map} +1 -1
- package/dist/chunks/{dialog-trigger-CUC9-uYl.js → dialog-trigger--snowOl8.js} +2 -2
- package/dist/chunks/{dialog-trigger-CUC9-uYl.js.map → dialog-trigger--snowOl8.js.map} +1 -1
- package/dist/chunks/{dialog-trigger-tzkv77T4.js → dialog-trigger-sGBMGLMB.js} +2 -2
- package/dist/chunks/{dialog-trigger-tzkv77T4.js.map → dialog-trigger-sGBMGLMB.js.map} +1 -1
- package/dist/chunks/{divider.types-CVrYEuME.js → divider.types-BHqfjZmx.js} +3 -3
- package/dist/chunks/{divider.types-CVrYEuME.js.map → divider.types-BHqfjZmx.js.map} +1 -1
- package/dist/chunks/{divider.types-Cum_pC7q.js → divider.types-ztu5bosP.js} +2 -2
- package/dist/chunks/{divider.types-Cum_pC7q.js.map → divider.types-ztu5bosP.js.map} +1 -1
- package/dist/chunks/factory-Bcsg2jrN.js +3 -0
- package/dist/chunks/factory-Bcsg2jrN.js.map +1 -0
- package/dist/chunks/factory-gZxMesut.js +540 -0
- package/dist/chunks/factory-gZxMesut.js.map +1 -0
- package/dist/chunks/{flex-D2YmHSRL.js → flex-C2d2LH-K.js} +2 -2
- package/dist/chunks/{flex-D2YmHSRL.js.map → flex-C2d2LH-K.js.map} +1 -1
- package/dist/chunks/{flex-CoWH4MWg.js → flex-CDHt3rEg.js} +2 -2
- package/dist/chunks/{flex-CoWH4MWg.js.map → flex-CDHt3rEg.js.map} +1 -1
- package/dist/chunks/{float-D0XppGHj.js → float-BGoiH_lz.js} +2 -2
- package/dist/chunks/{float-D0XppGHj.js.map → float-BGoiH_lz.js.map} +1 -1
- package/dist/chunks/{float-3sTEdNja.js → float-BHAFWRjM.js} +3 -3
- package/dist/chunks/{float-3sTEdNja.js.map → float-BHAFWRjM.js.map} +1 -1
- package/dist/chunks/{grid-item-Demhr3R8.js → grid-item-B2mOwD2y.js} +3 -3
- package/dist/chunks/{grid-item-Demhr3R8.js.map → grid-item-B2mOwD2y.js.map} +1 -1
- package/dist/chunks/{grid-item-CUvFlFUM.js → grid-item-MOohWPxJ.js} +2 -2
- package/dist/chunks/{grid-item-CUvFlFUM.js.map → grid-item-MOohWPxJ.js.map} +1 -1
- package/dist/chunks/{group-gT4uiUTj.js → group-BDPR7Wsb.js} +2 -2
- package/dist/chunks/{group-gT4uiUTj.js.map → group-BDPR7Wsb.js.map} +1 -1
- package/dist/chunks/{group-CyV6CH8n.js → group-CjQBwfVM.js} +2 -2
- package/dist/chunks/{group-CyV6CH8n.js.map → group-CjQBwfVM.js.map} +1 -1
- package/dist/chunks/{h-stack-DS6_Nmps.js → h-stack-B837-amb.js} +2 -2
- package/dist/chunks/{h-stack-DS6_Nmps.js.map → h-stack-B837-amb.js.map} +1 -1
- package/dist/chunks/{h-stack-DWIPFE4q.js → h-stack-iIc7vTB3.js} +2 -2
- package/dist/chunks/{h-stack-DWIPFE4q.js.map → h-stack-iIc7vTB3.js.map} +1 -1
- package/dist/chunks/{heading.component-CVtGEEgj.js → heading.component-B5JYSME5.js} +2 -2
- package/dist/chunks/{heading.component-CVtGEEgj.js.map → heading.component-B5JYSME5.js.map} +1 -1
- package/dist/chunks/{heading.component-WidNm4DU.js → heading.component-E5shs3Uo.js} +3 -3
- package/dist/chunks/{heading.component-WidNm4DU.js.map → heading.component-E5shs3Uo.js.map} +1 -1
- package/dist/chunks/{icon-button-BoeNBxVE.js → icon-button-CAQKxvIU.js} +2 -2
- package/dist/chunks/{icon-button-BoeNBxVE.js.map → icon-button-CAQKxvIU.js.map} +1 -1
- package/dist/chunks/{icon-button-BhUHtq9f.js → icon-button-g512TBA9.js} +4 -4
- package/dist/chunks/{icon-button-BhUHtq9f.js.map → icon-button-g512TBA9.js.map} +1 -1
- package/dist/chunks/{icon.component-CqMlCLYe.js → icon.component-BmcWaysM.js} +2 -2
- package/dist/chunks/{icon.component-CqMlCLYe.js.map → icon.component-BmcWaysM.js.map} +1 -1
- package/dist/chunks/{icon.component-RnXzLy9Z.js → icon.component-DQSt_HsP.js} +2 -2
- package/dist/chunks/{icon.component-RnXzLy9Z.js.map → icon.component-DQSt_HsP.js.map} +1 -1
- package/dist/chunks/{icons-DsfswYKK.js → icons-I7OjCkwW.js} +2 -2
- package/dist/chunks/{icons-DsfswYKK.js.map → icons-I7OjCkwW.js.map} +1 -1
- package/dist/chunks/{icons-6idzI9fr.js → icons-grAfs3Oz.js} +2 -2
- package/dist/chunks/{icons-6idzI9fr.js.map → icons-grAfs3Oz.js.map} +1 -1
- package/dist/chunks/{index-naFRmuBR.js → index-3ddVVAS7.js} +2 -2
- package/dist/chunks/{index-naFRmuBR.js.map → index-3ddVVAS7.js.map} +1 -1
- package/dist/chunks/{index-BStpE8Il.js → index-DMVlKSP7.js} +2 -2
- package/dist/chunks/{index-BStpE8Il.js.map → index-DMVlKSP7.js.map} +1 -1
- package/dist/chunks/{index-CItwlE2r.js → index-DgWFIP2d.js} +2 -2
- package/dist/chunks/{index-CItwlE2r.js.map → index-DgWFIP2d.js.map} +1 -1
- package/dist/chunks/{index-DQxjSq1v.js → index-sVj7ynbl.js} +2 -2
- package/dist/chunks/{index-DQxjSq1v.js.map → index-sVj7ynbl.js.map} +1 -1
- package/dist/chunks/{link.component-DfPzeeWK.js → link.component-BWJ4ROCE.js} +2 -2
- package/dist/chunks/{link.component-DfPzeeWK.js.map → link.component-BWJ4ROCE.js.map} +1 -1
- package/dist/chunks/{link.component-B0NnnoNo.js → link.component-PVTwe2h6.js} +5 -5
- package/dist/chunks/{link.component-B0NnnoNo.js.map → link.component-PVTwe2h6.js.map} +1 -1
- package/dist/chunks/{list-CBFKkZsk.js → list-0-1dh2ih.js} +2 -2
- package/dist/chunks/{list-CBFKkZsk.js.map → list-0-1dh2ih.js.map} +1 -1
- package/dist/chunks/{list-AkEh0-z3.js → list-BDolkk8d.js} +2 -2
- package/dist/chunks/{list-AkEh0-z3.js.map → list-BDolkk8d.js.map} +1 -1
- package/dist/chunks/{logo.types-Di-vcqft.js → logo.types-B_zly1v-.js} +4 -4
- package/dist/chunks/{logo.types-Di-vcqft.js.map → logo.types-B_zly1v-.js.map} +1 -1
- package/dist/chunks/{logo.types-DWfVoh84.js → logo.types-q-ggA_a7.js} +2 -2
- package/dist/chunks/{logo.types-DWfVoh84.js.map → logo.types-q-ggA_a7.js.map} +1 -1
- package/dist/chunks/{menu.component-CVq3JuDQ.js → menu.component-BGIWDPfq.js} +2 -2
- package/dist/chunks/{menu.component-CVq3JuDQ.js.map → menu.component-BGIWDPfq.js.map} +1 -1
- package/dist/chunks/{menu.component-D7YIaf-Z.js → menu.component-BQ-ffGbb.js} +11 -11
- package/dist/chunks/{menu.component-D7YIaf-Z.js.map → menu.component-BQ-ffGbb.js.map} +1 -1
- package/dist/chunks/{modal.types-hd4zRySC.js → modal.types-BGqtuJeQ.js} +7 -7
- package/dist/chunks/{modal.types-hd4zRySC.js.map → modal.types-BGqtuJeQ.js.map} +1 -1
- package/dist/chunks/{modal.types-BqYvHMJ1.js → modal.types-DKo88dBb.js} +2 -2
- package/dist/chunks/{modal.types-BqYvHMJ1.js.map → modal.types-DKo88dBb.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-C1kj4Fks.js → notificationCounter.component-B35zG3FJ.js} +2 -2
- package/dist/chunks/{notificationCounter.component-C1kj4Fks.js.map → notificationCounter.component-B35zG3FJ.js.map} +1 -1
- package/dist/chunks/{notificationCounter.component-DucbUl3J.js → notificationCounter.component-CG5067PO.js} +5 -5
- package/dist/chunks/{notificationCounter.component-DucbUl3J.js.map → notificationCounter.component-CG5067PO.js.map} +1 -1
- package/dist/chunks/{picture.component-CFur6bma.js → picture.component-Ct-hKxQ-.js} +2 -2
- package/dist/chunks/{picture.component-CFur6bma.js.map → picture.component-Ct-hKxQ-.js.map} +1 -1
- package/dist/chunks/{picture.component-CcTQIBLG.js → picture.component-a4DWuwBK.js} +2 -2
- package/dist/chunks/{picture.component-CcTQIBLG.js.map → picture.component-a4DWuwBK.js.map} +1 -1
- package/dist/chunks/{pinInput.types-BkZoddhj.js → pinInput.types-CLqRWzjE.js} +2 -2
- package/dist/chunks/{pinInput.types-BkZoddhj.js.map → pinInput.types-CLqRWzjE.js.map} +1 -1
- package/dist/chunks/{pinInput.types-htAlsWUJ.js → pinInput.types-Drsvga74.js} +3 -3
- package/dist/chunks/{pinInput.types-htAlsWUJ.js.map → pinInput.types-Drsvga74.js.map} +1 -1
- package/dist/chunks/{popover-DK1Q0GmC.js → popover-CVuXLIf4.js} +2 -2
- package/dist/chunks/{popover-DK1Q0GmC.js.map → popover-CVuXLIf4.js.map} +1 -1
- package/dist/chunks/{popover-NyXIgDrR.js → popover-Q1b5Ou9h.js} +2 -2
- package/dist/chunks/{popover-NyXIgDrR.js.map → popover-Q1b5Ou9h.js.map} +1 -1
- package/dist/chunks/{popover.component-Di7A2mlT.js → popover.component-BfScbbtS.js} +11 -11
- package/dist/chunks/{popover.component-Di7A2mlT.js.map → popover.component-BfScbbtS.js.map} +1 -1
- package/dist/chunks/{popover.component-BU4ZYtgB.js → popover.component-D6m9F1c6.js} +2 -2
- package/dist/chunks/{popover.component-BU4ZYtgB.js.map → popover.component-D6m9F1c6.js.map} +1 -1
- package/dist/chunks/{popover.recipe-C7mfFIuD.js → popover.recipe-BwEAIvNr.js} +2 -2
- package/dist/chunks/{popover.recipe-C7mfFIuD.js.map → popover.recipe-BwEAIvNr.js.map} +1 -1
- package/dist/chunks/{popover.recipe-CFioNlNO.js → popover.recipe-GRsBj3sj.js} +2 -2
- package/dist/chunks/{popover.recipe-CFioNlNO.js.map → popover.recipe-GRsBj3sj.js.map} +1 -1
- package/dist/chunks/{radio.records-HAh4TB8-.js → radio.records-Byes_KyE.js} +2 -2
- package/dist/chunks/{radio.records-HAh4TB8-.js.map → radio.records-Byes_KyE.js.map} +1 -1
- package/dist/chunks/{radio.records-BvaGc_dX.js → radio.records-CsyF_2pW.js} +2 -2
- package/dist/chunks/{radio.records-BvaGc_dX.js.map → radio.records-CsyF_2pW.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-Cdtgrekb.js → radioGroup.component-DcNcJlPG.js} +10 -10
- package/dist/chunks/{radioGroup.component-Cdtgrekb.js.map → radioGroup.component-DcNcJlPG.js.map} +1 -1
- package/dist/chunks/{radioGroup.component-AnXOfN3A.js → radioGroup.component-Dz94yQrM.js} +2 -2
- package/dist/chunks/{radioGroup.component-AnXOfN3A.js.map → radioGroup.component-Dz94yQrM.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-B-VtkikB.js → ratingDots.component-C5aSJ1Q4.js} +7 -7
- package/dist/chunks/{ratingDots.component-B-VtkikB.js.map → ratingDots.component-C5aSJ1Q4.js.map} +1 -1
- package/dist/chunks/{ratingDots.component-wYh_RTGd.js → ratingDots.component-CMRaZkp9.js} +2 -2
- package/dist/chunks/{ratingDots.component-wYh_RTGd.js.map → ratingDots.component-CMRaZkp9.js.map} +1 -1
- package/dist/chunks/{select.component-CtCEglbM.js → select.component-AaeCV9aS.js} +2 -2
- package/dist/chunks/{select.component-CtCEglbM.js.map → select.component-AaeCV9aS.js.map} +1 -1
- package/dist/chunks/{select.component-C9FC4hZN.js → select.component-FuB-fMhN.js} +9 -9
- package/dist/chunks/{select.component-C9FC4hZN.js.map → select.component-FuB-fMhN.js.map} +1 -1
- package/dist/chunks/{sortableList.component-Dft-FiMn.js → sortableList.component-B5FLxs9B.js} +2 -2
- package/dist/chunks/{sortableList.component-Dft-FiMn.js.map → sortableList.component-B5FLxs9B.js.map} +1 -1
- package/dist/chunks/{sortableList.component-BpkFj8Wt.js → sortableList.component-CH3vyqJx.js} +5 -5
- package/dist/chunks/{sortableList.component-BpkFj8Wt.js.map → sortableList.component-CH3vyqJx.js.map} +1 -1
- package/dist/chunks/spinner-CQnM6sI5.js +8 -0
- package/dist/chunks/{spinner-DUSVCecp.js.map → spinner-CQnM6sI5.js.map} +1 -1
- package/dist/chunks/spinner-CdizFGt2.js +2 -0
- package/dist/chunks/{spinner-B981BEf0.js.map → spinner-CdizFGt2.js.map} +1 -1
- package/dist/chunks/{spinner.component-DPS-cIcA.js → spinner.component-C6ze-UId.js} +2 -2
- package/dist/chunks/{spinner.component-DPS-cIcA.js.map → spinner.component-C6ze-UId.js.map} +1 -1
- package/dist/chunks/{spinner.component-BmT7fUg9.js → spinner.component-D33KPNJg.js} +6 -6
- package/dist/chunks/{spinner.component-BmT7fUg9.js.map → spinner.component-D33KPNJg.js.map} +1 -1
- package/dist/chunks/{stack-BNCEW5sJ.js → stack-B6Qs7bq9.js} +3 -3
- package/dist/chunks/{stack-BNCEW5sJ.js.map → stack-B6Qs7bq9.js.map} +1 -1
- package/dist/chunks/{stack-DXGLsM8c.js → stack-BXedcvXG.js} +2 -2
- package/dist/chunks/{stack-DXGLsM8c.js.map → stack-BXedcvXG.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-CI0j01cH.js → styledAvatar.types-Cs1V_5QN.js} +2 -2
- package/dist/chunks/{styledAvatar.types-CI0j01cH.js.map → styledAvatar.types-Cs1V_5QN.js.map} +1 -1
- package/dist/chunks/{styledAvatar.types-CRb1HJCU.js → styledAvatar.types-zsBrDQY6.js} +2 -2
- package/dist/chunks/{styledAvatar.types-CRb1HJCU.js.map → styledAvatar.types-zsBrDQY6.js.map} +1 -1
- package/dist/chunks/{swatch.types-DMM5zh_t.js → swatch.types-DUBu3p9m.js} +4 -4
- package/dist/chunks/{swatch.types-DMM5zh_t.js.map → swatch.types-DUBu3p9m.js.map} +1 -1
- package/dist/chunks/{swatch.types-BtgRLAO2.js → swatch.types-ayrg4Hqh.js} +2 -2
- package/dist/chunks/{swatch.types-BtgRLAO2.js.map → swatch.types-ayrg4Hqh.js.map} +1 -1
- package/dist/chunks/{switch.component-Dl4g9R68.js → switch.component-Bt1upkuX.js} +5 -5
- package/dist/chunks/{switch.component-Dl4g9R68.js.map → switch.component-Bt1upkuX.js.map} +1 -1
- package/dist/chunks/{switch.component-Do0X7LJD.js → switch.component-CogfRnIE.js} +2 -2
- package/dist/chunks/{switch.component-Do0X7LJD.js.map → switch.component-CogfRnIE.js.map} +1 -1
- package/dist/chunks/{tabs.component-D1aPBr6M.js → tabs.component-D5tE6-_n.js} +5 -5
- package/dist/chunks/{tabs.component-D1aPBr6M.js.map → tabs.component-D5tE6-_n.js.map} +1 -1
- package/dist/chunks/{tabs.component-ISxMfB67.js → tabs.component-DPhyNkEb.js} +2 -2
- package/dist/chunks/{tabs.component-ISxMfB67.js.map → tabs.component-DPhyNkEb.js.map} +1 -1
- package/dist/chunks/{tag.component-BdVdchYv.js → tag.component-D_8Wr2wv.js} +3 -3
- package/dist/chunks/{tag.component-BdVdchYv.js.map → tag.component-D_8Wr2wv.js.map} +1 -1
- package/dist/chunks/{tag.component-Mi7eMQDk.js → tag.component-tnWGtyyn.js} +2 -2
- package/dist/chunks/{tag.component-Mi7eMQDk.js.map → tag.component-tnWGtyyn.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-BQRdsHPH.js → tagBlock.component-hFiLlj_t.js} +10 -10
- package/dist/chunks/{tagBlock.component-BQRdsHPH.js.map → tagBlock.component-hFiLlj_t.js.map} +1 -1
- package/dist/chunks/{tagBlock.component-Dj3iPVJy.js → tagBlock.component-lpe1SCKu.js} +2 -2
- package/dist/chunks/{tagBlock.component-Dj3iPVJy.js.map → tagBlock.component-lpe1SCKu.js.map} +1 -1
- package/dist/chunks/{text.component-ymbS_dRE.js → text.component-DHUP6rVA.js} +3 -3
- package/dist/chunks/{text.component-ymbS_dRE.js.map → text.component-DHUP6rVA.js.map} +1 -1
- package/dist/chunks/{text.component-uDfPjmx6.js → text.component-DfCcIqyd.js} +2 -2
- package/dist/chunks/{text.component-uDfPjmx6.js.map → text.component-DfCcIqyd.js.map} +1 -1
- package/dist/chunks/{textInput.component-CEF55yJj.js → textInput.component-CK1kmjex.js} +2 -2
- package/dist/chunks/{textInput.component-CEF55yJj.js.map → textInput.component-CK1kmjex.js.map} +1 -1
- package/dist/chunks/{textInput.component-DfqkWsJX.js → textInput.component-CO6Yc8rV.js} +9 -9
- package/dist/chunks/{textInput.component-DfqkWsJX.js.map → textInput.component-CO6Yc8rV.js.map} +1 -1
- package/dist/chunks/{textarea.component-BVGFuIZC.js → textarea.component-CwESBPaP.js} +2 -2
- package/dist/chunks/{textarea.component-BVGFuIZC.js.map → textarea.component-CwESBPaP.js.map} +1 -1
- package/dist/chunks/{textarea.component-1B3U7E2O.js → textarea.component-bI2mmDIC.js} +5 -5
- package/dist/chunks/{textarea.component-1B3U7E2O.js.map → textarea.component-bI2mmDIC.js.map} +1 -1
- package/dist/chunks/{theme.provider-B2ycPYcf.js → theme.provider-C4tVwQeK.js} +181 -180
- package/dist/chunks/{theme.provider-B2ycPYcf.js.map → theme.provider-C4tVwQeK.js.map} +1 -1
- package/dist/chunks/{theme.provider-BM3qjfO8.js → theme.provider-y1V841xe.js} +4 -4
- package/dist/chunks/{theme.provider-BM3qjfO8.js.map → theme.provider-y1V841xe.js.map} +1 -1
- package/dist/chunks/{timePicker.component-oN8iujB5.js → timePicker.component-C_395JAZ.js} +2 -2
- package/dist/chunks/{timePicker.component-oN8iujB5.js.map → timePicker.component-C_395JAZ.js.map} +1 -1
- package/dist/chunks/{timePicker.component-C7i3U49Y.js → timePicker.component-DfLcDGEI.js} +8 -8
- package/dist/chunks/{timePicker.component-C7i3U49Y.js.map → timePicker.component-DfLcDGEI.js.map} +1 -1
- package/dist/chunks/{timeRange.component-XZD-d3X-.js → timeRange.component-Ch8QCTwD.js} +2 -2
- package/dist/chunks/{timeRange.component-XZD-d3X-.js.map → timeRange.component-Ch8QCTwD.js.map} +1 -1
- package/dist/chunks/{timeRange.component-BApcir-7.js → timeRange.component-ezG1IHSG.js} +4 -4
- package/dist/chunks/{timeRange.component-BApcir-7.js.map → timeRange.component-ezG1IHSG.js.map} +1 -1
- package/dist/chunks/{timestamp.component-25Br-GCm.js → timestamp.component-BpaULUVT.js} +3 -3
- package/dist/chunks/{timestamp.component-25Br-GCm.js.map → timestamp.component-BpaULUVT.js.map} +1 -1
- package/dist/chunks/{timestamp.component-DJZzpqBC.js → timestamp.component-BwJNY1z8.js} +2 -2
- package/dist/chunks/{timestamp.component-DJZzpqBC.js.map → timestamp.component-BwJNY1z8.js.map} +1 -1
- package/dist/chunks/{tooltip.component-CVPBpD3Z.js → tooltip.component-BPzYkYDd.js} +2 -2
- package/dist/chunks/{tooltip.component-CVPBpD3Z.js.map → tooltip.component-BPzYkYDd.js.map} +1 -1
- package/dist/chunks/{tooltip.component-Cf_csr_d.js → tooltip.component-DsowDvmZ.js} +2 -2
- package/dist/chunks/{tooltip.component-Cf_csr_d.js.map → tooltip.component-DsowDvmZ.js.map} +1 -1
- package/dist/chunks/{use-recipe-D7cwXEim.js → use-recipe-B7BYguEn.js} +2 -2
- package/dist/chunks/{use-recipe-D7cwXEim.js.map → use-recipe-B7BYguEn.js.map} +1 -1
- package/dist/chunks/use-recipe-C_4B67-J.js +2 -0
- package/dist/chunks/{use-recipe-CkP1U6f2.js.map → use-recipe-C_4B67-J.js.map} +1 -1
- package/dist/chunks/{use-slot-recipe-Bz5VPIbz.js → use-slot-recipe-BVIotsqX.js} +2 -2
- package/dist/chunks/{use-slot-recipe-Bz5VPIbz.js.map → use-slot-recipe-BVIotsqX.js.map} +1 -1
- package/dist/chunks/use-slot-recipe-C46awaBT.js +2 -0
- package/dist/chunks/{use-slot-recipe-ClRnqDPf.js.map → use-slot-recipe-C46awaBT.js.map} +1 -1
- package/dist/chunks/{v-stack-By2b5ZVX.js → v-stack-B1APSgzA.js} +2 -2
- package/dist/chunks/{v-stack-By2b5ZVX.js.map → v-stack-B1APSgzA.js.map} +1 -1
- package/dist/chunks/{v-stack-C_EMZ8cL.js → v-stack-IBysx2n3.js} +2 -2
- package/dist/chunks/{v-stack-C_EMZ8cL.js.map → v-stack-IBysx2n3.js.map} +1 -1
- package/dist/chunks/{walk-object-BQcbPtPs.js → walk-object-DY6qf1jj.js} +2 -2
- package/dist/chunks/{walk-object-BQcbPtPs.js.map → walk-object-DY6qf1jj.js.map} +1 -1
- package/dist/chunks/{walk-object-CwdvmBuz.js → walk-object-NmFS1hK2.js} +2 -2
- package/dist/chunks/{walk-object-CwdvmBuz.js.map → walk-object-NmFS1hK2.js.map} +1 -1
- package/dist/chunks/{withFormControl-CUnCiP8H.js → withFormControl-3R0RXhm4.js} +2 -2
- package/dist/chunks/{withFormControl-CUnCiP8H.js.map → withFormControl-3R0RXhm4.js.map} +1 -1
- package/dist/chunks/{withFormControl-DoBnTeb9.js → withFormControl-IvahwTqo.js} +7 -7
- package/dist/chunks/{withFormControl-DoBnTeb9.js.map → withFormControl-IvahwTqo.js.map} +1 -1
- package/dist/chunks/{withTruncation-CzqmBekU.js → withTruncation-8LfyFIve.js} +2 -2
- package/dist/chunks/{withTruncation-CzqmBekU.js.map → withTruncation-8LfyFIve.js.map} +1 -1
- package/dist/chunks/{withTruncation-iFpoL9YV.js → withTruncation-Cca8DRk_.js} +3 -3
- package/dist/chunks/{withTruncation-iFpoL9YV.js.map → withTruncation-Cca8DRk_.js.map} +1 -1
- package/dist/chunks/{wrap-DwAuTaha.js → wrap-DrLrXdlw.js} +3 -3
- package/dist/chunks/{wrap-DwAuTaha.js.map → wrap-DrLrXdlw.js.map} +1 -1
- package/dist/chunks/{wrap-CdWJy79S.js → wrap-tcmvwJhx.js} +2 -2
- package/dist/chunks/{wrap-CdWJy79S.js.map → wrap-tcmvwJhx.js.map} +1 -1
- package/dist/cjs/chakra/index.cjs +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/Button/index.cjs +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
- package/dist/cjs/components/Card/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/Divider/index.cjs +1 -1
- package/dist/cjs/components/Heading/index.cjs +1 -1
- package/dist/cjs/components/Icon/index.cjs +1 -1
- package/dist/cjs/components/Link/index.cjs +1 -1
- package/dist/cjs/components/Logo/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/Picture/index.cjs +1 -1
- package/dist/cjs/components/PinInput/index.cjs +1 -1
- package/dist/cjs/components/Popover/index.cjs +1 -1
- package/dist/cjs/components/RadioGroup/index.cjs +1 -1
- package/dist/cjs/components/RatingDots/index.cjs +1 -1
- package/dist/cjs/components/Select/index.cjs +1 -1
- package/dist/cjs/components/SortableList/index.cjs +1 -1
- package/dist/cjs/components/Spinner/index.cjs +1 -1
- package/dist/cjs/components/StyledAvatar/index.cjs +1 -1
- package/dist/cjs/components/Swatch/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/Tag/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/hocs/index.cjs +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/theme/index.cjs +1 -1
- package/dist/esm/chakra/index.js +21 -21
- 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/Button/index.js +1 -1
- package/dist/esm/components/ButtonGroup/index.js +1 -1
- package/dist/esm/components/Card/index.js +1 -1
- package/dist/esm/components/CharacterCounter/index.js +1 -1
- package/dist/esm/components/Checkbox/index.js +1 -1
- package/dist/esm/components/CheckboxGroup/index.js +1 -1
- package/dist/esm/components/ConversationCard/index.js +1 -1
- package/dist/esm/components/DatePicker/index.js +1 -1
- package/dist/esm/components/Divider/index.js +1 -1
- package/dist/esm/components/Heading/index.js +1 -1
- package/dist/esm/components/Icon/index.js +1 -1
- package/dist/esm/components/Link/index.js +1 -1
- package/dist/esm/components/Logo/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/Picture/index.js +1 -1
- package/dist/esm/components/PinInput/index.js +1 -1
- package/dist/esm/components/Popover/index.js +1 -1
- package/dist/esm/components/RadioGroup/index.js +1 -1
- package/dist/esm/components/RatingDots/index.js +1 -1
- package/dist/esm/components/Select/index.js +1 -1
- package/dist/esm/components/SortableList/index.js +1 -1
- package/dist/esm/components/Spinner/index.js +1 -1
- package/dist/esm/components/StyledAvatar/index.js +1 -1
- package/dist/esm/components/Swatch/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/Tag/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 +40 -40
- package/dist/esm/hocs/index.js +1 -1
- package/dist/esm/index.js +42 -42
- package/dist/esm/theme/index.js +1 -1
- package/package.json +3 -5
- package/dist/chunks/box-DQTWVrl0.js +0 -7
- package/dist/chunks/box-DiiiZkF4.js +0 -2
- package/dist/chunks/factory-D5ooFDGK.js +0 -1471
- package/dist/chunks/factory-D5ooFDGK.js.map +0 -1
- package/dist/chunks/factory-Djhmhla9.js +0 -17
- package/dist/chunks/factory-Djhmhla9.js.map +0 -1
- package/dist/chunks/spinner-B981BEf0.js +0 -2
- package/dist/chunks/spinner-DUSVCecp.js +0 -8
- package/dist/chunks/use-recipe-CkP1U6f2.js +0 -2
- package/dist/chunks/use-slot-recipe-ClRnqDPf.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("./jsx-runtime-CITbqOLs.js"),t=require("react"),W=require("./textInput.component-
|
|
2
|
-
//# sourceMappingURL=timePicker.component-
|
|
1
|
+
"use strict";const n=require("./jsx-runtime-CITbqOLs.js"),t=require("react"),W=require("./textInput.component-CK1kmjex.js"),Y=require("./popover.component-D6m9F1c6.js"),F=require("./icon.component-DQSt_HsP.js"),G=require("./useIconTextSizeMap-BXmABb54.js"),J=require("./format-BRt-TIiQ.js"),A=require("./config-CBtB94-l.js"),K=require("./use-recipe-C_4B67-J.js"),h=require("./box-BY0YYx5L.js"),v=require("./use-slot-recipe-C46awaBT.js"),Q=A.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}}),U=({value:s,innerRef:a,onClick:i,selected:l})=>{const R=K.useRecipe({recipe:Q})({selected:l}),d=t.useCallback(r=>{const p=r.currentTarget.textContent||"";i(p)},[i]);return n.jsxRuntimeExports.jsx(h.Box,{className:"TimePicker__Option","data-testid":"kibble-timepicker-option",ref:a,onClick:d,css:R,children:s})},O=A.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"}}}}),C=({options:s,optionType:a,selectedValue:i,onClick:l,open:f=!1})=>{const d=v.useSlotRecipe({recipe:O})(),r=t.useRef(null),p=t.useRef(null);return t.useEffect(()=>{f&&p.current&&r.current&&(p.current.scrollTop=r.current?.offsetTop-p.current?.offsetTop)},[f]),n.jsxRuntimeExports.jsx(h.Box,{className:"TimePicker__List","data-testid":`kibble-timepicker-${a}-list`,css:d.list,children:s.map(c=>n.jsxRuntimeExports.jsx(U,{innerRef:c===i?r:null,value:c,selected:c===i,onClick:l,"data-testid":c},`${a}-option-${c}`))})};var u=(s=>(s.AM="AM",s.PM="PM",s))(u||{});const X=({initialTime:s,inputProps:a,minuteInterval:i=5,onTimeChange:l,placement:f="bottom"})=>{const d=v.useSlotRecipe({recipe:O})(),[r,p]=t.useState(!1),[c,E]=t.useState(s),[k,j]=t.useState(),[m,M]=t.useState(),[b,S]=t.useState(),N=t.useMemo(()=>c?J.format(c,"h:mm aa"):"",[c]),y=e=>{const o=e.toString();return o.length===1?`0${o}`:o},w=t.useMemo(()=>[12,1,2,3,4,5,6,7,8,9,10,11].map(e=>e.toString()),[]),H=t.useMemo(()=>{const e=[];for(let o=0;o<60;o+=i)e.push(o);return e.map(y)},[i]),z=[u.AM,u.PM],x=t.useCallback((e,o,g)=>{const T=e||"12",D=o||"00",P=g||"AM";let _=0;e||j("12"),o||M("00"),g||S("AM"),P===u.PM&&Number(T)<12&&(_=12),P===u.AM&&Number(T)===12&&(_=-12);const $=Number(T)+_,L=new Date().setHours($,Number(D),0,0),q=new Date(L);E(q),l&&l(q)},[l]),I=t.useCallback(e=>{j(e),x(e,m,b)},[x,b,m]),V=t.useCallback(e=>{M(e),x(k,e,b)},[x,k,b]),B=t.useCallback(e=>{S(e),x(k,m,e)},[x,k,m]);return t.useEffect(()=>{if(s){const e=new Date(s),g=e.getHours()%12||12;E(s),j(g.toString()),M(e.getMinutes().toString()),S(e.getHours()>11?u.PM:u.AM)}},[s]),n.jsxRuntimeExports.jsx(Y.Popover,{open:r,onOpenChange:({open:e})=>p(e),anchor:n.jsxRuntimeExports.jsx(h.Box,{className:"TimePicker__Trigger","data-testid":"kibble-timepicker-trigger",css:d.trigger,children:n.jsxRuntimeExports.jsx(W.WrappedTextInput,{placeholder:"12:00 AM",rightElement:n.jsxRuntimeExports.jsx(F.Icon,{size:G.useIconTextSizeMap(a?.size||"md"),name:"clock"}),value:N,readOnly:!0,cursor:"pointer",...a,...r&&{"data-focus":"true"}})}),contentProps:{w:"max-content"},variant:"default",placement:f,children:n.jsxRuntimeExports.jsxs(h.Box,{className:"TimePicker__Container","data-testid":"kibble-timepicker-container",css:d.container,children:[n.jsxRuntimeExports.jsx(C,{options:w,optionType:"hour",selectedValue:k,onClick:I,open:r}),n.jsxRuntimeExports.jsx(C,{options:H,optionType:"minute",selectedValue:m?y(m):void 0,onClick:V,open:r}),n.jsxRuntimeExports.jsx(C,{options:z,optionType:"meridiem",selectedValue:b,onClick:B,open:r})]})})};exports.Meridiem=u;exports.TimePicker=X;
|
|
2
|
+
//# sourceMappingURL=timePicker.component-C_395JAZ.js.map
|
package/dist/chunks/{timePicker.component-oN8iujB5.js.map → timePicker.component-C_395JAZ.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-oN8iujB5.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 innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\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\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\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: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={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 {\n TextInput,\n TextInputProps,\n} 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 initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\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<\n string | undefined\n >();\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) =>\n hour.toString(),\n );\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(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\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 variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","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-C_395JAZ.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 innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\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\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\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: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={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 {\n TextInput,\n TextInputProps,\n} 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 initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\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<\n string | undefined\n >();\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) =>\n hour.toString(),\n );\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(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\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 variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","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":"qbAEaA,EAAmBC,EAAAA,aAAa,CAC3C,KAAM,CACJ,aAAc,MACd,OAAQ,UACR,SAAU,KACV,GAAI,EACJ,GAAI,EACJ,UAAW,QACb,EACA,SAAU,CACR,SAAU,CACR,KAAM,CACJ,WAAY,uBACZ,MAAO,gBACP,OAAQ,CACN,WAAY,4BAAA,CAEhB,EACA,MAAO,CACL,WAAY,aACZ,MAAO,cACP,OAAQ,CACN,WAAY,iCAAA,CACd,CACF,CAEJ,EACA,gBAAiB,CACf,SAAU,EAAA,CAEd,CAAC,ECpBYC,EAAa,CAAC,CACzB,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,SAAAC,CACF,IAA0C,CAExC,MAAMC,EADSC,EAAA,UAAU,CAAE,OAAQR,EAAkB,EAC/B,CAAE,SAAAM,EAAU,EAE5BG,EAAcC,EAAA,YACjBC,GAA4C,CACrC,MAAAC,EAAgBD,EAAM,cAAc,aAAe,GACzDN,EAAQO,CAAa,CACvB,EACA,CAACP,CAAO,CACV,EAGE,OAAAQ,EAAA,kBAAA,IAACC,EAAA,IAAA,CACC,UAAU,qBACV,cAAY,2BACZ,IAAKV,EACL,QAASK,EACT,IAAKF,EAEJ,SAAAJ,CAAA,CACH,CAEJ,ECtCaY,EAAmBC,EAAAA,iBAAiB,CAC/C,MAAO,CAAC,UAAW,YAAa,MAAM,EACtC,KAAM,CACJ,QAAS,CACP,MAAO,MACT,EACA,UAAW,CACT,QAAS,OACT,IAAK,IACL,OAAQ,QACR,SAAU,QACZ,EACA,KAAM,CACJ,QAAS,OACT,cAAe,SACf,IAAK,EACL,UAAW,OACX,sBAAuB,CACrB,QAAS,MAAA,CACX,CACF,CAEJ,CAAC,ECVYC,EAAW,CAAC,CACvB,QAAAC,EACA,WAAAC,EACA,cAAAP,EACA,QAAAP,EACA,KAAAe,EAAO,EACT,IAA+C,CAE7C,MAAMb,EADSc,EAAA,cAAc,CAAE,OAAQN,EAAkB,EACnC,EAChBO,EAAUC,SAAuB,IAAI,EACrCC,EAAeD,SAAuB,IAAI,EAEhDE,OAAAA,EAAAA,UAAU,IAAM,CACVL,GAAQI,EAAa,SAAWF,EAAQ,UAC1CE,EAAa,QAAQ,UACnBF,EAAQ,SAAS,UAAYE,EAAa,SAAS,UACvD,EACC,CAACJ,CAAI,CAAC,EAGPP,EAAA,kBAAA,IAACC,EAAA,IAAA,CACC,UAAU,mBACV,cAAa,qBAAqBK,CAAU,QAC5C,IAAKZ,EAAO,KAEX,SAAAW,EAAQ,IAAKQ,GAEVb,EAAA,kBAAA,IAACX,EAAA,CAEC,SAAUwB,IAAWd,EAAgBU,EAAU,KAC/C,MAAOI,EACP,SAAUA,IAAWd,EACrB,QAAAP,EACA,cAAaqB,CAAA,EALR,GAAGP,CAAU,WAAWO,CAAM,EAMrC,CAEH,CAAA,CACH,CAEJ,ECrDY,IAAAC,GAAAA,IACVA,EAAA,GAAK,KACLA,EAAA,GAAK,KAFKA,IAAAA,GAAA,CAAA,CAAA,EC2BL,MAAMC,EAAa,CAAC,CACzB,YAAAC,EACA,WAAAC,EACA,eAAAC,EAAiB,EACjB,aAAAC,EACA,UAAAC,EAAY,QACd,IAA0C,CAExC,MAAM1B,EADSc,EAAA,cAAc,CAAE,OAAQN,EAAkB,EACnC,EAChB,CAACmB,EAAQC,CAAS,EAAIC,EAAAA,SAAS,EAAK,EACpC,CAACC,EAAcC,CAAe,EAAIF,EAAAA,SAASP,CAAW,EACtD,CAACU,EAAcC,CAAe,EAAIJ,WAA6B,EAC/D,CAACK,EAAgBC,CAAiB,EAAIN,WAA6B,EACnE,CAACO,EAAkBC,CAAmB,EAAIR,WAE9C,EAEIS,EAAgBC,EAAAA,QAAQ,IACvBT,EACEU,EAAA,OAAOV,EAAc,SAAS,EADX,GAEzB,CAACA,CAAY,CAAC,EAEXW,EAAgBC,GAAoC,CAClD,MAAAC,EAAiBD,EAAO,SAAS,EACnC,OAAAC,EAAe,SAAW,EACrB,IAAIA,CAAc,GAGpBA,CACT,EAEMC,EAAcL,EAAAA,QAAQ,IACnB,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EAAE,IAAKM,GAClDA,EAAK,SAAS,CAChB,EACC,EAAE,EAECC,EAAgBP,EAAAA,QAAQ,IAAM,CAClC,MAAMQ,EAAU,CAAC,EACjB,QAASC,EAAI,EAAGA,EAAI,GAAIA,GAAKxB,EAC3BuB,EAAQ,KAAKC,CAAC,EAGT,OAAAD,EAAQ,IAAIN,CAAY,CAAA,EAC9B,CAACjB,CAAc,CAAC,EAEbyB,EAAkB,CAAC7B,EAAS,GAAIA,EAAS,EAAE,EAE3C8B,EAAmB/C,EAAA,YACvB,CAAC0C,EAAeM,EAAiBC,IAAsB,CACrD,MAAMC,EAAQR,GAAQ,KAChBS,EAAUH,GAAU,KACpBI,EAAYH,GAAY,KAC9B,IAAII,EAAqB,EAEpBX,GACHZ,EAAgB,IAAI,EAEjBkB,GACHhB,EAAkB,IAAI,EAEnBiB,GACHf,EAAoB,IAAI,EAItBkB,IAAcnC,EAAS,IAAM,OAAOiC,CAAK,EAAI,KAC1BG,EAAA,IAInBD,IAAcnC,EAAS,IAAM,OAAOiC,CAAK,IAAM,KAC5BG,EAAA,KAGjB,MAAAC,EAAQ,OAAOJ,CAAK,EAAIG,EACxBE,EAAW,IAAA,KAAA,EAAO,SAASD,EAAO,OAAOH,CAAO,EAAG,EAAG,CAAC,EACvDK,EAAO,IAAI,KAAKD,CAAI,EAC1B3B,EAAgB4B,CAAI,EAEhBlC,GACFA,EAAakC,CAAI,CAErB,EACA,CAAClC,CAAY,CACf,EAEMmC,EAAkBzD,EAAA,YACrBP,GAAkB,CACjBqC,EAAgBrC,CAAK,EACJsD,EAAAtD,EAAOsC,EAAgBE,CAAgB,CAC1D,EACA,CAACc,EAAkBd,EAAkBF,CAAc,CACrD,EAEM2B,EAAoB1D,EAAA,YACvBP,GAAkB,CACjBuC,EAAkBvC,CAAK,EACNsD,EAAAlB,EAAcpC,EAAOwC,CAAgB,CACxD,EACA,CAACc,EAAkBlB,EAAcI,CAAgB,CACnD,EAEM0B,EAAsB3D,EAAA,YACzBP,GAAkB,CACjByC,EAAoBzC,CAAK,EACRsD,EAAAlB,EAAcE,EAAgBtC,CAAK,CACtD,EACA,CAACsD,EAAkBlB,EAAcE,CAAc,CACjD,EAEAhB,OAAAA,EAAAA,UAAU,IAAM,CAEd,GAAII,EAAa,CACT,MAAAyC,EAAY,IAAI,KAAKzC,CAAW,EAIhC0C,EADQD,EAAU,SAAS,EACH,IAAM,GAEpChC,EAAgBT,CAAW,EACXW,EAAA+B,EAAc,UAAU,EACxC7B,EAAkB4B,EAAU,WAAa,EAAA,SAAA,CAAU,EACnD1B,EACE0B,EAAU,SAAS,EAAI,GAAK3C,EAAS,GAAKA,EAAS,EACrD,CAAA,CACF,EACC,CAACE,CAAW,CAAC,EAGdhB,EAAA,kBAAA,IAAC2D,EAAA,QAAA,CACC,KAAMtC,EACN,aAAc,CAAC,CAAE,KAAAd,KAAWe,EAAUf,CAAI,EAC1C,OACEP,EAAA,kBAAA,IAACC,EAAA,IAAA,CACC,UAAU,sBACV,cAAY,4BACZ,IAAKP,EAAO,QAEZ,SAAAM,EAAA,kBAAA,IAAC4D,EAAA,iBAAA,CACC,YAAY,WACZ,aACE5D,EAAA,kBAAA,IAAC6D,EAAA,KAAA,CACC,KAAMC,EAAA,mBAAmB7C,GAAY,MAAQ,IAAI,EACjD,KAAK,OAAA,CACP,EAEF,MAAOe,EACP,SAAQ,GACR,OAAO,UACN,GAAGf,EACH,GAAII,GAAU,CAAE,aAAc,MAAO,CAAA,CAAA,CACxC,CACF,EAEF,aAAc,CAAE,EAAG,aAAc,EACjC,QAAQ,UACR,UAAAD,EAEA,SAAA2C,EAAA,kBAAA,KAAC9D,EAAA,IAAA,CACC,UAAU,wBACV,cAAY,8BACZ,IAAKP,EAAO,UAEZ,SAAA,CAAAM,EAAA,kBAAA,IAACI,EAAA,CACC,QAASkC,EACT,WAAW,OACX,cAAeZ,EACf,QAAS4B,EACT,KAAMjC,CAAA,CACR,EACArB,EAAA,kBAAA,IAACI,EAAA,CACC,QAASoC,EACT,WAAW,SACX,cACEZ,EAAiBO,EAAaP,CAAc,EAAI,OAElD,QAAS2B,EACT,KAAMlC,CAAA,CACR,EACArB,EAAA,kBAAA,IAACI,EAAA,CACC,QAASuC,EACT,WAAW,WACX,cAAeb,EACf,QAAS0B,EACT,KAAMnC,CAAA,CAAA,CACR,CAAA,CAAA,CACF,CACF,CAEJ"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { j as o } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
2
|
import { useCallback as h, useRef as w, useEffect as H, useState as b, useMemo as R } from "react";
|
|
3
|
-
import { W as G } from "./textInput.component-
|
|
4
|
-
import { P as J } from "./popover.component-
|
|
5
|
-
import { I as K } from "./icon.component-
|
|
3
|
+
import { W as G } from "./textInput.component-CO6Yc8rV.js";
|
|
4
|
+
import { P as J } from "./popover.component-BfScbbtS.js";
|
|
5
|
+
import { I as K } from "./icon.component-BmcWaysM.js";
|
|
6
6
|
import { u as Q } from "./useIconTextSizeMap-BK-pUrQv.js";
|
|
7
7
|
import { f as U } from "./format-DgHM6wFr.js";
|
|
8
|
-
import { b as X, a as Z } from "./config-
|
|
9
|
-
import { u as ee } from "./use-recipe-
|
|
10
|
-
import { B as M } from "./box-
|
|
11
|
-
import { u as V } from "./use-slot-recipe-
|
|
8
|
+
import { b as X, a as Z } from "./config-C4FE-eBu.js";
|
|
9
|
+
import { u as ee } from "./use-recipe-B7BYguEn.js";
|
|
10
|
+
import { B as M } from "./box-y05hq0PT.js";
|
|
11
|
+
import { u as V } from "./use-slot-recipe-BVIotsqX.js";
|
|
12
12
|
const te = X({
|
|
13
13
|
base: {
|
|
14
14
|
borderRadius: "4px",
|
|
@@ -246,4 +246,4 @@ export {
|
|
|
246
246
|
u as M,
|
|
247
247
|
fe as T
|
|
248
248
|
};
|
|
249
|
-
//# sourceMappingURL=timePicker.component-
|
|
249
|
+
//# sourceMappingURL=timePicker.component-DfLcDGEI.js.map
|
package/dist/chunks/{timePicker.component-C7i3U49Y.js.map → timePicker.component-DfLcDGEI.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-C7i3U49Y.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 innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\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\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\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: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={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 {\n TextInput,\n TextInputProps,\n} 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 initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\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<\n string | undefined\n >();\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) =>\n hour.toString(),\n );\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(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\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 variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","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-DfLcDGEI.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 innerRef?: React.RefObject<HTMLDivElement | null> | null;\n onClick: (selectedValue: string) => void;\n selected: boolean;\n value: string;\n}\n\nexport const TimeOption = ({\n value,\n innerRef,\n onClick,\n selected,\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\n className=\"TimePicker__Option\"\n data-testid=\"kibble-timepicker-option\"\n ref={innerRef}\n onClick={handleClick}\n css={styles}\n >\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: string[];\n optionType: \"hour\" | \"minute\" | \"meridiem\";\n selectedValue?: string;\n onClick: (value: string) => void;\n open: boolean;\n}\n\nexport const TimeList = ({\n options,\n optionType,\n selectedValue,\n onClick,\n open = false,\n}: ScrollContainerProps): React.JSX.Element => {\n const recipe = useSlotRecipe({ recipe: timePickerRecipe });\n const styles = recipe();\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (open && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop =\n itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [open]);\n\n return (\n <Box\n className=\"TimePicker__List\"\n data-testid={`kibble-timepicker-${optionType}-list`}\n css={styles.list}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n selected={option === selectedValue}\n onClick={onClick}\n data-testid={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 {\n TextInput,\n TextInputProps,\n} 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 initialTime?: Date;\n inputProps?: Omit<\n TextInputProps,\n \"onChange\" | \"value\" | \"isClearable\" | \"onClear\"\n >;\n minuteInterval?: number;\n onTimeChange?: (time: Date) => void;\n placement?: Placement;\n}\n\nexport const TimePicker = ({\n initialTime,\n inputProps,\n minuteInterval = 5,\n onTimeChange,\n placement = \"bottom\",\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<\n string | undefined\n >();\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) =>\n hour.toString(),\n );\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(\n localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n );\n }\n }, [initialTime]);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={({ open }) => setIsOpen(open)}\n anchor={\n <Box\n className=\"TimePicker__Trigger\"\n data-testid=\"kibble-timepicker-trigger\"\n css={styles.trigger}\n >\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={\n <Icon\n size={useIconTextSizeMap(inputProps?.size || \"md\")}\n name=\"clock\"\n />\n }\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 variant=\"default\"\n placement={placement}\n >\n <Box\n className=\"TimePicker__Container\"\n data-testid=\"kibble-timepicker-container\"\n css={styles.container}\n >\n <TimeList\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n onClick={handleHourClick}\n open={isOpen}\n />\n <TimeList\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={\n selectedMinute ? formatNumber(selectedMinute) : undefined\n }\n onClick={handleMinuteClick}\n open={isOpen}\n />\n <TimeList\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n onClick={handleMeridiemClick}\n open={isOpen}\n />\n </Box>\n </Popover>\n );\n};\n"],"names":["timeOptionRecipe","defineRecipe","TimeOption","value","innerRef","onClick","selected","styles","useRecipe","handleClick","useCallback","event","selectedValue","jsx","Box","timePickerRecipe","defineSlotRecipe","TimeList","options","optionType","open","useSlotRecipe","itemRef","useRef","containerRef","useEffect","option","Meridiem","TimePicker","initialTime","inputProps","minuteInterval","onTimeChange","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-CITbqOLs.js"),i=require("./timePicker.component-
|
|
2
|
-
//# sourceMappingURL=timeRange.component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-CITbqOLs.js"),i=require("./timePicker.component-C_395JAZ.js"),x=require("./flex-CDHt3rEg.js"),m=require("./box-BY0YYx5L.js"),c=({endTimePickerProps:s,separator:t,startTimePickerProps:r,...n})=>e.jsxRuntimeExports.jsxs(x.Flex,{className:"TimeRange","data-testid":"kibble-time-range",...n,children:[e.jsxRuntimeExports.jsx(i.TimePicker,{...r}),e.jsxRuntimeExports.jsx(m.Box,{alignSelf:"center",mx:1,children:t||"-"}),e.jsxRuntimeExports.jsx(i.TimePicker,{...s})]});exports.TimeRange=c;
|
|
2
|
+
//# sourceMappingURL=timeRange.component-Ch8QCTwD.js.map
|
package/dist/chunks/{timeRange.component-XZD-d3X-.js.map → timeRange.component-Ch8QCTwD.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-Ch8QCTwD.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 {\n TimePicker,\n TimePickerProps,\n} from \"components/TimePicker/timePicker.component\";\n\nexport interface TimeRangeProps extends FlexProps {\n separator?: React.ReactNode;\n endTimePickerProps: TimePickerProps;\n startTimePickerProps: TimePickerProps;\n}\n\nexport const TimeRange = ({\n endTimePickerProps,\n separator,\n startTimePickerProps,\n ...rest\n}: TimeRangeProps): React.JSX.Element => {\n return (\n <Flex className=\"TimeRange\" data-testid=\"kibble-time-range\" {...rest}>\n <TimePicker {...startTimePickerProps} />\n <Box alignSelf=\"center\" mx={1}>\n {separator || \"-\"}\n </Box>\n <TimePicker {...endTimePickerProps} />\n </Flex>\n );\n};\n"],"names":["TimeRange","endTimePickerProps","separator","startTimePickerProps","rest","Flex","jsx","TimePicker","Box"],"mappings":"yKAcaA,EAAY,CAAC,CACxB,mBAAAC,EACA,UAAAC,EACA,qBAAAC,EACA,GAAGC,CACL,6BAEKC,OAAK,CAAA,UAAU,YAAY,cAAY,oBAAqB,GAAGD,EAC9D,SAAA,CAACE,EAAAA,kBAAAA,IAAAC,EAAA,WAAA,CAAY,GAAGJ,EAAsB,0BACrCK,EAAAA,IAAI,CAAA,UAAU,SAAS,GAAI,EACzB,YAAa,IAChB,EACAF,wBAACC,EAAAA,WAAY,CAAA,GAAGN,CAAoB,CAAA,CAAA,EACtC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as e } from "./jsx-runtime-C5mzlN2N.js";
|
|
2
|
-
import { T as r } from "./timePicker.component-
|
|
3
|
-
import { F as a } from "./flex-
|
|
4
|
-
import { B as o } from "./box-
|
|
2
|
+
import { T as r } from "./timePicker.component-DfLcDGEI.js";
|
|
3
|
+
import { F as a } from "./flex-C2d2LH-K.js";
|
|
4
|
+
import { B as o } from "./box-y05hq0PT.js";
|
|
5
5
|
const j = ({
|
|
6
6
|
endTimePickerProps: s,
|
|
7
7
|
separator: i,
|
|
@@ -15,4 +15,4 @@ const j = ({
|
|
|
15
15
|
export {
|
|
16
16
|
j as T
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=timeRange.component-
|
|
18
|
+
//# sourceMappingURL=timeRange.component-ezG1IHSG.js.map
|
package/dist/chunks/{timeRange.component-BApcir-7.js.map → timeRange.component-ezG1IHSG.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-ezG1IHSG.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 {\n TimePicker,\n TimePickerProps,\n} from \"components/TimePicker/timePicker.component\";\n\nexport interface TimeRangeProps extends FlexProps {\n separator?: React.ReactNode;\n endTimePickerProps: TimePickerProps;\n startTimePickerProps: TimePickerProps;\n}\n\nexport const TimeRange = ({\n endTimePickerProps,\n separator,\n startTimePickerProps,\n ...rest\n}: TimeRangeProps): React.JSX.Element => {\n return (\n <Flex className=\"TimeRange\" data-testid=\"kibble-time-range\" {...rest}>\n <TimePicker {...startTimePickerProps} />\n <Box alignSelf=\"center\" mx={1}>\n {separator || \"-\"}\n </Box>\n <TimePicker {...endTimePickerProps} />\n </Flex>\n );\n};\n"],"names":["TimeRange","endTimePickerProps","separator","startTimePickerProps","rest","Flex","jsx","TimePicker","Box"],"mappings":";;;;AAcO,MAAMA,IAAY,CAAC;AAAA,EACxB,oBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,GAAGC;AACL,6BAEKC,GAAK,EAAA,WAAU,aAAY,eAAY,qBAAqB,GAAGD,GAC9D,UAAA;AAAA,EAACE,gBAAAA,EAAAA,IAAAC,GAAA,EAAY,GAAGJ,GAAsB;AAAA,wBACrCK,GAAI,EAAA,WAAU,UAAS,IAAI,GACzB,eAAa,KAChB;AAAA,EACAF,gBAAAA,MAACC,GAAY,EAAA,GAAGN,EAAoB,CAAA;AAAA,GACtC;"}
|
|
@@ -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 p } from "./text.component-
|
|
4
|
-
import { T as u } from "./tooltip.component-
|
|
3
|
+
import { W as p } from "./text.component-DHUP6rVA.js";
|
|
4
|
+
import { T as u } from "./tooltip.component-DsowDvmZ.js";
|
|
5
5
|
import { c as m, n as x, s as n, f as l } from "./format-DgHM6wFr.js";
|
|
6
6
|
function T(t) {
|
|
7
7
|
return m(t, Date.now());
|
|
@@ -51,4 +51,4 @@ const z = ({
|
|
|
51
51
|
export {
|
|
52
52
|
z as T
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=timestamp.component-
|
|
54
|
+
//# sourceMappingURL=timestamp.component-BpaULUVT.js.map
|
package/dist/chunks/{timestamp.component-25Br-GCm.js.map → timestamp.component-BpaULUVT.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.component-
|
|
1
|
+
{"version":3,"file":"timestamp.component-BpaULUVT.js","sources":["../../node_modules/date-fns/constructNow.js","../../node_modules/date-fns/isSameDay.js","../../node_modules/date-fns/isToday.js","../../src/components/Timestamp/timestamp.component.tsx"],"sourcesContent":["import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n","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 date: Date;\n timeFormat?: string;\n dateFormat?: string;\n shouldTodayDisplayTimeOnly?: boolean;\n tooltipLabel?: string;\n textProps?: Omit<TextProps, \"children\">;\n}\n\nexport const Timestamp = ({\n date,\n timeFormat = \"h:mma\",\n dateFormat = \"M/d/yy\",\n shouldTodayDisplayTimeOnly = true,\n tooltipLabel,\n textProps,\n}: TimestampProps): React.JSX.Element => {\n const stamp = useMemo(\n () =>\n format(\n date,\n isToday(date) && shouldTodayDisplayTimeOnly ? timeFormat : dateFormat,\n ),\n [date, dateFormat, shouldTodayDisplayTimeOnly, timeFormat],\n );\n\n return (\n <Tooltip disabled={!tooltipLabel} label={tooltipLabel || \"\"}>\n <Text\n className=\"Timestamp\"\n data-testid=\"kibble-timestamp\"\n variant=\"subtle\"\n size=\"xs\"\n textTransform=\"lowercase\"\n {...textProps}\n >\n {stamp}\n </Text>\n </Tooltip>\n );\n};\n"],"names":["constructNow","date","constructFrom","isSameDay","laterDate","earlierDate","options","dateLeft_","dateRight_","normalizeDates","startOfDay","isToday","Timestamp","timeFormat","dateFormat","shouldTodayDisplayTimeOnly","tooltipLabel","textProps","stamp","useMemo","format","Tooltip","jsx","Text"],"mappings":";;;;;AA8BO,SAASA,EAAaC,GAAM;AACjC,SAAOC,EAAcD,GAAM,KAAK,IAAG,CAAE;AACvC;ACIO,SAASE,EAAUC,GAAWC,GAAaC,GAAS;AACzD,QAAM,CAACC,GAAWC,CAAU,IAAIC;AAAA,IAC9BH,GAAS;AAAA,IACTF;AAAA,IACAC;AAAA,EACD;AACD,SAAO,CAACK,EAAWH,CAAS,KAAM,CAACG,EAAWF,CAAU;AAC1D;AChBO,SAASG,EAAQV,GAAMK,GAAS;AACrC,SAAOH;AAAA,IACLD,EAA6BD,GAAMA,CAAI;AAAA,IACvCD,EAA4BC,CAAI;AAAA,EACjC;AACH;ACjBO,MAAMW,IAAY,CAAC;AAAA,EACxB,MAAAX;AAAA,EACA,YAAAY,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,4BAAAC,IAA6B;AAAA,EAC7B,cAAAC;AAAA,EACA,WAAAC;AACF,MAAyC;AACvC,QAAMC,IAAQC;AAAA,IACZ,MACEC;AAAA,MACEnB;AAAA,MACAU,EAAQV,CAAI,KAAKc,IAA6BF,IAAaC;AAAA,IAC7D;AAAA,IACF,CAACb,GAAMa,GAAYC,GAA4BF,CAAU;AAAA,EAC3D;AAEA,+BACGQ,GAAQ,EAAA,UAAU,CAACL,GAAc,OAAOA,KAAgB,IACvD,UAAAM,gBAAAA,EAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAY;AAAA,MACZ,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,eAAc;AAAA,MACb,GAAGN;AAAA,MAEH,UAAAC;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const i=require("./jsx-runtime-CITbqOLs.js"),m=require("react"),u=require("./text.component-
|
|
2
|
-
//# sourceMappingURL=timestamp.component-
|
|
1
|
+
"use strict";const i=require("./jsx-runtime-CITbqOLs.js"),m=require("react"),u=require("./text.component-DfCcIqyd.js"),p=require("./tooltip.component-BPzYkYDd.js"),e=require("./format-BRt-TIiQ.js");function x(t){return e.constructFrom(t,Date.now())}function f(t,s,r){const[n,o]=e.normalizeDates(r?.in,t,s);return+e.startOfDay(n)==+e.startOfDay(o)}function l(t,s){return f(e.constructFrom(t,t),x(t))}const j=({date:t,timeFormat:s="h:mma",dateFormat:r="M/d/yy",shouldTodayDisplayTimeOnly:n=!0,tooltipLabel:o,textProps:c})=>{const a=m.useMemo(()=>e.format(t,l(t)&&n?s:r),[t,r,n,s]);return i.jsxRuntimeExports.jsx(p.Tooltip,{disabled:!o,label:o||"",children:i.jsxRuntimeExports.jsx(u.WrappedText,{className:"Timestamp","data-testid":"kibble-timestamp",variant:"subtle",size:"xs",textTransform:"lowercase",...c,children:a})})};exports.Timestamp=j;
|
|
2
|
+
//# sourceMappingURL=timestamp.component-BwJNY1z8.js.map
|
package/dist/chunks/{timestamp.component-DJZzpqBC.js.map → timestamp.component-BwJNY1z8.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.component-
|
|
1
|
+
{"version":3,"file":"timestamp.component-BwJNY1z8.js","sources":["../../node_modules/date-fns/constructNow.js","../../node_modules/date-fns/isSameDay.js","../../node_modules/date-fns/isToday.js","../../src/components/Timestamp/timestamp.component.tsx"],"sourcesContent":["import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n","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 date: Date;\n timeFormat?: string;\n dateFormat?: string;\n shouldTodayDisplayTimeOnly?: boolean;\n tooltipLabel?: string;\n textProps?: Omit<TextProps, \"children\">;\n}\n\nexport const Timestamp = ({\n date,\n timeFormat = \"h:mma\",\n dateFormat = \"M/d/yy\",\n shouldTodayDisplayTimeOnly = true,\n tooltipLabel,\n textProps,\n}: TimestampProps): React.JSX.Element => {\n const stamp = useMemo(\n () =>\n format(\n date,\n isToday(date) && shouldTodayDisplayTimeOnly ? timeFormat : dateFormat,\n ),\n [date, dateFormat, shouldTodayDisplayTimeOnly, timeFormat],\n );\n\n return (\n <Tooltip disabled={!tooltipLabel} label={tooltipLabel || \"\"}>\n <Text\n className=\"Timestamp\"\n data-testid=\"kibble-timestamp\"\n variant=\"subtle\"\n size=\"xs\"\n textTransform=\"lowercase\"\n {...textProps}\n >\n {stamp}\n </Text>\n </Tooltip>\n );\n};\n"],"names":["constructNow","date","constructFrom","isSameDay","laterDate","earlierDate","options","dateLeft_","dateRight_","normalizeDates","startOfDay","isToday","Timestamp","timeFormat","dateFormat","shouldTodayDisplayTimeOnly","tooltipLabel","textProps","stamp","useMemo","format","Tooltip","jsx","Text"],"mappings":"sMA8BO,SAASA,EAAaC,EAAM,CACjC,OAAOC,gBAAcD,EAAM,KAAK,IAAG,CAAE,CACvC,CCIO,SAASE,EAAUC,EAAWC,EAAaC,EAAS,CACzD,KAAM,CAACC,EAAWC,CAAU,EAAIC,EAAc,eAC5CH,GAAS,GACTF,EACAC,CACD,EACD,MAAO,CAACK,EAAAA,WAAWH,CAAS,GAAM,CAACG,EAAAA,WAAWF,CAAU,CAC1D,CChBO,SAASG,EAAQV,EAAMK,EAAS,CACrC,OAAOH,EACLD,EAAa,cAAgBD,EAAMA,CAAI,EACvCD,EAA4BC,CAAI,CACjC,CACH,CCjBO,MAAMW,EAAY,CAAC,CACxB,KAAAX,EACA,WAAAY,EAAa,QACb,WAAAC,EAAa,SACb,2BAAAC,EAA6B,GAC7B,aAAAC,EACA,UAAAC,CACF,IAAyC,CACvC,MAAMC,EAAQC,EAAA,QACZ,IACEC,EAAA,OACEnB,EACAU,EAAQV,CAAI,GAAKc,EAA6BF,EAAaC,CAC7D,EACF,CAACb,EAAMa,EAAYC,EAA4BF,CAAU,CAC3D,EAEA,+BACGQ,UAAQ,CAAA,SAAU,CAACL,EAAc,MAAOA,GAAgB,GACvD,SAAAM,EAAA,kBAAA,IAACC,EAAA,YAAA,CACC,UAAU,YACV,cAAY,mBACZ,QAAQ,SACR,KAAK,KACL,cAAc,YACb,GAAGN,EAEH,SAAAC,CAAA,CAAA,EAEL,CAEJ","x_google_ignoreList":[0,1,2]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const v=require("./jsx-runtime-CITbqOLs.js"),C=require("react"),f=require("./use-locale-context-Cc4BhWV1.js"),be=require("./create-slot-recipe-context-CNbTdeS5.js"),c=require("./index-CZ42b9rT.js"),[oe,S]=f.createContext({name:"TooltipContext",hookName:"useTooltipContext",providerName:"<TooltipProvider />"}),ne=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getArrowProps(),e);return v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});ne.displayName="TooltipArrow";const re=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getArrowTipProps(),e);return v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});re.displayName="TooltipArrowTip";const ie=C.forwardRef((e,o)=>{const t=S(),n=f.usePresenceContext(),r=c.mergeProps(t.getContentProps(),n.getPresenceProps(),e);return n.unmounted?null:v.jsxRuntimeExports.jsx(f.ark.div,{...r,ref:f.composeRefs(n.ref,o)})});ie.displayName="TooltipContent";const se=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getPositionerProps(),e);return f.usePresenceContext().unmounted?null:v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});se.displayName="TooltipPositioner";function ke(e){return!(e.metaKey||!c.isMac()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}var he=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Te(e,o,t){const n=t?c.getEventTarget(t):null,r=c.getWindow(n);return e=e||n instanceof r.HTMLInputElement&&!he.has(n?.type)||n instanceof r.HTMLTextAreaElement||n instanceof r.HTMLElement&&n.isContentEditable,!(e&&o==="keyboard"&&t instanceof r.KeyboardEvent&&!Reflect.has(Ce,t.key))}var x=null,B=new Set,D=new Map,T=!1,z=!1,Ce={Tab:!0,Escape:!0};function K(e,o){for(let t of B)t(e,o)}function F(e){T=!0,ke(e)&&(x="keyboard",K("keyboard",e))}function O(e){x="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(T=!0,K("pointer",e))}function ae(e){c.isVirtualClick(e)&&(T=!0,x="virtual")}function le(e){const o=c.getEventTarget(e);o===c.getWindow(o)||o===c.getDocument(o)||(!T&&!z&&(x="virtual",K("virtual",e)),T=!1,z=!1)}function ce(){T=!1,z=!0}function xe(e){if(typeof window>"u"||D.get(c.getWindow(e)))return;const o=c.getWindow(e),t=c.getDocument(e);let n=o.HTMLElement.prototype.focus;o.HTMLElement.prototype.focus=function(){x="virtual",K("virtual",null),T=!0,n.apply(this,arguments)},t.addEventListener("keydown",F,!0),t.addEventListener("keyup",F,!0),t.addEventListener("click",ae,!0),o.addEventListener("focus",le,!0),o.addEventListener("blur",ce,!1),typeof o.PointerEvent<"u"?(t.addEventListener("pointerdown",O,!0),t.addEventListener("pointermove",O,!0),t.addEventListener("pointerup",O,!0)):(t.addEventListener("mousedown",O,!0),t.addEventListener("mousemove",O,!0),t.addEventListener("mouseup",O,!0)),o.addEventListener("beforeunload",()=>{Re(e)},{once:!0}),D.set(o,{focus:n})}var Re=(e,o)=>{const t=c.getWindow(e),n=c.getDocument(e);D.has(t)&&(t.HTMLElement.prototype.focus=D.get(t).focus,n.removeEventListener("keydown",F,!0),n.removeEventListener("keyup",F,!0),n.removeEventListener("click",ae,!0),t.removeEventListener("focus",le,!0),t.removeEventListener("blur",ce,!1),typeof t.PointerEvent<"u"?(n.removeEventListener("pointerdown",O,!0),n.removeEventListener("pointermove",O,!0),n.removeEventListener("pointerup",O,!0)):(n.removeEventListener("mousedown",O,!0),n.removeEventListener("mousemove",O,!0),n.removeEventListener("mouseup",O,!0)),D.delete(t))};function N(){return x==="keyboard"}function pe(e={}){const{isTextInput:o,autoFocus:t,onChange:n,root:r}=e;xe(r),n?.({isFocusVisible:t||N(),modality:x});const p=(d,a)=>{Te(!!o,d,a)&&n?.({isFocusVisible:N(),modality:d})};return B.add(p),()=>{B.delete(p)}}const Me=Symbol(),Q=Object.getPrototypeOf,G=new WeakMap,je=e=>e&&(G.has(e)?G.get(e):Q(e)===Object.prototype||Q(e)===Array.prototype),Le=e=>je(e)&&e[Me]||null,X=(e,o=!0)=>{G.set(e,o)};function De(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global}function de(e,o){const t=De();return t?(t[e]||(t[e]=o()),t[e]):o()}var _=de("__zag__refSet",()=>new WeakSet),Se=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,Ae=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,Ve=e=>typeof e=="object"&&e!==null&&"nodeType"in e&&typeof e.nodeName=="string",Ie=e=>Se(e)||Ae(e)||Ve(e),H=e=>e!==null&&typeof e=="object",Z=e=>H(e)&&!_.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!Ie(e)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)&&!(e instanceof Promise),W=()=>process.env.NODE_ENV!=="production",h=de("__zag__proxyStateMap",()=>new WeakMap),_e=(e=Object.is,o=(a,P)=>new Proxy(a,P),t=new WeakMap,n=(a,P)=>{const m=t.get(a);if(m?.[0]===P)return m[1];const g=Array.isArray(a)?[]:Object.create(Object.getPrototypeOf(a));return X(g,!0),t.set(a,[P,g]),Reflect.ownKeys(a).forEach(w=>{const E=Reflect.get(a,w);_.has(E)?(X(E,!1),g[w]=E):h.has(E)?g[w]=We(E):g[w]=E}),Object.freeze(g)},r=new WeakMap,p=[1,1],d=a=>{if(!H(a))throw new Error("object required");const P=r.get(a);if(P)return P;let m=p[0];const g=new Set,w=(s,i=++p[0])=>{m!==i&&(m=i,g.forEach(l=>l(s,i)))};let E=p[1];const b=(s=++p[1])=>(E!==s&&!g.size&&(E=s,u.forEach(([i])=>{const l=i[1](s);l>m&&(m=l)})),m),R=s=>(i,l)=>{const y=[...i];y[1]=[s,...y[1]],w(y,l)},u=new Map,U=(s,i)=>{if(W()&&u.has(s))throw new Error("prop listener already exists");if(g.size){const l=i[3](R(s));u.set(s,[i,l])}else u.set(s,[i])},Y=s=>{const i=u.get(s);i&&(u.delete(s),i[1]?.())},Oe=s=>(g.add(s),g.size===1&&u.forEach(([l,y],M)=>{if(W()&&y)throw new Error("remove already exists");const j=l[3](R(M));u.set(M,[l,j])}),()=>{g.delete(s),g.size===0&&u.forEach(([l,y],M)=>{y&&(y(),u.set(M,[l]))})}),$=Array.isArray(a)?[]:Object.create(Object.getPrototypeOf(a)),V=o($,{deleteProperty(s,i){const l=Reflect.get(s,i);Y(i);const y=Reflect.deleteProperty(s,i);return y&&w(["delete",[i],l]),y},set(s,i,l,y){const M=Reflect.has(s,i),j=Reflect.get(s,i,y);if(M&&(e(j,l)||r.has(l)&&e(j,r.get(l))))return!0;Y(i),H(l)&&(l=Le(l)||l);let I=l;if(!Object.getOwnPropertyDescriptor(s,i)?.set){!h.has(l)&&Z(l)&&(I=ue(l));const J=!_.has(I)&&h.get(I);J&&U(i,J)}return Reflect.set(s,i,I,y),w(["set",[i],l,j]),!0}});r.set(a,V);const we=[$,b,n,Oe];return h.set(V,we),Reflect.ownKeys(a).forEach(s=>{const i=Object.getOwnPropertyDescriptor(a,s);i.get||i.set?Object.defineProperty($,s,i):V[s]=a[s]}),V})=>[d,h,_,e,o,Z,t,n,r,p],[Fe]=_e();function ue(e={}){return Fe(e)}function Ne(e,o,t){const n=h.get(e);W()&&!n&&console.warn("Please use proxy object");let r;const p=[],d=n[3];let a=!1;const m=d(g=>{p.push(g),r||(r=Promise.resolve().then(()=>{r=void 0,a&&o(p.splice(0))}))});return a=!0,()=>{a=!1,m()}}function We(e){const o=h.get(e);W()&&!o&&console.warn("Please use proxy object");const[t,n,r]=o;return r(t,n())}var fe=c.createAnatomy("tooltip").parts("trigger","arrow","arrowTip","positioner","content"),L=fe.build(),ge=e=>e.ids?.trigger??`tooltip:${e.id}:trigger`,Ke=e=>e.ids?.content??`tooltip:${e.id}:content`,$e=e=>e.ids?.arrow??`tooltip:${e.id}:arrow`,ve=e=>e.ids?.positioner??`tooltip:${e.id}:popper`,q=e=>e.getById(ge(e)),ee=e=>e.getById(ve(e)),k=ue({id:null});function qe(e,o){const{state:t,context:n,send:r,scope:p,prop:d,event:a}=e,P=d("id"),m=!!d("aria-label"),g=t.matches("open","closing"),w=ge(p),E=Ke(p),b=d("disabled"),R=f.getPlacementStyles({...d("positioning"),placement:n.get("currentPlacement")});return{open:g,setOpen(u){t.matches("open","closing")!==u&&r({type:u?"open":"close"})},reposition(u={}){r({type:"positioning.set",options:u})},getTriggerProps(){return o.button({...L.trigger.attrs,id:w,dir:d("dir"),"data-expanded":c.dataAttr(g),"data-state":g?"open":"closed","aria-describedby":g?E:void 0,onClick(u){u.defaultPrevented||b||d("closeOnClick")&&r({type:"close",src:"trigger.click"})},onFocus(u){queueMicrotask(()=>{u.defaultPrevented||b||a.src!=="trigger.pointerdown"&&N()&&r({type:"open",src:"trigger.focus"})})},onBlur(u){u.defaultPrevented||b||P===k.id&&r({type:"close",src:"trigger.blur"})},onPointerDown(u){u.defaultPrevented||b||d("closeOnPointerDown")&&P===k.id&&r({type:"close",src:"trigger.pointerdown"})},onPointerMove(u){u.defaultPrevented||b||u.pointerType!=="touch"&&r({type:"pointer.move"})},onPointerLeave(){b||r({type:"pointer.leave"})},onPointerCancel(){b||r({type:"pointer.leave"})}})},getArrowProps(){return o.element({id:$e(p),...L.arrow.attrs,dir:d("dir"),style:R.arrow})},getArrowTipProps(){return o.element({...L.arrowTip.attrs,dir:d("dir"),style:R.arrowTip})},getPositionerProps(){return o.element({id:ve(p),...L.positioner.attrs,dir:d("dir"),style:R.floating})},getContentProps(){return o.element({...L.content.attrs,dir:d("dir"),hidden:!g,"data-state":g?"open":"closed",role:m?void 0:"tooltip",id:m?void 0:E,"data-placement":n.get("currentPlacement"),onPointerEnter(){r({type:"content.pointer.move"})},onPointerLeave(){r({type:"content.pointer.leave"})},style:{pointerEvents:d("interactive")?"auto":"none"}})}}}var{and:Be,not:te}=c.createGuards(),ze=c.createMachine({initialState:({prop:e})=>e("open")||e("defaultOpen")?"open":"closed",props({props:e}){return{id:"x",openDelay:1e3,closeDelay:500,closeOnPointerDown:!0,closeOnEscape:!0,interactive:!1,closeOnScroll:!0,closeOnClick:!0,disabled:!1,...e,positioning:{placement:"bottom",...e.positioning}}},effects:["trackFocusVisible","trackStore"],context:({bindable:e})=>({currentPlacement:e(()=>({defaultValue:void 0})),hasPointerMoveOpened:e(()=>({defaultValue:!1}))}),watch({track:e,action:o,prop:t}){e([()=>t("disabled")],()=>{o(["closeIfDisabled"])}),e([()=>t("open")],()=>{o(["toggleVisibility"])})},states:{closed:{entry:["clearGlobalId"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}],"pointer.leave":{actions:["clearPointerMoveOpened"]},"pointer.move":[{guard:Be("noVisibleTooltip",te("hasPointerMoveOpened")),target:"opening"},{guard:te("hasPointerMoveOpened"),target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}]}},opening:{effects:["trackScroll","trackPointerlockChange","waitForOpenDelay"],on:{"after.openDelay":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"controlled.open":{target:"open"},"controlled.close":{target:"closed"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}],"pointer.leave":[{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose","toggleVisibility"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],close:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}]}},open:{effects:["trackEscapeKey","trackScroll","trackPointerlockChange","trackPositioning"],entry:["setGlobalId"],on:{"controlled.close":{target:"closed"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.leave":[{guard:"isVisible",target:"closing",actions:["clearPointerMoveOpened"]},{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],"content.pointer.leave":{guard:"isInteractive",target:"closing"},"positioning.set":{actions:["reposition"]}}},closing:{effects:["trackPositioning","waitForCloseDelay"],on:{"after.closeDelay":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"controlled.close":{target:"closed"},"controlled.open":{target:"open"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.move":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen","toggleVisibility"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"content.pointer.move":{guard:"isInteractive",target:"open"},"positioning.set":{actions:["reposition"]}}}},implementations:{guards:{noVisibleTooltip:()=>k.id===null,isVisible:({prop:e})=>e("id")===k.id,isInteractive:({prop:e})=>!!e("interactive"),hasPointerMoveOpened:({context:e})=>e.get("hasPointerMoveOpened"),isOpenControlled:({prop:e})=>e("open")!==void 0},actions:{setGlobalId:({prop:e})=>{k.id=e("id")},clearGlobalId:({prop:e})=>{e("id")===k.id&&(k.id=null)},invokeOnOpen:({prop:e})=>{e("onOpenChange")?.({open:!0})},invokeOnClose:({prop:e})=>{e("onOpenChange")?.({open:!1})},closeIfDisabled:({prop:e,send:o})=>{e("disabled")&&o({type:"close",src:"disabled.change"})},reposition:({context:e,event:o,prop:t,scope:n})=>{if(o.type!=="positioning.set")return;const r=()=>ee(n);return f.getPlacement(q(n),r,{...t("positioning"),...o.options,defer:!0,listeners:!1,onComplete(p){e.set("currentPlacement",p.placement)}})},toggleVisibility:({prop:e,event:o,send:t})=>{queueMicrotask(()=>{t({type:e("open")?"controlled.open":"controlled.close",previousEvent:o})})},setPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",!0)},clearPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",!1)}},effects:{trackFocusVisible:({scope:e})=>pe({root:e.getRootNode?.()}),trackPositioning:({context:e,prop:o,scope:t})=>{e.get("currentPlacement")||e.set("currentPlacement",o("positioning").placement);const n=()=>ee(t);return f.getPlacement(q(t),n,{...o("positioning"),defer:!0,onComplete(r){e.set("currentPlacement",r.placement)}})},trackPointerlockChange:({send:e,scope:o})=>{const t=o.getDoc(),n=()=>e({type:"close",src:"pointerlock:change"});return c.addDomEvent(t,"pointerlockchange",n,!1)},trackScroll:({send:e,prop:o,scope:t})=>{if(!o("closeOnScroll"))return;const n=q(t);if(!n)return;const p=c.getOverflowAncestors(n).map(d=>{const a=()=>{e({type:"close",src:"scroll"})};return c.addDomEvent(d,"scroll",a,{passive:!0,capture:!0})});return()=>{p.forEach(d=>d?.())}},trackStore:({prop:e,send:o})=>{let t;return queueMicrotask(()=>{t=Ne(k,()=>{k.id!==e("id")&&o({type:"close",src:"id.change"})})}),()=>t?.()},trackEscapeKey:({send:e,prop:o})=>{if(!o("closeOnEscape"))return;const t=n=>{c.isComposingEvent(n)||n.key==="Escape"&&(n.stopPropagation(),e({type:"close",src:"keydown.escape"}))};return c.addDomEvent(document,"keydown",t,!0)},waitForOpenDelay:({send:e,prop:o})=>{const t=setTimeout(()=>{e({type:"after.openDelay"})},o("openDelay"));return()=>clearTimeout(t)},waitForCloseDelay:({send:e,prop:o})=>{const t=setTimeout(()=>{e({type:"after.closeDelay"})},o("closeDelay"));return()=>clearTimeout(t)}}}});f.createProps()(["aria-label","closeDelay","closeOnEscape","closeOnPointerDown","closeOnScroll","closeOnClick","dir","disabled","getRootNode","id","ids","interactive","onOpenChange","defaultOpen","open","openDelay","positioning"]);const Ge=e=>{const o=C.useId(),{getRootNode:t}=f.useEnvironmentContext(),{dir:n}=f.useLocaleContext(),r={id:o,dir:n,getRootNode:t,...e},p=f.useMachine(ze,r);return qe(p,f.normalizeProps)},He=e=>{const[o,{children:t,...n}]=f.splitPresenceProps(e),r=Ge(n),p=f.usePresence(c.mergeProps({present:r.open},o));return v.jsxRuntimeExports.jsx(oe,{value:r,children:v.jsxRuntimeExports.jsx(f.PresenceProvider,{value:p,children:t})})},Ue=e=>{const[o,{value:t,children:n}]=f.splitPresenceProps(e),r=f.usePresence(c.mergeProps({present:t.open},o));return v.jsxRuntimeExports.jsx(oe,{value:t,children:v.jsxRuntimeExports.jsx(f.PresenceProvider,{value:r,children:n})})},me=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getTriggerProps(),e);return v.jsxRuntimeExports.jsx(f.ark.button,{...n,ref:o})});me.displayName="TooltipTrigger";const{withRootProvider:ye,withContext:A}=be.createSlotRecipeContext({key:"tooltip"});ye(Ue);const Ye=ye(He,{defaultProps:{lazyMount:!0,unmountOnExit:!0}}),Je=A(me,"trigger",{forwardAsChild:!0}),Qe=A(se,"positioner",{forwardAsChild:!0}),Xe=A(ie,"content",{forwardAsChild:!0}),Pe=A(re,"arrowTip",{forwardAsChild:!0}),Ze=A(ne,"arrow",{forwardAsChild:!0,defaultProps:{children:v.jsxRuntimeExports.jsx(Pe,{})}}),Ee=C.forwardRef((e,o)=>{const{children:t,disabled:n=!1,openDelay:r=350,placement:p="top",positioning:d,portalled:a=!0,label:P,...m}=e;return t?n?t:v.jsxRuntimeExports.jsxs(Ye,{positioning:{...d,placement:d?.placement||p},openDelay:r,...m,children:[v.jsxRuntimeExports.jsx(Je,{className:"Tooltip__Trigger","data-testid":"kibble-tooltip-trigger",display:"inline-block",asChild:!0,children:t}),v.jsxRuntimeExports.jsx(f.Portal,{disabled:!a,children:v.jsxRuntimeExports.jsx(Qe,{className:"Tooltip","data-testid":"kibble-tooltip",children:v.jsxRuntimeExports.jsxs(Xe,{className:"Tooltip__Content","data-testid":"kibble-tooltip-content",ref:o,fontSize:"sm",p:2,color:"text.contrast",css:{"--tooltip-bg":"colors.background.overlay.contrast"},zIndex:"tooltipExtra",children:[v.jsxRuntimeExports.jsx(Ze,{className:"Tooltip__Arrow","data-testid":"kibble-tooltip-arrow",css:{"--arrow-size":"10px"},children:v.jsxRuntimeExports.jsx(Pe,{})}),P]})})})]}):v.jsxRuntimeExports.jsx(v.jsxRuntimeExports.Fragment,{})});Ee.displayName="Tooltip";exports.Tooltip=Ee;exports.anatomy=fe;exports.isFocusVisible=N;exports.trackFocusVisible=pe;
|
|
2
|
-
//# sourceMappingURL=tooltip.component-
|
|
1
|
+
"use strict";const v=require("./jsx-runtime-CITbqOLs.js"),C=require("react"),f=require("./use-locale-context-Cc4BhWV1.js"),be=require("./create-slot-recipe-context-CGr0CNLL.js"),c=require("./index-CZ42b9rT.js"),[oe,S]=f.createContext({name:"TooltipContext",hookName:"useTooltipContext",providerName:"<TooltipProvider />"}),ne=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getArrowProps(),e);return v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});ne.displayName="TooltipArrow";const re=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getArrowTipProps(),e);return v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});re.displayName="TooltipArrowTip";const ie=C.forwardRef((e,o)=>{const t=S(),n=f.usePresenceContext(),r=c.mergeProps(t.getContentProps(),n.getPresenceProps(),e);return n.unmounted?null:v.jsxRuntimeExports.jsx(f.ark.div,{...r,ref:f.composeRefs(n.ref,o)})});ie.displayName="TooltipContent";const se=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getPositionerProps(),e);return f.usePresenceContext().unmounted?null:v.jsxRuntimeExports.jsx(f.ark.div,{...n,ref:o})});se.displayName="TooltipPositioner";function ke(e){return!(e.metaKey||!c.isMac()&&e.altKey||e.ctrlKey||e.key==="Control"||e.key==="Shift"||e.key==="Meta")}var he=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]);function Te(e,o,t){const n=t?c.getEventTarget(t):null,r=c.getWindow(n);return e=e||n instanceof r.HTMLInputElement&&!he.has(n?.type)||n instanceof r.HTMLTextAreaElement||n instanceof r.HTMLElement&&n.isContentEditable,!(e&&o==="keyboard"&&t instanceof r.KeyboardEvent&&!Reflect.has(Ce,t.key))}var x=null,B=new Set,D=new Map,T=!1,z=!1,Ce={Tab:!0,Escape:!0};function K(e,o){for(let t of B)t(e,o)}function F(e){T=!0,ke(e)&&(x="keyboard",K("keyboard",e))}function O(e){x="pointer",(e.type==="mousedown"||e.type==="pointerdown")&&(T=!0,K("pointer",e))}function ae(e){c.isVirtualClick(e)&&(T=!0,x="virtual")}function le(e){const o=c.getEventTarget(e);o===c.getWindow(o)||o===c.getDocument(o)||(!T&&!z&&(x="virtual",K("virtual",e)),T=!1,z=!1)}function ce(){T=!1,z=!0}function xe(e){if(typeof window>"u"||D.get(c.getWindow(e)))return;const o=c.getWindow(e),t=c.getDocument(e);let n=o.HTMLElement.prototype.focus;o.HTMLElement.prototype.focus=function(){x="virtual",K("virtual",null),T=!0,n.apply(this,arguments)},t.addEventListener("keydown",F,!0),t.addEventListener("keyup",F,!0),t.addEventListener("click",ae,!0),o.addEventListener("focus",le,!0),o.addEventListener("blur",ce,!1),typeof o.PointerEvent<"u"?(t.addEventListener("pointerdown",O,!0),t.addEventListener("pointermove",O,!0),t.addEventListener("pointerup",O,!0)):(t.addEventListener("mousedown",O,!0),t.addEventListener("mousemove",O,!0),t.addEventListener("mouseup",O,!0)),o.addEventListener("beforeunload",()=>{Re(e)},{once:!0}),D.set(o,{focus:n})}var Re=(e,o)=>{const t=c.getWindow(e),n=c.getDocument(e);D.has(t)&&(t.HTMLElement.prototype.focus=D.get(t).focus,n.removeEventListener("keydown",F,!0),n.removeEventListener("keyup",F,!0),n.removeEventListener("click",ae,!0),t.removeEventListener("focus",le,!0),t.removeEventListener("blur",ce,!1),typeof t.PointerEvent<"u"?(n.removeEventListener("pointerdown",O,!0),n.removeEventListener("pointermove",O,!0),n.removeEventListener("pointerup",O,!0)):(n.removeEventListener("mousedown",O,!0),n.removeEventListener("mousemove",O,!0),n.removeEventListener("mouseup",O,!0)),D.delete(t))};function N(){return x==="keyboard"}function pe(e={}){const{isTextInput:o,autoFocus:t,onChange:n,root:r}=e;xe(r),n?.({isFocusVisible:t||N(),modality:x});const p=(d,a)=>{Te(!!o,d,a)&&n?.({isFocusVisible:N(),modality:d})};return B.add(p),()=>{B.delete(p)}}const Me=Symbol(),Q=Object.getPrototypeOf,G=new WeakMap,je=e=>e&&(G.has(e)?G.get(e):Q(e)===Object.prototype||Q(e)===Array.prototype),Le=e=>je(e)&&e[Me]||null,X=(e,o=!0)=>{G.set(e,o)};function De(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global}function de(e,o){const t=De();return t?(t[e]||(t[e]=o()),t[e]):o()}var _=de("__zag__refSet",()=>new WeakSet),Se=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&"props"in e,Ae=e=>typeof e=="object"&&e!==null&&"__v_isVNode"in e,Ve=e=>typeof e=="object"&&e!==null&&"nodeType"in e&&typeof e.nodeName=="string",Ie=e=>Se(e)||Ae(e)||Ve(e),H=e=>e!==null&&typeof e=="object",Z=e=>H(e)&&!_.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!Ie(e)&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)&&!(e instanceof Promise),W=()=>process.env.NODE_ENV!=="production",h=de("__zag__proxyStateMap",()=>new WeakMap),_e=(e=Object.is,o=(a,P)=>new Proxy(a,P),t=new WeakMap,n=(a,P)=>{const m=t.get(a);if(m?.[0]===P)return m[1];const g=Array.isArray(a)?[]:Object.create(Object.getPrototypeOf(a));return X(g,!0),t.set(a,[P,g]),Reflect.ownKeys(a).forEach(w=>{const E=Reflect.get(a,w);_.has(E)?(X(E,!1),g[w]=E):h.has(E)?g[w]=We(E):g[w]=E}),Object.freeze(g)},r=new WeakMap,p=[1,1],d=a=>{if(!H(a))throw new Error("object required");const P=r.get(a);if(P)return P;let m=p[0];const g=new Set,w=(s,i=++p[0])=>{m!==i&&(m=i,g.forEach(l=>l(s,i)))};let E=p[1];const b=(s=++p[1])=>(E!==s&&!g.size&&(E=s,u.forEach(([i])=>{const l=i[1](s);l>m&&(m=l)})),m),R=s=>(i,l)=>{const y=[...i];y[1]=[s,...y[1]],w(y,l)},u=new Map,U=(s,i)=>{if(W()&&u.has(s))throw new Error("prop listener already exists");if(g.size){const l=i[3](R(s));u.set(s,[i,l])}else u.set(s,[i])},Y=s=>{const i=u.get(s);i&&(u.delete(s),i[1]?.())},Oe=s=>(g.add(s),g.size===1&&u.forEach(([l,y],M)=>{if(W()&&y)throw new Error("remove already exists");const j=l[3](R(M));u.set(M,[l,j])}),()=>{g.delete(s),g.size===0&&u.forEach(([l,y],M)=>{y&&(y(),u.set(M,[l]))})}),$=Array.isArray(a)?[]:Object.create(Object.getPrototypeOf(a)),V=o($,{deleteProperty(s,i){const l=Reflect.get(s,i);Y(i);const y=Reflect.deleteProperty(s,i);return y&&w(["delete",[i],l]),y},set(s,i,l,y){const M=Reflect.has(s,i),j=Reflect.get(s,i,y);if(M&&(e(j,l)||r.has(l)&&e(j,r.get(l))))return!0;Y(i),H(l)&&(l=Le(l)||l);let I=l;if(!Object.getOwnPropertyDescriptor(s,i)?.set){!h.has(l)&&Z(l)&&(I=ue(l));const J=!_.has(I)&&h.get(I);J&&U(i,J)}return Reflect.set(s,i,I,y),w(["set",[i],l,j]),!0}});r.set(a,V);const we=[$,b,n,Oe];return h.set(V,we),Reflect.ownKeys(a).forEach(s=>{const i=Object.getOwnPropertyDescriptor(a,s);i.get||i.set?Object.defineProperty($,s,i):V[s]=a[s]}),V})=>[d,h,_,e,o,Z,t,n,r,p],[Fe]=_e();function ue(e={}){return Fe(e)}function Ne(e,o,t){const n=h.get(e);W()&&!n&&console.warn("Please use proxy object");let r;const p=[],d=n[3];let a=!1;const m=d(g=>{p.push(g),r||(r=Promise.resolve().then(()=>{r=void 0,a&&o(p.splice(0))}))});return a=!0,()=>{a=!1,m()}}function We(e){const o=h.get(e);W()&&!o&&console.warn("Please use proxy object");const[t,n,r]=o;return r(t,n())}var fe=c.createAnatomy("tooltip").parts("trigger","arrow","arrowTip","positioner","content"),L=fe.build(),ge=e=>e.ids?.trigger??`tooltip:${e.id}:trigger`,Ke=e=>e.ids?.content??`tooltip:${e.id}:content`,$e=e=>e.ids?.arrow??`tooltip:${e.id}:arrow`,ve=e=>e.ids?.positioner??`tooltip:${e.id}:popper`,q=e=>e.getById(ge(e)),ee=e=>e.getById(ve(e)),k=ue({id:null});function qe(e,o){const{state:t,context:n,send:r,scope:p,prop:d,event:a}=e,P=d("id"),m=!!d("aria-label"),g=t.matches("open","closing"),w=ge(p),E=Ke(p),b=d("disabled"),R=f.getPlacementStyles({...d("positioning"),placement:n.get("currentPlacement")});return{open:g,setOpen(u){t.matches("open","closing")!==u&&r({type:u?"open":"close"})},reposition(u={}){r({type:"positioning.set",options:u})},getTriggerProps(){return o.button({...L.trigger.attrs,id:w,dir:d("dir"),"data-expanded":c.dataAttr(g),"data-state":g?"open":"closed","aria-describedby":g?E:void 0,onClick(u){u.defaultPrevented||b||d("closeOnClick")&&r({type:"close",src:"trigger.click"})},onFocus(u){queueMicrotask(()=>{u.defaultPrevented||b||a.src!=="trigger.pointerdown"&&N()&&r({type:"open",src:"trigger.focus"})})},onBlur(u){u.defaultPrevented||b||P===k.id&&r({type:"close",src:"trigger.blur"})},onPointerDown(u){u.defaultPrevented||b||d("closeOnPointerDown")&&P===k.id&&r({type:"close",src:"trigger.pointerdown"})},onPointerMove(u){u.defaultPrevented||b||u.pointerType!=="touch"&&r({type:"pointer.move"})},onPointerLeave(){b||r({type:"pointer.leave"})},onPointerCancel(){b||r({type:"pointer.leave"})}})},getArrowProps(){return o.element({id:$e(p),...L.arrow.attrs,dir:d("dir"),style:R.arrow})},getArrowTipProps(){return o.element({...L.arrowTip.attrs,dir:d("dir"),style:R.arrowTip})},getPositionerProps(){return o.element({id:ve(p),...L.positioner.attrs,dir:d("dir"),style:R.floating})},getContentProps(){return o.element({...L.content.attrs,dir:d("dir"),hidden:!g,"data-state":g?"open":"closed",role:m?void 0:"tooltip",id:m?void 0:E,"data-placement":n.get("currentPlacement"),onPointerEnter(){r({type:"content.pointer.move"})},onPointerLeave(){r({type:"content.pointer.leave"})},style:{pointerEvents:d("interactive")?"auto":"none"}})}}}var{and:Be,not:te}=c.createGuards(),ze=c.createMachine({initialState:({prop:e})=>e("open")||e("defaultOpen")?"open":"closed",props({props:e}){return{id:"x",openDelay:1e3,closeDelay:500,closeOnPointerDown:!0,closeOnEscape:!0,interactive:!1,closeOnScroll:!0,closeOnClick:!0,disabled:!1,...e,positioning:{placement:"bottom",...e.positioning}}},effects:["trackFocusVisible","trackStore"],context:({bindable:e})=>({currentPlacement:e(()=>({defaultValue:void 0})),hasPointerMoveOpened:e(()=>({defaultValue:!1}))}),watch({track:e,action:o,prop:t}){e([()=>t("disabled")],()=>{o(["closeIfDisabled"])}),e([()=>t("open")],()=>{o(["toggleVisibility"])})},states:{closed:{entry:["clearGlobalId"],on:{"controlled.open":{target:"open"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}],"pointer.leave":{actions:["clearPointerMoveOpened"]},"pointer.move":[{guard:Be("noVisibleTooltip",te("hasPointerMoveOpened")),target:"opening"},{guard:te("hasPointerMoveOpened"),target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}]}},opening:{effects:["trackScroll","trackPointerlockChange","waitForOpenDelay"],on:{"after.openDelay":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"controlled.open":{target:"open"},"controlled.close":{target:"closed"},open:[{guard:"isOpenControlled",actions:["invokeOnOpen"]},{target:"open",actions:["invokeOnOpen"]}],"pointer.leave":[{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose","toggleVisibility"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],close:[{guard:"isOpenControlled",actions:["invokeOnClose","toggleVisibility"]},{target:"closed",actions:["invokeOnClose"]}]}},open:{effects:["trackEscapeKey","trackScroll","trackPointerlockChange","trackPositioning"],entry:["setGlobalId"],on:{"controlled.close":{target:"closed"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.leave":[{guard:"isVisible",target:"closing",actions:["clearPointerMoveOpened"]},{guard:"isOpenControlled",actions:["clearPointerMoveOpened","invokeOnClose"]},{target:"closed",actions:["clearPointerMoveOpened","invokeOnClose"]}],"content.pointer.leave":{guard:"isInteractive",target:"closing"},"positioning.set":{actions:["reposition"]}}},closing:{effects:["trackPositioning","waitForCloseDelay"],on:{"after.closeDelay":[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"controlled.close":{target:"closed"},"controlled.open":{target:"open"},close:[{guard:"isOpenControlled",actions:["invokeOnClose"]},{target:"closed",actions:["invokeOnClose"]}],"pointer.move":[{guard:"isOpenControlled",actions:["setPointerMoveOpened","invokeOnOpen","toggleVisibility"]},{target:"open",actions:["setPointerMoveOpened","invokeOnOpen"]}],"content.pointer.move":{guard:"isInteractive",target:"open"},"positioning.set":{actions:["reposition"]}}}},implementations:{guards:{noVisibleTooltip:()=>k.id===null,isVisible:({prop:e})=>e("id")===k.id,isInteractive:({prop:e})=>!!e("interactive"),hasPointerMoveOpened:({context:e})=>e.get("hasPointerMoveOpened"),isOpenControlled:({prop:e})=>e("open")!==void 0},actions:{setGlobalId:({prop:e})=>{k.id=e("id")},clearGlobalId:({prop:e})=>{e("id")===k.id&&(k.id=null)},invokeOnOpen:({prop:e})=>{e("onOpenChange")?.({open:!0})},invokeOnClose:({prop:e})=>{e("onOpenChange")?.({open:!1})},closeIfDisabled:({prop:e,send:o})=>{e("disabled")&&o({type:"close",src:"disabled.change"})},reposition:({context:e,event:o,prop:t,scope:n})=>{if(o.type!=="positioning.set")return;const r=()=>ee(n);return f.getPlacement(q(n),r,{...t("positioning"),...o.options,defer:!0,listeners:!1,onComplete(p){e.set("currentPlacement",p.placement)}})},toggleVisibility:({prop:e,event:o,send:t})=>{queueMicrotask(()=>{t({type:e("open")?"controlled.open":"controlled.close",previousEvent:o})})},setPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",!0)},clearPointerMoveOpened:({context:e})=>{e.set("hasPointerMoveOpened",!1)}},effects:{trackFocusVisible:({scope:e})=>pe({root:e.getRootNode?.()}),trackPositioning:({context:e,prop:o,scope:t})=>{e.get("currentPlacement")||e.set("currentPlacement",o("positioning").placement);const n=()=>ee(t);return f.getPlacement(q(t),n,{...o("positioning"),defer:!0,onComplete(r){e.set("currentPlacement",r.placement)}})},trackPointerlockChange:({send:e,scope:o})=>{const t=o.getDoc(),n=()=>e({type:"close",src:"pointerlock:change"});return c.addDomEvent(t,"pointerlockchange",n,!1)},trackScroll:({send:e,prop:o,scope:t})=>{if(!o("closeOnScroll"))return;const n=q(t);if(!n)return;const p=c.getOverflowAncestors(n).map(d=>{const a=()=>{e({type:"close",src:"scroll"})};return c.addDomEvent(d,"scroll",a,{passive:!0,capture:!0})});return()=>{p.forEach(d=>d?.())}},trackStore:({prop:e,send:o})=>{let t;return queueMicrotask(()=>{t=Ne(k,()=>{k.id!==e("id")&&o({type:"close",src:"id.change"})})}),()=>t?.()},trackEscapeKey:({send:e,prop:o})=>{if(!o("closeOnEscape"))return;const t=n=>{c.isComposingEvent(n)||n.key==="Escape"&&(n.stopPropagation(),e({type:"close",src:"keydown.escape"}))};return c.addDomEvent(document,"keydown",t,!0)},waitForOpenDelay:({send:e,prop:o})=>{const t=setTimeout(()=>{e({type:"after.openDelay"})},o("openDelay"));return()=>clearTimeout(t)},waitForCloseDelay:({send:e,prop:o})=>{const t=setTimeout(()=>{e({type:"after.closeDelay"})},o("closeDelay"));return()=>clearTimeout(t)}}}});f.createProps()(["aria-label","closeDelay","closeOnEscape","closeOnPointerDown","closeOnScroll","closeOnClick","dir","disabled","getRootNode","id","ids","interactive","onOpenChange","defaultOpen","open","openDelay","positioning"]);const Ge=e=>{const o=C.useId(),{getRootNode:t}=f.useEnvironmentContext(),{dir:n}=f.useLocaleContext(),r={id:o,dir:n,getRootNode:t,...e},p=f.useMachine(ze,r);return qe(p,f.normalizeProps)},He=e=>{const[o,{children:t,...n}]=f.splitPresenceProps(e),r=Ge(n),p=f.usePresence(c.mergeProps({present:r.open},o));return v.jsxRuntimeExports.jsx(oe,{value:r,children:v.jsxRuntimeExports.jsx(f.PresenceProvider,{value:p,children:t})})},Ue=e=>{const[o,{value:t,children:n}]=f.splitPresenceProps(e),r=f.usePresence(c.mergeProps({present:t.open},o));return v.jsxRuntimeExports.jsx(oe,{value:t,children:v.jsxRuntimeExports.jsx(f.PresenceProvider,{value:r,children:n})})},me=C.forwardRef((e,o)=>{const t=S(),n=c.mergeProps(t.getTriggerProps(),e);return v.jsxRuntimeExports.jsx(f.ark.button,{...n,ref:o})});me.displayName="TooltipTrigger";const{withRootProvider:ye,withContext:A}=be.createSlotRecipeContext({key:"tooltip"});ye(Ue);const Ye=ye(He,{defaultProps:{lazyMount:!0,unmountOnExit:!0}}),Je=A(me,"trigger",{forwardAsChild:!0}),Qe=A(se,"positioner",{forwardAsChild:!0}),Xe=A(ie,"content",{forwardAsChild:!0}),Pe=A(re,"arrowTip",{forwardAsChild:!0}),Ze=A(ne,"arrow",{forwardAsChild:!0,defaultProps:{children:v.jsxRuntimeExports.jsx(Pe,{})}}),Ee=C.forwardRef((e,o)=>{const{children:t,disabled:n=!1,openDelay:r=350,placement:p="top",positioning:d,portalled:a=!0,label:P,...m}=e;return t?n?t:v.jsxRuntimeExports.jsxs(Ye,{positioning:{...d,placement:d?.placement||p},openDelay:r,...m,children:[v.jsxRuntimeExports.jsx(Je,{className:"Tooltip__Trigger","data-testid":"kibble-tooltip-trigger",display:"inline-block",asChild:!0,children:t}),v.jsxRuntimeExports.jsx(f.Portal,{disabled:!a,children:v.jsxRuntimeExports.jsx(Qe,{className:"Tooltip","data-testid":"kibble-tooltip",children:v.jsxRuntimeExports.jsxs(Xe,{className:"Tooltip__Content","data-testid":"kibble-tooltip-content",ref:o,fontSize:"sm",p:2,color:"text.contrast",css:{"--tooltip-bg":"colors.background.overlay.contrast"},zIndex:"tooltipExtra",children:[v.jsxRuntimeExports.jsx(Ze,{className:"Tooltip__Arrow","data-testid":"kibble-tooltip-arrow",css:{"--arrow-size":"10px"},children:v.jsxRuntimeExports.jsx(Pe,{})}),P]})})})]}):v.jsxRuntimeExports.jsx(v.jsxRuntimeExports.Fragment,{})});Ee.displayName="Tooltip";exports.Tooltip=Ee;exports.anatomy=fe;exports.isFocusVisible=N;exports.trackFocusVisible=pe;
|
|
2
|
+
//# sourceMappingURL=tooltip.component-BPzYkYDd.js.map
|