@commercetools/nimbus 0.0.0-canary-20251121163008 → 0.0.0-canary-20251126142302
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/{CollectionBuilder-ZlIN4SR4.es.js → CollectionBuilder-BnYe2z4W.es.js} +1 -19
- package/dist/chunks/{CollectionBuilder-ZlIN4SR4.es.js.map → CollectionBuilder-BnYe2z4W.es.js.map} +1 -1
- package/dist/chunks/{CollectionBuilder-BipvtvSl.cjs.js → CollectionBuilder-DjRx57vm.cjs.js} +2 -18
- package/dist/chunks/{CollectionBuilder-BipvtvSl.cjs.js.map → CollectionBuilder-DjRx57vm.cjs.js.map} +1 -1
- package/dist/chunks/{DatePicker-DeknOPX6.es.js → DatePicker-9m2POezC.es.js} +2 -2
- package/dist/chunks/{DatePicker-DeknOPX6.es.js.map → DatePicker-9m2POezC.es.js.map} +1 -1
- package/dist/chunks/{DatePicker-DGLrUdLu.cjs.js → DatePicker-BGFu7oAQ.cjs.js} +2 -2
- package/dist/chunks/{DatePicker-DGLrUdLu.cjs.js.map → DatePicker-BGFu7oAQ.cjs.js.map} +1 -1
- package/dist/chunks/{Dialog-DUbUCf4o.es.js → Dialog-DcnmO0xr.es.js} +5 -5
- package/dist/chunks/{Dialog-DUbUCf4o.es.js.map → Dialog-DcnmO0xr.es.js.map} +1 -1
- package/dist/chunks/{Dialog-Ye_7tQZU.cjs.js → Dialog-flHBRP1h.cjs.js} +2 -2
- package/dist/chunks/{Dialog-Ye_7tQZU.cjs.js.map → Dialog-flHBRP1h.cjs.js.map} +1 -1
- package/dist/chunks/{Header-Bvo6aMcQ.es.js → Header-CliQVNVa.es.js} +3 -3
- package/dist/chunks/{Header-Bvo6aMcQ.es.js.map → Header-CliQVNVa.es.js.map} +1 -1
- package/dist/chunks/{Header-Bvl-gjeR.cjs.js → Header-CyskU0rw.cjs.js} +2 -2
- package/dist/chunks/{Header-Bvl-gjeR.cjs.js.map → Header-CyskU0rw.cjs.js.map} +1 -1
- package/dist/chunks/{ListBox-Dcnj8pHo.cjs.js → ListBox-BjV-0DWh.cjs.js} +2 -2
- package/dist/chunks/{ListBox-Dcnj8pHo.cjs.js.map → ListBox-BjV-0DWh.cjs.js.map} +1 -1
- package/dist/chunks/{ListBox-C8TVMFFY.es.js → ListBox-CcSs4yTw.es.js} +6 -6
- package/dist/chunks/{ListBox-C8TVMFFY.es.js.map → ListBox-CcSs4yTw.es.js.map} +1 -1
- package/dist/chunks/{Modal-CMJEwrBs.es.js → Modal-3QPNDzpi.es.js} +3 -3
- package/dist/chunks/{Modal-CMJEwrBs.es.js.map → Modal-3QPNDzpi.es.js.map} +1 -1
- package/dist/chunks/{Modal-DjOIA2BE.cjs.js → Modal-mFYEMNT-.cjs.js} +2 -2
- package/dist/chunks/{Modal-DjOIA2BE.cjs.js.map → Modal-mFYEMNT-.cjs.js.map} +1 -1
- package/dist/chunks/{SelectionManager-bgcDT3lR.es.js → SelectionManager-B0Cb1kHW.es.js} +2 -2
- package/dist/chunks/{SelectionManager-bgcDT3lR.es.js.map → SelectionManager-B0Cb1kHW.es.js.map} +1 -1
- package/dist/chunks/{SelectionManager-CCETIs4l.cjs.js → SelectionManager-D9tuw16C.cjs.js} +2 -2
- package/dist/chunks/{SelectionManager-CCETIs4l.cjs.js.map → SelectionManager-D9tuw16C.cjs.js.map} +1 -1
- package/dist/chunks/{Separator-DyU2njbj.cjs.js → Separator-BvA4UGuq.cjs.js} +2 -2
- package/dist/chunks/{Separator-DyU2njbj.cjs.js.map → Separator-BvA4UGuq.cjs.js.map} +1 -1
- package/dist/chunks/{Separator-BmVimNX_.es.js → Separator-DP89PKAS.es.js} +2 -2
- package/dist/chunks/{Separator-BmVimNX_.es.js.map → Separator-DP89PKAS.es.js.map} +1 -1
- package/dist/chunks/{combobox-BAOSfyZz.cjs.js → combobox-CPndQJhl.cjs.js} +2 -2
- package/dist/chunks/{combobox-BAOSfyZz.cjs.js.map → combobox-CPndQJhl.cjs.js.map} +1 -1
- package/dist/chunks/{combobox-D-sXUVsS.es.js → combobox-DVGJtTY-.es.js} +9 -9
- package/dist/chunks/{combobox-D-sXUVsS.es.js.map → combobox-DVGJtTY-.es.js.map} +1 -1
- package/dist/chunks/{data-table-q_xAC6Y4.cjs.js → data-table-DhijpIzD.cjs.js} +2 -2
- package/dist/chunks/{data-table-q_xAC6Y4.cjs.js.map → data-table-DhijpIzD.cjs.js.map} +1 -1
- package/dist/chunks/{data-table-VGdNqVuy.es.js → data-table-mOrhnFve.es.js} +11 -11
- package/dist/chunks/{data-table-VGdNqVuy.es.js.map → data-table-mOrhnFve.es.js.map} +1 -1
- package/dist/chunks/{date-picker-Bx4kkIdC.cjs.js → date-picker-B4MhmcwJ.cjs.js} +2 -2
- package/dist/chunks/{date-picker-Bx4kkIdC.cjs.js.map → date-picker-B4MhmcwJ.cjs.js.map} +1 -1
- package/dist/chunks/{date-picker-CRo_w6Jz.es.js → date-picker-DoN3I22T.es.js} +3 -3
- package/dist/chunks/{date-picker-CRo_w6Jz.es.js.map → date-picker-DoN3I22T.es.js.map} +1 -1
- package/dist/chunks/{date-range-picker-BcY8cXPH.cjs.js → date-range-picker-Bsu09Yvu.cjs.js} +2 -2
- package/dist/chunks/{date-range-picker-BcY8cXPH.cjs.js.map → date-range-picker-Bsu09Yvu.cjs.js.map} +1 -1
- package/dist/chunks/{date-range-picker-CrFq736s.es.js → date-range-picker-CY4y1m0B.es.js} +3 -3
- package/dist/chunks/{date-range-picker-CrFq736s.es.js.map → date-range-picker-CY4y1m0B.es.js.map} +1 -1
- package/dist/chunks/{date-range-picker-field-BDCEC-kA.cjs.js → date-range-picker-field-CgO9OoyB.cjs.js} +2 -2
- package/dist/chunks/{date-range-picker-field-BDCEC-kA.cjs.js.map → date-range-picker-field-CgO9OoyB.cjs.js.map} +1 -1
- package/dist/chunks/{date-range-picker-field-L56QHJs-.es.js → date-range-picker-field-_f1tY_ZQ.es.js} +3 -3
- package/dist/chunks/{date-range-picker-field-L56QHJs-.es.js.map → date-range-picker-field-_f1tY_ZQ.es.js.map} +1 -1
- package/dist/chunks/{dialog-BHTOGgtN.cjs.js → dialog-BiE3sKA_.cjs.js} +2 -2
- package/dist/chunks/{dialog-BHTOGgtN.cjs.js.map → dialog-BiE3sKA_.cjs.js.map} +1 -1
- package/dist/chunks/{dialog-DGko_UBT.es.js → dialog-g2eRAaPW.es.js} +3 -3
- package/dist/chunks/{dialog-DGko_UBT.es.js.map → dialog-g2eRAaPW.es.js.map} +1 -1
- package/dist/chunks/{draggable-list-Dk7BxgW-.es.js → draggable-list-CQ7h_F__.es.js} +9 -9
- package/dist/chunks/{draggable-list-Dk7BxgW-.es.js.map → draggable-list-CQ7h_F__.es.js.map} +1 -1
- package/dist/chunks/{draggable-list-BPM-ioyq.cjs.js → draggable-list-DArcamJL.cjs.js} +2 -2
- package/dist/chunks/{draggable-list-BPM-ioyq.cjs.js.map → draggable-list-DArcamJL.cjs.js.map} +1 -1
- package/dist/chunks/{drawer-DbQScPqa.cjs.js → drawer-80jf-a5D.cjs.js} +2 -2
- package/dist/chunks/{drawer-DbQScPqa.cjs.js.map → drawer-80jf-a5D.cjs.js.map} +1 -1
- package/dist/chunks/{drawer-BUiIQ9L5.es.js → drawer-CdfOinPU.es.js} +3 -3
- package/dist/chunks/{drawer-BUiIQ9L5.es.js.map → drawer-CdfOinPU.es.js.map} +1 -1
- package/dist/chunks/{form-field-CJHX6A4q.cjs.js → form-field-Ca3k84cH.cjs.js} +2 -2
- package/dist/chunks/{form-field-CJHX6A4q.cjs.js.map → form-field-Ca3k84cH.cjs.js.map} +1 -1
- package/dist/chunks/{form-field-CGjPf6rA.es.js → form-field-CzFcczIs.es.js} +2 -2
- package/dist/chunks/{form-field-CGjPf6rA.es.js.map → form-field-CzFcczIs.es.js.map} +1 -1
- package/dist/chunks/{localized-field-Cb0fyOZF.cjs.js → localized-field-BJXrxOc7.cjs.js} +2 -2
- package/dist/chunks/{localized-field-Cb0fyOZF.cjs.js.map → localized-field-BJXrxOc7.cjs.js.map} +1 -1
- package/dist/chunks/{localized-field-DFQ6Knzt.es.js → localized-field-Bq8xTkHi.es.js} +7 -7
- package/dist/chunks/{localized-field-DFQ6Knzt.es.js.map → localized-field-Bq8xTkHi.es.js.map} +1 -1
- package/dist/chunks/{menu-Ctsou8BQ.cjs.js → menu-8MZlyluP.cjs.js} +2 -2
- package/dist/chunks/{menu-Ctsou8BQ.cjs.js.map → menu-8MZlyluP.cjs.js.map} +1 -1
- package/dist/chunks/{menu-hZacrl0C.es.js → menu-xeJ9lZMo.es.js} +4 -4
- package/dist/chunks/{menu-hZacrl0C.es.js.map → menu-xeJ9lZMo.es.js.map} +1 -1
- package/dist/chunks/{money-input-BmRHEzuc.es.js → money-input-CdcKcoW7.es.js} +2 -2
- package/dist/chunks/{money-input-BmRHEzuc.es.js.map → money-input-CdcKcoW7.es.js.map} +1 -1
- package/dist/chunks/{money-input-Dg8WwuK4.cjs.js → money-input-DKK4IkDa.cjs.js} +2 -2
- package/dist/chunks/{money-input-Dg8WwuK4.cjs.js.map → money-input-DKK4IkDa.cjs.js.map} +1 -1
- package/dist/chunks/{money-input-field-Cj9jvBsE.cjs.js → money-input-field-dVccFP1i.cjs.js} +2 -2
- package/dist/chunks/{money-input-field-Cj9jvBsE.cjs.js.map → money-input-field-dVccFP1i.cjs.js.map} +1 -1
- package/dist/chunks/{money-input-field-Dec63VQv.es.js → money-input-field-vVLyfqtt.es.js} +3 -3
- package/dist/chunks/{money-input-field-Dec63VQv.es.js.map → money-input-field-vVLyfqtt.es.js.map} +1 -1
- package/dist/chunks/{number-input-field-D7aLGfzZ.es.js → number-input-field-BDAnY1HI.es.js} +2 -2
- package/dist/chunks/{number-input-field-D7aLGfzZ.es.js.map → number-input-field-BDAnY1HI.es.js.map} +1 -1
- package/dist/chunks/{number-input-field-BgCaRtnS.cjs.js → number-input-field-_SV3uOSQ.cjs.js} +2 -2
- package/dist/chunks/{number-input-field-BgCaRtnS.cjs.js.map → number-input-field-_SV3uOSQ.cjs.js.map} +1 -1
- package/dist/chunks/{pagination-DPEQK0Xq.es.js → pagination-Bw4PfQiy.es.js} +2 -2
- package/dist/chunks/{pagination-DPEQK0Xq.es.js.map → pagination-Bw4PfQiy.es.js.map} +1 -1
- package/dist/chunks/{pagination-CQ0roDut.cjs.js → pagination-DpIJKRGy.cjs.js} +2 -2
- package/dist/chunks/{pagination-CQ0roDut.cjs.js.map → pagination-DpIJKRGy.cjs.js.map} +1 -1
- package/dist/chunks/{popover-DY7ASSCU.cjs.js → popover-DHeke7qU.cjs.js} +2 -2
- package/dist/chunks/{popover-DY7ASSCU.cjs.js.map → popover-DHeke7qU.cjs.js.map} +1 -1
- package/dist/chunks/{popover-BAIwOPdC.es.js → popover-zNeVW5hN.es.js} +2 -2
- package/dist/chunks/{popover-BAIwOPdC.es.js.map → popover-zNeVW5hN.es.js.map} +1 -1
- package/dist/chunks/{rich-text-input-DAc5Qrg9.es.js → rich-text-input-D9-NrOjQ.es.js} +3 -10
- package/dist/chunks/{rich-text-input-DAc5Qrg9.es.js.map → rich-text-input-D9-NrOjQ.es.js.map} +1 -1
- package/dist/chunks/{rich-text-input-uQdozf3f.cjs.js → rich-text-input-v6nJvAeT.cjs.js} +2 -8
- package/dist/chunks/{rich-text-input-uQdozf3f.cjs.js.map → rich-text-input-v6nJvAeT.cjs.js.map} +1 -1
- package/dist/chunks/{scoped-search-input-D5GJjsyF.es.js → scoped-search-input-CJTn4Zz-.es.js} +2 -2
- package/dist/chunks/{scoped-search-input-D5GJjsyF.es.js.map → scoped-search-input-CJTn4Zz-.es.js.map} +1 -1
- package/dist/chunks/{scoped-search-input-Bjm-BowW.cjs.js → scoped-search-input-DR1UVqfn.cjs.js} +2 -2
- package/dist/chunks/{scoped-search-input-Bjm-BowW.cjs.js.map → scoped-search-input-DR1UVqfn.cjs.js.map} +1 -1
- package/dist/chunks/search-input-field-BOtCJu5U.cjs.js +2 -0
- package/dist/chunks/search-input-field-BOtCJu5U.cjs.js.map +1 -0
- package/dist/chunks/search-input-field-DjFWQe7R.es.js +51 -0
- package/dist/chunks/search-input-field-DjFWQe7R.es.js.map +1 -0
- package/dist/chunks/{select-CQwpSckj.es.js → select-DCLqY_H8.es.js} +7 -7
- package/dist/chunks/{select-CQwpSckj.es.js.map → select-DCLqY_H8.es.js.map} +1 -1
- package/dist/chunks/{select-muD4KBy_.cjs.js → select-noWcLHsw.cjs.js} +2 -2
- package/dist/chunks/{select-muD4KBy_.cjs.js.map → select-noWcLHsw.cjs.js.map} +1 -1
- package/dist/chunks/{separator-1ZNnZk9T.cjs.js → separator-DryRIJEa.cjs.js} +2 -2
- package/dist/chunks/{separator-1ZNnZk9T.cjs.js.map → separator-DryRIJEa.cjs.js.map} +1 -1
- package/dist/chunks/{separator-CxPOiV-V.es.js → separator-PVuFkBJX.es.js} +2 -2
- package/dist/chunks/{separator-CxPOiV-V.es.js.map → separator-PVuFkBJX.es.js.map} +1 -1
- package/dist/chunks/{split-button-jWOgks2W.cjs.js → split-button-C0ErPS5z.cjs.js} +2 -2
- package/dist/chunks/{split-button-jWOgks2W.cjs.js.map → split-button-C0ErPS5z.cjs.js.map} +1 -1
- package/dist/chunks/{split-button-Dtp64tp3.es.js → split-button-Rxsqp2QA.es.js} +2 -2
- package/dist/chunks/{split-button-Dtp64tp3.es.js.map → split-button-Rxsqp2QA.es.js.map} +1 -1
- package/dist/chunks/{tabs-DfNhZz7h.es.js → tabs-Dt3Dhaiq.es.js} +5 -5
- package/dist/chunks/{tabs-DfNhZz7h.es.js.map → tabs-Dt3Dhaiq.es.js.map} +1 -1
- package/dist/chunks/{tabs-CHNOmHyg.cjs.js → tabs-e-3yG4hI.cjs.js} +2 -2
- package/dist/chunks/{tabs-CHNOmHyg.cjs.js.map → tabs-e-3yG4hI.cjs.js.map} +1 -1
- package/dist/chunks/{tag-group-CaQdCaEc.es.js → tag-group-CklEK4eJ.es.js} +7 -7
- package/dist/chunks/{tag-group-CaQdCaEc.es.js.map → tag-group-CklEK4eJ.es.js.map} +1 -1
- package/dist/chunks/{tag-group-D5Mhaf6-.cjs.js → tag-group-D0NF_ay2.cjs.js} +2 -2
- package/dist/chunks/{tag-group-D5Mhaf6-.cjs.js.map → tag-group-D0NF_ay2.cjs.js.map} +1 -1
- package/dist/chunks/{text-input-field-DbicgCUY.cjs.js → text-input-field-D0MJSUw8.cjs.js} +2 -2
- package/dist/chunks/{text-input-field-DbicgCUY.cjs.js.map → text-input-field-D0MJSUw8.cjs.js.map} +1 -1
- package/dist/chunks/{text-input-field-CNXk82pQ.es.js → text-input-field-DeQ-WI6P.es.js} +2 -2
- package/dist/chunks/{text-input-field-CNXk82pQ.es.js.map → text-input-field-DeQ-WI6P.es.js.map} +1 -1
- package/dist/chunks/{useGridListItem-DAGp36bD.es.js → useGridListItem-CjGTTOtc.es.js} +3 -3
- package/dist/chunks/{useGridListItem-DAGp36bD.es.js.map → useGridListItem-CjGTTOtc.es.js.map} +1 -1
- package/dist/chunks/{useGridListItem-BETI-KGO.cjs.js → useGridListItem-Ck5JPksV.cjs.js} +2 -2
- package/dist/chunks/{useGridListItem-BETI-KGO.cjs.js.map → useGridListItem-Ck5JPksV.cjs.js.map} +1 -1
- package/dist/chunks/{useListState-QQtJHpsQ.cjs.js → useListState-BSrUXH20.cjs.js} +2 -2
- package/dist/chunks/{useListState-QQtJHpsQ.cjs.js.map → useListState-BSrUXH20.cjs.js.map} +1 -1
- package/dist/chunks/{useListState-BHLGQlP3.es.js → useListState-CRfmjiWx.es.js} +2 -2
- package/dist/chunks/{useListState-BHLGQlP3.es.js.map → useListState-CRfmjiWx.es.js.map} +1 -1
- package/dist/chunks/{useSingleSelectListState-B29G7the.es.js → useSingleSelectListState-DFR33TSw.es.js} +2 -2
- package/dist/chunks/{useSingleSelectListState-B29G7the.es.js.map → useSingleSelectListState-DFR33TSw.es.js.map} +1 -1
- package/dist/chunks/{useSingleSelectListState-CsD7W9nK.cjs.js → useSingleSelectListState-DnlbcBEG.cjs.js} +2 -2
- package/dist/chunks/{useSingleSelectListState-CsD7W9nK.cjs.js.map → useSingleSelectListState-DnlbcBEG.cjs.js.map} +1 -1
- package/dist/components/combobox.cjs +1 -1
- package/dist/components/combobox.es.js +1 -1
- package/dist/components/data-table.cjs +1 -1
- package/dist/components/data-table.es.js +1 -1
- package/dist/components/date-picker.cjs +1 -1
- package/dist/components/date-picker.es.js +1 -1
- 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/dialog.cjs +1 -1
- package/dist/components/dialog.es.js +1 -1
- package/dist/components/draggable-list.cjs +1 -1
- package/dist/components/draggable-list.es.js +1 -1
- 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 -5
- package/dist/components/fields.es.js.map +1 -1
- package/dist/components/form-field.cjs +1 -1
- package/dist/components/form-field.es.js +1 -1
- package/dist/components/localized-field.cjs +1 -1
- package/dist/components/localized-field.es.js +1 -1
- 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/number-input-field.cjs +1 -1
- package/dist/components/number-input-field.es.js +1 -1
- package/dist/components/pagination.cjs +1 -1
- package/dist/components/pagination.es.js +1 -1
- package/dist/components/patterns.cjs +1 -1
- package/dist/components/patterns.es.js +7 -5
- package/dist/components/patterns.es.js.map +1 -1
- package/dist/components/popover.cjs +1 -1
- package/dist/components/popover.es.js +1 -1
- 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/search-input-field.cjs +2 -0
- package/dist/components/search-input-field.cjs.map +1 -0
- package/dist/components/search-input-field.es.js +5 -0
- package/dist/components/search-input-field.es.js.map +1 -0
- 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/split-button.cjs +1 -1
- package/dist/components/split-button.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/utils.cjs +1 -1
- package/dist/components/utils.cjs.map +1 -1
- package/dist/components/utils.es.js +0 -1
- 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 +231 -229
- package/dist/index.es.js.map +1 -1
- package/dist/patterns/fields/index.d.ts +1 -0
- package/dist/patterns/fields/search-input-field/index.d.ts +2 -0
- package/dist/patterns/fields/search-input-field/search-input-field.d.ts +30 -0
- package/dist/patterns/fields/search-input-field/search-input-field.types.d.ts +50 -0
- package/package.json +10 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as F, jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { N as I } from "./number-input-Dtu6vHfl.es.js";
|
|
3
|
-
import { F as e } from "./form-field-
|
|
3
|
+
import { F as e } from "./form-field-CzFcczIs.es.js";
|
|
4
4
|
import { F as N } from "./field-errors-ClQprmQz.es.js";
|
|
5
5
|
const b = ({
|
|
6
6
|
id: o,
|
|
@@ -48,4 +48,4 @@ b.displayName = "NumberInputField";
|
|
|
48
48
|
export {
|
|
49
49
|
b as N
|
|
50
50
|
};
|
|
51
|
-
//# sourceMappingURL=number-input-field-
|
|
51
|
+
//# sourceMappingURL=number-input-field-BDAnY1HI.es.js.map
|
package/dist/chunks/{number-input-field-D7aLGfzZ.es.js.map → number-input-field-BDAnY1HI.es.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input-field-
|
|
1
|
+
{"version":3,"file":"number-input-field-BDAnY1HI.es.js","sources":["../../src/patterns/fields/number-input-field/number-input-field.tsx"],"sourcesContent":["import { NumberInput } from \"@/components/number-input/number-input\";\nimport { FormField, FieldErrors } from \"@/components\";\nimport type { NumberInputFieldProps } from \"./number-input-field.types\";\n\n/**\n * # NumberInputField\n *\n * A pre-composed form field component that combines NumberInput with FormField features\n * like labels, descriptions, error handling, and validation feedback.\n *\n * This component provides a simple, flat API for numeric input use cases with\n * increment/decrement controls, locale-aware formatting, and proper validation.\n *\n * @supportsStyleProps\n *\n * @example\n * ```tsx\n * <NumberInputField\n * label=\"Quantity\"\n * description=\"Enter the product quantity\"\n * value={quantity}\n * onChange={setQuantity}\n * minValue={1}\n * maxValue={100}\n * errors={{ missing: true }}\n * touched={touched}\n * isRequired\n * />\n * ```\n */\n\nexport const NumberInputField = ({\n id,\n label,\n description,\n info,\n errors,\n renderError,\n touched = false,\n isRequired = false,\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n size = \"md\",\n ...numberInputProps\n}: NumberInputFieldProps) => {\n // Determine if we should show errors\n const hasErrors = touched && errors && Object.values(errors).some(Boolean);\n\n return (\n <FormField.Root\n id={id}\n size={size}\n isInvalid={hasErrors || isInvalid}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n >\n <FormField.Label>{label}</FormField.Label>\n <FormField.Input>\n <NumberInput size={size} {...numberInputProps} />\n </FormField.Input>\n\n {description && (\n <FormField.Description>{description}</FormField.Description>\n )}\n\n {info && <FormField.InfoBox>{info}</FormField.InfoBox>}\n {hasErrors && (\n <FormField.Error>\n <FieldErrors\n id={`${id}-errors`}\n errors={errors}\n renderError={renderError}\n />\n </FormField.Error>\n )}\n </FormField.Root>\n );\n};\n\nNumberInputField.displayName = \"NumberInputField\";\n"],"names":["NumberInputField","id","label","description","info","errors","renderError","touched","isRequired","isDisabled","isReadOnly","isInvalid","size","numberInputProps","hasErrors","jsxs","FormField","jsx","NumberInput","FieldErrors"],"mappings":";;;;AA+BO,MAAMA,IAAmB,CAAC;AAAA,EAC/B,IAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,YAAAC,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,YAAAC,IAAa;AAAA,EACb,WAAAC,IAAY;AAAA,EACZ,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,MAA6B;AAE3B,QAAMC,IAAYP,KAAWF,KAAU,OAAO,OAAOA,CAAM,EAAE,KAAK,OAAO;AAEzE,SACE,gBAAAU;AAAA,IAACC,EAAU;AAAA,IAAV;AAAA,MACC,IAAAf;AAAA,MACA,MAAAW;AAAA,MACA,WAAWE,KAAaH;AAAA,MACxB,YAAAH;AAAA,MACA,YAAAC;AAAA,MACA,YAAAC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAAO,EAACD,EAAU,OAAV,EAAiB,UAAAd,EAAA,CAAM;AAAA,QACxB,gBAAAe,EAACD,EAAU,OAAV,EACC,4BAACE,GAAA,EAAY,MAAAN,GAAa,GAAGC,EAAA,CAAkB,EAAA,CACjD;AAAA,QAECV,KACC,gBAAAc,EAACD,EAAU,aAAV,EAAuB,UAAAb,GAAY;AAAA,QAGrCC,KAAQ,gBAAAa,EAACD,EAAU,SAAV,EAAmB,UAAAZ,GAAK;AAAA,QACjCU,KACC,gBAAAG,EAACD,EAAU,OAAV,EACC,UAAA,gBAAAC;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,IAAI,GAAGlB,CAAE;AAAA,YACT,QAAAI;AAAA,YACA,aAAAC;AAAA,UAAA;AAAA,QAAA,EACF,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;AAEAN,EAAiB,cAAc;"}
|
package/dist/chunks/{number-input-field-BgCaRtnS.cjs.js → number-input-field-_SV3uOSQ.cjs.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),b=require("./number-input-CRk-3ae8.cjs.js"),r=require("./form-field-
|
|
2
|
-
//# sourceMappingURL=number-input-field-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),b=require("./number-input-CRk-3ae8.cjs.js"),r=require("./form-field-Ca3k84cH.cjs.js"),f=require("./field-errors-D2re_C_c.cjs.js"),u=({id:l,label:t,description:i,info:n,errors:s,renderError:F,touched:m=!1,isRequired:c=!1,isDisabled:a=!1,isReadOnly:j=!1,isInvalid:x=!1,size:o="md",...I})=>{const d=m&&s&&Object.values(s).some(Boolean);return e.jsxs(r.FormField.Root,{id:l,size:o,isInvalid:d||x,isRequired:c,isDisabled:a,isReadOnly:j,children:[e.jsx(r.FormField.Label,{children:t}),e.jsx(r.FormField.Input,{children:e.jsx(b.NumberInput,{size:o,...I})}),i&&e.jsx(r.FormField.Description,{children:i}),n&&e.jsx(r.FormField.InfoBox,{children:n}),d&&e.jsx(r.FormField.Error,{children:e.jsx(f.FieldErrors,{id:`${l}-errors`,errors:s,renderError:F})})]})};u.displayName="NumberInputField";exports.NumberInputField=u;
|
|
2
|
+
//# sourceMappingURL=number-input-field-_SV3uOSQ.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input-field-
|
|
1
|
+
{"version":3,"file":"number-input-field-_SV3uOSQ.cjs.js","sources":["../../src/patterns/fields/number-input-field/number-input-field.tsx"],"sourcesContent":["import { NumberInput } from \"@/components/number-input/number-input\";\nimport { FormField, FieldErrors } from \"@/components\";\nimport type { NumberInputFieldProps } from \"./number-input-field.types\";\n\n/**\n * # NumberInputField\n *\n * A pre-composed form field component that combines NumberInput with FormField features\n * like labels, descriptions, error handling, and validation feedback.\n *\n * This component provides a simple, flat API for numeric input use cases with\n * increment/decrement controls, locale-aware formatting, and proper validation.\n *\n * @supportsStyleProps\n *\n * @example\n * ```tsx\n * <NumberInputField\n * label=\"Quantity\"\n * description=\"Enter the product quantity\"\n * value={quantity}\n * onChange={setQuantity}\n * minValue={1}\n * maxValue={100}\n * errors={{ missing: true }}\n * touched={touched}\n * isRequired\n * />\n * ```\n */\n\nexport const NumberInputField = ({\n id,\n label,\n description,\n info,\n errors,\n renderError,\n touched = false,\n isRequired = false,\n isDisabled = false,\n isReadOnly = false,\n isInvalid = false,\n size = \"md\",\n ...numberInputProps\n}: NumberInputFieldProps) => {\n // Determine if we should show errors\n const hasErrors = touched && errors && Object.values(errors).some(Boolean);\n\n return (\n <FormField.Root\n id={id}\n size={size}\n isInvalid={hasErrors || isInvalid}\n isRequired={isRequired}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n >\n <FormField.Label>{label}</FormField.Label>\n <FormField.Input>\n <NumberInput size={size} {...numberInputProps} />\n </FormField.Input>\n\n {description && (\n <FormField.Description>{description}</FormField.Description>\n )}\n\n {info && <FormField.InfoBox>{info}</FormField.InfoBox>}\n {hasErrors && (\n <FormField.Error>\n <FieldErrors\n id={`${id}-errors`}\n errors={errors}\n renderError={renderError}\n />\n </FormField.Error>\n )}\n </FormField.Root>\n );\n};\n\nNumberInputField.displayName = \"NumberInputField\";\n"],"names":["NumberInputField","id","label","description","info","errors","renderError","touched","isRequired","isDisabled","isReadOnly","isInvalid","size","numberInputProps","hasErrors","jsxs","FormField","jsx","NumberInput","FieldErrors"],"mappings":"oLA+BaA,EAAmB,CAAC,CAC/B,GAAAC,EACA,MAAAC,EACA,YAAAC,EACA,KAAAC,EACA,OAAAC,EACA,YAAAC,EACA,QAAAC,EAAU,GACV,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,UAAAC,EAAY,GACZ,KAAAC,EAAO,KACP,GAAGC,CACL,IAA6B,CAE3B,MAAMC,EAAYP,GAAWF,GAAU,OAAO,OAAOA,CAAM,EAAE,KAAK,OAAO,EAEzE,OACEU,EAAAA,KAACC,EAAAA,UAAU,KAAV,CACC,GAAAf,EACA,KAAAW,EACA,UAAWE,GAAaH,EACxB,WAAAH,EACA,WAAAC,EACA,WAAAC,EAEA,SAAA,CAAAO,EAAAA,IAACD,EAAAA,UAAU,MAAV,CAAiB,SAAAd,CAAA,CAAM,EACxBe,EAAAA,IAACD,EAAAA,UAAU,MAAV,CACC,eAACE,EAAAA,YAAA,CAAY,KAAAN,EAAa,GAAGC,CAAA,CAAkB,CAAA,CACjD,EAECV,GACCc,EAAAA,IAACD,EAAAA,UAAU,YAAV,CAAuB,SAAAb,EAAY,EAGrCC,GAAQa,EAAAA,IAACD,EAAAA,UAAU,QAAV,CAAmB,SAAAZ,EAAK,EACjCU,GACCG,EAAAA,IAACD,EAAAA,UAAU,MAAV,CACC,SAAAC,EAAAA,IAACE,EAAAA,YAAA,CACC,GAAI,GAAGlB,CAAE,UACT,OAAAI,EACA,YAAAC,CAAA,CAAA,CACF,CACF,CAAA,CAAA,CAAA,CAIR,EAEAN,EAAiB,YAAc"}
|
|
@@ -4,7 +4,7 @@ import { defineMessages as L, useIntl as R } from "react-intl";
|
|
|
4
4
|
import { ChevronLeft as V, ChevronRight as B } from "@commercetools/nimbus-icons";
|
|
5
5
|
import { S as F } from "./stack-CoNreM7B.es.js";
|
|
6
6
|
import { Flex as N } from "@chakra-ui/react/flex";
|
|
7
|
-
import { S as I } from "./select-
|
|
7
|
+
import { S as I } from "./select-DCLqY_H8.es.js";
|
|
8
8
|
import { T as v } from "./text-CIb_VDvO.es.js";
|
|
9
9
|
import { I as G } from "./icon-button-1gt1BCJ2.es.js";
|
|
10
10
|
import { N as K } from "./number-input-Dtu6vHfl.es.js";
|
|
@@ -207,4 +207,4 @@ $.displayName = "Pagination";
|
|
|
207
207
|
export {
|
|
208
208
|
$ as P
|
|
209
209
|
};
|
|
210
|
-
//# sourceMappingURL=pagination-
|
|
210
|
+
//# sourceMappingURL=pagination-Bw4PfQiy.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-DPEQK0Xq.es.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/pagination.i18n.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","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n pagination: {\n id: \"Nimbus.Pagination.pagination\",\n description: \"aria-label for the pagination navigation element\",\n defaultMessage: \"Pagination\",\n },\n itemsPerPage: {\n id: \"Nimbus.Pagination.itemsPerPage\",\n description: \"aria-label for the items per page selector\",\n defaultMessage: \"Items per page\",\n },\n itemsPerPageText: {\n id: \"Nimbus.Pagination.itemsPerPageText\",\n description: \"text label displayed next to the page size selector\",\n defaultMessage: \"items per page\",\n },\n goToPreviousPage: {\n id: \"Nimbus.Pagination.goToPreviousPage\",\n description: \"aria-label for the previous page button\",\n defaultMessage: \"Go to previous page\",\n },\n currentPage: {\n id: \"Nimbus.Pagination.currentPage\",\n description: \"aria-label for the current page input field\",\n defaultMessage: \"Current page\",\n },\n page: {\n id: \"Nimbus.Pagination.page\",\n description: \"text label displayed before the page number\",\n defaultMessage: \"Page\",\n },\n ofTotalPages: {\n id: \"Nimbus.Pagination.ofTotalPages\",\n description: \"text showing total pages count after current page input\",\n defaultMessage: \"of {totalPages}\",\n },\n goToNextPage: {\n id: \"Nimbus.Pagination.goToNextPage\",\n description: \"aria-label for the next page button\",\n defaultMessage: \"Go to next page\",\n },\n});\n","import { useMemo } from \"react\";\nimport { useIntl } from \"react-intl\";\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 { messages } from \"./pagination.i18n\";\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 intl = useIntl();\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={intl.formatMessage(messages.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\">\n {intl.formatMessage(messages.itemsPerPageText)}\n </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 ?? intl.formatMessage(messages.pagination)}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={intl.formatMessage(messages.goToPreviousPage)}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{intl.formatMessage(messages.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={intl.formatMessage(messages.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 {intl.formatMessage(messages.ofTotalPages, {\n totalPages: intl.formatNumber(pagination.totalPages),\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={intl.formatMessage(messages.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","messages","defineMessages","Pagination","props","intl","useIntl","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","ChevronRight"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pagination-Bw4PfQiy.es.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/pagination.i18n.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","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n pagination: {\n id: \"Nimbus.Pagination.pagination\",\n description: \"aria-label for the pagination navigation element\",\n defaultMessage: \"Pagination\",\n },\n itemsPerPage: {\n id: \"Nimbus.Pagination.itemsPerPage\",\n description: \"aria-label for the items per page selector\",\n defaultMessage: \"Items per page\",\n },\n itemsPerPageText: {\n id: \"Nimbus.Pagination.itemsPerPageText\",\n description: \"text label displayed next to the page size selector\",\n defaultMessage: \"items per page\",\n },\n goToPreviousPage: {\n id: \"Nimbus.Pagination.goToPreviousPage\",\n description: \"aria-label for the previous page button\",\n defaultMessage: \"Go to previous page\",\n },\n currentPage: {\n id: \"Nimbus.Pagination.currentPage\",\n description: \"aria-label for the current page input field\",\n defaultMessage: \"Current page\",\n },\n page: {\n id: \"Nimbus.Pagination.page\",\n description: \"text label displayed before the page number\",\n defaultMessage: \"Page\",\n },\n ofTotalPages: {\n id: \"Nimbus.Pagination.ofTotalPages\",\n description: \"text showing total pages count after current page input\",\n defaultMessage: \"of {totalPages}\",\n },\n goToNextPage: {\n id: \"Nimbus.Pagination.goToNextPage\",\n description: \"aria-label for the next page button\",\n defaultMessage: \"Go to next page\",\n },\n});\n","import { useMemo } from \"react\";\nimport { useIntl } from \"react-intl\";\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 { messages } from \"./pagination.i18n\";\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 intl = useIntl();\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={intl.formatMessage(messages.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\">\n {intl.formatMessage(messages.itemsPerPageText)}\n </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 ?? intl.formatMessage(messages.pagination)}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={intl.formatMessage(messages.goToPreviousPage)}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{intl.formatMessage(messages.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={intl.formatMessage(messages.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 {intl.formatMessage(messages.ofTotalPages, {\n totalPages: intl.formatNumber(pagination.totalPages),\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={intl.formatMessage(messages.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","messages","defineMessages","Pagination","props","intl","useIntl","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","ChevronRight"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const a=require("react/jsx-runtime"),g=require("react"),F=require("react-intl"),w=require("@commercetools/nimbus-icons"),R=require("./stack-CIN13EDn.cjs.js"),T=require("@chakra-ui/react/flex"),q=require("./select-
|
|
2
|
-
//# sourceMappingURL=pagination-
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),g=require("react"),F=require("react-intl"),w=require("@commercetools/nimbus-icons"),R=require("./stack-CIN13EDn.cjs.js"),T=require("@chakra-ui/react/flex"),q=require("./select-noWcLHsw.cjs.js"),j=require("./text-BtRhIklG.cjs.js"),y=require("./icon-button-LnGKZj9k.cjs.js"),B=require("./number-input-CRk-3ae8.cjs.js");function D({totalItems:s,currentPage:n,pageSize:p=20,onPageChange:c,onPageSizeChange:d}){const[m,x]=g.useState(1),[v,N]=g.useState(p),l=n!==void 0,C=l?n:m,e=p??v,o=Math.max(1,Math.ceil(s/e)),t=Math.max(1,Math.min(C,o)),i=Math.min((t-1)*e+1,s),h=Math.min(t*e,s),b=t>1,f=t<o,u=g.useCallback(P=>{const M=Math.max(1,Math.min(P,o));l||x(M),c?.(M)},[o,l,c]),z=g.useCallback(()=>{b&&u(t-1)},[b,t,u]),I=g.useCallback(()=>{f&&u(t+1)},[f,t,u]),k=g.useCallback(P=>{const M=Math.ceil(s/P),S=Math.min(t,M);N(P),!l&&S!==t&&x(S),d?.(P),S!==t&&c?.(S)},[s,t,l,c,d]);return g.useMemo(()=>({totalItems:s,currentPage:t,pageSize:e,totalPages:o,startItem:i,endItem:h,hasPreviousPage:b,hasNextPage:f,goToPage:u,goToPreviousPage:z,goToNextPage:I,setPageSize:k}),[s,t,e,o,i,h,b,f,u,z,I,k])}const r=F.defineMessages({pagination:{id:"Nimbus.Pagination.pagination",description:"aria-label for the pagination navigation element",defaultMessage:"Pagination"},itemsPerPage:{id:"Nimbus.Pagination.itemsPerPage",description:"aria-label for the items per page selector",defaultMessage:"Items per page"},itemsPerPageText:{id:"Nimbus.Pagination.itemsPerPageText",description:"text label displayed next to the page size selector",defaultMessage:"items per page"},goToPreviousPage:{id:"Nimbus.Pagination.goToPreviousPage",description:"aria-label for the previous page button",defaultMessage:"Go to previous page"},currentPage:{id:"Nimbus.Pagination.currentPage",description:"aria-label for the current page input field",defaultMessage:"Current page"},page:{id:"Nimbus.Pagination.page",description:"text label displayed before the page number",defaultMessage:"Page"},ofTotalPages:{id:"Nimbus.Pagination.ofTotalPages",description:"text showing total pages count after current page input",defaultMessage:"of {totalPages}"},goToNextPage:{id:"Nimbus.Pagination.goToNextPage",description:"aria-label for the next page button",defaultMessage:"Go to next page"}}),O=s=>{const n=F.useIntl(),{totalItems:p,currentPage:c,pageSize:d,pageSizeOptions:m=[10,20,50,100],onPageChange:x,onPageSizeChange:v,"aria-label":N,enablePageInput:l=!0,enablePageSizeSelector:C=!0}=s,e=D({totalItems:p,currentPage:c,pageSize:d,onPageChange:x,onPageSizeChange:v}),o=g.useMemo(()=>m.map(i=>({id:i.toString(),name:`${i}`})),[m]),t=i=>{if(i){const h=parseInt(i.toString(),10);e.setPageSize(h)}};return a.jsxs(R.Stack,{gap:"400",direction:{base:"column",sm:"row"},align:"center",children:[C&&a.jsxs(T.Flex,{align:"center",gap:"200",children:[a.jsx(q.Select.Root,{isClearable:!1,selectedKey:e.pageSize.toString(),onSelectionChange:t,"aria-label":n.formatMessage(r.itemsPerPage),children:a.jsx(q.Select.Options,{children:o.map(i=>a.jsx(q.Select.Option,{id:i.id,children:i.name},i.id))})}),a.jsx(j.Text,{color:"neutral.12",children:n.formatMessage(r.itemsPerPageText)})]}),a.jsx(T.Flex,{flexGrow:"1"}),a.jsxs(T.Flex,{align:"center",gap:"200",role:"navigation","aria-label":N??n.formatMessage(r.pagination),children:[a.jsx(y.IconButton,{onClick:e.goToPreviousPage,isDisabled:!e.hasPreviousPage,variant:"ghost",colorPalette:"primary","aria-label":n.formatMessage(r.goToPreviousPage),children:a.jsx(w.ChevronLeft,{})}),a.jsxs(T.Flex,{align:"center",gap:"200",children:[a.jsx(j.Text,{color:"neutral.12",children:n.formatMessage(r.page)}),l?a.jsx(B.NumberInput,{value:e.currentPage,onChange:i=>e.goToPage(i||1),minValue:1,maxValue:e.totalPages,step:1,isDisabled:!1,width:"9ch","aria-label":n.formatMessage(r.currentPage),"aria-current":"page"}):a.jsx(j.Text,{fontWeight:"semibold",color:"neutral.12","aria-current":"page",children:e.currentPage}),a.jsx(j.Text,{color:"neutral.12",children:n.formatMessage(r.ofTotalPages,{totalPages:n.formatNumber(e.totalPages)})})]}),a.jsx(y.IconButton,{onClick:e.goToNextPage,isDisabled:!e.hasNextPage,variant:"ghost",colorPalette:"primary","aria-label":n.formatMessage(r.goToNextPage),children:a.jsx(w.ChevronRight,{})})]})]})};O.displayName="Pagination";exports.Pagination=O;
|
|
2
|
+
//# sourceMappingURL=pagination-DpIJKRGy.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-CQ0roDut.cjs.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/pagination.i18n.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","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n pagination: {\n id: \"Nimbus.Pagination.pagination\",\n description: \"aria-label for the pagination navigation element\",\n defaultMessage: \"Pagination\",\n },\n itemsPerPage: {\n id: \"Nimbus.Pagination.itemsPerPage\",\n description: \"aria-label for the items per page selector\",\n defaultMessage: \"Items per page\",\n },\n itemsPerPageText: {\n id: \"Nimbus.Pagination.itemsPerPageText\",\n description: \"text label displayed next to the page size selector\",\n defaultMessage: \"items per page\",\n },\n goToPreviousPage: {\n id: \"Nimbus.Pagination.goToPreviousPage\",\n description: \"aria-label for the previous page button\",\n defaultMessage: \"Go to previous page\",\n },\n currentPage: {\n id: \"Nimbus.Pagination.currentPage\",\n description: \"aria-label for the current page input field\",\n defaultMessage: \"Current page\",\n },\n page: {\n id: \"Nimbus.Pagination.page\",\n description: \"text label displayed before the page number\",\n defaultMessage: \"Page\",\n },\n ofTotalPages: {\n id: \"Nimbus.Pagination.ofTotalPages\",\n description: \"text showing total pages count after current page input\",\n defaultMessage: \"of {totalPages}\",\n },\n goToNextPage: {\n id: \"Nimbus.Pagination.goToNextPage\",\n description: \"aria-label for the next page button\",\n defaultMessage: \"Go to next page\",\n },\n});\n","import { useMemo } from \"react\";\nimport { useIntl } from \"react-intl\";\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 { messages } from \"./pagination.i18n\";\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 intl = useIntl();\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={intl.formatMessage(messages.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\">\n {intl.formatMessage(messages.itemsPerPageText)}\n </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 ?? intl.formatMessage(messages.pagination)}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={intl.formatMessage(messages.goToPreviousPage)}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{intl.formatMessage(messages.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={intl.formatMessage(messages.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 {intl.formatMessage(messages.ofTotalPages, {\n totalPages: intl.formatNumber(pagination.totalPages),\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={intl.formatMessage(messages.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","messages","defineMessages","Pagination","props","intl","useIntl","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","ChevronRight"],"mappings":"+WA4EO,SAASA,EAAc,CAC5B,WAAAC,EACA,YAAaC,EACb,SAAUC,EAAqB,GAC/B,aAAAC,EACA,iBAAAC,CACF,EAA4C,CAE1C,KAAM,CAACC,EAAqBC,CAAsB,EAAIC,EAAAA,SAAS,CAAC,EAC1D,CAACC,EAAkBC,CAAmB,EAAIF,EAAAA,SAASL,CAAkB,EAGrEQ,EAAeT,IAA0B,OACzCU,EAAcD,EAChBT,EACAI,EACEO,EAAWV,GAAsBM,EAGjCK,EAAa,KAAK,IAAI,EAAG,KAAK,KAAKb,EAAaY,CAAQ,CAAC,EAGzDE,EAAmB,KAAK,IAAI,EAAG,KAAK,IAAIH,EAAaE,CAAU,CAAC,EAEhEE,EAAY,KAAK,KAAKD,EAAmB,GAAKF,EAAW,EAAGZ,CAAU,EACtEgB,EAAU,KAAK,IAAIF,EAAmBF,EAAUZ,CAAU,EAE1DiB,EAAkBH,EAAmB,EACrCI,EAAcJ,EAAmBD,EAGjCM,EAAWC,EAAAA,YACdC,GAAiB,CAChB,MAAMC,EAAU,KAAK,IAAI,EAAG,KAAK,IAAID,EAAMR,CAAU,CAAC,EAEjDH,GACHJ,EAAuBgB,CAAO,EAGhCnB,IAAemB,CAAO,CACxB,EACA,CAACT,EAAYH,EAAcP,CAAY,CAAA,EAGnCoB,EAAmBH,EAAAA,YAAY,IAAM,CACrCH,GACFE,EAASL,EAAmB,CAAC,CAEjC,EAAG,CAACG,EAAiBH,EAAkBK,CAAQ,CAAC,EAE1CK,EAAeJ,EAAAA,YAAY,IAAM,CACjCF,GACFC,EAASL,EAAmB,CAAC,CAEjC,EAAG,CAACI,EAAaJ,EAAkBK,CAAQ,CAAC,EAEtCM,EAAcL,EAAAA,YACjBM,GAAwB,CACvB,MAAMC,EAAgB,KAAK,KAAK3B,EAAa0B,CAAW,EAClDJ,EAAU,KAAK,IAAIR,EAAkBa,CAAa,EAExDlB,EAAoBiB,CAAW,EAE3B,CAAChB,GAAgBY,IAAYR,GAC/BR,EAAuBgB,CAAO,EAGhClB,IAAmBsB,CAAW,EAE1BJ,IAAYR,GACdX,IAAemB,CAAO,CAE1B,EACA,CAACtB,EAAYc,EAAkBJ,EAAcP,EAAcC,CAAgB,CAAA,EAG7E,OAAOwB,EAAAA,QACL,KAAO,CACL,WAAA5B,EACA,YAAac,EACb,SAAAF,EACA,WAAAC,EACA,UAAAE,EACA,QAAAC,EACA,gBAAAC,EACA,YAAAC,EACA,SAAAC,EACA,iBAAAI,EACA,aAAAC,EACA,YAAAC,CAAA,GAEF,CACEzB,EACAc,EACAF,EACAC,EACAE,EACAC,EACAC,EACAC,EACAC,EACAI,EACAC,EACAC,CAAA,CACF,CAEJ,CCpLO,MAAMI,EAAWC,EAAAA,eAAe,CACrC,WAAY,CACV,GAAI,+BACJ,YAAa,mDACb,eAAgB,YAAA,EAElB,aAAc,CACZ,GAAI,iCACJ,YAAa,6CACb,eAAgB,gBAAA,EAElB,iBAAkB,CAChB,GAAI,qCACJ,YAAa,sDACb,eAAgB,gBAAA,EAElB,iBAAkB,CAChB,GAAI,qCACJ,YAAa,0CACb,eAAgB,qBAAA,EAElB,YAAa,CACX,GAAI,gCACJ,YAAa,8CACb,eAAgB,cAAA,EAElB,KAAM,CACJ,GAAI,yBACJ,YAAa,8CACb,eAAgB,MAAA,EAElB,aAAc,CACZ,GAAI,iCACJ,YAAa,0DACb,eAAgB,iBAAA,EAElB,aAAc,CACZ,GAAI,iCACJ,YAAa,sCACb,eAAgB,iBAAA,CAEpB,CAAC,ECpBYC,EAAcC,GAA2B,CACpD,MAAMC,EAAOC,EAAAA,QAAA,EACP,CACJ,WAAAlC,EACA,YAAAW,EACA,SAAAC,EACA,gBAAAuB,EAAkB,CAAC,GAAI,GAAI,GAAI,GAAG,EAClC,aAAAhC,EACA,iBAAAC,EACA,aAAcgC,EACd,gBAAAC,EAAkB,GAClB,uBAAAC,EAAyB,EAAA,EACvBN,EAEEO,EAAaxC,EAAc,CAC/B,WAAAC,EACA,YAAAW,EACA,SAAAC,EACA,aAAAT,EACA,iBAAAC,CAAA,CACD,EAGKoC,EAAwBZ,EAAAA,QAC5B,IACEO,EAAgB,IAAKM,IAAU,CAC7B,GAAIA,EAAK,SAAA,EACT,KAAM,GAAGA,CAAI,EAAA,EACb,EACJ,CAACN,CAAe,CAAA,EAGZO,EAAwBC,GAA0B,CACtD,GAAIA,EAAK,CACP,MAAMjB,EAAc,SAASiB,EAAI,SAAA,EAAY,EAAE,EAC/CJ,EAAW,YAAYb,CAAW,CACpC,CACF,EAEA,OACEkB,EAAAA,KAACC,EAAAA,MAAA,CAAM,IAAI,MAAM,UAAW,CAAE,KAAM,SAAU,GAAI,KAAA,EAAS,MAAM,SAE9D,SAAA,CAAAP,GACCM,EAAAA,KAACE,EAAAA,KAAA,CAAK,MAAM,SAAS,IAAI,MACvB,SAAA,CAAAC,EAAAA,IAACC,EAAAA,OAAO,KAAP,CACC,YAAa,GACb,YAAaT,EAAW,SAAS,SAAA,EACjC,kBAAmBG,EACnB,aAAYT,EAAK,cAAcJ,EAAS,YAAY,EAEpD,SAAAkB,EAAAA,IAACC,EAAAA,OAAO,QAAP,CACE,WAAsB,IAAKC,GAC1BF,MAACC,EAAAA,OAAO,OAAP,CAA8B,GAAIC,EAAO,GACvC,SAAAA,EAAO,MADUA,EAAO,EAE3B,CACD,CAAA,CACH,CAAA,CAAA,EAEFF,MAACG,EAAAA,MAAK,MAAM,aACT,WAAK,cAAcrB,EAAS,gBAAgB,CAAA,CAC/C,CAAA,EACF,EAEFkB,EAAAA,IAACD,EAAAA,KAAA,CAAK,SAAS,GAAA,CAAI,EAEnBF,EAAAA,KAACE,EAAAA,KAAA,CACC,MAAM,SACN,IAAI,MACJ,KAAK,aACL,aAAYV,GAAaH,EAAK,cAAcJ,EAAS,UAAU,EAE/D,SAAA,CAAAkB,EAAAA,IAACI,EAAAA,WAAA,CACC,QAASZ,EAAW,iBACpB,WAAY,CAACA,EAAW,gBACxB,QAAQ,QACR,aAAa,UACb,aAAYN,EAAK,cAAcJ,EAAS,gBAAgB,EAExD,eAACuB,EAAAA,YAAA,CAAA,CAAY,CAAA,CAAA,EAGfR,EAAAA,KAACE,EAAAA,KAAA,CAAK,MAAM,SAAS,IAAI,MACvB,SAAA,CAAAC,EAAAA,IAACG,EAAAA,MAAK,MAAM,aAAc,WAAK,cAAcrB,EAAS,IAAI,EAAE,EAC3DQ,EACCU,EAAAA,IAACM,EAAAA,YAAA,CACC,MAAOd,EAAW,YAClB,SAAWe,GACTf,EAAW,SAASe,GAAS,CAAC,EAEhC,SAAU,EACV,SAAUf,EAAW,WACrB,KAAM,EACN,WAAY,GACZ,MAAM,MACN,aAAYN,EAAK,cAAcJ,EAAS,WAAW,EACnD,eAAa,MAAA,CAAA,EAGfkB,EAAAA,IAACG,EAAAA,KAAA,CAAK,WAAW,WAAW,MAAM,aAAa,eAAa,OACzD,SAAAX,EAAW,WAAA,CACd,QAEDW,EAAAA,KAAA,CAAK,MAAM,aACT,SAAAjB,EAAK,cAAcJ,EAAS,aAAc,CACzC,WAAYI,EAAK,aAAaM,EAAW,UAAU,CAAA,CACpD,CAAA,CACH,CAAA,EACF,EAEAQ,EAAAA,IAACI,EAAAA,WAAA,CACC,QAASZ,EAAW,aACpB,WAAY,CAACA,EAAW,YACxB,QAAQ,QACR,aAAa,UACb,aAAYN,EAAK,cAAcJ,EAAS,YAAY,EAEpD,eAAC0B,EAAAA,aAAA,CAAA,CAAa,CAAA,CAAA,CAChB,CAAA,CAAA,CACF,EACF,CAEJ,EAGAxB,EAAW,YAAc"}
|
|
1
|
+
{"version":3,"file":"pagination-DpIJKRGy.cjs.js","sources":["../../src/components/pagination/hooks/use-pagination.ts","../../src/components/pagination/pagination.i18n.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","import { defineMessages } from \"react-intl\";\n\nexport const messages = defineMessages({\n pagination: {\n id: \"Nimbus.Pagination.pagination\",\n description: \"aria-label for the pagination navigation element\",\n defaultMessage: \"Pagination\",\n },\n itemsPerPage: {\n id: \"Nimbus.Pagination.itemsPerPage\",\n description: \"aria-label for the items per page selector\",\n defaultMessage: \"Items per page\",\n },\n itemsPerPageText: {\n id: \"Nimbus.Pagination.itemsPerPageText\",\n description: \"text label displayed next to the page size selector\",\n defaultMessage: \"items per page\",\n },\n goToPreviousPage: {\n id: \"Nimbus.Pagination.goToPreviousPage\",\n description: \"aria-label for the previous page button\",\n defaultMessage: \"Go to previous page\",\n },\n currentPage: {\n id: \"Nimbus.Pagination.currentPage\",\n description: \"aria-label for the current page input field\",\n defaultMessage: \"Current page\",\n },\n page: {\n id: \"Nimbus.Pagination.page\",\n description: \"text label displayed before the page number\",\n defaultMessage: \"Page\",\n },\n ofTotalPages: {\n id: \"Nimbus.Pagination.ofTotalPages\",\n description: \"text showing total pages count after current page input\",\n defaultMessage: \"of {totalPages}\",\n },\n goToNextPage: {\n id: \"Nimbus.Pagination.goToNextPage\",\n description: \"aria-label for the next page button\",\n defaultMessage: \"Go to next page\",\n },\n});\n","import { useMemo } from \"react\";\nimport { useIntl } from \"react-intl\";\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 { messages } from \"./pagination.i18n\";\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 intl = useIntl();\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={intl.formatMessage(messages.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\">\n {intl.formatMessage(messages.itemsPerPageText)}\n </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 ?? intl.formatMessage(messages.pagination)}\n >\n <IconButton\n onClick={pagination.goToPreviousPage}\n isDisabled={!pagination.hasPreviousPage}\n variant=\"ghost\"\n colorPalette=\"primary\"\n aria-label={intl.formatMessage(messages.goToPreviousPage)}\n >\n <ChevronLeft />\n </IconButton>\n\n <Flex align=\"center\" gap=\"200\">\n <Text color=\"neutral.12\">{intl.formatMessage(messages.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={intl.formatMessage(messages.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 {intl.formatMessage(messages.ofTotalPages, {\n totalPages: intl.formatNumber(pagination.totalPages),\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={intl.formatMessage(messages.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","messages","defineMessages","Pagination","props","intl","useIntl","pageSizeOptions","ariaLabel","enablePageInput","enablePageSizeSelector","pagination","pageSizeSelectOptions","size","handlePageSizeChange","key","jsxs","Stack","Flex","jsx","Select","option","Text","IconButton","ChevronLeft","NumberInput","value","ChevronRight"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const s=require("react/jsx-runtime"),c=require("@chakra-ui/react"),n=require("./Dialog-
|
|
2
|
-
//# sourceMappingURL=popover-
|
|
1
|
+
"use strict";const s=require("react/jsx-runtime"),c=require("@chakra-ui/react"),n=require("./Dialog-flHBRP1h.cjs.js"),{withContext:i}=c.createRecipeContext({key:"popover"}),p=i(n.$07b14b47974efb58$export$5b6b19405a83ff9d),e=o=>{const{children:t,...r}=o;return s.jsx(p,{...r,children:t})};e.displayName="Popover";exports.Popover=e;
|
|
2
|
+
//# sourceMappingURL=popover-DHeke7qU.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-
|
|
1
|
+
{"version":3,"file":"popover-DHeke7qU.cjs.js","sources":["../../src/components/popover/popover.slots.tsx","../../src/components/popover/popover.tsx"],"sourcesContent":["import { createRecipeContext } from \"@chakra-ui/react\";\nimport { Popover as RaPopover } from \"react-aria-components\";\nimport type { SlotComponent } from \"@/type-utils\";\nimport type { PopoverProps } from \"./popover.types\";\n\nconst { withContext } = createRecipeContext({\n key: \"popover\",\n});\n\nexport const PopoverRootSlot: SlotComponent<typeof RaPopover, PopoverProps> =\n withContext<typeof RaPopover, PopoverProps>(RaPopover);\n","import { PopoverRootSlot } from \"./popover.slots\";\nimport type { PopoverProps } from \"./popover.types\";\n\n/**\n * # Popover\n *\n * A component that displays floating content in relation to a trigger element.\n *\n * Note this component is only used internally.\n */\nexport const Popover = (props: PopoverProps) => {\n const { children, ...rest } = props;\n\n return <PopoverRootSlot {...rest}>{children}</PopoverRootSlot>;\n};\n\nPopover.displayName = \"Popover\";\n"],"names":["withContext","createRecipeContext","PopoverRootSlot","RaPopover","Popover","props","children","rest","jsx"],"mappings":"sHAKM,CAAE,YAAAA,CAAA,EAAgBC,sBAAoB,CAC1C,IAAK,SACP,CAAC,EAEYC,EACXF,EAA4CG,2CAAS,ECA1CC,EAAWC,GAAwB,CAC9C,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAASF,EAE9B,OAAOG,EAAAA,IAACN,EAAA,CAAiB,GAAGK,EAAO,SAAAD,CAAA,CAAS,CAC9C,EAEAF,EAAQ,YAAc"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { createRecipeContext as p } from "@chakra-ui/react";
|
|
3
|
-
import { $ as s } from "./Dialog-
|
|
3
|
+
import { $ as s } from "./Dialog-DcnmO0xr.es.js";
|
|
4
4
|
const { withContext: n } = /* @__PURE__ */ p({
|
|
5
5
|
key: "popover"
|
|
6
6
|
}), c = /* @__PURE__ */ n(s), i = (o) => {
|
|
@@ -11,4 +11,4 @@ i.displayName = "Popover";
|
|
|
11
11
|
export {
|
|
12
12
|
i as P
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=popover-
|
|
14
|
+
//# sourceMappingURL=popover-zNeVW5hN.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popover-
|
|
1
|
+
{"version":3,"file":"popover-zNeVW5hN.es.js","sources":["../../src/components/popover/popover.slots.tsx","../../src/components/popover/popover.tsx"],"sourcesContent":["import { createRecipeContext } from \"@chakra-ui/react\";\nimport { Popover as RaPopover } from \"react-aria-components\";\nimport type { SlotComponent } from \"@/type-utils\";\nimport type { PopoverProps } from \"./popover.types\";\n\nconst { withContext } = createRecipeContext({\n key: \"popover\",\n});\n\nexport const PopoverRootSlot: SlotComponent<typeof RaPopover, PopoverProps> =\n withContext<typeof RaPopover, PopoverProps>(RaPopover);\n","import { PopoverRootSlot } from \"./popover.slots\";\nimport type { PopoverProps } from \"./popover.types\";\n\n/**\n * # Popover\n *\n * A component that displays floating content in relation to a trigger element.\n *\n * Note this component is only used internally.\n */\nexport const Popover = (props: PopoverProps) => {\n const { children, ...rest } = props;\n\n return <PopoverRootSlot {...rest}>{children}</PopoverRootSlot>;\n};\n\nPopover.displayName = \"Popover\";\n"],"names":["withContext","createRecipeContext","PopoverRootSlot","RaPopover","Popover","props","children","rest","jsx"],"mappings":";;;AAKA,MAAM,EAAE,aAAAA,EAAA,IAAgB,gBAAAC,EAAoB;AAAA,EAC1C,KAAK;AACP,CAAC,GAEYC,IACX,gBAAAF,EAA4CG,CAAS,GCA1CC,IAAU,CAACC,MAAwB;AAC9C,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAASF;AAE9B,SAAO,gBAAAG,EAACN,GAAA,EAAiB,GAAGK,GAAO,UAAAD,EAAA,CAAS;AAC9C;AAEAF,EAAQ,cAAc;"}
|
|
@@ -11,13 +11,13 @@ import { defineMessages as Ve, useIntl as Te } from "react-intl";
|
|
|
11
11
|
import { I as U } from "./icon-toggle-button-C4ISptbh.es.js";
|
|
12
12
|
import { G as ae } from "./group-CCBgdph2.es.js";
|
|
13
13
|
import { MoreHoriz as je, FormatStrikethrough as We, Code as Ge, KeyboardArrowDown as Xe, FormatBold as Ye, FormatItalic as Qe, FormatUnderlined as Je, FormatListBulleted as Ze, FormatListNumbered as et, Undo as tt, Redo as rt } from "@commercetools/nimbus-icons";
|
|
14
|
-
import { M as v } from "./menu-
|
|
14
|
+
import { M as v } from "./menu-xeJ9lZMo.es.js";
|
|
15
15
|
import { T as b } from "./tooltip-D3QrrizN.es.js";
|
|
16
16
|
import { I as se } from "./icon-button-1gt1BCJ2.es.js";
|
|
17
17
|
import { B } from "./box-DuBoAZvq.es.js";
|
|
18
18
|
import { T as L } from "./text-CIb_VDvO.es.js";
|
|
19
19
|
import { T as nt } from "./toolbar-DE2w5rxi.es.js";
|
|
20
|
-
import { S as le } from "./separator-
|
|
20
|
+
import { S as le } from "./separator-PVuFkBJX.es.js";
|
|
21
21
|
import { T as ce } from "./toggle-button-group-BWpmMkEz.es.js";
|
|
22
22
|
import { V } from "./visually-hidden-Dj5CT-u_.es.js";
|
|
23
23
|
function Me(t) {
|
|
@@ -265,13 +265,6 @@ const { withProvider: st, withContext: Se } = /* @__PURE__ */ Fe({
|
|
|
265
265
|
"heading-five",
|
|
266
266
|
"block-quote"
|
|
267
267
|
];
|
|
268
|
-
/*!
|
|
269
|
-
* escape-html
|
|
270
|
-
* Copyright(c) 2012-2013 TJ Holowaychuk
|
|
271
|
-
* Copyright(c) 2015 Andreas Lubbe
|
|
272
|
-
* Copyright(c) 2015 Tiancheng "Timothy" Gu
|
|
273
|
-
* MIT Licensed
|
|
274
|
-
*/
|
|
275
268
|
var ee, fe;
|
|
276
269
|
function ht() {
|
|
277
270
|
if (fe) return ee;
|
|
@@ -1197,4 +1190,4 @@ export {
|
|
|
1197
1190
|
Lt as R,
|
|
1198
1191
|
Me as g
|
|
1199
1192
|
};
|
|
1200
|
-
//# sourceMappingURL=rich-text-input-
|
|
1193
|
+
//# sourceMappingURL=rich-text-input-D9-NrOjQ.es.js.map
|