@purpur/library 9.0.5 → 9.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +39 -0
- package/CHANGELOG.md +20 -1
- package/dist/{RichText-DRacgpis.mjs → RichText-Bi51HE6X.mjs} +3 -3
- package/dist/{RichText-DRacgpis.mjs.map → RichText-Bi51HE6X.mjs.map} +1 -1
- package/dist/{RichText-DMyGiMN0.js → RichText-DNroJJXv.js} +2 -2
- package/dist/{RichText-DMyGiMN0.js.map → RichText-DNroJJXv.js.map} +1 -1
- package/dist/{ThemeProvider-CrjMv3M8.mjs → ThemeProvider-BR1hJQOD.mjs} +85 -85
- package/dist/{ThemeProvider-CrjMv3M8.mjs.map → ThemeProvider-BR1hJQOD.mjs.map} +1 -1
- package/dist/{accordion-DWflnyWa.mjs → accordion-BKTz9DM6.mjs} +18 -18
- package/dist/{accordion-DWflnyWa.mjs.map → accordion-BKTz9DM6.mjs.map} +1 -1
- package/dist/{accordion-CF2fj2uq.js → accordion-DX8efWOt.js} +2 -2
- package/dist/{accordion-CF2fj2uq.js.map → accordion-DX8efWOt.js.map} +1 -1
- package/dist/accordion.cjs.js +1 -1
- package/dist/accordion.es.js +1 -1
- package/dist/{alert-badge-u7qAhYbR.mjs → alert-badge-DR8cigWu.mjs} +3 -3
- package/dist/{alert-badge-u7qAhYbR.mjs.map → alert-badge-DR8cigWu.mjs.map} +1 -1
- package/dist/alert-badge.es.js +1 -1
- package/dist/{autocomplete-yD0-1vlF.js → autocomplete-6qSqK3SI.js} +2 -2
- package/dist/{autocomplete-yD0-1vlF.js.map → autocomplete-6qSqK3SI.js.map} +1 -1
- package/dist/{autocomplete-0kGG_STe.mjs → autocomplete-B4dZx9zF.mjs} +3 -3
- package/dist/{autocomplete-0kGG_STe.mjs.map → autocomplete-B4dZx9zF.mjs.map} +1 -1
- package/dist/autocomplete.cjs.js +1 -1
- package/dist/autocomplete.es.js +1 -1
- package/dist/button-BfYKNBmC.mjs +102 -0
- package/dist/button-BfYKNBmC.mjs.map +1 -0
- package/dist/button-DDYGuqZ0.js +2 -0
- package/dist/button-DDYGuqZ0.js.map +1 -0
- package/dist/button.cjs.js +1 -1
- package/dist/button.es.js +1 -1
- package/dist/{calendar-pMM0fKEu.js → calendar-CxkJMONO.js} +2 -2
- package/dist/{calendar-pMM0fKEu.js.map → calendar-CxkJMONO.js.map} +1 -1
- package/dist/{calendar-DDie8jSH.mjs → calendar-vALLklKV.mjs} +2 -2
- package/dist/{calendar-DDie8jSH.mjs.map → calendar-vALLklKV.mjs.map} +1 -1
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.es.js +1 -1
- package/dist/{card-DiMVw06l.mjs → card-CkZQZOz1.mjs} +9 -9
- package/dist/{card-DiMVw06l.mjs.map → card-CkZQZOz1.mjs.map} +1 -1
- package/dist/{card-B512KHpr.js → card-VMa3cGCP.js} +2 -2
- package/dist/{card-B512KHpr.js.map → card-VMa3cGCP.js.map} +1 -1
- package/dist/card.cjs.js +1 -1
- package/dist/card.es.js +1 -1
- package/dist/{checkbox-LYzMiXu7.mjs → checkbox-D6qWgpWR.mjs} +8 -8
- package/dist/{checkbox-LYzMiXu7.mjs.map → checkbox-D6qWgpWR.mjs.map} +1 -1
- package/dist/checkbox.es.js +1 -1
- package/dist/{chip-group-aj1fdnjC.js → chip-group-B775zvKD.js} +2 -2
- package/dist/{chip-group-aj1fdnjC.js.map → chip-group-B775zvKD.js.map} +1 -1
- package/dist/{chip-group-CJVvfl_J.mjs → chip-group-xuOe7nL3.mjs} +3 -3
- package/dist/{chip-group-CJVvfl_J.mjs.map → chip-group-xuOe7nL3.mjs.map} +1 -1
- package/dist/chip-group.cjs.js +1 -1
- package/dist/chip-group.es.js +1 -1
- package/dist/components/button/src/button.d.ts +1 -2
- package/dist/components/button/src/button.d.ts.map +1 -1
- package/dist/components/date-field/src/date-field.d.ts.map +1 -1
- package/dist/components/stepper/src/stepper-button.d.ts.map +1 -1
- package/dist/components/table/src/draggable-table.d.ts.map +1 -1
- package/dist/components/table/src/table-settings-drawer.d.ts.map +1 -1
- package/dist/components/table/src/table-toolbar.d.ts.map +1 -1
- package/dist/components/tabs/src/tab-content.d.ts.map +1 -1
- package/dist/components/tabs/src/tabs.d.ts.map +1 -1
- package/dist/{container-Bw12NgHN.mjs → container-DLjBTB_w.mjs} +3 -3
- package/dist/{container-Bw12NgHN.mjs.map → container-DLjBTB_w.mjs.map} +1 -1
- package/dist/container.es.js +1 -1
- package/dist/{content-block-DUcjAZgG.mjs → content-block-BMOvlH7a.mjs} +6 -6
- package/dist/{content-block-DUcjAZgG.mjs.map → content-block-BMOvlH7a.mjs.map} +1 -1
- package/dist/{content-block-kzdUWgvH.js → content-block-Cd7xSE8t.js} +2 -2
- package/dist/{content-block-kzdUWgvH.js.map → content-block-Cd7xSE8t.js.map} +1 -1
- package/dist/content-block.cjs.js +1 -1
- package/dist/content-block.es.js +1 -1
- package/dist/{countdown-DxAGVUFI.mjs → countdown-DZ4IwkNy.mjs} +12 -12
- package/dist/{countdown-DxAGVUFI.mjs.map → countdown-DZ4IwkNy.mjs.map} +1 -1
- package/dist/countdown.es.js +1 -1
- package/dist/date-field-CORqon6B.js +2 -0
- package/dist/{date-field-CPiTZqa0.js.map → date-field-CORqon6B.js.map} +1 -1
- package/dist/{date-field-D_6iP2fC.mjs → date-field-CTJB8O0e.mjs} +325 -310
- package/dist/{date-field-D_6iP2fC.mjs.map → date-field-CTJB8O0e.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-BRnwwZv1.mjs → date-picker-CJcIJ5VL.mjs} +5 -5
- package/dist/{date-picker-BRnwwZv1.mjs.map → date-picker-CJcIJ5VL.mjs.map} +1 -1
- package/dist/{date-picker-DlJGggam.js → date-picker-Dv3W05Hf.js} +2 -2
- package/dist/{date-picker-DlJGggam.js.map → date-picker-Dv3W05Hf.js.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/{dismissable-chip-group-DsO2cZaF.js → dismissable-chip-group-CnziecOt.js} +2 -2
- package/dist/{dismissable-chip-group-DsO2cZaF.js.map → dismissable-chip-group-CnziecOt.js.map} +1 -1
- package/dist/{dismissable-chip-group-Bl0D18qM.mjs → dismissable-chip-group-ZCYOt1sB.mjs} +2 -2
- package/dist/{dismissable-chip-group-Bl0D18qM.mjs.map → dismissable-chip-group-ZCYOt1sB.mjs.map} +1 -1
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +1 -1
- package/dist/{drawer-nBpCtIdI.js → drawer-Ce5LNpU2.js} +2 -2
- package/dist/{drawer-nBpCtIdI.js.map → drawer-Ce5LNpU2.js.map} +1 -1
- package/dist/{drawer-Boqmgh-i.mjs → drawer-DSFZ61OH.mjs} +14 -14
- package/dist/{drawer-Boqmgh-i.mjs.map → drawer-DSFZ61OH.mjs.map} +1 -1
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/{floating-ui.react-dom-0ol4sFzt.mjs → floating-ui.react-dom-gsHLgcoR.mjs} +5 -5
- package/dist/{floating-ui.react-dom-0ol4sFzt.mjs.map → floating-ui.react-dom-gsHLgcoR.mjs.map} +1 -1
- package/dist/{footer-DrjAwjuL.js → footer-BL0ewBZT.js} +2 -2
- package/dist/{footer-DrjAwjuL.js.map → footer-BL0ewBZT.js.map} +1 -1
- package/dist/{footer-DcWsihxS.mjs → footer-cH07Xqil.mjs} +5 -5
- package/dist/{footer-DcWsihxS.mjs.map → footer-cH07Xqil.mjs.map} +1 -1
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/heading-drD5ugCC.js +2 -0
- package/dist/{heading-DLCdW6gx.js.map → heading-drD5ugCC.js.map} +1 -1
- package/dist/heading-xwBuT_-9.mjs +75 -0
- package/dist/{heading-gqtQNo5n.mjs.map → heading-xwBuT_-9.mjs.map} +1 -1
- package/dist/heading.cjs.js +1 -1
- package/dist/heading.es.js +1 -1
- package/dist/{hero-banner-B8fRHxXc.mjs → hero-banner-CkSSlxTW.mjs} +5 -5
- package/dist/{hero-banner-B8fRHxXc.mjs.map → hero-banner-CkSSlxTW.mjs.map} +1 -1
- package/dist/{hero-banner-D3peC1NR.js → hero-banner-JFaqW20R.js} +2 -2
- package/dist/{hero-banner-D3peC1NR.js.map → hero-banner-JFaqW20R.js.map} +1 -1
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +44 -44
- package/dist/{listbox-u6__DsLw.mjs → listbox-oDeP8FvH.mjs} +2 -2
- package/dist/{listbox-u6__DsLw.mjs.map → listbox-oDeP8FvH.mjs.map} +1 -1
- package/dist/listbox.es.js +1 -1
- package/dist/{modal-C2UQsW-g.mjs → modal-2ymCXTup.mjs} +19 -19
- package/dist/{modal-C2UQsW-g.mjs.map → modal-2ymCXTup.mjs.map} +1 -1
- package/dist/{modal-nyhf5zxG.js → modal-CXi2xez5.js} +2 -2
- package/dist/{modal-nyhf5zxG.js.map → modal-CXi2xez5.js.map} +1 -1
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{notification-C32wHljA.mjs → notification-BFSOuDp8.mjs} +22 -22
- package/dist/{notification-C32wHljA.mjs.map → notification-BFSOuDp8.mjs.map} +1 -1
- package/dist/{notification-Bg1vQkQ3.js → notification-DdnI2rOh.js} +2 -2
- package/dist/{notification-Bg1vQkQ3.js.map → notification-DdnI2rOh.js.map} +1 -1
- package/dist/{notification-banner-BY2iZOIa.mjs → notification-banner-CQvBezAL.mjs} +3 -3
- package/dist/{notification-banner-BY2iZOIa.mjs.map → notification-banner-CQvBezAL.mjs.map} +1 -1
- package/dist/{notification-banner-C8XsBDTq.js → notification-banner-CT4ew8IQ.js} +2 -2
- package/dist/{notification-banner-C8XsBDTq.js.map → notification-banner-CT4ew8IQ.js.map} +1 -1
- package/dist/notification-banner.cjs.js +1 -1
- package/dist/notification-banner.es.js +1 -1
- package/dist/notification.cjs.js +1 -1
- package/dist/notification.es.js +1 -1
- package/dist/{pagination-CVVCAQ65.mjs → pagination-BdCjh1Pi.mjs} +2 -2
- package/dist/{pagination-CVVCAQ65.mjs.map → pagination-BdCjh1Pi.mjs.map} +1 -1
- package/dist/pagination.es.js +1 -1
- package/dist/{paragraph-DNtj7OLr.mjs → paragraph-Ci50OF1u.mjs} +3 -3
- package/dist/{paragraph-DNtj7OLr.mjs.map → paragraph-Ci50OF1u.mjs.map} +1 -1
- package/dist/paragraph.es.js +1 -1
- package/dist/{popover-B1BgSoQx.js → popover-D3qWbbU4.js} +2 -2
- package/dist/popover-D3qWbbU4.js.map +1 -0
- package/dist/{popover-DBMI9Jy1.mjs → popover-ZeQKmyEb.mjs} +25 -25
- package/dist/popover-ZeQKmyEb.mjs.map +1 -0
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{product-card-rfpJbzzV.mjs → product-card-BU1ThhCx.mjs} +12 -12
- package/dist/{product-card-rfpJbzzV.mjs.map → product-card-BU1ThhCx.mjs.map} +1 -1
- package/dist/{product-card-DOBHGAa2.js → product-card-CNBegEBW.js} +2 -2
- package/dist/{product-card-DOBHGAa2.js.map → product-card-CNBegEBW.js.map} +1 -1
- package/dist/product-card.cjs.js +1 -1
- package/dist/product-card.es.js +1 -1
- package/dist/{promotion-card-C7B5ZJaB.js → promotion-card-CXNhskRl.js} +2 -2
- package/dist/{promotion-card-C7B5ZJaB.js.map → promotion-card-CXNhskRl.js.map} +1 -1
- package/dist/{promotion-card-wGGt75eI.mjs → promotion-card-_bPyVr9t.mjs} +33 -33
- package/dist/{promotion-card-wGGt75eI.mjs.map → promotion-card-_bPyVr9t.mjs.map} +1 -1
- package/dist/promotion-card.cjs.js +1 -1
- package/dist/promotion-card.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/{quantity-selector-DPOTlMSq.js → quantity-selector-CjSAaj7d.js} +2 -2
- package/dist/{quantity-selector-DPOTlMSq.js.map → quantity-selector-CjSAaj7d.js.map} +1 -1
- package/dist/{quantity-selector-_VcZYLjR.mjs → quantity-selector-HvyYSKah.mjs} +5 -5
- package/dist/{quantity-selector-_VcZYLjR.mjs.map → quantity-selector-HvyYSKah.mjs.map} +1 -1
- package/dist/quantity-selector.cjs.js +1 -1
- package/dist/quantity-selector.es.js +1 -1
- package/dist/{radio-button-group-CZ_FnVAi.js → radio-button-group-BaFpGAcD.js} +2 -2
- package/dist/{radio-button-group-CZ_FnVAi.js.map → radio-button-group-BaFpGAcD.js.map} +1 -1
- package/dist/{radio-button-group-BnCPcmSN.mjs → radio-button-group-CFqPsu5A.mjs} +5 -5
- package/dist/{radio-button-group-BnCPcmSN.mjs.map → radio-button-group-CFqPsu5A.mjs.map} +1 -1
- package/dist/radio-button-group.cjs.js +1 -1
- package/dist/radio-button-group.es.js +1 -1
- package/dist/{radio-card-group-DkaMcmen.mjs → radio-card-group-BlRZBa-9.mjs} +16 -16
- package/dist/{radio-card-group-DkaMcmen.mjs.map → radio-card-group-BlRZBa-9.mjs.map} +1 -1
- package/dist/{radio-card-group-BT5pV3tA.js → radio-card-group-sYcfDPJq.js} +2 -2
- package/dist/{radio-card-group-BT5pV3tA.js.map → radio-card-group-sYcfDPJq.js.map} +1 -1
- package/dist/radio-card-group.cjs.js +1 -1
- package/dist/radio-card-group.es.js +1 -1
- package/dist/rich-text.cjs.js +1 -1
- package/dist/rich-text.es.js +1 -1
- package/dist/scss/heading.mixins.scss +1 -1
- package/dist/{search-field-DH0xeW_J.mjs → search-field-BOmCVr5b.mjs} +11 -11
- package/dist/{search-field-DH0xeW_J.mjs.map → search-field-BOmCVr5b.mjs.map} +1 -1
- package/dist/{search-field-CxX4BBcg.js → search-field-CanOlkIY.js} +2 -2
- package/dist/{search-field-CxX4BBcg.js.map → search-field-CanOlkIY.js.map} +1 -1
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-BfIbJwZn.mjs → stepper-D7T0wed7.mjs} +68 -71
- package/dist/stepper-D7T0wed7.mjs.map +1 -0
- package/dist/stepper-DYjJgEHL.js +2 -0
- package/dist/stepper-DYjJgEHL.js.map +1 -0
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-DvcpczWf.mjs → table-B4pts_r4.mjs} +181 -179
- package/dist/{table-DvcpczWf.mjs.map → table-B4pts_r4.mjs.map} +1 -1
- package/dist/{table-BNeo_B1h.js → table-Bv_BISXV.js} +4 -4
- package/dist/{table-BNeo_B1h.js.map → table-Bv_BISXV.js.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/tabs-Bye5lgZ1.mjs +424 -0
- package/dist/tabs-Bye5lgZ1.mjs.map +1 -0
- package/dist/tabs-D-nfZHIA.js +2 -0
- package/dist/tabs-D-nfZHIA.js.map +1 -0
- package/dist/tabs.cjs.js +1 -1
- package/dist/tabs.es.js +1 -1
- package/dist/{text-area-Cb9Hm2Z9.mjs → text-area-CpYWt99s.mjs} +3 -3
- package/dist/{text-area-Cb9Hm2Z9.mjs.map → text-area-CpYWt99s.mjs.map} +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/{text-field-PKAaXO1N.mjs → text-field-5rIuW8gc.mjs} +2 -2
- package/dist/{text-field-PKAaXO1N.mjs.map → text-field-5rIuW8gc.mjs.map} +1 -1
- package/dist/{text-field-B8a-NKm4.js → text-field-Xt6T3zjO.js} +2 -2
- package/dist/{text-field-B8a-NKm4.js.map → text-field-Xt6T3zjO.js.map} +1 -1
- package/dist/text-field.cjs.js +1 -1
- package/dist/text-field.es.js +1 -1
- package/dist/theme.es.js +2 -2
- package/dist/{toggle-Cezg5MUc.mjs → toggle-D23x1wWk.mjs} +9 -9
- package/dist/{toggle-Cezg5MUc.mjs.map → toggle-D23x1wWk.mjs.map} +1 -1
- package/dist/toggle.es.js +1 -1
- package/dist/tokens.es.js +3 -3
- package/dist/{tooltip-DXi7ikUT.mjs → tooltip-DkwyNxrQ.mjs} +12 -12
- package/dist/{tooltip-DXi7ikUT.mjs.map → tooltip-DkwyNxrQ.mjs.map} +1 -1
- package/dist/{tooltip-CLQLxoaf.js → tooltip-svlZkXBs.js} +2 -2
- package/dist/{tooltip-CLQLxoaf.js.map → tooltip-svlZkXBs.js.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{useColorScheme-DRQcbSog.mjs → useColorScheme-9rgSgG0N.mjs} +2 -2
- package/dist/{useColorScheme-DRQcbSog.mjs.map → useColorScheme-9rgSgG0N.mjs.map} +1 -1
- package/dist/{variables-91UvS2rU.mjs → variables-BVgnpUH9.mjs} +253 -253
- package/dist/{variables-91UvS2rU.mjs.map → variables-BVgnpUH9.mjs.map} +1 -1
- package/dist/{variables-BSsIx39i.mjs → variables-DkCN2x27.mjs} +7 -7
- package/dist/{variables-BSsIx39i.mjs.map → variables-DkCN2x27.mjs.map} +1 -1
- package/dist/{variables-BUfnQw6H.mjs → variables-Dr3Hsdn-.mjs} +9 -9
- package/dist/{variables-BUfnQw6H.mjs.map → variables-Dr3Hsdn-.mjs.map} +1 -1
- package/package.json +27 -27
- package/scripts/generate.mts +4 -1
- package/vite-plugin-generate-components-metadata.js +4 -1
- package/dist/button-ChYUPi2k.js +0 -2
- package/dist/button-ChYUPi2k.js.map +0 -1
- package/dist/button-DBX_tvfJ.mjs +0 -105
- package/dist/button-DBX_tvfJ.mjs.map +0 -1
- package/dist/date-field-CPiTZqa0.js +0 -2
- package/dist/heading-DLCdW6gx.js +0 -2
- package/dist/heading-gqtQNo5n.mjs +0 -75
- package/dist/popover-B1BgSoQx.js.map +0 -1
- package/dist/popover-DBMI9Jy1.mjs.map +0 -1
- package/dist/stepper-B248FwO-.js +0 -2
- package/dist/stepper-B248FwO-.js.map +0 -1
- package/dist/stepper-BfIbJwZn.mjs.map +0 -1
- package/dist/tabs-CfHd4UQ2.js +0 -2
- package/dist/tabs-CfHd4UQ2.js.map +0 -1
- package/dist/tabs-CoXMAwMx.mjs +0 -396
- package/dist/tabs-CoXMAwMx.mjs.map +0 -1
package/dist/tabs-CoXMAwMx.mjs
DELETED
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
import { jsx as l, jsxs as P } from "react/jsx-runtime";
|
|
2
|
-
import * as T from "react";
|
|
3
|
-
import { forwardRef as q, isValidElement as gt, useRef as M, useState as $, Children as x, useEffect as N } from "react";
|
|
4
|
-
import { b as ht } from "./icon.es-CZcKxTaM.mjs";
|
|
5
|
-
import { P as R, c as D, u as mt } from "./index-DCcK_d4W.mjs";
|
|
6
|
-
import { c as wt } from "./index-DOfn3ixy.mjs";
|
|
7
|
-
import { c as Z, I as Ct, R as Tt } from "./index-IpWiejWQ.mjs";
|
|
8
|
-
import { P as $t } from "./index-DDrLXRUs.mjs";
|
|
9
|
-
import { u as It } from "./index-ByaXH_ih.mjs";
|
|
10
|
-
import { u as yt } from "./index-CEQ35j8b.mjs";
|
|
11
|
-
import { c as B } from "./bind-CU-R61T-.mjs";
|
|
12
|
-
const xt = {
|
|
13
|
-
name: "chevron-left",
|
|
14
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z" clip-rule="evenodd"/></svg>',
|
|
15
|
-
keywords: ["chevron-left"],
|
|
16
|
-
category: "utility"
|
|
17
|
-
}, Nt = {
|
|
18
|
-
name: "chevron-right",
|
|
19
|
-
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path fill-rule="evenodd" d="M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z" clip-rule="evenodd"/></svg>',
|
|
20
|
-
keywords: ["chevron-right"],
|
|
21
|
-
category: "utility"
|
|
22
|
-
};
|
|
23
|
-
var S = "Tabs", [Rt] = wt(S, [
|
|
24
|
-
Z
|
|
25
|
-
]), X = Z(), [St, z] = Rt(S), J = T.forwardRef(
|
|
26
|
-
(e, r) => {
|
|
27
|
-
const {
|
|
28
|
-
__scopeTabs: s,
|
|
29
|
-
value: o,
|
|
30
|
-
onValueChange: i,
|
|
31
|
-
defaultValue: u,
|
|
32
|
-
orientation: a = "horizontal",
|
|
33
|
-
dir: n,
|
|
34
|
-
activationMode: b = "automatic",
|
|
35
|
-
...f
|
|
36
|
-
} = e, p = It(n), [d, v] = mt({
|
|
37
|
-
prop: o,
|
|
38
|
-
onChange: i,
|
|
39
|
-
defaultProp: u ?? "",
|
|
40
|
-
caller: S
|
|
41
|
-
});
|
|
42
|
-
return /* @__PURE__ */ l(
|
|
43
|
-
St,
|
|
44
|
-
{
|
|
45
|
-
scope: s,
|
|
46
|
-
baseId: yt(),
|
|
47
|
-
value: d,
|
|
48
|
-
onValueChange: v,
|
|
49
|
-
orientation: a,
|
|
50
|
-
dir: p,
|
|
51
|
-
activationMode: b,
|
|
52
|
-
children: /* @__PURE__ */ l(
|
|
53
|
-
R.div,
|
|
54
|
-
{
|
|
55
|
-
dir: p,
|
|
56
|
-
"data-orientation": a,
|
|
57
|
-
...f,
|
|
58
|
-
ref: r
|
|
59
|
-
}
|
|
60
|
-
)
|
|
61
|
-
}
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
);
|
|
65
|
-
J.displayName = S;
|
|
66
|
-
var Q = "TabsList", U = T.forwardRef(
|
|
67
|
-
(e, r) => {
|
|
68
|
-
const { __scopeTabs: s, loop: o = !0, ...i } = e, u = z(Q, s), a = X(s);
|
|
69
|
-
return /* @__PURE__ */ l(
|
|
70
|
-
Tt,
|
|
71
|
-
{
|
|
72
|
-
asChild: !0,
|
|
73
|
-
...a,
|
|
74
|
-
orientation: u.orientation,
|
|
75
|
-
dir: u.dir,
|
|
76
|
-
loop: o,
|
|
77
|
-
children: /* @__PURE__ */ l(
|
|
78
|
-
R.div,
|
|
79
|
-
{
|
|
80
|
-
role: "tablist",
|
|
81
|
-
"aria-orientation": u.orientation,
|
|
82
|
-
...i,
|
|
83
|
-
ref: r
|
|
84
|
-
}
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
U.displayName = Q;
|
|
91
|
-
var Y = "TabsTrigger", tt = T.forwardRef(
|
|
92
|
-
(e, r) => {
|
|
93
|
-
const { __scopeTabs: s, value: o, disabled: i = !1, ...u } = e, a = z(Y, s), n = X(s), b = nt(a.baseId, o), f = ot(a.baseId, o), p = o === a.value;
|
|
94
|
-
return /* @__PURE__ */ l(
|
|
95
|
-
Ct,
|
|
96
|
-
{
|
|
97
|
-
asChild: !0,
|
|
98
|
-
...n,
|
|
99
|
-
focusable: !i,
|
|
100
|
-
active: p,
|
|
101
|
-
children: /* @__PURE__ */ l(
|
|
102
|
-
R.button,
|
|
103
|
-
{
|
|
104
|
-
type: "button",
|
|
105
|
-
role: "tab",
|
|
106
|
-
"aria-selected": p,
|
|
107
|
-
"aria-controls": f,
|
|
108
|
-
"data-state": p ? "active" : "inactive",
|
|
109
|
-
"data-disabled": i ? "" : void 0,
|
|
110
|
-
disabled: i,
|
|
111
|
-
id: b,
|
|
112
|
-
...u,
|
|
113
|
-
ref: r,
|
|
114
|
-
onMouseDown: D(e.onMouseDown, (d) => {
|
|
115
|
-
!i && d.button === 0 && d.ctrlKey === !1 ? a.onValueChange(o) : d.preventDefault();
|
|
116
|
-
}),
|
|
117
|
-
onKeyDown: D(e.onKeyDown, (d) => {
|
|
118
|
-
[" ", "Enter"].includes(d.key) && a.onValueChange(o);
|
|
119
|
-
}),
|
|
120
|
-
onFocus: D(e.onFocus, () => {
|
|
121
|
-
const d = a.activationMode !== "manual";
|
|
122
|
-
!p && !i && d && a.onValueChange(o);
|
|
123
|
-
})
|
|
124
|
-
}
|
|
125
|
-
)
|
|
126
|
-
}
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
);
|
|
130
|
-
tt.displayName = Y;
|
|
131
|
-
var et = "TabsContent", rt = T.forwardRef(
|
|
132
|
-
(e, r) => {
|
|
133
|
-
const { __scopeTabs: s, value: o, forceMount: i, children: u, ...a } = e, n = z(et, s), b = nt(n.baseId, o), f = ot(n.baseId, o), p = o === n.value, d = T.useRef(p);
|
|
134
|
-
return T.useEffect(() => {
|
|
135
|
-
const v = requestAnimationFrame(() => d.current = !1);
|
|
136
|
-
return () => cancelAnimationFrame(v);
|
|
137
|
-
}, []), /* @__PURE__ */ l($t, { present: i || p, children: ({ present: v }) => /* @__PURE__ */ l(
|
|
138
|
-
R.div,
|
|
139
|
-
{
|
|
140
|
-
"data-state": p ? "active" : "inactive",
|
|
141
|
-
"data-orientation": n.orientation,
|
|
142
|
-
role: "tabpanel",
|
|
143
|
-
"aria-labelledby": b,
|
|
144
|
-
hidden: !v,
|
|
145
|
-
id: f,
|
|
146
|
-
tabIndex: 0,
|
|
147
|
-
...a,
|
|
148
|
-
ref: r,
|
|
149
|
-
style: {
|
|
150
|
-
...e.style,
|
|
151
|
-
animationDuration: d.current ? "0s" : void 0
|
|
152
|
-
},
|
|
153
|
-
children: v && u
|
|
154
|
-
}
|
|
155
|
-
) });
|
|
156
|
-
}
|
|
157
|
-
);
|
|
158
|
-
rt.displayName = et;
|
|
159
|
-
function nt(e, r) {
|
|
160
|
-
return `${e}-trigger-${r}`;
|
|
161
|
-
}
|
|
162
|
-
function ot(e, r) {
|
|
163
|
-
return `${e}-content-${r}`;
|
|
164
|
-
}
|
|
165
|
-
var Et = J, jt = U, At = tt, Lt = rt;
|
|
166
|
-
const Pt = {
|
|
167
|
-
"purpur-tab-content": "_purpur-tab-content_1ugbi_1",
|
|
168
|
-
"purpur-tab-content--force-mount": "_purpur-tab-content--force-mount_1ugbi_15"
|
|
169
|
-
}, Mt = B.bind(Pt), K = "purpur-tab-content", Dt = q(
|
|
170
|
-
({ children: e, tabId: r, "data-testid": s, className: o, disableForceMount: i, ...u }, a) => /* @__PURE__ */ l(
|
|
171
|
-
Lt,
|
|
172
|
-
{
|
|
173
|
-
ref: a,
|
|
174
|
-
className: Mt(K, o, {
|
|
175
|
-
[`${K}--force-mount`]: !i
|
|
176
|
-
}),
|
|
177
|
-
"data-testid": s,
|
|
178
|
-
value: r,
|
|
179
|
-
forceMount: !i || void 0,
|
|
180
|
-
...u,
|
|
181
|
-
children: e
|
|
182
|
-
}
|
|
183
|
-
)
|
|
184
|
-
), Vt = (e) => !!e && gt(e) && !!e.props.name && !!e.props.tabId, Bt = {
|
|
185
|
-
"purpur-tab-header": "_purpur-tab-header_1tc2s_1",
|
|
186
|
-
"purpur-tab-header--contained": "_purpur-tab-header--contained_1tc2s_36",
|
|
187
|
-
"purpur-tab-header--contained-negative": "_purpur-tab-header--contained-negative_1tc2s_36",
|
|
188
|
-
"purpur-tab-header--line": "_purpur-tab-header--line_1tc2s_39",
|
|
189
|
-
"purpur-tab-header--line-negative": "_purpur-tab-header--line-negative_1tc2s_51",
|
|
190
|
-
"purpur-tab-header--full-width": "_purpur-tab-header--full-width_1tc2s_100"
|
|
191
|
-
}, zt = B.bind(Bt), V = "purpur-tab-header", Ft = q(
|
|
192
|
-
({
|
|
193
|
-
index: e,
|
|
194
|
-
tabId: r,
|
|
195
|
-
variant: s,
|
|
196
|
-
negative: o,
|
|
197
|
-
onFocus: i,
|
|
198
|
-
fullWidth: u,
|
|
199
|
-
"data-testid": a,
|
|
200
|
-
children: n
|
|
201
|
-
}, b) => /* @__PURE__ */ l(
|
|
202
|
-
At,
|
|
203
|
-
{
|
|
204
|
-
id: `${r}-trigger`,
|
|
205
|
-
className: zt(V, `${V}--${s}${o ? "-negative" : ""}`, {
|
|
206
|
-
[`${V}--full-width`]: u
|
|
207
|
-
}),
|
|
208
|
-
value: r,
|
|
209
|
-
"data-testid": a,
|
|
210
|
-
"data-index": e,
|
|
211
|
-
ref: b,
|
|
212
|
-
onFocus: i,
|
|
213
|
-
children: n
|
|
214
|
-
}
|
|
215
|
-
)
|
|
216
|
-
), kt = {
|
|
217
|
-
"purpur-tabs__wrapper": "_purpur-tabs__wrapper_jv2vl_1",
|
|
218
|
-
"purpur-tabs__scroll-button": "_purpur-tabs__scroll-button_jv2vl_9",
|
|
219
|
-
"purpur-tabs__scroll-button--left": "_purpur-tabs__scroll-button--left_jv2vl_71",
|
|
220
|
-
"purpur-tabs__scroll-button--right": "_purpur-tabs__scroll-button--right_jv2vl_74",
|
|
221
|
-
"purpur-tabs__wrapper--scroll-start": "_purpur-tabs__wrapper--scroll-start_jv2vl_77",
|
|
222
|
-
"purpur-tabs__wrapper--scroll-end": "_purpur-tabs__wrapper--scroll-end_jv2vl_80",
|
|
223
|
-
"purpur-tabs--line": "_purpur-tabs--line_jv2vl_83",
|
|
224
|
-
"purpur-tabs--line-negative": "_purpur-tabs--line-negative_jv2vl_83",
|
|
225
|
-
"purpur-tabs__selected-border": "_purpur-tabs__selected-border_jv2vl_91",
|
|
226
|
-
"purpur-tabs__content-wrapper": "_purpur-tabs__content-wrapper_jv2vl_115",
|
|
227
|
-
"purpur-tabs--contained": "_purpur-tabs--contained_jv2vl_123",
|
|
228
|
-
"purpur-tabs__list": "_purpur-tabs__list_jv2vl_123",
|
|
229
|
-
"purpur-tabs--contained-negative": "_purpur-tabs--contained-negative_jv2vl_123",
|
|
230
|
-
"purpur-tabs__content-container": "_purpur-tabs__content-container_jv2vl_126",
|
|
231
|
-
"purpur-tabs--full-width": "_purpur-tabs--full-width_jv2vl_136"
|
|
232
|
-
}, ee = ["line", "contained"], Gt = (e) => new CustomEvent("tabChangeDetail", { detail: { value: e } }), m = B.bind(kt), _ = "purpur-tabs", Wt = (e, r) => {
|
|
233
|
-
if (typeof e?.getBoundingClientRect != "function" || typeof r?.scroll != "function")
|
|
234
|
-
return;
|
|
235
|
-
const s = e.getBoundingClientRect(), o = r.getBoundingClientRect(), i = r.clientWidth, u = parseInt(getComputedStyle(r).borderLeftWidth?.split("px")[0], 10), a = o.left + (isNaN(u) ? 0 : u);
|
|
236
|
-
let n;
|
|
237
|
-
s.right > o.right && (n = s.left + r.scrollLeft, n = n + s.width - i + i * 0.1, n = n - a), s.left < o.left && (n = s.left + r.scrollLeft, n = n - i * 0.1, n = n - a), n !== void 0 && r.scroll({ left: n, behavior: "smooth" });
|
|
238
|
-
}, Ot = ({
|
|
239
|
-
children: e,
|
|
240
|
-
variant: r = "line",
|
|
241
|
-
negative: s = !1,
|
|
242
|
-
fullWidth: o = !1,
|
|
243
|
-
onChange: i,
|
|
244
|
-
className: u,
|
|
245
|
-
defaultValue: a,
|
|
246
|
-
animateHeight: n = !1,
|
|
247
|
-
"data-testid": b,
|
|
248
|
-
value: f,
|
|
249
|
-
...p
|
|
250
|
-
}) => {
|
|
251
|
-
const d = M(null), [v, at] = $(-1), [st, F] = $({}), [it, ct] = $(0), [lt, ut] = $(0), g = x.toArray(e).filter(Vt), w = M(null), k = M(new Array(g.length)), G = 200, E = r === "line", dt = m(
|
|
252
|
-
_,
|
|
253
|
-
`${_}--${r}${s ? "-negative" : ""}`,
|
|
254
|
-
{ [`${_}--full-width`]: o },
|
|
255
|
-
u
|
|
256
|
-
), j = x.map(g, ({ props: { tabId: t } }) => t), pt = () => {
|
|
257
|
-
const t = j.findIndex((c) => c === a);
|
|
258
|
-
return t >= 0 ? t : 0;
|
|
259
|
-
};
|
|
260
|
-
N(() => {
|
|
261
|
-
f && W(g.findIndex((t) => t.props.tabId === f));
|
|
262
|
-
}, [g, f]);
|
|
263
|
-
const [A, W] = $(pt);
|
|
264
|
-
if (new Set(j).size !== j.length)
|
|
265
|
-
throw new Error("tabId must be unique");
|
|
266
|
-
const L = (t, c) => c || b ? `${c || b}-${t}` : void 0, O = () => {
|
|
267
|
-
if (!E)
|
|
268
|
-
return;
|
|
269
|
-
const t = k.current[A];
|
|
270
|
-
ct(t?.offsetLeft || 0), ut(t?.getBoundingClientRect().width || 0);
|
|
271
|
-
}, _t = (t) => {
|
|
272
|
-
E && !f && W(g.findIndex((c) => c.props.tabId === t)), i?.(Gt(t));
|
|
273
|
-
}, bt = (t) => {
|
|
274
|
-
if (w?.current) {
|
|
275
|
-
const { scrollLeft: c } = w.current, h = t === "left" ? -G : G;
|
|
276
|
-
w.current.scroll({ left: c + h, behavior: "smooth" });
|
|
277
|
-
}
|
|
278
|
-
}, H = ({ side: t }) => /* @__PURE__ */ l(
|
|
279
|
-
"button",
|
|
280
|
-
{
|
|
281
|
-
className: m(`${_}__scroll-button`, `${_}__scroll-button--${t}`),
|
|
282
|
-
onClick: () => bt(t),
|
|
283
|
-
type: "button",
|
|
284
|
-
"aria-hidden": "true",
|
|
285
|
-
tabIndex: -1,
|
|
286
|
-
"data-testid": L("scroll-button"),
|
|
287
|
-
children: /* @__PURE__ */ l(ht, { svg: t === "left" ? xt : Nt, size: "md" })
|
|
288
|
-
}
|
|
289
|
-
);
|
|
290
|
-
return N(() => {
|
|
291
|
-
const t = () => {
|
|
292
|
-
if (d.current && n) {
|
|
293
|
-
const h = d.current.offsetHeight;
|
|
294
|
-
at(h);
|
|
295
|
-
}
|
|
296
|
-
}, c = () => {
|
|
297
|
-
t(), O();
|
|
298
|
-
};
|
|
299
|
-
return t(), window.addEventListener("resize", c), () => {
|
|
300
|
-
window.removeEventListener("resize", c);
|
|
301
|
-
};
|
|
302
|
-
}, [A, n]), N(() => {
|
|
303
|
-
O();
|
|
304
|
-
}, [A, o, g.length, r]), N(() => {
|
|
305
|
-
const t = w.current;
|
|
306
|
-
if (!t) return;
|
|
307
|
-
const c = () => {
|
|
308
|
-
const { scrollLeft: h, scrollWidth: I, clientWidth: y } = t, C = I > y, ft = h <= 1, vt = h + y >= I - 1;
|
|
309
|
-
if (!C) {
|
|
310
|
-
F({});
|
|
311
|
-
return;
|
|
312
|
-
}
|
|
313
|
-
F({
|
|
314
|
-
[`${_}__wrapper--scroll-start`]: !ft,
|
|
315
|
-
[`${_}__wrapper--scroll-end`]: !vt
|
|
316
|
-
});
|
|
317
|
-
};
|
|
318
|
-
return c(), t.addEventListener("scroll", c, { passive: !0 }), window.addEventListener("resize", c), () => {
|
|
319
|
-
t.removeEventListener("scroll", c), window.removeEventListener("resize", c);
|
|
320
|
-
};
|
|
321
|
-
}, []), /* @__PURE__ */ l(
|
|
322
|
-
Et,
|
|
323
|
-
{
|
|
324
|
-
defaultValue: a ?? g[0].props.tabId,
|
|
325
|
-
onValueChange: _t,
|
|
326
|
-
"data-testid": b,
|
|
327
|
-
className: dt,
|
|
328
|
-
value: f,
|
|
329
|
-
...p,
|
|
330
|
-
children: /* @__PURE__ */ P("div", { className: m(`${_}__container`), children: [
|
|
331
|
-
/* @__PURE__ */ P("div", { className: m(`${_}__wrapper`, st), children: [
|
|
332
|
-
/* @__PURE__ */ P(
|
|
333
|
-
jt,
|
|
334
|
-
{
|
|
335
|
-
ref: (t) => {
|
|
336
|
-
w.current = t;
|
|
337
|
-
},
|
|
338
|
-
className: m(`${_}__list`),
|
|
339
|
-
children: [
|
|
340
|
-
x.map(g, (t, c) => {
|
|
341
|
-
const { name: h, tabId: I, "data-testid": y } = t.props;
|
|
342
|
-
return /* @__PURE__ */ l(
|
|
343
|
-
Ft,
|
|
344
|
-
{
|
|
345
|
-
"data-testid": L("header", y),
|
|
346
|
-
index: c,
|
|
347
|
-
tabId: I,
|
|
348
|
-
ref: (C) => {
|
|
349
|
-
C && (k.current[c] = C);
|
|
350
|
-
},
|
|
351
|
-
onFocus: (C) => {
|
|
352
|
-
Wt(C.target, w.current);
|
|
353
|
-
},
|
|
354
|
-
variant: r,
|
|
355
|
-
negative: s,
|
|
356
|
-
fullWidth: o,
|
|
357
|
-
children: h
|
|
358
|
-
}
|
|
359
|
-
);
|
|
360
|
-
}),
|
|
361
|
-
E && /* @__PURE__ */ l(
|
|
362
|
-
"div",
|
|
363
|
-
{
|
|
364
|
-
className: m(`${_}__selected-border`),
|
|
365
|
-
style: {
|
|
366
|
-
width: lt,
|
|
367
|
-
transform: `translateX(${it}px)`
|
|
368
|
-
},
|
|
369
|
-
"data-testid": L("selected-border")
|
|
370
|
-
}
|
|
371
|
-
)
|
|
372
|
-
]
|
|
373
|
-
}
|
|
374
|
-
),
|
|
375
|
-
/* @__PURE__ */ l(H, { side: "left" }),
|
|
376
|
-
/* @__PURE__ */ l(H, { side: "right" })
|
|
377
|
-
] }),
|
|
378
|
-
/* @__PURE__ */ l(
|
|
379
|
-
"div",
|
|
380
|
-
{
|
|
381
|
-
className: n ? m(`${_}__content-wrapper`) : "",
|
|
382
|
-
style: { height: n && v > -1 ? `${v}px` : "auto" },
|
|
383
|
-
children: /* @__PURE__ */ l("div", { ref: d, className: m(`${_}__content-container`), children: x.map(g, (t) => t) })
|
|
384
|
-
}
|
|
385
|
-
)
|
|
386
|
-
] })
|
|
387
|
-
}
|
|
388
|
-
);
|
|
389
|
-
};
|
|
390
|
-
Ot.Content = Dt;
|
|
391
|
-
export {
|
|
392
|
-
Ot as T,
|
|
393
|
-
Gt as c,
|
|
394
|
-
ee as t
|
|
395
|
-
};
|
|
396
|
-
//# sourceMappingURL=tabs-CoXMAwMx.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-CoXMAwMx.mjs","sources":["../../../components/icon/dist/assets/chevron-left.es.js","../../../components/icon/dist/assets/chevron-right.es.js","../../../common/temp/node_modules/.pnpm/@radix-ui+react-tabs@1.1.13_@types+react-dom@19.2.3_@types+react@19.2.14__@types+react@_2ad0945e3cb98dc5bbfaaf29c105e977/node_modules/@radix-ui/react-tabs/dist/index.mjs","../../../components/tabs/src/tab-content.tsx","../../../components/tabs/src/tab-header.tsx","../../../components/tabs/src/tabs.utils.ts","../../../components/tabs/src/tabs.tsx"],"sourcesContent":["const e = {\n name: \"chevron-left\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M16.175 3.905a.9.9 0 0 1-.08 1.27L8.36 12l7.736 6.825a.9.9 0 0 1-1.191 1.35l-8.5-7.5a.9.9 0 0 1 0-1.35l8.5-7.5a.9.9 0 0 1 1.27.08Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-left\"],\n category: \"utility\"\n};\nexport {\n e as chevronLeft\n};\n//# sourceMappingURL=chevron-left.es.js.map\n","const e = {\n name: \"chevron-right\",\n svg: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path fill-rule=\"evenodd\" d=\"M7.809 3.924a.9.9 0 0 0 .115 1.267L16.094 12l-8.17 6.809a.9.9 0 0 0 1.152 1.382l9-7.5a.9.9 0 0 0 0-1.382l-9-7.5a.9.9 0 0 0-1.267.115Z\" clip-rule=\"evenodd\"/></svg>',\n keywords: [\"chevron-right\"],\n category: \"utility\"\n};\nexport {\n e as chevronRight\n};\n//# sourceMappingURL=chevron-right.es.js.map\n","\"use client\";\n\n// src/tabs.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createRovingFocusGroupScope } from \"@radix-ui/react-roving-focus\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as RovingFocusGroup from \"@radix-ui/react-roving-focus\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TABS_NAME = \"Tabs\";\nvar [createTabsContext, createTabsScope] = createContextScope(TABS_NAME, [\n createRovingFocusGroupScope\n]);\nvar useRovingFocusGroupScope = createRovingFocusGroupScope();\nvar [TabsProvider, useTabsContext] = createTabsContext(TABS_NAME);\nvar Tabs = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeTabs,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = \"horizontal\",\n dir,\n activationMode = \"automatic\",\n ...tabsProps\n } = props;\n const direction = useDirection(dir);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? \"\",\n caller: TABS_NAME\n });\n return /* @__PURE__ */ jsx(\n TabsProvider,\n {\n scope: __scopeTabs,\n baseId: useId(),\n value,\n onValueChange: setValue,\n orientation,\n dir: direction,\n activationMode,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n dir: direction,\n \"data-orientation\": orientation,\n ...tabsProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabs.displayName = TABS_NAME;\nvar TAB_LIST_NAME = \"TabsList\";\nvar TabsList = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, loop = true, ...listProps } = props;\n const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Root,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n orientation: context.orientation,\n dir: context.dir,\n loop,\n children: /* @__PURE__ */ jsx(\n Primitive.div,\n {\n role: \"tablist\",\n \"aria-orientation\": context.orientation,\n ...listProps,\n ref: forwardedRef\n }\n )\n }\n );\n }\n);\nTabsList.displayName = TAB_LIST_NAME;\nvar TRIGGER_NAME = \"TabsTrigger\";\nvar TabsTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, disabled = false, ...triggerProps } = props;\n const context = useTabsContext(TRIGGER_NAME, __scopeTabs);\n const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n return /* @__PURE__ */ jsx(\n RovingFocusGroup.Item,\n {\n asChild: true,\n ...rovingFocusGroupScope,\n focusable: !disabled,\n active: isSelected,\n children: /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": isSelected,\n \"aria-controls\": contentId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n id: triggerId,\n ...triggerProps,\n ref: forwardedRef,\n onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {\n if (!disabled && event.button === 0 && event.ctrlKey === false) {\n context.onValueChange(value);\n } else {\n event.preventDefault();\n }\n }),\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if ([\" \", \"Enter\"].includes(event.key)) context.onValueChange(value);\n }),\n onFocus: composeEventHandlers(props.onFocus, () => {\n const isAutomaticActivation = context.activationMode !== \"manual\";\n if (!isSelected && !disabled && isAutomaticActivation) {\n context.onValueChange(value);\n }\n })\n }\n )\n }\n );\n }\n);\nTabsTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"TabsContent\";\nvar TabsContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeTabs, value, forceMount, children, ...contentProps } = props;\n const context = useTabsContext(CONTENT_NAME, __scopeTabs);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const isSelected = value === context.value;\n const isMountAnimationPreventedRef = React.useRef(isSelected);\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n return () => cancelAnimationFrame(rAF);\n }, []);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isSelected, children: ({ present }) => /* @__PURE__ */ jsx(\n Primitive.div,\n {\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-orientation\": context.orientation,\n role: \"tabpanel\",\n \"aria-labelledby\": triggerId,\n hidden: !present,\n id: contentId,\n tabIndex: 0,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...props.style,\n animationDuration: isMountAnimationPreventedRef.current ? \"0s\" : void 0\n },\n children: present && children\n }\n ) });\n }\n);\nTabsContent.displayName = CONTENT_NAME;\nfunction makeTriggerId(baseId, value) {\n return `${baseId}-trigger-${value}`;\n}\nfunction makeContentId(baseId, value) {\n return `${baseId}-content-${value}`;\n}\nvar Root2 = Tabs;\nvar List = TabsList;\nvar Trigger = TabsTrigger;\nvar Content = TabsContent;\nexport {\n Content,\n List,\n Root2 as Root,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Trigger,\n createTabsScope\n};\n//# sourceMappingURL=index.mjs.map\n","import React, { forwardRef, isValidElement, type ReactElement, type ReactNode } from \"react\";\nimport type { BaseProps } from \"@purpur/common-types\";\nimport { Content } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-content.module.scss\";\n\nexport type TabContentProps = Omit<BaseProps, \"children\"> & {\n /**\n * Content to be rendered inside a `button` element.\n * Only pass ReactNodes that are valid as children of a `button`, such as plain text,\n * inline elements like `span` or other non-interactive elements. Avoid block-level or interactive elements.\n */\n name: ReactNode;\n /**\n * A unique ID that associates the tab with a content.\n * */\n tabId: string;\n /**\n * If true, the inactive tab content will not be rendered.\n */\n disableForceMount?: boolean;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-content\";\n\nexport const TabContent = forwardRef<HTMLDivElement, TabContentProps>(\n ({ children, tabId, \"data-testid\": dataTestId, className, disableForceMount, ...props }, ref) => (\n <Content\n ref={ref}\n className={cx(rootClassName, className, {\n [`${rootClassName}--force-mount`]: !disableForceMount,\n })}\n data-testid={dataTestId}\n value={tabId}\n forceMount={!disableForceMount || undefined}\n {...props}\n >\n {children}\n </Content>\n )\n);\n\nexport const isTabContent = (child?: ReactNode): child is ReactElement<TabContentProps> =>\n !!child && isValidElement<TabContentProps>(child) && !!child.props.name && !!child.props.tabId;\n","import React, {\n type FocusEventHandler,\n type ForwardedRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport { Trigger } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./tab-header.module.scss\";\nimport { type TabsVariant } from \"./tabs.utils\";\n\ntype TabHeaderProps = {\n \"data-testid\"?: string;\n index: number;\n tabId: string;\n variant: TabsVariant;\n negative?: boolean;\n onFocus: FocusEventHandler<HTMLButtonElement>;\n fullWidth?: boolean;\n children: ReactNode;\n};\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tab-header\";\n\nexport const TabHeader = forwardRef(\n <T extends HTMLButtonElement>(\n {\n index,\n tabId,\n variant,\n negative,\n onFocus,\n fullWidth,\n \"data-testid\": dataTestId,\n children,\n }: TabHeaderProps,\n ref: ForwardedRef<T>\n ) => (\n <Trigger\n id={`${tabId}-trigger`}\n className={cx(rootClassName, `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`, {\n [`${rootClassName}--full-width`]: fullWidth,\n })}\n value={tabId}\n data-testid={dataTestId}\n data-index={index}\n ref={ref}\n onFocus={onFocus}\n >\n {children}\n </Trigger>\n )\n);\n","import type { FunctionComponent } from \"react\";\n\nimport type { TabContent } from \"./tab-content\";\n\nexport type TabsCmp<P> = FunctionComponent<P> & {\n Content: typeof TabContent;\n};\n\nexport const tabsVariants = [\"line\", \"contained\"] as const;\n\nexport type TabsVariant = (typeof tabsVariants)[number];\n\nexport const createTabChangeDetailEvent = (value: string) =>\n new CustomEvent<TabChangeDetail>(\"tabChangeDetail\", { detail: { value } });\n\nexport type TabChangeDetail = { value: string };\n","import React, {\n Children,\n type HTMLAttributes,\n type ReactElement,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Icon } from \"@purpur/icon\";\nimport { chevronLeft } from \"@purpur/icon/assets/chevron-left\";\nimport { chevronRight } from \"@purpur/icon/assets/chevron-right\";\nimport { List, Root } from \"@radix-ui/react-tabs\";\nimport c from \"classnames/bind\";\n\nimport { isTabContent, TabContent } from \"./tab-content\";\nimport { TabHeader } from \"./tab-header\";\nimport styles from \"./tabs.module.scss\";\nimport {\n createTabChangeDetailEvent,\n type TabChangeDetail,\n type TabsCmp,\n type TabsVariant,\n} from \"./tabs.utils\";\n\ntype TabsProps = {\n children: Array<ReactElement<typeof TabContent>> | ReactElement<typeof TabContent>;\n variant?: TabsVariant;\n negative?: boolean;\n fullWidth?: boolean;\n /**\n * The controlled value of the tabs. Must be used in conjunction with onChange.\n */\n value?: string;\n /**\n * Event handler called when the value changes.\n * */\n onChange?: (event: CustomEvent<TabChangeDetail>) => void;\n defaultValue?: string;\n /**\n * When true, animates the height of the component when switching tabs.\n * */\n animateHeight?: boolean;\n \"data-testid\"?: string;\n} & Pick<HTMLAttributes<HTMLDivElement>, \"style\" | \"className\">;\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-tabs\";\n\nconst scrollToTarget = (target: HTMLElement, tabList?: HTMLDivElement | null) => {\n /**\n * scroll may not be available in test runner, so check existence before\n * proceeding. We can't use scrollIntoView() because Safari doesn't support\n * it fully.\n */\n if (\n typeof target?.getBoundingClientRect !== \"function\" ||\n typeof tabList?.scroll !== \"function\"\n ) {\n return;\n }\n\n const targetRect = target.getBoundingClientRect();\n const wrapperRect = tabList.getBoundingClientRect();\n const wrapperWidth = tabList.clientWidth;\n const wrapperOffset = parseInt(getComputedStyle(tabList).borderLeftWidth?.split(\"px\")[0], 10);\n const offset = wrapperRect.left + (isNaN(wrapperOffset) ? 0 : wrapperOffset);\n let left;\n\n // Handle forward navigation\n if (targetRect.right > wrapperRect.right) {\n left = targetRect.left + tabList.scrollLeft;\n left = left + targetRect.width - wrapperWidth + wrapperWidth * 0.1;\n left = left - offset;\n }\n\n // Handle backwards navigation\n if (targetRect.left < wrapperRect.left) {\n left = targetRect.left + tabList.scrollLeft;\n left = left - wrapperWidth * 0.1;\n left = left - offset;\n }\n\n if (left !== undefined) {\n tabList.scroll({ left, behavior: \"smooth\" });\n }\n};\n\nexport const Tabs: TabsCmp<TabsProps> = ({\n children,\n variant = \"line\",\n negative = false,\n fullWidth = false,\n onChange,\n className,\n defaultValue,\n animateHeight = false,\n \"data-testid\": dataTestId,\n value,\n ...props\n}) => {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState(-1);\n const [scrollClasses, setScrollClasses] = useState<{ [key: string]: boolean }>({});\n const [selectedTriggerOffset, setSelectedTriggerOffset] = useState(0);\n const [selectedTriggerWidth, setSelectedTriggerWidth] = useState(0);\n const tabContentChildren = Children.toArray(children).filter(isTabContent);\n const tabList = useRef<HTMLDivElement>(null);\n const tabChildren = useRef<HTMLButtonElement[]>(new Array(tabContentChildren.length));\n const sideScrollAdjustmentSize = 200;\n const isLineVariant = variant === \"line\";\n\n const classNames = cx(\n rootClassName,\n `${rootClassName}--${variant}${negative ? \"-negative\" : \"\"}`,\n { [`${rootClassName}--full-width`]: fullWidth },\n className\n );\n\n const tabIds = Children.map(tabContentChildren, ({ props: { tabId } }) => tabId);\n\n const getDefaultTabIndex = () => {\n const defaultIndex = tabIds.findIndex((tabIndex) => tabIndex === defaultValue);\n return defaultIndex >= 0 ? defaultIndex : 0;\n };\n\n useEffect(() => {\n if (value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === value));\n }\n }, [tabContentChildren, value]);\n\n const [activeIndex, setActiveIndex] = useState(getDefaultTabIndex);\n\n if (new Set(tabIds).size !== tabIds.length) {\n throw new Error(\"tabId must be unique\");\n }\n\n const getTestId = (name: string, id?: string) =>\n id || dataTestId ? `${id || dataTestId}-${name}` : undefined;\n\n const handleLinePosition = () => {\n if (!isLineVariant) {\n return;\n }\n\n const activeTabElement = tabChildren.current[activeIndex];\n\n setSelectedTriggerOffset(activeTabElement?.offsetLeft || 0);\n setSelectedTriggerWidth(activeTabElement?.getBoundingClientRect().width || 0);\n };\n\n const handleTabChange = (_value: string) => {\n if (isLineVariant && !value) {\n setActiveIndex(tabContentChildren.findIndex((child) => child.props.tabId === _value));\n }\n onChange?.(createTabChangeDetailEvent(_value));\n };\n\n const handleScrollButtonClick = (side: \"left\" | \"right\") => {\n if (tabList?.current) {\n const { scrollLeft } = tabList.current;\n const modifier = side === \"left\" ? -sideScrollAdjustmentSize : sideScrollAdjustmentSize;\n\n tabList.current.scroll({ left: scrollLeft + modifier, behavior: \"smooth\" });\n }\n };\n\n const ScrollButton = ({ side }: { side: \"left\" | \"right\" }) => (\n <button\n className={cx(`${rootClassName}__scroll-button`, `${rootClassName}__scroll-button--${side}`)}\n onClick={() => handleScrollButtonClick(side)}\n type=\"button\"\n aria-hidden=\"true\"\n tabIndex={-1}\n data-testid={getTestId(\"scroll-button\")}\n >\n <Icon svg={side === \"left\" ? chevronLeft : chevronRight} size=\"md\" />\n </button>\n );\n\n useEffect(() => {\n const setNewHeight = () => {\n if (contentRef.current && animateHeight) {\n const newHeight = contentRef.current.offsetHeight;\n setHeight(newHeight);\n }\n };\n\n const handleResize = () => {\n setNewHeight();\n handleLinePosition();\n };\n\n setNewHeight();\n\n window.addEventListener(\"resize\", handleResize);\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, [activeIndex, animateHeight]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n handleLinePosition();\n }, [activeIndex, fullWidth, tabContentChildren.length, variant]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n const root = tabList.current;\n if (!root) return;\n\n const updateScrollState = () => {\n const { scrollLeft, scrollWidth, clientWidth } = root;\n\n const canScroll = scrollWidth > clientWidth;\n const atStart = scrollLeft <= 1;\n const atEnd = scrollLeft + clientWidth >= scrollWidth - 1;\n\n if (!canScroll) {\n setScrollClasses({});\n return;\n }\n\n setScrollClasses({\n [`${rootClassName}__wrapper--scroll-start`]: !atStart,\n [`${rootClassName}__wrapper--scroll-end`]: !atEnd,\n });\n };\n\n updateScrollState();\n\n root.addEventListener(\"scroll\", updateScrollState, { passive: true });\n window.addEventListener(\"resize\", updateScrollState);\n\n return () => {\n root.removeEventListener(\"scroll\", updateScrollState);\n window.removeEventListener(\"resize\", updateScrollState);\n };\n }, []);\n\n return (\n <Root\n defaultValue={defaultValue ?? tabContentChildren[0].props.tabId}\n onValueChange={handleTabChange}\n data-testid={dataTestId}\n className={classNames}\n value={value}\n {...props}\n >\n <div className={cx(`${rootClassName}__container`)}>\n <div className={cx(`${rootClassName}__wrapper`, scrollClasses)}>\n <List\n ref={(el) => {\n tabList.current = el;\n }}\n className={cx(`${rootClassName}__list`)}\n >\n {Children.map(tabContentChildren, (child, index) => {\n const { name, tabId, \"data-testid\": childDataTestId } = child.props;\n return (\n <TabHeader\n data-testid={getTestId(\"header\", childDataTestId)}\n index={index}\n tabId={tabId}\n ref={(el) => {\n if (el) {\n tabChildren.current[index] = el;\n }\n }}\n onFocus={(e) => {\n scrollToTarget(e.target as HTMLElement, tabList.current);\n }}\n variant={variant}\n negative={negative}\n fullWidth={fullWidth}\n >\n {name}\n </TabHeader>\n );\n })}\n {isLineVariant && (\n <div\n className={cx(`${rootClassName}__selected-border`)}\n style={{\n width: selectedTriggerWidth,\n transform: `translateX(${selectedTriggerOffset}px)`,\n }}\n data-testid={getTestId(\"selected-border\")}\n />\n )}\n </List>\n <ScrollButton side=\"left\" />\n <ScrollButton side=\"right\" />\n </div>\n <div\n className={animateHeight ? cx(`${rootClassName}__content-wrapper`) : \"\"}\n style={{ height: animateHeight && height > -1 ? `${height}px` : \"auto\" }}\n >\n <div ref={contentRef} className={cx(`${rootClassName}__content-container`)}>\n {Children.map(tabContentChildren, (child) => child)}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n\nTabs.Content = TabContent;\n\nexport * from \"./tabs.utils\";\n"],"names":["e","TABS_NAME","createTabsContext","createContextScope","createRovingFocusGroupScope","useRovingFocusGroupScope","TabsProvider","useTabsContext","Tabs","React","props","forwardedRef","__scopeTabs","valueProp","onValueChange","defaultValue","orientation","dir","activationMode","tabsProps","direction","useDirection","value","setValue","useControllableState","jsx","useId","Primitive","TAB_LIST_NAME","TabsList","loop","listProps","context","rovingFocusGroupScope","RovingFocusGroup.Root","TRIGGER_NAME","TabsTrigger","disabled","triggerProps","triggerId","makeTriggerId","contentId","makeContentId","isSelected","RovingFocusGroup.Item","composeEventHandlers","event","isAutomaticActivation","CONTENT_NAME","TabsContent","forceMount","children","contentProps","isMountAnimationPreventedRef","rAF","Presence","present","baseId","Root2","List","Trigger","Content","cx","c","styles","rootClassName","TabContent","forwardRef","tabId","dataTestId","className","disableForceMount","ref","isTabContent","child","isValidElement","TabHeader","index","variant","negative","onFocus","fullWidth","tabsVariants","createTabChangeDetailEvent","scrollToTarget","target","tabList","targetRect","wrapperRect","wrapperWidth","wrapperOffset","offset","left","onChange","animateHeight","contentRef","useRef","height","setHeight","useState","scrollClasses","setScrollClasses","selectedTriggerOffset","setSelectedTriggerOffset","selectedTriggerWidth","setSelectedTriggerWidth","tabContentChildren","Children","tabChildren","sideScrollAdjustmentSize","isLineVariant","classNames","tabIds","getDefaultTabIndex","defaultIndex","tabIndex","useEffect","setActiveIndex","activeIndex","getTestId","name","id","handleLinePosition","activeTabElement","handleTabChange","_value","handleScrollButtonClick","side","scrollLeft","modifier","ScrollButton","Icon","chevronLeft","chevronRight","setNewHeight","newHeight","handleResize","root","updateScrollState","scrollWidth","clientWidth","canScroll","atStart","atEnd","Root","jsxs","el","childDataTestId"],"mappings":"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","x_google_ignoreList":[2]}
|