@purpur/library 9.0.6 → 9.0.7
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/CHANGELOG.json +33 -0
- package/CHANGELOG.md +15 -1
- package/dist/{RichText-DRacgpis.mjs → RichText-Bi51HE6X.mjs} +3 -3
- package/dist/{RichText-DRacgpis.mjs.map → RichText-Bi51HE6X.mjs.map} +1 -1
- package/dist/{RichText-DMyGiMN0.js → RichText-DNroJJXv.js} +2 -2
- package/dist/{RichText-DMyGiMN0.js.map → RichText-DNroJJXv.js.map} +1 -1
- package/dist/{ThemeProvider-CrjMv3M8.mjs → ThemeProvider-BR1hJQOD.mjs} +85 -85
- package/dist/{ThemeProvider-CrjMv3M8.mjs.map → ThemeProvider-BR1hJQOD.mjs.map} +1 -1
- package/dist/{accordion-DWflnyWa.mjs → accordion-BKTz9DM6.mjs} +18 -18
- package/dist/{accordion-DWflnyWa.mjs.map → accordion-BKTz9DM6.mjs.map} +1 -1
- package/dist/{accordion-CF2fj2uq.js → accordion-DX8efWOt.js} +2 -2
- package/dist/{accordion-CF2fj2uq.js.map → accordion-DX8efWOt.js.map} +1 -1
- package/dist/accordion.cjs.js +1 -1
- package/dist/accordion.es.js +1 -1
- package/dist/{alert-badge-u7qAhYbR.mjs → alert-badge-DR8cigWu.mjs} +3 -3
- package/dist/{alert-badge-u7qAhYbR.mjs.map → alert-badge-DR8cigWu.mjs.map} +1 -1
- package/dist/alert-badge.es.js +1 -1
- package/dist/{autocomplete-yD0-1vlF.js → autocomplete-6qSqK3SI.js} +2 -2
- package/dist/{autocomplete-yD0-1vlF.js.map → autocomplete-6qSqK3SI.js.map} +1 -1
- package/dist/{autocomplete-0kGG_STe.mjs → autocomplete-B4dZx9zF.mjs} +3 -3
- package/dist/{autocomplete-0kGG_STe.mjs.map → autocomplete-B4dZx9zF.mjs.map} +1 -1
- package/dist/autocomplete.cjs.js +1 -1
- package/dist/autocomplete.es.js +1 -1
- package/dist/button-BfYKNBmC.mjs +102 -0
- package/dist/button-BfYKNBmC.mjs.map +1 -0
- package/dist/button-DDYGuqZ0.js +2 -0
- package/dist/button-DDYGuqZ0.js.map +1 -0
- package/dist/button.cjs.js +1 -1
- package/dist/button.es.js +1 -1
- package/dist/{calendar-pMM0fKEu.js → calendar-CxkJMONO.js} +2 -2
- package/dist/{calendar-pMM0fKEu.js.map → calendar-CxkJMONO.js.map} +1 -1
- package/dist/{calendar-DDie8jSH.mjs → calendar-vALLklKV.mjs} +2 -2
- package/dist/{calendar-DDie8jSH.mjs.map → calendar-vALLklKV.mjs.map} +1 -1
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.es.js +1 -1
- package/dist/{card-DiMVw06l.mjs → card-CkZQZOz1.mjs} +9 -9
- package/dist/{card-DiMVw06l.mjs.map → card-CkZQZOz1.mjs.map} +1 -1
- package/dist/{card-B512KHpr.js → card-VMa3cGCP.js} +2 -2
- package/dist/{card-B512KHpr.js.map → card-VMa3cGCP.js.map} +1 -1
- package/dist/card.cjs.js +1 -1
- package/dist/card.es.js +1 -1
- package/dist/{checkbox-LYzMiXu7.mjs → checkbox-D6qWgpWR.mjs} +8 -8
- package/dist/{checkbox-LYzMiXu7.mjs.map → checkbox-D6qWgpWR.mjs.map} +1 -1
- package/dist/checkbox.es.js +1 -1
- package/dist/{chip-group-aj1fdnjC.js → chip-group-B775zvKD.js} +2 -2
- package/dist/{chip-group-aj1fdnjC.js.map → chip-group-B775zvKD.js.map} +1 -1
- package/dist/{chip-group-CJVvfl_J.mjs → chip-group-xuOe7nL3.mjs} +3 -3
- package/dist/{chip-group-CJVvfl_J.mjs.map → chip-group-xuOe7nL3.mjs.map} +1 -1
- package/dist/chip-group.cjs.js +1 -1
- package/dist/chip-group.es.js +1 -1
- package/dist/components/button/src/button.d.ts +1 -2
- package/dist/components/button/src/button.d.ts.map +1 -1
- package/dist/components/date-field/src/date-field.d.ts.map +1 -1
- package/dist/components/stepper/src/stepper-button.d.ts.map +1 -1
- package/dist/components/table/src/table-toolbar.d.ts.map +1 -1
- package/dist/components/tabs/src/tab-content.d.ts.map +1 -1
- package/dist/components/tabs/src/tabs.d.ts.map +1 -1
- package/dist/{container-Bw12NgHN.mjs → container-DLjBTB_w.mjs} +3 -3
- package/dist/{container-Bw12NgHN.mjs.map → container-DLjBTB_w.mjs.map} +1 -1
- package/dist/container.es.js +1 -1
- package/dist/{content-block-DUcjAZgG.mjs → content-block-BMOvlH7a.mjs} +6 -6
- package/dist/{content-block-DUcjAZgG.mjs.map → content-block-BMOvlH7a.mjs.map} +1 -1
- package/dist/{content-block-kzdUWgvH.js → content-block-Cd7xSE8t.js} +2 -2
- package/dist/{content-block-kzdUWgvH.js.map → content-block-Cd7xSE8t.js.map} +1 -1
- package/dist/content-block.cjs.js +1 -1
- package/dist/content-block.es.js +1 -1
- package/dist/{countdown-DxAGVUFI.mjs → countdown-DZ4IwkNy.mjs} +12 -12
- package/dist/{countdown-DxAGVUFI.mjs.map → countdown-DZ4IwkNy.mjs.map} +1 -1
- package/dist/countdown.es.js +1 -1
- package/dist/date-field-CORqon6B.js +2 -0
- package/dist/{date-field-CPiTZqa0.js.map → date-field-CORqon6B.js.map} +1 -1
- package/dist/{date-field-D_6iP2fC.mjs → date-field-CTJB8O0e.mjs} +325 -310
- package/dist/{date-field-D_6iP2fC.mjs.map → date-field-CTJB8O0e.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-BRnwwZv1.mjs → date-picker-CJcIJ5VL.mjs} +5 -5
- package/dist/{date-picker-BRnwwZv1.mjs.map → date-picker-CJcIJ5VL.mjs.map} +1 -1
- package/dist/{date-picker-DlJGggam.js → date-picker-Dv3W05Hf.js} +2 -2
- package/dist/{date-picker-DlJGggam.js.map → date-picker-Dv3W05Hf.js.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/{dismissable-chip-group-DsO2cZaF.js → dismissable-chip-group-CnziecOt.js} +2 -2
- package/dist/{dismissable-chip-group-DsO2cZaF.js.map → dismissable-chip-group-CnziecOt.js.map} +1 -1
- package/dist/{dismissable-chip-group-Bl0D18qM.mjs → dismissable-chip-group-ZCYOt1sB.mjs} +2 -2
- package/dist/{dismissable-chip-group-Bl0D18qM.mjs.map → dismissable-chip-group-ZCYOt1sB.mjs.map} +1 -1
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +1 -1
- package/dist/{drawer-nBpCtIdI.js → drawer-Ce5LNpU2.js} +2 -2
- package/dist/{drawer-nBpCtIdI.js.map → drawer-Ce5LNpU2.js.map} +1 -1
- package/dist/{drawer-Boqmgh-i.mjs → drawer-DSFZ61OH.mjs} +14 -14
- package/dist/{drawer-Boqmgh-i.mjs.map → drawer-DSFZ61OH.mjs.map} +1 -1
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/{floating-ui.react-dom-0ol4sFzt.mjs → floating-ui.react-dom-gsHLgcoR.mjs} +5 -5
- package/dist/{floating-ui.react-dom-0ol4sFzt.mjs.map → floating-ui.react-dom-gsHLgcoR.mjs.map} +1 -1
- package/dist/{footer-DrjAwjuL.js → footer-BL0ewBZT.js} +2 -2
- package/dist/{footer-DrjAwjuL.js.map → footer-BL0ewBZT.js.map} +1 -1
- package/dist/{footer-DcWsihxS.mjs → footer-cH07Xqil.mjs} +5 -5
- package/dist/{footer-DcWsihxS.mjs.map → footer-cH07Xqil.mjs.map} +1 -1
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/heading-drD5ugCC.js +2 -0
- package/dist/{heading-DLCdW6gx.js.map → heading-drD5ugCC.js.map} +1 -1
- package/dist/heading-xwBuT_-9.mjs +75 -0
- package/dist/{heading-gqtQNo5n.mjs.map → heading-xwBuT_-9.mjs.map} +1 -1
- package/dist/heading.cjs.js +1 -1
- package/dist/heading.es.js +1 -1
- package/dist/{hero-banner-B8fRHxXc.mjs → hero-banner-CkSSlxTW.mjs} +5 -5
- package/dist/{hero-banner-B8fRHxXc.mjs.map → hero-banner-CkSSlxTW.mjs.map} +1 -1
- package/dist/{hero-banner-D3peC1NR.js → hero-banner-JFaqW20R.js} +2 -2
- package/dist/{hero-banner-D3peC1NR.js.map → hero-banner-JFaqW20R.js.map} +1 -1
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +44 -44
- package/dist/{listbox-u6__DsLw.mjs → listbox-oDeP8FvH.mjs} +2 -2
- package/dist/{listbox-u6__DsLw.mjs.map → listbox-oDeP8FvH.mjs.map} +1 -1
- package/dist/listbox.es.js +1 -1
- package/dist/{modal-C2UQsW-g.mjs → modal-2ymCXTup.mjs} +19 -19
- package/dist/{modal-C2UQsW-g.mjs.map → modal-2ymCXTup.mjs.map} +1 -1
- package/dist/{modal-nyhf5zxG.js → modal-CXi2xez5.js} +2 -2
- package/dist/{modal-nyhf5zxG.js.map → modal-CXi2xez5.js.map} +1 -1
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{notification-C32wHljA.mjs → notification-BFSOuDp8.mjs} +22 -22
- package/dist/{notification-C32wHljA.mjs.map → notification-BFSOuDp8.mjs.map} +1 -1
- package/dist/{notification-Bg1vQkQ3.js → notification-DdnI2rOh.js} +2 -2
- package/dist/{notification-Bg1vQkQ3.js.map → notification-DdnI2rOh.js.map} +1 -1
- package/dist/{notification-banner-BY2iZOIa.mjs → notification-banner-CQvBezAL.mjs} +3 -3
- package/dist/{notification-banner-BY2iZOIa.mjs.map → notification-banner-CQvBezAL.mjs.map} +1 -1
- package/dist/{notification-banner-C8XsBDTq.js → notification-banner-CT4ew8IQ.js} +2 -2
- package/dist/{notification-banner-C8XsBDTq.js.map → notification-banner-CT4ew8IQ.js.map} +1 -1
- package/dist/notification-banner.cjs.js +1 -1
- package/dist/notification-banner.es.js +1 -1
- package/dist/notification.cjs.js +1 -1
- package/dist/notification.es.js +1 -1
- package/dist/{pagination-CVVCAQ65.mjs → pagination-BdCjh1Pi.mjs} +2 -2
- package/dist/{pagination-CVVCAQ65.mjs.map → pagination-BdCjh1Pi.mjs.map} +1 -1
- package/dist/pagination.es.js +1 -1
- package/dist/{paragraph-DNtj7OLr.mjs → paragraph-Ci50OF1u.mjs} +3 -3
- package/dist/{paragraph-DNtj7OLr.mjs.map → paragraph-Ci50OF1u.mjs.map} +1 -1
- package/dist/paragraph.es.js +1 -1
- package/dist/{popover-B1BgSoQx.js → popover-D3qWbbU4.js} +2 -2
- package/dist/{popover-B1BgSoQx.js.map → popover-D3qWbbU4.js.map} +1 -1
- package/dist/{popover-DBMI9Jy1.mjs → popover-ZeQKmyEb.mjs} +25 -25
- package/dist/{popover-DBMI9Jy1.mjs.map → popover-ZeQKmyEb.mjs.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{product-card-rfpJbzzV.mjs → product-card-BU1ThhCx.mjs} +12 -12
- package/dist/{product-card-rfpJbzzV.mjs.map → product-card-BU1ThhCx.mjs.map} +1 -1
- package/dist/{product-card-DOBHGAa2.js → product-card-CNBegEBW.js} +2 -2
- package/dist/{product-card-DOBHGAa2.js.map → product-card-CNBegEBW.js.map} +1 -1
- package/dist/product-card.cjs.js +1 -1
- package/dist/product-card.es.js +1 -1
- package/dist/{promotion-card-BIFOwMrw.js → promotion-card-CXNhskRl.js} +2 -2
- package/dist/{promotion-card-BIFOwMrw.js.map → promotion-card-CXNhskRl.js.map} +1 -1
- package/dist/{promotion-card-DeyqFnyP.mjs → promotion-card-_bPyVr9t.mjs} +9 -9
- package/dist/{promotion-card-DeyqFnyP.mjs.map → promotion-card-_bPyVr9t.mjs.map} +1 -1
- package/dist/promotion-card.cjs.js +1 -1
- package/dist/promotion-card.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/{quantity-selector-DPOTlMSq.js → quantity-selector-CjSAaj7d.js} +2 -2
- package/dist/{quantity-selector-DPOTlMSq.js.map → quantity-selector-CjSAaj7d.js.map} +1 -1
- package/dist/{quantity-selector-_VcZYLjR.mjs → quantity-selector-HvyYSKah.mjs} +5 -5
- package/dist/{quantity-selector-_VcZYLjR.mjs.map → quantity-selector-HvyYSKah.mjs.map} +1 -1
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +1 -1
- package/dist/{radio-button-group-CZ_FnVAi.js → radio-button-group-BaFpGAcD.js} +2 -2
- package/dist/{radio-button-group-CZ_FnVAi.js.map → radio-button-group-BaFpGAcD.js.map} +1 -1
- package/dist/{radio-button-group-BnCPcmSN.mjs → radio-button-group-CFqPsu5A.mjs} +5 -5
- package/dist/{radio-button-group-BnCPcmSN.mjs.map → radio-button-group-CFqPsu5A.mjs.map} +1 -1
- package/dist/radio-button-group.cjs.js +1 -1
- package/dist/radio-button-group.es.js +1 -1
- package/dist/{radio-card-group-DkaMcmen.mjs → radio-card-group-BlRZBa-9.mjs} +16 -16
- package/dist/{radio-card-group-DkaMcmen.mjs.map → radio-card-group-BlRZBa-9.mjs.map} +1 -1
- package/dist/{radio-card-group-BT5pV3tA.js → radio-card-group-sYcfDPJq.js} +2 -2
- package/dist/{radio-card-group-BT5pV3tA.js.map → radio-card-group-sYcfDPJq.js.map} +1 -1
- package/dist/radio-card-group.cjs.js +1 -1
- package/dist/radio-card-group.es.js +1 -1
- package/dist/rich-text.cjs.js +1 -1
- package/dist/rich-text.es.js +1 -1
- package/dist/scss/heading.mixins.scss +1 -1
- package/dist/{search-field-DH0xeW_J.mjs → search-field-BOmCVr5b.mjs} +11 -11
- package/dist/{search-field-DH0xeW_J.mjs.map → search-field-BOmCVr5b.mjs.map} +1 -1
- package/dist/{search-field-CxX4BBcg.js → search-field-CanOlkIY.js} +2 -2
- package/dist/{search-field-CxX4BBcg.js.map → search-field-CanOlkIY.js.map} +1 -1
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-BfIbJwZn.mjs → stepper-D7T0wed7.mjs} +68 -71
- package/dist/stepper-D7T0wed7.mjs.map +1 -0
- package/dist/stepper-DYjJgEHL.js +2 -0
- package/dist/stepper-DYjJgEHL.js.map +1 -0
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-DvcpczWf.mjs → table-B4pts_r4.mjs} +181 -179
- package/dist/{table-DvcpczWf.mjs.map → table-B4pts_r4.mjs.map} +1 -1
- package/dist/{table-BNeo_B1h.js → table-Bv_BISXV.js} +4 -4
- package/dist/{table-BNeo_B1h.js.map → table-Bv_BISXV.js.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/tabs-Bye5lgZ1.mjs +424 -0
- package/dist/tabs-Bye5lgZ1.mjs.map +1 -0
- package/dist/tabs-D-nfZHIA.js +2 -0
- package/dist/tabs-D-nfZHIA.js.map +1 -0
- package/dist/tabs.cjs.js +1 -1
- package/dist/tabs.es.js +1 -1
- package/dist/{text-area-Cb9Hm2Z9.mjs → text-area-CpYWt99s.mjs} +3 -3
- package/dist/{text-area-Cb9Hm2Z9.mjs.map → text-area-CpYWt99s.mjs.map} +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/{text-field-PKAaXO1N.mjs → text-field-5rIuW8gc.mjs} +2 -2
- package/dist/{text-field-PKAaXO1N.mjs.map → text-field-5rIuW8gc.mjs.map} +1 -1
- package/dist/{text-field-B8a-NKm4.js → text-field-Xt6T3zjO.js} +2 -2
- package/dist/{text-field-B8a-NKm4.js.map → text-field-Xt6T3zjO.js.map} +1 -1
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.es.js +1 -1
- package/dist/theme.es.js +2 -2
- package/dist/{toggle-Cezg5MUc.mjs → toggle-D23x1wWk.mjs} +9 -9
- package/dist/{toggle-Cezg5MUc.mjs.map → toggle-D23x1wWk.mjs.map} +1 -1
- package/dist/toggle.es.js +1 -1
- package/dist/tokens.es.js +3 -3
- package/dist/{tooltip-DXi7ikUT.mjs → tooltip-DkwyNxrQ.mjs} +12 -12
- package/dist/{tooltip-DXi7ikUT.mjs.map → tooltip-DkwyNxrQ.mjs.map} +1 -1
- package/dist/{tooltip-CLQLxoaf.js → tooltip-svlZkXBs.js} +2 -2
- package/dist/{tooltip-CLQLxoaf.js.map → tooltip-svlZkXBs.js.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{useColorScheme-DRQcbSog.mjs → useColorScheme-9rgSgG0N.mjs} +2 -2
- package/dist/{useColorScheme-DRQcbSog.mjs.map → useColorScheme-9rgSgG0N.mjs.map} +1 -1
- package/dist/{variables-91UvS2rU.mjs → variables-BVgnpUH9.mjs} +253 -253
- package/dist/{variables-91UvS2rU.mjs.map → variables-BVgnpUH9.mjs.map} +1 -1
- package/dist/{variables-BSsIx39i.mjs → variables-DkCN2x27.mjs} +7 -7
- package/dist/{variables-BSsIx39i.mjs.map → variables-DkCN2x27.mjs.map} +1 -1
- package/dist/{variables-BUfnQw6H.mjs → variables-Dr3Hsdn-.mjs} +9 -9
- package/dist/{variables-BUfnQw6H.mjs.map → variables-Dr3Hsdn-.mjs.map} +1 -1
- package/package.json +18 -18
- package/scripts/generate.mts +4 -1
- package/vite-plugin-generate-components-metadata.js +4 -1
- package/dist/button-ChYUPi2k.js +0 -2
- package/dist/button-ChYUPi2k.js.map +0 -1
- package/dist/button-DBX_tvfJ.mjs +0 -105
- package/dist/button-DBX_tvfJ.mjs.map +0 -1
- package/dist/date-field-CPiTZqa0.js +0 -2
- package/dist/heading-DLCdW6gx.js +0 -2
- package/dist/heading-gqtQNo5n.mjs +0 -75
- package/dist/stepper-B248FwO-.js +0 -2
- package/dist/stepper-B248FwO-.js.map +0 -1
- package/dist/stepper-BfIbJwZn.mjs.map +0 -1
- package/dist/tabs-CfHd4UQ2.js +0 -2
- package/dist/tabs-CfHd4UQ2.js.map +0 -1
- package/dist/tabs-CoXMAwMx.mjs +0 -396
- package/dist/tabs-CoXMAwMx.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-banner-
|
|
1
|
+
{"version":3,"file":"notification-banner-CT4ew8IQ.js","sources":["../../../components/notification-banner/src/notification-banner.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Grid } from \"@purpur/grid\";\nimport { Heading, type HeadingTagType } from \"@purpur/heading\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { IconInfo } from \"@purpur/icon/info\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./notification-banner.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type DefaultProps = BaseProps & {\n closeButtonAriaLabel?: string;\n description?: string;\n hideIcon?: boolean;\n icon?: ReactNode;\n link?: ReactNode;\n titleTag?: HeadingTagType;\n title?: string;\n};\n\ntype CloseButtonProps = {\n onClose: () => void;\n closeButtonAriaLabel: string;\n};\n\ntype NoCloseButtonProps = {\n onClose?: never;\n closeButtonAriaLabel?: never;\n};\n\nexport type NotificationBannerProps = DefaultProps & (CloseButtonProps | NoCloseButtonProps);\n\nconst rootClassName = \"purpur-notification-banner\";\n\nexport const NotificationBanner = forwardRef<HTMLDivElement, NotificationBannerProps>(\n (\n {\n [\"data-testid\"]: dataTestId,\n children,\n className,\n closeButtonAriaLabel,\n description,\n hideIcon,\n icon,\n link,\n onClose,\n titleTag = \"h4\",\n title,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <div {...props} className={classes} role=\"alert\" ref={ref} data-testid={dataTestId}>\n <Grid>\n <div className={cx(`${rootClassName}__container`)}>\n {!hideIcon ? (\n icon ? (\n <span className={cx(`${rootClassName}__icon`)}>{icon}</span>\n ) : (\n <IconInfo className={cx(`${rootClassName}__icon`)} size=\"sm\" />\n )\n ) : null}\n <div className={cx(`${rootClassName}__content`)}>\n <Heading\n tag={titleTag}\n variant=\"subsection-100\"\n className={cx([\n `${rootClassName}__heading`,\n { [`${rootClassName}__heading--no-overlap`]: onClose },\n ])}\n >\n {title}\n </Heading>\n <div>\n {description} {link}\n </div>\n {children}\n </div>\n {onClose && (\n <Button\n data-testid={dataTestId ? `${dataTestId}-close-button` : undefined}\n variant=\"tertiary-purple\"\n size=\"sm\"\n iconOnly\n aria-label={closeButtonAriaLabel}\n onClick={onClose}\n className={cx(`${rootClassName}__close-button`)}\n >\n <IconClose size=\"sm\" />\n </Button>\n )}\n </div>\n </Grid>\n </div>\n );\n }\n);\n\nNotificationBanner.displayName = \"NotificationBanner\";\n"],"names":["cx","c","styles","rootClassName","NotificationBanner","forwardRef","dataTestId","children","className","closeButtonAriaLabel","description","hideIcon","icon","link","onClose","titleTag","title","props","ref","classes","jsx","Grid","IconInfo","Heading","Button","IconClose"],"mappings":"23BAWMA,EAAKC,EAAAA,EAAE,KAAKC,CAAM,EAwBlBC,EAAgB,6BAETC,EAAqBC,EAAAA,WAChC,CACE,CACE,CAAC,eAAgBC,EACjB,SAAAC,EACA,UAAAC,EACA,qBAAAC,EACA,YAAAC,EACA,SAAAC,EACA,KAAAC,EACA,KAAAC,EACA,QAAAC,EACA,SAAAC,EAAW,KACX,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUnB,EAAGQ,EAAWL,CAAa,EAE3C,OACEiB,MAAC,OAAK,GAAGH,EAAO,UAAWE,EAAS,KAAK,QAAQ,IAAAD,EAAU,cAAaZ,EACtE,SAAAc,MAACC,EAAAA,KAAA,CACC,gBAAC,MAAA,CAAI,UAAWrB,EAAG,GAAGG,CAAa,aAAa,EAC7C,SAAA,CAACQ,EAME,KALFC,EACEQ,EAAAA,IAAC,OAAA,CAAK,UAAWpB,EAAG,GAAGG,CAAa,QAAQ,EAAI,SAAAS,EAAK,EAErDQ,EAAAA,IAACE,EAAAA,EAAA,CAAS,UAAWtB,EAAG,GAAGG,CAAa,QAAQ,EAAG,KAAK,IAAA,CAAK,SAGhE,MAAA,CAAI,UAAWH,EAAG,GAAGG,CAAa,WAAW,EAC5C,SAAA,CAAAiB,EAAAA,IAACG,EAAAA,QAAA,CACC,IAAKR,EACL,QAAQ,iBACR,UAAWf,EAAG,CACZ,GAAGG,CAAa,YAChB,CAAE,CAAC,GAAGA,CAAa,uBAAuB,EAAGW,CAAA,CAAQ,CACtD,EAEA,SAAAE,CAAA,CAAA,SAEF,MAAA,CACE,SAAA,CAAAN,EAAY,IAAEG,CAAA,EACjB,EACCN,CAAA,EACH,EACCO,GACCM,EAAAA,IAACI,EAAAA,OAAA,CACC,cAAalB,EAAa,GAAGA,CAAU,gBAAkB,OACzD,QAAQ,kBACR,KAAK,KACL,SAAQ,GACR,aAAYG,EACZ,QAASK,EACT,UAAWd,EAAG,GAAGG,CAAa,gBAAgB,EAE9C,SAAAiB,EAAAA,IAACK,EAAAA,EAAA,CAAU,KAAK,IAAA,CAAK,CAAA,CAAA,CACvB,CAAA,CAEJ,EACF,EACF,CAEJ,CACF,EAEArB,EAAmB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-banner-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-banner-CT4ew8IQ.js");exports.NotificationBanner=i.NotificationBanner;
|
|
2
2
|
//# sourceMappingURL=notification-banner.cjs.js.map
|
package/dist/notification.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./notification-DdnI2rOh.js");exports.NOTIFICATION_ARIA_LIVE=i.NOTIFICATION_ARIA_LIVE;exports.NOTIFICATION_ROLE=i.NOTIFICATION_ROLE;exports.NOTIFICATION_STATUS=i.NOTIFICATION_STATUS;exports.Notification=i.Notification;exports.notificationAriaLiveValues=i.notificationAriaLiveValues;exports.notificationRoles=i.notificationRoles;exports.notificationStatuses=i.notificationStatuses;
|
|
2
2
|
//# sourceMappingURL=notification.cjs.js.map
|
package/dist/notification.es.js
CHANGED
|
@@ -5,7 +5,7 @@ import { i as de } from "./arrow-right.es-C7SkjAB6.mjs";
|
|
|
5
5
|
import { V as S } from "./visually-hidden-BYFkJEp1.mjs";
|
|
6
6
|
import { c as w } from "./bind-CU-R61T-.mjs";
|
|
7
7
|
import { L as W } from "./label-7sJe5-pX.mjs";
|
|
8
|
-
import {
|
|
8
|
+
import { P as X } from "./paragraph-Ci50OF1u.mjs";
|
|
9
9
|
import { S as Y } from "./select-BEmu_fh9.mjs";
|
|
10
10
|
const $e = {
|
|
11
11
|
name: "arrow-left",
|
|
@@ -563,4 +563,4 @@ Ee.displayName = "Pagination";
|
|
|
563
563
|
export {
|
|
564
564
|
Ee as P
|
|
565
565
|
};
|
|
566
|
-
//# sourceMappingURL=pagination-
|
|
566
|
+
//# sourceMappingURL=pagination-BdCjh1Pi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-CVVCAQ65.mjs","sources":["../../../components/icon/dist/components/arrow-left.es.js","../../../components/pagination/src/navigation.ts","../../../components/pagination/src/use-page-options.hook.ts","../../../components/pagination/src/pagination-page-selector.tsx","../../../components/pagination/src/use-page-size-options.hook.ts","../../../components/pagination/src/pagination-page-size-selector.tsx","../../../components/pagination/src/pagination-page-trigger.tsx","../../../components/pagination/src/pagination-truncation-separator.tsx","../../../components/pagination/src/pagination-pages.tsx","../../../components/pagination/src/pagination-step-trigger.tsx","../../../components/pagination/src/use-pagination-pages.hook.ts","../../../components/pagination/src/pagination.tsx"],"sourcesContent":["import { jsx as r } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst t = {\n name: \"arrow-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"arrow-left\"],\n category: \"utility\"\n}, l = (o) => /* @__PURE__ */ r(e, { ...o, svg: t });\nl.displayName = \"IconArrowLeft\";\nexport {\n l as IconArrowLeft\n};\n//# sourceMappingURL=arrow-left.es.js.map\n","export const navigateToPage = (url: string): void => {\n window.location.href = url;\n};\n","import { useMemo } from \"react\";\nimport type { SelectOption } from \"@purpur/select\";\n\ntype UsePageOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageOptions = (numberOfPages: number): UsePageOptionsHook => {\n const options = useMemo(\n () =>\n Array.from({ length: numberOfPages }, (_, i) => ({ label: `${i + 1}`, value: `${i + 1}` })),\n [numberOfPages]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { Select } from \"@purpur/select\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-selector.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps } from \"./types\";\nimport { usePageOptions } from \"./use-page-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSelectorProps = Omit<BaseProps, \"children\"> & {\n currentPage: number;\n navigationFunction: (page: number, url: string) => void;\n numberOfPages: number;\n onPageChange: (page: number) => void;\n outOfLabel: string;\n pageSelectorId?: string;\n pageSelectorLabel: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-selector\";\n\nexport const PaginationPageSelector = forwardRef<HTMLDivElement, PaginationPageSelectorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-selector\",\n asLink,\n className,\n currentPage,\n hrefGetter,\n navigationFunction,\n numberOfPages,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n ...props\n },\n ref\n ) => {\n const id = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageOptions(numberOfPages);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const page = event.target.value ? Number(event.target.value) : 1;\n onPageChange(page);\n if (asLink) {\n const url = hrefGetter?.(page) ?? \"\";\n navigationFunction(page, url);\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__select-container`)}>\n <VisuallyHidden>\n <Label data-testid={`${dataTestId}-label`} htmlFor={id}>\n {pageSelectorLabel}\n </Label>\n </VisuallyHidden>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={pageSelectorId ?? id}\n onChange={onSelectionChange}\n options={options}\n value={String(currentPage)}\n />\n </div>\n <Paragraph\n className={cx(`${rootClassName}__of-total-pages-label`)}\n data-testid={`${dataTestId}-of-total-pages`}\n >\n {`${outOfLabel} ${numberOfPages}`}\n </Paragraph>\n </div>\n );\n }\n);\n\nPaginationPageSelector.displayName = \"PaginationPageSelector\";\n","import { useMemo } from \"react\";\nimport { type SelectOption } from \"@purpur/select\";\n\ntype UsePageSizeOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageSizeOptions = (availablePageSizes: number[]): UsePageSizeOptionsHook => {\n const options = useMemo(\n () =>\n availablePageSizes.map((pageSize: number) => ({\n label: `${pageSize}`,\n value: `${pageSize}`,\n })),\n [availablePageSizes]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Select } from \"@purpur/select\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination-page-size-selector.module.scss\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePageSizeOptions } from \"./use-page-size-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSizeSelectorProps = Omit<BaseProps, \"children\"> & {\n availablePageSizes: number[];\n onPageSizeChange: (itemsPerPage: number) => void;\n pageSize: number;\n pageSizeLabel: string;\n} & (Omit<LinkProps, \"onPageChange\"> | Omit<NoLinkProps, \"onPageChange\">);\n\nconst rootClassName = \"purpur-pagination-page-size-selector\";\n\nexport const PaginationPageSizeSelector = forwardRef<\n HTMLDivElement,\n PaginationPageSizeSelectorProps\n>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-size-selector\",\n asLink,\n availablePageSizes,\n className,\n hrefGetter,\n navigationFunction,\n onPageSizeChange,\n pageSize,\n pageSizeLabel,\n ...props\n },\n ref\n ) => {\n const selectId = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageSizeOptions(availablePageSizes);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const selectedPageSize = Number(event.target.value);\n onPageSizeChange(selectedPageSize);\n if (asLink) {\n const url = hrefGetter({ page: 1, pageSize: selectedPageSize });\n if (navigationFunction) {\n navigationFunction({ currentPage: 1, pageSize: selectedPageSize, url });\n } else {\n navigateToPage(url);\n }\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <Label\n className={cx(`${rootClassName}__items-per-page-label`)}\n data-testid={`${dataTestId}-item-per-page-label`}\n htmlFor={selectId}\n >\n <span className={cx(`${rootClassName}__items-per-page-label-text`)}>{pageSizeLabel}</span>\n </Label>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={selectId}\n onChange={onSelectionChange}\n options={options}\n value={pageSize}\n />\n </div>\n );\n }\n);\n\nPaginationPageSizeSelector.displayName = \"PaginationPageSizeSelector\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageTriggerProps = Omit<BaseProps<\"li\">, \"children\"> & {\n linkElement: Link;\n disabled?: boolean;\n onPageChange: (page: number) => void;\n pageNumber: number;\n selected: boolean;\n stepNumberPrefix: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-trigger\";\n\nexport const PaginationPageTrigger = forwardRef<HTMLLIElement, PaginationPageTriggerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-trigger\",\n linkElement: LinkElement,\n asLink,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageNumber,\n selected,\n stepNumberPrefix,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n `${rootClassName}__trigger-item--disabled`\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-disabled-link`}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </span>\n ) : (\n <LinkElement\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageNumber)}\n onClick={() => onPageChange(pageNumber)}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n data-testid={`${dataTestId}-button`}\n aria-current={selected ? \"page\" : undefined}\n disabled={disabled}\n onClick={() => onPageChange(pageNumber)}\n type=\"button\"\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </button>\n )}\n </li>\n );\n }\n);\n\nPaginationPageTrigger.displayName = \"PaginationPageTrigger\";\n","import React from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-truncation-separator.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTruncationSeparatorProps = Omit<BaseProps<\"li\">, \"children\">;\n\nconst rootClassName = \"purpur-pagination-truncation-separator\";\n\nexport const PaginationTruncationSeparator = ({\n [\"data-testid\"]: dataTestId = \"purpur-pagination-truncation-separator\",\n className,\n [\"aria-label\"]: ariaLabel,\n ...props\n}: PaginationTruncationSeparatorProps) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} {...props}>\n <Paragraph aria-label={ariaLabel}>...</Paragraph>\n </li>\n );\n};\n\nPaginationTruncationSeparator.displayName = \"PaginationTruncationSeparator\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { PaginationPageTrigger } from \"./pagination-page-trigger\";\nimport styles from \"./pagination-pages.module.scss\";\nimport { PaginationTruncationSeparator } from \"./pagination-truncation-separator\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPagesProps = Omit<BaseProps<\"ol\">, \"children\"> & {\n linkElement: Link;\n currentPage: number;\n onPageChange: (page: number) => void;\n pages: number[];\n stepNumberPrefix: string;\n truncationSeparatorAriaLabel?: string;\n} & (InternalNoLinkProps | InternalLinkProps);\n\nconst rootClassName = \"purpur-pagination-pages\";\n\nexport const PaginationPages = forwardRef<HTMLOListElement, PaginationPagesProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-pages\",\n linkElement: LinkElement,\n asLink,\n className,\n currentPage,\n hrefGetter,\n onPageChange,\n pages,\n stepNumberPrefix,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <ol className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {pages.flatMap((pageNumber: number, idx: number, pages: number[]) => {\n const TriggerComponent = (\n <PaginationPageTrigger\n {...(asLink\n ? { asLink: true, hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n })}\n linkElement={LinkElement}\n data-testid={`${dataTestId}-page-${pageNumber}`}\n key={pageNumber}\n onPageChange={onPageChange}\n selected={pageNumber === currentPage}\n stepNumberPrefix={stepNumberPrefix}\n pageNumber={pageNumber}\n />\n );\n return idx === 0 || pages[idx - 1] + 1 === pageNumber\n ? [TriggerComponent]\n : [\n <PaginationTruncationSeparator\n data-testid={`${dataTestId}-truncation-separator-${pageNumber}`}\n key={`${pageNumber}-separator`}\n aria-label={truncationSeparatorAriaLabel}\n />,\n TriggerComponent,\n ];\n })}\n </ol>\n );\n }\n);\n\nPaginationPages.displayName = \"PaginationPages\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-step-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationStepTriggerProps = Omit<BaseProps, \"children\"> & {\n linkElement: Link;\n children: ReactNode;\n disabled: boolean;\n onPageChange: (page: number) => void;\n pageToNavigateTo: number;\n isIconOnly: boolean;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-step-trigger\";\n\nexport const PaginationStepTrigger = forwardRef<HTMLDivElement, PaginationStepTriggerProps>(\n (\n {\n [\"aria-label\"]: ariaLabel,\n [\"data-testid\"]: dataTestId = \"purpur-pagination-step-trigger\",\n linkElement: LinkElement,\n asLink,\n children,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageToNavigateTo,\n isIconOnly,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--disabled`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-disabled-link`}\n >\n {children}\n </span>\n ) : (\n <LinkElement\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageToNavigateTo)}\n onClick={() => onPageChange(pageToNavigateTo)}\n >\n {children}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n {\n [`${rootClassName}__trigger-item--disabled`]: disabled,\n [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly,\n }\n )}\n data-testid={`${dataTestId}-button`}\n disabled={disabled}\n onClick={() => onPageChange(pageToNavigateTo)}\n type=\"button\"\n >\n {children}\n </button>\n )}\n </div>\n );\n }\n);\n\nPaginationStepTrigger.displayName = \"PaginationStepTrigger\";\n","import { useEffect, useState } from \"react\";\n\ntype UsePaginationPagesHook = {\n pages: number[];\n numberOfPages: number;\n};\n\nexport const usePaginationPages = (\n totalItems: number,\n pageSize: number,\n currentPage: number\n): UsePaginationPagesHook => {\n const [pages, setPages] = useState<number[]>([]);\n const [numberOfPages, setNumberOfPages] = useState<number>(0);\n\n useEffect(() => {\n const totalNumberOfPages = Math.ceil(totalItems / pageSize);\n setNumberOfPages(totalNumberOfPages);\n setPages(getPagesToDisplay(totalNumberOfPages, currentPage));\n }, [totalItems, pageSize, currentPage]);\n\n return {\n pages,\n numberOfPages,\n };\n};\n\nfunction getPagesToDisplay(totalNumberOfPages: number, currentPage: number): number[] {\n if (totalNumberOfPages <= 5) {\n return Array.from({ length: totalNumberOfPages }, (_, i) => i + 1);\n }\n const firstThreePages = [1, 2, 3];\n if (firstThreePages.includes(currentPage)) {\n return [...firstThreePages, 4, totalNumberOfPages];\n }\n const lastThreePages = [totalNumberOfPages - 2, totalNumberOfPages - 1, totalNumberOfPages];\n if (lastThreePages.includes(currentPage)) {\n return [1, totalNumberOfPages - 3, ...lastThreePages];\n }\n return [1, currentPage - 1, currentPage, currentPage + 1, totalNumberOfPages];\n}\n","import React, { forwardRef, useState } from \"react\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination.module.scss\";\nimport { PaginationPageSelector } from \"./pagination-page-selector\";\nimport { PaginationPageSizeSelector } from \"./pagination-page-size-selector\";\nimport { PaginationPages } from \"./pagination-pages\";\nimport { PaginationStepTrigger } from \"./pagination-step-trigger\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePaginationPages } from \"./use-pagination-pages.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTexts = {\n nextButtonAriaLabel: string;\n /**\n * Omiting this and previousButtonText will result in an icon-only button.\n */\n nextButtonText?: string;\n /**\n * This is the divider word between the current page and the total number of pages.\n * For example, if the current page is 1 and the total number of pages is 10, the text will be \"1 of 10\".\n */\n outOfLabel: string;\n /**\n * This is a hidden label for the page selector\n */\n pageSelectorLabel: string;\n /**\n * This is the \"...\" text that is displayed when there are more pages than can be shown at once.\n */\n truncationSeparatorAriaLabel?: string;\n previousButtonAriaLabel: string;\n /**\n * Omiting this and nextButtonText will result in an icon-only button.\n */\n previousButtonText?: string;\n /**\n * This is a screen reader text that will be inserted before the current page number. For example, for step 1 it will say \"Go to step 1\".\n */\n stepNumberPrefix: string;\n};\n\nexport type PageSizeProps = {\n availablePageSizes: number[];\n pageSize?: number;\n /**\n * The label describing the page size select.\n */\n pageSizeLabel: string;\n};\n\nexport type NoPageSizeProps = {\n availablePageSizes?: never;\n pageSize?: number;\n pageSizeLabel?: never;\n};\n\nexport type PaginationProps = {\n currentPage: number;\n pageSelectorId?: string;\n totalItems: number;\n} & PaginationTexts &\n (PageSizeProps | NoPageSizeProps) &\n (LinkProps | NoLinkProps);\n\nconst rootClassName = \"purpur-pagination\";\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination\",\n linkElement = \"a\",\n asLink,\n availablePageSizes,\n className,\n currentPage = 1,\n hrefGetter,\n navigationFunction,\n nextButtonAriaLabel,\n nextButtonText,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n pageSize = 10,\n pageSizeLabel,\n previousButtonAriaLabel,\n previousButtonText,\n stepNumberPrefix,\n totalItems,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [_pageSize, _setPageSize] = useState(pageSize);\n const { pages, numberOfPages } = usePaginationPages(totalItems, _pageSize, currentPage);\n const isIconOnly = !previousButtonText && !nextButtonText;\n\n const _onPageChange = (page: number): void => {\n onPageChange?.({ currentPage: page, pageSize });\n };\n\n const _hrefGetter = (page: number): string => {\n return hrefGetter?.({ page, pageSize }) ?? \"\";\n };\n\n const _onPageSizeChange = (newPageSize: number): void => {\n _setPageSize(newPageSize);\n onPageChange?.({ currentPage: 1, pageSize: newPageSize });\n };\n\n const _navigationFunction = (page: number, url: string): void => {\n if (navigationFunction) {\n navigationFunction({ currentPage: page, pageSize: _pageSize, url });\n } else {\n navigateToPage(url);\n }\n };\n\n const linkProps = asLink\n ? { asLink: true as const, hrefGetter: _hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n };\n\n const ContainerTag = asLink ? \"nav\" : \"div\";\n\n if (!numberOfPages) {\n return null;\n }\n\n return (\n <ContainerTag className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx(`${rootClassName}__pagination-container`, {\n [`${rootClassName}__pagination-container--with-page-size-select`]: !!availablePageSizes,\n })}\n >\n <div className={cx(`${rootClassName}__page-navigation-container`)}>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={previousButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-previous-step-trigger`}\n disabled={currentPage === 1}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage - 1}\n isIconOnly={isIconOnly}\n >\n <IconArrowLeft size=\"sm\" />\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {previousButtonText}\n </span>\n {currentPage !== 1 && (\n <VisuallyHidden data-testid={`${dataTestId}-previous-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage - 1}`}\n </VisuallyHidden>\n )}\n </PaginationStepTrigger>\n <div className={cx(`${rootClassName}__page-trigger-container`)}>\n <PaginationPageSelector\n {...linkProps}\n className={cx(`${rootClassName}__page-selector`, {\n [`${rootClassName}__page-selector--visible`]: pages.length > 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-page-selector`}\n navigationFunction={_navigationFunction}\n numberOfPages={numberOfPages}\n onPageChange={_onPageChange}\n outOfLabel={outOfLabel}\n pageSelectorId={pageSelectorId}\n pageSelectorLabel={pageSelectorLabel}\n />\n <PaginationPages\n {...linkProps}\n linkElement={linkElement}\n className={cx(`${rootClassName}__pages`, {\n [`${rootClassName}__pages--visible`]: pages.length <= 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-pages`}\n stepNumberPrefix={stepNumberPrefix}\n onPageChange={_onPageChange}\n truncationSeparatorAriaLabel={truncationSeparatorAriaLabel}\n pages={pages}\n />\n </div>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={nextButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-next-step-trigger`}\n disabled={currentPage === numberOfPages}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage + 1}\n isIconOnly={isIconOnly}\n >\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {nextButtonText}\n </span>\n {currentPage !== numberOfPages && (\n <VisuallyHidden data-testid={`${dataTestId}-next-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage + 1}`}\n </VisuallyHidden>\n )}\n <IconArrowRight size=\"sm\" />\n </PaginationStepTrigger>\n </div>\n {availablePageSizes && (\n <div className={cx(`${rootClassName}__page-size-select-container`)}>\n <PaginationPageSizeSelector\n {...(asLink\n ? { asLink: true, hrefGetter, navigationFunction }\n : { asLink: undefined as never, hrefGetter: undefined as never })}\n availablePageSizes={availablePageSizes}\n className={cx(`${rootClassName}__page-size-selector`)}\n data-testid={`${dataTestId}-page-size-selector`}\n onPageSizeChange={_onPageSizeChange}\n pageSize={_pageSize}\n pageSizeLabel={pageSizeLabel}\n />\n </div>\n )}\n </div>\n </ContainerTag>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["t","l","o","r","e","navigateToPage","url","usePageOptions","numberOfPages","useMemo","_","i","cx","c","styles","rootClassName","PaginationPageSelector","forwardRef","dataTestId","asLink","className","currentPage","hrefGetter","navigationFunction","onPageChange","outOfLabel","pageSelectorId","pageSelectorLabel","props","ref","id","useId","classes","options","onSelectionChange","event","page","jsxs","jsx","VisuallyHidden","Label","Select","Paragraph","usePageSizeOptions","availablePageSizes","pageSize","PaginationPageSizeSelector","onPageSizeChange","pageSizeLabel","selectId","selectedPageSize","PaginationPageTrigger","LinkElement","disabled","pageNumber","selected","stepNumberPrefix","PaginationTruncationSeparator","ariaLabel","PaginationPages","pages","truncationSeparatorAriaLabel","idx","TriggerComponent","createElement","PaginationStepTrigger","children","pageToNavigateTo","isIconOnly","usePaginationPages","totalItems","setPages","useState","setNumberOfPages","useEffect","totalNumberOfPages","getPagesToDisplay","firstThreePages","lastThreePages","Pagination","linkElement","nextButtonAriaLabel","nextButtonText","previousButtonAriaLabel","previousButtonText","_pageSize","_setPageSize","_onPageChange","_hrefGetter","_onPageSizeChange","newPageSize","_navigationFunction","linkProps","ContainerTag","IconArrowLeft","IconArrowRight"],"mappings":";;;;;;;;;AAEA,MAAMA,KAAI;AAAA,EACR,MAAM;AAAA,EACN,KAAK;AAAA,EACL,UAAU,CAAC,YAAY;AAAA,EACvB,UAAU;AACZ,GAAGC,IAAI,CAACC,MAAsBC,gBAAAA,EAAEC,IAAG,EAAE,GAAGF,GAAG,KAAKF,IAAG;AACnDC,EAAE,cAAc;ACRT,MAAMI,IAAiB,CAACC,MAAsB;AACnD,SAAO,SAAS,OAAOA;AACzB;;;;;;;;;;;;;;;;;;GCKaC,KAAiB,CAACC,OAOtB;AAAA,EACL,SAPcC;AAAA,IACd,MACE,MAAM,KAAK,EAAE,QAAQD,EAAA,GAAiB,CAACE,GAAGC,OAAO,EAAE,OAAO,GAAGA,IAAI,CAAC,IAAI,OAAO,GAAGA,IAAI,CAAC,GAAA,EAAK;AAAA,IAC5F,CAACH,CAAa;AAAA,EAAA;AAId,ICHEI,IAAKC,EAAE,KAAKC,EAAM,GAYlBC,IAAgB,mCAETC,IAAyBC;AAAA,EACpC,CACE;AAAA,IACE,CAAC,gBAAgBC,IAAa;AAAA,IAC9B,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,eAAAf;AAAA,IACA,cAAAgB;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAKC,EAAA,GACLC,IAAUpB,EAAGQ,GAAWL,CAAa,GACrC,EAAE,SAAAkB,EAAA,IAAY1B,GAAeC,CAAa,GAE1C0B,IAAoB,CAACC,MAA0C;AACnE,YAAMC,IAAOD,EAAM,OAAO,QAAQ,OAAOA,EAAM,OAAO,KAAK,IAAI;AAE/D,UADAX,EAAaY,CAAI,GACbjB,GAAQ;AACV,cAAMb,IAAMgB,IAAac,CAAI,KAAK;AAClC,QAAAb,EAAmBa,GAAM9B,CAAG;AAAA,MAC9B;AAAA,IACF;AAEA,WACE,gBAAA+B,EAAC,SAAI,WAAWL,GAAS,eAAad,GAAY,KAAAW,GAAW,GAAGD,GAC9D,UAAA;AAAA,MAAA,gBAAAS,EAAC,SAAI,WAAWzB,EAAG,GAAGG,CAAa,oBAAoB,GACrD,UAAA;AAAA,QAAA,gBAAAuB,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACE,GAAA,EAAM,eAAa,GAAGtB,CAAU,UAAU,SAASY,GACjD,UAAAH,EAAA,CACH,GACF;AAAA,QACA,gBAAAW;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,WAAW7B,EAAG,GAAGG,CAAa,UAAU;AAAA,YACxC,eAAa,GAAGG,CAAU;AAAA,YAC1B,IAAIQ,KAAkBI;AAAA,YACtB,UAAUI;AAAA,YACV,SAAAD;AAAA,YACA,OAAO,OAAOZ,CAAW;AAAA,UAAA;AAAA,QAAA;AAAA,MAC3B,GACF;AAAA,MACA,gBAAAiB;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,WAAW9B,EAAG,GAAGG,CAAa,wBAAwB;AAAA,UACtD,eAAa,GAAGG,CAAU;AAAA,UAEzB,UAAA,GAAGO,CAAU,IAAIjB,CAAa;AAAA,QAAA;AAAA,MAAA;AAAA,IACjC,GACF;AAAA,EAEJ;AACF;AAEAQ,EAAuB,cAAc;;;;;;GC9ExB2B,KAAqB,CAACC,OAU1B;AAAA,EACL,SAVcnC;AAAA,IACd,MACEmC,EAAmB,IAAI,CAACC,OAAsB;AAAA,MAC5C,OAAO,GAAGA,CAAQ;AAAA,MAClB,OAAO,GAAGA,CAAQ;AAAA,IAAA,EAClB;AAAA,IACJ,CAACD,CAAkB;AAAA,EAAA;AAInB,ICPEhC,IAAKC,EAAE,KAAKC,EAAM,GASlBC,IAAgB,wCAET+B,IAA6B7B;AAAA,EAIxC,CACE;AAAA,IACE,CAAC,gBAAgBC,IAAa;AAAA,IAC9B,QAAAC;AAAA,IACA,oBAAAyB;AAAA,IACA,WAAAxB;AAAA,IACA,YAAAE;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAAwB;AAAA,IACA,UAAAF;AAAA,IACA,eAAAG;AAAA,IACA,GAAGpB;AAAA,EAAA,GAELC,MACG;AACH,UAAMoB,IAAWlB,EAAA,GACXC,IAAUpB,EAAGQ,GAAWL,CAAa,GACrC,EAAE,SAAAkB,EAAA,IAAYU,GAAmBC,CAAkB,GAEnDV,IAAoB,CAACC,MAA0C;AACnE,YAAMe,IAAmB,OAAOf,EAAM,OAAO,KAAK;AAElD,UADAY,EAAiBG,CAAgB,GAC7B/B,GAAQ;AACV,cAAMb,IAAMgB,EAAW,EAAE,MAAM,GAAG,UAAU4B,GAAkB;AAC9D,QAAI3B,IACFA,EAAmB,EAAE,aAAa,GAAG,UAAU2B,GAAkB,KAAA5C,GAAK,IAEtED,EAAeC,CAAG;AAAA,MAEtB;AAAA,IACF;AAEA,WACE,gBAAA+B,EAAC,SAAI,WAAWL,GAAS,eAAad,GAAY,KAAAW,GAAW,GAAGD,GAC9D,UAAA;AAAA,MAAA,gBAAAU;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,WAAW5B,EAAG,GAAGG,CAAa,wBAAwB;AAAA,UACtD,eAAa,GAAGG,CAAU;AAAA,UAC1B,SAAS+B;AAAA,UAET,UAAA,gBAAAX,EAAC,UAAK,WAAW1B,EAAG,GAAGG,CAAa,6BAA6B,GAAI,UAAAiC,EAAA,CAAc;AAAA,QAAA;AAAA,MAAA;AAAA,MAErF,gBAAAV;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,WAAW7B,EAAG,GAAGG,CAAa,UAAU;AAAA,UACxC,eAAa,GAAGG,CAAU;AAAA,UAC1B,IAAI+B;AAAA,UACJ,UAAUf;AAAA,UACV,SAAAD;AAAA,UACA,OAAOY;AAAA,QAAA;AAAA,MAAA;AAAA,IACT,GACF;AAAA,EAEJ;AACF;AAEAC,EAA2B,cAAc;;;;;;;;;;;;;;;;;;;GCxEnClC,IAAKC,EAAE,KAAKC,EAAM,GAWlBC,IAAgB,kCAEToC,KAAwBlC;AAAA,EACnC,CACE;AAAA,IACE,CAAC,gBAAgBC,IAAa;AAAA,IAC9B,aAAakC;AAAA,IACb,QAAAjC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAiC;AAAA,IACA,YAAA/B;AAAA,IACA,cAAAE;AAAA,IACA,YAAA8B;AAAA,IACA,UAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,GAAG5B;AAAA,EAAA,GAELC,MACG;AACH,UAAMG,IAAUpB,EAAGQ,GAAWL,CAAa;AAE3C,WACE,gBAAAuB,EAAC,MAAA,EAAG,WAAWN,GAAS,eAAad,GAAY,KAAAW,GAAW,GAAGD,GAC5D,UAAAT,IACCkC,IACE,gBAAAhB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWzB;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,QAAA;AAAA,QAElB,gBAAcwC,IAAW,SAAS;AAAA,QAClC,eAAa,GAAGrC,CAAU;AAAA,QAE1B,UAAA;AAAA,UAAA,gBAAAoB,EAACC,GAAA,EAAgB,UAAA,GAAGiB,CAAgB,KAAI;AAAA,UACvCF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAGH,gBAAAjB;AAAA,MAACe;AAAA,MAAA;AAAA,QACC,WAAWxC;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,EAAE,CAAC,GAAGA,CAAa,0BAA0B,GAAGwC,EAAA;AAAA,QAAS;AAAA,QAE3D,gBAAcA,IAAW,SAAS;AAAA,QAClC,eAAa,GAAGrC,CAAU;AAAA,QAC1B,MAAMI,EAAWgC,CAAU;AAAA,QAC3B,SAAS,MAAM9B,EAAa8B,CAAU;AAAA,QAEtC,UAAA;AAAA,UAAA,gBAAAhB,EAACC,GAAA,EAAgB,UAAA,GAAGiB,CAAgB,KAAI;AAAA,UACvCF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,IAIL,gBAAAjB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,iBAAegB;AAAA,QACf,WAAWzC;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,EAAE,CAAC,GAAGA,CAAa,0BAA0B,GAAGwC,EAAA;AAAA,QAAS;AAAA,QAE3D,eAAa,GAAGrC,CAAU;AAAA,QAC1B,gBAAcqC,IAAW,SAAS;AAAA,QAClC,UAAAF;AAAA,QACA,SAAS,MAAM7B,EAAa8B,CAAU;AAAA,QACtC,MAAK;AAAA,QAEL,UAAA;AAAA,UAAA,gBAAAhB,EAACC,GAAA,EAAgB,UAAA,GAAGiB,CAAgB,KAAI;AAAA,UACvCF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGP;AAAA,EAEJ;AACF;AAEAH,GAAsB,cAAc;;;;;GC9F9BvC,KAAKC,EAAE,KAAKC,EAAM,GAIlBC,KAAgB,0CAET0C,KAAgC,CAAC;AAAA,EAC5C,CAAC,gBAAgBvC,IAAa;AAAA,EAC9B,WAAAE;AAAA,EACA,CAAC,eAAesC;AAAA,EAChB,GAAG9B;AACL,MAA0C;AACxC,QAAMI,IAAUpB,GAAGQ,GAAWL,EAAa;AAE3C,SACE,gBAAAuB,EAAC,MAAA,EAAG,WAAWN,GAAS,eAAad,GAAa,GAAGU,GACnD,UAAA,gBAAAU,EAACI,GAAA,EAAU,cAAYgB,GAAW,iBAAG,GACvC;AAEJ;AAEAD,GAA8B,cAAc;ACnB5C,MAAM7C,KAAKC,EAAE,KAAKC,EAAM,GAWlBC,KAAgB,2BAET4C,KAAkB1C;AAAA,EAC7B,CACE;AAAA,IACE,CAAC,gBAAgBC,IAAa;AAAA,IAC9B,aAAakC;AAAA,IACb,QAAAjC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,cAAAE;AAAA,IACA,OAAAoC;AAAA,IACA,kBAAAJ;AAAA,IACA,8BAAAK;AAAA,IACA,GAAGjC;AAAA,EAAA,GAELC,MACG;AACH,UAAMG,IAAUpB,GAAGQ,GAAWL,EAAa;AAE3C,WACE,gBAAAuB,EAAC,MAAA,EAAG,WAAWN,GAAS,eAAad,GAAY,KAAAW,GAAW,GAAGD,GAC5D,UAAAgC,EAAM,QAAQ,CAACN,GAAoBQ,GAAaF,MAAoB;AACnE,YAAMG,IACJ,gBAAAC;AAAA,QAACb;AAAA,QAAA;AAAA,UACE,GAAIhC,IACD,EAAE,QAAQ,IAAM,YAAAG,MAChB;AAAA,YACE,QAAQ;AAAA,YACR,YAAY;AAAA,UAAA;AAAA,UAElB,aAAa8B;AAAA,UACb,eAAa,GAAGlC,CAAU,SAASoC,CAAU;AAAA,UAC7C,KAAKA;AAAA,UACL,cAAA9B;AAAA,UACA,UAAU8B,MAAejC;AAAA,UACzB,kBAAAmC;AAAA,UACA,YAAAF;AAAA,QAAA;AAAA,MAAA;AAGJ,aAAOQ,MAAQ,KAAKF,EAAME,IAAM,CAAC,IAAI,MAAMR,IACvC,CAACS,CAAgB,IACjB;AAAA,QACE,gBAAAzB;AAAA,UAACmB;AAAA,UAAA;AAAA,YACC,eAAa,GAAGvC,CAAU,yBAAyBoC,CAAU;AAAA,YAE7D,cAAYO;AAAA,UAAA;AAAA,UADP,GAAGP,CAAU;AAAA,QAAA;AAAA,QAGpBS;AAAA,MAAA;AAAA,IAER,CAAC,EAAA,CACH;AAAA,EAEJ;AACF;AAEAJ,GAAgB,cAAc;;;;;;;;;;;;;;;;;;GCtExB/C,IAAKC,EAAE,KAAKC,EAAM,GAWlBC,IAAgB,kCAETkD,IAAwBhD;AAAA,EACnC,CACE;AAAA,IACE,CAAC,eAAeyC;AAAA,IAChB,CAAC,gBAAgBxC,IAAa;AAAA,IAC9B,aAAakC;AAAA,IACb,QAAAjC;AAAA,IACA,UAAA+C;AAAA,IACA,WAAA9C;AAAA,IACA,UAAAiC;AAAA,IACA,YAAA/B;AAAA,IACA,cAAAE;AAAA,IACA,kBAAA2C;AAAA,IACA,YAAAC;AAAA,IACA,GAAGxC;AAAA,EAAA,GAELC,MACG;AACH,UAAMG,IAAUpB,EAAGQ,GAAWL,CAAa;AAC3C,WACE,gBAAAuB,EAAC,OAAA,EAAI,WAAWN,GAAS,eAAad,GAAY,KAAAW,GAAW,GAAGD,GAC7D,UAAAT,IACCkC,IACE,gBAAAf;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,cAAYoB;AAAA,QACZ,WAAW9C;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,EAAE,CAAC,GAAGA,CAAa,6CAA6C,GAAG,CAACqD,EAAA;AAAA,QAAW;AAAA,QAEjF,eAAa,GAAGlD,CAAU;AAAA,QAEzB,UAAAgD;AAAA,MAAA;AAAA,IAAA,IAGH,gBAAA5B;AAAA,MAACc;AAAA,MAAA;AAAA,QACC,cAAYM;AAAA,QACZ,WAAW9C;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,EAAE,CAAC,GAAGA,CAAa,6CAA6C,GAAG,CAACqD,EAAA;AAAA,QAAW;AAAA,QAEjF,eAAa,GAAGlD,CAAU;AAAA,QAC1B,MAAMI,EAAW6C,CAAgB;AAAA,QACjC,SAAS,MAAM3C,EAAa2C,CAAgB;AAAA,QAE3C,UAAAD;AAAA,MAAA;AAAA,IAAA,IAIL,gBAAA5B;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,iBAAee;AAAA,QACf,cAAYK;AAAA,QACZ,WAAW9C;AAAAA,UACT,GAAGG,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB,GAAGA,CAAa;AAAA,UAChB;AAAA,YACE,CAAC,GAAGA,CAAa,0BAA0B,GAAGsC;AAAA,YAC9C,CAAC,GAAGtC,CAAa,6CAA6C,GAAG,CAACqD;AAAA,UAAA;AAAA,QACpE;AAAA,QAEF,eAAa,GAAGlD,CAAU;AAAA,QAC1B,UAAAmC;AAAA,QACA,SAAS,MAAM7B,EAAa2C,CAAgB;AAAA,QAC5C,MAAK;AAAA,QAEJ,UAAAD;AAAA,MAAA;AAAA,IAAA,GAGP;AAAA,EAEJ;AACF;AAEAD,EAAsB,cAAc;AC9F7B,MAAMI,KAAqB,CAChCC,GACAzB,GACAxB,MAC2B;AAC3B,QAAM,CAACuC,GAAOW,CAAQ,IAAIC,EAAmB,CAAA,CAAE,GACzC,CAAChE,GAAeiE,CAAgB,IAAID,EAAiB,CAAC;AAE5D,SAAAE,GAAU,MAAM;AACd,UAAMC,IAAqB,KAAK,KAAKL,IAAazB,CAAQ;AAC1D,IAAA4B,EAAiBE,CAAkB,GACnCJ,EAASK,GAAkBD,GAAoBtD,CAAW,CAAC;AAAA,EAC7D,GAAG,CAACiD,GAAYzB,GAAUxB,CAAW,CAAC,GAE/B;AAAA,IACL,OAAAuC;AAAA,IACA,eAAApD;AAAA,EAAA;AAEJ;AAEA,SAASoE,GAAkBD,GAA4BtD,GAA+B;AACpF,MAAIsD,KAAsB;AACxB,WAAO,MAAM,KAAK,EAAE,QAAQA,KAAsB,CAACjE,GAAGC,MAAMA,IAAI,CAAC;AAEnE,QAAMkE,IAAkB,CAAC,GAAG,GAAG,CAAC;AAChC,MAAIA,EAAgB,SAASxD,CAAW;AACtC,WAAO,CAAC,GAAGwD,GAAiB,GAAGF,CAAkB;AAEnD,QAAMG,IAAiB,CAACH,IAAqB,GAAGA,IAAqB,GAAGA,CAAkB;AAC1F,SAAIG,EAAe,SAASzD,CAAW,IAC9B,CAAC,GAAGsD,IAAqB,GAAG,GAAGG,CAAc,IAE/C,CAAC,GAAGzD,IAAc,GAAGA,GAAaA,IAAc,GAAGsD,CAAkB;AAC9E;ACzBA,MAAM/D,IAAKC,EAAE,KAAKC,EAAM,GAuDlBC,IAAgB,qBAETgE,KAAa9D;AAAA,EACxB,CACE;AAAA,IACE,CAAC,gBAAgBC,IAAa;AAAA,IAC9B,aAAA8D,IAAc;AAAA,IACd,QAAA7D;AAAA,IACA,oBAAAyB;AAAA,IACA,WAAAxB;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,YAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,qBAAA0D;AAAA,IACA,gBAAAC;AAAA,IACA,cAAA1D;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,UAAAkB,IAAW;AAAA,IACX,eAAAG;AAAA,IACA,yBAAAmC;AAAA,IACA,oBAAAC;AAAA,IACA,kBAAA5B;AAAA,IACA,YAAAc;AAAA,IACA,8BAAAT;AAAA,IACA,GAAGjC;AAAA,EAAA,GAELC,OACG;AACH,UAAMG,KAAUpB,EAAGQ,GAAWL,CAAa,GACrC,CAACsE,GAAWC,EAAY,IAAId,EAAS3B,CAAQ,GAC7C,EAAE,OAAAe,GAAO,eAAApD,EAAA,IAAkB6D,GAAmBC,GAAYe,GAAWhE,CAAW,GAChF+C,IAAa,CAACgB,KAAsB,CAACF,GAErCK,IAAgB,CAACnD,MAAuB;AAC5C,MAAAZ,IAAe,EAAE,aAAaY,GAAM,UAAAS,EAAA,CAAU;AAAA,IAChD,GAEM2C,KAAc,CAACpD,MACZd,IAAa,EAAE,MAAAc,GAAM,UAAAS,EAAA,CAAU,KAAK,IAGvC4C,KAAoB,CAACC,MAA8B;AACvD,MAAAJ,GAAaI,CAAW,GACxBlE,IAAe,EAAE,aAAa,GAAG,UAAUkE,GAAa;AAAA,IAC1D,GAEMC,KAAsB,CAACvD,GAAc9B,MAAsB;AAC/D,MAAIiB,IACFA,EAAmB,EAAE,aAAaa,GAAM,UAAUiD,GAAW,KAAA/E,GAAK,IAElED,EAAeC,CAAG;AAAA,IAEtB,GAEMsF,IAAYzE,IACd,EAAE,QAAQ,IAAe,YAAYqE,OACrC;AAAA,MACE,QAAQ;AAAA,MACR,YAAY;AAAA,IAAA,GAGZK,KAAe1E,IAAS,QAAQ;AAEtC,WAAKX,IAKH,gBAAA8B,EAACuD,MAAa,WAAW7D,IAAS,eAAad,GAAY,KAAAW,IAAW,GAAGD,IACvE,UAAA,gBAAAS;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWzB,EAAG,GAAGG,CAAa,0BAA0B;AAAA,UACtD,CAAC,GAAGA,CAAa,+CAA+C,GAAG,CAAC,CAAC6B;AAAA,QAAA,CACtE;AAAA,QAED,UAAA;AAAA,UAAA,gBAAAP,EAAC,SAAI,WAAWzB,EAAG,GAAGG,CAAa,6BAA6B,GAC9D,UAAA;AAAA,YAAA,gBAAAsB;AAAA,cAAC4B;AAAA,cAAA;AAAA,gBACE,GAAG2B;AAAA,gBACJ,aAAAZ;AAAA,gBACA,cAAYG;AAAA,gBACZ,WAAWvE,EAAG,GAAGG,CAAa,gBAAgB;AAAA,gBAC9C,eAAa,GAAGG,CAAU;AAAA,gBAC1B,UAAUG,MAAgB;AAAA,gBAC1B,cAAckE;AAAA,gBACd,kBAAkBlE,IAAc;AAAA,gBAChC,YAAA+C;AAAA,gBAEA,UAAA;AAAA,kBAAA,gBAAA9B,EAACwD,GAAA,EAAc,MAAK,KAAA,CAAK;AAAA,kBACzB,gBAAAxD;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAW1B,EAAG,GAAGG,CAAa,wBAAwB;AAAA,wBACpD,CAAC,GAAGA,CAAa,qCAAqC,GAAG,CAACqD;AAAA,sBAAA,CAC3D;AAAA,sBAEA,UAAAgB;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEF/D,MAAgB,KACf,gBAAAiB,EAACC,GAAA,EAAe,eAAa,GAAGrB,CAAU,sCACvC,UAAA,GAAGsC,CAAgB,IAAInC,IAAc,CAAC,GAAA,CACzC;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,8BAGH,OAAA,EAAI,WAAWT,EAAG,GAAGG,CAAa,0BAA0B,GAC3D,UAAA;AAAA,cAAA,gBAAAuB;AAAA,gBAACtB;AAAA,gBAAA;AAAA,kBACE,GAAG4E;AAAA,kBACJ,WAAWhF,EAAG,GAAGG,CAAa,mBAAmB;AAAA,oBAC/C,CAAC,GAAGA,CAAa,0BAA0B,GAAG6C,EAAM,SAAS;AAAA,kBAAA,CAC9D;AAAA,kBACD,aAAAvC;AAAA,kBACA,eAAa,GAAGH,CAAU;AAAA,kBAC1B,oBAAoByE;AAAA,kBACpB,eAAAnF;AAAA,kBACA,cAAc+E;AAAA,kBACd,YAAA9D;AAAA,kBACA,gBAAAC;AAAA,kBACA,mBAAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEF,gBAAAW;AAAA,gBAACqB;AAAA,gBAAA;AAAA,kBACE,GAAGiC;AAAA,kBACJ,aAAAZ;AAAA,kBACA,WAAWpE,EAAG,GAAGG,CAAa,WAAW;AAAA,oBACvC,CAAC,GAAGA,CAAa,kBAAkB,GAAG6C,EAAM,UAAU;AAAA,kBAAA,CACvD;AAAA,kBACD,aAAAvC;AAAA,kBACA,eAAa,GAAGH,CAAU;AAAA,kBAC1B,kBAAAsC;AAAA,kBACA,cAAc+B;AAAA,kBACd,8BAAA1B;AAAA,kBACA,OAAAD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACF,GACF;AAAA,YACA,gBAAAvB;AAAA,cAAC4B;AAAA,cAAA;AAAA,gBACE,GAAG2B;AAAA,gBACJ,aAAAZ;AAAA,gBACA,cAAYC;AAAA,gBACZ,WAAWrE,EAAG,GAAGG,CAAa,gBAAgB;AAAA,gBAC9C,eAAa,GAAGG,CAAU;AAAA,gBAC1B,UAAUG,MAAgBb;AAAA,gBAC1B,cAAc+E;AAAA,gBACd,kBAAkBlE,IAAc;AAAA,gBAChC,YAAA+C;AAAA,gBAEA,UAAA;AAAA,kBAAA,gBAAA9B;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAW1B,EAAG,GAAGG,CAAa,wBAAwB;AAAA,wBACpD,CAAC,GAAGA,CAAa,qCAAqC,GAAG,CAACqD;AAAA,sBAAA,CAC3D;AAAA,sBAEA,UAAAc;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAEF7D,MAAgBb,KACf,gBAAA8B,EAACC,GAAA,EAAe,eAAa,GAAGrB,CAAU,kCACvC,UAAA,GAAGsC,CAAgB,IAAInC,IAAc,CAAC,IACzC;AAAA,kBAEF,gBAAAiB,EAACyD,IAAA,EAAe,MAAK,KAAA,CAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAC5B,GACF;AAAA,UACCnD,uBACE,OAAA,EAAI,WAAWhC,EAAG,GAAGG,CAAa,8BAA8B,GAC/D,UAAA,gBAAAuB;AAAA,YAACQ;AAAA,YAAA;AAAA,cACE,GAAI3B,IACD,EAAE,QAAQ,IAAM,YAAAG,GAAY,oBAAAC,EAAA,IAC5B,EAAE,QAAQ,QAAoB,YAAY,OAAA;AAAA,cAC9C,oBAAAqB;AAAA,cACA,WAAWhC,EAAG,GAAGG,CAAa,sBAAsB;AAAA,cACpD,eAAa,GAAGG,CAAU;AAAA,cAC1B,kBAAkBuE;AAAA,cAClB,UAAUJ;AAAA,cACV,eAAArC;AAAA,YAAA;AAAA,UAAA,EACF,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,GAGN,IA3GO;AAAA,EA6GX;AACF;AAEA+B,GAAW,cAAc;"}
|
|
1
|
+
{"version":3,"file":"pagination-BdCjh1Pi.mjs","sources":["../../../components/icon/dist/components/arrow-left.es.js","../../../components/pagination/src/navigation.ts","../../../components/pagination/src/use-page-options.hook.ts","../../../components/pagination/src/pagination-page-selector.tsx","../../../components/pagination/src/use-page-size-options.hook.ts","../../../components/pagination/src/pagination-page-size-selector.tsx","../../../components/pagination/src/pagination-page-trigger.tsx","../../../components/pagination/src/pagination-truncation-separator.tsx","../../../components/pagination/src/pagination-pages.tsx","../../../components/pagination/src/pagination-step-trigger.tsx","../../../components/pagination/src/use-pagination-pages.hook.ts","../../../components/pagination/src/pagination.tsx"],"sourcesContent":["import { jsx as r } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst t = {\n name: \"arrow-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M3.1 12a.9.9 0 0 1 .264-.636l5.5-5.5a.9.9 0 0 1 1.272 1.272L6.173 11.1H20a.9.9 0 0 1 0 1.8H6.173l3.963 3.964a.9.9 0 1 1-1.272 1.272l-5.5-5.5A.9.9 0 0 1 3.1 12Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"arrow-left\"],\n category: \"utility\"\n}, l = (o) => /* @__PURE__ */ r(e, { ...o, svg: t });\nl.displayName = \"IconArrowLeft\";\nexport {\n l as IconArrowLeft\n};\n//# sourceMappingURL=arrow-left.es.js.map\n","export const navigateToPage = (url: string): void => {\n window.location.href = url;\n};\n","import { useMemo } from \"react\";\nimport type { SelectOption } from \"@purpur/select\";\n\ntype UsePageOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageOptions = (numberOfPages: number): UsePageOptionsHook => {\n const options = useMemo(\n () =>\n Array.from({ length: numberOfPages }, (_, i) => ({ label: `${i + 1}`, value: `${i + 1}` })),\n [numberOfPages]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport { Select } from \"@purpur/select\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-selector.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps } from \"./types\";\nimport { usePageOptions } from \"./use-page-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSelectorProps = Omit<BaseProps, \"children\"> & {\n currentPage: number;\n navigationFunction: (page: number, url: string) => void;\n numberOfPages: number;\n onPageChange: (page: number) => void;\n outOfLabel: string;\n pageSelectorId?: string;\n pageSelectorLabel: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-selector\";\n\nexport const PaginationPageSelector = forwardRef<HTMLDivElement, PaginationPageSelectorProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-selector\",\n asLink,\n className,\n currentPage,\n hrefGetter,\n navigationFunction,\n numberOfPages,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n ...props\n },\n ref\n ) => {\n const id = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageOptions(numberOfPages);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const page = event.target.value ? Number(event.target.value) : 1;\n onPageChange(page);\n if (asLink) {\n const url = hrefGetter?.(page) ?? \"\";\n navigationFunction(page, url);\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div className={cx(`${rootClassName}__select-container`)}>\n <VisuallyHidden>\n <Label data-testid={`${dataTestId}-label`} htmlFor={id}>\n {pageSelectorLabel}\n </Label>\n </VisuallyHidden>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={pageSelectorId ?? id}\n onChange={onSelectionChange}\n options={options}\n value={String(currentPage)}\n />\n </div>\n <Paragraph\n className={cx(`${rootClassName}__of-total-pages-label`)}\n data-testid={`${dataTestId}-of-total-pages`}\n >\n {`${outOfLabel} ${numberOfPages}`}\n </Paragraph>\n </div>\n );\n }\n);\n\nPaginationPageSelector.displayName = \"PaginationPageSelector\";\n","import { useMemo } from \"react\";\nimport { type SelectOption } from \"@purpur/select\";\n\ntype UsePageSizeOptionsHook = {\n options: SelectOption[];\n};\n\nexport const usePageSizeOptions = (availablePageSizes: number[]): UsePageSizeOptionsHook => {\n const options = useMemo(\n () =>\n availablePageSizes.map((pageSize: number) => ({\n label: `${pageSize}`,\n value: `${pageSize}`,\n })),\n [availablePageSizes]\n );\n\n return {\n options,\n };\n};\n","import React, { type ChangeEvent, forwardRef, useId } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Label } from \"@purpur/label\";\nimport { Select } from \"@purpur/select\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination-page-size-selector.module.scss\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePageSizeOptions } from \"./use-page-size-options.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageSizeSelectorProps = Omit<BaseProps, \"children\"> & {\n availablePageSizes: number[];\n onPageSizeChange: (itemsPerPage: number) => void;\n pageSize: number;\n pageSizeLabel: string;\n} & (Omit<LinkProps, \"onPageChange\"> | Omit<NoLinkProps, \"onPageChange\">);\n\nconst rootClassName = \"purpur-pagination-page-size-selector\";\n\nexport const PaginationPageSizeSelector = forwardRef<\n HTMLDivElement,\n PaginationPageSizeSelectorProps\n>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-size-selector\",\n asLink,\n availablePageSizes,\n className,\n hrefGetter,\n navigationFunction,\n onPageSizeChange,\n pageSize,\n pageSizeLabel,\n ...props\n },\n ref\n ) => {\n const selectId = useId();\n const classes = cx(className, rootClassName);\n const { options } = usePageSizeOptions(availablePageSizes);\n\n const onSelectionChange = (event: ChangeEvent<HTMLSelectElement>) => {\n const selectedPageSize = Number(event.target.value);\n onPageSizeChange(selectedPageSize);\n if (asLink) {\n const url = hrefGetter({ page: 1, pageSize: selectedPageSize });\n if (navigationFunction) {\n navigationFunction({ currentPage: 1, pageSize: selectedPageSize, url });\n } else {\n navigateToPage(url);\n }\n }\n };\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <Label\n className={cx(`${rootClassName}__items-per-page-label`)}\n data-testid={`${dataTestId}-item-per-page-label`}\n htmlFor={selectId}\n >\n <span className={cx(`${rootClassName}__items-per-page-label-text`)}>{pageSizeLabel}</span>\n </Label>\n <Select\n className={cx(`${rootClassName}__select`)}\n data-testid={`${dataTestId}-select`}\n id={selectId}\n onChange={onSelectionChange}\n options={options}\n value={pageSize}\n />\n </div>\n );\n }\n);\n\nPaginationPageSizeSelector.displayName = \"PaginationPageSizeSelector\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-page-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPageTriggerProps = Omit<BaseProps<\"li\">, \"children\"> & {\n linkElement: Link;\n disabled?: boolean;\n onPageChange: (page: number) => void;\n pageNumber: number;\n selected: boolean;\n stepNumberPrefix: string;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-page-trigger\";\n\nexport const PaginationPageTrigger = forwardRef<HTMLLIElement, PaginationPageTriggerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-page-trigger\",\n linkElement: LinkElement,\n asLink,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageNumber,\n selected,\n stepNumberPrefix,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n `${rootClassName}__trigger-item--disabled`\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-disabled-link`}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </span>\n ) : (\n <LinkElement\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n aria-current={selected ? \"page\" : undefined}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageNumber)}\n onClick={() => onPageChange(pageNumber)}\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--page-trigger`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--icon-only`,\n { [`${rootClassName}__trigger-item--selected`]: selected }\n )}\n data-testid={`${dataTestId}-button`}\n aria-current={selected ? \"page\" : undefined}\n disabled={disabled}\n onClick={() => onPageChange(pageNumber)}\n type=\"button\"\n >\n <VisuallyHidden>{`${stepNumberPrefix} `}</VisuallyHidden>\n {pageNumber}\n </button>\n )}\n </li>\n );\n }\n);\n\nPaginationPageTrigger.displayName = \"PaginationPageTrigger\";\n","import React from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-truncation-separator.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTruncationSeparatorProps = Omit<BaseProps<\"li\">, \"children\">;\n\nconst rootClassName = \"purpur-pagination-truncation-separator\";\n\nexport const PaginationTruncationSeparator = ({\n [\"data-testid\"]: dataTestId = \"purpur-pagination-truncation-separator\",\n className,\n [\"aria-label\"]: ariaLabel,\n ...props\n}: PaginationTruncationSeparatorProps) => {\n const classes = cx(className, rootClassName);\n\n return (\n <li className={classes} data-testid={dataTestId} {...props}>\n <Paragraph aria-label={ariaLabel}>...</Paragraph>\n </li>\n );\n};\n\nPaginationTruncationSeparator.displayName = \"PaginationTruncationSeparator\";\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { PaginationPageTrigger } from \"./pagination-page-trigger\";\nimport styles from \"./pagination-pages.module.scss\";\nimport { PaginationTruncationSeparator } from \"./pagination-truncation-separator\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationPagesProps = Omit<BaseProps<\"ol\">, \"children\"> & {\n linkElement: Link;\n currentPage: number;\n onPageChange: (page: number) => void;\n pages: number[];\n stepNumberPrefix: string;\n truncationSeparatorAriaLabel?: string;\n} & (InternalNoLinkProps | InternalLinkProps);\n\nconst rootClassName = \"purpur-pagination-pages\";\n\nexport const PaginationPages = forwardRef<HTMLOListElement, PaginationPagesProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination-pages\",\n linkElement: LinkElement,\n asLink,\n className,\n currentPage,\n hrefGetter,\n onPageChange,\n pages,\n stepNumberPrefix,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n\n return (\n <ol className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {pages.flatMap((pageNumber: number, idx: number, pages: number[]) => {\n const TriggerComponent = (\n <PaginationPageTrigger\n {...(asLink\n ? { asLink: true, hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n })}\n linkElement={LinkElement}\n data-testid={`${dataTestId}-page-${pageNumber}`}\n key={pageNumber}\n onPageChange={onPageChange}\n selected={pageNumber === currentPage}\n stepNumberPrefix={stepNumberPrefix}\n pageNumber={pageNumber}\n />\n );\n return idx === 0 || pages[idx - 1] + 1 === pageNumber\n ? [TriggerComponent]\n : [\n <PaginationTruncationSeparator\n data-testid={`${dataTestId}-truncation-separator-${pageNumber}`}\n key={`${pageNumber}-separator`}\n aria-label={truncationSeparatorAriaLabel}\n />,\n TriggerComponent,\n ];\n })}\n </ol>\n );\n }\n);\n\nPaginationPages.displayName = \"PaginationPages\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./pagination-step-trigger.module.scss\";\nimport { type InternalLinkProps, type InternalNoLinkProps, type Link } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationStepTriggerProps = Omit<BaseProps, \"children\"> & {\n linkElement: Link;\n children: ReactNode;\n disabled: boolean;\n onPageChange: (page: number) => void;\n pageToNavigateTo: number;\n isIconOnly: boolean;\n} & (InternalLinkProps | InternalNoLinkProps);\n\nconst rootClassName = \"purpur-pagination-step-trigger\";\n\nexport const PaginationStepTrigger = forwardRef<HTMLDivElement, PaginationStepTriggerProps>(\n (\n {\n [\"aria-label\"]: ariaLabel,\n [\"data-testid\"]: dataTestId = \"purpur-pagination-step-trigger\",\n linkElement: LinkElement,\n asLink,\n children,\n className,\n disabled,\n hrefGetter,\n onPageChange,\n pageToNavigateTo,\n isIconOnly,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {asLink ? (\n disabled ? (\n <span\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n `${rootClassName}__trigger-item--disabled`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-disabled-link`}\n >\n {children}\n </span>\n ) : (\n <LinkElement\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n { [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly }\n )}\n data-testid={`${dataTestId}-link`}\n href={hrefGetter(pageToNavigateTo)}\n onClick={() => onPageChange(pageToNavigateTo)}\n >\n {children}\n </LinkElement>\n )\n ) : (\n <button\n aria-disabled={disabled}\n aria-label={ariaLabel}\n className={cx(\n `${rootClassName}__trigger-item`,\n `${rootClassName}__trigger-item--step-trigger`,\n `${rootClassName}__trigger-item--secondary`,\n `${rootClassName}__trigger-item--sm`,\n {\n [`${rootClassName}__trigger-item--disabled`]: disabled,\n [`${rootClassName}__trigger-item--step-trigger--not-icon-only`]: !isIconOnly,\n }\n )}\n data-testid={`${dataTestId}-button`}\n disabled={disabled}\n onClick={() => onPageChange(pageToNavigateTo)}\n type=\"button\"\n >\n {children}\n </button>\n )}\n </div>\n );\n }\n);\n\nPaginationStepTrigger.displayName = \"PaginationStepTrigger\";\n","import { useEffect, useState } from \"react\";\n\ntype UsePaginationPagesHook = {\n pages: number[];\n numberOfPages: number;\n};\n\nexport const usePaginationPages = (\n totalItems: number,\n pageSize: number,\n currentPage: number\n): UsePaginationPagesHook => {\n const [pages, setPages] = useState<number[]>([]);\n const [numberOfPages, setNumberOfPages] = useState<number>(0);\n\n useEffect(() => {\n const totalNumberOfPages = Math.ceil(totalItems / pageSize);\n setNumberOfPages(totalNumberOfPages);\n setPages(getPagesToDisplay(totalNumberOfPages, currentPage));\n }, [totalItems, pageSize, currentPage]);\n\n return {\n pages,\n numberOfPages,\n };\n};\n\nfunction getPagesToDisplay(totalNumberOfPages: number, currentPage: number): number[] {\n if (totalNumberOfPages <= 5) {\n return Array.from({ length: totalNumberOfPages }, (_, i) => i + 1);\n }\n const firstThreePages = [1, 2, 3];\n if (firstThreePages.includes(currentPage)) {\n return [...firstThreePages, 4, totalNumberOfPages];\n }\n const lastThreePages = [totalNumberOfPages - 2, totalNumberOfPages - 1, totalNumberOfPages];\n if (lastThreePages.includes(currentPage)) {\n return [1, totalNumberOfPages - 3, ...lastThreePages];\n }\n return [1, currentPage - 1, currentPage, currentPage + 1, totalNumberOfPages];\n}\n","import React, { forwardRef, useState } from \"react\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport { navigateToPage } from \"./navigation\";\nimport styles from \"./pagination.module.scss\";\nimport { PaginationPageSelector } from \"./pagination-page-selector\";\nimport { PaginationPageSizeSelector } from \"./pagination-page-size-selector\";\nimport { PaginationPages } from \"./pagination-pages\";\nimport { PaginationStepTrigger } from \"./pagination-step-trigger\";\nimport { type LinkProps, type NoLinkProps } from \"./types\";\nimport { usePaginationPages } from \"./use-pagination-pages.hook\";\n\nconst cx = c.bind(styles);\n\nexport type PaginationTexts = {\n nextButtonAriaLabel: string;\n /**\n * Omiting this and previousButtonText will result in an icon-only button.\n */\n nextButtonText?: string;\n /**\n * This is the divider word between the current page and the total number of pages.\n * For example, if the current page is 1 and the total number of pages is 10, the text will be \"1 of 10\".\n */\n outOfLabel: string;\n /**\n * This is a hidden label for the page selector\n */\n pageSelectorLabel: string;\n /**\n * This is the \"...\" text that is displayed when there are more pages than can be shown at once.\n */\n truncationSeparatorAriaLabel?: string;\n previousButtonAriaLabel: string;\n /**\n * Omiting this and nextButtonText will result in an icon-only button.\n */\n previousButtonText?: string;\n /**\n * This is a screen reader text that will be inserted before the current page number. For example, for step 1 it will say \"Go to step 1\".\n */\n stepNumberPrefix: string;\n};\n\nexport type PageSizeProps = {\n availablePageSizes: number[];\n pageSize?: number;\n /**\n * The label describing the page size select.\n */\n pageSizeLabel: string;\n};\n\nexport type NoPageSizeProps = {\n availablePageSizes?: never;\n pageSize?: number;\n pageSizeLabel?: never;\n};\n\nexport type PaginationProps = {\n currentPage: number;\n pageSelectorId?: string;\n totalItems: number;\n} & PaginationTexts &\n (PageSizeProps | NoPageSizeProps) &\n (LinkProps | NoLinkProps);\n\nconst rootClassName = \"purpur-pagination\";\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-pagination\",\n linkElement = \"a\",\n asLink,\n availablePageSizes,\n className,\n currentPage = 1,\n hrefGetter,\n navigationFunction,\n nextButtonAriaLabel,\n nextButtonText,\n onPageChange,\n outOfLabel,\n pageSelectorId,\n pageSelectorLabel,\n pageSize = 10,\n pageSizeLabel,\n previousButtonAriaLabel,\n previousButtonText,\n stepNumberPrefix,\n totalItems,\n truncationSeparatorAriaLabel,\n ...props\n },\n ref\n ) => {\n const classes = cx(className, rootClassName);\n const [_pageSize, _setPageSize] = useState(pageSize);\n const { pages, numberOfPages } = usePaginationPages(totalItems, _pageSize, currentPage);\n const isIconOnly = !previousButtonText && !nextButtonText;\n\n const _onPageChange = (page: number): void => {\n onPageChange?.({ currentPage: page, pageSize });\n };\n\n const _hrefGetter = (page: number): string => {\n return hrefGetter?.({ page, pageSize }) ?? \"\";\n };\n\n const _onPageSizeChange = (newPageSize: number): void => {\n _setPageSize(newPageSize);\n onPageChange?.({ currentPage: 1, pageSize: newPageSize });\n };\n\n const _navigationFunction = (page: number, url: string): void => {\n if (navigationFunction) {\n navigationFunction({ currentPage: page, pageSize: _pageSize, url });\n } else {\n navigateToPage(url);\n }\n };\n\n const linkProps = asLink\n ? { asLink: true as const, hrefGetter: _hrefGetter }\n : {\n asLink: undefined as never,\n hrefGetter: undefined as never,\n };\n\n const ContainerTag = asLink ? \"nav\" : \"div\";\n\n if (!numberOfPages) {\n return null;\n }\n\n return (\n <ContainerTag className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx(`${rootClassName}__pagination-container`, {\n [`${rootClassName}__pagination-container--with-page-size-select`]: !!availablePageSizes,\n })}\n >\n <div className={cx(`${rootClassName}__page-navigation-container`)}>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={previousButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-previous-step-trigger`}\n disabled={currentPage === 1}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage - 1}\n isIconOnly={isIconOnly}\n >\n <IconArrowLeft size=\"sm\" />\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {previousButtonText}\n </span>\n {currentPage !== 1 && (\n <VisuallyHidden data-testid={`${dataTestId}-previous-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage - 1}`}\n </VisuallyHidden>\n )}\n </PaginationStepTrigger>\n <div className={cx(`${rootClassName}__page-trigger-container`)}>\n <PaginationPageSelector\n {...linkProps}\n className={cx(`${rootClassName}__page-selector`, {\n [`${rootClassName}__page-selector--visible`]: pages.length > 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-page-selector`}\n navigationFunction={_navigationFunction}\n numberOfPages={numberOfPages}\n onPageChange={_onPageChange}\n outOfLabel={outOfLabel}\n pageSelectorId={pageSelectorId}\n pageSelectorLabel={pageSelectorLabel}\n />\n <PaginationPages\n {...linkProps}\n linkElement={linkElement}\n className={cx(`${rootClassName}__pages`, {\n [`${rootClassName}__pages--visible`]: pages.length <= 3,\n })}\n currentPage={currentPage}\n data-testid={`${dataTestId}-pages`}\n stepNumberPrefix={stepNumberPrefix}\n onPageChange={_onPageChange}\n truncationSeparatorAriaLabel={truncationSeparatorAriaLabel}\n pages={pages}\n />\n </div>\n <PaginationStepTrigger\n {...linkProps}\n linkElement={linkElement}\n aria-label={nextButtonAriaLabel}\n className={cx(`${rootClassName}__step-trigger`)}\n data-testid={`${dataTestId}-next-step-trigger`}\n disabled={currentPage === numberOfPages}\n onPageChange={_onPageChange}\n pageToNavigateTo={currentPage + 1}\n isIconOnly={isIconOnly}\n >\n <span\n className={cx(`${rootClassName}__step-trigger-label`, {\n [`${rootClassName}__step-trigger-label--not-icon-only`]: !isIconOnly,\n })}\n >\n {nextButtonText}\n </span>\n {currentPage !== numberOfPages && (\n <VisuallyHidden data-testid={`${dataTestId}-next-step-trigger-hidden-text`}>\n {`${stepNumberPrefix} ${currentPage + 1}`}\n </VisuallyHidden>\n )}\n <IconArrowRight size=\"sm\" />\n </PaginationStepTrigger>\n </div>\n {availablePageSizes && (\n <div className={cx(`${rootClassName}__page-size-select-container`)}>\n <PaginationPageSizeSelector\n {...(asLink\n ? { asLink: true, hrefGetter, navigationFunction }\n : { asLink: undefined as never, hrefGetter: undefined as never })}\n availablePageSizes={availablePageSizes}\n className={cx(`${rootClassName}__page-size-selector`)}\n data-testid={`${dataTestId}-page-size-selector`}\n onPageSizeChange={_onPageSizeChange}\n pageSize={_pageSize}\n pageSizeLabel={pageSizeLabel}\n />\n </div>\n )}\n </div>\n </ContainerTag>\n );\n }\n);\n\nPagination.displayName = \"Pagination\";\n"],"names":["t","l","o","r","e","navigateToPage","url","usePageOptions","numberOfPages","useMemo","_","i","cx","c","styles","rootClassName","PaginationPageSelector","forwardRef","dataTestId","asLink","className","currentPage","hrefGetter","navigationFunction","onPageChange","outOfLabel","pageSelectorId","pageSelectorLabel","props","ref","id","useId","classes","options","onSelectionChange","event","page","jsxs","jsx","VisuallyHidden","Label","Select","Paragraph","usePageSizeOptions","availablePageSizes","pageSize","PaginationPageSizeSelector","onPageSizeChange","pageSizeLabel","selectId","selectedPageSize","PaginationPageTrigger","LinkElement","disabled","pageNumber","selected","stepNumberPrefix","PaginationTruncationSeparator","ariaLabel","PaginationPages","pages","truncationSeparatorAriaLabel","idx","TriggerComponent","createElement","PaginationStepTrigger","children","pageToNavigateTo","isIconOnly","usePaginationPages","totalItems","setPages","useState","setNumberOfPages","useEffect","totalNumberOfPages","getPagesToDisplay","firstThreePages","lastThreePages","Pagination","linkElement","nextButtonAriaLabel","nextButtonText","previousButtonAriaLabel","previousButtonText","_pageSize","_setPageSize","_onPageChange","_hrefGetter","_onPageSizeChange","newPageSize","_navigationFunction","linkProps","ContainerTag","IconArrowLeft","IconArrowRight"],"mappings":"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"}
|
package/dist/pagination.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paragraph-
|
|
1
|
+
{"version":3,"file":"paragraph-Ci50OF1u.mjs","sources":["../../../components/paragraph/src/paragraph.tsx"],"sourcesContent":["import React, { type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./paragraph.module.scss\";\n\nconst cx = c.bind(styles);\n\nexport const ParagraphVariant = {\n PARAGRAPH100: \"paragraph-100\",\n PARAGRAPH100MEDIUM: \"paragraph-100-medium\",\n PARAGRAPH100BOLD: \"paragraph-100-bold\",\n PARAGRAPH200: \"paragraph-200\",\n PREAMBLE100: \"preamble-100\",\n PREAMBLE200: \"preamble-200\",\n ADDITIONAL100: \"additional-100\",\n ADDITIONAL100MEDIUM: \"additional-100-medium\",\n ADDITIONAL100BOLD: \"additional-100-bold\",\n OVERLINE100: \"overline-100\",\n OVERLINE200: \"overline-200\",\n} as const;\n\nexport type ParagraphVariant = (typeof ParagraphVariant)[keyof typeof ParagraphVariant];\n\nexport type ParagraphProps = Omit<BaseProps<\"p\">, \"children\"> & {\n children: ReactNode;\n enableHyphenation?: boolean;\n negative?: boolean;\n disabled?: boolean;\n variant?: ParagraphVariant;\n};\n\nconst rootClassName = \"purpur-paragraph\";\n\nexport const Paragraph = ({\n children,\n className,\n disabled,\n enableHyphenation = false,\n negative = false,\n variant = ParagraphVariant.PARAGRAPH100,\n ...props\n}: ParagraphProps) => {\n const classes = cx(className, rootClassName, `${rootClassName}--${variant}`, {\n [`${rootClassName}--hyphens`]: enableHyphenation,\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--negative`]: negative,\n });\n\n return (\n <p {...props} className={classes}>\n {children}\n </p>\n );\n};\n\nParagraph.displayName = \"Paragraph\";\n"],"names":["cx","c","styles","ParagraphVariant","rootClassName","Paragraph","children","className","disabled","enableHyphenation","negative","variant","props","classes"],"mappings":";;;;;;;;;;;;;;;;;;GAMMA,IAAKC,EAAE,KAAKC,CAAM,GAEXC,IAAmB;AAAA,EAC9B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,aAAa;AACf,GAYMC,IAAgB,oBAETC,IAAY,CAAC;AAAA,EACxB,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,UAAAC,IAAW;AAAA,EACX,SAAAC,IAAUR,EAAiB;AAAA,EAC3B,GAAGS;AACL,MAAsB;AACpB,QAAMC,IAAUb,EAAGO,GAAWH,GAAe,GAAGA,CAAa,KAAKO,CAAO,IAAI;AAAA,IAC3E,CAAC,GAAGP,CAAa,WAAW,GAAGK;AAAA,IAC/B,CAAC,GAAGL,CAAa,YAAY,GAAGI;AAAA,IAChC,CAAC,GAAGJ,CAAa,YAAY,GAAGM;AAAA,EAAA,CACjC;AAED,2BACG,KAAA,EAAG,GAAGE,GAAO,WAAWC,GACtB,UAAAP,GACH;AAEJ;AAEAD,EAAU,cAAc;"}
|
package/dist/paragraph.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const a=require("react/jsx-runtime"),X=require("./button-ChYUPi2k.js"),l=require("react"),dt=require("./variables-Buqm4JZc.js"),y=require("./index-DlMXYAr3.js"),U=require("./index-_XxjJPRD.js"),$=require("./index-kcwFA4Dv.js"),M=require("./index-DA01QPpC.js"),ft=require("./index-BtWPC8xc.js"),R=require("./floating-ui.react-dom-Cc_YSprQ.js"),ht=require("./index-DOFLOnao.js"),we=require("./index-CleLBinl.js"),gt=require("./close.es-VL3lKi1O.js"),xe=require("./paragraph-BsI53OR0.js"),H=require("./bind-DeUYJ6m9.js"),vt=require("./heading-DLCdW6gx.js");function _t(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=_t(l),te=l.createContext(null),re=()=>{const e=l.useContext(te);if(!e)throw new Error("usePopoverFlow must be used within a PopoverFlow provider");return e},B=()=>l.useContext(te),mt=({children:e,initialStep:t=1,onComplete:r,onDismiss:o,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u=0})=>{const[v,d]=l.useState(t),[h,m]=l.useState(new Set),x=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.add(w),S})},[]),f=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.delete(w),S})},[]),O=l.useCallback(()=>{d(w=>{const C=w+1;return C>h.size?(r?.(),w):C})},[h.size,r]),j=l.useCallback(()=>{d(w=>Math.max(1,w-1))},[]),N=l.useCallback(()=>{d(0),o?.()},[o]),E=l.useMemo(()=>({currentStep:v,totalSteps:h.size,next:O,back:j,dismiss:N,registerStep:x,unregisterStep:f,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u}),[v,h.size,O,j,N,x,f,n,s,i,c,p,u]);return a.jsx(te.Provider,{value:E,children:e})},oe=l.createContext(null),K=()=>l.useContext(oe),Pe=l.createContext({negative:!1}),ne=()=>l.useContext(Pe),wt=150,_e={MAX_MD:`(max-width: ${dt.purpurBreakpointMd})`},se=()=>{const e=window.matchMedia(_e.MAX_MD);function t(){o(e.matches)}const[r,o]=l.useState(()=>typeof window>"u"?!1:window.matchMedia(_e.MAX_MD).matches),n=l.useCallback(()=>{let s;return()=>{clearTimeout(s),s=setTimeout(()=>t(),wt)}},[t]);return l.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[n]),{isMdOrSmaller:r}},ie=({children:e,onClick:t})=>{const{back:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"secondary",onClick:i,negative:s,fullWidth:n,children:e})};ie.displayName="PopoverBack";var xt="Arrow",Ce=g.forwardRef((e,t)=>{const{children:r,width:o=10,height:n=5,...s}=e;return a.jsx(y.Primitive.svg,{...s,ref:t,width:o,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=xt;var Pt=Ce,ae="Popper",[Se,ye]=$.createContextScope(ae),[Ct,je]=Se(ae),Oe=e=>{const{__scopePopper:t,children:r}=e,[o,n]=g.useState(null);return a.jsx(Ct,{scope:t,anchor:o,onAnchorChange:n,children:r})};Oe.displayName=ae;var Re="PopperAnchor",be=g.forwardRef((e,t)=>{const{__scopePopper:r,virtualRef:o,...n}=e,s=je(Re,r),i=g.useRef(null),c=U.useComposedRefs(t,i),p=g.useRef(null);return g.useEffect(()=>{const u=p.current;p.current=o?.current||i.current,u!==p.current&&s.onAnchorChange(p.current)}),o?null:a.jsx(y.Primitive.div,{...n,ref:c})});be.displayName=Re;var ce="PopperContent",[St,yt]=Se(ce),Ae=g.forwardRef((e,t)=>{const{__scopePopper:r,side:o="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:p=!0,collisionBoundary:u=[],collisionPadding:v=0,sticky:d="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:x,...f}=e,O=je(ce,r),[j,N]=g.useState(null),E=U.useComposedRefs(t,I=>N(I)),[w,C]=g.useState(null),S=ht.useSize(w),V=S?.width??0,W=S?.height??0,Z=o+(s!=="center"?"-"+s:""),Q=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},_=Array.isArray(u)?u:[u],P=_.length>0,k={padding:Q,boundary:_.filter(Ot),altBoundary:P},{refs:et,floatingStyles:fe,placement:tt,isPositioned:L,middlewareData:F}=R.useFloating({strategy:"fixed",placement:Z,whileElementsMounted:(...I)=>R.autoUpdate(...I,{animationFrame:m==="always"}),elements:{reference:O.anchor},middleware:[R.offset({mainAxis:n+W,alignmentAxis:i}),p&&R.shift({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?R.limitShift():void 0,...k}),p&&R.flip({...k}),R.size({...k,apply:({elements:I,rects:ve,availableWidth:ct,availableHeight:pt})=>{const{width:lt,height:ut}=ve.reference,Y=I.floating.style;Y.setProperty("--radix-popper-available-width",`${ct}px`),Y.setProperty("--radix-popper-available-height",`${pt}px`),Y.setProperty("--radix-popper-anchor-width",`${lt}px`),Y.setProperty("--radix-popper-anchor-height",`${ut}px`)}}),w&&R.arrow({element:w,padding:c}),Rt({arrowWidth:V,arrowHeight:W}),h&&R.hide({strategy:"referenceHidden",...k})]}),[he,rt]=ke(tt),ge=$.useCallbackRef(x);$.useLayoutEffect2(()=>{L&&ge?.()},[L,ge]);const ot=F.arrow?.x,nt=F.arrow?.y,st=F.arrow?.centerOffset!==0,[it,at]=g.useState();return $.useLayoutEffect2(()=>{j&&at(window.getComputedStyle(j).zIndex)},[j]),a.jsx("div",{ref:et.setFloating,"data-radix-popper-content-wrapper":"",style:{...fe,transform:L?fe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:it,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(" "),...F.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(St,{scope:r,placedSide:he,onArrowChange:C,arrowX:ot,arrowY:nt,shouldHideArrow:st,children:a.jsx(y.Primitive.div,{"data-side":he,"data-align":rt,...f,ref:E,style:{...f.style,animation:L?void 0:"none"}})})})});Ae.displayName=ce;var Ne="PopperArrow",jt={top:"bottom",right:"left",bottom:"top",left:"right"},Ee=g.forwardRef(function(t,r){const{__scopePopper:o,...n}=t,s=yt(Ne,o),i=jt[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Pt,{...n,ref:r,style:{...n.style,display:"block"}})})});Ee.displayName=Ne;function Ot(e){return e!==null}var Rt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:r,rects:o,middlewareData:n}=t,i=n.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[u,v]=ke(r),d={start:"0%",center:"50%",end:"100%"}[v],h=(n.arrow?.x??0)+c/2,m=(n.arrow?.y??0)+p/2;let x="",f="";return u==="bottom"?(x=i?d:`${h}px`,f=`${-p}px`):u==="top"?(x=i?d:`${h}px`,f=`${o.floating.height+p}px`):u==="right"?(x=`${-p}px`,f=i?d:`${m}px`):u==="left"&&(x=`${o.floating.width+p}px`,f=i?d:`${m}px`),{data:{x,y:f}}}});function ke(e){const[t,r="center"]=e.split("-");return[t,r]}var bt=Oe,Fe=be,At=Ae,Nt=Ee,G="Popover",[Te]=$.createContextScope(G,[ye]),z=ye(),[Et,A]=Te(G),Me=e=>{const{__scopePopover:t,children:r,open:o,defaultOpen:n,onOpenChange:s,modal:i=!1}=e,c=z(t),p=g.useRef(null),[u,v]=g.useState(!1),[d,h]=y.useControllableState({prop:o,defaultProp:n??!1,onChange:s,caller:G});return a.jsx(bt,{...c,children:a.jsx(Et,{scope:t,contentId:ft.useId(),triggerRef:p,open:d,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),hasCustomAnchor:u,onCustomAnchorAdd:g.useCallback(()=>v(!0),[]),onCustomAnchorRemove:g.useCallback(()=>v(!1),[]),modal:i,children:r})})};Me.displayName=G;var De="PopoverAnchor",kt=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(De,r),s=z(r),{onCustomAnchorAdd:i,onCustomAnchorRemove:c}=n;return g.useEffect(()=>(i(),()=>c()),[i,c]),a.jsx(Fe,{...s,...o,ref:t})});kt.displayName=De;var Ie="PopoverTrigger",$e=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(Ie,r),s=z(r),i=U.useComposedRefs(t,n.triggerRef),c=a.jsx(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Ye(n.open),...o,ref:i,onClick:y.composeEventHandlers(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?c:a.jsx(Fe,{asChild:!0,...s,children:c})});$e.displayName=Ie;var pe="PopoverPortal",[Ft,Tt]=Te(pe,{forceMount:void 0}),He=e=>{const{__scopePopover:t,forceMount:r,children:o,container:n}=e,s=A(pe,t);return a.jsx(Ft,{scope:t,forceMount:r,children:a.jsx(we.Presence,{present:r||s.open,children:a.jsx(M.Portal,{asChild:!0,container:n,children:o})})})};He.displayName=pe;var D="PopoverContent",Be=g.forwardRef((e,t)=>{const r=Tt(D,e.__scopePopover),{forceMount:o=r.forceMount,...n}=e,s=A(D,e.__scopePopover);return a.jsx(we.Presence,{present:o||s.open,children:s.modal?a.jsx(Dt,{...n,ref:t}):a.jsx(It,{...n,ref:t})})});Be.displayName=D;var Mt=y.createSlot("PopoverContent.RemoveScroll"),Dt=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(null),n=U.useComposedRefs(t,o),s=g.useRef(!1);return g.useEffect(()=>{const i=o.current;if(i)return M.hideOthers(i)},[]),a.jsx(M.ReactRemoveScroll,{as:Mt,allowPinchZoom:!0,children:a.jsx(ze,{...e,ref:n,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:y.composeEventHandlers(e.onCloseAutoFocus,i=>{i.preventDefault(),s.current||r.triggerRef.current?.focus()}),onPointerDownOutside:y.composeEventHandlers(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,p=c.button===0&&c.ctrlKey===!0,u=c.button===2||p;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:y.composeEventHandlers(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),It=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(!1),n=g.useRef(!1);return a.jsx(ze,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||r.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const i=s.target;r.triggerRef.current?.contains(i)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),ze=g.forwardRef((e,t)=>{const{__scopePopover:r,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onInteractOutside:v,...d}=e,h=A(D,r),m=z(r);return M.useFocusGuards(),a.jsx(M.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:a.jsx(M.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:v,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),children:a.jsx(At,{"data-state":Ye(h.open),role:"dialog",id:h.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),qe="PopoverClose",We=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(qe,r);return a.jsx(y.Primitive.button,{type:"button",...o,ref:t,onClick:y.composeEventHandlers(e.onClick,()=>n.onOpenChange(!1))})});We.displayName=qe;var $t="PopoverArrow",Le=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=z(r);return a.jsx(Nt,{...n,...o,ref:t})});Le.displayName=$t;function Ye(e){return e?"open":"closed"}var Xe=Me,Ht=$e,Bt=He,zt=Be,Ue=We,qt=Le;const le=({children:e,asChild:t,onClick:r,variant:o="primary",dismiss:n=!0,fullWidth:s})=>{const i=B(),{isMdOrSmaller:c}=se(),{negative:p}=ne(),u=!p,v=()=>{r?.(),n&&i?.dismiss()},d=s??c,h=t?e:a.jsx(X.Button,{variant:o,size:"sm",fullWidth:d,negative:u,onClick:v,children:e});return n?a.jsx(Ue,{asChild:!0,children:h}):h};le.displayName="PopoverButton";const Wt="_highlightState1_1w9je_1",Lt="_fadeIn_1w9je_1",Yt="_slideFromTop_1w9je_1",Xt="_slideFromBottom_1w9je_1",Ut="_slideFromLeft_1w9je_1",Kt="_slideFromRight_1w9je_1",Gt="_fadeOut_1w9je_1",Vt="_slideToTop_1w9je_1",Zt="_slideToBottom_1w9je_1",Qt="_slideToLeft_1w9je_1",Jt="_slideToRight_1w9je_1",q={"purpur-popover__trigger":"_purpur-popover__trigger_1w9je_1","purpur-popover__trigger-highlight":"_purpur-popover__trigger-highlight_1w9je_5","purpur-popover__trigger-highlight--state1":"_purpur-popover__trigger-highlight--state1_1w9je_14",highlightState1:Wt,"purpur-popover__trigger-highlight--negative":"_purpur-popover__trigger-highlight--negative_1w9je_29","purpur-popover__trigger-highlight--state2":"_purpur-popover__trigger-highlight--state2_1w9je_33","purpur-popover__inner":"_purpur-popover__inner_1w9je_45","purpur-popover__content":"_purpur-popover__content_1w9je_52",fadeIn:Lt,slideFromTop:Yt,slideFromBottom:Xt,slideFromLeft:Ut,slideFromRight:Kt,fadeOut:Gt,slideToTop:Vt,slideToBottom:Zt,slideToLeft:Qt,slideToRight:Jt,"purpur-popover__arrow":"_purpur-popover__arrow_1w9je_103","purpur-popover__body":"_purpur-popover__body_1w9je_106","purpur-popover__icon":"_purpur-popover__icon_1w9je_107","purpur-popover__steps":"_purpur-popover__steps_1w9je_108","purpur-popover__title":"_purpur-popover__title_1w9je_109","purpur-popover__content--negative":"_purpur-popover__content--negative_1w9je_112","purpur-popover__header-content":"_purpur-popover__header-content_1w9je_124","purpur-popover__close":"_purpur-popover__close_1w9je_137","purpur-popover__footer":"_purpur-popover__footer_1w9je_142","purpur-popover__footer-button-group":"_purpur-popover__footer-button-group_1w9je_155"},er=H.c.bind(q),Ke=()=>{const e=re(),r=K()?.walkthroughStep||e.currentStep,{totalSteps:o,separatorText:n,stepText:s}=e;return a.jsx(a.Fragment,{children:a.jsxs(xe.Paragraph,{className:er("purpur-popover__steps"),role:"status","aria-live":"polite","aria-atomic":"true",children:[s," ",r," ",n," ",o]})})};Ke.displayName="PopoverSteps";const me=H.c.bind(q),ue=({children:e,className:t})=>{const r=B(),o=K(),n=r&&o&&o.walkthroughStep>0;return a.jsxs("div",{className:me("purpur-popover__footer",t),children:[n&&a.jsx(Ke,{}),a.jsx("div",{className:me("purpur-popover__footer-button-group"),children:e})]})};ue.displayName="PopoverFooter";const J=H.c.bind(q),Ge=l.forwardRef(({title:e,icon:t},r)=>a.jsxs("div",{ref:r,className:J("purpur-popover__header-content"),children:[t&&a.jsx("span",{className:J("purpur-popover__icon"),children:t}),a.jsx(vt.Heading,{tag:"h2",variant:"title-100",className:J("purpur-popover__title"),id:"popover-heading",children:e})]}));Ge.displayName="PopoverHeader";const de=({children:e,onClick:t})=>{const{next:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"primary",onClick:i,negative:s,fullWidth:n,children:e})};de.displayName="PopoverNext";const T=H.c.bind(q),Ve=l.forwardRef(({children:e,className:t,beakPosition:r="down",align:o="center",alignOffset:n=0,sideOffset:s=5,negative:i=!1,closeIconAriaLabel:c,title:p,icon:u,body:v,onAction:d,zIndex:h=210,...m},x)=>{const f=B(),O=K(),j=l.useRef(null),E={up:"bottom",right:"left",down:"top",left:"right",none:"bottom"}[r],w=r!=="none";let C=e;if(f&&!e){const _=O?.walkthroughStep||f.currentStep,P=_===1,k=_===f.totalSteps;C=a.jsxs(ue,{children:[!P&&a.jsx(ie,{onClick:()=>d?.({type:"back",step:_}),children:f.backLabel}),k?a.jsx(le,{onClick:()=>d?.({type:"finish",step:_}),dismiss:!0,children:f.finishLabel}):a.jsx(de,{onClick:()=>d?.({type:"next",step:_}),children:f.nextLabel})]})}const S=_=>{if(_.preventDefault(),f){const P=_.currentTarget;setTimeout(()=>{P.setAttribute("tabindex","-1"),P.focus()},0)}m.onOpenAutoFocus?.(_)},V=_=>{f&&_.preventDefault(),m.onCloseAutoFocus?.(_)},W=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Z=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Q=_=>{if(O?.disableClickOutside){_.preventDefault();return}if(f){const P=_.target;P.closest("[role='dialog']")||P.closest(".purpur-popover__trigger")||P.closest("button[aria-haspopup='dialog']")||(d?.({type:"dismiss",step:f.currentStep}),setTimeout(()=>{f.dismiss()},0))}};return a.jsx(Bt,{children:a.jsxs(zt,{"data-testid":"popover-content",role:"dialog","aria-modal":"true","aria-labelledby":m["aria-label"]?void 0:"popover-heading",ref:x,side:E,sideOffset:s,align:o,alignOffset:n,style:{"--popover-z-index":h},className:T("purpur-popover__content",{"purpur-popover__content--negative":i},t),onOpenAutoFocus:S,onCloseAutoFocus:V,onEscapeKeyDown:Z,onInteractOutside:Q,...m,children:[a.jsxs(Pe.Provider,{value:{negative:i},children:[a.jsxs("div",{className:T("purpur-popover__inner"),children:[a.jsx(Ge,{ref:j,title:p,icon:u}),a.jsx(xe.Paragraph,{className:T("purpur-popover__body"),children:v})]}),C,a.jsx(Ue,{asChild:!0,onClick:W,children:a.jsx(X.Button,{variant:i?"text":"tertiary-purple",size:"sm","aria-label":c,className:T("purpur-popover__close"),negative:!i,iconOnly:!0,children:a.jsx(gt.r,{size:"xs",className:T("purpur-popover__icon")})})})]}),w&&a.jsx(qt,{className:T("purpur-popover__arrow"),"aria-hidden":"true",tabIndex:-1})]})})});Ve.displayName="PopoverContent";const Ze=({children:e,open:t,defaultOpen:r=!1,onOpenChange:o,disableClickOutside:n,...s})=>{const[i,c]=l.useState(r),p=t!==void 0,u=p?t:i,v=d=>{p||c(d),o?.(d)};return a.jsx(Xe,{open:u,onOpenChange:v,...s,children:a.jsx(oe.Provider,{value:{isOpen:u,walkthroughStep:0,disableClickOutside:n},children:e})})};Ze.displayName="PopoverStandalone";const tr=e=>{const t=l.useRef(null),r=l.useCallback(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)},[]);return{scrollToElement:l.useCallback((n,s=600)=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,c=n.getBoundingClientRect(),p=c.top+window.pageYOffset,u=c.height,v=window.innerHeight;let d=p-v/2+u/2;const h=document.documentElement.scrollHeight,m=Math.max(0,h-v);if(d=Math.max(0,Math.min(d,m)),i){window.scrollTo(0,d),e?.();return}const x=window.pageYOffset,f=d-x,O=performance.now(),j=N=>{const E=N-O,w=Math.min(E/s,1),C=w<.5?2*w*w:1-Math.pow(-2*w+2,2)/2,S=x+f*C;window.scrollTo(0,S),w<1?t.current=requestAnimationFrame(j):(t.current=null,e?.())};r(),t.current=requestAnimationFrame(j)},[e,r]),cancelScroll:r}};function rr(e){const t=l.useRef(null),r=K(),o=B(),n=l.useRef(!1),{scrollToElement:s,cancelScroll:i}=tr(r?.onScrollComplete);return l.useEffect(()=>{typeof e=="function"?e(t.current):e&&(e.current=t.current)},[e]),l.useEffect(()=>{if(o&&r?.walkthroughStep!==void 0&&o.currentStep===r.walkthroughStep&&t.current&&!n.current){const p=t.current,u=p.getBoundingClientRect(),v=100;u.top>=-v&&u.bottom<=window.innerHeight+v&&u.left>=-v&&u.right<=window.innerWidth+v?r?.onScrollComplete?.():(r?.onScrollStart?.(),s(p)),n.current=!0}else o?.currentStep!==r?.walkthroughStep&&(n.current=!1,i())},[o?.currentStep,r?.walkthroughStep,o,s,i,r]),l.useEffect(()=>i,[i]),{triggerRef:t,context:r}}const ee=H.c.bind(q),Qe=l.forwardRef(({children:e,className:t,highlight:r=!0,negative:o=!1,...n},s)=>{const{triggerRef:i,context:c}=rr(s);return a.jsxs("div",{className:ee("purpur-popover__trigger",{"purpur-popover__trigger--highlight":c?.isOpen&&r},t),children:[c?.isOpen&&r&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state1",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"}),a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state2",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"})]}),a.jsx(Ht,{ref:i,asChild:!0,"aria-expanded":c?.isOpen??!1,"aria-haspopup":"dialog",...n,children:e})]})});Qe.displayName="PopoverTrigger";function or(e){const t=B(),[r,o]=l.useState(!1),[n,s]=l.useState(!1),i=l.useRef(null),c=l.useRef(0);l.useEffect(()=>t?(t.registerStep(e),()=>t.unregisterStep(e)):()=>{},[t,e]);const p=t?.currentStep===e,u=l.useCallback(()=>{s(!0)},[]),v=l.useCallback(()=>{if(s(!1),p){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}},[p,t]);l.useEffect(()=>{if(i.current&&(clearTimeout(i.current),i.current=null),p){if(!n){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}}else o(!1),s(!1),c.current=0;return()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[p,n,t]);const d=l.useCallback((h,m)=>{if(m?.(h),!h&&r&&t&&t.currentStep===e){if(Date.now()-c.current<10||i.current!==null)return;t.dismiss()}},[r,t,e]);return{actuallyOpen:r,onScrollStart:u,onScrollComplete:v,handleOpenChange:d}}const Je=({children:e,step:t,onOpenChange:r,disableClickOutside:o=!0,...n})=>{const{actuallyOpen:s,onScrollStart:i,onScrollComplete:c,handleOpenChange:p}=or(t);return a.jsx(Xe,{open:s,onOpenChange:u=>p(u,r),...n,children:a.jsx(oe.Provider,{value:{isOpen:s,walkthroughStep:t,onScrollStart:i,onScrollComplete:c,disableClickOutside:o},children:e})})};Je.displayName="PopoverWalkthrough";const b=e=>{const{multistep:t=!1,disableClickOutside:r,...o}=e;return t?a.jsx(Je,{...o,disableClickOutside:r??!0}):a.jsx(Ze,{...o,disableClickOutside:r})};b.Back=ie;b.Button=le;b.Content=Ve;b.Flow=mt;b.Footer=ue;b.Next=de;b.Trigger=Qe;b.displayName="Popover";exports.Popover=b;
|
|
2
|
-
//# sourceMappingURL=popover-
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),X=require("./button-DDYGuqZ0.js"),l=require("react"),dt=require("./variables-Buqm4JZc.js"),y=require("./index-DlMXYAr3.js"),U=require("./index-_XxjJPRD.js"),$=require("./index-kcwFA4Dv.js"),M=require("./index-DA01QPpC.js"),ft=require("./index-BtWPC8xc.js"),R=require("./floating-ui.react-dom-Cc_YSprQ.js"),ht=require("./index-DOFLOnao.js"),we=require("./index-CleLBinl.js"),gt=require("./close.es-VL3lKi1O.js"),xe=require("./paragraph-BsI53OR0.js"),H=require("./bind-DeUYJ6m9.js"),vt=require("./heading-drD5ugCC.js");function _t(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const g=_t(l),te=l.createContext(null),re=()=>{const e=l.useContext(te);if(!e)throw new Error("usePopoverFlow must be used within a PopoverFlow provider");return e},B=()=>l.useContext(te),mt=({children:e,initialStep:t=1,onComplete:r,onDismiss:o,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u=0})=>{const[v,d]=l.useState(t),[h,m]=l.useState(new Set),x=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.add(w),S})},[]),f=l.useCallback(w=>{m(C=>{const S=new Set(C);return S.delete(w),S})},[]),O=l.useCallback(()=>{d(w=>{const C=w+1;return C>h.size?(r?.(),w):C})},[h.size,r]),j=l.useCallback(()=>{d(w=>Math.max(1,w-1))},[]),N=l.useCallback(()=>{d(0),o?.()},[o]),E=l.useMemo(()=>({currentStep:v,totalSteps:h.size,next:O,back:j,dismiss:N,registerStep:x,unregisterStep:f,separatorText:n,stepText:s,backLabel:i,nextLabel:c,finishLabel:p,openDelay:u}),[v,h.size,O,j,N,x,f,n,s,i,c,p,u]);return a.jsx(te.Provider,{value:E,children:e})},oe=l.createContext(null),K=()=>l.useContext(oe),Pe=l.createContext({negative:!1}),ne=()=>l.useContext(Pe),wt=150,_e={MAX_MD:`(max-width: ${dt.purpurBreakpointMd})`},se=()=>{const e=window.matchMedia(_e.MAX_MD);function t(){o(e.matches)}const[r,o]=l.useState(()=>typeof window>"u"?!1:window.matchMedia(_e.MAX_MD).matches),n=l.useCallback(()=>{let s;return()=>{clearTimeout(s),s=setTimeout(()=>t(),wt)}},[t]);return l.useEffect(()=>{if(!(typeof window>"u"))return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)},[n]),{isMdOrSmaller:r}},ie=({children:e,onClick:t})=>{const{back:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"secondary",onClick:i,negative:s,fullWidth:n,children:e})};ie.displayName="PopoverBack";var xt="Arrow",Ce=g.forwardRef((e,t)=>{const{children:r,width:o=10,height:n=5,...s}=e;return a.jsx(y.Primitive.svg,{...s,ref:t,width:o,height:n,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?r:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ce.displayName=xt;var Pt=Ce,ae="Popper",[Se,ye]=$.createContextScope(ae),[Ct,je]=Se(ae),Oe=e=>{const{__scopePopper:t,children:r}=e,[o,n]=g.useState(null);return a.jsx(Ct,{scope:t,anchor:o,onAnchorChange:n,children:r})};Oe.displayName=ae;var Re="PopperAnchor",be=g.forwardRef((e,t)=>{const{__scopePopper:r,virtualRef:o,...n}=e,s=je(Re,r),i=g.useRef(null),c=U.useComposedRefs(t,i),p=g.useRef(null);return g.useEffect(()=>{const u=p.current;p.current=o?.current||i.current,u!==p.current&&s.onAnchorChange(p.current)}),o?null:a.jsx(y.Primitive.div,{...n,ref:c})});be.displayName=Re;var ce="PopperContent",[St,yt]=Se(ce),Ae=g.forwardRef((e,t)=>{const{__scopePopper:r,side:o="bottom",sideOffset:n=0,align:s="center",alignOffset:i=0,arrowPadding:c=0,avoidCollisions:p=!0,collisionBoundary:u=[],collisionPadding:v=0,sticky:d="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:x,...f}=e,O=je(ce,r),[j,N]=g.useState(null),E=U.useComposedRefs(t,I=>N(I)),[w,C]=g.useState(null),S=ht.useSize(w),V=S?.width??0,W=S?.height??0,Z=o+(s!=="center"?"-"+s:""),Q=typeof v=="number"?v:{top:0,right:0,bottom:0,left:0,...v},_=Array.isArray(u)?u:[u],P=_.length>0,k={padding:Q,boundary:_.filter(Ot),altBoundary:P},{refs:et,floatingStyles:fe,placement:tt,isPositioned:L,middlewareData:F}=R.useFloating({strategy:"fixed",placement:Z,whileElementsMounted:(...I)=>R.autoUpdate(...I,{animationFrame:m==="always"}),elements:{reference:O.anchor},middleware:[R.offset({mainAxis:n+W,alignmentAxis:i}),p&&R.shift({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?R.limitShift():void 0,...k}),p&&R.flip({...k}),R.size({...k,apply:({elements:I,rects:ve,availableWidth:ct,availableHeight:pt})=>{const{width:lt,height:ut}=ve.reference,Y=I.floating.style;Y.setProperty("--radix-popper-available-width",`${ct}px`),Y.setProperty("--radix-popper-available-height",`${pt}px`),Y.setProperty("--radix-popper-anchor-width",`${lt}px`),Y.setProperty("--radix-popper-anchor-height",`${ut}px`)}}),w&&R.arrow({element:w,padding:c}),Rt({arrowWidth:V,arrowHeight:W}),h&&R.hide({strategy:"referenceHidden",...k})]}),[he,rt]=ke(tt),ge=$.useCallbackRef(x);$.useLayoutEffect2(()=>{L&&ge?.()},[L,ge]);const ot=F.arrow?.x,nt=F.arrow?.y,st=F.arrow?.centerOffset!==0,[it,at]=g.useState();return $.useLayoutEffect2(()=>{j&&at(window.getComputedStyle(j).zIndex)},[j]),a.jsx("div",{ref:et.setFloating,"data-radix-popper-content-wrapper":"",style:{...fe,transform:L?fe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:it,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(" "),...F.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(St,{scope:r,placedSide:he,onArrowChange:C,arrowX:ot,arrowY:nt,shouldHideArrow:st,children:a.jsx(y.Primitive.div,{"data-side":he,"data-align":rt,...f,ref:E,style:{...f.style,animation:L?void 0:"none"}})})})});Ae.displayName=ce;var Ne="PopperArrow",jt={top:"bottom",right:"left",bottom:"top",left:"right"},Ee=g.forwardRef(function(t,r){const{__scopePopper:o,...n}=t,s=yt(Ne,o),i=jt[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Pt,{...n,ref:r,style:{...n.style,display:"block"}})})});Ee.displayName=Ne;function Ot(e){return e!==null}var Rt=e=>({name:"transformOrigin",options:e,fn(t){const{placement:r,rects:o,middlewareData:n}=t,i=n.arrow?.centerOffset!==0,c=i?0:e.arrowWidth,p=i?0:e.arrowHeight,[u,v]=ke(r),d={start:"0%",center:"50%",end:"100%"}[v],h=(n.arrow?.x??0)+c/2,m=(n.arrow?.y??0)+p/2;let x="",f="";return u==="bottom"?(x=i?d:`${h}px`,f=`${-p}px`):u==="top"?(x=i?d:`${h}px`,f=`${o.floating.height+p}px`):u==="right"?(x=`${-p}px`,f=i?d:`${m}px`):u==="left"&&(x=`${o.floating.width+p}px`,f=i?d:`${m}px`),{data:{x,y:f}}}});function ke(e){const[t,r="center"]=e.split("-");return[t,r]}var bt=Oe,Fe=be,At=Ae,Nt=Ee,G="Popover",[Te]=$.createContextScope(G,[ye]),z=ye(),[Et,A]=Te(G),Me=e=>{const{__scopePopover:t,children:r,open:o,defaultOpen:n,onOpenChange:s,modal:i=!1}=e,c=z(t),p=g.useRef(null),[u,v]=g.useState(!1),[d,h]=y.useControllableState({prop:o,defaultProp:n??!1,onChange:s,caller:G});return a.jsx(bt,{...c,children:a.jsx(Et,{scope:t,contentId:ft.useId(),triggerRef:p,open:d,onOpenChange:h,onOpenToggle:g.useCallback(()=>h(m=>!m),[h]),hasCustomAnchor:u,onCustomAnchorAdd:g.useCallback(()=>v(!0),[]),onCustomAnchorRemove:g.useCallback(()=>v(!1),[]),modal:i,children:r})})};Me.displayName=G;var De="PopoverAnchor",kt=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(De,r),s=z(r),{onCustomAnchorAdd:i,onCustomAnchorRemove:c}=n;return g.useEffect(()=>(i(),()=>c()),[i,c]),a.jsx(Fe,{...s,...o,ref:t})});kt.displayName=De;var Ie="PopoverTrigger",$e=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(Ie,r),s=z(r),i=U.useComposedRefs(t,n.triggerRef),c=a.jsx(y.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":n.open,"aria-controls":n.contentId,"data-state":Ye(n.open),...o,ref:i,onClick:y.composeEventHandlers(e.onClick,n.onOpenToggle)});return n.hasCustomAnchor?c:a.jsx(Fe,{asChild:!0,...s,children:c})});$e.displayName=Ie;var pe="PopoverPortal",[Ft,Tt]=Te(pe,{forceMount:void 0}),He=e=>{const{__scopePopover:t,forceMount:r,children:o,container:n}=e,s=A(pe,t);return a.jsx(Ft,{scope:t,forceMount:r,children:a.jsx(we.Presence,{present:r||s.open,children:a.jsx(M.Portal,{asChild:!0,container:n,children:o})})})};He.displayName=pe;var D="PopoverContent",Be=g.forwardRef((e,t)=>{const r=Tt(D,e.__scopePopover),{forceMount:o=r.forceMount,...n}=e,s=A(D,e.__scopePopover);return a.jsx(we.Presence,{present:o||s.open,children:s.modal?a.jsx(Dt,{...n,ref:t}):a.jsx(It,{...n,ref:t})})});Be.displayName=D;var Mt=y.createSlot("PopoverContent.RemoveScroll"),Dt=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(null),n=U.useComposedRefs(t,o),s=g.useRef(!1);return g.useEffect(()=>{const i=o.current;if(i)return M.hideOthers(i)},[]),a.jsx(M.ReactRemoveScroll,{as:Mt,allowPinchZoom:!0,children:a.jsx(ze,{...e,ref:n,trapFocus:r.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:y.composeEventHandlers(e.onCloseAutoFocus,i=>{i.preventDefault(),s.current||r.triggerRef.current?.focus()}),onPointerDownOutside:y.composeEventHandlers(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,p=c.button===0&&c.ctrlKey===!0,u=c.button===2||p;s.current=u},{checkForDefaultPrevented:!1}),onFocusOutside:y.composeEventHandlers(e.onFocusOutside,i=>i.preventDefault(),{checkForDefaultPrevented:!1})})})}),It=g.forwardRef((e,t)=>{const r=A(D,e.__scopePopover),o=g.useRef(!1),n=g.useRef(!1);return a.jsx(ze,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(o.current||r.triggerRef.current?.focus(),s.preventDefault()),o.current=!1,n.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(o.current=!0,s.detail.originalEvent.type==="pointerdown"&&(n.current=!0));const i=s.target;r.triggerRef.current?.contains(i)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&n.current&&s.preventDefault()}})}),ze=g.forwardRef((e,t)=>{const{__scopePopover:r,trapFocus:o,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:i,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onInteractOutside:v,...d}=e,h=A(D,r),m=z(r);return M.useFocusGuards(),a.jsx(M.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:n,onUnmountAutoFocus:s,children:a.jsx(M.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:v,onEscapeKeyDown:c,onPointerDownOutside:p,onFocusOutside:u,onDismiss:()=>h.onOpenChange(!1),children:a.jsx(At,{"data-state":Ye(h.open),role:"dialog",id:h.contentId,...m,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),qe="PopoverClose",We=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=A(qe,r);return a.jsx(y.Primitive.button,{type:"button",...o,ref:t,onClick:y.composeEventHandlers(e.onClick,()=>n.onOpenChange(!1))})});We.displayName=qe;var $t="PopoverArrow",Le=g.forwardRef((e,t)=>{const{__scopePopover:r,...o}=e,n=z(r);return a.jsx(Nt,{...n,...o,ref:t})});Le.displayName=$t;function Ye(e){return e?"open":"closed"}var Xe=Me,Ht=$e,Bt=He,zt=Be,Ue=We,qt=Le;const le=({children:e,asChild:t,onClick:r,variant:o="primary",dismiss:n=!0,fullWidth:s})=>{const i=B(),{isMdOrSmaller:c}=se(),{negative:p}=ne(),u=!p,v=()=>{r?.(),n&&i?.dismiss()},d=s??c,h=t?e:a.jsx(X.Button,{variant:o,size:"sm",fullWidth:d,negative:u,onClick:v,children:e});return n?a.jsx(Ue,{asChild:!0,children:h}):h};le.displayName="PopoverButton";const Wt="_highlightState1_1w9je_1",Lt="_fadeIn_1w9je_1",Yt="_slideFromTop_1w9je_1",Xt="_slideFromBottom_1w9je_1",Ut="_slideFromLeft_1w9je_1",Kt="_slideFromRight_1w9je_1",Gt="_fadeOut_1w9je_1",Vt="_slideToTop_1w9je_1",Zt="_slideToBottom_1w9je_1",Qt="_slideToLeft_1w9je_1",Jt="_slideToRight_1w9je_1",q={"purpur-popover__trigger":"_purpur-popover__trigger_1w9je_1","purpur-popover__trigger-highlight":"_purpur-popover__trigger-highlight_1w9je_5","purpur-popover__trigger-highlight--state1":"_purpur-popover__trigger-highlight--state1_1w9je_14",highlightState1:Wt,"purpur-popover__trigger-highlight--negative":"_purpur-popover__trigger-highlight--negative_1w9je_29","purpur-popover__trigger-highlight--state2":"_purpur-popover__trigger-highlight--state2_1w9je_33","purpur-popover__inner":"_purpur-popover__inner_1w9je_45","purpur-popover__content":"_purpur-popover__content_1w9je_52",fadeIn:Lt,slideFromTop:Yt,slideFromBottom:Xt,slideFromLeft:Ut,slideFromRight:Kt,fadeOut:Gt,slideToTop:Vt,slideToBottom:Zt,slideToLeft:Qt,slideToRight:Jt,"purpur-popover__arrow":"_purpur-popover__arrow_1w9je_103","purpur-popover__body":"_purpur-popover__body_1w9je_106","purpur-popover__icon":"_purpur-popover__icon_1w9je_107","purpur-popover__steps":"_purpur-popover__steps_1w9je_108","purpur-popover__title":"_purpur-popover__title_1w9je_109","purpur-popover__content--negative":"_purpur-popover__content--negative_1w9je_112","purpur-popover__header-content":"_purpur-popover__header-content_1w9je_124","purpur-popover__close":"_purpur-popover__close_1w9je_137","purpur-popover__footer":"_purpur-popover__footer_1w9je_142","purpur-popover__footer-button-group":"_purpur-popover__footer-button-group_1w9je_155"},er=H.c.bind(q),Ke=()=>{const e=re(),r=K()?.walkthroughStep||e.currentStep,{totalSteps:o,separatorText:n,stepText:s}=e;return a.jsx(a.Fragment,{children:a.jsxs(xe.Paragraph,{className:er("purpur-popover__steps"),role:"status","aria-live":"polite","aria-atomic":"true",children:[s," ",r," ",n," ",o]})})};Ke.displayName="PopoverSteps";const me=H.c.bind(q),ue=({children:e,className:t})=>{const r=B(),o=K(),n=r&&o&&o.walkthroughStep>0;return a.jsxs("div",{className:me("purpur-popover__footer",t),children:[n&&a.jsx(Ke,{}),a.jsx("div",{className:me("purpur-popover__footer-button-group"),children:e})]})};ue.displayName="PopoverFooter";const J=H.c.bind(q),Ge=l.forwardRef(({title:e,icon:t},r)=>a.jsxs("div",{ref:r,className:J("purpur-popover__header-content"),children:[t&&a.jsx("span",{className:J("purpur-popover__icon"),children:t}),a.jsx(vt.Heading,{tag:"h2",variant:"title-100",className:J("purpur-popover__title"),id:"popover-heading",children:e})]}));Ge.displayName="PopoverHeader";const de=({children:e,onClick:t})=>{const{next:r}=re(),{negative:o}=ne(),{isMdOrSmaller:n}=se(),s=!o,i=()=>{t?.(),r()};return a.jsx(X.Button,{size:"sm",variant:"primary",onClick:i,negative:s,fullWidth:n,children:e})};de.displayName="PopoverNext";const T=H.c.bind(q),Ve=l.forwardRef(({children:e,className:t,beakPosition:r="down",align:o="center",alignOffset:n=0,sideOffset:s=5,negative:i=!1,closeIconAriaLabel:c,title:p,icon:u,body:v,onAction:d,zIndex:h=210,...m},x)=>{const f=B(),O=K(),j=l.useRef(null),E={up:"bottom",right:"left",down:"top",left:"right",none:"bottom"}[r],w=r!=="none";let C=e;if(f&&!e){const _=O?.walkthroughStep||f.currentStep,P=_===1,k=_===f.totalSteps;C=a.jsxs(ue,{children:[!P&&a.jsx(ie,{onClick:()=>d?.({type:"back",step:_}),children:f.backLabel}),k?a.jsx(le,{onClick:()=>d?.({type:"finish",step:_}),dismiss:!0,children:f.finishLabel}):a.jsx(de,{onClick:()=>d?.({type:"next",step:_}),children:f.nextLabel})]})}const S=_=>{if(_.preventDefault(),f){const P=_.currentTarget;setTimeout(()=>{P.setAttribute("tabindex","-1"),P.focus()},0)}m.onOpenAutoFocus?.(_)},V=_=>{f&&_.preventDefault(),m.onCloseAutoFocus?.(_)},W=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Z=_=>{const P=window.matchMedia("(prefers-reduced-motion: reduce)").matches;f&&!P?(_.preventDefault(),setTimeout(()=>{d?.({type:"dismiss",step:f.currentStep}),f.dismiss()},200)):(d?.({type:"dismiss",step:f?.currentStep}),f?.dismiss())},Q=_=>{if(O?.disableClickOutside){_.preventDefault();return}if(f){const P=_.target;P.closest("[role='dialog']")||P.closest(".purpur-popover__trigger")||P.closest("button[aria-haspopup='dialog']")||(d?.({type:"dismiss",step:f.currentStep}),setTimeout(()=>{f.dismiss()},0))}};return a.jsx(Bt,{children:a.jsxs(zt,{"data-testid":"popover-content",role:"dialog","aria-modal":"true","aria-labelledby":m["aria-label"]?void 0:"popover-heading",ref:x,side:E,sideOffset:s,align:o,alignOffset:n,style:{"--popover-z-index":h},className:T("purpur-popover__content",{"purpur-popover__content--negative":i},t),onOpenAutoFocus:S,onCloseAutoFocus:V,onEscapeKeyDown:Z,onInteractOutside:Q,...m,children:[a.jsxs(Pe.Provider,{value:{negative:i},children:[a.jsxs("div",{className:T("purpur-popover__inner"),children:[a.jsx(Ge,{ref:j,title:p,icon:u}),a.jsx(xe.Paragraph,{className:T("purpur-popover__body"),children:v})]}),C,a.jsx(Ue,{asChild:!0,onClick:W,children:a.jsx(X.Button,{variant:i?"text":"tertiary-purple",size:"sm","aria-label":c,className:T("purpur-popover__close"),negative:!i,iconOnly:!0,children:a.jsx(gt.r,{size:"xs",className:T("purpur-popover__icon")})})})]}),w&&a.jsx(qt,{className:T("purpur-popover__arrow"),"aria-hidden":"true",tabIndex:-1})]})})});Ve.displayName="PopoverContent";const Ze=({children:e,open:t,defaultOpen:r=!1,onOpenChange:o,disableClickOutside:n,...s})=>{const[i,c]=l.useState(r),p=t!==void 0,u=p?t:i,v=d=>{p||c(d),o?.(d)};return a.jsx(Xe,{open:u,onOpenChange:v,...s,children:a.jsx(oe.Provider,{value:{isOpen:u,walkthroughStep:0,disableClickOutside:n},children:e})})};Ze.displayName="PopoverStandalone";const tr=e=>{const t=l.useRef(null),r=l.useCallback(()=>{t.current&&(cancelAnimationFrame(t.current),t.current=null)},[]);return{scrollToElement:l.useCallback((n,s=600)=>{const i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,c=n.getBoundingClientRect(),p=c.top+window.pageYOffset,u=c.height,v=window.innerHeight;let d=p-v/2+u/2;const h=document.documentElement.scrollHeight,m=Math.max(0,h-v);if(d=Math.max(0,Math.min(d,m)),i){window.scrollTo(0,d),e?.();return}const x=window.pageYOffset,f=d-x,O=performance.now(),j=N=>{const E=N-O,w=Math.min(E/s,1),C=w<.5?2*w*w:1-Math.pow(-2*w+2,2)/2,S=x+f*C;window.scrollTo(0,S),w<1?t.current=requestAnimationFrame(j):(t.current=null,e?.())};r(),t.current=requestAnimationFrame(j)},[e,r]),cancelScroll:r}};function rr(e){const t=l.useRef(null),r=K(),o=B(),n=l.useRef(!1),{scrollToElement:s,cancelScroll:i}=tr(r?.onScrollComplete);return l.useEffect(()=>{typeof e=="function"?e(t.current):e&&(e.current=t.current)},[e]),l.useEffect(()=>{if(o&&r?.walkthroughStep!==void 0&&o.currentStep===r.walkthroughStep&&t.current&&!n.current){const p=t.current,u=p.getBoundingClientRect(),v=100;u.top>=-v&&u.bottom<=window.innerHeight+v&&u.left>=-v&&u.right<=window.innerWidth+v?r?.onScrollComplete?.():(r?.onScrollStart?.(),s(p)),n.current=!0}else o?.currentStep!==r?.walkthroughStep&&(n.current=!1,i())},[o?.currentStep,r?.walkthroughStep,o,s,i,r]),l.useEffect(()=>i,[i]),{triggerRef:t,context:r}}const ee=H.c.bind(q),Qe=l.forwardRef(({children:e,className:t,highlight:r=!0,negative:o=!1,...n},s)=>{const{triggerRef:i,context:c}=rr(s);return a.jsxs("div",{className:ee("purpur-popover__trigger",{"purpur-popover__trigger--highlight":c?.isOpen&&r},t),children:[c?.isOpen&&r&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state1",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"}),a.jsx("div",{className:ee("purpur-popover__trigger-highlight","purpur-popover__trigger-highlight--state2",{"purpur-popover__trigger-highlight--negative":o}),"aria-hidden":"true"})]}),a.jsx(Ht,{ref:i,asChild:!0,"aria-expanded":c?.isOpen??!1,"aria-haspopup":"dialog",...n,children:e})]})});Qe.displayName="PopoverTrigger";function or(e){const t=B(),[r,o]=l.useState(!1),[n,s]=l.useState(!1),i=l.useRef(null),c=l.useRef(0);l.useEffect(()=>t?(t.registerStep(e),()=>t.unregisterStep(e)):()=>{},[t,e]);const p=t?.currentStep===e,u=l.useCallback(()=>{s(!0)},[]),v=l.useCallback(()=>{if(s(!1),p){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}},[p,t]);l.useEffect(()=>{if(i.current&&(clearTimeout(i.current),i.current=null),p){if(!n){const h=t.openDelay;i.current=window.setTimeout(()=>{o(!0),c.current=Date.now()},h)}}else o(!1),s(!1),c.current=0;return()=>{i.current&&(clearTimeout(i.current),i.current=null)}},[p,n,t]);const d=l.useCallback((h,m)=>{if(m?.(h),!h&&r&&t&&t.currentStep===e){if(Date.now()-c.current<10||i.current!==null)return;t.dismiss()}},[r,t,e]);return{actuallyOpen:r,onScrollStart:u,onScrollComplete:v,handleOpenChange:d}}const Je=({children:e,step:t,onOpenChange:r,disableClickOutside:o=!0,...n})=>{const{actuallyOpen:s,onScrollStart:i,onScrollComplete:c,handleOpenChange:p}=or(t);return a.jsx(Xe,{open:s,onOpenChange:u=>p(u,r),...n,children:a.jsx(oe.Provider,{value:{isOpen:s,walkthroughStep:t,onScrollStart:i,onScrollComplete:c,disableClickOutside:o},children:e})})};Je.displayName="PopoverWalkthrough";const b=e=>{const{multistep:t=!1,disableClickOutside:r,...o}=e;return t?a.jsx(Je,{...o,disableClickOutside:r??!0}):a.jsx(Ze,{...o,disableClickOutside:r})};b.Back=ie;b.Button=le;b.Content=Ve;b.Flow=mt;b.Footer=ue;b.Next=de;b.Trigger=Qe;b.displayName="Popover";exports.Popover=b;
|
|
2
|
+
//# sourceMappingURL=popover-D3qWbbU4.js.map
|