@commercetools/nimbus 2.11.0 → 3.0.0
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/{Button-i3wfJjZy.es.js → Button-BbiBXpLI.es.js} +3 -3
- package/dist/chunks/{Button-i3wfJjZy.es.js.map → Button-BbiBXpLI.es.js.map} +1 -1
- package/dist/chunks/{Calendar-BGX_ecv9.es.js → Calendar-D2xXO9yf.es.js} +7 -7
- package/dist/chunks/{Calendar-BGX_ecv9.es.js.map → Calendar-D2xXO9yf.es.js.map} +1 -1
- package/dist/chunks/{CollectionBuilder-CbqLnlVI.es.js → CollectionBuilder-GnbDoE-A.es.js} +2 -2
- package/dist/chunks/{CollectionBuilder-CbqLnlVI.es.js.map → CollectionBuilder-GnbDoE-A.es.js.map} +1 -1
- package/dist/chunks/{DateField-C1PcBsYT.es.js → DateField-CQrmNlLj.es.js} +10 -10
- package/dist/chunks/{DateField-C1PcBsYT.es.js.map → DateField-CQrmNlLj.es.js.map} +1 -1
- package/dist/chunks/{DatePicker-BLXrb3eY.es.js → DatePicker-CbM40tGe.es.js} +11 -11
- package/dist/chunks/{DatePicker-BLXrb3eY.es.js.map → DatePicker-CbM40tGe.es.js.map} +1 -1
- package/dist/chunks/{Dialog-Dwy2_Ptk.es.js → Dialog-BVUZ7ef8.es.js} +14 -14
- package/dist/chunks/{Dialog-Dwy2_Ptk.es.js.map → Dialog-BVUZ7ef8.es.js.map} +1 -1
- package/dist/chunks/{FocusScope-D0jw9l8a.es.js → FocusScope-BpjuIERr.es.js} +3 -3
- package/dist/chunks/{FocusScope-D0jw9l8a.es.js.map → FocusScope-BpjuIERr.es.js.map} +1 -1
- package/dist/chunks/{Group-MOzeoewy.es.js → Group-BoEoEWiy.es.js} +2 -2
- package/dist/chunks/{Group-MOzeoewy.es.js.map → Group-BoEoEWiy.es.js.map} +1 -1
- package/dist/chunks/{Input-BLulRm-m.es.js → Input-7uI4BOR3.es.js} +2 -2
- package/dist/chunks/{Input-BLulRm-m.es.js.map → Input-7uI4BOR3.es.js.map} +1 -1
- package/dist/chunks/{ListBox-BQGvhjf1.es.js → ListBox-CLG1CedW.es.js} +11 -11
- package/dist/chunks/{ListBox-BQGvhjf1.es.js.map → ListBox-CLG1CedW.es.js.map} +1 -1
- package/dist/chunks/{Modal-Cxh6ykOi.es.js → Modal-CyqqmLlL.es.js} +8 -8
- package/dist/chunks/{Modal-Cxh6ykOi.es.js.map → Modal-CyqqmLlL.es.js.map} +1 -1
- package/dist/chunks/{Separator-ByH0WwDE.es.js → Separator-CU5Dgur6.es.js} +2 -2
- package/dist/chunks/{Separator-ByH0WwDE.es.js.map → Separator-CU5Dgur6.es.js.map} +1 -1
- package/dist/chunks/{ToggleButton-D8ToBOmn.es.js → ToggleButton-C_RMF16v.es.js} +4 -4
- package/dist/chunks/{ToggleButton-D8ToBOmn.es.js.map → ToggleButton-C_RMF16v.es.js.map} +1 -1
- package/dist/chunks/{accordion-BWDDez2K.cjs.js → accordion-B3vpwgmz.cjs.js} +2 -2
- package/dist/chunks/{accordion-BWDDez2K.cjs.js.map → accordion-B3vpwgmz.cjs.js.map} +1 -1
- package/dist/chunks/{accordion-BghGJkfm.es.js → accordion-BtV7SqbN.es.js} +2 -2
- package/dist/chunks/{accordion-BghGJkfm.es.js.map → accordion-BtV7SqbN.es.js.map} +1 -1
- package/dist/chunks/{accordion.content-CduLlKab.es.js → accordion.content-Bec2unyW.es.js} +4 -4
- package/dist/chunks/{accordion.content-CduLlKab.es.js.map → accordion.content-Bec2unyW.es.js.map} +1 -1
- package/dist/chunks/{accordion.content-DfUrWRK2.cjs.js → accordion.content-DnVIufbw.cjs.js} +2 -2
- package/dist/chunks/{accordion.content-DfUrWRK2.cjs.js.map → accordion.content-DnVIufbw.cjs.js.map} +1 -1
- package/dist/chunks/{alert-CtpnwfLq.cjs.js → alert-DhjefOnW.cjs.js} +2 -2
- package/dist/chunks/{alert-CtpnwfLq.cjs.js.map → alert-DhjefOnW.cjs.js.map} +1 -1
- package/dist/chunks/{alert-CKjEjYuk.es.js → alert-Xxqyst93.es.js} +2 -2
- package/dist/chunks/{alert-CKjEjYuk.es.js.map → alert-Xxqyst93.es.js.map} +1 -1
- package/dist/chunks/avatar-BxWYEvDv.es.js +59 -0
- package/dist/chunks/avatar-BxWYEvDv.es.js.map +1 -0
- package/dist/chunks/avatar-CAvEZh0T.cjs.js +2 -0
- package/dist/chunks/avatar-CAvEZh0T.cjs.js.map +1 -0
- package/dist/chunks/{button-C2Dl55wY.cjs.js → button-C8BxhnrL.cjs.js} +2 -2
- package/dist/chunks/{button-C2Dl55wY.cjs.js.map → button-C8BxhnrL.cjs.js.map} +1 -1
- package/dist/chunks/{button-lHv6f2MW.es.js → button-DDk_A6fN.es.js} +4 -4
- package/dist/chunks/{button-lHv6f2MW.es.js.map → button-DDk_A6fN.es.js.map} +1 -1
- package/dist/chunks/{calendar-QUdv8RpQ.es.js → calendar-CCbKuHRw.es.js} +5 -5
- package/dist/chunks/{calendar-QUdv8RpQ.es.js.map → calendar-CCbKuHRw.es.js.map} +1 -1
- package/dist/chunks/{calendar-C9fUqihQ.cjs.js → calendar-DyS7pcka.cjs.js} +2 -2
- package/dist/chunks/{calendar-C9fUqihQ.cjs.js.map → calendar-DyS7pcka.cjs.js.map} +1 -1
- package/dist/chunks/card-BAXEfIrr.es.js +123 -0
- package/dist/chunks/card-BAXEfIrr.es.js.map +1 -0
- package/dist/chunks/card-CKOBGWCk.cjs.js +2 -0
- package/dist/chunks/card-CKOBGWCk.cjs.js.map +1 -0
- package/dist/chunks/{checkbox-BuapXMHc.es.js → checkbox-B9YYUgwd.es.js} +6 -6
- package/dist/chunks/{checkbox-BuapXMHc.es.js.map → checkbox-B9YYUgwd.es.js.map} +1 -1
- package/dist/chunks/{checkbox-Da1oqUdt.cjs.js → checkbox-k5YpSH7a.cjs.js} +2 -2
- package/dist/chunks/{checkbox-Da1oqUdt.cjs.js.map → checkbox-k5YpSH7a.cjs.js.map} +1 -1
- package/dist/chunks/{collapsible-motion-BdwG6Ope.es.js → collapsible-motion-BQ6ylBzi.es.js} +3 -3
- package/dist/chunks/{collapsible-motion-BdwG6Ope.es.js.map → collapsible-motion-BQ6ylBzi.es.js.map} +1 -1
- package/dist/chunks/{collapsible-motion-BiQOV9JE.cjs.js → collapsible-motion-DR0Jmfre.cjs.js} +2 -2
- package/dist/chunks/{collapsible-motion-BiQOV9JE.cjs.js.map → collapsible-motion-DR0Jmfre.cjs.js.map} +1 -1
- package/dist/chunks/combobox-Bax_tJAv.cjs.js +2 -0
- package/dist/chunks/combobox-Bax_tJAv.cjs.js.map +1 -0
- package/dist/chunks/combobox-BkebHB4d.es.js +1586 -0
- package/dist/chunks/combobox-BkebHB4d.es.js.map +1 -0
- package/dist/chunks/data-table-Ba4Jk9qI.cjs.js +2 -0
- package/dist/chunks/{data-table-DCpNE2Zx.cjs.js.map → data-table-Ba4Jk9qI.cjs.js.map} +1 -1
- package/dist/chunks/{data-table-BxM4aLrf.es.js → data-table-CGdxOTsY.es.js} +1789 -1711
- package/dist/chunks/{data-table-BxM4aLrf.es.js.map → data-table-CGdxOTsY.es.js.map} +1 -1
- package/dist/chunks/{date-input-U8N1y6b_.es.js → date-input-DFU5GZg-.es.js} +4 -4
- package/dist/chunks/{date-input-U8N1y6b_.es.js.map → date-input-DFU5GZg-.es.js.map} +1 -1
- package/dist/chunks/{date-input-DD0uZdGq.cjs.js → date-input-cXV2C969.cjs.js} +2 -2
- package/dist/chunks/{date-input-DD0uZdGq.cjs.js.map → date-input-cXV2C969.cjs.js.map} +1 -1
- package/dist/chunks/{date-picker-DZD4cZZI.cjs.js → date-picker-CKXDJqmt.cjs.js} +2 -2
- package/dist/chunks/{date-picker-DZD4cZZI.cjs.js.map → date-picker-CKXDJqmt.cjs.js.map} +1 -1
- package/dist/chunks/{date-picker-B5NwXo5k.es.js → date-picker-DiSC4s8p.es.js} +12 -12
- package/dist/chunks/{date-picker-B5NwXo5k.es.js.map → date-picker-DiSC4s8p.es.js.map} +1 -1
- package/dist/chunks/{date-range-picker-CloFZ70c.es.js → date-range-picker-DKPzeKkS.es.js} +12 -12
- package/dist/chunks/{date-range-picker-CloFZ70c.es.js.map → date-range-picker-DKPzeKkS.es.js.map} +1 -1
- package/dist/chunks/{date-range-picker-DcKkP7Xj.cjs.js → date-range-picker-DZxdGxHy.cjs.js} +2 -2
- package/dist/chunks/{date-range-picker-DcKkP7Xj.cjs.js.map → date-range-picker-DZxdGxHy.cjs.js.map} +1 -1
- package/dist/chunks/{date-range-picker-field-CSpT0HwR.cjs.js → date-range-picker-field-Cc97V99w.cjs.js} +2 -2
- package/dist/chunks/{date-range-picker-field-CSpT0HwR.cjs.js.map → date-range-picker-field-Cc97V99w.cjs.js.map} +1 -1
- package/dist/chunks/{date-range-picker-field-BPGGp3jH.es.js → date-range-picker-field-Cz0on7N9.es.js} +3 -3
- package/dist/chunks/{date-range-picker-field-BPGGp3jH.es.js.map → date-range-picker-field-Cz0on7N9.es.js.map} +1 -1
- package/dist/chunks/default-page-Bb0JHsAd.cjs.js +2 -0
- package/dist/chunks/default-page-Bb0JHsAd.cjs.js.map +1 -0
- package/dist/chunks/{default-page-CkacXcz2.es.js → default-page-E0hvl34S.es.js} +60 -60
- package/dist/chunks/default-page-E0hvl34S.es.js.map +1 -0
- package/dist/chunks/{dialog-yIDnbE41.es.js → dialog-BMGMx0uh.es.js} +59 -58
- package/dist/chunks/dialog-BMGMx0uh.es.js.map +1 -0
- package/dist/chunks/dialog-X45TZomp.cjs.js +2 -0
- package/dist/chunks/dialog-X45TZomp.cjs.js.map +1 -0
- package/dist/chunks/{draggable-list-DEWPzTXs.es.js → draggable-list-DQZ9mMY7.es.js} +18 -18
- package/dist/chunks/{draggable-list-DEWPzTXs.es.js.map → draggable-list-DQZ9mMY7.es.js.map} +1 -1
- package/dist/chunks/{draggable-list-oPX1t-3Y.cjs.js → draggable-list-DY8FTWN5.cjs.js} +2 -2
- package/dist/chunks/{draggable-list-oPX1t-3Y.cjs.js.map → draggable-list-DY8FTWN5.cjs.js.map} +1 -1
- package/dist/chunks/{drawer-C6SlH_kv.cjs.js → drawer-B8d7ngw9.cjs.js} +2 -2
- package/dist/chunks/{drawer-C6SlH_kv.cjs.js.map → drawer-B8d7ngw9.cjs.js.map} +1 -1
- package/dist/chunks/{drawer-DNLkEvD0.es.js → drawer-D2VDzpBe.es.js} +7 -7
- package/dist/chunks/{drawer-DNLkEvD0.es.js.map → drawer-D2VDzpBe.es.js.map} +1 -1
- package/dist/chunks/extract-padding-props-5XQcb4kp.es.js +86 -0
- package/dist/chunks/extract-padding-props-5XQcb4kp.es.js.map +1 -0
- package/dist/chunks/extract-padding-props-De5B6uiA.cjs.js +2 -0
- package/dist/chunks/extract-padding-props-De5B6uiA.cjs.js.map +1 -0
- package/dist/chunks/{extract-style-props-D86m_g63.es.js → extract-style-props-Bcwub3j6.es.js} +2 -2
- package/dist/chunks/{extract-style-props-D86m_g63.es.js.map → extract-style-props-Bcwub3j6.es.js.map} +1 -1
- package/dist/chunks/{extract-style-props-DiP1lZl_.cjs.js → extract-style-props-DWdgk4rX.cjs.js} +2 -2
- package/dist/chunks/{extract-style-props-DiP1lZl_.cjs.js.map → extract-style-props-DWdgk4rX.cjs.js.map} +1 -1
- package/dist/chunks/{focusSafely-DqnNk8Cr.es.js → focusSafely-Cpjz2BzP.es.js} +2 -2
- package/dist/chunks/{focusSafely-DqnNk8Cr.es.js.map → focusSafely-Cpjz2BzP.es.js.map} +1 -1
- package/dist/chunks/form-action-bar-B7zd3XAE.es.js +101 -0
- package/dist/chunks/form-action-bar-B7zd3XAE.es.js.map +1 -0
- package/dist/chunks/form-action-bar-Bzst5Vxz.cjs.js +2 -0
- package/dist/chunks/form-action-bar-Bzst5Vxz.cjs.js.map +1 -0
- package/dist/chunks/{form-field-BVbjVnSV.es.js → form-field-8H5wbjSo.es.js} +3 -3
- package/dist/chunks/{form-field-BVbjVnSV.es.js.map → form-field-8H5wbjSo.es.js.map} +1 -1
- package/dist/chunks/{form-field-BgYwFv45.cjs.js → form-field-CRA4BE4c.cjs.js} +2 -2
- package/dist/chunks/{form-field-BgYwFv45.cjs.js.map → form-field-CRA4BE4c.cjs.js.map} +1 -1
- package/dist/chunks/{getItemCount-BEy-gD1d.es.js → getItemCount-BlW7-DM4.es.js} +4 -4
- package/dist/chunks/{getItemCount-BEy-gD1d.es.js.map → getItemCount-BlW7-DM4.es.js.map} +1 -1
- package/dist/chunks/{getScrollParent-DpFDagTz.es.js → getScrollParent-CS3T_04J.es.js} +2 -2
- package/dist/chunks/{getScrollParent-DpFDagTz.es.js.map → getScrollParent-CS3T_04J.es.js.map} +1 -1
- package/dist/chunks/{group-DmZFJeQ4.es.js → group-C9O-E531.es.js} +2 -2
- package/dist/chunks/{group-DmZFJeQ4.es.js.map → group-C9O-E531.es.js.map} +1 -1
- package/dist/chunks/{icon-button-COjLtd6N.es.js → icon-button-BEAbGl9T.es.js} +2 -2
- package/dist/chunks/{icon-button-COjLtd6N.es.js.map → icon-button-BEAbGl9T.es.js.map} +1 -1
- package/dist/chunks/{icon-button-BwxwVPZQ.cjs.js → icon-button-xxvxJnj0.cjs.js} +2 -2
- package/dist/chunks/{icon-button-BwxwVPZQ.cjs.js.map → icon-button-xxvxJnj0.cjs.js.map} +1 -1
- package/dist/chunks/{icon-toggle-button-BUG86RqE.cjs.js → icon-toggle-button-BPQBCC7v.cjs.js} +2 -2
- package/dist/chunks/{icon-toggle-button-BUG86RqE.cjs.js.map → icon-toggle-button-BPQBCC7v.cjs.js.map} +1 -1
- package/dist/chunks/{icon-toggle-button-CBEMJReu.es.js → icon-toggle-button-Car7NrgY.es.js} +2 -2
- package/dist/chunks/{icon-toggle-button-CBEMJReu.es.js.map → icon-toggle-button-Car7NrgY.es.js.map} +1 -1
- package/dist/chunks/{index-CTrsTsK6.es.js → index-B_vTRVge.es.js} +149 -73
- package/dist/chunks/index-B_vTRVge.es.js.map +1 -0
- package/dist/chunks/index-D7XQqnz_.cjs.js +34 -0
- package/dist/chunks/index-D7XQqnz_.cjs.js.map +1 -0
- package/dist/chunks/info-dialog-D4ylpGSa.cjs.js +2 -0
- package/dist/chunks/info-dialog-D4ylpGSa.cjs.js.map +1 -0
- package/dist/chunks/info-dialog-DryM_KKZ.es.js +32 -0
- package/dist/chunks/info-dialog-DryM_KKZ.es.js.map +1 -0
- package/dist/chunks/{inline-svg-D0MU6k2J.es.js → inline-svg-DKiHSMuM.es.js} +2 -2
- package/dist/chunks/{inline-svg-D0MU6k2J.es.js.map → inline-svg-DKiHSMuM.es.js.map} +1 -1
- package/dist/chunks/{inline-svg-Che-ey1M.cjs.js → inline-svg-DSoQFXip.cjs.js} +2 -2
- package/dist/chunks/{inline-svg-Che-ey1M.cjs.js.map → inline-svg-DSoQFXip.cjs.js.map} +1 -1
- package/dist/chunks/{link-BagSeub_.es.js → link-Crovp2Od.es.js} +2 -2
- package/dist/chunks/{link-BagSeub_.es.js.map → link-Crovp2Od.es.js.map} +1 -1
- package/dist/chunks/{list-DZkO_S3d.cjs.js → list-DxPDmQ-o.cjs.js} +2 -2
- package/dist/chunks/{list-DZkO_S3d.cjs.js.map → list-DxPDmQ-o.cjs.js.map} +1 -1
- package/dist/chunks/{list-DZIxOhF7.es.js → list-tY8NtJk0.es.js} +2 -2
- package/dist/chunks/{list-DZIxOhF7.es.js.map → list-tY8NtJk0.es.js.map} +1 -1
- package/dist/chunks/{localized-field-BrdKlDDc.es.js → localized-field-9SQ5Na7r.es.js} +11 -11
- package/dist/chunks/{localized-field-BrdKlDDc.es.js.map → localized-field-9SQ5Na7r.es.js.map} +1 -1
- package/dist/chunks/{localized-field-B69EDfq1.cjs.js → localized-field-Sp9tovsD.cjs.js} +2 -2
- package/dist/chunks/{localized-field-B69EDfq1.cjs.js.map → localized-field-Sp9tovsD.cjs.js.map} +1 -1
- package/dist/chunks/{make-element-focusable-QhMuqMrZ.es.js → make-element-focusable-CDZnSp67.es.js} +2 -2
- package/dist/chunks/{make-element-focusable-QhMuqMrZ.es.js.map → make-element-focusable-CDZnSp67.es.js.map} +1 -1
- package/dist/chunks/{menu-BgqoIrxE.cjs.js → menu-DVanb-L3.cjs.js} +2 -2
- package/dist/chunks/{menu-BgqoIrxE.cjs.js.map → menu-DVanb-L3.cjs.js.map} +1 -1
- package/dist/chunks/{menu-DpjEZqo0.es.js → menu-EnbHuHaW.es.js} +6 -6
- package/dist/chunks/{menu-DpjEZqo0.es.js.map → menu-EnbHuHaW.es.js.map} +1 -1
- package/dist/chunks/modal-page-BiF7R0Pr.cjs.js +2 -0
- package/dist/chunks/modal-page-BiF7R0Pr.cjs.js.map +1 -0
- package/dist/chunks/{modal-page-7Mp-9hq7.es.js → modal-page-CfoF1omY.es.js} +76 -76
- package/dist/chunks/{modal-page-hqz13F_k.cjs.js.map → modal-page-CfoF1omY.es.js.map} +1 -1
- package/dist/chunks/{money-input-C0FNshvC.es.js → money-input-B7loCwhJ.es.js} +8 -8
- package/dist/chunks/{money-input-C0FNshvC.es.js.map → money-input-B7loCwhJ.es.js.map} +1 -1
- package/dist/chunks/{money-input-a6xa1Bco.cjs.js → money-input-DYYoHYJT.cjs.js} +2 -2
- package/dist/chunks/{money-input-a6xa1Bco.cjs.js.map → money-input-DYYoHYJT.cjs.js.map} +1 -1
- package/dist/chunks/{money-input-field-MSYtNijl.es.js → money-input-field-BgqnQEKD.es.js} +3 -3
- package/dist/chunks/{money-input-field-MSYtNijl.es.js.map → money-input-field-BgqnQEKD.es.js.map} +1 -1
- package/dist/chunks/{money-input-field-CcZh9XXF.cjs.js → money-input-field-CfJuYMwF.cjs.js} +2 -2
- package/dist/chunks/{money-input-field-CcZh9XXF.cjs.js.map → money-input-field-CfJuYMwF.cjs.js.map} +1 -1
- package/dist/chunks/{multiline-text-input-CIvjI0sz.es.js → multiline-text-input-Cty3zIk3.es.js} +5 -5
- package/dist/chunks/{multiline-text-input-CIvjI0sz.es.js.map → multiline-text-input-Cty3zIk3.es.js.map} +1 -1
- package/dist/chunks/{multiline-text-input-Bg-IYvjs.cjs.js → multiline-text-input-DOZi-hXb.cjs.js} +2 -2
- package/dist/chunks/{multiline-text-input-Bg-IYvjs.cjs.js.map → multiline-text-input-DOZi-hXb.cjs.js.map} +1 -1
- package/dist/chunks/{multiline-text-input-field-vHwcYVrc.cjs.js → multiline-text-input-field-Biyu5soS.cjs.js} +2 -2
- package/dist/chunks/{multiline-text-input-field-vHwcYVrc.cjs.js.map → multiline-text-input-field-Biyu5soS.cjs.js.map} +1 -1
- package/dist/chunks/{multiline-text-input-field-z3fcg1SN.es.js → multiline-text-input-field-DYfT9pzO.es.js} +3 -3
- package/dist/chunks/{multiline-text-input-field-z3fcg1SN.es.js.map → multiline-text-input-field-DYfT9pzO.es.js.map} +1 -1
- package/dist/chunks/{nimbus-provider-Cx8MjMS6.cjs.js → nimbus-provider-BBTo9R4P.cjs.js} +2 -2
- package/dist/chunks/{nimbus-provider-Cx8MjMS6.cjs.js.map → nimbus-provider-BBTo9R4P.cjs.js.map} +1 -1
- package/dist/chunks/{nimbus-provider-CgqsobhH.es.js → nimbus-provider-Ct3e0KGB.es.js} +9 -9
- package/dist/chunks/{nimbus-provider-CgqsobhH.es.js.map → nimbus-provider-Ct3e0KGB.es.js.map} +1 -1
- package/dist/chunks/{number-input-DP-OVZI2.es.js → number-input-C7007r95.es.js} +8 -8
- package/dist/chunks/{number-input-DP-OVZI2.es.js.map → number-input-C7007r95.es.js.map} +1 -1
- package/dist/chunks/{number-input-B6wg3RZV.cjs.js → number-input-eaqJq1-5.cjs.js} +2 -2
- package/dist/chunks/{number-input-B6wg3RZV.cjs.js.map → number-input-eaqJq1-5.cjs.js.map} +1 -1
- package/dist/chunks/{number-input-field-xM-TUlKb.cjs.js → number-input-field-DVqoH0p-.cjs.js} +2 -2
- package/dist/chunks/{number-input-field-xM-TUlKb.cjs.js.map → number-input-field-DVqoH0p-.cjs.js.map} +1 -1
- package/dist/chunks/{number-input-field-CrNsadIg.es.js → number-input-field-Dh5FDth2.es.js} +3 -3
- package/dist/chunks/{number-input-field-CrNsadIg.es.js.map → number-input-field-Dh5FDth2.es.js.map} +1 -1
- package/dist/chunks/{pagination-C95pC4Nv.cjs.js → pagination-DiltG6WS.cjs.js} +2 -2
- package/dist/chunks/pagination-DiltG6WS.cjs.js.map +1 -0
- package/dist/chunks/{pagination-Ckqf7naU.es.js → pagination-Z8tzRviC.es.js} +4 -4
- package/dist/chunks/pagination-Z8tzRviC.es.js.map +1 -0
- package/dist/chunks/{password-input-Ce1_zTrV.cjs.js → password-input-CUmZJUPL.cjs.js} +2 -2
- package/dist/chunks/{password-input-Ce1_zTrV.cjs.js.map → password-input-CUmZJUPL.cjs.js.map} +1 -1
- package/dist/chunks/{password-input-B7FJ9Ldf.es.js → password-input-D8ptasUp.es.js} +4 -4
- package/dist/chunks/{password-input-B7FJ9Ldf.es.js.map → password-input-D8ptasUp.es.js.map} +1 -1
- package/dist/chunks/{password-input-field-C0yxb6e0.cjs.js → password-input-field-DSjVMRCP.cjs.js} +2 -2
- package/dist/chunks/{password-input-field-C0yxb6e0.cjs.js.map → password-input-field-DSjVMRCP.cjs.js.map} +1 -1
- package/dist/chunks/{password-input-field-DK9Ojw81.es.js → password-input-field-DWs71XOF.es.js} +3 -3
- package/dist/chunks/{password-input-field-DK9Ojw81.es.js.map → password-input-field-DWs71XOF.es.js.map} +1 -1
- package/dist/chunks/{popover-BBxctRr2.es.js → popover-CRwL6ieG.es.js} +2 -2
- package/dist/chunks/{popover-BBxctRr2.es.js.map → popover-CRwL6ieG.es.js.map} +1 -1
- package/dist/chunks/{progress-bar-KC5B4kbq.cjs.js → progress-bar-6w36JcxG.cjs.js} +2 -2
- package/dist/chunks/{progress-bar-KC5B4kbq.cjs.js.map → progress-bar-6w36JcxG.cjs.js.map} +1 -1
- package/dist/chunks/{progress-bar-D1aXIOQm.es.js → progress-bar-B57j7ETd.es.js} +2 -2
- package/dist/chunks/{progress-bar-D1aXIOQm.es.js.map → progress-bar-B57j7ETd.es.js.map} +1 -1
- package/dist/chunks/{radio-input-4j5fR8Sw.es.js → radio-input-DOuElAn1.es.js} +8 -8
- package/dist/chunks/{radio-input-4j5fR8Sw.es.js.map → radio-input-DOuElAn1.es.js.map} +1 -1
- package/dist/chunks/{radio-input-DNNcbOA1.cjs.js → radio-input-s7Vn3eqD.cjs.js} +2 -2
- package/dist/chunks/{radio-input-DNNcbOA1.cjs.js.map → radio-input-s7Vn3eqD.cjs.js.map} +1 -1
- package/dist/chunks/{range-calendar-C1irWg1b.cjs.js → range-calendar-C_xSoqge.cjs.js} +2 -2
- package/dist/chunks/{range-calendar-C1irWg1b.cjs.js.map → range-calendar-C_xSoqge.cjs.js.map} +1 -1
- package/dist/chunks/{range-calendar-BFVhbf7m.es.js → range-calendar-DklNm37M.es.js} +6 -6
- package/dist/chunks/{range-calendar-BFVhbf7m.es.js.map → range-calendar-DklNm37M.es.js.map} +1 -1
- package/dist/chunks/{rich-text-input-BMkdKO7t.es.js → rich-text-input-BDCm78yF.es.js} +11 -11
- package/dist/chunks/{rich-text-input-BMkdKO7t.es.js.map → rich-text-input-BDCm78yF.es.js.map} +1 -1
- package/dist/chunks/{rich-text-input-DCIpwH0R.cjs.js → rich-text-input-DA2GWw4Z.cjs.js} +2 -2
- package/dist/chunks/{rich-text-input-DCIpwH0R.cjs.js.map → rich-text-input-DA2GWw4Z.cjs.js.map} +1 -1
- package/dist/chunks/{scoped-search-input-CTrxup69.cjs.js → scoped-search-input-B-2Q4e_S.cjs.js} +2 -2
- package/dist/chunks/{scoped-search-input-CTrxup69.cjs.js.map → scoped-search-input-B-2Q4e_S.cjs.js.map} +1 -1
- package/dist/chunks/{scoped-search-input-DN0vmuYg.es.js → scoped-search-input-C5I8Q-Rw.es.js} +5 -5
- package/dist/chunks/{scoped-search-input-DN0vmuYg.es.js.map → scoped-search-input-C5I8Q-Rw.es.js.map} +1 -1
- package/dist/chunks/{search-input-CrvckaAj.es.js → search-input-DW8rHoL6.es.js} +8 -8
- package/dist/chunks/{search-input-CrvckaAj.es.js.map → search-input-DW8rHoL6.es.js.map} +1 -1
- package/dist/chunks/{search-input-CxqdrNyB.cjs.js → search-input-c2zuWAmw.cjs.js} +2 -2
- package/dist/chunks/{search-input-CxqdrNyB.cjs.js.map → search-input-c2zuWAmw.cjs.js.map} +1 -1
- package/dist/chunks/{search-input-field-Bjbtd2Q1.cjs.js → search-input-field-CKt5P2fW.cjs.js} +2 -2
- package/dist/chunks/{search-input-field-Bjbtd2Q1.cjs.js.map → search-input-field-CKt5P2fW.cjs.js.map} +1 -1
- package/dist/chunks/{search-input-field-DotWDBPo.es.js → search-input-field-Cbe1ViMR.es.js} +3 -3
- package/dist/chunks/{search-input-field-DotWDBPo.es.js.map → search-input-field-Cbe1ViMR.es.js.map} +1 -1
- package/dist/chunks/{select-Cg88ALta.cjs.js → select-CDzgGzlu.cjs.js} +2 -2
- package/dist/chunks/{select-Cg88ALta.cjs.js.map → select-CDzgGzlu.cjs.js.map} +1 -1
- package/dist/chunks/{select-DzHkNbNO.es.js → select-Cd_w-w3c.es.js} +15 -15
- package/dist/chunks/{select-DzHkNbNO.es.js.map → select-Cd_w-w3c.es.js.map} +1 -1
- package/dist/chunks/{separator-CX6ime34.es.js → separator-BpUozUZ9.es.js} +4 -4
- package/dist/chunks/{separator-CX6ime34.es.js.map → separator-BpUozUZ9.es.js.map} +1 -1
- package/dist/chunks/{separator-BbC96leb.cjs.js → separator-hX0giW7F.cjs.js} +2 -2
- package/dist/chunks/{separator-BbC96leb.cjs.js.map → separator-hX0giW7F.cjs.js.map} +1 -1
- package/dist/chunks/{split-button-BtRQHBQO.es.js → split-button-BlXn1zig.es.js} +4 -4
- package/dist/chunks/{split-button-BtRQHBQO.es.js.map → split-button-BlXn1zig.es.js.map} +1 -1
- package/dist/chunks/{split-button-C1IoV6IJ.cjs.js → split-button-p2WBvGiG.cjs.js} +2 -2
- package/dist/chunks/{split-button-C1IoV6IJ.cjs.js.map → split-button-p2WBvGiG.cjs.js.map} +1 -1
- package/dist/chunks/{steps-CKxY0-Pt.es.js → steps-B07EtWhk.es.js} +2 -2
- package/dist/chunks/{steps-CKxY0-Pt.es.js.map → steps-B07EtWhk.es.js.map} +1 -1
- package/dist/chunks/{steps-WZE66Acc.cjs.js → steps-BmzCm-36.cjs.js} +2 -2
- package/dist/chunks/{steps-WZE66Acc.cjs.js.map → steps-BmzCm-36.cjs.js.map} +1 -1
- package/dist/chunks/{switch-Cka76JRB.cjs.js → switch-CHgcSQ7q.cjs.js} +2 -2
- package/dist/chunks/{switch-Cka76JRB.cjs.js.map → switch-CHgcSQ7q.cjs.js.map} +1 -1
- package/dist/chunks/{switch-wtPNc7un.es.js → switch-CStZ99EX.es.js} +6 -6
- package/dist/chunks/{switch-wtPNc7un.es.js.map → switch-CStZ99EX.es.js.map} +1 -1
- package/dist/chunks/{tab-nav-D6KyQebA.es.js → tab-nav-Bz8GBurR.es.js} +3 -3
- package/dist/chunks/{tab-nav-D6KyQebA.es.js.map → tab-nav-Bz8GBurR.es.js.map} +1 -1
- package/dist/chunks/{table-R4JyeVp2.es.js → table-CUNN3TBI.es.js} +2 -2
- package/dist/chunks/{table-R4JyeVp2.es.js.map → table-CUNN3TBI.es.js.map} +1 -1
- package/dist/chunks/{table-Dyxl5zlP.cjs.js → table-jUvZ_o07.cjs.js} +2 -2
- package/dist/chunks/{table-Dyxl5zlP.cjs.js.map → table-jUvZ_o07.cjs.js.map} +1 -1
- package/dist/chunks/{tabs-o6hCf9Mt.es.js → tabs-BuYHA8KE.es.js} +9 -9
- package/dist/chunks/{tabs-o6hCf9Mt.es.js.map → tabs-BuYHA8KE.es.js.map} +1 -1
- package/dist/chunks/{tabs-wIeLZz5O.cjs.js → tabs-CvAZzZ9K.cjs.js} +2 -2
- package/dist/chunks/{tabs-wIeLZz5O.cjs.js.map → tabs-CvAZzZ9K.cjs.js.map} +1 -1
- package/dist/chunks/{tag-group-D8hKdjB9.es.js → tag-group-Ckow1PYY.es.js} +37 -43
- package/dist/chunks/{tag-group-D8hKdjB9.es.js.map → tag-group-Ckow1PYY.es.js.map} +1 -1
- package/dist/chunks/{tag-group-DbvU1O6E.cjs.js → tag-group-CwRzOTkl.cjs.js} +2 -2
- package/dist/chunks/{tag-group-DbvU1O6E.cjs.js.map → tag-group-CwRzOTkl.cjs.js.map} +1 -1
- package/dist/chunks/{text-input-B5ZUhPwE.es.js → text-input-CXWRNuLo.es.js} +5 -5
- package/dist/chunks/{text-input-B5ZUhPwE.es.js.map → text-input-CXWRNuLo.es.js.map} +1 -1
- package/dist/chunks/{text-input-Bu83lbHX.cjs.js → text-input-DWuEIlWt.cjs.js} +2 -2
- package/dist/chunks/{text-input-Bu83lbHX.cjs.js.map → text-input-DWuEIlWt.cjs.js.map} +1 -1
- package/dist/chunks/{text-input-field-CklMF7YY.es.js → text-input-field-BpR1i2C7.es.js} +3 -3
- package/dist/chunks/{text-input-field-CklMF7YY.es.js.map → text-input-field-BpR1i2C7.es.js.map} +1 -1
- package/dist/chunks/{text-input-field-2kTe0yOk.cjs.js → text-input-field-dVzAZAez.cjs.js} +2 -2
- package/dist/chunks/{text-input-field-2kTe0yOk.cjs.js.map → text-input-field-dVzAZAez.cjs.js.map} +1 -1
- package/dist/chunks/{time-input-CrVLaoA0.cjs.js → time-input-DFEmB8Dd.cjs.js} +2 -2
- package/dist/chunks/{time-input-CrVLaoA0.cjs.js.map → time-input-DFEmB8Dd.cjs.js.map} +1 -1
- package/dist/chunks/{time-input-DVHH_t4-.es.js → time-input-ZJNuKt9i.es.js} +4 -4
- package/dist/chunks/{time-input-DVHH_t4-.es.js.map → time-input-ZJNuKt9i.es.js.map} +1 -1
- package/dist/chunks/toast.manager-BNtzzS8_.es.js +166 -0
- package/dist/chunks/toast.manager-BNtzzS8_.es.js.map +1 -0
- package/dist/chunks/toast.manager-x7tNU0Ih.cjs.js +2 -0
- package/dist/chunks/toast.manager-x7tNU0Ih.cjs.js.map +1 -0
- package/dist/chunks/{toast.outlet-lUNd7uT5.cjs.js → toast.outlet-BfRwM71B.cjs.js} +2 -2
- package/dist/chunks/{toast.outlet-lUNd7uT5.cjs.js.map → toast.outlet-BfRwM71B.cjs.js.map} +1 -1
- package/dist/chunks/{toast.outlet-DJcmd-Lx.es.js → toast.outlet-Cs9C243e.es.js} +3 -3
- package/dist/chunks/{toast.outlet-DJcmd-Lx.es.js.map → toast.outlet-Cs9C243e.es.js.map} +1 -1
- package/dist/chunks/{toggle-button-CoWhHGMF.cjs.js → toggle-button-C3ogfkeP.cjs.js} +2 -2
- package/dist/chunks/{toggle-button-CoWhHGMF.cjs.js.map → toggle-button-C3ogfkeP.cjs.js.map} +1 -1
- package/dist/chunks/{toggle-button-4sok_obo.es.js → toggle-button-Db4QN7G8.es.js} +4 -4
- package/dist/chunks/{toggle-button-4sok_obo.es.js.map → toggle-button-Db4QN7G8.es.js.map} +1 -1
- package/dist/chunks/{toggle-button-group-70GS2Oxw.es.js → toggle-button-group-KPOZMpau.es.js} +2 -2
- package/dist/chunks/{toggle-button-group-70GS2Oxw.es.js.map → toggle-button-group-KPOZMpau.es.js.map} +1 -1
- package/dist/chunks/{toolbar-CFdj7voU.cjs.js → toolbar-BNQ91K5F.cjs.js} +2 -2
- package/dist/chunks/{toolbar-CFdj7voU.cjs.js.map → toolbar-BNQ91K5F.cjs.js.map} +1 -1
- package/dist/chunks/{toolbar-BbbyUoeE.es.js → toolbar-C7_awmEu.es.js} +4 -4
- package/dist/chunks/{toolbar-BbbyUoeE.es.js.map → toolbar-C7_awmEu.es.js.map} +1 -1
- package/dist/chunks/{tooltip-Bx5ngdcy.es.js → tooltip-BCSTJUeB.es.js} +4 -4
- package/dist/chunks/{tooltip-Bx5ngdcy.es.js.map → tooltip-BCSTJUeB.es.js.map} +1 -1
- package/dist/chunks/use-inline-svg-BwpEJ6Fo.es.js +661 -0
- package/dist/chunks/use-inline-svg-BwpEJ6Fo.es.js.map +1 -0
- package/dist/chunks/use-inline-svg-C_9d8SVe.cjs.js +3 -0
- package/dist/chunks/use-inline-svg-C_9d8SVe.cjs.js.map +1 -0
- package/dist/chunks/{useButton-Bn8_4cDG.es.js → useButton-CvZJwQeR.es.js} +3 -3
- package/dist/chunks/{useButton-Bn8_4cDG.es.js.map → useButton-CvZJwQeR.es.js.map} +1 -1
- package/dist/chunks/{useCollection-BHV9RL7c.es.js → useCollection-RgQhRQUv.es.js} +11 -11
- package/dist/chunks/{useCollection-BHV9RL7c.es.js.map → useCollection-RgQhRQUv.es.js.map} +1 -1
- package/dist/chunks/{useDescription-Cs3XF2eh.es.js → useDescription-CUA6cnWB.es.js} +3 -3
- package/dist/chunks/{useDescription-Cs3XF2eh.es.js.map → useDescription-CUA6cnWB.es.js.map} +1 -1
- package/dist/chunks/{useFocusRing-2PACod61.es.js → useFocusRing-BjLV7S0I.es.js} +2 -2
- package/dist/chunks/{useFocusRing-2PACod61.es.js.map → useFocusRing-BjLV7S0I.es.js.map} +1 -1
- package/dist/chunks/{useFocusVisible-DZMx0daa.es.js → useFocusVisible-DqC5JNzb.es.js} +3 -3
- package/dist/chunks/{useFocusVisible-DZMx0daa.es.js.map → useFocusVisible-DqC5JNzb.es.js.map} +1 -1
- package/dist/chunks/{useFocusable-Cd_G32KV.es.js → useFocusable-C_nr2Krq.es.js} +2 -2
- package/dist/chunks/{useFocusable-Cd_G32KV.es.js.map → useFocusable-C_nr2Krq.es.js.map} +1 -1
- package/dist/chunks/{useFormValidation-B4BrOn-T.es.js → useFormValidation-D9CgPyCr.es.js} +2 -2
- package/dist/chunks/{useFormValidation-B4BrOn-T.es.js.map → useFormValidation-D9CgPyCr.es.js.map} +1 -1
- package/dist/chunks/{useGridListItem-DK2Qg6fD.es.js → useGridListItem-nKFYPkff.es.js} +9 -9
- package/dist/chunks/{useGridListItem-DK2Qg6fD.es.js.map → useGridListItem-nKFYPkff.es.js.map} +1 -1
- package/dist/chunks/{useHasTabbableChild-CwNEZI_G.es.js → useHasTabbableChild-Dbdf_KS-.es.js} +2 -2
- package/dist/chunks/{useHasTabbableChild-CwNEZI_G.es.js.map → useHasTabbableChild-Dbdf_KS-.es.js.map} +1 -1
- package/dist/chunks/{useLink-CozRsmDk.es.js → useLink-DSvTeBUk.es.js} +4 -4
- package/dist/chunks/{useLink-CozRsmDk.es.js.map → useLink-DSvTeBUk.es.js.map} +1 -1
- package/dist/chunks/{useListState-CCuYEVMA.es.js → useListState-ChE2yd3D.es.js} +4 -4
- package/dist/chunks/{useListState-CCuYEVMA.es.js.map → useListState-ChE2yd3D.es.js.map} +1 -1
- package/dist/chunks/{useOverlayTriggerState-BIEvXItV.es.js → useOverlayTriggerState-D7I9elYW.es.js} +2 -2
- package/dist/chunks/{useOverlayTriggerState-BIEvXItV.es.js.map → useOverlayTriggerState-D7I9elYW.es.js.map} +1 -1
- package/dist/chunks/{usePress-j9tEDUF8.es.js → usePress-Br1wieoZ.es.js} +3 -3
- package/dist/chunks/{usePress-j9tEDUF8.es.js.map → usePress-Br1wieoZ.es.js.map} +1 -1
- package/dist/chunks/{useTextField-DcRDkg3E.es.js → useTextField-CZhjyvc5.es.js} +3 -3
- package/dist/chunks/{useTextField-DcRDkg3E.es.js.map → useTextField-CZhjyvc5.es.js.map} +1 -1
- package/dist/chunks/{useToggle-CaC4NvDB.es.js → useToggle-BPDsTx1-.es.js} +3 -3
- package/dist/chunks/{useToggle-CaC4NvDB.es.js.map → useToggle-BPDsTx1-.es.js.map} +1 -1
- package/dist/chunks/{useToolbar-CTHfREg3.es.js → useToolbar-BUiUE_wW.es.js} +2 -2
- package/dist/chunks/{useToolbar-CTHfREg3.es.js.map → useToolbar-BUiUE_wW.es.js.map} +1 -1
- package/dist/components/accordion/accordion.slots.d.ts +5 -5
- package/dist/components/accordion.cjs +1 -1
- package/dist/components/accordion.es.js +2 -2
- package/dist/components/actions.cjs +2 -0
- package/dist/components/actions.cjs.map +1 -0
- package/dist/components/actions.es.js +5 -0
- package/dist/components/actions.es.js.map +1 -0
- package/dist/components/alert/alert.slots.d.ts +3 -3
- package/dist/components/alert.cjs +1 -1
- package/dist/components/alert.es.js +1 -1
- package/dist/components/avatar/avatar.d.ts +8 -1
- package/dist/components/avatar/avatar.i18n.d.ts +5 -0
- package/dist/components/avatar/avatar.messages.d.ts +1 -1
- package/dist/components/avatar/avatar.slots.d.ts +1 -1
- package/dist/components/avatar/avatar.types.d.ts +10 -4
- package/dist/components/avatar/intl/de.d.ts +1 -0
- package/dist/components/avatar/intl/en.d.ts +1 -0
- package/dist/components/avatar/intl/es.d.ts +1 -0
- package/dist/components/avatar/intl/fr-FR.d.ts +1 -0
- package/dist/components/avatar/intl/pt-BR.d.ts +1 -0
- package/dist/components/avatar/utils/get-full-name.d.ts +6 -0
- package/dist/components/avatar/utils/get-initials.d.ts +11 -0
- package/dist/components/avatar/utils/index.d.ts +2 -0
- package/dist/components/avatar.cjs +1 -1
- package/dist/components/avatar.es.js +1 -1
- package/dist/components/badge/badge.slots.d.ts +1 -1
- package/dist/components/button.cjs +1 -1
- package/dist/components/button.es.js +1 -1
- package/dist/components/calendar/calendar.slots.d.ts +8 -8
- package/dist/components/calendar.cjs +1 -1
- package/dist/components/calendar.es.js +1 -1
- package/dist/components/card/card.d.ts +38 -19
- package/dist/components/card/card.recipe.d.ts +39 -14
- package/dist/components/card/card.slots.d.ts +3 -2
- package/dist/components/card/card.types.d.ts +15 -10
- package/dist/components/card/components/card.body.d.ts +10 -0
- package/dist/components/card/components/card.footer.d.ts +10 -0
- package/dist/components/card/components/card.header.d.ts +1 -1
- package/dist/components/card/components/card.root.d.ts +7 -7
- package/dist/components/card/components/index.d.ts +2 -1
- package/dist/components/card.cjs +1 -1
- package/dist/components/card.es.js +5 -4
- package/dist/components/checkbox.cjs +1 -1
- package/dist/components/checkbox.es.js +1 -1
- package/dist/components/collapsible-motion/collapsible-motion.slots.d.ts +2 -2
- package/dist/components/collapsible-motion.cjs +1 -1
- package/dist/components/collapsible-motion.es.js +1 -1
- package/dist/components/combobox/combobox.slots.d.ts +12 -12
- package/dist/components/combobox.cjs +1 -1
- package/dist/components/combobox.es.js +1 -1
- package/dist/components/components.cjs +1 -1
- package/dist/components/components.es.js +1 -1
- package/dist/components/data-table/components/data-table.context.d.ts +15 -1
- package/dist/components/data-table/components/data-table.row.d.ts +11 -3
- package/dist/components/data-table/data-table.slots.d.ts +11 -11
- package/dist/components/data-table/data-table.types.d.ts +7 -0
- package/dist/components/data-table.cjs +1 -1
- package/dist/components/data-table.es.js +1 -1
- package/dist/components/date-input/date-input.slots.d.ts +5 -5
- package/dist/components/date-input.cjs +1 -1
- package/dist/components/date-input.es.js +1 -1
- package/dist/components/date-picker/date-picker.slots.d.ts +6 -6
- package/dist/components/date-picker.cjs +1 -1
- package/dist/components/date-picker.es.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.slots.d.ts +8 -8
- package/dist/components/date-range-picker-field.cjs +1 -1
- package/dist/components/date-range-picker-field.es.js +1 -1
- package/dist/components/date-range-picker.cjs +1 -1
- package/dist/components/date-range-picker.es.js +1 -1
- package/dist/components/default-page.cjs +1 -1
- package/dist/components/default-page.es.js +1 -1
- package/dist/components/dialog/dialog.slots.d.ts +9 -9
- package/dist/components/dialog.cjs +1 -1
- package/dist/components/dialog.es.js +1 -1
- package/dist/components/dialogs.cjs +2 -0
- package/dist/components/dialogs.cjs.map +1 -0
- package/dist/components/dialogs.es.js +5 -0
- package/dist/components/dialogs.es.js.map +1 -0
- package/dist/components/draggable-list/draggable-list.slots.d.ts +4 -4
- package/dist/components/draggable-list.cjs +1 -1
- package/dist/components/draggable-list.es.js +1 -1
- package/dist/components/drawer/drawer.slots.d.ts +10 -10
- package/dist/components/drawer.cjs +1 -1
- package/dist/components/drawer.es.js +1 -1
- package/dist/components/fields.cjs +1 -1
- package/dist/components/fields.es.js +7 -7
- package/dist/components/form-action-bar.cjs +2 -0
- package/dist/components/form-action-bar.cjs.map +1 -0
- package/dist/components/form-action-bar.es.js +5 -0
- package/dist/components/form-action-bar.es.js.map +1 -0
- package/dist/components/form-field/form-field.slots.d.ts +2 -2
- package/dist/components/form-field.cjs +1 -1
- package/dist/components/form-field.es.js +1 -1
- package/dist/components/group.es.js +1 -1
- package/dist/components/hooks.cjs +1 -1
- package/dist/components/hooks.es.js +1 -1
- package/dist/components/icon-button.cjs +1 -1
- package/dist/components/icon-button.es.js +1 -1
- package/dist/components/icon-toggle-button.cjs +1 -1
- package/dist/components/icon-toggle-button.es.js +1 -1
- package/dist/components/info-dialog.cjs +2 -0
- package/dist/components/info-dialog.cjs.map +1 -0
- package/dist/components/info-dialog.es.js +5 -0
- package/dist/components/info-dialog.es.js.map +1 -0
- package/dist/components/inline-svg/inline-svg.slots.d.ts +1 -1
- package/dist/components/inline-svg.cjs +1 -1
- package/dist/components/inline-svg.es.js +1 -1
- package/dist/components/link/link.slots.d.ts +1 -1
- package/dist/components/link.es.js +1 -1
- package/dist/components/list.cjs +1 -1
- package/dist/components/list.es.js +1 -1
- package/dist/components/localized-field/localized-field.slots.d.ts +10 -10
- package/dist/components/localized-field.cjs +1 -1
- package/dist/components/localized-field.es.js +1 -1
- package/dist/components/modal-page.cjs +1 -1
- package/dist/components/modal-page.es.js +1 -1
- package/dist/components/money-input/money-input.slots.d.ts +6 -6
- package/dist/components/money-input-field.cjs +1 -1
- package/dist/components/money-input-field.es.js +1 -1
- package/dist/components/money-input.cjs +1 -1
- package/dist/components/money-input.es.js +1 -1
- package/dist/components/multiline-text-input/multiline-text-input.slots.d.ts +3 -3
- package/dist/components/multiline-text-input-field.cjs +1 -1
- package/dist/components/multiline-text-input-field.es.js +1 -1
- package/dist/components/multiline-text-input.cjs +1 -1
- package/dist/components/multiline-text-input.es.js +1 -1
- package/dist/components/nimbus-provider.cjs +1 -1
- package/dist/components/nimbus-provider.es.js +1 -1
- package/dist/components/number-input/number-input.slots.d.ts +6 -6
- package/dist/components/number-input-field.cjs +1 -1
- package/dist/components/number-input-field.es.js +1 -1
- package/dist/components/number-input.cjs +1 -1
- package/dist/components/number-input.es.js +1 -1
- package/dist/components/pagination/pagination.messages.d.ts +1 -1
- package/dist/components/pagination.cjs +1 -1
- package/dist/components/pagination.es.js +1 -1
- package/dist/components/password-input-field.cjs +1 -1
- package/dist/components/password-input-field.es.js +1 -1
- package/dist/components/password-input.cjs +1 -1
- package/dist/components/password-input.es.js +1 -1
- package/dist/components/patterns.cjs +1 -1
- package/dist/components/patterns.es.js +18 -14
- package/dist/components/patterns.es.js.map +1 -1
- package/dist/components/popover.es.js +1 -1
- package/dist/components/progress-bar/progress-bar.slots.d.ts +4 -4
- package/dist/components/progress-bar.cjs +1 -1
- package/dist/components/progress-bar.es.js +1 -1
- package/dist/components/radio-input/radio-input.slots.d.ts +2 -2
- package/dist/components/radio-input.cjs +1 -1
- package/dist/components/radio-input.es.js +1 -1
- package/dist/components/range-calendar/range-calendar.slots.d.ts +8 -8
- package/dist/components/range-calendar.cjs +1 -1
- package/dist/components/range-calendar.es.js +1 -1
- package/dist/components/rich-text-input/rich-text-input.slots.d.ts +2 -2
- package/dist/components/rich-text-input.cjs +1 -1
- package/dist/components/rich-text-input.es.js +1 -1
- package/dist/components/scoped-search-input.cjs +1 -1
- package/dist/components/scoped-search-input.es.js +1 -1
- package/dist/components/scroll-area/scroll-area.types.d.ts +18 -6
- package/dist/components/scroll-area.cjs +1 -1
- package/dist/components/scroll-area.es.js +1 -1
- package/dist/components/search-input-field.cjs +1 -1
- package/dist/components/search-input-field.es.js +1 -1
- package/dist/components/search-input.cjs +1 -1
- package/dist/components/search-input.es.js +1 -1
- package/dist/components/select/select.slots.d.ts +7 -7
- package/dist/components/select.cjs +1 -1
- package/dist/components/select.es.js +1 -1
- package/dist/components/separator.cjs +1 -1
- package/dist/components/separator.es.js +1 -1
- package/dist/components/services.cjs +1 -1
- package/dist/components/services.es.js +1 -1
- package/dist/components/split-button/split-button.slots.d.ts +3 -3
- package/dist/components/split-button.cjs +1 -1
- package/dist/components/split-button.es.js +1 -1
- package/dist/components/steps/steps.slots.d.ts +12 -12
- package/dist/components/steps.cjs +1 -1
- package/dist/components/steps.es.js +1 -1
- package/dist/components/switch/switch.slots.d.ts +3 -3
- package/dist/components/switch.cjs +1 -1
- package/dist/components/switch.es.js +1 -1
- package/dist/components/tab-nav.es.js +1 -1
- package/dist/components/table.cjs +1 -1
- package/dist/components/table.es.js +1 -1
- package/dist/components/tabs.cjs +1 -1
- package/dist/components/tabs.es.js +1 -1
- package/dist/components/tag-group.cjs +1 -1
- package/dist/components/tag-group.es.js +1 -1
- package/dist/components/text-input-field.cjs +1 -1
- package/dist/components/text-input-field.es.js +1 -1
- package/dist/components/text-input.cjs +1 -1
- package/dist/components/text-input.es.js +1 -1
- package/dist/components/time-input/time-input.slots.d.ts +5 -5
- package/dist/components/time-input.cjs +1 -1
- package/dist/components/time-input.es.js +1 -1
- package/dist/components/toast/toast.types.d.ts +0 -2
- package/dist/components/toast.cjs +1 -1
- package/dist/components/toast.es.js +2 -2
- package/dist/components/toggle-button-group.es.js +1 -1
- package/dist/components/toggle-button.cjs +1 -1
- package/dist/components/toggle-button.es.js +1 -1
- package/dist/components/toolbar.cjs +1 -1
- package/dist/components/toolbar.es.js +1 -1
- package/dist/components/tooltip.es.js +2 -2
- package/dist/components/utils.cjs +1 -2
- package/dist/components/utils.cjs.map +1 -1
- package/dist/components/utils.es.js +7 -580
- package/dist/components/utils.es.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +514 -490
- package/dist/index.es.js.map +1 -1
- package/dist/patterns/actions/form-action-bar/form-action-bar.d.ts +24 -0
- package/dist/patterns/actions/form-action-bar/form-action-bar.i18n.d.ts +22 -0
- package/dist/patterns/actions/form-action-bar/form-action-bar.messages.d.ts +6 -0
- package/dist/patterns/actions/form-action-bar/form-action-bar.types.d.ts +80 -0
- package/dist/patterns/actions/form-action-bar/index.d.ts +2 -0
- package/dist/patterns/actions/form-action-bar/intl/de.d.ts +12 -0
- package/dist/patterns/actions/form-action-bar/intl/en.d.ts +12 -0
- package/dist/patterns/actions/form-action-bar/intl/es.d.ts +12 -0
- package/dist/patterns/actions/form-action-bar/intl/fr-FR.d.ts +12 -0
- package/dist/patterns/actions/form-action-bar/intl/pt-BR.d.ts +12 -0
- package/dist/patterns/actions/index.d.ts +1 -0
- package/dist/patterns/dialogs/index.d.ts +1 -0
- package/dist/patterns/dialogs/info-dialog/index.d.ts +2 -0
- package/dist/patterns/dialogs/info-dialog/info-dialog.d.ts +29 -0
- package/dist/patterns/dialogs/info-dialog/info-dialog.types.d.ts +65 -0
- package/dist/patterns/index.d.ts +2 -0
- package/dist/theme/slot-recipes/index.d.ts +39 -14
- package/package.json +24 -23
- package/dist/chunks/avatar-BZVVE8-z.cjs.js +0 -2
- package/dist/chunks/avatar-BZVVE8-z.cjs.js.map +0 -1
- package/dist/chunks/avatar-g0-w5BFv.es.js +0 -58
- package/dist/chunks/avatar-g0-w5BFv.es.js.map +0 -1
- package/dist/chunks/card-9_RuK9Zz.cjs.js +0 -2
- package/dist/chunks/card-9_RuK9Zz.cjs.js.map +0 -1
- package/dist/chunks/card-uXOOkYyy.es.js +0 -114
- package/dist/chunks/card-uXOOkYyy.es.js.map +0 -1
- package/dist/chunks/combobox-D57Kz3Nc.es.js +0 -1549
- package/dist/chunks/combobox-D57Kz3Nc.es.js.map +0 -1
- package/dist/chunks/combobox-DI91M7UN.cjs.js +0 -2
- package/dist/chunks/combobox-DI91M7UN.cjs.js.map +0 -1
- package/dist/chunks/data-table-DCpNE2Zx.cjs.js +0 -2
- package/dist/chunks/default-page-CRVgInf7.cjs.js +0 -2
- package/dist/chunks/default-page-CRVgInf7.cjs.js.map +0 -1
- package/dist/chunks/default-page-CkacXcz2.es.js.map +0 -1
- package/dist/chunks/dialog-CdRhZEAb.cjs.js +0 -2
- package/dist/chunks/dialog-CdRhZEAb.cjs.js.map +0 -1
- package/dist/chunks/dialog-yIDnbE41.es.js.map +0 -1
- package/dist/chunks/extract-padding-props-Cbwb9nEt.es.js +0 -71
- package/dist/chunks/extract-padding-props-Cbwb9nEt.es.js.map +0 -1
- package/dist/chunks/extract-padding-props-Ci-QKY45.cjs.js +0 -2
- package/dist/chunks/extract-padding-props-Ci-QKY45.cjs.js.map +0 -1
- package/dist/chunks/index-CTrsTsK6.es.js.map +0 -1
- package/dist/chunks/index-CiXhDFpN.cjs.js +0 -34
- package/dist/chunks/index-CiXhDFpN.cjs.js.map +0 -1
- package/dist/chunks/modal-page-7Mp-9hq7.es.js.map +0 -1
- package/dist/chunks/modal-page-hqz13F_k.cjs.js +0 -2
- package/dist/chunks/pagination-C95pC4Nv.cjs.js.map +0 -1
- package/dist/chunks/pagination-Ckqf7naU.es.js.map +0 -1
- package/dist/chunks/toast.manager-C-xQVs3Q.cjs.js +0 -2
- package/dist/chunks/toast.manager-C-xQVs3Q.cjs.js.map +0 -1
- package/dist/chunks/toast.manager-Dj0xhoar.es.js +0 -173
- package/dist/chunks/toast.manager-Dj0xhoar.es.js.map +0 -1
- package/dist/chunks/use-inline-svg-BRhR4qWr.cjs.js +0 -2
- package/dist/chunks/use-inline-svg-BRhR4qWr.cjs.js.map +0 -1
- package/dist/chunks/use-inline-svg-D-aaBVBt.es.js +0 -47
- package/dist/chunks/use-inline-svg-D-aaBVBt.es.js.map +0 -1
- package/dist/components/card/components/card.content.d.ts +0 -10
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal-page-7Mp-9hq7.es.js","sources":["../../src/components/modal-page/modal-page.slots.tsx","../../src/components/modal-page/components/modal-page.root.tsx","../../src/components/modal-page/intl/en.ts","../../src/components/modal-page/intl/de.ts","../../src/components/modal-page/intl/es.ts","../../src/components/modal-page/intl/fr-FR.ts","../../src/components/modal-page/intl/pt-BR.ts","../../src/components/modal-page/modal-page.messages.ts","../../src/components/modal-page/components/modal-page.top-bar.tsx","../../src/components/modal-page/components/modal-page.header.tsx","../../src/components/modal-page/components/modal-page.title.tsx","../../src/components/modal-page/components/modal-page.subtitle.tsx","../../src/components/modal-page/components/modal-page.actions.tsx","../../src/components/modal-page/components/modal-page.tab-nav.tsx","../../src/components/modal-page/components/modal-page.content.tsx","../../src/components/modal-page/components/modal-page.footer.tsx","../../src/components/modal-page/modal-page.tsx"],"sourcesContent":["import { createSlotRecipeContext } from \"@chakra-ui/react/styled-system\";\nimport type { SlotComponent } from \"../../type-utils/slot-types\";\nimport type {\n ModalPageRootSlotProps,\n ModalPageTopBarSlotProps,\n ModalPageHeaderSlotProps,\n ModalPageTitleSlotProps,\n ModalPageSubtitleSlotProps,\n ModalPageActionsSlotProps,\n ModalPageTabNavSlotProps,\n ModalPageContentSlotProps,\n ModalPageFooterSlotProps,\n} from \"./modal-page.types\";\n\nconst { withProvider, withContext } = createSlotRecipeContext({\n key: \"nimbusModalPage\",\n});\n\nexport const ModalPageRootSlot: SlotComponent<\n HTMLDivElement,\n ModalPageRootSlotProps\n> = withProvider<HTMLDivElement, ModalPageRootSlotProps>(\"div\", \"root\");\n\nexport const ModalPageTopBarSlot: SlotComponent<\n HTMLDivElement,\n ModalPageTopBarSlotProps\n> = withContext<HTMLDivElement, ModalPageTopBarSlotProps>(\"div\", \"topBar\");\n\n// <header> inside a <dialog> does NOT get the `banner` landmark role — it\n// becomes a generic element. This is correct: no landmark pollution inside the\n// dialog's sectioning context (ARIA spec §5.3.3).\nexport const ModalPageHeaderSlot: SlotComponent<\n HTMLElement,\n ModalPageHeaderSlotProps\n> = withContext<HTMLElement, ModalPageHeaderSlotProps>(\"header\", \"header\");\n\nexport const ModalPageTitleSlot: SlotComponent<\n HTMLDivElement,\n ModalPageTitleSlotProps\n> = withContext<HTMLDivElement, ModalPageTitleSlotProps>(\"div\", \"title\");\n\nexport const ModalPageSubtitleSlot: SlotComponent<\n HTMLParagraphElement,\n ModalPageSubtitleSlotProps\n> = withContext<HTMLParagraphElement, ModalPageSubtitleSlotProps>(\n \"p\",\n \"subtitle\"\n);\n\nexport const ModalPageActionsSlot: SlotComponent<\n HTMLDivElement,\n ModalPageActionsSlotProps\n> = withContext<HTMLDivElement, ModalPageActionsSlotProps>(\"div\", \"actions\");\n\nexport const ModalPageTabNavSlot: SlotComponent<\n HTMLDivElement,\n ModalPageTabNavSlotProps\n> = withContext<HTMLDivElement, ModalPageTabNavSlotProps>(\"div\", \"tabNav\");\n\nexport const ModalPageContentSlot: SlotComponent<\n HTMLDivElement,\n ModalPageContentSlotProps\n> = withContext<HTMLDivElement, ModalPageContentSlotProps>(\"div\", \"content\");\n\n// <footer> inside a <dialog> does NOT get the `contentinfo` landmark role —\n// it becomes a generic element. This is correct: no landmark pollution inside\n// the dialog's sectioning context (ARIA spec §5.3.3).\nexport const ModalPageFooterSlot: SlotComponent<\n HTMLElement,\n ModalPageFooterSlotProps\n> = withContext<HTMLElement, ModalPageFooterSlotProps>(\"footer\", \"footer\");\n","import { useCallback } from \"react\";\nimport { Drawer } from \"../../drawer/drawer\";\nimport { ModalPageRootSlot } from \"../modal-page.slots\";\nimport type { ModalPageRootProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Root — fullscreen modal page overlay.\n *\n * Renders a right-side Drawer with near-full-width, full-height layout.\n * Provides the slot recipe context for all ModalPage sub-components via a\n * CSS grid container (rows: topBar / header / content / footer).\n *\n * Style props (e.g. `width`) are forwarded to the Drawer.Content panel.\n * The default width is near-fullscreen; consumers can pass a custom `width`\n * to override.\n *\n * Dismissal: backdrop click is disabled (no accidental close on a full-page\n * form). Escape key remains active (isKeyboardDismissDisabled defaults to\n * false), matching standard browser/OS modal behaviour and WCAG 2.1 SC 2.1.2.\n *\n * Exit animations are handled automatically: the Drawer recipe defines\n * [data-exiting] CSS animations (fade-out on overlay, slide-to-right-full on\n * modal), and React Aria's ModalOverlay waits for animationend before\n * unmounting — no manual delay needed.\n */\n// Note: Root wraps a Drawer instead of rendering a slot directly, so the\n// standard useSlotRecipe / splitVariantProps / extractStyleProps pattern does\n// not apply here. Recipe context is provided by ModalPageRootSlot (withProvider).\nexport const ModalPageRoot = ({\n ref,\n isOpen,\n onClose,\n children,\n width = \"calc(100vw - {spacing.1200})\",\n}: ModalPageRootProps) => {\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (!open) {\n onClose();\n }\n },\n [onClose]\n );\n\n return (\n <Drawer.Root\n isOpen={isOpen}\n onOpenChange={handleOpenChange}\n placement=\"right\"\n // Disable backdrop-click dismissal — fullscreen modal pages must not\n // close on accidental outside click. Escape key remains active.\n isDismissable={false}\n >\n <Drawer.Content width={width}>\n <ModalPageRootSlot ref={ref}>{children}</ModalPageRootSlot>\n </Drawer.Content>\n </Drawer.Root>\n );\n};\n\nModalPageRoot.displayName = \"ModalPage.Root\";\n","/**\n * Pre-compiled en messages for ModalPage\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n backButton: (args: Record<string, string | number>) =>\n `Go back to ${args.previousPathLabel}`,\n};\n","/**\n * Pre-compiled de messages for ModalPage\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n backButton: (args: Record<string, string | number>) =>\n `Go back to ${args.previousPathLabel}`,\n};\n","/**\n * Pre-compiled es messages for ModalPage\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n backButton: (args: Record<string, string | number>) =>\n `Go back to ${args.previousPathLabel}`,\n};\n","/**\n * Pre-compiled fr-FR messages for ModalPage\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n backButton: (args: Record<string, string | number>) =>\n `Go back to ${args.previousPathLabel}`,\n};\n","/**\n * Pre-compiled pt-BR messages for ModalPage\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n backButton: (args: Record<string, string | number>) =>\n `Go back to ${args.previousPathLabel}`,\n};\n","/**\n * Pre-compiled localized messages for ModalPage component\n *\n * Generated by scripts/generate-dictionaries.ts\n * DO NOT EDIT MANUALLY\n *\n * @see https://react-spectrum.adobe.com/react-aria/internationalization.html\n */\n\nimport {\n type LocalizedString,\n type LocalizedStrings,\n} from \"@internationalized/string\";\nimport { normalizeMessages } from \"../../utils/normalize-messages\";\n\n// Pre-compiled message functions\nimport modalPageMessages_en from \"./intl/en\";\nimport modalPageMessages_de from \"./intl/de\";\nimport modalPageMessages_es from \"./intl/es\";\nimport modalPageMessages_fr from \"./intl/fr-FR\";\nimport modalPageMessages_pt from \"./intl/pt-BR\";\n\n// Raw LocalizedStrings object for use with useLocalizedStringFormatter hook\nexport const modalPageMessagesStrings: LocalizedStrings<\n string,\n LocalizedString\n> = {\n en: normalizeMessages(modalPageMessages_en),\n de: normalizeMessages(modalPageMessages_de),\n es: normalizeMessages(modalPageMessages_es),\n \"fr-FR\": normalizeMessages(modalPageMessages_fr),\n \"pt-BR\": normalizeMessages(modalPageMessages_pt),\n} as LocalizedStrings<string, LocalizedString>;\n\n/**\n * Available message keys for ModalPage component\n */\nexport type ModalPageMessageKey = \"backButton\";\n","import { ArrowBack } from \"@commercetools/nimbus-icons\";\nimport { Text } from \"../../text/text\";\nimport { ModalPageTopBarSlot } from \"../modal-page.slots\";\nimport type { ModalPageTopBarProps } from \"../modal-page.types\";\nimport { IconButton } from \"../../icon-button/icon-button\";\nimport { useLocalizedStringFormatter } from \"@/hooks\";\nimport { modalPageMessagesStrings } from \"../modal-page.messages\";\n\n/**\n * ModalPage.TopBar — breadcrumb navigation row.\n *\n * Renders a back button (uses React Aria `slot=\"close\"` to hook into dialog close)\n * followed by the current path label.\n *\n * @supportsStyleProps\n */\nexport const ModalPageTopBar = ({\n ref,\n previousPathLabel,\n currentPathLabel,\n ...props\n}: ModalPageTopBarProps) => {\n const msg = useLocalizedStringFormatter(modalPageMessagesStrings);\n\n return (\n <ModalPageTopBarSlot ref={ref} {...props}>\n <IconButton\n slot=\"close\"\n size=\"xs\"\n variant=\"ghost\"\n aria-label={msg.format(\"backButton\", { previousPathLabel })}\n autoFocus\n >\n <ArrowBack />\n </IconButton>\n <Text color=\"neutral.11\" textStyle=\"sm\" aria-hidden=\"true\">\n {previousPathLabel}\n </Text>\n {/* Separator is decorative — hidden from screen readers */}\n <Text color=\"neutral.11\" textStyle=\"sm\" aria-hidden=\"true\">\n /\n </Text>\n <Text textStyle=\"sm\" fontWeight=\"medium\" aria-current=\"page\">\n {currentPathLabel}\n </Text>\n </ModalPageTopBarSlot>\n );\n};\n\nModalPageTopBar.displayName = \"ModalPage.TopBar\";\n","import { ModalPageHeaderSlot } from \"../modal-page.slots\";\nimport type { ModalPageHeaderProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Header — header section, 2-column grid (title | actions).\n *\n * @supportsStyleProps\n */\nexport const ModalPageHeader = ({\n ref,\n children,\n ...props\n}: ModalPageHeaderProps) => {\n return (\n <ModalPageHeaderSlot ref={ref} {...props}>\n {children}\n </ModalPageHeaderSlot>\n );\n};\n\nModalPageHeader.displayName = \"ModalPage.Header\";\n","import { ModalPageTitleSlot } from \"../modal-page.slots\";\nimport type { ModalPageTitleProps } from \"../modal-page.types\";\nimport { Heading } from \"../../heading/heading\";\n\n/**\n * ModalPage.Title — the page title heading. Renders as an `h2` element.\n *\n * Wraps the React Aria `Heading` component with `slot=\"title\"` so the\n * parent Dialog automatically uses it as the accessible name (aria-labelledby).\n *\n * @supportsStyleProps\n */\nexport const ModalPageTitle = ({\n ref,\n children,\n ...props\n}: ModalPageTitleProps) => {\n return (\n <ModalPageTitleSlot ref={ref} {...props}>\n <Heading slot=\"title\" as=\"h2\">\n {children}\n </Heading>\n </ModalPageTitleSlot>\n );\n};\n\nModalPageTitle.displayName = \"ModalPage.Title\";\n","import { ModalPageSubtitleSlot } from \"../modal-page.slots\";\nimport type { ModalPageSubtitleProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Subtitle — optional subtitle text below the page title.\n *\n * @supportsStyleProps\n */\nexport const ModalPageSubtitle = ({\n ref,\n children,\n ...props\n}: ModalPageSubtitleProps) => {\n return (\n <ModalPageSubtitleSlot ref={ref} slot=\"description\" {...props}>\n {children}\n </ModalPageSubtitleSlot>\n );\n};\n\nModalPageSubtitle.displayName = \"ModalPage.Subtitle\";\n","import { ModalPageActionsSlot } from \"../modal-page.slots\";\nimport type { ModalPageActionsProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Actions — action buttons container, aligned to the right of the header.\n *\n * @supportsStyleProps\n */\nexport const ModalPageActions = ({\n ref,\n children,\n ...props\n}: ModalPageActionsProps) => {\n return (\n <ModalPageActionsSlot ref={ref} {...props}>\n {children}\n </ModalPageActionsSlot>\n );\n};\n\nModalPageActions.displayName = \"ModalPage.Actions\";\n","import { ModalPageTabNavSlot } from \"../modal-page.slots\";\nimport type { ModalPageTabNavProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.TabNav — layout container for tab navigation in the header.\n * Positions itself in the header grid's last row at full width.\n *\n * Place inside `ModalPage.Header` for route-based page navigation.\n * Wrap a `TabNav.Root` inside this component.\n *\n * @supportsStyleProps\n *\n * @example\n * ```tsx\n * <ModalPage.TabNav>\n * <TabNav.Root aria-label=\"Order sections\">\n * <TabNav.Item href=\"/general\" isCurrent>General</TabNav.Item>\n * <TabNav.Item href=\"/items\">Items</TabNav.Item>\n * </TabNav.Root>\n * </ModalPage.TabNav>\n * ```\n */\nexport const ModalPageTabNav = ({\n ref,\n children,\n ...props\n}: ModalPageTabNavProps) => {\n return (\n <ModalPageTabNavSlot ref={ref} {...props}>\n {children}\n </ModalPageTabNavSlot>\n );\n};\n\nModalPageTabNav.displayName = \"ModalPage.TabNav\";\n","import { ModalPageContentSlot } from \"../modal-page.slots\";\nimport type { ModalPageContentProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Content — scrollable content area.\n *\n * @supportsStyleProps\n */\nexport const ModalPageContent = ({\n ref,\n children,\n ...props\n}: ModalPageContentProps) => {\n return (\n <ModalPageContentSlot ref={ref} {...props}>\n {children}\n </ModalPageContentSlot>\n );\n};\n\nModalPageContent.displayName = \"ModalPage.Content\";\n","import { ModalPageFooterSlot } from \"../modal-page.slots\";\nimport type { ModalPageFooterProps } from \"../modal-page.types\";\n\n/**\n * ModalPage.Footer — footer slot, typically containing action buttons.\n *\n * @supportsStyleProps\n */\nexport const ModalPageFooter = ({\n ref,\n children,\n ...props\n}: ModalPageFooterProps) => {\n return (\n <ModalPageFooterSlot ref={ref} {...props}>\n {children}\n </ModalPageFooterSlot>\n );\n};\n\nModalPageFooter.displayName = \"ModalPage.Footer\";\n","import {\n ModalPageRoot,\n ModalPageTopBar,\n ModalPageHeader,\n ModalPageTitle,\n ModalPageSubtitle,\n ModalPageActions,\n ModalPageTabNav,\n ModalPageContent,\n ModalPageFooter,\n} from \"./components\";\n\n/**\n * ModalPage\n * ============================================================\n * A fullscreen modal overlay used for form, info, and tabular page patterns.\n * Wraps Drawer internally with right-side placement and near-full-width layout.\n *\n * Used for the ~29 modal page patterns in Merchant Center (form/info/tabular).\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/layout/modal-page}\n *\n * @example\n * ```tsx\n * const [isOpen, setIsOpen] = useState(false);\n *\n * <ModalPage.Root isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <ModalPage.TopBar\n * previousPathLabel=\"Products\"\n * currentPathLabel=\"Edit Product\"\n * />\n * <ModalPage.Header>\n * <ModalPage.Title>Edit Product</ModalPage.Title>\n * <ModalPage.Subtitle>Update the product details</ModalPage.Subtitle>\n * <ModalPage.Actions>\n * <Button>Save</Button>\n * </ModalPage.Actions>\n * </ModalPage.Header>\n * <ModalPage.Content>\n * <p>Form content here</p>\n * </ModalPage.Content>\n * <ModalPage.Footer>\n * <Button slot=\"close\" variant=\"outline\">Cancel</Button>\n * <Button colorPalette=\"primary\" variant=\"solid\">Save</Button>\n * </ModalPage.Footer>\n * </ModalPage.Root>\n * ```\n */\nexport const ModalPage = {\n /**\n * # ModalPage.Root\n *\n * The root container. Renders a fullscreen right-side Drawer.\n * Controlled-only: requires `isOpen` and `onClose`.\n *\n * @example\n * ```tsx\n * <ModalPage.Root isOpen={isOpen} onClose={() => setIsOpen(false)}>\n * <ModalPage.TopBar previousPathLabel=\"Products\" currentPathLabel=\"Edit Product\" />\n * <ModalPage.Header>...</ModalPage.Header>\n * <ModalPage.Content>...</ModalPage.Content>\n * </ModalPage.Root>\n * ```\n */\n Root: ModalPageRoot,\n /**\n * # ModalPage.TopBar\n *\n * Breadcrumb navigation row with a back button and current path label.\n *\n * @example\n * ```tsx\n * <ModalPage.TopBar\n * previousPathLabel=\"Products\"\n * currentPathLabel=\"Edit Product\"\n * />\n * ```\n */\n TopBar: ModalPageTopBar,\n /**\n * # ModalPage.Header\n *\n * Header section with a 2-column grid layout for Title and Actions.\n *\n * @example\n * ```tsx\n * <ModalPage.Header>\n * <ModalPage.Title>Edit Product</ModalPage.Title>\n * <ModalPage.Actions>\n * <Button>Save</Button>\n * </ModalPage.Actions>\n * </ModalPage.Header>\n * ```\n */\n Header: ModalPageHeader,\n /**\n * # ModalPage.Title\n *\n * The main page title heading. Renders as an `h2` element.\n *\n * @example\n * ```tsx\n * <ModalPage.Title>Edit Product</ModalPage.Title>\n * ```\n */\n Title: ModalPageTitle,\n /**\n * # ModalPage.Subtitle\n *\n * An optional subtitle displayed below the title.\n *\n * @example\n * ```tsx\n * <ModalPage.Subtitle>Fill in the product details</ModalPage.Subtitle>\n * ```\n */\n Subtitle: ModalPageSubtitle,\n /**\n * # ModalPage.Actions\n *\n * Container for action buttons in the header.\n *\n * @example\n * ```tsx\n * <ModalPage.Actions>\n * <Button variant=\"outline\">Preview</Button>\n * </ModalPage.Actions>\n * ```\n */\n Actions: ModalPageActions,\n /**\n * # ModalPage.TabNav\n *\n * Layout container for tab navigation in the header.\n * Positions itself in the header grid's last row at full width.\n * Place inside `ModalPage.Header`.\n *\n * Wrap a `TabNav.Root` inside, or use `as={TabNav.Root}` for a flatter DOM.\n *\n * @example\n * ```tsx\n * <ModalPage.Header>\n * <ModalPage.Title>Order Details</ModalPage.Title>\n * <ModalPage.TabNav>\n * <TabNav.Root aria-label=\"Order sections\">\n * <TabNav.Item href=\"/general\" isCurrent>General</TabNav.Item>\n * <TabNav.Item href=\"/items\">Items</TabNav.Item>\n * </TabNav.Root>\n * </ModalPage.TabNav>\n * </ModalPage.Header>\n * ```\n */\n TabNav: ModalPageTabNav,\n /**\n * # ModalPage.Content\n *\n * Scrollable content area.\n *\n * @example\n * ```tsx\n * <ModalPage.Content>\n * <FormField.Root>...</FormField.Root>\n * </ModalPage.Content>\n * ```\n */\n Content: ModalPageContent,\n /**\n * # ModalPage.Footer\n *\n * Footer slot for action buttons (save/cancel).\n *\n * @example\n * ```tsx\n * <ModalPage.Footer>\n * <Button slot=\"close\" variant=\"outline\">Cancel</Button>\n * <Button variant=\"solid\">Save</Button>\n * </ModalPage.Footer>\n * ```\n */\n Footer: ModalPageFooter,\n};\n\n// Internal named exports for react-docgen\nexport {\n ModalPageRoot as _ModalPageRoot,\n ModalPageTopBar as _ModalPageTopBar,\n ModalPageHeader as _ModalPageHeader,\n ModalPageTitle as _ModalPageTitle,\n ModalPageSubtitle as _ModalPageSubtitle,\n ModalPageActions as _ModalPageActions,\n ModalPageTabNav as _ModalPageTabNav,\n ModalPageContent as _ModalPageContent,\n ModalPageFooter as _ModalPageFooter,\n};\n"],"names":["withProvider","withContext","createSlotRecipeContext","ModalPageRootSlot","ModalPageTopBarSlot","ModalPageHeaderSlot","ModalPageTitleSlot","ModalPageSubtitleSlot","ModalPageActionsSlot","ModalPageTabNavSlot","ModalPageContentSlot","ModalPageFooterSlot","ModalPageRoot","ref","isOpen","onClose","children","width","handleOpenChange","useCallback","open","jsx","Drawer","modalPageMessages_en","args","modalPageMessages_de","modalPageMessages_es","modalPageMessages_fr","modalPageMessages_pt","modalPageMessagesStrings","normalizeMessages","ModalPageTopBar","previousPathLabel","currentPathLabel","props","msg","useLocalizedStringFormatter","jsxs","IconButton","ArrowBack","Text","ModalPageHeader","ModalPageTitle","Heading","ModalPageSubtitle","ModalPageActions","ModalPageTabNav","ModalPageContent","ModalPageFooter","ModalPage"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const t=require("react/jsx-runtime"),v=require("@chakra-ui/react/styled-system"),j=require("./heading-C9xy87Zc.cjs.js"),T=require("@commercetools/nimbus-icons"),i=require("./text-D73rGEjF.cjs.js"),B=require("./icon-button-BwxwVPZQ.cjs.js"),n=require("./normalize-messages-Dogs8lYA.cjs.js"),N=require("react"),x=require("./drawer-C6SlH_kv.cjs.js"),{withProvider:y,withContext:s}=v.createSlotRecipeContext({key:"nimbusModalPage"}),k=y("div","root"),C=s("div","topBar"),R=s("header","header"),q=s("div","title"),f=s("p","subtitle"),z=s("div","actions"),F=s("div","tabNav"),w=s("div","content"),$=s("footer","footer"),d=({ref:e,isOpen:a,onClose:o,children:l,width:r="calc(100vw - {spacing.1200})"})=>{const h=N.useCallback(S=>{S||o()},[o]);return t.jsx(x.Drawer.Root,{isOpen:a,onOpenChange:h,placement:"right",isDismissable:!1,children:t.jsx(x.Drawer.Content,{width:r,children:t.jsx(k,{ref:e,children:l})})})};d.displayName="ModalPage.Root";const A={backButton:e=>`Go back to ${e.previousPathLabel}`},H={backButton:e=>`Go back to ${e.previousPathLabel}`},G={backButton:e=>`Go back to ${e.previousPathLabel}`},L={backButton:e=>`Go back to ${e.previousPathLabel}`},_={backButton:e=>`Go back to ${e.previousPathLabel}`},D={en:n.normalizeMessages(A),de:n.normalizeMessages(H),es:n.normalizeMessages(G),"fr-FR":n.normalizeMessages(L),"pt-BR":n.normalizeMessages(_)},c=({ref:e,previousPathLabel:a,currentPathLabel:o,...l})=>{const r=n.useLocalizedStringFormatter(D);return t.jsxs(C,{ref:e,...l,children:[t.jsx(B.IconButton,{slot:"close",size:"xs",variant:"ghost","aria-label":r.format("backButton",{previousPathLabel:a}),autoFocus:!0,children:t.jsx(T.ArrowBack,{})}),t.jsx(i.Text,{color:"neutral.11",textStyle:"sm","aria-hidden":"true",children:a}),t.jsx(i.Text,{color:"neutral.11",textStyle:"sm","aria-hidden":"true",children:"/"}),t.jsx(i.Text,{textStyle:"sm",fontWeight:"medium","aria-current":"page",children:o})]})};c.displayName="ModalPage.TopBar";const g=({ref:e,children:a,...o})=>t.jsx(R,{ref:e,...o,children:a});g.displayName="ModalPage.Header";const u=({ref:e,children:a,...o})=>t.jsx(q,{ref:e,...o,children:t.jsx(j.Heading,{slot:"title",as:"h2",children:a})});u.displayName="ModalPage.Title";const M=({ref:e,children:a,...o})=>t.jsx(f,{ref:e,slot:"description",...o,children:a});M.displayName="ModalPage.Subtitle";const P=({ref:e,children:a,...o})=>t.jsx(z,{ref:e,...o,children:a});P.displayName="ModalPage.Actions";const m=({ref:e,children:a,...o})=>t.jsx(F,{ref:e,...o,children:a});m.displayName="ModalPage.TabNav";const b=({ref:e,children:a,...o})=>t.jsx(w,{ref:e,...o,children:a});b.displayName="ModalPage.Content";const p=({ref:e,children:a,...o})=>t.jsx($,{ref:e,...o,children:a});p.displayName="ModalPage.Footer";const I={Root:d,TopBar:c,Header:g,Title:u,Subtitle:M,Actions:P,TabNav:m,Content:b,Footer:p};exports.ModalPage=I;exports.ModalPageActions=P;exports.ModalPageContent=b;exports.ModalPageFooter=p;exports.ModalPageHeader=g;exports.ModalPageRoot=d;exports.ModalPageSubtitle=M;exports.ModalPageTabNav=m;exports.ModalPageTitle=u;exports.ModalPageTopBar=c;
|
|
2
|
-
//# sourceMappingURL=modal-page-hqz13F_k.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-C95pC4Nv.cjs.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/intl/en.ts","../../src/components/pagination/intl/de.ts","../../src/components/pagination/intl/es.ts","../../src/components/pagination/intl/fr-FR.ts","../../src/components/pagination/intl/pt-BR.ts","../../src/components/pagination/pagination.messages.ts","../../src/components/pagination/pagination.tsx"],"sourcesContent":["import { useState, useCallback, useMemo } from \"react\";\n\nexport type PaginationState = {\n /** Total number of items across all pages */\n totalItems: number;\n /** Current active page (1-based) */\n currentPage: number;\n /** Number of items displayed per page */\n pageSize: number;\n /** Total number of pages available */\n totalPages: number;\n /** Index of the first item on current page (1-based) */\n startItem: number;\n /** Index of the last item on current page (1-based) */\n endItem: number;\n /** Whether there is a previous page available */\n hasPreviousPage: boolean;\n /** Whether there is a next page available */\n hasNextPage: boolean;\n};\n\nexport type UsePaginationProps = {\n /** Total number of items to paginate */\n totalItems: number;\n /** Initial current page (1-based), defaults to 1 */\n currentPage?: number;\n /** Initial number of items per page, defaults to 10 */\n pageSize?: number;\n /** Callback fired when the current page changes */\n onPageChange?: (page: number) => void;\n /** Callback fired when the page size changes */\n onPageSizeChange?: (pageSize: number) => void;\n};\n\nexport type UsePaginationReturn = PaginationState & {\n /** Navigate to a specific page number (1-based) */\n goToPage: (page: number) => void;\n /** Navigate to the previous page, if available */\n goToPreviousPage: () => void;\n /** Navigate to the next page, if available */\n goToNextPage: () => void;\n /** Change the number of items displayed per page */\n setPageSize: (pageSize: number) => void;\n};\n\n/**\n * # usePagination\n *\n * Custom hook that provides pagination state management and navigation controls.\n *\n * Supports both controlled and uncontrolled modes:\n * - Controlled: Parent component manages currentPage state via props and callbacks\n * - Uncontrolled: Hook manages internal currentPage state automatically\n *\n * @param props - Configuration object for pagination behavior\n * @param props.totalItems - Total number of items to paginate\n * @param props.currentPage - Current page number (controlled mode). If undefined, uses uncontrolled mode\n * @param props.pageSize - Number of items per page (defaults to 20)\n * @param props.onPageChange - Callback fired when page changes\n * @param props.onPageSizeChange - Callback fired when page size changes\n *\n * @returns Object containing pagination state and navigation functions:\n * - totalItems: Total number of items\n * - currentPage: Current active page number (1-based)\n * - pageSize: Number of items per page\n * - totalPages: Total number of pages\n * - startItem: First item number on current page\n * - endItem: Last item number on current page\n * - hasPreviousPage: Whether previous page exists\n * - hasNextPage: Whether next page exists\n * - goToPage: Function to navigate to specific page\n * - goToPreviousPage: Function to navigate to previous page\n * - goToNextPage: Function to navigate to next page\n * - setPageSize: Function to change page size\n *\n */\nexport function usePagination({\n totalItems,\n currentPage: controlledCurrentPage,\n pageSize: controlledPageSize = 20,\n onPageChange,\n onPageSizeChange,\n}: UsePaginationProps): UsePaginationReturn {\n // Internal state for uncontrolled mode\n const [internalCurrentPage, setInternalCurrentPage] = useState(1);\n const [internalPageSize, setInternalPageSize] = useState(controlledPageSize);\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledCurrentPage !== undefined;\n const currentPage = isControlled\n ? controlledCurrentPage\n : internalCurrentPage;\n const pageSize = controlledPageSize ?? internalPageSize;\n\n // Calculate pagination values\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n\n // Ensure currentPage is within valid bounds\n const validCurrentPage = Math.max(1, Math.min(currentPage, totalPages));\n\n const startItem = Math.min((validCurrentPage - 1) * pageSize + 1, totalItems);\n const endItem = Math.min(validCurrentPage * pageSize, totalItems);\n\n const hasPreviousPage = validCurrentPage > 1;\n const hasNextPage = validCurrentPage < totalPages;\n\n // Page navigation functions\n const goToPage = useCallback(\n (page: number) => {\n const newPage = Math.max(1, Math.min(page, totalPages));\n\n if (!isControlled) {\n setInternalCurrentPage(newPage);\n }\n\n onPageChange?.(newPage);\n },\n [totalPages, isControlled, onPageChange]\n );\n\n const goToPreviousPage = useCallback(() => {\n if (hasPreviousPage) {\n goToPage(validCurrentPage - 1);\n }\n }, [hasPreviousPage, validCurrentPage, goToPage]);\n\n const goToNextPage = useCallback(() => {\n if (hasNextPage) {\n goToPage(validCurrentPage + 1);\n }\n }, [hasNextPage, validCurrentPage, goToPage]);\n\n const setPageSize = useCallback(\n (newPageSize: number) => {\n const newTotalPages = Math.ceil(totalItems / newPageSize);\n const newPage = Math.min(validCurrentPage, newTotalPages);\n\n setInternalPageSize(newPageSize);\n\n if (!isControlled && newPage !== validCurrentPage) {\n setInternalCurrentPage(newPage);\n }\n\n onPageSizeChange?.(newPageSize);\n\n if (newPage !== validCurrentPage) {\n onPageChange?.(newPage);\n }\n },\n [totalItems, validCurrentPage, isControlled, onPageChange, onPageSizeChange]\n );\n\n return useMemo(\n () => ({\n totalItems,\n currentPage: validCurrentPage,\n pageSize,\n totalPages,\n startItem,\n endItem,\n hasPreviousPage,\n hasNextPage,\n goToPage,\n goToPreviousPage,\n goToNextPage,\n setPageSize,\n }),\n [\n totalItems,\n validCurrentPage,\n pageSize,\n totalPages,\n startItem,\n endItem,\n hasPreviousPage,\n hasNextPage,\n goToPage,\n goToPreviousPage,\n goToNextPage,\n setPageSize,\n ]\n );\n}\n","/**\n * Pre-compiled en messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Current page`,\n goToNextPage: `Go to next page`,\n goToPreviousPage: `Go to previous page`,\n itemsPerPage: `Items per page`,\n itemsPerPageText: `items per page`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `of ${args.totalPages}`,\n page: `Page`,\n pagination: `Pagination`,\n};\n","/**\n * Pre-compiled de messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Aktuelle Seite`,\n goToNextPage: `Weiter zur nächsten Seite`,\n goToPreviousPage: `Zur vorherigen Seite`,\n itemsPerPage: `Artikel pro Seite`,\n itemsPerPageText: `Artikel pro Seite`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `von ${args.totalPages}`,\n page: `Seite`,\n pagination: `Seitennummerierung`,\n};\n","/**\n * Pre-compiled es messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Página actual`,\n goToNextPage: `Ir a la siguiente página`,\n goToPreviousPage: `Ir a la página anterior`,\n itemsPerPage: `Artículos por página`,\n itemsPerPageText: `artículos por página`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `página`,\n pagination: `paginación`,\n};\n","/**\n * Pre-compiled fr-FR messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Page actuelle`,\n goToNextPage: `Aller à la page suivante`,\n goToPreviousPage: `Aller à la page précédente`,\n itemsPerPage: `Articles par page`,\n itemsPerPageText: `Articles par page`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `Page`,\n pagination: `Pagination`,\n};\n","/**\n * Pre-compiled pt-BR messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Página atual`,\n goToNextPage: `Ir para a próxima página`,\n goToPreviousPage: `Ir para a página anterior`,\n itemsPerPage: `Itens por página`,\n itemsPerPageText: `Itens por página`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `Página`,\n pagination: `Paginação`,\n};\n","/**\n * Pre-compiled localized messages for Pagination component\n *\n * Generated by scripts/generate-dictionaries.ts\n * DO NOT EDIT MANUALLY\n *\n * @see https://react-spectrum.adobe.com/react-aria/internationalization.html\n */\n\nimport {\n type LocalizedString,\n type LocalizedStrings,\n} from \"@internationalized/string\";\nimport { normalizeMessages } from \"../../utils/normalize-messages\";\n\n// Pre-compiled message functions\nimport paginationMessages_en from \"./intl/en\";\nimport paginationMessages_de from \"./intl/de\";\nimport paginationMessages_es from \"./intl/es\";\nimport paginationMessages_fr from \"./intl/fr-FR\";\nimport paginationMessages_pt from \"./intl/pt-BR\";\n\n// Raw LocalizedStrings object for use with useLocalizedStringFormatter hook\nexport const paginationMessagesStrings: LocalizedStrings<\n string,\n LocalizedString\n> = {\n en: normalizeMessages(paginationMessages_en),\n de: normalizeMessages(paginationMessages_de),\n es: normalizeMessages(paginationMessages_es),\n \"fr-FR\": normalizeMessages(paginationMessages_fr),\n \"pt-BR\": normalizeMessages(paginationMessages_pt),\n} as LocalizedStrings<string, LocalizedString>;\n\n/**\n * Available message keys for Pagination component\n */\nexport type PaginationMessageKey =\n | \"currentPage\"\n | \"goToNextPage\"\n | \"goToPreviousPage\"\n | \"itemsPerPage\"\n | \"itemsPerPageText\"\n | \"ofTotalPages\";\n","import { useMemo } from \"react\";\nimport { ChevronLeft, ChevronRight } from \"@commercetools/nimbus-icons\";\nimport {\n Flex,\n IconButton,\n NumberInput,\n Select,\n Stack,\n Text,\n} from \"@/components\";\nimport { usePagination } from \"./hooks/use-pagination\";\nimport type { PaginationProps } from \"./pagination.types\";\nimport { useLocalizedStringFormatter } from \"@/hooks\";\nimport { paginationMessagesStrings } from \"./pagination.messages\";\nimport { useLocale } from \"react-aria-components\";\n\n/**\n * # Pagination\n *\n * A component that allows users to navigate through pages and control page size.\n * Combines a page size selector and page navigator for comprehensive pagination control.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/pagination}\n */\nexport const Pagination = (props: PaginationProps) => {\n const { locale } = useLocale();\n const msg = useLocalizedStringFormatter(paginationMessagesStrings);\n const {\n totalItems,\n currentPage,\n pageSize,\n pageSizeOptions = [10, 20, 50, 100],\n onPageChange,\n onPageSizeChange,\n \"aria-label\": ariaLabel,\n enablePageInput = true,\n enablePageSizeSelector = true,\n } = props;\n\n const pagination = usePagination({\n totalItems,\n currentPage,\n pageSize,\n onPageChange,\n onPageSizeChange,\n });\n\n // Prepare page size options for select\n const pageSizeSelectOptions = useMemo(\n () =>\n pageSizeOptions.map((size) => ({\n id: size.toString(),\n name: `${size}`,\n })),\n [pageSizeOptions]\n );\n\n const handlePageSizeChange = (key: React.Key | null) => {\n if (key) {\n const newPageSize = parseInt(key.toString(), 10);\n pagination.setPageSize(newPageSize);\n }\n };\n\n return (\n <Stack gap=\"400\" direction={{ base: \"column\", sm: \"row\" }} align=\"center\">\n {/* Page Size Selector */}\n {enablePageSizeSelector && (\n <Flex align=\"center\" gap=\"200\">\n <Select.Root\n isClearable={false}\n selectedKey={pagination.pageSize.toString()}\n onSelectionChange={handlePageSizeChange}\n aria-label={msg.format(\"itemsPerPage\")}\n >\n <Select.Options>\n {pageSizeSelectOptions.map((option) => (\n <Select.Option key={option.id} id={option.id}>\n {option.name}\n </Select.Option>\n ))}\n </Select.Options>\n </Select.Root>\n <Text color=\"neutral.12\">{msg.format(\"itemsPerPageText\")}</Text>\n </Flex>\n )}\n <Flex flexGrow=\"1\" />\n {/* Page Navigator */}\n <Flex\n align=\"center\"\n gap=\"200\"\n role=\"navigation\"\n aria-label={ariaLabel ?? msg.format(\"pagination\")}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={msg.format(\"goToPreviousPage\")}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{msg.format(\"page\")}</Text>\n {enablePageInput ? (\n <NumberInput\n value={pagination.currentPage}\n onChange={(value: number | undefined) =>\n pagination.goToPage(value || 1)\n }\n minValue={1}\n maxValue={pagination.totalPages}\n step={1}\n isDisabled={false}\n width=\"9ch\"\n aria-label={msg.format(\"currentPage\")}\n aria-current=\"page\"\n />\n ) : (\n <Text fontWeight=\"semibold\" color=\"neutral.12\" aria-current=\"page\">\n {pagination.currentPage}\n </Text>\n )}\n <Text color=\"neutral.12\">\n {(() => {\n // Format the number with locale-specific formatting\n const formattedTotalPages = new Intl.NumberFormat(locale).format(\n pagination.totalPages\n );\n\n return msg.format(\"ofTotalPages\", {\n totalPages: formattedTotalPages,\n });\n })()}\n </Text>\n </Flex>\n\n <IconButton\n onClick={pagination.goToNextPage}\n isDisabled={!pagination.hasNextPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={msg.format(\"goToNextPage\")}\n >\n <ChevronRight />\n </IconButton>\n </Flex>\n </Stack>\n );\n};\n\n// Manually assign a displayName for debugging purposes\nPagination.displayName = \"Pagination\";\n"],"names":["usePagination","totalItems","controlledCurrentPage","controlledPageSize","onPageChange","onPageSizeChange","internalCurrentPage","setInternalCurrentPage","useState","internalPageSize","setInternalPageSize","isControlled","currentPage","pageSize","totalPages","validCurrentPage","startItem","endItem","hasPreviousPage","hasNextPage","goToPage","useCallback","page","newPage","goToPreviousPage","goToNextPage","setPageSize","newPageSize","newTotalPages","useMemo","paginationMessages_en","args","paginationMessages_de","paginationMessages_es","paginationMessages_fr","paginationMessages_pt","paginationMessagesStrings","normalizeMessages","Pagination","props","locale","useLocale","msg","useLocalizedStringFormatter","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","formattedTotalPages","ChevronRight"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-Ckqf7naU.es.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/intl/en.ts","../../src/components/pagination/intl/de.ts","../../src/components/pagination/intl/es.ts","../../src/components/pagination/intl/fr-FR.ts","../../src/components/pagination/intl/pt-BR.ts","../../src/components/pagination/pagination.messages.ts","../../src/components/pagination/pagination.tsx"],"sourcesContent":["import { useState, useCallback, useMemo } from \"react\";\n\nexport type PaginationState = {\n /** Total number of items across all pages */\n totalItems: number;\n /** Current active page (1-based) */\n currentPage: number;\n /** Number of items displayed per page */\n pageSize: number;\n /** Total number of pages available */\n totalPages: number;\n /** Index of the first item on current page (1-based) */\n startItem: number;\n /** Index of the last item on current page (1-based) */\n endItem: number;\n /** Whether there is a previous page available */\n hasPreviousPage: boolean;\n /** Whether there is a next page available */\n hasNextPage: boolean;\n};\n\nexport type UsePaginationProps = {\n /** Total number of items to paginate */\n totalItems: number;\n /** Initial current page (1-based), defaults to 1 */\n currentPage?: number;\n /** Initial number of items per page, defaults to 10 */\n pageSize?: number;\n /** Callback fired when the current page changes */\n onPageChange?: (page: number) => void;\n /** Callback fired when the page size changes */\n onPageSizeChange?: (pageSize: number) => void;\n};\n\nexport type UsePaginationReturn = PaginationState & {\n /** Navigate to a specific page number (1-based) */\n goToPage: (page: number) => void;\n /** Navigate to the previous page, if available */\n goToPreviousPage: () => void;\n /** Navigate to the next page, if available */\n goToNextPage: () => void;\n /** Change the number of items displayed per page */\n setPageSize: (pageSize: number) => void;\n};\n\n/**\n * # usePagination\n *\n * Custom hook that provides pagination state management and navigation controls.\n *\n * Supports both controlled and uncontrolled modes:\n * - Controlled: Parent component manages currentPage state via props and callbacks\n * - Uncontrolled: Hook manages internal currentPage state automatically\n *\n * @param props - Configuration object for pagination behavior\n * @param props.totalItems - Total number of items to paginate\n * @param props.currentPage - Current page number (controlled mode). If undefined, uses uncontrolled mode\n * @param props.pageSize - Number of items per page (defaults to 20)\n * @param props.onPageChange - Callback fired when page changes\n * @param props.onPageSizeChange - Callback fired when page size changes\n *\n * @returns Object containing pagination state and navigation functions:\n * - totalItems: Total number of items\n * - currentPage: Current active page number (1-based)\n * - pageSize: Number of items per page\n * - totalPages: Total number of pages\n * - startItem: First item number on current page\n * - endItem: Last item number on current page\n * - hasPreviousPage: Whether previous page exists\n * - hasNextPage: Whether next page exists\n * - goToPage: Function to navigate to specific page\n * - goToPreviousPage: Function to navigate to previous page\n * - goToNextPage: Function to navigate to next page\n * - setPageSize: Function to change page size\n *\n */\nexport function usePagination({\n totalItems,\n currentPage: controlledCurrentPage,\n pageSize: controlledPageSize = 20,\n onPageChange,\n onPageSizeChange,\n}: UsePaginationProps): UsePaginationReturn {\n // Internal state for uncontrolled mode\n const [internalCurrentPage, setInternalCurrentPage] = useState(1);\n const [internalPageSize, setInternalPageSize] = useState(controlledPageSize);\n\n // Determine if controlled or uncontrolled\n const isControlled = controlledCurrentPage !== undefined;\n const currentPage = isControlled\n ? controlledCurrentPage\n : internalCurrentPage;\n const pageSize = controlledPageSize ?? internalPageSize;\n\n // Calculate pagination values\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n\n // Ensure currentPage is within valid bounds\n const validCurrentPage = Math.max(1, Math.min(currentPage, totalPages));\n\n const startItem = Math.min((validCurrentPage - 1) * pageSize + 1, totalItems);\n const endItem = Math.min(validCurrentPage * pageSize, totalItems);\n\n const hasPreviousPage = validCurrentPage > 1;\n const hasNextPage = validCurrentPage < totalPages;\n\n // Page navigation functions\n const goToPage = useCallback(\n (page: number) => {\n const newPage = Math.max(1, Math.min(page, totalPages));\n\n if (!isControlled) {\n setInternalCurrentPage(newPage);\n }\n\n onPageChange?.(newPage);\n },\n [totalPages, isControlled, onPageChange]\n );\n\n const goToPreviousPage = useCallback(() => {\n if (hasPreviousPage) {\n goToPage(validCurrentPage - 1);\n }\n }, [hasPreviousPage, validCurrentPage, goToPage]);\n\n const goToNextPage = useCallback(() => {\n if (hasNextPage) {\n goToPage(validCurrentPage + 1);\n }\n }, [hasNextPage, validCurrentPage, goToPage]);\n\n const setPageSize = useCallback(\n (newPageSize: number) => {\n const newTotalPages = Math.ceil(totalItems / newPageSize);\n const newPage = Math.min(validCurrentPage, newTotalPages);\n\n setInternalPageSize(newPageSize);\n\n if (!isControlled && newPage !== validCurrentPage) {\n setInternalCurrentPage(newPage);\n }\n\n onPageSizeChange?.(newPageSize);\n\n if (newPage !== validCurrentPage) {\n onPageChange?.(newPage);\n }\n },\n [totalItems, validCurrentPage, isControlled, onPageChange, onPageSizeChange]\n );\n\n return useMemo(\n () => ({\n totalItems,\n currentPage: validCurrentPage,\n pageSize,\n totalPages,\n startItem,\n endItem,\n hasPreviousPage,\n hasNextPage,\n goToPage,\n goToPreviousPage,\n goToNextPage,\n setPageSize,\n }),\n [\n totalItems,\n validCurrentPage,\n pageSize,\n totalPages,\n startItem,\n endItem,\n hasPreviousPage,\n hasNextPage,\n goToPage,\n goToPreviousPage,\n goToNextPage,\n setPageSize,\n ]\n );\n}\n","/**\n * Pre-compiled en messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Current page`,\n goToNextPage: `Go to next page`,\n goToPreviousPage: `Go to previous page`,\n itemsPerPage: `Items per page`,\n itemsPerPageText: `items per page`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `of ${args.totalPages}`,\n page: `Page`,\n pagination: `Pagination`,\n};\n","/**\n * Pre-compiled de messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Aktuelle Seite`,\n goToNextPage: `Weiter zur nächsten Seite`,\n goToPreviousPage: `Zur vorherigen Seite`,\n itemsPerPage: `Artikel pro Seite`,\n itemsPerPageText: `Artikel pro Seite`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `von ${args.totalPages}`,\n page: `Seite`,\n pagination: `Seitennummerierung`,\n};\n","/**\n * Pre-compiled es messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Página actual`,\n goToNextPage: `Ir a la siguiente página`,\n goToPreviousPage: `Ir a la página anterior`,\n itemsPerPage: `Artículos por página`,\n itemsPerPageText: `artículos por página`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `página`,\n pagination: `paginación`,\n};\n","/**\n * Pre-compiled fr-FR messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Page actuelle`,\n goToNextPage: `Aller à la page suivante`,\n goToPreviousPage: `Aller à la page précédente`,\n itemsPerPage: `Articles par page`,\n itemsPerPageText: `Articles par page`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `Page`,\n pagination: `Pagination`,\n};\n","/**\n * Pre-compiled pt-BR messages for Pagination\n * Generated by @internationalized/string-compiler\n * DO NOT EDIT MANUALLY\n */\n\nexport default {\n currentPage: `Página atual`,\n goToNextPage: `Ir para a próxima página`,\n goToPreviousPage: `Ir para a página anterior`,\n itemsPerPage: `Itens por página`,\n itemsPerPageText: `Itens por página`,\n ofTotalPages: (args: Record<string, string | number>) =>\n `de ${args.totalPages}`,\n page: `Página`,\n pagination: `Paginação`,\n};\n","/**\n * Pre-compiled localized messages for Pagination component\n *\n * Generated by scripts/generate-dictionaries.ts\n * DO NOT EDIT MANUALLY\n *\n * @see https://react-spectrum.adobe.com/react-aria/internationalization.html\n */\n\nimport {\n type LocalizedString,\n type LocalizedStrings,\n} from \"@internationalized/string\";\nimport { normalizeMessages } from \"../../utils/normalize-messages\";\n\n// Pre-compiled message functions\nimport paginationMessages_en from \"./intl/en\";\nimport paginationMessages_de from \"./intl/de\";\nimport paginationMessages_es from \"./intl/es\";\nimport paginationMessages_fr from \"./intl/fr-FR\";\nimport paginationMessages_pt from \"./intl/pt-BR\";\n\n// Raw LocalizedStrings object for use with useLocalizedStringFormatter hook\nexport const paginationMessagesStrings: LocalizedStrings<\n string,\n LocalizedString\n> = {\n en: normalizeMessages(paginationMessages_en),\n de: normalizeMessages(paginationMessages_de),\n es: normalizeMessages(paginationMessages_es),\n \"fr-FR\": normalizeMessages(paginationMessages_fr),\n \"pt-BR\": normalizeMessages(paginationMessages_pt),\n} as LocalizedStrings<string, LocalizedString>;\n\n/**\n * Available message keys for Pagination component\n */\nexport type PaginationMessageKey =\n | \"currentPage\"\n | \"goToNextPage\"\n | \"goToPreviousPage\"\n | \"itemsPerPage\"\n | \"itemsPerPageText\"\n | \"ofTotalPages\";\n","import { useMemo } from \"react\";\nimport { ChevronLeft, ChevronRight } from \"@commercetools/nimbus-icons\";\nimport {\n Flex,\n IconButton,\n NumberInput,\n Select,\n Stack,\n Text,\n} from \"@/components\";\nimport { usePagination } from \"./hooks/use-pagination\";\nimport type { PaginationProps } from \"./pagination.types\";\nimport { useLocalizedStringFormatter } from \"@/hooks\";\nimport { paginationMessagesStrings } from \"./pagination.messages\";\nimport { useLocale } from \"react-aria-components\";\n\n/**\n * # Pagination\n *\n * A component that allows users to navigate through pages and control page size.\n * Combines a page size selector and page navigator for comprehensive pagination control.\n *\n * @see {@link https://nimbus-documentation.vercel.app/components/pagination}\n */\nexport const Pagination = (props: PaginationProps) => {\n const { locale } = useLocale();\n const msg = useLocalizedStringFormatter(paginationMessagesStrings);\n const {\n totalItems,\n currentPage,\n pageSize,\n pageSizeOptions = [10, 20, 50, 100],\n onPageChange,\n onPageSizeChange,\n \"aria-label\": ariaLabel,\n enablePageInput = true,\n enablePageSizeSelector = true,\n } = props;\n\n const pagination = usePagination({\n totalItems,\n currentPage,\n pageSize,\n onPageChange,\n onPageSizeChange,\n });\n\n // Prepare page size options for select\n const pageSizeSelectOptions = useMemo(\n () =>\n pageSizeOptions.map((size) => ({\n id: size.toString(),\n name: `${size}`,\n })),\n [pageSizeOptions]\n );\n\n const handlePageSizeChange = (key: React.Key | null) => {\n if (key) {\n const newPageSize = parseInt(key.toString(), 10);\n pagination.setPageSize(newPageSize);\n }\n };\n\n return (\n <Stack gap=\"400\" direction={{ base: \"column\", sm: \"row\" }} align=\"center\">\n {/* Page Size Selector */}\n {enablePageSizeSelector && (\n <Flex align=\"center\" gap=\"200\">\n <Select.Root\n isClearable={false}\n selectedKey={pagination.pageSize.toString()}\n onSelectionChange={handlePageSizeChange}\n aria-label={msg.format(\"itemsPerPage\")}\n >\n <Select.Options>\n {pageSizeSelectOptions.map((option) => (\n <Select.Option key={option.id} id={option.id}>\n {option.name}\n </Select.Option>\n ))}\n </Select.Options>\n </Select.Root>\n <Text color=\"neutral.12\">{msg.format(\"itemsPerPageText\")}</Text>\n </Flex>\n )}\n <Flex flexGrow=\"1\" />\n {/* Page Navigator */}\n <Flex\n align=\"center\"\n gap=\"200\"\n role=\"navigation\"\n aria-label={ariaLabel ?? msg.format(\"pagination\")}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={msg.format(\"goToPreviousPage\")}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{msg.format(\"page\")}</Text>\n {enablePageInput ? (\n <NumberInput\n value={pagination.currentPage}\n onChange={(value: number | undefined) =>\n pagination.goToPage(value || 1)\n }\n minValue={1}\n maxValue={pagination.totalPages}\n step={1}\n isDisabled={false}\n width=\"9ch\"\n aria-label={msg.format(\"currentPage\")}\n aria-current=\"page\"\n />\n ) : (\n <Text fontWeight=\"semibold\" color=\"neutral.12\" aria-current=\"page\">\n {pagination.currentPage}\n </Text>\n )}\n <Text color=\"neutral.12\">\n {(() => {\n // Format the number with locale-specific formatting\n const formattedTotalPages = new Intl.NumberFormat(locale).format(\n pagination.totalPages\n );\n\n return msg.format(\"ofTotalPages\", {\n totalPages: formattedTotalPages,\n });\n })()}\n </Text>\n </Flex>\n\n <IconButton\n onClick={pagination.goToNextPage}\n isDisabled={!pagination.hasNextPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={msg.format(\"goToNextPage\")}\n >\n <ChevronRight />\n </IconButton>\n </Flex>\n </Stack>\n );\n};\n\n// Manually assign a displayName for debugging purposes\nPagination.displayName = \"Pagination\";\n"],"names":["usePagination","totalItems","controlledCurrentPage","controlledPageSize","onPageChange","onPageSizeChange","internalCurrentPage","setInternalCurrentPage","useState","internalPageSize","setInternalPageSize","isControlled","currentPage","pageSize","totalPages","validCurrentPage","startItem","endItem","hasPreviousPage","hasNextPage","goToPage","useCallback","page","newPage","goToPreviousPage","goToNextPage","setPageSize","newPageSize","newTotalPages","useMemo","paginationMessages_en","args","paginationMessages_de","paginationMessages_es","paginationMessages_fr","paginationMessages_pt","paginationMessagesStrings","normalizeMessages","Pagination","props","locale","useLocale","msg","useLocalizedStringFormatter","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","formattedTotalPages","ChevronRight"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const n=require("./toast.toasters-oRICplwM.cjs.js");function L(s){if(s)return{label:s.label,onClick:s.onPress}}class u{static instance;toastPlacements=new Map;constructor(){}static getInstance(){return u.instance||(u.instance=new u),u.instance}normalizePlacement(t){return t&&n.ALL_PLACEMENTS.includes(t)?t:n.DEFAULT_PLACEMENT}create(t){const e=t||{},a=this.normalizePlacement(e.placement),i=n.getToaster(a);if(!i)throw new Error(`Toaster not found for placement: ${a}`);const l=e.duration??n.DEFAULT_DURATION,c=e.closable??l===1/0,{action:f,icon:m,"aria-live":p,...v}=e,r=L(f),E={...v,action:r,duration:l,pauseOnInteraction:e.pauseOnInteraction??!0,meta:{closable:c,variant:e.variant??"accent-start",icon:m,"aria-live":p}},A=i.create(E);return this.toastPlacements.set(A,a),A}update(t,e){if(!t)return;const a=this.toastPlacements.get(t)||n.DEFAULT_PLACEMENT,i=n.getToaster(a);if(i){const{action:l,icon:c,variant:f,closable:m,"aria-live":p,...v}=e,r={};c!==void 0&&(r.icon=c),f!==void 0&&(r.variant=f),m!==void 0&&(r.closable=m),p!==void 0&&(r["aria-live"]=p),i.update(t,{...v,action:L(l),...Object.keys(r).length>0?{meta:r}:{}})}}dismiss(t){if(t){const e=this.toastPlacements.get(t)||n.DEFAULT_PLACEMENT,a=n.getToaster(e);a&&a.dismiss(t),this.toastPlacements.delete(t)}else n.ALL_PLACEMENTS.forEach(e=>{const a=n.getToaster(e);a&&a.dismiss()}),this.toastPlacements.clear()}remove(t){if(t){const e=this.toastPlacements.get(t)||n.DEFAULT_PLACEMENT,a=n.getToaster(e);a&&a.remove(t),this.toastPlacements.delete(t)}else n.ALL_PLACEMENTS.forEach(e=>{const a=n.getToaster(e);a&&a.remove()}),this.toastPlacements.clear()}info(t){return this.create({...t,type:"info"})}success(t){return this.create({...t,type:"success"})}warning(t){return this.create({...t,type:"warning"})}error(t){return this.create({...t,type:"error"})}promise(t,e,a){const i=this.normalizePlacement(a?.placement),l=n.getToaster(i);if(l){const c=m=>{const{action:p,icon:v,variant:r,closable:E,"aria-live":A,...P}=m,d=m.duration??n.DEFAULT_DURATION,T=E??d===1/0;return{...P,duration:d,action:L(p),meta:{closable:T,variant:r??"accent-start",icon:v,"aria-live":A}}},f={loading:c(e.loading),success:c(e.success),error:c(e.error)};l.promise(t,f)}}reset(){this.toastPlacements.clear()}}const o=u.getInstance(),g=Object.assign(s=>o.create(s),{info:s=>o.info(s),success:s=>o.success(s),warning:s=>o.warning(s),error:s=>o.error(s),promise:(s,t,e)=>o.promise(s,t,e),update:(s,t)=>o.update(s,t),dismiss:s=>o.dismiss(s),remove:s=>o.remove(s),reset:()=>o.reset()});exports.ToastManager=u;exports.toast=g;
|
|
2
|
-
//# sourceMappingURL=toast.manager-C-xQVs3Q.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast.manager-C-xQVs3Q.cjs.js","sources":["../../src/components/toast/services/toast.manager.ts"],"sourcesContent":["import type {\n ToastAction,\n ToastOptions,\n ToastPlacement,\n ToastManagerApi,\n ToastPromiseOptions,\n} from \"../toast.types\";\nimport { getToaster } from \"./toast.toasters\";\nimport {\n DEFAULT_DURATION,\n DEFAULT_PLACEMENT,\n ALL_PLACEMENTS,\n} from \"../constants\";\n\n/**\n * Map action to the shape expected by the internal toast infrastructure.\n */\nfunction mapAction(\n action: ToastAction | undefined\n): { label: string; onClick: () => void } | undefined {\n if (!action) return undefined;\n return { label: action.label, onClick: action.onPress };\n}\n\n/**\n * ToastManager - Singleton class managing multiple toaster instances per placement.\n *\n * Architecture:\n * - ID-to-placement routing: Tracks which toast ID belongs to which placement\n * - Convenience methods: info(), success(), warning(), error() methods\n * - Promise support: promise() method that transitions loading → success/error\n * - Default duration: 6000ms, consumer-controlled (action does not override)\n */\nclass ToastManager implements ToastManagerApi {\n private static instance: ToastManager;\n private toastPlacements: Map<string, ToastPlacement> = new Map();\n\n private constructor() {\n // Private constructor for singleton\n }\n\n /**\n * Get singleton instance of ToastManager.\n */\n public static getInstance(): ToastManager {\n if (!ToastManager.instance) {\n ToastManager.instance = new ToastManager();\n }\n return ToastManager.instance;\n }\n\n /**\n * Validate and normalize placement value.\n */\n private normalizePlacement(placement?: ToastPlacement): ToastPlacement {\n if (placement && ALL_PLACEMENTS.includes(placement)) {\n return placement;\n }\n return DEFAULT_PLACEMENT;\n }\n\n /**\n * Create a toast and return its ID.\n */\n public create(options: ToastOptions): string {\n const safeOptions = options || {};\n const placement = this.normalizePlacement(safeOptions.placement);\n const toaster = getToaster(placement);\n\n if (!toaster) {\n throw new Error(`Toaster not found for placement: ${placement}`);\n }\n\n const duration = safeOptions.duration ?? DEFAULT_DURATION;\n\n // Enforce closable: true for persistent toasts (duration: Infinity)\n // so the user always has a way to dismiss them.\n const closable =\n safeOptions.closable ?? (duration === Infinity ? true : false);\n\n // Destructure `action` and `icon` to map them to the internal format.\n // `icon` is tunneled through meta so the outlet can access it.\n const {\n action: consumerAction,\n icon,\n \"aria-live\": ariaLive,\n ...restOptions\n } = safeOptions;\n const action = mapAction(consumerAction);\n\n const toastOptions = {\n ...restOptions,\n action,\n duration,\n pauseOnInteraction: safeOptions.pauseOnInteraction ?? true,\n meta: {\n closable,\n variant: safeOptions.variant ?? \"accent-start\",\n icon,\n \"aria-live\": ariaLive,\n },\n };\n\n const id = toaster.create(toastOptions);\n this.toastPlacements.set(id, placement);\n\n return id;\n }\n\n /**\n * Update an existing toast.\n */\n public update(id: string, options: Partial<ToastOptions>): void {\n if (!id) return;\n\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n\n if (toaster) {\n const {\n action,\n icon,\n variant,\n closable,\n \"aria-live\": updateAriaLive,\n ...rest\n } = options;\n const metaUpdate: Record<string, unknown> = {};\n if (icon !== undefined) metaUpdate.icon = icon;\n if (variant !== undefined) metaUpdate.variant = variant;\n if (closable !== undefined) metaUpdate.closable = closable;\n if (updateAriaLive !== undefined)\n metaUpdate[\"aria-live\"] = updateAriaLive;\n\n toaster.update(id, {\n ...rest,\n action: mapAction(action),\n ...(Object.keys(metaUpdate).length > 0 ? { meta: metaUpdate } : {}),\n });\n }\n }\n\n /**\n * Dismiss toast(s) with exit animation.\n * If no ID is provided, dismisses all toasts across all placements.\n */\n public dismiss(id?: string): void {\n if (id) {\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.dismiss(id);\n }\n this.toastPlacements.delete(id);\n } else {\n ALL_PLACEMENTS.forEach((placement) => {\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.dismiss();\n }\n });\n this.toastPlacements.clear();\n }\n }\n\n /**\n * Remove toast(s) immediately without exit animation.\n * If no ID is provided, removes all toasts across all placements.\n */\n public remove(id?: string): void {\n if (id) {\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.remove(id);\n }\n this.toastPlacements.delete(id);\n } else {\n ALL_PLACEMENTS.forEach((placement) => {\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.remove();\n }\n });\n this.toastPlacements.clear();\n }\n }\n\n public info(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"info\" });\n }\n\n public success(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"success\" });\n }\n\n public warning(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"warning\" });\n }\n\n public error(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"error\" });\n }\n\n /**\n * Create promise toast with loading/success/error states.\n */\n public promise(\n promise: Promise<unknown>,\n options: ToastPromiseOptions,\n config?: Pick<ToastOptions, \"placement\">\n ): void {\n const placement = this.normalizePlacement(config?.placement);\n const toaster = getToaster(placement);\n\n if (toaster) {\n const mapState = (stateOptions: ToastOptions) => {\n const {\n action: consumerAction,\n icon,\n variant,\n closable,\n \"aria-live\": stateAriaLive,\n ...rest\n } = stateOptions;\n const duration = stateOptions.duration ?? DEFAULT_DURATION;\n const resolvedClosable =\n closable ?? (duration === Infinity ? true : false);\n return {\n ...rest,\n duration,\n action: mapAction(consumerAction),\n meta: {\n closable: resolvedClosable,\n variant: variant ?? \"accent-start\",\n icon,\n \"aria-live\": stateAriaLive,\n },\n };\n };\n\n const mapped = {\n loading: mapState(options.loading),\n success: mapState(options.success),\n error: mapState(options.error),\n };\n toaster.promise(promise, mapped);\n }\n }\n\n /**\n * Reset manager state (for testing only).\n *\n * Clears the ID-to-placement map and resets all underlying toaster\n * instances so tests start from a clean slate.\n */\n public reset(): void {\n this.toastPlacements.clear();\n }\n}\n\nconst manager = ToastManager.getInstance();\n\n/**\n * Imperative toast API.\n *\n * @example\n * ```tsx\n * // Create toast\n * const id = toast({ title: \"Success\", description: \"Operation completed\", type: \"success\" });\n *\n * // Convenience methods\n * toast.info({ title: \"Information\", description: \"Something happened\" });\n * toast.success({ title: \"Success\", description: \"Operation completed\" });\n * toast.warning({ title: \"Warning\", description: \"Please review\" });\n * toast.error({ title: \"Error\", description: \"Something went wrong\" });\n *\n * // With variant (default is \"solid\")\n * toast.info({ title: \"Subtle info\", description: \"Additional context\", variant: \"subtle\" });\n * toast.success({ title: \"Bold success\", description: \"Changes saved\", variant: \"solid\" });\n *\n * // With close button (off by default)\n * toast.info({ title: \"Closable\", description: \"Can be dismissed\", closable: true });\n *\n * // With action button\n * toast({\n * title: \"Action required\",\n * description: \"File was deleted\",\n * action: { label: \"Undo\", onPress: () => {} }\n * });\n *\n * // Promise pattern\n * toast.promise(fetchData(), {\n * loading: { title: \"Loading...\", description: \"Please wait\" },\n * success: { title: \"Done!\", description: \"Data loaded\" },\n * error: { title: \"Failed!\", description: \"Could not load data\" }\n * });\n *\n * // Dismiss\n * toast.dismiss(id);\n * toast.dismiss(); // Dismiss all\n *\n * // Remove immediately\n * toast.remove(id);\n * toast.remove(); // Remove all\n * ```\n */\nexport const toast = Object.assign(\n (options: ToastOptions) => manager.create(options),\n {\n info: (options: Omit<ToastOptions, \"type\">) => manager.info(options),\n success: (options: Omit<ToastOptions, \"type\">) => manager.success(options),\n warning: (options: Omit<ToastOptions, \"type\">) => manager.warning(options),\n error: (options: Omit<ToastOptions, \"type\">) => manager.error(options),\n promise: (\n promise: Promise<unknown>,\n options: ToastPromiseOptions,\n config?: Pick<ToastOptions, \"placement\">\n ) => manager.promise(promise, options, config),\n update: (id: string, options: Partial<ToastOptions>) =>\n manager.update(id, options),\n dismiss: (id?: string) => manager.dismiss(id),\n remove: (id?: string) => manager.remove(id),\n reset: () => manager.reset(),\n }\n);\n\n// Export ToastManager class for testing\nexport { ToastManager };\n"],"names":["mapAction","action","ToastManager","placement","ALL_PLACEMENTS","DEFAULT_PLACEMENT","options","safeOptions","toaster","getToaster","duration","DEFAULT_DURATION","closable","consumerAction","icon","ariaLive","restOptions","toastOptions","id","variant","updateAriaLive","rest","metaUpdate","promise","config","mapState","stateOptions","stateAriaLive","resolvedClosable","mapped","manager","toast"],"mappings":"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"}
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { A as g, D as h, g as m, b as E } from "./toast.toasters-Dw2i0QAB.es.js";
|
|
2
|
-
function b(s) {
|
|
3
|
-
if (s)
|
|
4
|
-
return { label: s.label, onClick: s.onPress };
|
|
5
|
-
}
|
|
6
|
-
class p {
|
|
7
|
-
static instance;
|
|
8
|
-
toastPlacements = /* @__PURE__ */ new Map();
|
|
9
|
-
constructor() {
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Get singleton instance of ToastManager.
|
|
13
|
-
*/
|
|
14
|
-
static getInstance() {
|
|
15
|
-
return p.instance || (p.instance = new p()), p.instance;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Validate and normalize placement value.
|
|
19
|
-
*/
|
|
20
|
-
normalizePlacement(t) {
|
|
21
|
-
return t && g.includes(t) ? t : h;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Create a toast and return its ID.
|
|
25
|
-
*/
|
|
26
|
-
create(t) {
|
|
27
|
-
const e = t || {}, a = this.normalizePlacement(e.placement), i = m(a);
|
|
28
|
-
if (!i)
|
|
29
|
-
throw new Error(`Toaster not found for placement: ${a}`);
|
|
30
|
-
const c = e.duration ?? E, o = e.closable ?? c === 1 / 0, {
|
|
31
|
-
action: u,
|
|
32
|
-
icon: l,
|
|
33
|
-
"aria-live": f,
|
|
34
|
-
...v
|
|
35
|
-
} = e, n = b(u), P = {
|
|
36
|
-
...v,
|
|
37
|
-
action: n,
|
|
38
|
-
duration: c,
|
|
39
|
-
pauseOnInteraction: e.pauseOnInteraction ?? !0,
|
|
40
|
-
meta: {
|
|
41
|
-
closable: o,
|
|
42
|
-
variant: e.variant ?? "accent-start",
|
|
43
|
-
icon: l,
|
|
44
|
-
"aria-live": f
|
|
45
|
-
}
|
|
46
|
-
}, d = i.create(P);
|
|
47
|
-
return this.toastPlacements.set(d, a), d;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Update an existing toast.
|
|
51
|
-
*/
|
|
52
|
-
update(t, e) {
|
|
53
|
-
if (!t) return;
|
|
54
|
-
const a = this.toastPlacements.get(t) || h, i = m(a);
|
|
55
|
-
if (i) {
|
|
56
|
-
const {
|
|
57
|
-
action: c,
|
|
58
|
-
icon: o,
|
|
59
|
-
variant: u,
|
|
60
|
-
closable: l,
|
|
61
|
-
"aria-live": f,
|
|
62
|
-
...v
|
|
63
|
-
} = e, n = {};
|
|
64
|
-
o !== void 0 && (n.icon = o), u !== void 0 && (n.variant = u), l !== void 0 && (n.closable = l), f !== void 0 && (n["aria-live"] = f), i.update(t, {
|
|
65
|
-
...v,
|
|
66
|
-
action: b(c),
|
|
67
|
-
...Object.keys(n).length > 0 ? { meta: n } : {}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Dismiss toast(s) with exit animation.
|
|
73
|
-
* If no ID is provided, dismisses all toasts across all placements.
|
|
74
|
-
*/
|
|
75
|
-
dismiss(t) {
|
|
76
|
-
if (t) {
|
|
77
|
-
const e = this.toastPlacements.get(t) || h, a = m(e);
|
|
78
|
-
a && a.dismiss(t), this.toastPlacements.delete(t);
|
|
79
|
-
} else
|
|
80
|
-
g.forEach((e) => {
|
|
81
|
-
const a = m(e);
|
|
82
|
-
a && a.dismiss();
|
|
83
|
-
}), this.toastPlacements.clear();
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Remove toast(s) immediately without exit animation.
|
|
87
|
-
* If no ID is provided, removes all toasts across all placements.
|
|
88
|
-
*/
|
|
89
|
-
remove(t) {
|
|
90
|
-
if (t) {
|
|
91
|
-
const e = this.toastPlacements.get(t) || h, a = m(e);
|
|
92
|
-
a && a.remove(t), this.toastPlacements.delete(t);
|
|
93
|
-
} else
|
|
94
|
-
g.forEach((e) => {
|
|
95
|
-
const a = m(e);
|
|
96
|
-
a && a.remove();
|
|
97
|
-
}), this.toastPlacements.clear();
|
|
98
|
-
}
|
|
99
|
-
info(t) {
|
|
100
|
-
return this.create({ ...t, type: "info" });
|
|
101
|
-
}
|
|
102
|
-
success(t) {
|
|
103
|
-
return this.create({ ...t, type: "success" });
|
|
104
|
-
}
|
|
105
|
-
warning(t) {
|
|
106
|
-
return this.create({ ...t, type: "warning" });
|
|
107
|
-
}
|
|
108
|
-
error(t) {
|
|
109
|
-
return this.create({ ...t, type: "error" });
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Create promise toast with loading/success/error states.
|
|
113
|
-
*/
|
|
114
|
-
promise(t, e, a) {
|
|
115
|
-
const i = this.normalizePlacement(a?.placement), c = m(i);
|
|
116
|
-
if (c) {
|
|
117
|
-
const o = (l) => {
|
|
118
|
-
const {
|
|
119
|
-
action: f,
|
|
120
|
-
icon: v,
|
|
121
|
-
variant: n,
|
|
122
|
-
closable: P,
|
|
123
|
-
"aria-live": d,
|
|
124
|
-
...L
|
|
125
|
-
} = l, A = l.duration ?? E, w = P ?? A === 1 / 0;
|
|
126
|
-
return {
|
|
127
|
-
...L,
|
|
128
|
-
duration: A,
|
|
129
|
-
action: b(f),
|
|
130
|
-
meta: {
|
|
131
|
-
closable: w,
|
|
132
|
-
variant: n ?? "accent-start",
|
|
133
|
-
icon: v,
|
|
134
|
-
"aria-live": d
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}, u = {
|
|
138
|
-
loading: o(e.loading),
|
|
139
|
-
success: o(e.success),
|
|
140
|
-
error: o(e.error)
|
|
141
|
-
};
|
|
142
|
-
c.promise(t, u);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Reset manager state (for testing only).
|
|
147
|
-
*
|
|
148
|
-
* Clears the ID-to-placement map and resets all underlying toaster
|
|
149
|
-
* instances so tests start from a clean slate.
|
|
150
|
-
*/
|
|
151
|
-
reset() {
|
|
152
|
-
this.toastPlacements.clear();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const r = /* @__PURE__ */ p.getInstance(), I = /* @__PURE__ */ Object.assign(
|
|
156
|
-
(s) => r.create(s),
|
|
157
|
-
{
|
|
158
|
-
info: (s) => r.info(s),
|
|
159
|
-
success: (s) => r.success(s),
|
|
160
|
-
warning: (s) => r.warning(s),
|
|
161
|
-
error: (s) => r.error(s),
|
|
162
|
-
promise: (s, t, e) => r.promise(s, t, e),
|
|
163
|
-
update: (s, t) => r.update(s, t),
|
|
164
|
-
dismiss: (s) => r.dismiss(s),
|
|
165
|
-
remove: (s) => r.remove(s),
|
|
166
|
-
reset: () => r.reset()
|
|
167
|
-
}
|
|
168
|
-
);
|
|
169
|
-
export {
|
|
170
|
-
p as T,
|
|
171
|
-
I as t
|
|
172
|
-
};
|
|
173
|
-
//# sourceMappingURL=toast.manager-Dj0xhoar.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toast.manager-Dj0xhoar.es.js","sources":["../../src/components/toast/services/toast.manager.ts"],"sourcesContent":["import type {\n ToastAction,\n ToastOptions,\n ToastPlacement,\n ToastManagerApi,\n ToastPromiseOptions,\n} from \"../toast.types\";\nimport { getToaster } from \"./toast.toasters\";\nimport {\n DEFAULT_DURATION,\n DEFAULT_PLACEMENT,\n ALL_PLACEMENTS,\n} from \"../constants\";\n\n/**\n * Map action to the shape expected by the internal toast infrastructure.\n */\nfunction mapAction(\n action: ToastAction | undefined\n): { label: string; onClick: () => void } | undefined {\n if (!action) return undefined;\n return { label: action.label, onClick: action.onPress };\n}\n\n/**\n * ToastManager - Singleton class managing multiple toaster instances per placement.\n *\n * Architecture:\n * - ID-to-placement routing: Tracks which toast ID belongs to which placement\n * - Convenience methods: info(), success(), warning(), error() methods\n * - Promise support: promise() method that transitions loading → success/error\n * - Default duration: 6000ms, consumer-controlled (action does not override)\n */\nclass ToastManager implements ToastManagerApi {\n private static instance: ToastManager;\n private toastPlacements: Map<string, ToastPlacement> = new Map();\n\n private constructor() {\n // Private constructor for singleton\n }\n\n /**\n * Get singleton instance of ToastManager.\n */\n public static getInstance(): ToastManager {\n if (!ToastManager.instance) {\n ToastManager.instance = new ToastManager();\n }\n return ToastManager.instance;\n }\n\n /**\n * Validate and normalize placement value.\n */\n private normalizePlacement(placement?: ToastPlacement): ToastPlacement {\n if (placement && ALL_PLACEMENTS.includes(placement)) {\n return placement;\n }\n return DEFAULT_PLACEMENT;\n }\n\n /**\n * Create a toast and return its ID.\n */\n public create(options: ToastOptions): string {\n const safeOptions = options || {};\n const placement = this.normalizePlacement(safeOptions.placement);\n const toaster = getToaster(placement);\n\n if (!toaster) {\n throw new Error(`Toaster not found for placement: ${placement}`);\n }\n\n const duration = safeOptions.duration ?? DEFAULT_DURATION;\n\n // Enforce closable: true for persistent toasts (duration: Infinity)\n // so the user always has a way to dismiss them.\n const closable =\n safeOptions.closable ?? (duration === Infinity ? true : false);\n\n // Destructure `action` and `icon` to map them to the internal format.\n // `icon` is tunneled through meta so the outlet can access it.\n const {\n action: consumerAction,\n icon,\n \"aria-live\": ariaLive,\n ...restOptions\n } = safeOptions;\n const action = mapAction(consumerAction);\n\n const toastOptions = {\n ...restOptions,\n action,\n duration,\n pauseOnInteraction: safeOptions.pauseOnInteraction ?? true,\n meta: {\n closable,\n variant: safeOptions.variant ?? \"accent-start\",\n icon,\n \"aria-live\": ariaLive,\n },\n };\n\n const id = toaster.create(toastOptions);\n this.toastPlacements.set(id, placement);\n\n return id;\n }\n\n /**\n * Update an existing toast.\n */\n public update(id: string, options: Partial<ToastOptions>): void {\n if (!id) return;\n\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n\n if (toaster) {\n const {\n action,\n icon,\n variant,\n closable,\n \"aria-live\": updateAriaLive,\n ...rest\n } = options;\n const metaUpdate: Record<string, unknown> = {};\n if (icon !== undefined) metaUpdate.icon = icon;\n if (variant !== undefined) metaUpdate.variant = variant;\n if (closable !== undefined) metaUpdate.closable = closable;\n if (updateAriaLive !== undefined)\n metaUpdate[\"aria-live\"] = updateAriaLive;\n\n toaster.update(id, {\n ...rest,\n action: mapAction(action),\n ...(Object.keys(metaUpdate).length > 0 ? { meta: metaUpdate } : {}),\n });\n }\n }\n\n /**\n * Dismiss toast(s) with exit animation.\n * If no ID is provided, dismisses all toasts across all placements.\n */\n public dismiss(id?: string): void {\n if (id) {\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.dismiss(id);\n }\n this.toastPlacements.delete(id);\n } else {\n ALL_PLACEMENTS.forEach((placement) => {\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.dismiss();\n }\n });\n this.toastPlacements.clear();\n }\n }\n\n /**\n * Remove toast(s) immediately without exit animation.\n * If no ID is provided, removes all toasts across all placements.\n */\n public remove(id?: string): void {\n if (id) {\n const placement = this.toastPlacements.get(id) || DEFAULT_PLACEMENT;\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.remove(id);\n }\n this.toastPlacements.delete(id);\n } else {\n ALL_PLACEMENTS.forEach((placement) => {\n const toaster = getToaster(placement);\n if (toaster) {\n toaster.remove();\n }\n });\n this.toastPlacements.clear();\n }\n }\n\n public info(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"info\" });\n }\n\n public success(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"success\" });\n }\n\n public warning(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"warning\" });\n }\n\n public error(options: Omit<ToastOptions, \"type\">): string {\n return this.create({ ...options, type: \"error\" });\n }\n\n /**\n * Create promise toast with loading/success/error states.\n */\n public promise(\n promise: Promise<unknown>,\n options: ToastPromiseOptions,\n config?: Pick<ToastOptions, \"placement\">\n ): void {\n const placement = this.normalizePlacement(config?.placement);\n const toaster = getToaster(placement);\n\n if (toaster) {\n const mapState = (stateOptions: ToastOptions) => {\n const {\n action: consumerAction,\n icon,\n variant,\n closable,\n \"aria-live\": stateAriaLive,\n ...rest\n } = stateOptions;\n const duration = stateOptions.duration ?? DEFAULT_DURATION;\n const resolvedClosable =\n closable ?? (duration === Infinity ? true : false);\n return {\n ...rest,\n duration,\n action: mapAction(consumerAction),\n meta: {\n closable: resolvedClosable,\n variant: variant ?? \"accent-start\",\n icon,\n \"aria-live\": stateAriaLive,\n },\n };\n };\n\n const mapped = {\n loading: mapState(options.loading),\n success: mapState(options.success),\n error: mapState(options.error),\n };\n toaster.promise(promise, mapped);\n }\n }\n\n /**\n * Reset manager state (for testing only).\n *\n * Clears the ID-to-placement map and resets all underlying toaster\n * instances so tests start from a clean slate.\n */\n public reset(): void {\n this.toastPlacements.clear();\n }\n}\n\nconst manager = ToastManager.getInstance();\n\n/**\n * Imperative toast API.\n *\n * @example\n * ```tsx\n * // Create toast\n * const id = toast({ title: \"Success\", description: \"Operation completed\", type: \"success\" });\n *\n * // Convenience methods\n * toast.info({ title: \"Information\", description: \"Something happened\" });\n * toast.success({ title: \"Success\", description: \"Operation completed\" });\n * toast.warning({ title: \"Warning\", description: \"Please review\" });\n * toast.error({ title: \"Error\", description: \"Something went wrong\" });\n *\n * // With variant (default is \"solid\")\n * toast.info({ title: \"Subtle info\", description: \"Additional context\", variant: \"subtle\" });\n * toast.success({ title: \"Bold success\", description: \"Changes saved\", variant: \"solid\" });\n *\n * // With close button (off by default)\n * toast.info({ title: \"Closable\", description: \"Can be dismissed\", closable: true });\n *\n * // With action button\n * toast({\n * title: \"Action required\",\n * description: \"File was deleted\",\n * action: { label: \"Undo\", onPress: () => {} }\n * });\n *\n * // Promise pattern\n * toast.promise(fetchData(), {\n * loading: { title: \"Loading...\", description: \"Please wait\" },\n * success: { title: \"Done!\", description: \"Data loaded\" },\n * error: { title: \"Failed!\", description: \"Could not load data\" }\n * });\n *\n * // Dismiss\n * toast.dismiss(id);\n * toast.dismiss(); // Dismiss all\n *\n * // Remove immediately\n * toast.remove(id);\n * toast.remove(); // Remove all\n * ```\n */\nexport const toast = Object.assign(\n (options: ToastOptions) => manager.create(options),\n {\n info: (options: Omit<ToastOptions, \"type\">) => manager.info(options),\n success: (options: Omit<ToastOptions, \"type\">) => manager.success(options),\n warning: (options: Omit<ToastOptions, \"type\">) => manager.warning(options),\n error: (options: Omit<ToastOptions, \"type\">) => manager.error(options),\n promise: (\n promise: Promise<unknown>,\n options: ToastPromiseOptions,\n config?: Pick<ToastOptions, \"placement\">\n ) => manager.promise(promise, options, config),\n update: (id: string, options: Partial<ToastOptions>) =>\n manager.update(id, options),\n dismiss: (id?: string) => manager.dismiss(id),\n remove: (id?: string) => manager.remove(id),\n reset: () => manager.reset(),\n }\n);\n\n// Export ToastManager class for testing\nexport { ToastManager };\n"],"names":["mapAction","action","ToastManager","placement","ALL_PLACEMENTS","DEFAULT_PLACEMENT","options","safeOptions","toaster","getToaster","duration","DEFAULT_DURATION","closable","consumerAction","icon","ariaLive","restOptions","toastOptions","id","variant","updateAriaLive","rest","metaUpdate","promise","config","mapState","stateOptions","stateAriaLive","resolvedClosable","mapped","manager","toast"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const u=require("react"),i=require("../components/utils.cjs");function c(e){return u.useMemo(()=>{if(!i.canUseDOM())return{isValid:!0,svgAttributes:{},innerSvgContent:e};const n=i.sanitizeSvg(e,{allowStyles:!1,forbiddenAttributes:[],forbiddenTags:[]});if(!n)return console.warn("InlineSvg: Failed to sanitize SVG data"),{isValid:!1,svgAttributes:{},innerSvgContent:""};const t=new DOMParser().parseFromString(n,"image/svg+xml").querySelector("svg");if(!t)return console.warn("InlineSvg: No SVG element found in markup"),{isValid:!1,svgAttributes:{},innerSvgContent:""};const r={};for(const s of Array.from(t.attributes)){const o=s.name.replace(/[-:]([a-z])/g,(S,a)=>a.toUpperCase());r[o]=s.value}return{isValid:!0,svgAttributes:r,innerSvgContent:t.innerHTML}},[e])}exports.useInlineSvg=c;
|
|
2
|
-
//# sourceMappingURL=use-inline-svg-BRhR4qWr.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-inline-svg-BRhR4qWr.cjs.js","sources":["../../src/components/inline-svg/hooks/use-inline-svg.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { sanitizeSvg, canUseDOM } from \"../utils\";\n\n/**\n * Hook for processing and sanitizing SVG data\n * @param data - Raw SVG markup as a string\n * @returns Processed SVG attributes, content, and sanitization status\n */\nexport function useInlineSvg(data: string) {\n // Process and sanitize SVG data in a single operation\n const processedSvg = useMemo(() => {\n if (!canUseDOM()) {\n return {\n isValid: true,\n svgAttributes: {},\n innerSvgContent: data,\n };\n }\n\n const sanitized = sanitizeSvg(data, {\n allowStyles: false,\n forbiddenAttributes: [],\n forbiddenTags: [],\n });\n\n if (!sanitized) {\n console.warn(\"InlineSvg: Failed to sanitize SVG data\");\n return {\n isValid: false,\n svgAttributes: {},\n innerSvgContent: \"\",\n };\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(sanitized, \"image/svg+xml\");\n const svgEl = doc.querySelector(\"svg\");\n\n if (!svgEl) {\n console.warn(\"InlineSvg: No SVG element found in markup\");\n return {\n isValid: false,\n svgAttributes: {},\n innerSvgContent: \"\",\n };\n }\n\n const attrs: Record<string, string> = {};\n\n // Preserve all attributes from the sanitized SVG element\n // Security: Only attributes that passed sanitization are included\n for (const attr of Array.from(svgEl.attributes)) {\n // Convert kebab-case and namespace prefixes to camelCase for React compatibility\n const reactAttrName = attr.name.replace(/[-:]([a-z])/g, (_, letter) =>\n letter.toUpperCase()\n );\n attrs[reactAttrName] = attr.value;\n }\n\n return {\n isValid: true,\n svgAttributes: attrs,\n innerSvgContent: svgEl.innerHTML,\n };\n }, [data]);\n\n return processedSvg;\n}\n"],"names":["useInlineSvg","data","useMemo","canUseDOM","sanitized","sanitizeSvg","svgEl","attrs","attr","reactAttrName","_","letter"],"mappings":"2EAQO,SAASA,EAAaC,EAAc,CA0DzC,OAxDqBC,EAAAA,QAAQ,IAAM,CACjC,GAAI,CAACC,EAAAA,YACH,MAAO,CACL,QAAS,GACT,cAAe,CAAA,EACf,gBAAiBF,CAAA,EAIrB,MAAMG,EAAYC,EAAAA,YAAYJ,EAAM,CAClC,YAAa,GACb,oBAAqB,CAAA,EACrB,cAAe,CAAA,CAAC,CACjB,EAED,GAAI,CAACG,EACH,eAAQ,KAAK,wCAAwC,EAC9C,CACL,QAAS,GACT,cAAe,CAAA,EACf,gBAAiB,EAAA,EAMrB,MAAME,EAFS,IAAI,UAAA,EACA,gBAAgBF,EAAW,eAAe,EAC3C,cAAc,KAAK,EAErC,GAAI,CAACE,EACH,eAAQ,KAAK,2CAA2C,EACjD,CACL,QAAS,GACT,cAAe,CAAA,EACf,gBAAiB,EAAA,EAIrB,MAAMC,EAAgC,CAAA,EAItC,UAAWC,KAAQ,MAAM,KAAKF,EAAM,UAAU,EAAG,CAE/C,MAAMG,EAAgBD,EAAK,KAAK,QAAQ,eAAgB,CAACE,EAAGC,IAC1DA,EAAO,YAAA,CAAY,EAErBJ,EAAME,CAAa,EAAID,EAAK,KAC9B,CAEA,MAAO,CACL,QAAS,GACT,cAAeD,EACf,gBAAiBD,EAAM,SAAA,CAE3B,EAAG,CAACL,CAAI,CAAC,CAGX"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { useMemo as a } from "react";
|
|
2
|
-
import { canUseDOM as l, sanitizeSvg as g } from "../components/utils.es.js";
|
|
3
|
-
function m(e) {
|
|
4
|
-
return a(() => {
|
|
5
|
-
if (!l())
|
|
6
|
-
return {
|
|
7
|
-
isValid: !0,
|
|
8
|
-
svgAttributes: {},
|
|
9
|
-
innerSvgContent: e
|
|
10
|
-
};
|
|
11
|
-
const r = g(e, {
|
|
12
|
-
allowStyles: !1,
|
|
13
|
-
forbiddenAttributes: [],
|
|
14
|
-
forbiddenTags: []
|
|
15
|
-
});
|
|
16
|
-
if (!r)
|
|
17
|
-
return console.warn("InlineSvg: Failed to sanitize SVG data"), {
|
|
18
|
-
isValid: !1,
|
|
19
|
-
svgAttributes: {},
|
|
20
|
-
innerSvgContent: ""
|
|
21
|
-
};
|
|
22
|
-
const t = new DOMParser().parseFromString(r, "image/svg+xml").querySelector("svg");
|
|
23
|
-
if (!t)
|
|
24
|
-
return console.warn("InlineSvg: No SVG element found in markup"), {
|
|
25
|
-
isValid: !1,
|
|
26
|
-
svgAttributes: {},
|
|
27
|
-
innerSvgContent: ""
|
|
28
|
-
};
|
|
29
|
-
const n = {};
|
|
30
|
-
for (const s of Array.from(t.attributes)) {
|
|
31
|
-
const i = s.name.replace(
|
|
32
|
-
/[-:]([a-z])/g,
|
|
33
|
-
(f, o) => o.toUpperCase()
|
|
34
|
-
);
|
|
35
|
-
n[i] = s.value;
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
isValid: !0,
|
|
39
|
-
svgAttributes: n,
|
|
40
|
-
innerSvgContent: t.innerHTML
|
|
41
|
-
};
|
|
42
|
-
}, [e]);
|
|
43
|
-
}
|
|
44
|
-
export {
|
|
45
|
-
m as u
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=use-inline-svg-D-aaBVBt.es.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-inline-svg-D-aaBVBt.es.js","sources":["../../src/components/inline-svg/hooks/use-inline-svg.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { sanitizeSvg, canUseDOM } from \"../utils\";\n\n/**\n * Hook for processing and sanitizing SVG data\n * @param data - Raw SVG markup as a string\n * @returns Processed SVG attributes, content, and sanitization status\n */\nexport function useInlineSvg(data: string) {\n // Process and sanitize SVG data in a single operation\n const processedSvg = useMemo(() => {\n if (!canUseDOM()) {\n return {\n isValid: true,\n svgAttributes: {},\n innerSvgContent: data,\n };\n }\n\n const sanitized = sanitizeSvg(data, {\n allowStyles: false,\n forbiddenAttributes: [],\n forbiddenTags: [],\n });\n\n if (!sanitized) {\n console.warn(\"InlineSvg: Failed to sanitize SVG data\");\n return {\n isValid: false,\n svgAttributes: {},\n innerSvgContent: \"\",\n };\n }\n\n const parser = new DOMParser();\n const doc = parser.parseFromString(sanitized, \"image/svg+xml\");\n const svgEl = doc.querySelector(\"svg\");\n\n if (!svgEl) {\n console.warn(\"InlineSvg: No SVG element found in markup\");\n return {\n isValid: false,\n svgAttributes: {},\n innerSvgContent: \"\",\n };\n }\n\n const attrs: Record<string, string> = {};\n\n // Preserve all attributes from the sanitized SVG element\n // Security: Only attributes that passed sanitization are included\n for (const attr of Array.from(svgEl.attributes)) {\n // Convert kebab-case and namespace prefixes to camelCase for React compatibility\n const reactAttrName = attr.name.replace(/[-:]([a-z])/g, (_, letter) =>\n letter.toUpperCase()\n );\n attrs[reactAttrName] = attr.value;\n }\n\n return {\n isValid: true,\n svgAttributes: attrs,\n innerSvgContent: svgEl.innerHTML,\n };\n }, [data]);\n\n return processedSvg;\n}\n"],"names":["useInlineSvg","data","useMemo","canUseDOM","sanitized","sanitizeSvg","svgEl","attrs","attr","reactAttrName","_","letter"],"mappings":";;AAQO,SAASA,EAAaC,GAAc;AA0DzC,SAxDqBC,EAAQ,MAAM;AACjC,QAAI,CAACC;AACH,aAAO;AAAA,QACL,SAAS;AAAA,QACT,eAAe,CAAA;AAAA,QACf,iBAAiBF;AAAA,MAAA;AAIrB,UAAMG,IAAYC,EAAYJ,GAAM;AAAA,MAClC,aAAa;AAAA,MACb,qBAAqB,CAAA;AAAA,MACrB,eAAe,CAAA;AAAA,IAAC,CACjB;AAED,QAAI,CAACG;AACH,qBAAQ,KAAK,wCAAwC,GAC9C;AAAA,QACL,SAAS;AAAA,QACT,eAAe,CAAA;AAAA,QACf,iBAAiB;AAAA,MAAA;AAMrB,UAAME,IAFS,IAAI,UAAA,EACA,gBAAgBF,GAAW,eAAe,EAC3C,cAAc,KAAK;AAErC,QAAI,CAACE;AACH,qBAAQ,KAAK,2CAA2C,GACjD;AAAA,QACL,SAAS;AAAA,QACT,eAAe,CAAA;AAAA,QACf,iBAAiB;AAAA,MAAA;AAIrB,UAAMC,IAAgC,CAAA;AAItC,eAAWC,KAAQ,MAAM,KAAKF,EAAM,UAAU,GAAG;AAE/C,YAAMG,IAAgBD,EAAK,KAAK;AAAA,QAAQ;AAAA,QAAgB,CAACE,GAAGC,MAC1DA,EAAO,YAAA;AAAA,MAAY;AAErB,MAAAJ,EAAME,CAAa,IAAID,EAAK;AAAA,IAC9B;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,eAAeD;AAAA,MACf,iBAAiBD,EAAM;AAAA,IAAA;AAAA,EAE3B,GAAG,CAACL,CAAI,CAAC;AAGX;"}
|