@purpur/library 10.1.1 → 10.2.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/CHANGELOG.json +45 -0
- package/CHANGELOG.md +19 -1
- package/dist/LICENSE.txt +14 -7
- package/dist/{RichText-B865Qkzj.js → RichText-CeYecUFV.js} +2 -2
- package/dist/{RichText-B865Qkzj.js.map → RichText-CeYecUFV.js.map} +1 -1
- package/dist/{RichText-CPkBwXNI.mjs → RichText-CwQfDo_S.mjs} +2 -2
- package/dist/{RichText-CPkBwXNI.mjs.map → RichText-CwQfDo_S.mjs.map} +1 -1
- package/dist/{ThemeProvider-BJGm3zai.js → ThemeProvider-BGep6X_i.js} +2 -2
- package/dist/{ThemeProvider-BJGm3zai.js.map → ThemeProvider-BGep6X_i.js.map} +1 -1
- package/dist/{ThemeProvider-BJ25_asg.mjs → ThemeProvider-BrAZhasG.mjs} +13 -13
- package/dist/{ThemeProvider-BJ25_asg.mjs.map → ThemeProvider-BrAZhasG.mjs.map} +1 -1
- package/dist/components/avatar/src/avatar.d.ts +1 -1
- package/dist/components/card/src/card-content-container.d.ts +2 -2
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts +1 -1
- package/dist/components/container/src/container.visual.fixtures.d.ts +14 -0
- package/dist/components/container/src/container.visual.fixtures.d.ts.map +1 -0
- package/dist/components/content-block/src/content-block-group.d.ts +2 -2
- package/dist/components/content-block/src/content-block.d.ts +2 -2
- package/dist/components/countdown/src/countdown.d.ts +1 -1
- package/dist/components/countdown/src/countdown.d.ts.map +1 -1
- package/dist/components/countdown/src/countdown.types.d.ts +19 -3
- package/dist/components/countdown/src/countdown.types.d.ts.map +1 -1
- package/dist/components/date-field/src/date-field.d.ts +14 -6
- package/dist/components/date-field/src/date-field.d.ts.map +1 -1
- package/dist/components/date-field/src/utils.d.ts +40 -2
- package/dist/components/date-field/src/utils.d.ts.map +1 -1
- package/dist/components/date-picker/src/date-picker.d.ts +4 -4
- package/dist/components/date-range-field/src/date-range-field.d.ts +3 -1
- package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -1
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group-item.d.ts +2 -2
- package/dist/components/dismissable-chip-group/src/dismissable-chip-group.d.ts +2 -2
- package/dist/components/drawer/src/drawer-container.d.ts +2 -2
- package/dist/components/drawer/src/drawer-content.d.ts +2 -2
- package/dist/components/drawer/src/drawer-scroll-area.d.ts +1 -1
- package/dist/components/dropdown/src/dropdown-combobox.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown-shared.d.ts +3 -1
- package/dist/components/dropdown/src/dropdown-shared.d.ts.map +1 -1
- package/dist/components/dropdown/src/dropdown.types.d.ts +3 -0
- package/dist/components/dropdown/src/dropdown.types.d.ts.map +1 -1
- package/dist/components/dropdown/src/useDropdown.d.ts +1 -1
- package/dist/components/field-error-text/src/field-error-text.d.ts +1 -1
- package/dist/components/file-upload/src/file-upload-types.d.ts +1 -1
- package/dist/components/footer/src/footer-navigation.d.ts +2 -2
- package/dist/components/footer/src/footer-social-link.d.ts +2 -2
- package/dist/components/footer/src/footer.d.ts +3 -3
- package/dist/components/hero-banner/src/hero-banner-actions.d.ts +2 -2
- package/dist/components/hero-banner/src/hero-banner-media.d.ts +2 -2
- package/dist/components/hero-banner/src/hero-banner-types.d.ts +3 -3
- package/dist/components/link/src/link.d.ts +1 -1
- package/dist/components/listbox/src/listbox-item.d.ts +2 -2
- package/dist/components/loading/src/loading-illustrative.d.ts +1 -1
- package/dist/components/modal/src/modal-content.d.ts +2 -2
- package/dist/components/modal/src/modal-trigger.d.ts +2 -2
- package/dist/components/pagination/src/pagination-page-selector.d.ts +2 -2
- package/dist/components/pagination/src/pagination-page-trigger.d.ts +2 -2
- package/dist/components/pagination/src/pagination-step-trigger.d.ts +1 -1
- package/dist/components/pagination/src/types.d.ts +2 -2
- package/dist/components/pagination/src/use-page-options.hook.d.ts +2 -2
- package/dist/components/pagination/src/use-page-size-options.hook.d.ts +2 -2
- package/dist/components/password-field/src/password-field.d.ts +1 -1
- package/dist/components/password-field/src/password-strength-indicator.d.ts +2 -2
- package/dist/components/password-field/src/password-strength.d.ts +2 -2
- package/dist/components/popover/src/popover-button.d.ts +2 -2
- package/dist/components/product-card/src/product-card.d.ts +3 -3
- package/dist/components/promotion-card/src/promotion-card.d.ts +3 -3
- package/dist/components/quantity-selector/src/quantity-selector.d.ts +1 -1
- package/dist/components/radio-button-group/src/radio-button-group-root.d.ts +3 -3
- package/dist/components/radio-card-group/src/radio-card-item.d.ts +1 -1
- package/dist/components/rich-text/src/types.d.ts +1 -1
- package/dist/components/search-field/src/search-field-autocomplete.d.ts +7 -4
- package/dist/components/search-field/src/search-field-autocomplete.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field-base.d.ts +4 -2
- package/dist/components/search-field/src/search-field-base.d.ts.map +1 -1
- package/dist/components/search-field/src/search-field.d.ts +12 -6
- package/dist/components/search-field/src/search-field.d.ts.map +1 -1
- package/dist/components/spinner/src/spinner.d.ts +1 -1
- package/dist/components/stepper/src/stepper-container.d.ts +2 -2
- package/dist/components/stepper/src/stepper-content.d.ts +2 -2
- package/dist/components/stepper/src/stepper-link.d.ts +1 -1
- package/dist/components/stepper/src/stepper.d.ts +1 -1
- package/dist/components/table/src/cell-types/button-group-cell.d.ts +3 -3
- package/dist/components/table/src/table-content.d.ts +2 -2
- package/dist/components/table/src/table.d.ts +2 -2
- package/dist/components/table/src/types.d.ts +4 -4
- package/dist/components/tabs/src/tab-content.d.ts +2 -2
- package/dist/components/text-field/src/text-field.d.ts +1 -1
- package/dist/components/text-spacing/src/text-spacing.d.ts +1 -1
- package/dist/components/toggle/src/toggle.d.ts +1 -1
- package/dist/components/tooltip/src/tooltip.d.ts +3 -3
- package/dist/components-metadata.js +1 -0
- package/dist/countdown-CdGFNLZq.js +2 -0
- package/dist/countdown-CdGFNLZq.js.map +1 -0
- package/dist/countdown-G7eg3CZj.mjs +188 -0
- package/dist/countdown-G7eg3CZj.mjs.map +1 -0
- package/dist/countdown.cjs.js +1 -1
- package/dist/countdown.es.js +1 -1
- package/dist/date-field-D8yGH1mw.js +2 -0
- package/dist/{date-field-CtpWDaSh.js.map → date-field-D8yGH1mw.js.map} +1 -1
- package/dist/{date-field-_rCuf15v.mjs → date-field-DVMPYoLT.mjs} +361 -311
- package/dist/{date-field-_rCuf15v.mjs.map → date-field-DVMPYoLT.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/{date-picker-sqcNAplg.mjs → date-picker-Ban9DLsx.mjs} +6 -6
- package/dist/{date-picker-sqcNAplg.mjs.map → date-picker-Ban9DLsx.mjs.map} +1 -1
- package/dist/{date-picker-BYlszX1W.js → date-picker-re3cPV_Z.js} +2 -2
- package/dist/{date-picker-BYlszX1W.js.map → date-picker-re3cPV_Z.js.map} +1 -1
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/date-range-field-8JmPw-Ei.js +2 -0
- package/dist/date-range-field-8JmPw-Ei.js.map +1 -0
- package/dist/{date-range-field-BmjQeiOv.mjs → date-range-field-dmJO66U_.mjs} +64 -61
- package/dist/date-range-field-dmJO66U_.mjs.map +1 -0
- package/dist/date-range-field.cjs.js +1 -1
- package/dist/date-range-field.es.js +1 -1
- package/dist/dismissable-chip-group-CVo3CS8K.js +2 -0
- package/dist/dismissable-chip-group-CVo3CS8K.js.map +1 -0
- package/dist/dismissable-chip-group-Dov2-9Fe.mjs +95 -0
- package/dist/dismissable-chip-group-Dov2-9Fe.mjs.map +1 -0
- package/dist/dismissable-chip-group.cjs.js +1 -1
- package/dist/dismissable-chip-group.es.js +1 -1
- package/dist/{drawer-oFJcxW58.js → drawer-CSagTJjN.js} +2 -2
- package/dist/{drawer-oFJcxW58.js.map → drawer-CSagTJjN.js.map} +1 -1
- package/dist/{drawer-Chx3H8EU.mjs → drawer-Cw-Y9XH9.mjs} +3 -3
- package/dist/{drawer-Chx3H8EU.mjs.map → drawer-Cw-Y9XH9.mjs.map} +1 -1
- package/dist/drawer.cjs.js +1 -1
- package/dist/drawer.es.js +1 -1
- package/dist/dropdown-BAM4nQhd.mjs +955 -0
- package/dist/dropdown-BAM4nQhd.mjs.map +1 -0
- package/dist/dropdown-Cr8DVw2T.js +2 -0
- package/dist/dropdown-Cr8DVw2T.js.map +1 -0
- package/dist/dropdown.cjs.js +1 -1
- package/dist/dropdown.es.js +1 -1
- package/dist/{file-upload-MvNuX4ks.js → file-upload-CdlYkCg8.js} +2 -2
- package/dist/{file-upload-MvNuX4ks.js.map → file-upload-CdlYkCg8.js.map} +1 -1
- package/dist/{file-upload-Ctw6LCTU.mjs → file-upload-ih5NqF67.mjs} +2 -2
- package/dist/{file-upload-Ctw6LCTU.mjs.map → file-upload-ih5NqF67.mjs.map} +1 -1
- package/dist/file-upload.cjs.js +1 -1
- package/dist/file-upload.es.js +1 -1
- package/dist/{footer-DkVmTd-f.mjs → footer-CVVt8hUE.mjs} +3 -3
- package/dist/{footer-DkVmTd-f.mjs.map → footer-CVVt8hUE.mjs.map} +1 -1
- package/dist/{footer-Bbemct3Z.js → footer-Cat9-v7l.js} +2 -2
- package/dist/{footer-Bbemct3Z.js.map → footer-Cat9-v7l.js.map} +1 -1
- package/dist/footer.cjs.js +1 -1
- package/dist/footer.es.js +1 -1
- package/dist/{hero-banner-Mag1OwL4.js → hero-banner-BNw3eNTs.js} +2 -2
- package/dist/{hero-banner-Mag1OwL4.js.map → hero-banner-BNw3eNTs.js.map} +1 -1
- package/dist/{hero-banner-ChDoFRhq.mjs → hero-banner-MnKuFSku.mjs} +2 -2
- package/dist/{hero-banner-ChDoFRhq.mjs.map → hero-banner-MnKuFSku.mjs.map} +1 -1
- package/dist/hero-banner.cjs.js +1 -1
- package/dist/hero-banner.es.js +1 -1
- package/dist/libraries/library/src/quantity-selector.d.ts +2 -2
- package/dist/libraries/library/src/toggle.d.ts +2 -2
- package/dist/libraries/theme/src/theme-props.d.ts +1 -0
- package/dist/libraries/theme/src/theme-props.d.ts.map +1 -1
- package/dist/libraries/tokens/dist/color/variables.d.ts +1 -0
- package/dist/libraries/tokens/dist/color/variables.dark.d.ts +1 -0
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +293 -292
- package/dist/{modal-CXOYUsJm.js → modal-BSN-wIcN.js} +2 -2
- package/dist/{modal-CXOYUsJm.js.map → modal-BSN-wIcN.js.map} +1 -1
- package/dist/{modal-Pwvhrzn-.mjs → modal-CnzUgU97.mjs} +3 -3
- package/dist/{modal-Pwvhrzn-.mjs.map → modal-CnzUgU97.mjs.map} +1 -1
- package/dist/modal.cjs.js +1 -1
- package/dist/modal.es.js +1 -1
- package/dist/{popover-B6ntmuEK.mjs → popover-B-oWzP-0.mjs} +3 -3
- package/dist/{popover-B6ntmuEK.mjs.map → popover-B-oWzP-0.mjs.map} +1 -1
- package/dist/{popover-DJHMEFXP.js → popover-BzoAQW0i.js} +2 -2
- package/dist/{popover-DJHMEFXP.js.map → popover-BzoAQW0i.js.map} +1 -1
- package/dist/popover.cjs.js +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/{promotion-card-B3mz__m7.js → promotion-card-B8bnNVZ-.js} +2 -2
- package/dist/{promotion-card-B3mz__m7.js.map → promotion-card-B8bnNVZ-.js.map} +1 -1
- package/dist/{promotion-card-Co6qAkTZ.mjs → promotion-card-DwNbzSK3.mjs} +2 -2
- package/dist/{promotion-card-Co6qAkTZ.mjs.map → promotion-card-DwNbzSK3.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/rich-text.cjs.js +1 -1
- package/dist/rich-text.es.js +1 -1
- package/dist/search-field-BR4gETPP.js +2 -0
- package/dist/search-field-BR4gETPP.js.map +1 -0
- package/dist/search-field-DyBcoB9g.mjs +186 -0
- package/dist/search-field-DyBcoB9g.mjs.map +1 -0
- package/dist/search-field.cjs.js +1 -1
- package/dist/search-field.es.js +1 -1
- package/dist/{stepper-D59T-Y2_.mjs → stepper-CGBjyjVw.mjs} +2 -2
- package/dist/{stepper-D59T-Y2_.mjs.map → stepper-CGBjyjVw.mjs.map} +1 -1
- package/dist/{stepper-Dao4XaDV.js → stepper-CbcFVE3v.js} +2 -2
- package/dist/{stepper-Dao4XaDV.js.map → stepper-CbcFVE3v.js.map} +1 -1
- package/dist/stepper.cjs.js +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-CllIkAkM.js → table-CFBK5Gv4.js} +3 -3
- package/dist/{table-CllIkAkM.js.map → table-CFBK5Gv4.js.map} +1 -1
- package/dist/{table-7-6k_wGH.mjs → table-PdfWMFks.mjs} +8 -8
- package/dist/{table-7-6k_wGH.mjs.map → table-PdfWMFks.mjs.map} +1 -1
- package/dist/table.cjs.js +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{text-area-9RUldq6W.js → text-area-AHqUSmEE.js} +2 -2
- package/dist/{text-area-9RUldq6W.js.map → text-area-AHqUSmEE.js.map} +1 -1
- package/dist/{text-area-C58aZEPa.mjs → text-area-DabB5eo_.mjs} +3 -3
- package/dist/{text-area-C58aZEPa.mjs.map → text-area-DabB5eo_.mjs.map} +1 -1
- package/dist/text-area.cjs.js +1 -1
- package/dist/text-area.es.js +1 -1
- package/dist/{text-spacing-BU0mkEf9.mjs → text-spacing-Bmkv_rmc.mjs} +3 -3
- package/dist/{text-spacing-BU0mkEf9.mjs.map → text-spacing-Bmkv_rmc.mjs.map} +1 -1
- package/dist/{text-spacing-CiGPZHuB.js → text-spacing-CdnbUO6z.js} +2 -2
- package/dist/{text-spacing-CiGPZHuB.js.map → text-spacing-CdnbUO6z.js.map} +1 -1
- package/dist/text-spacing.cjs.js +1 -1
- package/dist/text-spacing.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 -0
- package/dist/tokens/color/variables.d.ts +1 -0
- package/dist/tokens/color/variables.dark.css +1 -0
- package/dist/tokens/color/variables.dark.d.ts +1 -0
- package/dist/tokens/color/variables.dark.js +1 -0
- package/dist/tokens/color/variables.dark.json +1 -0
- package/dist/tokens/color/variables.dark.scss +1 -0
- package/dist/tokens/color/variables.js +1 -0
- package/dist/tokens/color/variables.json +1 -0
- package/dist/tokens/color/variables.scss +1 -0
- package/dist/tokens.cjs.js +1 -1
- package/dist/tokens.es.js +167 -166
- package/dist/{tooltip-DeP1UsPW.js → tooltip-DRW4N9Z-.js} +2 -2
- package/dist/{tooltip-DeP1UsPW.js.map → tooltip-DRW4N9Z-.js.map} +1 -1
- package/dist/{tooltip-bqdd2lJL.mjs → tooltip-DzY9olpb.mjs} +3 -3
- package/dist/{tooltip-bqdd2lJL.mjs.map → tooltip-DzY9olpb.mjs.map} +1 -1
- package/dist/tooltip.cjs.js +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/use-autocomplete.es-CoAeiJiu.mjs +155 -0
- package/dist/use-autocomplete.es-CoAeiJiu.mjs.map +1 -0
- package/dist/use-autocomplete.es-Djt1u2i8.js +2 -0
- package/dist/use-autocomplete.es-Djt1u2i8.js.map +1 -0
- package/dist/useColorScheme-BtOgJUTy.js +2 -0
- package/dist/{useColorScheme-BHhPgv9q.js.map → useColorScheme-BtOgJUTy.js.map} +1 -1
- package/dist/{useColorScheme-B7lGBSe4.mjs → useColorScheme-DXAxJPXW.mjs} +2 -2
- package/dist/{useColorScheme-B7lGBSe4.mjs.map → useColorScheme-DXAxJPXW.mjs.map} +1 -1
- package/dist/useThemePortalContainer-Cs1c-2AI.js +2 -0
- package/dist/{useThemePortalContainer-CUcqV327.js.map → useThemePortalContainer-Cs1c-2AI.js.map} +1 -1
- package/dist/useThemePortalContainer-DeKoE-E_.mjs +9 -0
- package/dist/{useThemePortalContainer-D13Xx24N.mjs.map → useThemePortalContainer-DeKoE-E_.mjs.map} +1 -1
- package/dist/variables-CTBx79yI.js +2 -0
- package/dist/{variables-D1vNo1lO.js.map → variables-CTBx79yI.js.map} +1 -1
- package/dist/variables-Do6SfyT0.mjs +258 -0
- package/dist/{variables-BrsAsWIF.mjs.map → variables-Do6SfyT0.mjs.map} +1 -1
- package/package.json +18 -18
- package/src/library.ts +72 -2
- package/tokens/color/variables.css +1 -0
- package/tokens/color/variables.d.ts +1 -0
- package/tokens/color/variables.dark.css +1 -0
- package/tokens/color/variables.dark.d.ts +1 -0
- package/tokens/color/variables.dark.js +1 -0
- package/tokens/color/variables.dark.json +1 -0
- package/tokens/color/variables.dark.scss +1 -0
- package/tokens/color/variables.js +1 -0
- package/tokens/color/variables.json +1 -0
- package/tokens/color/variables.scss +1 -0
- package/dist/countdown-5Ni6OlVY.mjs +0 -189
- package/dist/countdown-5Ni6OlVY.mjs.map +0 -1
- package/dist/countdown-CGXJyzB2.js +0 -2
- package/dist/countdown-CGXJyzB2.js.map +0 -1
- package/dist/date-field-CtpWDaSh.js +0 -2
- package/dist/date-range-field-B33XeBW8.js +0 -2
- package/dist/date-range-field-B33XeBW8.js.map +0 -1
- package/dist/date-range-field-BmjQeiOv.mjs.map +0 -1
- package/dist/dismissable-chip-group-5ALErhD2.js +0 -2
- package/dist/dismissable-chip-group-5ALErhD2.js.map +0 -1
- package/dist/dismissable-chip-group-DMNU7g5e.mjs +0 -94
- package/dist/dismissable-chip-group-DMNU7g5e.mjs.map +0 -1
- package/dist/dropdown-B7W5fErJ.js +0 -2
- package/dist/dropdown-B7W5fErJ.js.map +0 -1
- package/dist/dropdown-CxEElxNf.mjs +0 -952
- package/dist/dropdown-CxEElxNf.mjs.map +0 -1
- package/dist/search-field-BTJtRyw5.mjs +0 -184
- package/dist/search-field-BTJtRyw5.mjs.map +0 -1
- package/dist/search-field-nzVXak1a.js +0 -2
- package/dist/search-field-nzVXak1a.js.map +0 -1
- package/dist/use-autocomplete.es-BwAzMcau.js +0 -2
- package/dist/use-autocomplete.es-BwAzMcau.js.map +0 -1
- package/dist/use-autocomplete.es-CKb0RHKG.mjs +0 -144
- package/dist/use-autocomplete.es-CKb0RHKG.mjs.map +0 -1
- package/dist/useColorScheme-BHhPgv9q.js +0 -2
- package/dist/useThemePortalContainer-CUcqV327.js +0 -2
- package/dist/useThemePortalContainer-D13Xx24N.mjs +0 -9
- package/dist/variables-BrsAsWIF.mjs +0 -257
- package/dist/variables-D1vNo1lO.js +0 -2
|
@@ -19,10 +19,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
19
19
|
iconOnlySearchButton?: false;
|
|
20
20
|
searchButtonLabel: string;
|
|
21
21
|
variant: "button-attached";
|
|
22
|
-
} & Omit<import('../../text-field/src/text-field
|
|
22
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
23
23
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
24
24
|
openSuggestionsOnFocus?: boolean;
|
|
25
25
|
suggestionsMaxHeight?: string | number;
|
|
26
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
26
27
|
} & {
|
|
27
28
|
suggestions: import('@purpur/use-autocomplete').AutocompleteOption[];
|
|
28
29
|
suggestionsLabel: string;
|
|
@@ -43,10 +44,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
43
44
|
iconOnlySearchButton: true;
|
|
44
45
|
searchButtonLabel: string;
|
|
45
46
|
variant: "button-attached";
|
|
46
|
-
} & Omit<import('../../text-field/src/text-field
|
|
47
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
47
48
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
48
49
|
openSuggestionsOnFocus?: boolean;
|
|
49
50
|
suggestionsMaxHeight?: string | number;
|
|
51
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
50
52
|
} & {
|
|
51
53
|
suggestions: import('@purpur/use-autocomplete').AutocompleteOption[];
|
|
52
54
|
suggestionsLabel: string;
|
|
@@ -66,10 +68,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
66
68
|
} & {
|
|
67
69
|
searchButtonLabel?: never;
|
|
68
70
|
variant: "no-button";
|
|
69
|
-
} & Omit<import('../../text-field/src/text-field
|
|
71
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
70
72
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
71
73
|
openSuggestionsOnFocus?: boolean;
|
|
72
74
|
suggestionsMaxHeight?: string | number;
|
|
75
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
73
76
|
} & {
|
|
74
77
|
suggestions: import('@purpur/use-autocomplete').AutocompleteOption[];
|
|
75
78
|
suggestionsLabel: string;
|
|
@@ -90,10 +93,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
90
93
|
iconOnlySearchButton?: false;
|
|
91
94
|
searchButtonLabel: string;
|
|
92
95
|
variant: "button-attached";
|
|
93
|
-
} & Omit<import('../../text-field/src/text-field
|
|
96
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
94
97
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
95
98
|
openSuggestionsOnFocus?: boolean;
|
|
96
99
|
suggestionsMaxHeight?: string | number;
|
|
100
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
97
101
|
} & {
|
|
98
102
|
suggestions?: never;
|
|
99
103
|
suggestionsLabel?: never;
|
|
@@ -114,10 +118,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
114
118
|
iconOnlySearchButton: true;
|
|
115
119
|
searchButtonLabel: string;
|
|
116
120
|
variant: "button-attached";
|
|
117
|
-
} & Omit<import('../../text-field/src/text-field
|
|
121
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
118
122
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
119
123
|
openSuggestionsOnFocus?: boolean;
|
|
120
124
|
suggestionsMaxHeight?: string | number;
|
|
125
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
121
126
|
} & {
|
|
122
127
|
suggestions?: never;
|
|
123
128
|
suggestionsLabel?: never;
|
|
@@ -137,10 +142,11 @@ export declare const SearchField: React.ForwardRefExoticComponent<(Omit<{
|
|
|
137
142
|
} & {
|
|
138
143
|
searchButtonLabel?: never;
|
|
139
144
|
variant: "no-button";
|
|
140
|
-
} & Omit<import('../../text-field/src/text-field
|
|
145
|
+
} & Omit<import('../../text-field/src/text-field').TextFieldProps, "onChange" | "variant" | "afterField" | "endAdornment" | "startAdornment"> & {
|
|
141
146
|
onSelectSuggestion?: (option: import('@purpur/use-autocomplete').AutocompleteOption) => void;
|
|
142
147
|
openSuggestionsOnFocus?: boolean;
|
|
143
148
|
suggestionsMaxHeight?: string | number;
|
|
149
|
+
formatOption?: (option: import('@purpur/use-autocomplete').AutocompleteOption, inputValue: string) => React.ReactNode;
|
|
144
150
|
} & {
|
|
145
151
|
suggestions?: never;
|
|
146
152
|
suggestionsLabel?: never;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-field.d.ts","sourceRoot":"","sources":["../../../../../../components/search-field/src/search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,EACL,KAAK,mCAAmC,EAExC,KAAK,oBAAoB,EACzB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,mCAAmC,CAAC;AAE1F,eAAO,MAAM,WAAW;;;;;;;;qBAcsQ,CAAC
|
|
1
|
+
{"version":3,"file":"search-field.d.ts","sourceRoot":"","sources":["../../../../../../components/search-field/src/search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,EACL,KAAK,mCAAmC,EAExC,KAAK,oBAAoB,EACzB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,GAAG,mCAAmC,CAAC;AAE1F,eAAO,MAAM,WAAW;;;;;;;;qBAcsQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;qBAAD,CAAC;;;;;;;;;;;;;;;;mDAR7R,CAAC;AAIH,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
3
3
|
export declare const SPINNER_SIZE: {
|
|
4
4
|
readonly XXS: "xxs";
|
|
5
5
|
readonly XS: "xs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ReactNode } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
3
3
|
import { StepperVariant } from './types';
|
|
4
4
|
export type StepperContainerProps = Omit<BaseProps, "children"> & {
|
|
5
5
|
children: ReactNode;
|
|
@@ -7,4 +7,4 @@ export type StepperContainerProps = Omit<BaseProps, "children"> & {
|
|
|
7
7
|
variant: StepperVariant;
|
|
8
8
|
};
|
|
9
9
|
export declare const StepperContainer: ({ ["data-testid"]: dataTestId, children, className, alignWithGrid, variant, ...props }: StepperContainerProps) => React.JSX.Element;
|
|
10
|
-
//# sourceMappingURL=stepper-container.d.ts.
|
|
10
|
+
//# sourceMappingURL=stepper-container.d.ts.mapmap
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { default as React, ReactElement, ReactNode } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
3
3
|
import { Optional, Step } from './types';
|
|
4
4
|
export type StepperContentProps = Omit<BaseProps, "children"> & {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
} & Optional<Step, "disabled" | "finished">;
|
|
7
7
|
export declare const StepperContent: React.ForwardRefExoticComponent<Omit<StepperContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
8
8
|
export declare const isStepperContent: (child?: ReactNode) => child is ReactElement<StepperContentProps>;
|
|
9
|
-
//# sourceMappingURL=stepper-content.d.ts.
|
|
9
|
+
//# sourceMappingURL=stepper-content.d.ts.mapmap
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
3
3
|
import { HandleStepChangeFunction, HandleStepFocusFunction, Step, StepperVariant, VisibilityStates } from './types';
|
|
4
4
|
export type StepNumberProps = {
|
|
5
5
|
current: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ReactElement } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types.ts';
|
|
3
3
|
import { StepperContent } from './stepper-content';
|
|
4
4
|
import { StepChangeFunction, StepperVariant } from './types';
|
|
5
5
|
export type StepperProps = Omit<BaseProps, "children"> & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React, ReactElement } from 'react';
|
|
2
|
-
import { ButtonProps } from '../../../button/src/button
|
|
3
|
-
import { IconProps } from '
|
|
2
|
+
import { ButtonProps } from '../../../button/src/button';
|
|
3
|
+
import { IconProps } from '../../../../icon/icon';
|
|
4
4
|
import { Cell, RowData } from '@tanstack/react-table';
|
|
5
5
|
type IconOnlyButtonVariant = Extract<ButtonProps, {
|
|
6
6
|
iconOnly: true;
|
|
@@ -16,4 +16,4 @@ export type ButtonGroupCellProps<TData> = {
|
|
|
16
16
|
};
|
|
17
17
|
export declare const ButtonGroupCell: <TData extends RowData>({ cell }: ButtonGroupCellProps<TData>) => React.JSX.Element;
|
|
18
18
|
export {};
|
|
19
|
-
//# sourceMappingURL=button-group-cell.d.ts.
|
|
19
|
+
//# sourceMappingURL=button-group-cell.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { UniqueIdentifier } from '@dnd-kit/core';
|
|
3
|
-
import { HeadingTagType } from '../../heading/src/heading
|
|
3
|
+
import { HeadingTagType } from '../../heading/src/heading';
|
|
4
4
|
import { Row, Table, RowData } from '@tanstack/react-table';
|
|
5
5
|
type TableContentProps<TData extends RowData> = {
|
|
6
6
|
tanstackTable: Table<TData>;
|
|
@@ -28,4 +28,4 @@ type TableContentProps<TData extends RowData> = {
|
|
|
28
28
|
};
|
|
29
29
|
export declare function TableContent<TData extends RowData>({ tanstackTable, tableRows, fullWidth, tableHeader, loading, skeletonRows, isEmptyTable, stickyFirstColumn, getStickyColumn, isScrolled, showBorder, enableColumnDrag, activeId, getColumnWidths, variant, emptyTableHeadingTag, emptyTableCopy, emptyTableIcon, tableContainerId, }: TableContentProps<TData>): React.JSX.Element;
|
|
30
30
|
export {};
|
|
31
|
-
//# sourceMappingURL=table-content.d.ts.map
|
|
31
|
+
//# sourceMappingURL=table-content.d.ts.map.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React, ReactElement } from 'react';
|
|
2
2
|
import { ColumnDef, ColumnFiltersState, CoreOptions, PaginationState, RowData, RowSelectionState, SortingState, TableOptions, VisibilityState } from '@tanstack/react-table';
|
|
3
|
-
import { PaginationProps } from '../../pagination/src/pagination';
|
|
3
|
+
import { PaginationProps } from '../../pagination/src/pagination.tsx';
|
|
4
4
|
import { WithActionBarProps, WithColumnDragProps, WithEmptyTableProps, WithLoadingProps, WithoutActionBarProps, WithoutColumnDragProps, WithoutEmptyTableProps, WithoutLoadingProps, WithoutRowSelectionProps, WithoutToolbarProps, WithRowSelectionProps, WithSortingProps, WithToolbarProps } from './types';
|
|
5
5
|
export { createColumnHelper } from '@tanstack/react-table';
|
|
6
6
|
export type { ColumnDef, ColumnFiltersState, CoreOptions, PaginationState, RowData, RowSelectionState, SortingState, TableOptions, VisibilityState, };
|
|
@@ -28,4 +28,4 @@ export declare const Table: {
|
|
|
28
28
|
<TData extends RowData>({ actionbarCopy, actionBarTotalRowCount, className, columns, data, emptyTableCopy, emptyTableHeadingTag, emptyTableIcon, enableActionBar, enableToolbar, exportDrawerCopy, exportFormats, fullWidth, loading, paginationComponent, rowSelectionAriaLabels, settingsDrawerCopy, showOnlySelectedRows, skeletonRows, sortingAriaLabels, state, controlledShowColumnFilters, onShowColumnFiltersChange, controlledStickyFirstColumn, onStickyFirstColumnChange, defaultShowColumnFilters, defaultStickyFirstColumn, stickyFirstColumn: stickyFirstColumnDeprecated, toolbarCopy, toolbarTotalRowCount, variant, getRowId, onExportData, onRowsCountChange, controlledExpanded, defaultExpanded, onToggleExpand, onPrimaryButtonClick, onSecondaryButtonClick, setShowOnlySelectedRows, drawerZIndex, enableColumnDrag, columnDragAriaLabelsCopy, ...props }: TableProps<TData>): React.JSX.Element;
|
|
29
29
|
displayName: string;
|
|
30
30
|
};
|
|
31
|
-
//# sourceMappingURL=table.d.ts.map
|
|
31
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Dispatch, ReactNode, SetStateAction } from 'react';
|
|
2
|
-
import { DropdownSelectProps } from '../../dropdown/src/dropdown';
|
|
3
|
-
import { HeadingTagType } from '../../heading/src/heading';
|
|
4
|
-
import { SelectProps } from '../../select/src/select';
|
|
2
|
+
import { DropdownSelectProps } from '../../dropdown/src/dropdown.tsx';
|
|
3
|
+
import { HeadingTagType } from '../../heading/src/heading.tsx';
|
|
4
|
+
import { SelectProps } from '../../select/src/select.tsx';
|
|
5
5
|
import { Cell, FilterFn, Row, RowData, SortingFn } from '@tanstack/react-table';
|
|
6
6
|
import { TableActionBarCopyProps } from './table-action-bar';
|
|
7
7
|
import { FilterVariants, SortingAriaLabels } from './table-column-header-cell';
|
|
@@ -478,4 +478,4 @@ type ColumnDragAriaLabelsCopy = {
|
|
|
478
478
|
grabbing: string;
|
|
479
479
|
};
|
|
480
480
|
export {};
|
|
481
|
-
//# sourceMappingURL=types.d.ts.
|
|
481
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ReactElement, ReactNode } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
3
3
|
export type TabContentProps = Omit<BaseProps, "children"> & {
|
|
4
4
|
/**
|
|
5
5
|
* Content to be rendered inside a `button` element.
|
|
@@ -21,4 +21,4 @@ export type TabContentProps = Omit<BaseProps, "children"> & {
|
|
|
21
21
|
};
|
|
22
22
|
export declare const TabContent: React.ForwardRefExoticComponent<Omit<TabContentProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
23
23
|
export declare const isTabContent: (child?: ReactNode) => child is ReactElement<TabContentProps>;
|
|
24
|
-
//# sourceMappingURL=tab-content.d.ts.
|
|
24
|
+
//# sourceMappingURL=tab-content.d.ts.mapmap
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, HTMLInputTypeAttribute, ReactElement, ReactNode } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types.ts';
|
|
3
3
|
export declare const textFieldVariants: readonly ["default", "ai"];
|
|
4
4
|
export type TextFieldVariant = (typeof textFieldVariants)[number];
|
|
5
5
|
type TextFieldCommonProps = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ReactNode } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types.ts';
|
|
3
3
|
export declare const Element: {
|
|
4
4
|
readonly DIV: "div";
|
|
5
5
|
readonly SPAN: "span";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
2
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types.ts';
|
|
3
3
|
export type ToggleProps = Omit<BaseProps<"button">, "onChange" | "children" | "id"> & {
|
|
4
4
|
/**
|
|
5
5
|
* To use when no label is given.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { default as React, ReactNode } from 'react';
|
|
2
|
-
import { Size } from '../../../libraries/action/src/action
|
|
3
|
-
import { BaseProps } from '../../../libraries/common-types/src/common-types
|
|
4
|
-
import { Size as IconSize } from '
|
|
2
|
+
import { Size } from '../../../libraries/action/src/action';
|
|
3
|
+
import { BaseProps } from '../../../libraries/common-types/src/common-types';
|
|
4
|
+
import { Size as IconSize } from '../../../icon/icon';
|
|
5
5
|
export declare const TOOLTIP_POSITION: {
|
|
6
6
|
readonly TOP: "top";
|
|
7
7
|
readonly BOTTOM: "bottom";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),o=require("react"),I=require("./paragraph-B8HFdNne.js"),E=require("./bind-DeUYJ6m9.js"),H={"purpur-countdown--size-md":"_purpur-countdown--size-md_ytnsp_1","purpur-countdown--size-lg":"_purpur-countdown--size-lg_ytnsp_5","purpur-countdown--use-container-queries":"_purpur-countdown--use-container-queries_ytnsp_10","purpur-countdown__counter-container":"_purpur-countdown__counter-container_ytnsp_10","purpur-countdown--full-width":"_purpur-countdown--full-width_ytnsp_15","purpur-countdown--use-media-queries":"_purpur-countdown--use-media-queries_ytnsp_25","purpur-countdown":"_purpur-countdown_ytnsp_1","purpur-countdown--variant-primary":"_purpur-countdown--variant-primary_ytnsp_40","purpur-countdown--variant-secondary":"_purpur-countdown--variant-secondary_ytnsp_43","purpur-countdown--negative":"_purpur-countdown--negative_ytnsp_46","purpur-countdown--show-days":"_purpur-countdown--show-days_ytnsp_56","purpur-countdown__label":"_purpur-countdown__label_ytnsp_72"},J={"purpur-countdown-counter":"_purpur-countdown-counter_23fbu_1","purpur-countdown-counter--size-lg":"_purpur-countdown-counter--size-lg_23fbu_10","purpur-countdown-counter__number":"_purpur-countdown-counter__number_23fbu_15","purpur-countdown-counter--size-md":"_purpur-countdown-counter--size-md_23fbu_21","purpur-countdown-counter__number-list-container":"_purpur-countdown-counter__number-list-container_23fbu_35","purpur-countdown-counter__number-list":"_purpur-countdown-counter__number-list_23fbu_35","purpur-countdown-counter__number--selected":"_purpur-countdown-counter__number--selected_23fbu_61","purpur-countdown-counter__label":"_purpur-countdown-counter__label_23fbu_64","purpur-countdown-counter__label--abbr":"_purpur-countdown-counter__label--abbr_23fbu_71","purpur-countdown-counter__label--full":"_purpur-countdown-counter__label--full_23fbu_74"},h=E.c.bind(J),s="purpur-countdown-counter",g=({tag:u,size:d,numbers:n,counterLabels:p})=>{const f=()=>{const r=p[u],a=p[`${u}Abbr`];return e.jsxs(e.Fragment,{children:[a&&e.jsx(I.Paragraph,{className:h(`${s}__label`,`${s}__label--abbr`),children:e.jsx("abbr",{title:r,children:a})}),e.jsx(I.Paragraph,{className:h(`${s}__label`,{[`${s}__label--full`]:!!a}),children:r})]})};return e.jsxs("div",{className:h(s,`${s}--size-${d}`),role:"group","aria-hidden":"true","data-testid":`counter-${u}`,children:[e.jsx("div",{className:h(`${s}__number-list-container`),children:n.map((r,a)=>e.jsx("ul",{className:h(`${s}__number-list`),style:{"--offset":r},children:K.map((m,i)=>{const $=m===r;return e.jsx("li",{className:h(`${s}__number`,{[`${s}__number--selected`]:$}),children:m},i)})},a))}),f()]})},K=["0","1","2","3","4","5","6","7","8","9"];function O(u,d=new Date().getTime()){const n=Math.max(0,u-d),p=Math.floor(n/l.day),f=Math.floor(n%l.day/l.hour),r=Math.floor(n%l.hour/l.minute),a=Math.floor(n%l.minute/l.second),m=j(p),i=j(f),$=j(r);return{seconds:j(a),minutes:$,hours:i,days:m}}const l={second:1e3,minute:60*1e3,hour:3600*1e3,day:1440*60*1e3};function D(u){return u instanceof Date?u:new Date(u)}function j(u){return String(u).padStart(2,"0").split("")}const C=E.c.bind(H),c="purpur-countdown",F=o.forwardRef(({renderAfterEnd:u,renderBeforeStart:d,...n},p)=>{const f=o.useId(),{size:r="lg",fullWidth:a=!1,negative:m=!1,showDays:i=!0,variant:$="primary",className:P,counterLabels:w,useMediaQueries:S=!1,disabled:R=!1,now:x}=n,b=o.useMemo(()=>x!==void 0?D(x):void 0,[x]),[_,T]=o.useState(()=>b??new Date),v=o.useMemo(()=>D(n.starttime),[n.starttime]),y=o.useMemo(()=>D(n.endtime),[n.endtime]),{days:N,hours:M,minutes:z,seconds:q}=o.useMemo(()=>O(y.getTime(),_.getTime()),[y,_]),L=o.useMemo(()=>{const t=[];return i&&t.push(`${N.join("")} ${w.days}`),t.push(`${M.join("")} ${w.hours}`),t.push(`${z.join("")} ${w.minutes}`),t.push(`${q.join("")} ${w.seconds}`),t.join(", ")},[w,N,M,z,q,i]),A=n["aria-label"]??n.label??"";o.useEffect(()=>{b&&T(b)},[b]),o.useEffect(()=>{if(R||b||_<v||_>y)return;const t=setInterval(()=>T(new Date),1e3);return()=>clearInterval(t)},[v,y,_,R,b]);const Q=v>_,W=y<_;if(Q)return d?d(n):null;if(W)return u?u(n):null;const k=(()=>{const t={size:r,counterLabels:w};return e.jsxs(e.Fragment,{children:[i&&e.jsx(g,{numbers:N,tag:"days",...t}),e.jsx(g,{numbers:M,tag:"hours",...t}),e.jsx(g,{numbers:z,tag:"minutes",...t}),e.jsx(g,{numbers:q,tag:"seconds",...t})]})})(),G=C(c,`${c}--size-${r}`,`${c}--variant-${$}`,{[`${c}--full-width`]:a,[`${c}--negative`]:m,[`${c}--show-days`]:i,[`${c}--use-media-queries`]:S,[`${c}--use-container-queries`]:!S},P);return e.jsxs("section",{id:f,className:G,ref:p,role:"timer",tabIndex:0,"aria-label":`${A}, ${L}`,"data-testid":n["data-testid"],children:[n.label&&e.jsx(I.Paragraph,{"aria-hidden":"true",className:C(`${c}__label`),variant:"paragraph-100-medium",children:n.label}),e.jsx("div",{className:C(`${c}__counter-container`),children:k})]})});F.displayName="Countdown";exports.Countdown=F;
|
|
2
|
+
//# sourceMappingURL=countdown-CdGFNLZq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countdown-CdGFNLZq.js","sources":["../../../components/countdown/src/counter.tsx","../../../components/countdown/src/utils.ts","../../../components/countdown/src/countdown.tsx"],"sourcesContent":["import React from \"react\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport { type CounterLabels } from \"./countdown.types\";\nimport styles from \"./counter.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-countdown-counter\";\n\ninterface CounterProps {\n numbers: string[];\n size: \"md\" | \"lg\";\n tag: \"days\" | \"hours\" | \"minutes\" | \"seconds\";\n counterLabels: CounterLabels;\n}\n\nexport const Counter = ({ tag, size, numbers, counterLabels }: CounterProps) => {\n const renderLabel = () => {\n const label = counterLabels[tag];\n const abbreviatedLabel = counterLabels[`${tag}Abbr`];\n\n return (\n <>\n {abbreviatedLabel && (\n <Paragraph className={cx(`${rootClassName}__label`, `${rootClassName}__label--abbr`)}>\n <abbr title={label}>{abbreviatedLabel}</abbr>\n </Paragraph>\n )}\n <Paragraph\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--full`]: !!abbreviatedLabel,\n })}\n >\n {label}\n </Paragraph>\n </>\n );\n };\n\n return (\n <div\n className={cx(rootClassName, `${rootClassName}--size-${size}`)}\n role=\"group\"\n aria-hidden=\"true\"\n data-testid={`counter-${tag}`}\n >\n <div className={cx(`${rootClassName}__number-list-container`)}>\n {numbers.map((number, index) => {\n return (\n <ul\n key={index}\n className={cx(`${rootClassName}__number-list`)}\n style={\n {\n \"--offset\": number,\n } as React.CSSProperties\n }\n >\n {digits.map((d, i) => {\n const selected = d === number;\n\n return (\n <li\n key={i}\n className={cx(`${rootClassName}__number`, {\n [`${rootClassName}__number--selected`]: selected,\n })}\n >\n {d}\n </li>\n );\n })}\n </ul>\n );\n })}\n </div>\n\n {renderLabel()}\n </div>\n );\n};\n\nconst digits = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n","export function getDiffs(endtime: number, now = new Date().getTime()) {\n const totalSeconds = Math.max(0, endtime - now);\n\n const _days = Math.floor(totalSeconds / inMs.day);\n const _hours = Math.floor((totalSeconds % inMs.day) / inMs.hour);\n const _minutes = Math.floor((totalSeconds % inMs.hour) / inMs.minute);\n const _seconds = Math.floor((totalSeconds % inMs.minute) / inMs.second);\n\n const days = splitDigits(_days);\n const hours = splitDigits(_hours);\n const minutes = splitDigits(_minutes);\n const seconds = splitDigits(_seconds);\n\n return {\n seconds,\n minutes,\n hours,\n days,\n };\n}\n\nexport const inMs = {\n second: 1000,\n minute: 60 * 1000,\n hour: 60 * 60 * 1000,\n day: 24 * 60 * 60 * 1000,\n};\n\nexport function toDate(t: string | number | Date) {\n return t instanceof Date ? t : new Date(t);\n}\n\nexport function splitDigits(value: number) {\n const s = String(value).padStart(2, \"0\");\n return s.split(\"\");\n}\n","import React, { type ForwardedRef, forwardRef, useEffect, useId, useMemo, useState } from \"react\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./countdown.module.scss\";\nimport { type CountdownProps } from \"./countdown.types\";\nimport { Counter } from \"./counter\";\nimport { getDiffs, toDate } from \"./utils\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-countdown\";\n\n/**\n * Countdown component to display a countdown timer.\n * @param props - CountdownProps\n * @returns A React component that displays a countdown timer.\n */\n\nexport const Countdown = forwardRef(\n (\n { renderAfterEnd, renderBeforeStart, ...props }: CountdownProps,\n ref: ForwardedRef<HTMLElement>\n ) => {\n const id = useId();\n\n const {\n size = \"lg\",\n fullWidth = false,\n negative = false,\n showDays = true,\n variant = \"primary\",\n className,\n counterLabels,\n useMediaQueries = false,\n disabled = false,\n now: fixedNow,\n } = props;\n\n const resolvedNow = useMemo(\n () => (fixedNow !== undefined ? toDate(fixedNow) : undefined),\n [fixedNow]\n );\n\n const [now, setNow] = useState<Date>(() => resolvedNow ?? new Date());\n\n const start = useMemo(() => toDate(props.starttime), [props.starttime]);\n const end = useMemo(() => toDate(props.endtime), [props.endtime]);\n const { days, hours, minutes, seconds } = useMemo(\n () => getDiffs(end.getTime(), now.getTime()),\n [end, now]\n );\n const timeAnnouncement = useMemo(() => {\n const parts = [];\n\n if (showDays) parts.push(`${days.join(\"\")} ${counterLabels.days}`);\n parts.push(`${hours.join(\"\")} ${counterLabels.hours}`);\n parts.push(`${minutes.join(\"\")} ${counterLabels.minutes}`);\n parts.push(`${seconds.join(\"\")} ${counterLabels.seconds}`);\n\n return parts.join(\", \");\n }, [counterLabels, days, hours, minutes, seconds, showDays]);\n\n // aria-label takes precedence over label for screen readers; label then stays visual-only.\n const accessibleName = props[\"aria-label\"] ?? props.label ?? \"\";\n\n useEffect(() => {\n if (resolvedNow) {\n setNow(resolvedNow);\n }\n }, [resolvedNow]);\n\n useEffect(() => {\n if (disabled || resolvedNow) return;\n if (now < start || now > end) return;\n const t = setInterval(() => setNow(new Date()), 1000);\n return () => clearInterval(t);\n }, [start, end, now, disabled, resolvedNow]);\n\n const hasNotStarted = start > now;\n const hasEnded = end < now;\n\n // don't render if before start or after end\n if (hasNotStarted) return renderBeforeStart ? renderBeforeStart(props) : null;\n if (hasEnded) return renderAfterEnd ? renderAfterEnd(props) : null;\n\n const getCounters = () => {\n const counterProps = { size, counterLabels };\n\n return (\n <>\n {showDays && <Counter numbers={days} tag=\"days\" {...counterProps} />}\n <Counter numbers={hours} tag=\"hours\" {...counterProps} />\n <Counter numbers={minutes} tag=\"minutes\" {...counterProps} />\n <Counter numbers={seconds} tag=\"seconds\" {...counterProps} />\n </>\n );\n };\n\n const counters = getCounters();\n\n const classes = cx(\n rootClassName,\n `${rootClassName}--size-${size}`,\n `${rootClassName}--variant-${variant}`,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--show-days`]: showDays,\n [`${rootClassName}--use-media-queries`]: useMediaQueries,\n [`${rootClassName}--use-container-queries`]: !useMediaQueries,\n },\n className\n );\n\n return (\n <section\n id={id}\n className={classes}\n ref={ref}\n role=\"timer\"\n // A timer needs to be focusable so assistive technology users (including screen reader\n // quick-nav) can land on it and get its current, up-to-date time via aria-label.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n aria-label={`${accessibleName}, ${timeAnnouncement}`}\n data-testid={props[\"data-testid\"]}\n >\n {props.label && (\n // Hidden from the accessibility tree — its text already reaches assistive tech via the\n // section's aria-label, so exposing it separately would cause a duplicate readout.\n <Paragraph\n aria-hidden=\"true\"\n className={cx(`${rootClassName}__label`)}\n variant=\"paragraph-100-medium\"\n >\n {props.label}\n </Paragraph>\n )}\n <div className={cx(`${rootClassName}__counter-container`)}>{counters}</div>\n </section>\n );\n }\n);\n\nCountdown.displayName = \"Countdown\";\n"],"names":["cx","c","styles","rootClassName","Counter","tag","size","numbers","counterLabels","renderLabel","label","abbreviatedLabel","jsxs","Fragment","Paragraph","jsx","number","index","digits","d","selected","getDiffs","endtime","now","totalSeconds","_days","inMs","_hours","_minutes","_seconds","days","splitDigits","hours","minutes","toDate","t","value","Countdown","forwardRef","renderAfterEnd","renderBeforeStart","props","ref","id","useId","fullWidth","negative","showDays","variant","className","useMediaQueries","disabled","fixedNow","resolvedNow","useMemo","setNow","useState","start","end","seconds","timeAnnouncement","parts","accessibleName","useEffect","hasNotStarted","hasEnded","counters","counterProps","classes"],"mappings":"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"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { jsxs as N, jsx as u, Fragment as F } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as K, useId as O, useMemo as y, useState as U, useEffect as E } from "react";
|
|
3
|
+
import { P as S } from "./paragraph-CwAdFoIm.mjs";
|
|
4
|
+
import { c as Q } from "./bind-CU-R61T-.mjs";
|
|
5
|
+
const V = {
|
|
6
|
+
"purpur-countdown--size-md": "_purpur-countdown--size-md_ytnsp_1",
|
|
7
|
+
"purpur-countdown--size-lg": "_purpur-countdown--size-lg_ytnsp_5",
|
|
8
|
+
"purpur-countdown--use-container-queries": "_purpur-countdown--use-container-queries_ytnsp_10",
|
|
9
|
+
"purpur-countdown__counter-container": "_purpur-countdown__counter-container_ytnsp_10",
|
|
10
|
+
"purpur-countdown--full-width": "_purpur-countdown--full-width_ytnsp_15",
|
|
11
|
+
"purpur-countdown--use-media-queries": "_purpur-countdown--use-media-queries_ytnsp_25",
|
|
12
|
+
"purpur-countdown": "_purpur-countdown_ytnsp_1",
|
|
13
|
+
"purpur-countdown--variant-primary": "_purpur-countdown--variant-primary_ytnsp_40",
|
|
14
|
+
"purpur-countdown--variant-secondary": "_purpur-countdown--variant-secondary_ytnsp_43",
|
|
15
|
+
"purpur-countdown--negative": "_purpur-countdown--negative_ytnsp_46",
|
|
16
|
+
"purpur-countdown--show-days": "_purpur-countdown--show-days_ytnsp_56",
|
|
17
|
+
"purpur-countdown__label": "_purpur-countdown__label_ytnsp_72"
|
|
18
|
+
}, X = {
|
|
19
|
+
"purpur-countdown-counter": "_purpur-countdown-counter_23fbu_1",
|
|
20
|
+
"purpur-countdown-counter--size-lg": "_purpur-countdown-counter--size-lg_23fbu_10",
|
|
21
|
+
"purpur-countdown-counter__number": "_purpur-countdown-counter__number_23fbu_15",
|
|
22
|
+
"purpur-countdown-counter--size-md": "_purpur-countdown-counter--size-md_23fbu_21",
|
|
23
|
+
"purpur-countdown-counter__number-list-container": "_purpur-countdown-counter__number-list-container_23fbu_35",
|
|
24
|
+
"purpur-countdown-counter__number-list": "_purpur-countdown-counter__number-list_23fbu_35",
|
|
25
|
+
"purpur-countdown-counter__number--selected": "_purpur-countdown-counter__number--selected_23fbu_61",
|
|
26
|
+
"purpur-countdown-counter__label": "_purpur-countdown-counter__label_23fbu_64",
|
|
27
|
+
"purpur-countdown-counter__label--abbr": "_purpur-countdown-counter__label--abbr_23fbu_71",
|
|
28
|
+
"purpur-countdown-counter__label--full": "_purpur-countdown-counter__label--full_23fbu_74"
|
|
29
|
+
}, b = Q.bind(X), o = "purpur-countdown-counter", g = ({ tag: e, size: i, numbers: n, counterLabels: l }) => {
|
|
30
|
+
const f = () => {
|
|
31
|
+
const r = l[e], c = l[`${e}Abbr`];
|
|
32
|
+
return /* @__PURE__ */ N(F, { children: [
|
|
33
|
+
c && /* @__PURE__ */ u(S, { className: b(`${o}__label`, `${o}__label--abbr`), children: /* @__PURE__ */ u("abbr", { title: r, children: c }) }),
|
|
34
|
+
/* @__PURE__ */ u(
|
|
35
|
+
S,
|
|
36
|
+
{
|
|
37
|
+
className: b(`${o}__label`, {
|
|
38
|
+
[`${o}__label--full`]: !!c
|
|
39
|
+
}),
|
|
40
|
+
children: r
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
] });
|
|
44
|
+
};
|
|
45
|
+
return /* @__PURE__ */ N(
|
|
46
|
+
"div",
|
|
47
|
+
{
|
|
48
|
+
className: b(o, `${o}--size-${i}`),
|
|
49
|
+
role: "group",
|
|
50
|
+
"aria-hidden": "true",
|
|
51
|
+
"data-testid": `counter-${e}`,
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ u("div", { className: b(`${o}__number-list-container`), children: n.map((r, c) => /* @__PURE__ */ u(
|
|
54
|
+
"ul",
|
|
55
|
+
{
|
|
56
|
+
className: b(`${o}__number-list`),
|
|
57
|
+
style: {
|
|
58
|
+
"--offset": r
|
|
59
|
+
},
|
|
60
|
+
children: Y.map((p, a) => {
|
|
61
|
+
const h = p === r;
|
|
62
|
+
return /* @__PURE__ */ u(
|
|
63
|
+
"li",
|
|
64
|
+
{
|
|
65
|
+
className: b(`${o}__number`, {
|
|
66
|
+
[`${o}__number--selected`]: h
|
|
67
|
+
}),
|
|
68
|
+
children: p
|
|
69
|
+
},
|
|
70
|
+
a
|
|
71
|
+
);
|
|
72
|
+
})
|
|
73
|
+
},
|
|
74
|
+
c
|
|
75
|
+
)) }),
|
|
76
|
+
f()
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
}, Y = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
|
|
81
|
+
function Z(e, i = (/* @__PURE__ */ new Date()).getTime()) {
|
|
82
|
+
const n = Math.max(0, e - i), l = Math.floor(n / _.day), f = Math.floor(n % _.day / _.hour), r = Math.floor(n % _.hour / _.minute), c = Math.floor(n % _.minute / _.second), p = v(l), a = v(f), h = v(r);
|
|
83
|
+
return {
|
|
84
|
+
seconds: v(c),
|
|
85
|
+
minutes: h,
|
|
86
|
+
hours: a,
|
|
87
|
+
days: p
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const _ = {
|
|
91
|
+
second: 1e3,
|
|
92
|
+
minute: 60 * 1e3,
|
|
93
|
+
hour: 3600 * 1e3,
|
|
94
|
+
day: 1440 * 60 * 1e3
|
|
95
|
+
};
|
|
96
|
+
function q(e) {
|
|
97
|
+
return e instanceof Date ? e : new Date(e);
|
|
98
|
+
}
|
|
99
|
+
function v(e) {
|
|
100
|
+
return String(e).padStart(2, "0").split("");
|
|
101
|
+
}
|
|
102
|
+
const I = Q.bind(V), s = "purpur-countdown", B = K(
|
|
103
|
+
({ renderAfterEnd: e, renderBeforeStart: i, ...n }, l) => {
|
|
104
|
+
const f = O(), {
|
|
105
|
+
size: r = "lg",
|
|
106
|
+
fullWidth: c = !1,
|
|
107
|
+
negative: p = !1,
|
|
108
|
+
showDays: a = !0,
|
|
109
|
+
variant: h = "primary",
|
|
110
|
+
className: P,
|
|
111
|
+
counterLabels: m,
|
|
112
|
+
useMediaQueries: T = !1,
|
|
113
|
+
disabled: L = !1,
|
|
114
|
+
now: z
|
|
115
|
+
} = n, w = y(
|
|
116
|
+
() => z !== void 0 ? q(z) : void 0,
|
|
117
|
+
[z]
|
|
118
|
+
), [d, A] = U(() => w ?? /* @__PURE__ */ new Date()), D = y(() => q(n.starttime), [n.starttime]), $ = y(() => q(n.endtime), [n.endtime]), { days: x, hours: C, minutes: M, seconds: j } = y(
|
|
119
|
+
() => Z($.getTime(), d.getTime()),
|
|
120
|
+
[$, d]
|
|
121
|
+
), R = y(() => {
|
|
122
|
+
const t = [];
|
|
123
|
+
return a && t.push(`${x.join("")} ${m.days}`), t.push(`${C.join("")} ${m.hours}`), t.push(`${M.join("")} ${m.minutes}`), t.push(`${j.join("")} ${m.seconds}`), t.join(", ");
|
|
124
|
+
}, [m, x, C, M, j, a]), W = n["aria-label"] ?? n.label ?? "";
|
|
125
|
+
E(() => {
|
|
126
|
+
w && A(w);
|
|
127
|
+
}, [w]), E(() => {
|
|
128
|
+
if (L || w || d < D || d > $) return;
|
|
129
|
+
const t = setInterval(() => A(/* @__PURE__ */ new Date()), 1e3);
|
|
130
|
+
return () => clearInterval(t);
|
|
131
|
+
}, [D, $, d, L, w]);
|
|
132
|
+
const k = D > d, G = $ < d;
|
|
133
|
+
if (k) return i ? i(n) : null;
|
|
134
|
+
if (G) return e ? e(n) : null;
|
|
135
|
+
const H = (() => {
|
|
136
|
+
const t = { size: r, counterLabels: m };
|
|
137
|
+
return /* @__PURE__ */ N(F, { children: [
|
|
138
|
+
a && /* @__PURE__ */ u(g, { numbers: x, tag: "days", ...t }),
|
|
139
|
+
/* @__PURE__ */ u(g, { numbers: C, tag: "hours", ...t }),
|
|
140
|
+
/* @__PURE__ */ u(g, { numbers: M, tag: "minutes", ...t }),
|
|
141
|
+
/* @__PURE__ */ u(g, { numbers: j, tag: "seconds", ...t })
|
|
142
|
+
] });
|
|
143
|
+
})(), J = I(
|
|
144
|
+
s,
|
|
145
|
+
`${s}--size-${r}`,
|
|
146
|
+
`${s}--variant-${h}`,
|
|
147
|
+
{
|
|
148
|
+
[`${s}--full-width`]: c,
|
|
149
|
+
[`${s}--negative`]: p,
|
|
150
|
+
[`${s}--show-days`]: a,
|
|
151
|
+
[`${s}--use-media-queries`]: T,
|
|
152
|
+
[`${s}--use-container-queries`]: !T
|
|
153
|
+
},
|
|
154
|
+
P
|
|
155
|
+
);
|
|
156
|
+
return /* @__PURE__ */ N(
|
|
157
|
+
"section",
|
|
158
|
+
{
|
|
159
|
+
id: f,
|
|
160
|
+
className: J,
|
|
161
|
+
ref: l,
|
|
162
|
+
role: "timer",
|
|
163
|
+
tabIndex: 0,
|
|
164
|
+
"aria-label": `${W}, ${R}`,
|
|
165
|
+
"data-testid": n["data-testid"],
|
|
166
|
+
children: [
|
|
167
|
+
n.label && // Hidden from the accessibility tree — its text already reaches assistive tech via the
|
|
168
|
+
// section's aria-label, so exposing it separately would cause a duplicate readout.
|
|
169
|
+
/* @__PURE__ */ u(
|
|
170
|
+
S,
|
|
171
|
+
{
|
|
172
|
+
"aria-hidden": "true",
|
|
173
|
+
className: I(`${s}__label`),
|
|
174
|
+
variant: "paragraph-100-medium",
|
|
175
|
+
children: n.label
|
|
176
|
+
}
|
|
177
|
+
),
|
|
178
|
+
/* @__PURE__ */ u("div", { className: I(`${s}__counter-container`), children: H })
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
B.displayName = "Countdown";
|
|
185
|
+
export {
|
|
186
|
+
B as C
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=countdown-G7eg3CZj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countdown-G7eg3CZj.mjs","sources":["../../../components/countdown/src/counter.tsx","../../../components/countdown/src/utils.ts","../../../components/countdown/src/countdown.tsx"],"sourcesContent":["import React from \"react\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport { type CounterLabels } from \"./countdown.types\";\nimport styles from \"./counter.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-countdown-counter\";\n\ninterface CounterProps {\n numbers: string[];\n size: \"md\" | \"lg\";\n tag: \"days\" | \"hours\" | \"minutes\" | \"seconds\";\n counterLabels: CounterLabels;\n}\n\nexport const Counter = ({ tag, size, numbers, counterLabels }: CounterProps) => {\n const renderLabel = () => {\n const label = counterLabels[tag];\n const abbreviatedLabel = counterLabels[`${tag}Abbr`];\n\n return (\n <>\n {abbreviatedLabel && (\n <Paragraph className={cx(`${rootClassName}__label`, `${rootClassName}__label--abbr`)}>\n <abbr title={label}>{abbreviatedLabel}</abbr>\n </Paragraph>\n )}\n <Paragraph\n className={cx(`${rootClassName}__label`, {\n [`${rootClassName}__label--full`]: !!abbreviatedLabel,\n })}\n >\n {label}\n </Paragraph>\n </>\n );\n };\n\n return (\n <div\n className={cx(rootClassName, `${rootClassName}--size-${size}`)}\n role=\"group\"\n aria-hidden=\"true\"\n data-testid={`counter-${tag}`}\n >\n <div className={cx(`${rootClassName}__number-list-container`)}>\n {numbers.map((number, index) => {\n return (\n <ul\n key={index}\n className={cx(`${rootClassName}__number-list`)}\n style={\n {\n \"--offset\": number,\n } as React.CSSProperties\n }\n >\n {digits.map((d, i) => {\n const selected = d === number;\n\n return (\n <li\n key={i}\n className={cx(`${rootClassName}__number`, {\n [`${rootClassName}__number--selected`]: selected,\n })}\n >\n {d}\n </li>\n );\n })}\n </ul>\n );\n })}\n </div>\n\n {renderLabel()}\n </div>\n );\n};\n\nconst digits = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\n","export function getDiffs(endtime: number, now = new Date().getTime()) {\n const totalSeconds = Math.max(0, endtime - now);\n\n const _days = Math.floor(totalSeconds / inMs.day);\n const _hours = Math.floor((totalSeconds % inMs.day) / inMs.hour);\n const _minutes = Math.floor((totalSeconds % inMs.hour) / inMs.minute);\n const _seconds = Math.floor((totalSeconds % inMs.minute) / inMs.second);\n\n const days = splitDigits(_days);\n const hours = splitDigits(_hours);\n const minutes = splitDigits(_minutes);\n const seconds = splitDigits(_seconds);\n\n return {\n seconds,\n minutes,\n hours,\n days,\n };\n}\n\nexport const inMs = {\n second: 1000,\n minute: 60 * 1000,\n hour: 60 * 60 * 1000,\n day: 24 * 60 * 60 * 1000,\n};\n\nexport function toDate(t: string | number | Date) {\n return t instanceof Date ? t : new Date(t);\n}\n\nexport function splitDigits(value: number) {\n const s = String(value).padStart(2, \"0\");\n return s.split(\"\");\n}\n","import React, { type ForwardedRef, forwardRef, useEffect, useId, useMemo, useState } from \"react\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./countdown.module.scss\";\nimport { type CountdownProps } from \"./countdown.types\";\nimport { Counter } from \"./counter\";\nimport { getDiffs, toDate } from \"./utils\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-countdown\";\n\n/**\n * Countdown component to display a countdown timer.\n * @param props - CountdownProps\n * @returns A React component that displays a countdown timer.\n */\n\nexport const Countdown = forwardRef(\n (\n { renderAfterEnd, renderBeforeStart, ...props }: CountdownProps,\n ref: ForwardedRef<HTMLElement>\n ) => {\n const id = useId();\n\n const {\n size = \"lg\",\n fullWidth = false,\n negative = false,\n showDays = true,\n variant = \"primary\",\n className,\n counterLabels,\n useMediaQueries = false,\n disabled = false,\n now: fixedNow,\n } = props;\n\n const resolvedNow = useMemo(\n () => (fixedNow !== undefined ? toDate(fixedNow) : undefined),\n [fixedNow]\n );\n\n const [now, setNow] = useState<Date>(() => resolvedNow ?? new Date());\n\n const start = useMemo(() => toDate(props.starttime), [props.starttime]);\n const end = useMemo(() => toDate(props.endtime), [props.endtime]);\n const { days, hours, minutes, seconds } = useMemo(\n () => getDiffs(end.getTime(), now.getTime()),\n [end, now]\n );\n const timeAnnouncement = useMemo(() => {\n const parts = [];\n\n if (showDays) parts.push(`${days.join(\"\")} ${counterLabels.days}`);\n parts.push(`${hours.join(\"\")} ${counterLabels.hours}`);\n parts.push(`${minutes.join(\"\")} ${counterLabels.minutes}`);\n parts.push(`${seconds.join(\"\")} ${counterLabels.seconds}`);\n\n return parts.join(\", \");\n }, [counterLabels, days, hours, minutes, seconds, showDays]);\n\n // aria-label takes precedence over label for screen readers; label then stays visual-only.\n const accessibleName = props[\"aria-label\"] ?? props.label ?? \"\";\n\n useEffect(() => {\n if (resolvedNow) {\n setNow(resolvedNow);\n }\n }, [resolvedNow]);\n\n useEffect(() => {\n if (disabled || resolvedNow) return;\n if (now < start || now > end) return;\n const t = setInterval(() => setNow(new Date()), 1000);\n return () => clearInterval(t);\n }, [start, end, now, disabled, resolvedNow]);\n\n const hasNotStarted = start > now;\n const hasEnded = end < now;\n\n // don't render if before start or after end\n if (hasNotStarted) return renderBeforeStart ? renderBeforeStart(props) : null;\n if (hasEnded) return renderAfterEnd ? renderAfterEnd(props) : null;\n\n const getCounters = () => {\n const counterProps = { size, counterLabels };\n\n return (\n <>\n {showDays && <Counter numbers={days} tag=\"days\" {...counterProps} />}\n <Counter numbers={hours} tag=\"hours\" {...counterProps} />\n <Counter numbers={minutes} tag=\"minutes\" {...counterProps} />\n <Counter numbers={seconds} tag=\"seconds\" {...counterProps} />\n </>\n );\n };\n\n const counters = getCounters();\n\n const classes = cx(\n rootClassName,\n `${rootClassName}--size-${size}`,\n `${rootClassName}--variant-${variant}`,\n {\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--show-days`]: showDays,\n [`${rootClassName}--use-media-queries`]: useMediaQueries,\n [`${rootClassName}--use-container-queries`]: !useMediaQueries,\n },\n className\n );\n\n return (\n <section\n id={id}\n className={classes}\n ref={ref}\n role=\"timer\"\n // A timer needs to be focusable so assistive technology users (including screen reader\n // quick-nav) can land on it and get its current, up-to-date time via aria-label.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n aria-label={`${accessibleName}, ${timeAnnouncement}`}\n data-testid={props[\"data-testid\"]}\n >\n {props.label && (\n // Hidden from the accessibility tree — its text already reaches assistive tech via the\n // section's aria-label, so exposing it separately would cause a duplicate readout.\n <Paragraph\n aria-hidden=\"true\"\n className={cx(`${rootClassName}__label`)}\n variant=\"paragraph-100-medium\"\n >\n {props.label}\n </Paragraph>\n )}\n <div className={cx(`${rootClassName}__counter-container`)}>{counters}</div>\n </section>\n );\n }\n);\n\nCountdown.displayName = \"Countdown\";\n"],"names":["cx","c","styles","rootClassName","Counter","tag","size","numbers","counterLabels","renderLabel","label","abbreviatedLabel","jsxs","Fragment","Paragraph","jsx","number","index","digits","d","i","selected","getDiffs","endtime","now","totalSeconds","_days","inMs","_hours","_minutes","_seconds","days","splitDigits","hours","minutes","toDate","t","value","Countdown","forwardRef","renderAfterEnd","renderBeforeStart","props","ref","id","useId","fullWidth","negative","showDays","variant","className","useMediaQueries","disabled","fixedNow","resolvedNow","useMemo","setNow","useState","start","end","seconds","timeAnnouncement","parts","accessibleName","useEffect","hasNotStarted","hasEnded","counters","counterProps","classes"],"mappings":"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"}
|
package/dist/countdown.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./countdown-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./countdown-CdGFNLZq.js");exports.Countdown=o.Countdown;
|
|
2
2
|
//# sourceMappingURL=countdown.cjs.js.map
|
package/dist/countdown.es.js
CHANGED