@purpur/library 9.7.4 → 9.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.lintstagedrc.mts +10 -0
- package/@types/scss.d.ts +4 -0
- package/CHANGELOG.json +4062 -0
- package/CHANGELOG.md +2118 -0
- package/dist/LICENSE.txt +7 -7
- package/dist/{ThemeProvider-DiDBfyFA.mjs → ThemeProvider-BJ25_asg.mjs} +13 -13
- package/dist/{ThemeProvider-DiDBfyFA.mjs.map → ThemeProvider-BJ25_asg.mjs.map} +1 -1
- package/dist/{ThemeProvider-D7oXcAde.js → ThemeProvider-BJGm3zai.js} +2 -2
- package/dist/{ThemeProvider-D7oXcAde.js.map → ThemeProvider-BJGm3zai.js.map} +1 -1
- package/dist/{autocomplete-BEGRn-Wh.mjs → autocomplete-A9-Ni60G.mjs} +2 -2
- package/dist/{autocomplete-BEGRn-Wh.mjs.map → autocomplete-A9-Ni60G.mjs.map} +1 -1
- package/dist/{autocomplete-3kV1btuI.js → autocomplete-Bbth0nDG.js} +2 -2
- package/dist/{autocomplete-3kV1btuI.js.map → autocomplete-Bbth0nDG.js.map} +1 -1
- package/dist/autocomplete.cjs.js +1 -1
- package/dist/autocomplete.es.js +1 -1
- package/dist/components/accordion/src/accordion.visual.fixtures.d.ts +13 -0
- package/dist/components/accordion/src/accordion.visual.fixtures.d.ts.map +1 -0
- package/dist/components/badge/src/badge.visual.fixtures.d.ts +13 -0
- package/dist/components/badge/src/badge.visual.fixtures.d.ts.map +1 -0
- package/dist/components/footer/src/telia-logo.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner-types.d.ts +48 -0
- package/dist/components/hero-banner/src/hero-banner-types.d.ts.map +1 -0
- package/dist/components/hero-banner/src/hero-banner.d.ts +5 -48
- package/dist/components/hero-banner/src/hero-banner.d.ts.map +1 -1
- package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts +1 -1
- package/dist/components/hero-banner/src/hero-banner.visual.fixtures.d.ts.map +1 -1
- package/dist/components-metadata.js +2 -2
- package/dist/{date-field-BKKty89_.js → date-field-CKxEWHG3.js} +2 -2
- package/dist/{date-field-BKKty89_.js.map → date-field-CKxEWHG3.js.map} +1 -1
- package/dist/{date-field-Cv5CKR1y.mjs → date-field-HEFdHIxk.mjs} +2 -2
- package/dist/{date-field-Cv5CKR1y.mjs.map → date-field-HEFdHIxk.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-CIizn3Pv.js → date-picker-CDBwkAJI.js} +2 -2
- package/dist/{date-picker-CIizn3Pv.js.map → date-picker-CDBwkAJI.js.map} +1 -1
- package/dist/{date-picker-DixxW60s.mjs → date-picker-cQewKIMN.mjs} +6 -6
- package/dist/{date-picker-DixxW60s.mjs.map → date-picker-cQewKIMN.mjs.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/{date-range-field-D8vLeSwp.js → date-range-field-D7Hn9FGN.js} +2 -2
- package/dist/{date-range-field-D8vLeSwp.js.map → date-range-field-D7Hn9FGN.js.map} +1 -1
- package/dist/{date-range-field-CFcjprIl.mjs → date-range-field-_WctWD29.mjs} +2 -2
- package/dist/{date-range-field-CFcjprIl.mjs.map → date-range-field-_WctWD29.mjs.map} +1 -1
- package/dist/date-range-field.cjs.js +1 -1
- package/dist/date-range-field.es.js +1 -1
- package/dist/{drawer-DyhsP34o.js → drawer-DyLQfvEh.js} +2 -2
- package/dist/{drawer-DyhsP34o.js.map → drawer-DyLQfvEh.js.map} +1 -1
- package/dist/{drawer-BzkRd9F0.mjs → drawer-cIUx6WSZ.mjs} +3 -3
- package/dist/{drawer-BzkRd9F0.mjs.map → drawer-cIUx6WSZ.mjs.map} +1 -1
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/{footer-DenAcikt.mjs → footer-BMlXRro2.mjs} +86 -96
- package/dist/footer-BMlXRro2.mjs.map +1 -0
- package/dist/footer-cet787Iq.js +2 -0
- package/dist/footer-cet787Iq.js.map +1 -0
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/{hero-banner-B7xrDfzN.mjs → hero-banner-B08jC0Sf.mjs} +77 -77
- package/dist/hero-banner-B08jC0Sf.mjs.map +1 -0
- package/dist/hero-banner-D__doaU7.js +2 -0
- package/dist/hero-banner-D__doaU7.js.map +1 -0
- 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 +21 -21
- package/dist/{modal-DJn9idcw.js → modal-CmPPxJ7Y.js} +2 -2
- package/dist/{modal-DJn9idcw.js.map → modal-CmPPxJ7Y.js.map} +1 -1
- package/dist/{modal-EIP36327.mjs → modal-Evh8sCBO.mjs} +3 -3
- package/dist/{modal-EIP36327.mjs.map → modal-Evh8sCBO.mjs.map} +1 -1
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{popover-DERrvReO.mjs → popover-BSUdf0Ae.mjs} +3 -3
- package/dist/{popover-DERrvReO.mjs.map → popover-BSUdf0Ae.mjs.map} +1 -1
- package/dist/{popover-DnGgzfQr.js → popover-XJqF5DHT.js} +2 -2
- package/dist/{popover-DnGgzfQr.js.map → popover-XJqF5DHT.js.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{promotion-card-DKc2Cx1h.js → promotion-card-BnXD2mkp.js} +2 -2
- package/dist/{promotion-card-DKc2Cx1h.js.map → promotion-card-BnXD2mkp.js.map} +1 -1
- package/dist/{promotion-card-BnzIVNQ4.mjs → promotion-card-DOO0VCI8.mjs} +2 -2
- package/dist/{promotion-card-BnzIVNQ4.mjs.map → promotion-card-DOO0VCI8.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-CvBvnMeB.mjs → quantity-selector-B4YnfmNb.mjs} +2 -2
- package/dist/{quantity-selector-CvBvnMeB.mjs.map → quantity-selector-B4YnfmNb.mjs.map} +1 -1
- package/dist/{quantity-selector-CDSfcTb1.js → quantity-selector-CTBoxiPO.js} +2 -2
- package/dist/{quantity-selector-CDSfcTb1.js.map → quantity-selector-CTBoxiPO.js.map} +1 -1
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +1 -1
- package/dist/{search-field-DKyNh7pE.mjs → search-field-_h8xn-sj.mjs} +2 -2
- package/dist/{search-field-DKyNh7pE.mjs.map → search-field-_h8xn-sj.mjs.map} +1 -1
- package/dist/{search-field-2vdDbiT0.js → search-field-vh6uz5KV.js} +2 -2
- package/dist/{search-field-2vdDbiT0.js.map → search-field-vh6uz5KV.js.map} +1 -1
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-e0qicwqd.mjs → stepper-B-nCLs2D.mjs} +2 -2
- package/dist/{stepper-e0qicwqd.mjs.map → stepper-B-nCLs2D.mjs.map} +1 -1
- package/dist/{stepper-5qMo_shq.js → stepper-CTKlnH0q.js} +2 -2
- package/dist/{stepper-5qMo_shq.js.map → stepper-CTKlnH0q.js.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-i1Gs9e0e.mjs → table-DOPXfD-s.mjs} +6 -6
- package/dist/{table-i1Gs9e0e.mjs.map → table-DOPXfD-s.mjs.map} +1 -1
- package/dist/{table-BOCcBzSO.js → table-DTQe4nN8.js} +2 -2
- package/dist/{table-BOCcBzSO.js.map → table-DTQe4nN8.js.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{text-area-D0truMT1.js → text-area-9RUldq6W.js} +2 -2
- package/dist/{text-area-D0truMT1.js.map → text-area-9RUldq6W.js.map} +1 -1
- package/dist/{text-area-IVH-k4MM.mjs → text-area-C58aZEPa.mjs} +3 -3
- package/dist/{text-area-IVH-k4MM.mjs.map → text-area-C58aZEPa.mjs.map} +1 -1
- package/dist/text-area.cjs.js +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/text-field-C2W13n15.js +2 -0
- package/dist/{text-field-CYJzQG3h.js.map → text-field-C2W13n15.js.map} +1 -1
- package/dist/{text-field-BQfxJobW.mjs → text-field-D8MMa6ij.mjs} +114 -114
- package/dist/{text-field-BQfxJobW.mjs.map → text-field-D8MMa6ij.mjs.map} +1 -1
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.es.js +1 -1
- package/dist/theme.cjs.js +1 -1
- package/dist/theme.es.js +3 -3
- package/dist/tokens/color/variables.css +1 -1
- package/dist/tokens/color/variables.dark.css +1 -1
- package/dist/tokens/color/variables.dark.js +1 -1
- package/dist/tokens/color/variables.dark.json +1 -1
- package/dist/tokens/color/variables.dark.scss +1 -1
- package/dist/tokens/color/variables.js +1 -1
- package/dist/tokens/color/variables.json +1 -1
- package/dist/tokens/color/variables.scss +1 -1
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +1 -1
- package/dist/{tooltip-CJGmJDFQ.js → tooltip-CDnJKoIA.js} +2 -2
- package/dist/{tooltip-CJGmJDFQ.js.map → tooltip-CDnJKoIA.js.map} +1 -1
- package/dist/{tooltip-RA-03bKs.mjs → tooltip-pwJMEBBP.mjs} +3 -3
- package/dist/{tooltip-RA-03bKs.mjs.map → tooltip-pwJMEBBP.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{useColorScheme-B9DWd-LN.mjs → useColorScheme-B7lGBSe4.mjs} +2 -2
- package/dist/{useColorScheme-B9DWd-LN.mjs.map → useColorScheme-B7lGBSe4.mjs.map} +1 -1
- package/dist/useColorScheme-BHhPgv9q.js +2 -0
- package/dist/{useColorScheme-DbTQjxNB.js.map → useColorScheme-BHhPgv9q.js.map} +1 -1
- package/dist/useThemePortalContainer-CUcqV327.js +2 -0
- package/dist/{useThemePortalContainer-D9BYjEvT.js.map → useThemePortalContainer-CUcqV327.js.map} +1 -1
- package/dist/useThemePortalContainer-D13Xx24N.mjs +9 -0
- package/dist/{useThemePortalContainer-tFLTaYKN.mjs.map → useThemePortalContainer-D13Xx24N.mjs.map} +1 -1
- package/dist/{variables-B5hbV0Uy.mjs → variables-BrsAsWIF.mjs} +2 -2
- package/dist/{variables-B5hbV0Uy.mjs.map → variables-BrsAsWIF.mjs.map} +1 -1
- package/dist/{variables-DoI78zZc.js → variables-D1vNo1lO.js} +2 -2
- package/dist/{variables-DoI78zZc.js.map → variables-D1vNo1lO.js.map} +1 -1
- package/eslint.config.mjs +2 -0
- package/package.json +27 -31
- package/scripts/generate.mts +269 -0
- package/src/accordion.ts +6 -0
- package/src/alert-badge.ts +6 -0
- package/src/aliases.ts +302 -0
- package/src/autocomplete.ts +6 -0
- package/src/avatar.ts +6 -0
- package/src/badge.ts +6 -0
- package/src/breadcrumbs.ts +6 -0
- package/src/button.ts +6 -0
- package/src/calendar.ts +6 -0
- package/src/card.ts +6 -0
- package/src/carousel.ts +6 -0
- package/src/chat-field.ts +6 -0
- package/src/checkbox.ts +6 -0
- package/src/chip-group.ts +6 -0
- package/src/color-dot.ts +6 -0
- package/src/comparison-table.ts +6 -0
- package/src/container.ts +6 -0
- package/src/content-block.ts +6 -0
- package/src/countdown.ts +6 -0
- package/src/counter-badge.ts +6 -0
- package/src/cta-link.ts +6 -0
- package/src/date-field.ts +6 -0
- package/src/date-picker.ts +6 -0
- package/src/date-range-field.ts +6 -0
- package/src/dismissable-chip-group.ts +6 -0
- package/src/drawer.ts +6 -0
- package/src/dropdown.ts +6 -0
- package/src/entries.js +73 -0
- package/src/field-error-text.ts +6 -0
- package/src/field-helper-text.ts +6 -0
- package/src/footer.ts +6 -0
- package/src/grid.ts +6 -0
- package/src/heading.ts +6 -0
- package/src/hero-banner.ts +6 -0
- package/src/label.ts +6 -0
- package/src/library.ts +77 -0
- package/src/link.ts +6 -0
- package/src/listbox.ts +6 -0
- package/src/loading.ts +6 -0
- package/src/message.ts +6 -0
- package/src/modal.ts +6 -0
- package/src/notification-banner.ts +6 -0
- package/src/notification.ts +6 -0
- package/src/pagination.ts +6 -0
- package/src/paragraph.ts +6 -0
- package/src/password-field.ts +7 -0
- package/src/popover.ts +6 -0
- package/src/product-card.ts +6 -0
- package/src/promotion-card.ts +6 -0
- package/src/purpur.css +1 -0
- package/src/quantity-selector.ts +6 -0
- package/src/radio-button-group.ts +6 -0
- package/src/radio-card-group.ts +6 -0
- package/src/rich-text.ts +6 -0
- package/src/search-field.ts +6 -0
- package/src/select.ts +6 -0
- package/src/skeleton.ts +6 -0
- package/src/slider.ts +6 -0
- package/src/spacer.ts +6 -0
- package/src/spinner.ts +6 -0
- package/src/stepper.ts +6 -0
- package/src/table.ts +6 -0
- package/src/tabs.ts +6 -0
- package/src/text-area.ts +6 -0
- package/src/text-field.ts +6 -0
- package/src/text-spacing.ts +6 -0
- package/src/theme.ts +6 -0
- package/src/toggle.ts +6 -0
- package/src/tokens.ts +6 -0
- package/src/tooltip.ts +6 -0
- package/src/visually-hidden.ts +6 -0
- package/tokens/_dark.scss +9 -0
- package/tokens/_index.scss +9 -0
- package/tokens/border/variables.css +13 -0
- package/tokens/border/variables.d.ts +10 -0
- package/tokens/border/variables.dark.css +12 -0
- package/tokens/border/variables.dark.d.ts +10 -0
- package/tokens/border/variables.dark.js +10 -0
- package/tokens/border/variables.dark.json +18 -0
- package/tokens/border/variables.dark.scss +10 -0
- package/tokens/border/variables.js +10 -0
- package/tokens/border/variables.json +18 -0
- package/tokens/border/variables.scss +10 -0
- package/tokens/breakpoint/variables.css +11 -0
- package/tokens/breakpoint/variables.d.ts +8 -0
- package/tokens/breakpoint/variables.dark.css +10 -0
- package/tokens/breakpoint/variables.dark.d.ts +8 -0
- package/tokens/breakpoint/variables.dark.js +8 -0
- package/tokens/breakpoint/variables.dark.json +14 -0
- package/tokens/breakpoint/variables.dark.scss +8 -0
- package/tokens/breakpoint/variables.js +8 -0
- package/tokens/breakpoint/variables.json +14 -0
- package/tokens/breakpoint/variables.scss +8 -0
- package/tokens/color/variables.css +262 -0
- package/tokens/color/variables.d.ts +253 -0
- package/tokens/color/variables.dark.css +262 -0
- package/tokens/color/variables.dark.d.ts +252 -0
- package/tokens/color/variables.dark.js +252 -0
- package/tokens/color/variables.dark.json +306 -0
- package/tokens/color/variables.dark.scss +252 -0
- package/tokens/color/variables.js +253 -0
- package/tokens/color/variables.json +307 -0
- package/tokens/color/variables.scss +253 -0
- package/tokens/dark.css +9 -0
- package/tokens/dark.d.ts +9 -0
- package/tokens/dark.js +9 -0
- package/tokens/filter/variables.css +4 -0
- package/tokens/filter/variables.d.ts +1 -0
- package/tokens/filter/variables.dark.css +3 -0
- package/tokens/filter/variables.dark.d.ts +1 -0
- package/tokens/filter/variables.dark.js +1 -0
- package/tokens/filter/variables.dark.json +7 -0
- package/tokens/filter/variables.dark.scss +1 -0
- package/tokens/filter/variables.js +1 -0
- package/tokens/filter/variables.json +7 -0
- package/tokens/filter/variables.scss +1 -0
- package/tokens/gradient/variables.css +53 -0
- package/tokens/gradient/variables.d.ts +9 -0
- package/tokens/gradient/variables.dark.css +51 -0
- package/tokens/gradient/variables.dark.d.ts +9 -0
- package/tokens/gradient/variables.dark.js +18 -0
- package/tokens/gradient/variables.dark.json +27 -0
- package/tokens/gradient/variables.dark.scss +36 -0
- package/tokens/gradient/variables.js +18 -0
- package/tokens/gradient/variables.json +27 -0
- package/tokens/gradient/variables.scss +42 -0
- package/tokens/index.css +18 -0
- package/tokens/index.d.ts +9 -0
- package/tokens/index.js +9 -0
- package/tokens/motion/variables.css +14 -0
- package/tokens/motion/variables.d.ts +11 -0
- package/tokens/motion/variables.dark.css +13 -0
- package/tokens/motion/variables.dark.d.ts +11 -0
- package/tokens/motion/variables.dark.js +11 -0
- package/tokens/motion/variables.dark.json +19 -0
- package/tokens/motion/variables.dark.scss +11 -0
- package/tokens/motion/variables.js +11 -0
- package/tokens/motion/variables.json +19 -0
- package/tokens/motion/variables.scss +11 -0
- package/tokens/shadow/variables.css +11 -0
- package/tokens/shadow/variables.d.ts +4 -0
- package/tokens/shadow/variables.dark.css +10 -0
- package/tokens/shadow/variables.dark.d.ts +4 -0
- package/tokens/shadow/variables.dark.js +4 -0
- package/tokens/shadow/variables.dark.json +8 -0
- package/tokens/shadow/variables.dark.scss +4 -0
- package/tokens/shadow/variables.js +4 -0
- package/tokens/shadow/variables.json +8 -0
- package/tokens/shadow/variables.scss +4 -0
- package/tokens/spacing/variables.css +26 -0
- package/tokens/spacing/variables.d.ts +23 -0
- package/tokens/spacing/variables.dark.css +17 -0
- package/tokens/spacing/variables.dark.d.ts +15 -0
- package/tokens/spacing/variables.dark.js +15 -0
- package/tokens/spacing/variables.dark.json +19 -0
- package/tokens/spacing/variables.dark.scss +15 -0
- package/tokens/spacing/variables.js +23 -0
- package/tokens/spacing/variables.json +31 -0
- package/tokens/spacing/variables.scss +23 -0
- package/tokens/typography/variables.css +30 -0
- package/tokens/typography/variables.d.ts +26 -0
- package/tokens/typography/variables.dark.css +29 -0
- package/tokens/typography/variables.dark.d.ts +26 -0
- package/tokens/typography/variables.dark.js +28 -0
- package/tokens/typography/variables.dark.json +38 -0
- package/tokens/typography/variables.dark.scss +26 -0
- package/tokens/typography/variables.js +28 -0
- package/tokens/typography/variables.json +38 -0
- package/tokens/typography/variables.scss +26 -0
- package/vite-plugin-generate-components-metadata.js +62 -0
- package/dist/footer-3Y-664-8.js +0 -2
- package/dist/footer-3Y-664-8.js.map +0 -1
- package/dist/footer-DenAcikt.mjs.map +0 -1
- package/dist/hero-banner-B7xrDfzN.mjs.map +0 -1
- package/dist/hero-banner-DthITuQ7.js +0 -2
- package/dist/hero-banner-DthITuQ7.js.map +0 -1
- package/dist/text-field-CYJzQG3h.js +0 -2
- package/dist/useColorScheme-DbTQjxNB.js +0 -2
- package/dist/useThemePortalContainer-D9BYjEvT.js +0 -2
- package/dist/useThemePortalContainer-tFLTaYKN.mjs +0 -9
package/dist/date-picker.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-picker-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-picker-CDBwkAJI.js");exports.DatePicker=e.DatePicker;
|
|
2
2
|
//# sourceMappingURL=date-picker.cjs.js.map
|
package/dist/date-picker.es.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),p=require("react"),H=require("./date-field-
|
|
2
|
-
//# sourceMappingURL=date-range-field-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),p=require("react"),H=require("./date-field-CKxEWHG3.js"),k=require("./field-error-text-FhQulSV5.js"),E=require("./field-helper-text-DSKO-Tce.js"),M=require("./icon-DNHpBTHs-faYHqTXU.js"),z=require("./label-yHK80hhV.js"),G=require("./visually-hidden-C2CKovZx.js"),J=require("./bind-DeUYJ6m9.js");;/* empty css */const K={name:"calendar",svg:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M8 1.6a.9.9 0 0 1 .9.9V7a.9.9 0 0 1-1.8 0V5.9H4a.1.1 0 0 0-.1.1v3.105A.91.91 0 0 1 4 9.1h16.1V6a.1.1 0 0 0-.1-.1h-3.1V7a.9.9 0 1 1-1.8 0V5.9h-3.6a.9.9 0 1 1 0-1.8h3.6V2.5a.9.9 0 1 1 1.8 0v1.6H20c1.05 0 1.9.85 1.9 1.9v14a1.9 1.9 0 0 1-1.9 1.9H4A1.9 1.9 0 0 1 2.1 20V6c0-1.05.85-1.9 1.9-1.9h3.1V2.5a.9.9 0 0 1 .9-.9Zm12.1 9.3H4a.917.917 0 0 1-.1-.005V20a.1.1 0 0 0 .1.1h16a.1.1 0 0 0 .1-.1v-9.1ZM5.6 13.5a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm-10 4a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Z" clip-rule="evenodd"/></svg>',keywords:["calendar"],category:"other"},g=l=>e.jsx(M.b,{...l,svg:K});g.displayName="IconCalendar";const Q={"purpur-date-range-field":"_purpur-date-range-field_1gys2_1","purpur-date-range-field__label":"_purpur-date-range-field__label_1gys2_10","purpur-date-range-field__label--disabled":"_purpur-date-range-field__label--disabled_1gys2_18","purpur-date-range-field__fields":"_purpur-date-range-field__fields_1gys2_21","purpur-date-range-field__field":"_purpur-date-range-field__field_1gys2_21","purpur-date-range-field__field--from":"_purpur-date-range-field__field--from_1gys2_32","purpur-date-range-field__field--to":"_purpur-date-range-field__field--to_1gys2_43"},t=J.c.bind(Q),a="purpur-date-range-field",I=p.forwardRef(({label:l,fromLabel:V,toLabel:N,helperText:o,errorText:s,disabled:r,readOnly:c,required:_,hideRequiredAsterisk:q,fromValue:R,toValue:Z,onFromChange:w,onToChange:B,fromFieldProps:h,toFieldProps:m,fromInputRef:n,toInputRef:C,className:D,...F},A)=>{const d=F["data-testid"],i=p.useId(),b=p.useRef(null),L=f=>{b.current=f,typeof n=="function"?n(f):n&&(n.current=f)},u=l?`${i}-label`:void 0,v=`${i}-from-label`,y=`${i}-to-label`,j=o?`${i}-helper`:void 0,$=s?`${i}-error`:void 0,x=[j,$].filter(Boolean).join(" ")||void 0;return e.jsxs("fieldset",{ref:A,className:t(a,D,{[`${a}--disabled`]:r,[`${a}--readonly`]:c&&!r}),"data-testid":d,children:[l&&e.jsx("legend",{id:u,className:t(`${a}__label`,{[`${a}__label--disabled`]:r}),"data-testid":d&&`${d}-label`,onClick:r?void 0:()=>{b.current?.focus()},children:e.jsxs(z.Label,{disabled:r,children:[_&&!q&&e.jsx("span",{"aria-hidden":!0,children:"*"}),l]})}),e.jsxs(G.VisuallyHidden,{children:[e.jsx("span",{id:v,children:V}),e.jsx("span",{id:y,children:N})]}),e.jsxs("div",{className:t(`${a}__fields`),children:[e.jsx(H.DateField,{...h,ref:L,id:h?.id??`${i}-from`,className:t(`${a}__field`,`${a}__field--from`),startAdornment:e.jsx(g,{size:"sm"}),disabled:r,readOnly:c,required:_,errorText:s,value:R,onChange:w,"aria-labelledby":[u,v].filter(Boolean).join(" ")||void 0,"aria-describedby":x,"data-testid":d&&`${d}-from`}),e.jsx(H.DateField,{...m,ref:C,id:m?.id??`${i}-to`,className:t(`${a}__field`,`${a}__field--to`),disabled:r,readOnly:c,required:_,errorText:s,value:Z,onChange:B,"aria-labelledby":[u,y].filter(Boolean).join(" ")||void 0,"aria-describedby":x,"data-testid":d&&`${d}-to`})]}),o&&e.jsx(E.FieldHelperText,{id:j,disabled:r,children:o}),s&&e.jsx(k.FieldErrorText,{id:$,"data-testid":d&&`${d}-error`,children:s})]})});I.displayName="DateRangeField";exports.DateRangeField=I;exports.r=g;
|
|
2
|
+
//# sourceMappingURL=date-range-field-D7Hn9FGN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-field-D8vLeSwp.js","sources":["../../../components/icon/dist/components/calendar.es.js","../../../components/date-range-field/src/date-range-field.tsx"],"sourcesContent":["import { jsx as h } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst o = {\n name: \"calendar\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8 1.6a.9.9 0 0 1 .9.9V7a.9.9 0 0 1-1.8 0V5.9H4a.1.1 0 0 0-.1.1v3.105A.91.91 0 0 1 4 9.1h16.1V6a.1.1 0 0 0-.1-.1h-3.1V7a.9.9 0 1 1-1.8 0V5.9h-3.6a.9.9 0 1 1 0-1.8h3.6V2.5a.9.9 0 1 1 1.8 0v1.6H20c1.05 0 1.9.85 1.9 1.9v14a1.9 1.9 0 0 1-1.9 1.9H4A1.9 1.9 0 0 1 2.1 20V6c0-1.05.85-1.9 1.9-1.9h3.1V2.5a.9.9 0 0 1 .9-.9Zm12.1 9.3H4a.917.917 0 0 1-.1-.005V20a.1.1 0 0 0 .1.1h16a.1.1 0 0 0 .1-.1v-9.1ZM5.6 13.5a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm-10 4a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"calendar\"],\n category: \"other\"\n}, r = (a) => /* @__PURE__ */ h(e, { ...a, svg: o });\nr.displayName = \"IconCalendar\";\nexport {\n r as IconCalendar\n};\n//# sourceMappingURL=calendar.es.js.map\n","import React, { type ForwardedRef, forwardRef, useId, useRef } from \"react\";\nimport { DateField, type DateFieldProps } from \"@purpur/date-field\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { IconCalendar } from \"@purpur/icon/calendar\";\nimport { Label } from \"@purpur/label\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/date-field/styles\";\nimport \"@purpur/field-error-text/styles\";\nimport \"@purpur/field-helper-text/styles\";\nimport \"@purpur/icon/styles\";\nimport \"@purpur/label/styles\";\nimport styles from \"./date-range-field.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-date-range-field\";\n\ntype IndividualFieldProps = Omit<\n DateFieldProps,\n | \"value\"\n | \"onChange\"\n | \"disabled\"\n | \"readOnly\"\n | \"required\"\n | \"negative\"\n | \"aria-labelledby\"\n | \"aria-describedby\"\n | \"data-testid\"\n | \"startAdornment\"\n | \"className\"\n | \"ref\"\n>;\n\nexport type DateRangeFieldProps = {\n label?: string;\n fromLabel: string;\n toLabel: string;\n helperText?: string;\n errorText?: string;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n hideRequiredAsterisk?: boolean;\n\n fromValue?: Date;\n toValue?: Date;\n onFromChange?: (date: Date | undefined) => void;\n onToChange?: (date: Date | undefined) => void;\n\n fromFieldProps?: IndividualFieldProps;\n toFieldProps?: IndividualFieldProps;\n\n fromInputRef?: React.Ref<HTMLInputElement>;\n toInputRef?: React.Ref<HTMLInputElement>;\n\n className?: string;\n [\"data-testid\"]?: string;\n};\n\nexport const DateRangeField = forwardRef(\n (\n {\n label,\n fromLabel,\n toLabel,\n helperText,\n errorText,\n disabled,\n readOnly,\n required,\n hideRequiredAsterisk,\n fromValue,\n toValue,\n onFromChange,\n onToChange,\n fromFieldProps,\n toFieldProps,\n fromInputRef: externalFromInputRef,\n toInputRef: externalToInputRef,\n className,\n ...rest\n }: DateRangeFieldProps,\n ref: ForwardedRef<HTMLFieldSetElement>\n ) => {\n const dataTestId = rest[\"data-testid\"];\n const baseId = useId();\n const fromInputRef = useRef<HTMLInputElement>(null);\n const setFromInputRef = (node: HTMLInputElement | null) => {\n fromInputRef.current = node;\n if (typeof externalFromInputRef === \"function\") {\n externalFromInputRef(node);\n } else if (externalFromInputRef) {\n (externalFromInputRef as React.MutableRefObject<HTMLInputElement | null>).current =\n node;\n }\n };\n const labelId = label ? `${baseId}-label` : undefined;\n const fromHiddenLabelId = `${baseId}-from-label`;\n const toHiddenLabelId = `${baseId}-to-label`;\n const helperId = helperText ? `${baseId}-helper` : undefined;\n const errorId = errorText ? `${baseId}-error` : undefined;\n\n const describedBy = [helperId, errorId].filter(Boolean).join(\" \") || undefined;\n\n return (\n <fieldset\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--readonly`]: readOnly && !disabled,\n })}\n data-testid={dataTestId}\n >\n {label && (\n // Mimics native <label> click-to-focus; no key handler needed (<legend> is not focusable).\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <legend\n id={labelId}\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--disabled`]: disabled,\n })}\n data-testid={dataTestId && `${dataTestId}-label`}\n onClick={\n disabled\n ? undefined\n : () => {\n fromInputRef.current?.focus();\n }\n }\n >\n <Label disabled={disabled}>\n {required && !hideRequiredAsterisk && <span aria-hidden>*</span>}\n {label}\n </Label>\n </legend>\n )}\n\n <VisuallyHidden>\n <span id={fromHiddenLabelId}>{fromLabel}</span>\n <span id={toHiddenLabelId}>{toLabel}</span>\n </VisuallyHidden>\n\n <div className={cx(`${rootClassName}__fields`)}>\n <DateField\n {...fromFieldProps}\n ref={setFromInputRef}\n id={fromFieldProps?.id ?? `${baseId}-from`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--from`)}\n startAdornment={<IconCalendar size=\"sm\" />}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={fromValue}\n onChange={onFromChange}\n aria-labelledby={[labelId, fromHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-from`}\n />\n <DateField\n {...toFieldProps}\n ref={externalToInputRef}\n id={toFieldProps?.id ?? `${baseId}-to`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--to`)}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={toValue}\n onChange={onToChange}\n aria-labelledby={[labelId, toHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-to`}\n />\n </div>\n\n {helperText && (\n <FieldHelperText id={helperId!} disabled={disabled}>\n {helperText}\n </FieldHelperText>\n )}\n {errorText && (\n <FieldErrorText\n id={errorId}\n data-testid={dataTestId && `${dataTestId}-error`}\n >\n {errorText}\n </FieldErrorText>\n )}\n </fieldset>\n );\n }\n);\n\nDateRangeField.displayName = \"DateRangeField\";\n"],"names":["o","r","a","h","e","cx","c","styles","rootClassName","DateRangeField","forwardRef","label","fromLabel","toLabel","helperText","errorText","disabled","readOnly","required","hideRequiredAsterisk","fromValue","toValue","onFromChange","onToChange","fromFieldProps","toFieldProps","externalFromInputRef","externalToInputRef","className","rest","ref","dataTestId","baseId","useId","fromInputRef","useRef","setFromInputRef","node","labelId","fromHiddenLabelId","toHiddenLabelId","helperId","errorId","describedBy","jsxs","jsx","Label","VisuallyHidden","DateField","IconCalendar","FieldHelperText","FieldErrorText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-range-field-D7Hn9FGN.js","sources":["../../../components/icon/dist/components/calendar.es.js","../../../components/date-range-field/src/date-range-field.tsx"],"sourcesContent":["import { jsx as h } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst o = {\n name: \"calendar\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8 1.6a.9.9 0 0 1 .9.9V7a.9.9 0 0 1-1.8 0V5.9H4a.1.1 0 0 0-.1.1v3.105A.91.91 0 0 1 4 9.1h16.1V6a.1.1 0 0 0-.1-.1h-3.1V7a.9.9 0 1 1-1.8 0V5.9h-3.6a.9.9 0 1 1 0-1.8h3.6V2.5a.9.9 0 1 1 1.8 0v1.6H20c1.05 0 1.9.85 1.9 1.9v14a1.9 1.9 0 0 1-1.9 1.9H4A1.9 1.9 0 0 1 2.1 20V6c0-1.05.85-1.9 1.9-1.9h3.1V2.5a.9.9 0 0 1 .9-.9Zm12.1 9.3H4a.917.917 0 0 1-.1-.005V20a.1.1 0 0 0 .1.1h16a.1.1 0 0 0 .1-.1v-9.1ZM5.6 13.5a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm-10 4a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"calendar\"],\n category: \"other\"\n}, r = (a) => /* @__PURE__ */ h(e, { ...a, svg: o });\nr.displayName = \"IconCalendar\";\nexport {\n r as IconCalendar\n};\n//# sourceMappingURL=calendar.es.js.map\n","import React, { type ForwardedRef, forwardRef, useId, useRef } from \"react\";\nimport { DateField, type DateFieldProps } from \"@purpur/date-field\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { IconCalendar } from \"@purpur/icon/calendar\";\nimport { Label } from \"@purpur/label\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/date-field/styles\";\nimport \"@purpur/field-error-text/styles\";\nimport \"@purpur/field-helper-text/styles\";\nimport \"@purpur/icon/styles\";\nimport \"@purpur/label/styles\";\nimport styles from \"./date-range-field.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-date-range-field\";\n\ntype IndividualFieldProps = Omit<\n DateFieldProps,\n | \"value\"\n | \"onChange\"\n | \"disabled\"\n | \"readOnly\"\n | \"required\"\n | \"negative\"\n | \"aria-labelledby\"\n | \"aria-describedby\"\n | \"data-testid\"\n | \"startAdornment\"\n | \"className\"\n | \"ref\"\n>;\n\nexport type DateRangeFieldProps = {\n label?: string;\n fromLabel: string;\n toLabel: string;\n helperText?: string;\n errorText?: string;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n hideRequiredAsterisk?: boolean;\n\n fromValue?: Date;\n toValue?: Date;\n onFromChange?: (date: Date | undefined) => void;\n onToChange?: (date: Date | undefined) => void;\n\n fromFieldProps?: IndividualFieldProps;\n toFieldProps?: IndividualFieldProps;\n\n fromInputRef?: React.Ref<HTMLInputElement>;\n toInputRef?: React.Ref<HTMLInputElement>;\n\n className?: string;\n [\"data-testid\"]?: string;\n};\n\nexport const DateRangeField = forwardRef(\n (\n {\n label,\n fromLabel,\n toLabel,\n helperText,\n errorText,\n disabled,\n readOnly,\n required,\n hideRequiredAsterisk,\n fromValue,\n toValue,\n onFromChange,\n onToChange,\n fromFieldProps,\n toFieldProps,\n fromInputRef: externalFromInputRef,\n toInputRef: externalToInputRef,\n className,\n ...rest\n }: DateRangeFieldProps,\n ref: ForwardedRef<HTMLFieldSetElement>\n ) => {\n const dataTestId = rest[\"data-testid\"];\n const baseId = useId();\n const fromInputRef = useRef<HTMLInputElement>(null);\n const setFromInputRef = (node: HTMLInputElement | null) => {\n fromInputRef.current = node;\n if (typeof externalFromInputRef === \"function\") {\n externalFromInputRef(node);\n } else if (externalFromInputRef) {\n (externalFromInputRef as React.MutableRefObject<HTMLInputElement | null>).current =\n node;\n }\n };\n const labelId = label ? `${baseId}-label` : undefined;\n const fromHiddenLabelId = `${baseId}-from-label`;\n const toHiddenLabelId = `${baseId}-to-label`;\n const helperId = helperText ? `${baseId}-helper` : undefined;\n const errorId = errorText ? `${baseId}-error` : undefined;\n\n const describedBy = [helperId, errorId].filter(Boolean).join(\" \") || undefined;\n\n return (\n <fieldset\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--readonly`]: readOnly && !disabled,\n })}\n data-testid={dataTestId}\n >\n {label && (\n // Mimics native <label> click-to-focus; no key handler needed (<legend> is not focusable).\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <legend\n id={labelId}\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--disabled`]: disabled,\n })}\n data-testid={dataTestId && `${dataTestId}-label`}\n onClick={\n disabled\n ? undefined\n : () => {\n fromInputRef.current?.focus();\n }\n }\n >\n <Label disabled={disabled}>\n {required && !hideRequiredAsterisk && <span aria-hidden>*</span>}\n {label}\n </Label>\n </legend>\n )}\n\n <VisuallyHidden>\n <span id={fromHiddenLabelId}>{fromLabel}</span>\n <span id={toHiddenLabelId}>{toLabel}</span>\n </VisuallyHidden>\n\n <div className={cx(`${rootClassName}__fields`)}>\n <DateField\n {...fromFieldProps}\n ref={setFromInputRef}\n id={fromFieldProps?.id ?? `${baseId}-from`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--from`)}\n startAdornment={<IconCalendar size=\"sm\" />}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={fromValue}\n onChange={onFromChange}\n aria-labelledby={[labelId, fromHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-from`}\n />\n <DateField\n {...toFieldProps}\n ref={externalToInputRef}\n id={toFieldProps?.id ?? `${baseId}-to`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--to`)}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={toValue}\n onChange={onToChange}\n aria-labelledby={[labelId, toHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-to`}\n />\n </div>\n\n {helperText && (\n <FieldHelperText id={helperId!} disabled={disabled}>\n {helperText}\n </FieldHelperText>\n )}\n {errorText && (\n <FieldErrorText\n id={errorId}\n data-testid={dataTestId && `${dataTestId}-error`}\n >\n {errorText}\n </FieldErrorText>\n )}\n </fieldset>\n );\n }\n);\n\nDateRangeField.displayName = \"DateRangeField\";\n"],"names":["o","r","a","h","e","cx","c","styles","rootClassName","DateRangeField","forwardRef","label","fromLabel","toLabel","helperText","errorText","disabled","readOnly","required","hideRequiredAsterisk","fromValue","toValue","onFromChange","onToChange","fromFieldProps","toFieldProps","externalFromInputRef","externalToInputRef","className","rest","ref","dataTestId","baseId","useId","fromInputRef","useRef","setFromInputRef","node","labelId","fromHiddenLabelId","toHiddenLabelId","helperId","errorId","describedBy","jsxs","jsx","Label","VisuallyHidden","DateField","IconCalendar","FieldHelperText","FieldErrorText"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as a, jsxs as n } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as M, useId as z, useRef as E } from "react";
|
|
3
|
-
import { D as I } from "./date-field-
|
|
3
|
+
import { D as I } from "./date-field-HEFdHIxk.mjs";
|
|
4
4
|
import { F as G } from "./field-error-text-CBSX8dGx.mjs";
|
|
5
5
|
import { F as J } from "./field-helper-text-C5ee4SFV.mjs";
|
|
6
6
|
import { b as K } from "./icon-DNHpBTHs-JfI8WyiR.mjs";
|
|
@@ -139,4 +139,4 @@ export {
|
|
|
139
139
|
Y as D,
|
|
140
140
|
H as r
|
|
141
141
|
};
|
|
142
|
-
//# sourceMappingURL=date-range-field-
|
|
142
|
+
//# sourceMappingURL=date-range-field-_WctWD29.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-field-CFcjprIl.mjs","sources":["../../../components/icon/dist/components/calendar.es.js","../../../components/date-range-field/src/date-range-field.tsx"],"sourcesContent":["import { jsx as h } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst o = {\n name: \"calendar\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8 1.6a.9.9 0 0 1 .9.9V7a.9.9 0 0 1-1.8 0V5.9H4a.1.1 0 0 0-.1.1v3.105A.91.91 0 0 1 4 9.1h16.1V6a.1.1 0 0 0-.1-.1h-3.1V7a.9.9 0 1 1-1.8 0V5.9h-3.6a.9.9 0 1 1 0-1.8h3.6V2.5a.9.9 0 1 1 1.8 0v1.6H20c1.05 0 1.9.85 1.9 1.9v14a1.9 1.9 0 0 1-1.9 1.9H4A1.9 1.9 0 0 1 2.1 20V6c0-1.05.85-1.9 1.9-1.9h3.1V2.5a.9.9 0 0 1 .9-.9Zm12.1 9.3H4a.917.917 0 0 1-.1-.005V20a.1.1 0 0 0 .1.1h16a.1.1 0 0 0 .1-.1v-9.1ZM5.6 13.5a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm-10 4a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"calendar\"],\n category: \"other\"\n}, r = (a) => /* @__PURE__ */ h(e, { ...a, svg: o });\nr.displayName = \"IconCalendar\";\nexport {\n r as IconCalendar\n};\n//# sourceMappingURL=calendar.es.js.map\n","import React, { type ForwardedRef, forwardRef, useId, useRef } from \"react\";\nimport { DateField, type DateFieldProps } from \"@purpur/date-field\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { IconCalendar } from \"@purpur/icon/calendar\";\nimport { Label } from \"@purpur/label\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/date-field/styles\";\nimport \"@purpur/field-error-text/styles\";\nimport \"@purpur/field-helper-text/styles\";\nimport \"@purpur/icon/styles\";\nimport \"@purpur/label/styles\";\nimport styles from \"./date-range-field.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-date-range-field\";\n\ntype IndividualFieldProps = Omit<\n DateFieldProps,\n | \"value\"\n | \"onChange\"\n | \"disabled\"\n | \"readOnly\"\n | \"required\"\n | \"negative\"\n | \"aria-labelledby\"\n | \"aria-describedby\"\n | \"data-testid\"\n | \"startAdornment\"\n | \"className\"\n | \"ref\"\n>;\n\nexport type DateRangeFieldProps = {\n label?: string;\n fromLabel: string;\n toLabel: string;\n helperText?: string;\n errorText?: string;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n hideRequiredAsterisk?: boolean;\n\n fromValue?: Date;\n toValue?: Date;\n onFromChange?: (date: Date | undefined) => void;\n onToChange?: (date: Date | undefined) => void;\n\n fromFieldProps?: IndividualFieldProps;\n toFieldProps?: IndividualFieldProps;\n\n fromInputRef?: React.Ref<HTMLInputElement>;\n toInputRef?: React.Ref<HTMLInputElement>;\n\n className?: string;\n [\"data-testid\"]?: string;\n};\n\nexport const DateRangeField = forwardRef(\n (\n {\n label,\n fromLabel,\n toLabel,\n helperText,\n errorText,\n disabled,\n readOnly,\n required,\n hideRequiredAsterisk,\n fromValue,\n toValue,\n onFromChange,\n onToChange,\n fromFieldProps,\n toFieldProps,\n fromInputRef: externalFromInputRef,\n toInputRef: externalToInputRef,\n className,\n ...rest\n }: DateRangeFieldProps,\n ref: ForwardedRef<HTMLFieldSetElement>\n ) => {\n const dataTestId = rest[\"data-testid\"];\n const baseId = useId();\n const fromInputRef = useRef<HTMLInputElement>(null);\n const setFromInputRef = (node: HTMLInputElement | null) => {\n fromInputRef.current = node;\n if (typeof externalFromInputRef === \"function\") {\n externalFromInputRef(node);\n } else if (externalFromInputRef) {\n (externalFromInputRef as React.MutableRefObject<HTMLInputElement | null>).current =\n node;\n }\n };\n const labelId = label ? `${baseId}-label` : undefined;\n const fromHiddenLabelId = `${baseId}-from-label`;\n const toHiddenLabelId = `${baseId}-to-label`;\n const helperId = helperText ? `${baseId}-helper` : undefined;\n const errorId = errorText ? `${baseId}-error` : undefined;\n\n const describedBy = [helperId, errorId].filter(Boolean).join(\" \") || undefined;\n\n return (\n <fieldset\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--readonly`]: readOnly && !disabled,\n })}\n data-testid={dataTestId}\n >\n {label && (\n // Mimics native <label> click-to-focus; no key handler needed (<legend> is not focusable).\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <legend\n id={labelId}\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--disabled`]: disabled,\n })}\n data-testid={dataTestId && `${dataTestId}-label`}\n onClick={\n disabled\n ? undefined\n : () => {\n fromInputRef.current?.focus();\n }\n }\n >\n <Label disabled={disabled}>\n {required && !hideRequiredAsterisk && <span aria-hidden>*</span>}\n {label}\n </Label>\n </legend>\n )}\n\n <VisuallyHidden>\n <span id={fromHiddenLabelId}>{fromLabel}</span>\n <span id={toHiddenLabelId}>{toLabel}</span>\n </VisuallyHidden>\n\n <div className={cx(`${rootClassName}__fields`)}>\n <DateField\n {...fromFieldProps}\n ref={setFromInputRef}\n id={fromFieldProps?.id ?? `${baseId}-from`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--from`)}\n startAdornment={<IconCalendar size=\"sm\" />}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={fromValue}\n onChange={onFromChange}\n aria-labelledby={[labelId, fromHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-from`}\n />\n <DateField\n {...toFieldProps}\n ref={externalToInputRef}\n id={toFieldProps?.id ?? `${baseId}-to`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--to`)}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={toValue}\n onChange={onToChange}\n aria-labelledby={[labelId, toHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-to`}\n />\n </div>\n\n {helperText && (\n <FieldHelperText id={helperId!} disabled={disabled}>\n {helperText}\n </FieldHelperText>\n )}\n {errorText && (\n <FieldErrorText\n id={errorId}\n data-testid={dataTestId && `${dataTestId}-error`}\n >\n {errorText}\n </FieldErrorText>\n )}\n </fieldset>\n );\n }\n);\n\nDateRangeField.displayName = \"DateRangeField\";\n"],"names":["o","r","a","h","e","cx","c","styles","rootClassName","DateRangeField","forwardRef","label","fromLabel","toLabel","helperText","errorText","disabled","readOnly","required","hideRequiredAsterisk","fromValue","toValue","onFromChange","onToChange","fromFieldProps","toFieldProps","externalFromInputRef","externalToInputRef","className","rest","ref","dataTestId","baseId","useId","fromInputRef","useRef","setFromInputRef","node","labelId","fromHiddenLabelId","toHiddenLabelId","helperId","errorId","describedBy","jsxs","jsx","Label","VisuallyHidden","DateField","IconCalendar","FieldHelperText","FieldErrorText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-range-field-_WctWD29.mjs","sources":["../../../components/icon/dist/components/calendar.es.js","../../../components/date-range-field/src/date-range-field.tsx"],"sourcesContent":["import { jsx as h } from \"react/jsx-runtime\";\nimport { I as e } from \"../icon-DNHpBTHs.mjs\";\nconst o = {\n name: \"calendar\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M8 1.6a.9.9 0 0 1 .9.9V7a.9.9 0 0 1-1.8 0V5.9H4a.1.1 0 0 0-.1.1v3.105A.91.91 0 0 1 4 9.1h16.1V6a.1.1 0 0 0-.1-.1h-3.1V7a.9.9 0 1 1-1.8 0V5.9h-3.6a.9.9 0 1 1 0-1.8h3.6V2.5a.9.9 0 1 1 1.8 0v1.6H20c1.05 0 1.9.85 1.9 1.9v14a1.9 1.9 0 0 1-1.9 1.9H4A1.9 1.9 0 0 1 2.1 20V6c0-1.05.85-1.9 1.9-1.9h3.1V2.5a.9.9 0 0 1 .9-.9Zm12.1 9.3H4a.917.917 0 0 1-.1-.005V20a.1.1 0 0 0 .1.1h16a.1.1 0 0 0 .1-.1v-9.1ZM5.6 13.5a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm-10 4a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Zm5 0a.9.9 0 0 1 .9-.9h1a.9.9 0 1 1 0 1.8h-1a.9.9 0 0 1-.9-.9Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"calendar\"],\n category: \"other\"\n}, r = (a) => /* @__PURE__ */ h(e, { ...a, svg: o });\nr.displayName = \"IconCalendar\";\nexport {\n r as IconCalendar\n};\n//# sourceMappingURL=calendar.es.js.map\n","import React, { type ForwardedRef, forwardRef, useId, useRef } from \"react\";\nimport { DateField, type DateFieldProps } from \"@purpur/date-field\";\nimport { FieldErrorText } from \"@purpur/field-error-text\";\nimport { FieldHelperText } from \"@purpur/field-helper-text\";\nimport { IconCalendar } from \"@purpur/icon/calendar\";\nimport { Label } from \"@purpur/label\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport c from \"classnames/bind\";\n\nimport \"@purpur/date-field/styles\";\nimport \"@purpur/field-error-text/styles\";\nimport \"@purpur/field-helper-text/styles\";\nimport \"@purpur/icon/styles\";\nimport \"@purpur/label/styles\";\nimport styles from \"./date-range-field.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-date-range-field\";\n\ntype IndividualFieldProps = Omit<\n DateFieldProps,\n | \"value\"\n | \"onChange\"\n | \"disabled\"\n | \"readOnly\"\n | \"required\"\n | \"negative\"\n | \"aria-labelledby\"\n | \"aria-describedby\"\n | \"data-testid\"\n | \"startAdornment\"\n | \"className\"\n | \"ref\"\n>;\n\nexport type DateRangeFieldProps = {\n label?: string;\n fromLabel: string;\n toLabel: string;\n helperText?: string;\n errorText?: string;\n disabled?: boolean;\n readOnly?: boolean;\n required?: boolean;\n hideRequiredAsterisk?: boolean;\n\n fromValue?: Date;\n toValue?: Date;\n onFromChange?: (date: Date | undefined) => void;\n onToChange?: (date: Date | undefined) => void;\n\n fromFieldProps?: IndividualFieldProps;\n toFieldProps?: IndividualFieldProps;\n\n fromInputRef?: React.Ref<HTMLInputElement>;\n toInputRef?: React.Ref<HTMLInputElement>;\n\n className?: string;\n [\"data-testid\"]?: string;\n};\n\nexport const DateRangeField = forwardRef(\n (\n {\n label,\n fromLabel,\n toLabel,\n helperText,\n errorText,\n disabled,\n readOnly,\n required,\n hideRequiredAsterisk,\n fromValue,\n toValue,\n onFromChange,\n onToChange,\n fromFieldProps,\n toFieldProps,\n fromInputRef: externalFromInputRef,\n toInputRef: externalToInputRef,\n className,\n ...rest\n }: DateRangeFieldProps,\n ref: ForwardedRef<HTMLFieldSetElement>\n ) => {\n const dataTestId = rest[\"data-testid\"];\n const baseId = useId();\n const fromInputRef = useRef<HTMLInputElement>(null);\n const setFromInputRef = (node: HTMLInputElement | null) => {\n fromInputRef.current = node;\n if (typeof externalFromInputRef === \"function\") {\n externalFromInputRef(node);\n } else if (externalFromInputRef) {\n (externalFromInputRef as React.MutableRefObject<HTMLInputElement | null>).current =\n node;\n }\n };\n const labelId = label ? `${baseId}-label` : undefined;\n const fromHiddenLabelId = `${baseId}-from-label`;\n const toHiddenLabelId = `${baseId}-to-label`;\n const helperId = helperText ? `${baseId}-helper` : undefined;\n const errorId = errorText ? `${baseId}-error` : undefined;\n\n const describedBy = [helperId, errorId].filter(Boolean).join(\" \") || undefined;\n\n return (\n <fieldset\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--disabled`]: disabled,\n [`${rootClassName}--readonly`]: readOnly && !disabled,\n })}\n data-testid={dataTestId}\n >\n {label && (\n // Mimics native <label> click-to-focus; no key handler needed (<legend> is not focusable).\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <legend\n id={labelId}\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--disabled`]: disabled,\n })}\n data-testid={dataTestId && `${dataTestId}-label`}\n onClick={\n disabled\n ? undefined\n : () => {\n fromInputRef.current?.focus();\n }\n }\n >\n <Label disabled={disabled}>\n {required && !hideRequiredAsterisk && <span aria-hidden>*</span>}\n {label}\n </Label>\n </legend>\n )}\n\n <VisuallyHidden>\n <span id={fromHiddenLabelId}>{fromLabel}</span>\n <span id={toHiddenLabelId}>{toLabel}</span>\n </VisuallyHidden>\n\n <div className={cx(`${rootClassName}__fields`)}>\n <DateField\n {...fromFieldProps}\n ref={setFromInputRef}\n id={fromFieldProps?.id ?? `${baseId}-from`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--from`)}\n startAdornment={<IconCalendar size=\"sm\" />}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={fromValue}\n onChange={onFromChange}\n aria-labelledby={[labelId, fromHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-from`}\n />\n <DateField\n {...toFieldProps}\n ref={externalToInputRef}\n id={toFieldProps?.id ?? `${baseId}-to`}\n className={cx(`${rootClassName}__field`, `${rootClassName}__field--to`)}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n errorText={errorText}\n value={toValue}\n onChange={onToChange}\n aria-labelledby={[labelId, toHiddenLabelId].filter(Boolean).join(\" \") || undefined}\n aria-describedby={describedBy}\n data-testid={dataTestId && `${dataTestId}-to`}\n />\n </div>\n\n {helperText && (\n <FieldHelperText id={helperId!} disabled={disabled}>\n {helperText}\n </FieldHelperText>\n )}\n {errorText && (\n <FieldErrorText\n id={errorId}\n data-testid={dataTestId && `${dataTestId}-error`}\n >\n {errorText}\n </FieldErrorText>\n )}\n </fieldset>\n );\n }\n);\n\nDateRangeField.displayName = \"DateRangeField\";\n"],"names":["o","r","a","h","e","cx","c","styles","rootClassName","DateRangeField","forwardRef","label","fromLabel","toLabel","helperText","errorText","disabled","readOnly","required","hideRequiredAsterisk","fromValue","toValue","onFromChange","onToChange","fromFieldProps","toFieldProps","externalFromInputRef","externalToInputRef","className","rest","ref","dataTestId","baseId","useId","fromInputRef","useRef","setFromInputRef","node","labelId","fromHiddenLabelId","toHiddenLabelId","helperId","errorId","describedBy","jsxs","jsx","Label","VisuallyHidden","DateField","IconCalendar","FieldHelperText","FieldErrorText"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-range-field-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-range-field-D7Hn9FGN.js");exports.DateRangeField=e.DateRangeField;
|
|
2
2
|
//# sourceMappingURL=date-range-field.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const r=require("react/jsx-runtime"),_=require("react"),j=require("./index-2cFVyGXq.js");require("./ThemeProvider-D7oXcAde.js");const wr=require("./useThemePortalContainer-D9BYjEvT.js"),O=require("./bind-DeUYJ6m9.js"),E=require("./button-DmybVApa.js"),L=require("./heading-drD5ugCC.js"),fr=require("./chevron-left.es-B0vPg5XM.js"),hr=require("./close.es-VL3lKi1O.js"),G=require("./visually-hidden-C2CKovZx.js"),T=require("./index-CoR7YA3H.js"),Z=_.createContext(null),mr="_slideUp_9zrj7_1",jr="_slideDown_9zrj7_1",$r="_slideInRight_9zrj7_1",vr="_slideInLeft_9zrj7_1",xr="_slideOutRight_9zrj7_1",yr="_slideOutLeft_9zrj7_1",gr="_fadeIn_9zrj7_1",br="_fadeOut_9zrj7_1",Nr={"purpur-drawer-content":"_purpur-drawer-content_9zrj7_1",slideUp:mr,slideDown:jr,"purpur-drawer-content--left":"_purpur-drawer-content--left_9zrj7_21","purpur-drawer-content--right":"_purpur-drawer-content--right_9zrj7_24","purpur-drawer-content--fit-to-content":"_purpur-drawer-content--fit-to-content_9zrj7_27",slideInRight:$r,slideInLeft:vr,slideOutRight:xr,slideOutLeft:yr,"purpur-drawer-content__content-container":"_purpur-drawer-content__content-container_9zrj7_63","purpur-drawer-content__description":"_purpur-drawer-content__description_9zrj7_68","purpur-drawer-content--ai":"_purpur-drawer-content--ai_9zrj7_78","purpur-drawer-overlay":"_purpur-drawer-overlay_9zrj7_82",fadeIn:gr,fadeOut:br},Dr={"purpur-drawer-container--header":"_purpur-drawer-container--header_1csed_1","purpur-drawer-container--ai":"_purpur-drawer-container--ai_1csed_4","purpur-drawer-container--body":"_purpur-drawer-container--body_1csed_7","purpur-drawer-container--sticky":"_purpur-drawer-container--sticky_1csed_15","purpur-drawer-container--footer":"_purpur-drawer-container--footer_1csed_23"},Pr=O.c.bind(Dr),M="purpur-drawer-container",C=_.forwardRef(({["data-testid"]:e="purpur-drawer-container",children:a,className:s,drawerVariant:n="default",variant:d="body",stickyFooter:l,...o},u)=>{const p=Pr([M,{[`${M}--${d}`]:d,[`${M}--sticky`]:l,[`${M}--ai`]:n==="ai"},s]);return r.jsx("div",{className:p,"data-testid":e,ref:u,...o,children:a})});C.displayName="DrawerContainer";const zr={"purpur-drawer-frame":"_purpur-drawer-frame_vjt35_1","purpur-drawer-frame--ai":"_purpur-drawer-frame--ai_vjt35_11","purpur-drawer-frame--without-back-button":"_purpur-drawer-frame--without-back-button_vjt35_14","purpur-drawer-frame__header":"_purpur-drawer-frame__header_vjt35_14","purpur-drawer-frame--with-back-button":"_purpur-drawer-frame--with-back-button_vjt35_17","purpur-drawer-frame--left":"_purpur-drawer-frame--left_vjt35_21","purpur-drawer-frame--right":"_purpur-drawer-frame--right_vjt35_25","purpur-drawer-frame--sticky-footer":"_purpur-drawer-frame--sticky-footer_vjt35_36","purpur-drawer-frame__body":"_purpur-drawer-frame__body_vjt35_42","purpur-drawer-frame--fit-to-content":"_purpur-drawer-frame--fit-to-content_vjt35_46","purpur-drawer-frame__footer":"_purpur-drawer-frame__footer_vjt35_55","purpur-drawer-frame__content-container":"_purpur-drawer-frame__content-container_vjt35_58","purpur-drawer-frame__content-container--no-footer":"_purpur-drawer-frame__content-container--no-footer_vjt35_63"},Sr={"purpur-drawer-handle":"_purpur-drawer-handle_lz3ca_1","purpur-drawer-handle--ai":"_purpur-drawer-handle--ai_lz3ca_22"},Ar=(e,a,s,n,d,l)=>({onPointerDown:t=>{e.current={y:t.clientY}},onPointerMove:t=>{if(!e.current)return;const i=t.clientY-e.current.y,w=!!a.current,f=Math.max(0,i),$=t.pointerType==="touch"?10:2,c={y:f},g={originalEvent:t,delta:c};w?(a.current=c,n(g)):J(c,0)?(a.current=c,s(),t.target.setPointerCapture(t.pointerId)):Math.abs(i)>$&&(e.current=null)},onPointerUp:t=>{const i=a.current,w=t.target;if(w.hasPointerCapture(t.pointerId)&&w.releasePointerCapture(t.pointerId),a.current=null,e.current=null,i){const f=t.currentTarget,$={originalEvent:t,delta:i};J(i,0)&&i.y>200?l($):d(),f.addEventListener("click",c=>c.preventDefault(),{once:!0})}}}),J=(e,a=0)=>Math.abs(e.y)>a,Cr=O.c.bind(Sr),Q="purpur-drawer-handle",rr=_.forwardRef(({["data-testid"]:e="purpur-drawer-handle",className:a,onSwipeStart:s,onSwipeMove:n,onSwipeCancel:d,onSwipeEnd:l,variant:o="default",...u},p)=>{const t=Cr([Q,{[`${Q}--ai`]:o==="ai"},a]),i=_.useRef(null),w=_.useRef(null),{onPointerDown:f,onPointerMove:$,onPointerUp:c}=Ar(w,i,s,n,d,l);return r.jsx("div",{className:t,"data-testid":e,onPointerDown:f,onPointerMove:$,onPointerUp:c,ref:p,...u})});rr.displayName="DrawerHandle";const Or={"purpur-drawer-header":"_purpur-drawer-header_1dlfk_1","purpur-drawer-header__row":"_purpur-drawer-header__row_1dlfk_4","purpur-drawer-header__row--with-back-button":"_purpur-drawer-header__row--with-back-button_1dlfk_7","purpur-drawer-header__left":"_purpur-drawer-header__left_1dlfk_10","purpur-drawer-header__right":"_purpur-drawer-header__right_1dlfk_13","purpur-drawer-header__close-button":"_purpur-drawer-header__close-button_1dlfk_16","purpur-drawer-header__back-button--only-icon":"_purpur-drawer-header__back-button--only-icon_1dlfk_27","purpur-drawer-header__title":"_purpur-drawer-header__title_1dlfk_30"},b=O.c.bind(Or),y="purpur-drawer-header",er=_.forwardRef(({["data-testid"]:e="purpur-drawer-header",backButton:a,backButtonText:s,backButtonOnlyIcon:n,className:d,closeButtonAriaLabel:l,headerContent:o,onBackButtonClick:u,onCloseClick:p,title:t,variant:i="default",...w},f)=>{const $=b([y,{[`${y}--ai`]:i==="ai"},d]),c=!!(a&&s&&u),g=i==="ai",V=p?_.Fragment:j.Close;return r.jsxs("div",{className:$,"data-testid":e,ref:f,...w,children:[r.jsxs("div",{className:b([`${y}__row`,{[`${y}__row--with-back-button`]:c}]),"data-testid":`${e}-row`,children:[r.jsx("div",{className:b(`${y}__left`),children:c?r.jsxs(E.Button,{"aria-label":n?s:"",className:b([`${y}__back-button`,{[`${y}__back-button--only-icon`]:n}]),"data-testid":`${e}-back-button`,iconOnly:n,negative:g,onClick:u,size:"sm",variant:n?E.BUTTON_VARIANT.TERTIARY_PURPLE:E.BUTTON_VARIANT.TEXT,children:[r.jsx(fr.l,{size:"sm"}),!n&&s]}):o?r.jsxs(r.Fragment,{children:[o,r.jsx(G.VisuallyHidden,{asChild:!0,children:r.jsx(j.Title,{children:t})})]}):r.jsx(j.Title,{asChild:!0,children:r.jsx(L.Heading,{className:b(`${y}__title`),"data-testid":`${e}-title`,negative:g,tag:"h2",variant:L.DisplayVariant.DISPLAY10,tabIndex:-1,children:t})})}),r.jsx("div",{className:b(`${y}__right`),children:r.jsx(V,{...p?{}:{asChild:!0},children:r.jsx(E.Button,{"aria-label":l,className:b(`${y}__close-button`),iconOnly:!0,negative:g,onClick:p,size:"sm",variant:E.BUTTON_VARIANT.TERTIARY_PURPLE,children:r.jsx(hr.r,{size:"sm"})})})})]}),c&&(o?r.jsxs(r.Fragment,{children:[o,r.jsx(G.VisuallyHidden,{asChild:!0,children:r.jsx(j.Title,{children:t})})]}):r.jsx(j.Title,{asChild:!0,children:r.jsx(L.Heading,{"data-testid":`${e}-title-with-back-button`,className:b(`${y}__title`),negative:g,tag:"h2",tabIndex:-1,variant:L.DisplayVariant.DISPLAY10,children:t})}))]})});er.displayName="DrawerHeader";const Vr={"purpur-drawer-scroll-area__root":"_purpur-drawer-scroll-area__root_vzgxi_1","purpur-drawer-scroll-area__root--fit-to-content":"_purpur-drawer-scroll-area__root--fit-to-content_vzgxi_4","purpur-drawer-scroll-area__viewport":"_purpur-drawer-scroll-area__viewport_vzgxi_10","purpur-drawer-scroll-area__scrollbar":"_purpur-drawer-scroll-area__scrollbar_vzgxi_14","purpur-drawer-scroll-area--ai":"_purpur-drawer-scroll-area--ai_vzgxi_25","purpur-drawer-scroll-area__thumb":"_purpur-drawer-scroll-area__thumb_vzgxi_29"},q=O.c.bind(Vr),D="purpur-drawer-scroll-area",F=_.forwardRef(({["data-testid"]:e="purpur-drawer-scroll-area",children:a,className:s,drawerVariant:n="default",fitToContent:d=!1,...l},o)=>{const u=q([D,{[`${D}--ai`]:n==="ai"},s]);return r.jsx("div",{className:u,"data-testid":e,ref:o,...l,children:r.jsxs(T.Root,{className:q(`${D}__root`,{[`${D}__root--fit-to-content`]:d}),children:[r.jsx(T.Viewport,{className:q(`${D}__viewport`),children:a}),r.jsx(T.Scrollbar,{className:q(`${D}__scrollbar`),orientation:"vertical",children:r.jsx(T.Thumb,{className:q(`${D}__thumb`)})})]})})});F.displayName="DrawerScrollArea";const S=O.c.bind(zr),h="purpur-drawer-frame",tr=_.forwardRef(({["data-testid"]:e="purpur-drawer-frame",backButton:a,backButtonText:s,backButtonOnlyIcon:n,children:d,className:l,closeButtonAriaLabel:o,fitToContent:u=!1,footerContent:p,headerContent:t,onBackButtonClick:i,onCloseClick:w,onSwipeStart:f,onSwipeMove:$,onSwipeCancel:c,onSwipeEnd:g,title:V,stickyFooter:v,position:P="right",variant:m="default",...z},k)=>{const R=!!(a&&s&&i),H=m==="ai",Y=S([h,{[`${h}--fit-to-content`]:u,[`${h}--sticky-footer`]:v,[`${h}--left`]:P==="left",[`${h}--right`]:P==="right",[`${h}--without-back-button`]:!R,[`${h}--with-back-button`]:R,[`${h}--ai`]:H},l]);return r.jsxs("div",{className:Y,"data-testid":e,ref:k,...z,children:[r.jsx(rr,{onSwipeStart:f,onSwipeMove:$,onSwipeCancel:c,onSwipeEnd:g,variant:m}),r.jsx(C,{className:S(`${h}__header`),variant:"header",stickyFooter:v,drawerVariant:m,children:r.jsx(er,{title:V,headerContent:t,backButtonOnlyIcon:n,backButton:a,backButtonText:s,closeButtonAriaLabel:o,onBackButtonClick:i,onCloseClick:w,variant:m})}),v?r.jsxs(r.Fragment,{children:[r.jsx(F,{className:S(`${h}__body`),"data-testid":`${e}-sticky-footer-scroll-area`,fitToContent:u,drawerVariant:m,children:r.jsx(C,{stickyFooter:!0,drawerVariant:m,children:d})}),p&&r.jsx(C,{className:S(`${h}__footer`),"data-testid":`${e}-sticky-footer`,variant:"footer",stickyFooter:v,drawerVariant:m,children:p})]}):r.jsx(F,{className:S(`${h}__body`),"data-testid":`${e}-scroll-area`,fitToContent:u,drawerVariant:m,children:r.jsxs("div",{className:S([`${h}__content-container`,{[`${h}__content-container--no-footer`]:!p}]),children:[r.jsx(C,{stickyFooter:v,drawerVariant:m,children:d}),p&&r.jsx(C,{"data-testid":`${e}-footer`,stickyFooter:v,variant:"footer",drawerVariant:m,children:p})]})})]})});tr.displayName="DrawerFrame";const kr=(e,a)=>({onSwipeStart:()=>{e.current&&e.current.setAttribute("data-swipe","start")},onSwipeMove:o=>{if(!e.current)return;const{y:u}=o.delta;e.current.setAttribute("data-swipe","move"),e.current.style.setProperty("--purpur-drawer-swipe-move-y",`${u}px`)},onSwipeCancel:()=>{e.current&&(e.current.setAttribute("data-swipe","cancel"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.removeProperty("--purpur-drawer-swipe-end-y"))},onSwipeEnd:o=>{if(!e.current)return;const{y:u}=o.delta;e.current.setAttribute("data-swipe","end"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.setProperty("--purpur-drawer-swipe-end-y",`${u}px`),a?.(!1)}}),A=O.c.bind(Nr),N="purpur-drawer-content",ar=_.forwardRef(({["data-testid"]:e="purpur-drawer-content",backButton:a=!1,backButtonText:s,backButtonOnlyIcon:n=!1,bodyText:d,children:l,className:o,closeButtonAriaLabel:u,container:p,disableCloseOnClickOutside:t=!1,fitToContent:i=!1,footerContent:w,headerContent:f,onBackButtonClick:$,onCloseClick:c,stickyFooter:g=!1,title:V,zIndex:v,position:P="right",...m},z)=>{const k=_.useContext(Z),R=k?.variant??"default",H=k?.isModal??!0,Y=wr.useThemePortalContainer(),I=p===void 0?Y:p??void 0,sr=A([N,{[`${N}--fit-to-content`]:i,[`${N}--left`]:P==="left",[`${N}--right`]:P==="right",[`${N}--ai`]:R==="ai"},o]),K=_.useRef(null),W=_.useRef(null),or=x=>{W.current=x,typeof z=="function"?z(x):z&&(z.current=x)},{onSwipeStart:ur,onSwipeMove:ir,onSwipeCancel:dr,onSwipeEnd:cr}=kr(W,k?.onOpenChange??null),lr=x=>{if(t){x.preventDefault();return}c&&(x.preventDefault(),c())},pr=x=>{c&&(x.preventDefault(),c())},_r=()=>{const x=K.current;if(x){const B=x.querySelector("h2");B&&setTimeout(()=>{B.focus()})}},X=r.jsx(j.Content,{onPointerDownOutside:lr,onEscapeKeyDown:pr,onOpenAutoFocus:_r,className:sr,"data-testid":e,ref:or,...!d&&{"aria-describedby":void 0},...m,children:r.jsx(tr,{backButton:a,backButtonText:s,backButtonOnlyIcon:n,closeButtonAriaLabel:u,className:A(`${N}__drawer-frame`),fitToContent:i,footerContent:w,headerContent:f,ref:K,onBackButtonClick:$,onCloseClick:c,onSwipeStart:ur,onSwipeMove:ir,onSwipeCancel:dr,onSwipeEnd:cr,stickyFooter:g,title:V,position:P,variant:R,children:d?r.jsxs("div",{className:A(`${N}__content-container`),children:[r.jsx(j.Description,{className:A(`${N}__description`),"data-testid":`${e}-description`,children:d}),r.jsx("div",{children:l})]}):l})});return H?r.jsx(j.Portal,{container:I,children:r.jsx(j.Overlay,{className:A("purpur-drawer-overlay"),style:v?{zIndex:v}:void 0,"data-testid":`${e}-overlay`,children:X})}):r.jsx(j.Portal,{container:I,children:r.jsx("div",{className:A("purpur-drawer-overlay"),style:v?{zIndex:v}:void 0,"data-testid":`${e}-overlay`,children:X})})});ar.displayName="DrawerContent";const nr=_.forwardRef(({["data-testid"]:e="purpur-drawer-trigger",children:a,...s},n)=>r.jsx(j.Trigger,{asChild:!0,"data-testid":e,ref:n,...s,children:a}));nr.displayName="DrawerTrigger";const U=({["data-testid"]:e="purpur-drawer",children:a,className:s,isModal:n=!0,onOpenChange:d,open:l=!1,variant:o="default",...u})=>{const[p,t]=_.useState(l),i=f=>{t(f),d?.(f)};_.useEffect(()=>{t(l)},[l]);const w={isModal:n,onOpenChange:i,variant:o};return r.jsx(Z.Provider,{value:w,children:r.jsx("div",{className:s,"data-testid":e,...u,children:r.jsx(j.Root,{open:p,onOpenChange:i,modal:n,children:a})})})};U.Trigger=nr;U.Content=ar;U.displayName="Drawer";exports.Drawer=U;
|
|
2
|
-
//# sourceMappingURL=drawer-
|
|
1
|
+
"use strict";const r=require("react/jsx-runtime"),_=require("react"),j=require("./index-2cFVyGXq.js");require("./ThemeProvider-BJGm3zai.js");const wr=require("./useThemePortalContainer-CUcqV327.js"),O=require("./bind-DeUYJ6m9.js"),E=require("./button-DmybVApa.js"),L=require("./heading-drD5ugCC.js"),fr=require("./chevron-left.es-B0vPg5XM.js"),hr=require("./close.es-VL3lKi1O.js"),G=require("./visually-hidden-C2CKovZx.js"),T=require("./index-CoR7YA3H.js"),Z=_.createContext(null),mr="_slideUp_9zrj7_1",jr="_slideDown_9zrj7_1",$r="_slideInRight_9zrj7_1",vr="_slideInLeft_9zrj7_1",xr="_slideOutRight_9zrj7_1",yr="_slideOutLeft_9zrj7_1",gr="_fadeIn_9zrj7_1",br="_fadeOut_9zrj7_1",Nr={"purpur-drawer-content":"_purpur-drawer-content_9zrj7_1",slideUp:mr,slideDown:jr,"purpur-drawer-content--left":"_purpur-drawer-content--left_9zrj7_21","purpur-drawer-content--right":"_purpur-drawer-content--right_9zrj7_24","purpur-drawer-content--fit-to-content":"_purpur-drawer-content--fit-to-content_9zrj7_27",slideInRight:$r,slideInLeft:vr,slideOutRight:xr,slideOutLeft:yr,"purpur-drawer-content__content-container":"_purpur-drawer-content__content-container_9zrj7_63","purpur-drawer-content__description":"_purpur-drawer-content__description_9zrj7_68","purpur-drawer-content--ai":"_purpur-drawer-content--ai_9zrj7_78","purpur-drawer-overlay":"_purpur-drawer-overlay_9zrj7_82",fadeIn:gr,fadeOut:br},Dr={"purpur-drawer-container--header":"_purpur-drawer-container--header_1csed_1","purpur-drawer-container--ai":"_purpur-drawer-container--ai_1csed_4","purpur-drawer-container--body":"_purpur-drawer-container--body_1csed_7","purpur-drawer-container--sticky":"_purpur-drawer-container--sticky_1csed_15","purpur-drawer-container--footer":"_purpur-drawer-container--footer_1csed_23"},Pr=O.c.bind(Dr),M="purpur-drawer-container",C=_.forwardRef(({["data-testid"]:e="purpur-drawer-container",children:a,className:s,drawerVariant:n="default",variant:d="body",stickyFooter:l,...o},u)=>{const p=Pr([M,{[`${M}--${d}`]:d,[`${M}--sticky`]:l,[`${M}--ai`]:n==="ai"},s]);return r.jsx("div",{className:p,"data-testid":e,ref:u,...o,children:a})});C.displayName="DrawerContainer";const zr={"purpur-drawer-frame":"_purpur-drawer-frame_vjt35_1","purpur-drawer-frame--ai":"_purpur-drawer-frame--ai_vjt35_11","purpur-drawer-frame--without-back-button":"_purpur-drawer-frame--without-back-button_vjt35_14","purpur-drawer-frame__header":"_purpur-drawer-frame__header_vjt35_14","purpur-drawer-frame--with-back-button":"_purpur-drawer-frame--with-back-button_vjt35_17","purpur-drawer-frame--left":"_purpur-drawer-frame--left_vjt35_21","purpur-drawer-frame--right":"_purpur-drawer-frame--right_vjt35_25","purpur-drawer-frame--sticky-footer":"_purpur-drawer-frame--sticky-footer_vjt35_36","purpur-drawer-frame__body":"_purpur-drawer-frame__body_vjt35_42","purpur-drawer-frame--fit-to-content":"_purpur-drawer-frame--fit-to-content_vjt35_46","purpur-drawer-frame__footer":"_purpur-drawer-frame__footer_vjt35_55","purpur-drawer-frame__content-container":"_purpur-drawer-frame__content-container_vjt35_58","purpur-drawer-frame__content-container--no-footer":"_purpur-drawer-frame__content-container--no-footer_vjt35_63"},Sr={"purpur-drawer-handle":"_purpur-drawer-handle_lz3ca_1","purpur-drawer-handle--ai":"_purpur-drawer-handle--ai_lz3ca_22"},Ar=(e,a,s,n,d,l)=>({onPointerDown:t=>{e.current={y:t.clientY}},onPointerMove:t=>{if(!e.current)return;const i=t.clientY-e.current.y,w=!!a.current,f=Math.max(0,i),$=t.pointerType==="touch"?10:2,c={y:f},g={originalEvent:t,delta:c};w?(a.current=c,n(g)):J(c,0)?(a.current=c,s(),t.target.setPointerCapture(t.pointerId)):Math.abs(i)>$&&(e.current=null)},onPointerUp:t=>{const i=a.current,w=t.target;if(w.hasPointerCapture(t.pointerId)&&w.releasePointerCapture(t.pointerId),a.current=null,e.current=null,i){const f=t.currentTarget,$={originalEvent:t,delta:i};J(i,0)&&i.y>200?l($):d(),f.addEventListener("click",c=>c.preventDefault(),{once:!0})}}}),J=(e,a=0)=>Math.abs(e.y)>a,Cr=O.c.bind(Sr),Q="purpur-drawer-handle",rr=_.forwardRef(({["data-testid"]:e="purpur-drawer-handle",className:a,onSwipeStart:s,onSwipeMove:n,onSwipeCancel:d,onSwipeEnd:l,variant:o="default",...u},p)=>{const t=Cr([Q,{[`${Q}--ai`]:o==="ai"},a]),i=_.useRef(null),w=_.useRef(null),{onPointerDown:f,onPointerMove:$,onPointerUp:c}=Ar(w,i,s,n,d,l);return r.jsx("div",{className:t,"data-testid":e,onPointerDown:f,onPointerMove:$,onPointerUp:c,ref:p,...u})});rr.displayName="DrawerHandle";const Or={"purpur-drawer-header":"_purpur-drawer-header_1dlfk_1","purpur-drawer-header__row":"_purpur-drawer-header__row_1dlfk_4","purpur-drawer-header__row--with-back-button":"_purpur-drawer-header__row--with-back-button_1dlfk_7","purpur-drawer-header__left":"_purpur-drawer-header__left_1dlfk_10","purpur-drawer-header__right":"_purpur-drawer-header__right_1dlfk_13","purpur-drawer-header__close-button":"_purpur-drawer-header__close-button_1dlfk_16","purpur-drawer-header__back-button--only-icon":"_purpur-drawer-header__back-button--only-icon_1dlfk_27","purpur-drawer-header__title":"_purpur-drawer-header__title_1dlfk_30"},b=O.c.bind(Or),y="purpur-drawer-header",er=_.forwardRef(({["data-testid"]:e="purpur-drawer-header",backButton:a,backButtonText:s,backButtonOnlyIcon:n,className:d,closeButtonAriaLabel:l,headerContent:o,onBackButtonClick:u,onCloseClick:p,title:t,variant:i="default",...w},f)=>{const $=b([y,{[`${y}--ai`]:i==="ai"},d]),c=!!(a&&s&&u),g=i==="ai",V=p?_.Fragment:j.Close;return r.jsxs("div",{className:$,"data-testid":e,ref:f,...w,children:[r.jsxs("div",{className:b([`${y}__row`,{[`${y}__row--with-back-button`]:c}]),"data-testid":`${e}-row`,children:[r.jsx("div",{className:b(`${y}__left`),children:c?r.jsxs(E.Button,{"aria-label":n?s:"",className:b([`${y}__back-button`,{[`${y}__back-button--only-icon`]:n}]),"data-testid":`${e}-back-button`,iconOnly:n,negative:g,onClick:u,size:"sm",variant:n?E.BUTTON_VARIANT.TERTIARY_PURPLE:E.BUTTON_VARIANT.TEXT,children:[r.jsx(fr.l,{size:"sm"}),!n&&s]}):o?r.jsxs(r.Fragment,{children:[o,r.jsx(G.VisuallyHidden,{asChild:!0,children:r.jsx(j.Title,{children:t})})]}):r.jsx(j.Title,{asChild:!0,children:r.jsx(L.Heading,{className:b(`${y}__title`),"data-testid":`${e}-title`,negative:g,tag:"h2",variant:L.DisplayVariant.DISPLAY10,tabIndex:-1,children:t})})}),r.jsx("div",{className:b(`${y}__right`),children:r.jsx(V,{...p?{}:{asChild:!0},children:r.jsx(E.Button,{"aria-label":l,className:b(`${y}__close-button`),iconOnly:!0,negative:g,onClick:p,size:"sm",variant:E.BUTTON_VARIANT.TERTIARY_PURPLE,children:r.jsx(hr.r,{size:"sm"})})})})]}),c&&(o?r.jsxs(r.Fragment,{children:[o,r.jsx(G.VisuallyHidden,{asChild:!0,children:r.jsx(j.Title,{children:t})})]}):r.jsx(j.Title,{asChild:!0,children:r.jsx(L.Heading,{"data-testid":`${e}-title-with-back-button`,className:b(`${y}__title`),negative:g,tag:"h2",tabIndex:-1,variant:L.DisplayVariant.DISPLAY10,children:t})}))]})});er.displayName="DrawerHeader";const Vr={"purpur-drawer-scroll-area__root":"_purpur-drawer-scroll-area__root_vzgxi_1","purpur-drawer-scroll-area__root--fit-to-content":"_purpur-drawer-scroll-area__root--fit-to-content_vzgxi_4","purpur-drawer-scroll-area__viewport":"_purpur-drawer-scroll-area__viewport_vzgxi_10","purpur-drawer-scroll-area__scrollbar":"_purpur-drawer-scroll-area__scrollbar_vzgxi_14","purpur-drawer-scroll-area--ai":"_purpur-drawer-scroll-area--ai_vzgxi_25","purpur-drawer-scroll-area__thumb":"_purpur-drawer-scroll-area__thumb_vzgxi_29"},q=O.c.bind(Vr),D="purpur-drawer-scroll-area",F=_.forwardRef(({["data-testid"]:e="purpur-drawer-scroll-area",children:a,className:s,drawerVariant:n="default",fitToContent:d=!1,...l},o)=>{const u=q([D,{[`${D}--ai`]:n==="ai"},s]);return r.jsx("div",{className:u,"data-testid":e,ref:o,...l,children:r.jsxs(T.Root,{className:q(`${D}__root`,{[`${D}__root--fit-to-content`]:d}),children:[r.jsx(T.Viewport,{className:q(`${D}__viewport`),children:a}),r.jsx(T.Scrollbar,{className:q(`${D}__scrollbar`),orientation:"vertical",children:r.jsx(T.Thumb,{className:q(`${D}__thumb`)})})]})})});F.displayName="DrawerScrollArea";const S=O.c.bind(zr),h="purpur-drawer-frame",tr=_.forwardRef(({["data-testid"]:e="purpur-drawer-frame",backButton:a,backButtonText:s,backButtonOnlyIcon:n,children:d,className:l,closeButtonAriaLabel:o,fitToContent:u=!1,footerContent:p,headerContent:t,onBackButtonClick:i,onCloseClick:w,onSwipeStart:f,onSwipeMove:$,onSwipeCancel:c,onSwipeEnd:g,title:V,stickyFooter:v,position:P="right",variant:m="default",...z},k)=>{const R=!!(a&&s&&i),H=m==="ai",Y=S([h,{[`${h}--fit-to-content`]:u,[`${h}--sticky-footer`]:v,[`${h}--left`]:P==="left",[`${h}--right`]:P==="right",[`${h}--without-back-button`]:!R,[`${h}--with-back-button`]:R,[`${h}--ai`]:H},l]);return r.jsxs("div",{className:Y,"data-testid":e,ref:k,...z,children:[r.jsx(rr,{onSwipeStart:f,onSwipeMove:$,onSwipeCancel:c,onSwipeEnd:g,variant:m}),r.jsx(C,{className:S(`${h}__header`),variant:"header",stickyFooter:v,drawerVariant:m,children:r.jsx(er,{title:V,headerContent:t,backButtonOnlyIcon:n,backButton:a,backButtonText:s,closeButtonAriaLabel:o,onBackButtonClick:i,onCloseClick:w,variant:m})}),v?r.jsxs(r.Fragment,{children:[r.jsx(F,{className:S(`${h}__body`),"data-testid":`${e}-sticky-footer-scroll-area`,fitToContent:u,drawerVariant:m,children:r.jsx(C,{stickyFooter:!0,drawerVariant:m,children:d})}),p&&r.jsx(C,{className:S(`${h}__footer`),"data-testid":`${e}-sticky-footer`,variant:"footer",stickyFooter:v,drawerVariant:m,children:p})]}):r.jsx(F,{className:S(`${h}__body`),"data-testid":`${e}-scroll-area`,fitToContent:u,drawerVariant:m,children:r.jsxs("div",{className:S([`${h}__content-container`,{[`${h}__content-container--no-footer`]:!p}]),children:[r.jsx(C,{stickyFooter:v,drawerVariant:m,children:d}),p&&r.jsx(C,{"data-testid":`${e}-footer`,stickyFooter:v,variant:"footer",drawerVariant:m,children:p})]})})]})});tr.displayName="DrawerFrame";const kr=(e,a)=>({onSwipeStart:()=>{e.current&&e.current.setAttribute("data-swipe","start")},onSwipeMove:o=>{if(!e.current)return;const{y:u}=o.delta;e.current.setAttribute("data-swipe","move"),e.current.style.setProperty("--purpur-drawer-swipe-move-y",`${u}px`)},onSwipeCancel:()=>{e.current&&(e.current.setAttribute("data-swipe","cancel"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.removeProperty("--purpur-drawer-swipe-end-y"))},onSwipeEnd:o=>{if(!e.current)return;const{y:u}=o.delta;e.current.setAttribute("data-swipe","end"),e.current.style.removeProperty("--purpur-drawer-swipe-move-y"),e.current.style.setProperty("--purpur-drawer-swipe-end-y",`${u}px`),a?.(!1)}}),A=O.c.bind(Nr),N="purpur-drawer-content",ar=_.forwardRef(({["data-testid"]:e="purpur-drawer-content",backButton:a=!1,backButtonText:s,backButtonOnlyIcon:n=!1,bodyText:d,children:l,className:o,closeButtonAriaLabel:u,container:p,disableCloseOnClickOutside:t=!1,fitToContent:i=!1,footerContent:w,headerContent:f,onBackButtonClick:$,onCloseClick:c,stickyFooter:g=!1,title:V,zIndex:v,position:P="right",...m},z)=>{const k=_.useContext(Z),R=k?.variant??"default",H=k?.isModal??!0,Y=wr.useThemePortalContainer(),I=p===void 0?Y:p??void 0,sr=A([N,{[`${N}--fit-to-content`]:i,[`${N}--left`]:P==="left",[`${N}--right`]:P==="right",[`${N}--ai`]:R==="ai"},o]),K=_.useRef(null),W=_.useRef(null),or=x=>{W.current=x,typeof z=="function"?z(x):z&&(z.current=x)},{onSwipeStart:ur,onSwipeMove:ir,onSwipeCancel:dr,onSwipeEnd:cr}=kr(W,k?.onOpenChange??null),lr=x=>{if(t){x.preventDefault();return}c&&(x.preventDefault(),c())},pr=x=>{c&&(x.preventDefault(),c())},_r=()=>{const x=K.current;if(x){const B=x.querySelector("h2");B&&setTimeout(()=>{B.focus()})}},X=r.jsx(j.Content,{onPointerDownOutside:lr,onEscapeKeyDown:pr,onOpenAutoFocus:_r,className:sr,"data-testid":e,ref:or,...!d&&{"aria-describedby":void 0},...m,children:r.jsx(tr,{backButton:a,backButtonText:s,backButtonOnlyIcon:n,closeButtonAriaLabel:u,className:A(`${N}__drawer-frame`),fitToContent:i,footerContent:w,headerContent:f,ref:K,onBackButtonClick:$,onCloseClick:c,onSwipeStart:ur,onSwipeMove:ir,onSwipeCancel:dr,onSwipeEnd:cr,stickyFooter:g,title:V,position:P,variant:R,children:d?r.jsxs("div",{className:A(`${N}__content-container`),children:[r.jsx(j.Description,{className:A(`${N}__description`),"data-testid":`${e}-description`,children:d}),r.jsx("div",{children:l})]}):l})});return H?r.jsx(j.Portal,{container:I,children:r.jsx(j.Overlay,{className:A("purpur-drawer-overlay"),style:v?{zIndex:v}:void 0,"data-testid":`${e}-overlay`,children:X})}):r.jsx(j.Portal,{container:I,children:r.jsx("div",{className:A("purpur-drawer-overlay"),style:v?{zIndex:v}:void 0,"data-testid":`${e}-overlay`,children:X})})});ar.displayName="DrawerContent";const nr=_.forwardRef(({["data-testid"]:e="purpur-drawer-trigger",children:a,...s},n)=>r.jsx(j.Trigger,{asChild:!0,"data-testid":e,ref:n,...s,children:a}));nr.displayName="DrawerTrigger";const U=({["data-testid"]:e="purpur-drawer",children:a,className:s,isModal:n=!0,onOpenChange:d,open:l=!1,variant:o="default",...u})=>{const[p,t]=_.useState(l),i=f=>{t(f),d?.(f)};_.useEffect(()=>{t(l)},[l]);const w={isModal:n,onOpenChange:i,variant:o};return r.jsx(Z.Provider,{value:w,children:r.jsx("div",{className:s,"data-testid":e,...u,children:r.jsx(j.Root,{open:p,onOpenChange:i,modal:n,children:a})})})};U.Trigger=nr;U.Content=ar;U.displayName="Drawer";exports.Drawer=U;
|
|
2
|
+
//# sourceMappingURL=drawer-DyLQfvEh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-DyhsP34o.js","sources":["../../../components/drawer/src/drawer.context.ts","../../../components/drawer/src/drawer-container.tsx","../../../components/drawer/src/use-swipe-tracking.hook.ts","../../../components/drawer/src/drawer-handle.tsx","../../../components/drawer/src/drawer-header.tsx","../../../components/drawer/src/drawer-scroll-area.tsx","../../../components/drawer/src/drawer-frame.tsx","../../../components/drawer/src/use-swipe-to-dismiss.hook.ts","../../../components/drawer/src/drawer-content.tsx","../../../components/drawer/src/drawer-trigger.tsx","../../../components/drawer/src/drawer.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nimport { type DrawerVariant, type OpenHandlerFunction } from \"./types\";\n\nexport type DrawerContextValue = {\n isModal: boolean;\n onOpenChange: OpenHandlerFunction;\n variant: DrawerVariant;\n};\n\nexport const DrawerContext = createContext<DrawerContextValue | null>(null);\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-container.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerContainerProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n drawerVariant?: DrawerVariant;\n stickyFooter: boolean;\n variant?: \"header\" | \"body\" | \"footer\";\n};\n\nconst rootClassName = \"purpur-drawer-container\";\n\nexport const DrawerContainer = forwardRef<HTMLDivElement, DrawerContainerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-container\",\n children,\n className,\n drawerVariant = \"default\",\n variant = \"body\",\n stickyFooter,\n ...props\n },\n ref\n ) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--${variant}`]: variant,\n [`${rootClassName}--sticky`]: stickyFooter,\n [`${rootClassName}--ai`]: drawerVariant === \"ai\",\n },\n className,\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDrawerContainer.displayName = \"DrawerContainer\";\n","import type { PointerEvent, RefObject } from \"react\";\n\nimport { type SwipeEvent } from \"./types\";\n\ntype UseSwipeTracking = {\n onPointerDown(event: PointerEvent): void;\n onPointerMove(event: PointerEvent): void;\n onPointerUp(event: PointerEvent): void;\n};\n\nexport const useSwipeTracking = (\n pointerStartRef: RefObject<{ y: number } | null>,\n swipeDeltaRef: RefObject<{ y: number } | null>,\n onSwipeStart: () => void,\n onSwipeMove: (event: SwipeEvent) => void,\n onSwipeCancel: () => void,\n onSwipeEnd: (event: SwipeEvent) => void\n): UseSwipeTracking => {\n const onPointerDown = (event: PointerEvent) => {\n pointerStartRef.current = { y: event.clientY };\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!pointerStartRef.current) {\n return;\n }\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const clampedY = Math.max(0, y);\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n onSwipeMove(eventDetail);\n } else if (isDeltaInDirection(delta, 0)) {\n swipeDeltaRef.current = delta;\n onSwipeStart();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n };\n const onPointerUp = (event: PointerEvent) => {\n const delta = swipeDeltaRef.current;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const swipeHandle = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, 0) && delta.y > 200) {\n onSwipeEnd(eventDetail);\n } else {\n onSwipeCancel();\n }\n // Prevent click event from triggering on items within the drawer when\n // pointer up is part of a swipe gesture\n swipeHandle.addEventListener(\"click\", (event) => event.preventDefault(), {\n once: true,\n });\n }\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n};\n\nconst isDeltaInDirection = (delta: { y: number }, threshold = 0) => {\n const deltaY = Math.abs(delta.y);\n return deltaY > threshold;\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-handle.module.scss\";\nimport { type DrawerVariant, type SwipeEvent } from \"./types\";\nimport { useSwipeTracking } from \"./use-swipe-tracking.hook\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHandleProps = Omit<BaseProps, \"children\"> & {\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-handle\";\n\nexport const DrawerHandle = forwardRef<HTMLDivElement, DrawerHandleProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-handle\",\n className,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const classes = cx([rootClassName, { [`${rootClassName}--ai`]: variant === \"ai\" }, className]);\n const pointerStartRef = React.useRef<{ y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ y: number } | null>(null);\n const { onPointerDown, onPointerMove, onPointerUp } = useSwipeTracking(\n swipeDeltaRef,\n pointerStartRef,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd\n );\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nDrawerHandle.displayName = \"DrawerHandle\";\n","import React, { forwardRef } from \"react\";\nimport { Button, BUTTON_VARIANT } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { DisplayVariant, Heading } from \"@purpur/heading\";\nimport { IconChevronLeft } from \"@purpur/icon/chevron-left\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-header.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHeaderProps = Omit<BaseProps, \"children\"> & {\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n closeButtonAriaLabel: string;\n headerContent?: React.ReactNode;\n onBackButtonClick?: () => void;\n onCloseClick?: () => void;\n title: string;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-header\";\n\nexport const DrawerHeader = forwardRef<HTMLDivElement, DrawerHeaderProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-header\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n className,\n closeButtonAriaLabel,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n title,\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const classes = cx([rootClassName, { [`${rootClassName}--ai`]: variant === \"ai\" }, className]);\n const hasBackButton = !!(backButton && backButtonText && onBackButtonClick);\n const isAi = variant === \"ai\";\n\n const CloseButtonWrapper = onCloseClick ? React.Fragment : RadixDialog.Close;\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx([\n `${rootClassName}__row`,\n {\n [`${rootClassName}__row--with-back-button`]: hasBackButton,\n },\n ])}\n data-testid={`${dataTestId}-row`}\n >\n <div className={cx(`${rootClassName}__left`)}>\n {hasBackButton ? (\n <Button\n aria-label={backButtonOnlyIcon ? backButtonText : \"\"}\n className={cx([\n `${rootClassName}__back-button`,\n {\n [`${rootClassName}__back-button--only-icon`]: backButtonOnlyIcon,\n },\n ])}\n data-testid={`${dataTestId}-back-button`}\n iconOnly={backButtonOnlyIcon}\n negative={isAi}\n onClick={onBackButtonClick}\n size=\"sm\"\n variant={backButtonOnlyIcon ? BUTTON_VARIANT.TERTIARY_PURPLE : BUTTON_VARIANT.TEXT}\n >\n <IconChevronLeft size=\"sm\" />\n {!backButtonOnlyIcon && backButtonText}\n </Button>\n ) : headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n className={cx(`${rootClassName}__title`)}\n data-testid={`${dataTestId}-title`}\n negative={isAi}\n tag=\"h2\"\n variant={DisplayVariant.DISPLAY10}\n tabIndex={-1}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n )}\n </div>\n\n <div className={cx(`${rootClassName}__right`)}>\n <CloseButtonWrapper {...(onCloseClick ? {} : { asChild: true })}>\n <Button\n aria-label={closeButtonAriaLabel}\n className={cx(`${rootClassName}__close-button`)}\n iconOnly\n negative={isAi}\n onClick={onCloseClick}\n size=\"sm\"\n variant={BUTTON_VARIANT.TERTIARY_PURPLE}\n >\n <IconClose size=\"sm\" />\n </Button>\n </CloseButtonWrapper>\n </div>\n </div>\n {hasBackButton &&\n (headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title-with-back-button`}\n className={cx(`${rootClassName}__title`)}\n negative={isAi}\n tag=\"h2\"\n tabIndex={-1}\n variant={DisplayVariant.DISPLAY10}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n ))}\n </div>\n );\n }\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixScrollArea from \"@radix-ui/react-scroll-area\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-scroll-area.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerScrollAreaProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n drawerVariant?: DrawerVariant;\n fitToContent?: boolean;\n};\n\nconst rootClassName = \"purpur-drawer-scroll-area\";\n\nexport const DrawerScrollArea = forwardRef<HTMLDivElement, DrawerScrollAreaProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-scroll-area\",\n children,\n className,\n drawerVariant = \"default\",\n fitToContent = false,\n ...props\n },\n ref\n ) => {\n const classes = cx([\n rootClassName,\n { [`${rootClassName}--ai`]: drawerVariant === \"ai\" },\n className,\n ]);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <RadixScrollArea.Root\n className={cx(`${rootClassName}__root`, {\n [`${rootClassName}__root--fit-to-content`]: fitToContent,\n })}\n >\n <RadixScrollArea.Viewport className={cx(`${rootClassName}__viewport`)}>\n {children}\n </RadixScrollArea.Viewport>\n <RadixScrollArea.Scrollbar\n className={cx(`${rootClassName}__scrollbar`)}\n orientation=\"vertical\"\n >\n <RadixScrollArea.Thumb className={cx(`${rootClassName}__thumb`)} />\n </RadixScrollArea.Scrollbar>\n </RadixScrollArea.Root>\n </div>\n );\n }\n);\n\nDrawerScrollArea.displayName = \"DrawerScrollArea\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContainer } from \"./drawer-container\";\nimport styles from \"./drawer-frame.module.scss\";\nimport { DrawerHandle } from \"./drawer-handle\";\nimport { DrawerHeader } from \"./drawer-header\";\nimport { DrawerScrollArea } from \"./drawer-scroll-area\";\nimport { type DrawerVariant, type Position, type SwipeEvent } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerFrameProps = Omit<BaseProps, \"children\"> & {\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n children: ReactNode;\n closeButtonAriaLabel: string;\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onBackButtonClick?: () => void;\n onCloseClick?: () => void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n stickyFooter: boolean;\n title: string;\n position?: Position;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-frame\";\n\nexport const DrawerFrame = forwardRef<HTMLDivElement, DrawerFrameProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-frame\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n children,\n className,\n closeButtonAriaLabel,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n title,\n stickyFooter,\n position = \"right\",\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const hasBackButton = !!(backButton && backButtonText && onBackButtonClick);\n const isAi = variant === \"ai\";\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--sticky-footer`]: stickyFooter,\n [`${rootClassName}--left`]: position === \"left\",\n [`${rootClassName}--right`]: position === \"right\",\n [`${rootClassName}--without-back-button`]: !hasBackButton,\n [`${rootClassName}--with-back-button`]: hasBackButton,\n [`${rootClassName}--ai`]: isAi,\n },\n className,\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <DrawerHandle\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n variant={variant}\n />\n <DrawerContainer\n className={cx(`${rootClassName}__header`)}\n variant=\"header\"\n stickyFooter={stickyFooter}\n drawerVariant={variant}\n >\n <DrawerHeader\n title={title}\n headerContent={headerContent}\n backButtonOnlyIcon={backButtonOnlyIcon}\n backButton={backButton}\n backButtonText={backButtonText}\n closeButtonAriaLabel={closeButtonAriaLabel}\n onBackButtonClick={onBackButtonClick}\n onCloseClick={onCloseClick}\n variant={variant}\n />\n </DrawerContainer>\n {stickyFooter ? (\n <>\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-sticky-footer-scroll-area`}\n fitToContent={fitToContent}\n drawerVariant={variant}\n >\n <DrawerContainer stickyFooter drawerVariant={variant}>\n {children}\n </DrawerContainer>\n </DrawerScrollArea>\n {footerContent && (\n <DrawerContainer\n className={cx(`${rootClassName}__footer`)}\n data-testid={`${dataTestId}-sticky-footer`}\n variant=\"footer\"\n stickyFooter={stickyFooter}\n drawerVariant={variant}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </>\n ) : (\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-scroll-area`}\n fitToContent={fitToContent}\n drawerVariant={variant}\n >\n <div\n className={cx([\n `${rootClassName}__content-container`,\n { [`${rootClassName}__content-container--no-footer`]: !footerContent },\n ])}\n >\n <DrawerContainer stickyFooter={stickyFooter} drawerVariant={variant}>\n {children}\n </DrawerContainer>\n {footerContent && (\n <DrawerContainer\n data-testid={`${dataTestId}-footer`}\n stickyFooter={stickyFooter}\n variant=\"footer\"\n drawerVariant={variant}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </div>\n </DrawerScrollArea>\n )}\n </div>\n );\n }\n);\n\nDrawerFrame.displayName = \"DrawerFrame\";\n","import type { RefObject } from \"react\";\n\nimport { type SwipeEvent } from \"./types\";\n\ntype UseSwipeToDismiss = {\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nexport const useSwipeToDismiss = <T extends HTMLElement>(\n containerRef: RefObject<T | null>,\n handleOpenChange: ((open: boolean) => void) | null\n): UseSwipeToDismiss => {\n const onSwipeStart = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"start\");\n };\n const onSwipeMove = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"move\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-move-y\", `${y}px`);\n };\n const onSwipeCancel = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"cancel\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-end-y\");\n };\n const onSwipeEnd = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"end\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-end-y\", `${y}px`);\n handleOpenChange?.(false);\n };\n\n return {\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n };\n};\n","import React, { forwardRef, type ReactNode, useContext, useRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer-content.module.scss\";\nimport { DrawerFrame } from \"./drawer-frame\";\nimport { type Position } from \"./types\";\nimport { useSwipeToDismiss } from \"./use-swipe-to-dismiss.hook\";\n\nconst cx = c.bind(styles);\n\nexport type WithBackButton = {\n backButton: boolean;\n backButtonText: string;\n backButtonOnlyIcon?: boolean;\n onBackButtonClick: () => void;\n};\n\nexport type WithoutBackButton = {\n backButton?: never;\n backButtonText?: never;\n backButtonOnlyIcon?: never;\n onBackButtonClick?: never;\n};\n\nexport type DrawerContentProps = Omit<BaseProps, \"children\"> & {\n bodyText?: string;\n children: ReactNode;\n closeButtonAriaLabel: string;\n /**\n * Optional DOM element to portal the drawer content into. When omitted,\n * the drawer renders inside the nearest `ThemeProvider` so it inherits\n * the active color scheme. Pass `document.body` (or any other element) to\n * override. Pass `null` to fall back to Radix' default (`document.body`).\n */\n container?: HTMLElement | null;\n disableCloseOnClickOutside?: boolean;\n /**\n * If true, the drawer height will fit to its content on small screens.\n */\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onCloseClick?: () => void;\n stickyFooter?: boolean;\n title: string;\n zIndex?: number;\n position?: Position;\n} & (WithoutBackButton | WithBackButton);\n\nconst rootClassName = \"purpur-drawer-content\";\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-content\",\n backButton = false,\n backButtonText,\n backButtonOnlyIcon = false,\n bodyText,\n children,\n className,\n closeButtonAriaLabel,\n container,\n disableCloseOnClickOutside = false,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n stickyFooter = false,\n title,\n zIndex,\n position = \"right\",\n ...props\n },\n ref\n ) => {\n const drawerContext = useContext(DrawerContext);\n const variant = drawerContext?.variant ?? \"default\";\n const isModal = drawerContext?.isModal ?? true;\n const themePortalContainer = useThemePortalContainer();\n const portalContainer =\n container === undefined ? themePortalContainer : container ?? undefined;\n\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--left`]: position === \"left\",\n [`${rootClassName}--right`]: position === \"right\",\n [`${rootClassName}--ai`]: variant === \"ai\",\n },\n className,\n ]);\n\n const drawerFrameRef = useRef<HTMLDivElement>(null);\n const internalDrawerContentRef = useRef<HTMLDivElement>(null);\n\n const setRef = (node: HTMLDivElement | null) => {\n internalDrawerContentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const { onSwipeStart, onSwipeMove, onSwipeCancel, onSwipeEnd } = useSwipeToDismiss(\n internalDrawerContentRef,\n drawerContext?.onOpenChange ?? null\n );\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n return;\n }\n\n if (onCloseClick) {\n event.preventDefault();\n onCloseClick();\n }\n };\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (onCloseClick) {\n event.preventDefault();\n onCloseClick();\n }\n };\n\n const handleInitialFocus = () => {\n const frame = drawerFrameRef.current;\n if (frame) {\n const heading = frame.querySelector(\"h2\");\n\n heading &&\n setTimeout(() => {\n heading.focus();\n });\n }\n };\n\n const dialogContent = (\n <RadixDialog.Content\n onPointerDownOutside={handlePointerDownOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleInitialFocus}\n className={classes}\n data-testid={dataTestId}\n ref={setRef}\n {...(!bodyText && { [\"aria-describedby\"]: undefined })}\n {...props}\n >\n <DrawerFrame\n backButton={backButton}\n backButtonText={backButtonText}\n backButtonOnlyIcon={backButtonOnlyIcon}\n closeButtonAriaLabel={closeButtonAriaLabel}\n className={cx(`${rootClassName}__drawer-frame`)}\n fitToContent={fitToContent}\n footerContent={footerContent}\n headerContent={headerContent}\n ref={drawerFrameRef}\n onBackButtonClick={onBackButtonClick}\n onCloseClick={onCloseClick}\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n stickyFooter={stickyFooter}\n title={title}\n position={position}\n variant={variant}\n >\n {bodyText ? (\n <div className={cx(`${rootClassName}__content-container`)}>\n <RadixDialog.Description\n className={cx(`${rootClassName}__description`)}\n data-testid={`${dataTestId}-description`}\n >\n {bodyText}\n </RadixDialog.Description>\n <div>{children}</div>\n </div>\n ) : (\n children\n )}\n </DrawerFrame>\n </RadixDialog.Content>\n );\n\n if (!isModal) {\n return (\n <RadixDialog.Portal container={portalContainer}>\n <div\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n {dialogContent}\n </div>\n </RadixDialog.Portal>\n );\n }\n\n return (\n <RadixDialog.Portal container={portalContainer}>\n <RadixDialog.Overlay\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n {dialogContent}\n </RadixDialog.Overlay>\n </RadixDialog.Portal>\n );\n }\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nexport type DrawerTriggerProps = Omit<BaseProps<\"button\">, \"children\"> & {\n children: ReactNode;\n};\n\nexport const DrawerTrigger = forwardRef<HTMLButtonElement, DrawerTriggerProps>(\n ({ [\"data-testid\"]: dataTestId = \"purpur-drawer-trigger\", children, ...props }, ref) => {\n return (\n <RadixDialog.Trigger asChild data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </RadixDialog.Trigger>\n );\n }\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n","import React, { type ReactNode, useEffect } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport { DrawerContent } from \"./drawer-content\";\nimport { DrawerTrigger } from \"./drawer-trigger\";\nimport { type DrawerVariant } from \"./types\";\n\nexport type { DrawerVariant };\n\nexport type DrawerProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n /**\n * Whether the drawer should be modal. When `true` (default), focus is trapped\n * and pointer events outside the drawer are disabled. Set to `false` when rendering\n * components that use portals (e.g. DatePicker) inside the drawer.\n */\n isModal?: boolean;\n onOpenChange?: (open: boolean) => void;\n open: boolean;\n variant?: DrawerVariant;\n};\n\nexport type DrawerComponent<P> = React.FunctionComponent<P> & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n};\n\nexport const Drawer: DrawerComponent<DrawerProps> = ({\n [\"data-testid\"]: dataTestId = \"purpur-drawer\",\n children,\n className,\n isModal = true,\n onOpenChange,\n open = false,\n variant = \"default\",\n ...props\n}: DrawerProps) => {\n const [_open, _setOpen] = React.useState(open);\n\n const handleOpenChange = (newOpen: boolean) => {\n _setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n useEffect(() => {\n _setOpen(open);\n }, [open]);\n\n const contextValue = { isModal, onOpenChange: handleOpenChange, variant };\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <div className={className} data-testid={dataTestId} {...props}>\n <RadixDialog.Root open={_open} onOpenChange={handleOpenChange} modal={isModal}>\n {children}\n </RadixDialog.Root>\n </div>\n </DrawerContext.Provider>\n );\n};\n\nDrawer.Trigger = DrawerTrigger;\nDrawer.Content = DrawerContent;\nDrawer.displayName = \"Drawer\";\n"],"names":["DrawerContext","createContext","cx","c","styles","rootClassName","DrawerContainer","forwardRef","dataTestId","children","className","drawerVariant","variant","stickyFooter","props","ref","classes","jsx","useSwipeTracking","pointerStartRef","swipeDeltaRef","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","event","y","hasSwipeMoveStarted","clampedY","moveStartBuffer","delta","eventDetail","isDeltaInDirection","target","swipeHandle","threshold","DrawerHandle","React","onPointerDown","onPointerMove","onPointerUp","DrawerHeader","backButton","backButtonText","backButtonOnlyIcon","closeButtonAriaLabel","headerContent","onBackButtonClick","onCloseClick","title","hasBackButton","isAi","CloseButtonWrapper","RadixDialog.Close","jsxs","Button","BUTTON_VARIANT","IconChevronLeft","Fragment","VisuallyHidden","RadixDialog.Title","Heading","DisplayVariant","IconClose","DrawerScrollArea","fitToContent","RadixScrollArea.Root","RadixScrollArea.Viewport","RadixScrollArea.Scrollbar","RadixScrollArea.Thumb","DrawerFrame","footerContent","position","useSwipeToDismiss","containerRef","handleOpenChange","DrawerContent","bodyText","container","disableCloseOnClickOutside","zIndex","drawerContext","useContext","isModal","themePortalContainer","useThemePortalContainer","portalContainer","drawerFrameRef","useRef","internalDrawerContentRef","setRef","node","handlePointerDownOutside","handleEscapeKeyDown","handleInitialFocus","frame","heading","dialogContent","RadixDialog.Content","RadixDialog.Description","RadixDialog.Portal","RadixDialog.Overlay","DrawerTrigger","RadixDialog.Trigger","Drawer","onOpenChange","open","_open","_setOpen","newOpen","useEffect","contextValue","RadixDialog.Root"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer-DyLQfvEh.js","sources":["../../../components/drawer/src/drawer.context.ts","../../../components/drawer/src/drawer-container.tsx","../../../components/drawer/src/use-swipe-tracking.hook.ts","../../../components/drawer/src/drawer-handle.tsx","../../../components/drawer/src/drawer-header.tsx","../../../components/drawer/src/drawer-scroll-area.tsx","../../../components/drawer/src/drawer-frame.tsx","../../../components/drawer/src/use-swipe-to-dismiss.hook.ts","../../../components/drawer/src/drawer-content.tsx","../../../components/drawer/src/drawer-trigger.tsx","../../../components/drawer/src/drawer.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nimport { type DrawerVariant, type OpenHandlerFunction } from \"./types\";\n\nexport type DrawerContextValue = {\n isModal: boolean;\n onOpenChange: OpenHandlerFunction;\n variant: DrawerVariant;\n};\n\nexport const DrawerContext = createContext<DrawerContextValue | null>(null);\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-container.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerContainerProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n drawerVariant?: DrawerVariant;\n stickyFooter: boolean;\n variant?: \"header\" | \"body\" | \"footer\";\n};\n\nconst rootClassName = \"purpur-drawer-container\";\n\nexport const DrawerContainer = forwardRef<HTMLDivElement, DrawerContainerProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-container\",\n children,\n className,\n drawerVariant = \"default\",\n variant = \"body\",\n stickyFooter,\n ...props\n },\n ref\n ) => {\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--${variant}`]: variant,\n [`${rootClassName}--sticky`]: stickyFooter,\n [`${rootClassName}--ai`]: drawerVariant === \"ai\",\n },\n className,\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </div>\n );\n }\n);\n\nDrawerContainer.displayName = \"DrawerContainer\";\n","import type { PointerEvent, RefObject } from \"react\";\n\nimport { type SwipeEvent } from \"./types\";\n\ntype UseSwipeTracking = {\n onPointerDown(event: PointerEvent): void;\n onPointerMove(event: PointerEvent): void;\n onPointerUp(event: PointerEvent): void;\n};\n\nexport const useSwipeTracking = (\n pointerStartRef: RefObject<{ y: number } | null>,\n swipeDeltaRef: RefObject<{ y: number } | null>,\n onSwipeStart: () => void,\n onSwipeMove: (event: SwipeEvent) => void,\n onSwipeCancel: () => void,\n onSwipeEnd: (event: SwipeEvent) => void\n): UseSwipeTracking => {\n const onPointerDown = (event: PointerEvent) => {\n pointerStartRef.current = { y: event.clientY };\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!pointerStartRef.current) {\n return;\n }\n const y = event.clientY - pointerStartRef.current.y;\n const hasSwipeMoveStarted = Boolean(swipeDeltaRef.current);\n const clampedY = Math.max(0, y);\n const moveStartBuffer = event.pointerType === \"touch\" ? 10 : 2;\n const delta = { y: clampedY };\n const eventDetail = { originalEvent: event, delta };\n if (hasSwipeMoveStarted) {\n swipeDeltaRef.current = delta;\n onSwipeMove(eventDetail);\n } else if (isDeltaInDirection(delta, 0)) {\n swipeDeltaRef.current = delta;\n onSwipeStart();\n (event.target as HTMLElement).setPointerCapture(event.pointerId);\n } else if (Math.abs(y) > moveStartBuffer) {\n // User is swiping in wrong direction so we disable swipe gesture\n // for the current pointer down interaction\n pointerStartRef.current = null;\n }\n };\n const onPointerUp = (event: PointerEvent) => {\n const delta = swipeDeltaRef.current;\n const target = event.target as HTMLElement;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n }\n swipeDeltaRef.current = null;\n pointerStartRef.current = null;\n if (delta) {\n const swipeHandle = event.currentTarget;\n const eventDetail = { originalEvent: event, delta };\n if (isDeltaInDirection(delta, 0) && delta.y > 200) {\n onSwipeEnd(eventDetail);\n } else {\n onSwipeCancel();\n }\n // Prevent click event from triggering on items within the drawer when\n // pointer up is part of a swipe gesture\n swipeHandle.addEventListener(\"click\", (event) => event.preventDefault(), {\n once: true,\n });\n }\n };\n return {\n onPointerDown,\n onPointerMove,\n onPointerUp,\n };\n};\n\nconst isDeltaInDirection = (delta: { y: number }, threshold = 0) => {\n const deltaY = Math.abs(delta.y);\n return deltaY > threshold;\n};\n","import React, { forwardRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-handle.module.scss\";\nimport { type DrawerVariant, type SwipeEvent } from \"./types\";\nimport { useSwipeTracking } from \"./use-swipe-tracking.hook\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHandleProps = Omit<BaseProps, \"children\"> & {\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-handle\";\n\nexport const DrawerHandle = forwardRef<HTMLDivElement, DrawerHandleProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-handle\",\n className,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const classes = cx([rootClassName, { [`${rootClassName}--ai`]: variant === \"ai\" }, className]);\n const pointerStartRef = React.useRef<{ y: number } | null>(null);\n const swipeDeltaRef = React.useRef<{ y: number } | null>(null);\n const { onPointerDown, onPointerMove, onPointerUp } = useSwipeTracking(\n swipeDeltaRef,\n pointerStartRef,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd\n );\n\n return (\n <div\n className={classes}\n data-testid={dataTestId}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={onPointerUp}\n ref={ref}\n {...props}\n />\n );\n }\n);\n\nDrawerHandle.displayName = \"DrawerHandle\";\n","import React, { forwardRef } from \"react\";\nimport { Button, BUTTON_VARIANT } from \"@purpur/button\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { DisplayVariant, Heading } from \"@purpur/heading\";\nimport { IconChevronLeft } from \"@purpur/icon/chevron-left\";\nimport { IconClose } from \"@purpur/icon/close\";\nimport { VisuallyHidden } from \"@purpur/visually-hidden\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-header.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerHeaderProps = Omit<BaseProps, \"children\"> & {\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n closeButtonAriaLabel: string;\n headerContent?: React.ReactNode;\n onBackButtonClick?: () => void;\n onCloseClick?: () => void;\n title: string;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-header\";\n\nexport const DrawerHeader = forwardRef<HTMLDivElement, DrawerHeaderProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-header\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n className,\n closeButtonAriaLabel,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n title,\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const classes = cx([rootClassName, { [`${rootClassName}--ai`]: variant === \"ai\" }, className]);\n const hasBackButton = !!(backButton && backButtonText && onBackButtonClick);\n const isAi = variant === \"ai\";\n\n const CloseButtonWrapper = onCloseClick ? React.Fragment : RadixDialog.Close;\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <div\n className={cx([\n `${rootClassName}__row`,\n {\n [`${rootClassName}__row--with-back-button`]: hasBackButton,\n },\n ])}\n data-testid={`${dataTestId}-row`}\n >\n <div className={cx(`${rootClassName}__left`)}>\n {hasBackButton ? (\n <Button\n aria-label={backButtonOnlyIcon ? backButtonText : \"\"}\n className={cx([\n `${rootClassName}__back-button`,\n {\n [`${rootClassName}__back-button--only-icon`]: backButtonOnlyIcon,\n },\n ])}\n data-testid={`${dataTestId}-back-button`}\n iconOnly={backButtonOnlyIcon}\n negative={isAi}\n onClick={onBackButtonClick}\n size=\"sm\"\n variant={backButtonOnlyIcon ? BUTTON_VARIANT.TERTIARY_PURPLE : BUTTON_VARIANT.TEXT}\n >\n <IconChevronLeft size=\"sm\" />\n {!backButtonOnlyIcon && backButtonText}\n </Button>\n ) : headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n className={cx(`${rootClassName}__title`)}\n data-testid={`${dataTestId}-title`}\n negative={isAi}\n tag=\"h2\"\n variant={DisplayVariant.DISPLAY10}\n tabIndex={-1}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n )}\n </div>\n\n <div className={cx(`${rootClassName}__right`)}>\n <CloseButtonWrapper {...(onCloseClick ? {} : { asChild: true })}>\n <Button\n aria-label={closeButtonAriaLabel}\n className={cx(`${rootClassName}__close-button`)}\n iconOnly\n negative={isAi}\n onClick={onCloseClick}\n size=\"sm\"\n variant={BUTTON_VARIANT.TERTIARY_PURPLE}\n >\n <IconClose size=\"sm\" />\n </Button>\n </CloseButtonWrapper>\n </div>\n </div>\n {hasBackButton &&\n (headerContent ? (\n <>\n {headerContent}\n <VisuallyHidden asChild>\n <RadixDialog.Title>{title}</RadixDialog.Title>\n </VisuallyHidden>\n </>\n ) : (\n <RadixDialog.Title asChild>\n <Heading\n data-testid={`${dataTestId}-title-with-back-button`}\n className={cx(`${rootClassName}__title`)}\n negative={isAi}\n tag=\"h2\"\n tabIndex={-1}\n variant={DisplayVariant.DISPLAY10}\n >\n {title}\n </Heading>\n </RadixDialog.Title>\n ))}\n </div>\n );\n }\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixScrollArea from \"@radix-ui/react-scroll-area\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./drawer-scroll-area.module.scss\";\nimport { type DrawerVariant } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerScrollAreaProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n drawerVariant?: DrawerVariant;\n fitToContent?: boolean;\n};\n\nconst rootClassName = \"purpur-drawer-scroll-area\";\n\nexport const DrawerScrollArea = forwardRef<HTMLDivElement, DrawerScrollAreaProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-scroll-area\",\n children,\n className,\n drawerVariant = \"default\",\n fitToContent = false,\n ...props\n },\n ref\n ) => {\n const classes = cx([\n rootClassName,\n { [`${rootClassName}--ai`]: drawerVariant === \"ai\" },\n className,\n ]);\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <RadixScrollArea.Root\n className={cx(`${rootClassName}__root`, {\n [`${rootClassName}__root--fit-to-content`]: fitToContent,\n })}\n >\n <RadixScrollArea.Viewport className={cx(`${rootClassName}__viewport`)}>\n {children}\n </RadixScrollArea.Viewport>\n <RadixScrollArea.Scrollbar\n className={cx(`${rootClassName}__scrollbar`)}\n orientation=\"vertical\"\n >\n <RadixScrollArea.Thumb className={cx(`${rootClassName}__thumb`)} />\n </RadixScrollArea.Scrollbar>\n </RadixScrollArea.Root>\n </div>\n );\n }\n);\n\nDrawerScrollArea.displayName = \"DrawerScrollArea\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContainer } from \"./drawer-container\";\nimport styles from \"./drawer-frame.module.scss\";\nimport { DrawerHandle } from \"./drawer-handle\";\nimport { DrawerHeader } from \"./drawer-header\";\nimport { DrawerScrollArea } from \"./drawer-scroll-area\";\nimport { type DrawerVariant, type Position, type SwipeEvent } from \"./types\";\n\nconst cx = c.bind(styles);\n\nexport type DrawerFrameProps = Omit<BaseProps, \"children\"> & {\n backButton: boolean;\n backButtonText?: string;\n backButtonOnlyIcon: boolean;\n children: ReactNode;\n closeButtonAriaLabel: string;\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onBackButtonClick?: () => void;\n onCloseClick?: () => void;\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n stickyFooter: boolean;\n title: string;\n position?: Position;\n variant?: DrawerVariant;\n};\n\nconst rootClassName = \"purpur-drawer-frame\";\n\nexport const DrawerFrame = forwardRef<HTMLDivElement, DrawerFrameProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-frame\",\n backButton,\n backButtonText,\n backButtonOnlyIcon,\n children,\n className,\n closeButtonAriaLabel,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n title,\n stickyFooter,\n position = \"right\",\n variant = \"default\",\n ...props\n },\n ref\n ) => {\n const hasBackButton = !!(backButton && backButtonText && onBackButtonClick);\n const isAi = variant === \"ai\";\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--sticky-footer`]: stickyFooter,\n [`${rootClassName}--left`]: position === \"left\",\n [`${rootClassName}--right`]: position === \"right\",\n [`${rootClassName}--without-back-button`]: !hasBackButton,\n [`${rootClassName}--with-back-button`]: hasBackButton,\n [`${rootClassName}--ai`]: isAi,\n },\n className,\n ]);\n\n return (\n <div className={classes} data-testid={dataTestId} ref={ref} {...props}>\n <DrawerHandle\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n variant={variant}\n />\n <DrawerContainer\n className={cx(`${rootClassName}__header`)}\n variant=\"header\"\n stickyFooter={stickyFooter}\n drawerVariant={variant}\n >\n <DrawerHeader\n title={title}\n headerContent={headerContent}\n backButtonOnlyIcon={backButtonOnlyIcon}\n backButton={backButton}\n backButtonText={backButtonText}\n closeButtonAriaLabel={closeButtonAriaLabel}\n onBackButtonClick={onBackButtonClick}\n onCloseClick={onCloseClick}\n variant={variant}\n />\n </DrawerContainer>\n {stickyFooter ? (\n <>\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-sticky-footer-scroll-area`}\n fitToContent={fitToContent}\n drawerVariant={variant}\n >\n <DrawerContainer stickyFooter drawerVariant={variant}>\n {children}\n </DrawerContainer>\n </DrawerScrollArea>\n {footerContent && (\n <DrawerContainer\n className={cx(`${rootClassName}__footer`)}\n data-testid={`${dataTestId}-sticky-footer`}\n variant=\"footer\"\n stickyFooter={stickyFooter}\n drawerVariant={variant}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </>\n ) : (\n <DrawerScrollArea\n className={cx(`${rootClassName}__body`)}\n data-testid={`${dataTestId}-scroll-area`}\n fitToContent={fitToContent}\n drawerVariant={variant}\n >\n <div\n className={cx([\n `${rootClassName}__content-container`,\n { [`${rootClassName}__content-container--no-footer`]: !footerContent },\n ])}\n >\n <DrawerContainer stickyFooter={stickyFooter} drawerVariant={variant}>\n {children}\n </DrawerContainer>\n {footerContent && (\n <DrawerContainer\n data-testid={`${dataTestId}-footer`}\n stickyFooter={stickyFooter}\n variant=\"footer\"\n drawerVariant={variant}\n >\n {footerContent}\n </DrawerContainer>\n )}\n </div>\n </DrawerScrollArea>\n )}\n </div>\n );\n }\n);\n\nDrawerFrame.displayName = \"DrawerFrame\";\n","import type { RefObject } from \"react\";\n\nimport { type SwipeEvent } from \"./types\";\n\ntype UseSwipeToDismiss = {\n onSwipeStart(): void;\n onSwipeMove(event: SwipeEvent): void;\n onSwipeCancel(): void;\n onSwipeEnd(event: SwipeEvent): void;\n};\n\nexport const useSwipeToDismiss = <T extends HTMLElement>(\n containerRef: RefObject<T | null>,\n handleOpenChange: ((open: boolean) => void) | null\n): UseSwipeToDismiss => {\n const onSwipeStart = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"start\");\n };\n const onSwipeMove = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"move\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-move-y\", `${y}px`);\n };\n const onSwipeCancel = () => {\n if (!containerRef.current) {\n return;\n }\n containerRef.current.setAttribute(\"data-swipe\", \"cancel\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-end-y\");\n };\n const onSwipeEnd = (event: SwipeEvent) => {\n if (!containerRef.current) {\n return;\n }\n const { y } = event.delta;\n containerRef.current.setAttribute(\"data-swipe\", \"end\");\n containerRef.current.style.removeProperty(\"--purpur-drawer-swipe-move-y\");\n containerRef.current.style.setProperty(\"--purpur-drawer-swipe-end-y\", `${y}px`);\n handleOpenChange?.(false);\n };\n\n return {\n onSwipeStart,\n onSwipeMove,\n onSwipeCancel,\n onSwipeEnd,\n };\n};\n","import React, { forwardRef, type ReactNode, useContext, useRef } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { useThemePortalContainer } from \"@purpur/theme\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\nimport c from \"classnames/bind\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport styles from \"./drawer-content.module.scss\";\nimport { DrawerFrame } from \"./drawer-frame\";\nimport { type Position } from \"./types\";\nimport { useSwipeToDismiss } from \"./use-swipe-to-dismiss.hook\";\n\nconst cx = c.bind(styles);\n\nexport type WithBackButton = {\n backButton: boolean;\n backButtonText: string;\n backButtonOnlyIcon?: boolean;\n onBackButtonClick: () => void;\n};\n\nexport type WithoutBackButton = {\n backButton?: never;\n backButtonText?: never;\n backButtonOnlyIcon?: never;\n onBackButtonClick?: never;\n};\n\nexport type DrawerContentProps = Omit<BaseProps, \"children\"> & {\n bodyText?: string;\n children: ReactNode;\n closeButtonAriaLabel: string;\n /**\n * Optional DOM element to portal the drawer content into. When omitted,\n * the drawer renders inside the nearest `ThemeProvider` so it inherits\n * the active color scheme. Pass `document.body` (or any other element) to\n * override. Pass `null` to fall back to Radix' default (`document.body`).\n */\n container?: HTMLElement | null;\n disableCloseOnClickOutside?: boolean;\n /**\n * If true, the drawer height will fit to its content on small screens.\n */\n fitToContent?: boolean;\n footerContent?: ReactNode;\n headerContent?: ReactNode;\n onCloseClick?: () => void;\n stickyFooter?: boolean;\n title: string;\n zIndex?: number;\n position?: Position;\n} & (WithoutBackButton | WithBackButton);\n\nconst rootClassName = \"purpur-drawer-content\";\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n (\n {\n [\"data-testid\"]: dataTestId = \"purpur-drawer-content\",\n backButton = false,\n backButtonText,\n backButtonOnlyIcon = false,\n bodyText,\n children,\n className,\n closeButtonAriaLabel,\n container,\n disableCloseOnClickOutside = false,\n fitToContent = false,\n footerContent,\n headerContent,\n onBackButtonClick,\n onCloseClick,\n stickyFooter = false,\n title,\n zIndex,\n position = \"right\",\n ...props\n },\n ref\n ) => {\n const drawerContext = useContext(DrawerContext);\n const variant = drawerContext?.variant ?? \"default\";\n const isModal = drawerContext?.isModal ?? true;\n const themePortalContainer = useThemePortalContainer();\n const portalContainer =\n container === undefined ? themePortalContainer : container ?? undefined;\n\n const classes = cx([\n rootClassName,\n {\n [`${rootClassName}--fit-to-content`]: fitToContent,\n [`${rootClassName}--left`]: position === \"left\",\n [`${rootClassName}--right`]: position === \"right\",\n [`${rootClassName}--ai`]: variant === \"ai\",\n },\n className,\n ]);\n\n const drawerFrameRef = useRef<HTMLDivElement>(null);\n const internalDrawerContentRef = useRef<HTMLDivElement>(null);\n\n const setRef = (node: HTMLDivElement | null) => {\n internalDrawerContentRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n };\n\n const { onSwipeStart, onSwipeMove, onSwipeCancel, onSwipeEnd } = useSwipeToDismiss(\n internalDrawerContentRef,\n drawerContext?.onOpenChange ?? null\n );\n\n const handlePointerDownOutside = (event: CustomEvent<{ originalEvent: PointerEvent }>) => {\n if (disableCloseOnClickOutside) {\n event.preventDefault();\n return;\n }\n\n if (onCloseClick) {\n event.preventDefault();\n onCloseClick();\n }\n };\n\n const handleEscapeKeyDown = (event: KeyboardEvent) => {\n if (onCloseClick) {\n event.preventDefault();\n onCloseClick();\n }\n };\n\n const handleInitialFocus = () => {\n const frame = drawerFrameRef.current;\n if (frame) {\n const heading = frame.querySelector(\"h2\");\n\n heading &&\n setTimeout(() => {\n heading.focus();\n });\n }\n };\n\n const dialogContent = (\n <RadixDialog.Content\n onPointerDownOutside={handlePointerDownOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleInitialFocus}\n className={classes}\n data-testid={dataTestId}\n ref={setRef}\n {...(!bodyText && { [\"aria-describedby\"]: undefined })}\n {...props}\n >\n <DrawerFrame\n backButton={backButton}\n backButtonText={backButtonText}\n backButtonOnlyIcon={backButtonOnlyIcon}\n closeButtonAriaLabel={closeButtonAriaLabel}\n className={cx(`${rootClassName}__drawer-frame`)}\n fitToContent={fitToContent}\n footerContent={footerContent}\n headerContent={headerContent}\n ref={drawerFrameRef}\n onBackButtonClick={onBackButtonClick}\n onCloseClick={onCloseClick}\n onSwipeStart={onSwipeStart}\n onSwipeMove={onSwipeMove}\n onSwipeCancel={onSwipeCancel}\n onSwipeEnd={onSwipeEnd}\n stickyFooter={stickyFooter}\n title={title}\n position={position}\n variant={variant}\n >\n {bodyText ? (\n <div className={cx(`${rootClassName}__content-container`)}>\n <RadixDialog.Description\n className={cx(`${rootClassName}__description`)}\n data-testid={`${dataTestId}-description`}\n >\n {bodyText}\n </RadixDialog.Description>\n <div>{children}</div>\n </div>\n ) : (\n children\n )}\n </DrawerFrame>\n </RadixDialog.Content>\n );\n\n if (!isModal) {\n return (\n <RadixDialog.Portal container={portalContainer}>\n <div\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n {dialogContent}\n </div>\n </RadixDialog.Portal>\n );\n }\n\n return (\n <RadixDialog.Portal container={portalContainer}>\n <RadixDialog.Overlay\n className={cx(\"purpur-drawer-overlay\")}\n style={zIndex ? { zIndex } : undefined}\n data-testid={`${dataTestId}-overlay`}\n >\n {dialogContent}\n </RadixDialog.Overlay>\n </RadixDialog.Portal>\n );\n }\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import React, { forwardRef, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nexport type DrawerTriggerProps = Omit<BaseProps<\"button\">, \"children\"> & {\n children: ReactNode;\n};\n\nexport const DrawerTrigger = forwardRef<HTMLButtonElement, DrawerTriggerProps>(\n ({ [\"data-testid\"]: dataTestId = \"purpur-drawer-trigger\", children, ...props }, ref) => {\n return (\n <RadixDialog.Trigger asChild data-testid={dataTestId} ref={ref} {...props}>\n {children}\n </RadixDialog.Trigger>\n );\n }\n);\n\nDrawerTrigger.displayName = \"DrawerTrigger\";\n","import React, { type ReactNode, useEffect } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport * as RadixDialog from \"@radix-ui/react-dialog\";\n\nimport { DrawerContext } from \"./drawer.context\";\nimport { DrawerContent } from \"./drawer-content\";\nimport { DrawerTrigger } from \"./drawer-trigger\";\nimport { type DrawerVariant } from \"./types\";\n\nexport type { DrawerVariant };\n\nexport type DrawerProps = Omit<BaseProps, \"children\"> & {\n children: ReactNode;\n /**\n * Whether the drawer should be modal. When `true` (default), focus is trapped\n * and pointer events outside the drawer are disabled. Set to `false` when rendering\n * components that use portals (e.g. DatePicker) inside the drawer.\n */\n isModal?: boolean;\n onOpenChange?: (open: boolean) => void;\n open: boolean;\n variant?: DrawerVariant;\n};\n\nexport type DrawerComponent<P> = React.FunctionComponent<P> & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n};\n\nexport const Drawer: DrawerComponent<DrawerProps> = ({\n [\"data-testid\"]: dataTestId = \"purpur-drawer\",\n children,\n className,\n isModal = true,\n onOpenChange,\n open = false,\n variant = \"default\",\n ...props\n}: DrawerProps) => {\n const [_open, _setOpen] = React.useState(open);\n\n const handleOpenChange = (newOpen: boolean) => {\n _setOpen(newOpen);\n onOpenChange?.(newOpen);\n };\n\n useEffect(() => {\n _setOpen(open);\n }, [open]);\n\n const contextValue = { isModal, onOpenChange: handleOpenChange, variant };\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <div className={className} data-testid={dataTestId} {...props}>\n <RadixDialog.Root open={_open} onOpenChange={handleOpenChange} modal={isModal}>\n {children}\n </RadixDialog.Root>\n </div>\n </DrawerContext.Provider>\n );\n};\n\nDrawer.Trigger = DrawerTrigger;\nDrawer.Content = DrawerContent;\nDrawer.displayName = \"Drawer\";\n"],"names":["DrawerContext","createContext","cx","c","styles","rootClassName","DrawerContainer","forwardRef","dataTestId","children","className","drawerVariant","variant","stickyFooter","props","ref","classes","jsx","useSwipeTracking","pointerStartRef","swipeDeltaRef","onSwipeStart","onSwipeMove","onSwipeCancel","onSwipeEnd","event","y","hasSwipeMoveStarted","clampedY","moveStartBuffer","delta","eventDetail","isDeltaInDirection","target","swipeHandle","threshold","DrawerHandle","React","onPointerDown","onPointerMove","onPointerUp","DrawerHeader","backButton","backButtonText","backButtonOnlyIcon","closeButtonAriaLabel","headerContent","onBackButtonClick","onCloseClick","title","hasBackButton","isAi","CloseButtonWrapper","RadixDialog.Close","jsxs","Button","BUTTON_VARIANT","IconChevronLeft","Fragment","VisuallyHidden","RadixDialog.Title","Heading","DisplayVariant","IconClose","DrawerScrollArea","fitToContent","RadixScrollArea.Root","RadixScrollArea.Viewport","RadixScrollArea.Scrollbar","RadixScrollArea.Thumb","DrawerFrame","footerContent","position","useSwipeToDismiss","containerRef","handleOpenChange","DrawerContent","bodyText","container","disableCloseOnClickOutside","zIndex","drawerContext","useContext","isModal","themePortalContainer","useThemePortalContainer","portalContainer","drawerFrameRef","useRef","internalDrawerContentRef","setRef","node","handlePointerDownOutside","handleEscapeKeyDown","handleInitialFocus","frame","heading","dialogContent","RadixDialog.Content","RadixDialog.Description","RadixDialog.Portal","RadixDialog.Overlay","DrawerTrigger","RadixDialog.Trigger","Drawer","onOpenChange","open","_open","_setOpen","newOpen","useEffect","contextValue","RadixDialog.Root"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as e, jsxs as g, Fragment as I } from "react/jsx-runtime";
|
|
2
2
|
import Y, { createContext as mr, forwardRef as P, useContext as $r, useRef as Q, useEffect as vr } from "react";
|
|
3
3
|
import { a as yr, T as M, C as br, D as gr, P as Z, O as Dr, b as Nr, R as jr } from "./index-3NV-ckDX.mjs";
|
|
4
|
-
import "./ThemeProvider-
|
|
5
|
-
import { u as Pr } from "./useThemePortalContainer-
|
|
4
|
+
import "./ThemeProvider-BJ25_asg.mjs";
|
|
5
|
+
import { u as Pr } from "./useThemePortalContainer-D13Xx24N.mjs";
|
|
6
6
|
import { c as k } from "./bind-CU-R61T-.mjs";
|
|
7
7
|
import { b as B, a as F } from "./button-4-yWOgtD.mjs";
|
|
8
8
|
import { H as rr, D as er } from "./heading-xwBuT_-9.mjs";
|
|
@@ -574,4 +574,4 @@ K.displayName = "Drawer";
|
|
|
574
574
|
export {
|
|
575
575
|
K as D
|
|
576
576
|
};
|
|
577
|
-
//# sourceMappingURL=drawer-
|
|
577
|
+
//# sourceMappingURL=drawer-cIUx6WSZ.mjs.map
|