@payfit/unity-components 1.2.0 → 2.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/action-bar/ActionBar.js +14 -14
- package/dist/esm/components/actionable/Actionable.js +31 -28
- package/dist/esm/components/alert/Alert.js +41 -29
- package/dist/esm/components/alert/parts/AlertTitle.js +8 -8
- package/dist/esm/components/app-layout/AppLayout.d.ts +2 -0
- package/dist/esm/components/app-layout/AppLayout.js +17 -17
- package/dist/esm/components/app-menu/parts/AppMenuFooter.js +23 -23
- package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +87 -5
- package/dist/esm/components/app-menu/parts/AppMenuHeader.js +25 -25
- package/dist/esm/components/autocomplete/Autocomplete.d.ts +0 -9
- package/dist/esm/components/autocomplete/Autocomplete.js +54 -57
- package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +8 -8
- package/dist/esm/components/avatar/Avatar.variants.js +1 -1
- package/dist/esm/components/avatar/parts/AvatarFallback.js +26 -27
- package/dist/esm/components/badge/Badge.js +1 -1
- package/dist/esm/components/breadcrumbs/Breadcrumbs.context.js +3 -3
- package/dist/esm/components/breadcrumbs/Breadcrumbs.d.ts +19 -11
- package/dist/esm/components/breadcrumbs/Breadcrumbs.js +29 -18
- package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
- package/dist/esm/components/breadcrumbs/parts/Breadcrumb.d.ts +30 -5
- package/dist/esm/components/breadcrumbs/parts/Breadcrumb.js +35 -27
- package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.d.ts +37 -0
- package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.js +36 -0
- package/dist/esm/components/button/Button.js +6 -6
- package/dist/esm/components/button/Button.variants.d.ts +1 -0
- package/dist/esm/components/button/Button.variants.js +22 -15
- package/dist/esm/components/card/Card.context.d.ts +5 -0
- package/dist/esm/components/card/Card.context.js +14 -0
- package/dist/esm/components/card/Card.d.ts +210 -0
- package/dist/esm/components/card/Card.js +93 -0
- package/dist/esm/components/card/parts/CardContent.d.ts +37 -0
- package/dist/esm/components/card/parts/CardContent.js +8 -0
- package/dist/esm/components/card/parts/CardTitle.d.ts +55 -0
- package/dist/esm/components/card/parts/CardTitle.js +33 -0
- package/dist/esm/components/checkbox/Checkbox.js +38 -30
- package/dist/esm/components/checkbox/Checkbox.variants.d.ts +9 -9
- package/dist/esm/components/checkbox/Checkbox.variants.js +23 -7
- package/dist/esm/components/checkbox/TanstackCheckbox.d.ts +28 -0
- package/dist/esm/components/checkbox/TanstackCheckbox.js +51 -0
- package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +7 -7
- package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -0
- package/dist/esm/components/checkbox-field/TanstackCheckboxField.d.ts +14 -0
- package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +40 -0
- package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.d.ts +4 -0
- package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +37 -0
- package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.ts +2 -0
- package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.d.ts +72 -0
- package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +40 -0
- package/dist/esm/components/client-side-pagination/ClientSidePagination.d.ts +103 -0
- package/dist/esm/components/client-side-pagination/ClientSidePagination.js +177 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.d.ts +11 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.js +30 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationJumpDialog.d.ts +8 -0
- package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.js +1 -1
- package/dist/esm/components/{pagination/parts/PaginationLink.d.ts → client-side-pagination/parts/RawPaginationLink.d.ts} +2 -2
- package/dist/esm/components/{pagination/parts/PaginationLink.js → client-side-pagination/parts/RawPaginationLink.js} +12 -12
- package/dist/esm/components/client-side-pagination/utils/pagination-window.d.ts +8 -0
- package/dist/esm/components/client-side-pagination/utils/pagination-window.js +33 -0
- package/dist/esm/components/collapsible/parts/CollapsibleContent.js +5 -5
- package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +8 -8
- package/dist/esm/components/data-table/DataTable.d.ts +109 -16
- package/dist/esm/components/data-table/DataTable.js +107 -93
- package/dist/esm/components/data-table/mocks/employee-data.d.ts +1 -0
- package/dist/esm/components/date-calendar/DateCalendar.js +1 -1
- package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +1 -1
- package/dist/esm/components/date-picker/DatePicker.d.ts +1 -1
- package/dist/esm/components/date-picker/DatePicker.js +59 -50
- package/dist/esm/components/date-picker/TanstackDatePicker.d.ts +22 -0
- package/dist/esm/components/date-picker/TanstackDatePicker.js +53 -0
- package/dist/esm/components/date-picker/parts/DateInput.js +4 -4
- package/dist/esm/components/date-picker-field/DatePickerField.d.ts +2 -0
- package/dist/esm/components/date-picker-field/TanstackDatePickerField.d.ts +71 -0
- package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +41 -0
- package/dist/esm/components/definition-list/DefinitionList.context.d.ts +19 -0
- package/dist/esm/components/definition-list/DefinitionList.d.ts +24 -0
- package/dist/esm/components/definition-list/parts/DefinitionItem.d.ts +25 -0
- package/dist/esm/components/dialog/Dialog.d.ts +34 -22
- package/dist/esm/components/dialog/Dialog.js +90 -52
- package/dist/esm/components/dialog/parts/DialogActions.js +6 -6
- package/dist/esm/components/dialog/parts/DialogTitle.js +7 -4
- package/dist/esm/components/dialog/test-utils.d.ts +28 -0
- package/dist/esm/components/dialog/test-utils.js +78 -0
- package/dist/esm/components/error-state/ErrorState.d.ts +13 -1
- package/dist/esm/components/error-state/ErrorState.js +133 -92
- package/dist/esm/components/error-state/initConfig.js +1 -1
- package/dist/esm/components/fieldset/Fieldset.d.ts +19 -0
- package/dist/esm/components/fieldset/Fieldset.js +32 -26
- package/dist/esm/components/filter/Filter.controls.d.ts +192 -0
- package/dist/esm/components/filter/Filter.controls.js +45 -0
- package/dist/esm/components/filter/Filter.d.ts +189 -0
- package/dist/esm/components/filter/Filter.js +147 -0
- package/dist/esm/components/filter/Filter.types.d.ts +121 -0
- package/dist/esm/components/filter/hooks/useFilterIds.d.ts +49 -0
- package/dist/esm/components/filter/hooks/useFilterIds.js +13 -0
- package/dist/esm/components/filter/hooks/useFilterState.d.ts +74 -0
- package/dist/esm/components/filter/hooks/useFilterState.js +23 -0
- package/dist/esm/components/filter/hooks/useFilterValue.d.ts +61 -0
- package/dist/esm/components/filter/hooks/useFilterValue.js +31 -0
- package/dist/esm/components/filter/parts/FilterButton.d.ts +75 -0
- package/dist/esm/components/filter/parts/FilterButton.js +55 -0
- package/dist/esm/components/filter/parts/FilterLabel.d.ts +96 -0
- package/dist/esm/components/filter/parts/FilterLabel.js +57 -0
- package/dist/esm/components/filter/parts/FilterPopover.d.ts +95 -0
- package/dist/esm/components/filter/parts/FilterPopover.js +79 -0
- package/dist/esm/components/filter/utils/value-formatters.d.ts +62 -0
- package/dist/esm/components/filter/utils/value-formatters.js +14 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.d.ts +110 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.js +172 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.types.d.ts +119 -0
- package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.d.ts +96 -0
- package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +132 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilter.d.ts +63 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilter.js +107 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilterItem.d.ts +18 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +18 -0
- package/dist/esm/components/filter-toolbar/utils/filter-adapters.d.ts +93 -0
- package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +88 -0
- package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.d.ts +24 -0
- package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +19 -0
- package/dist/esm/components/flex/Flex.js +52 -37
- package/dist/esm/components/form/Form.d.ts +2 -0
- package/dist/esm/components/form/TanstackForm.d.ts +24 -0
- package/dist/esm/components/form/TanstackForm.js +29 -0
- package/dist/esm/components/form-field/FormField.d.ts +2 -0
- package/dist/esm/components/form-field/FormField.js +12 -12
- package/dist/esm/components/form-field/TanstackFormField.context.d.ts +10 -0
- package/dist/esm/components/form-field/TanstackFormField.context.js +14 -0
- package/dist/esm/components/form-field/TanstackFormField.d.ts +49 -0
- package/dist/esm/components/form-field/TanstackFormField.js +46 -0
- package/dist/esm/components/form-field/parts/FormControl.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormFeedbackText.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormHelperText.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormLabel.d.ts +2 -0
- package/dist/esm/components/form-field/parts/RawFormContextualLink.d.ts +22 -0
- package/dist/esm/components/form-field/parts/RawFormContextualLink.js +39 -0
- package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.d.ts +12 -0
- package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +32 -0
- package/dist/esm/components/form-field/parts/TanstackFormHelperText.d.ts +11 -0
- package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +25 -0
- package/dist/esm/components/form-field/parts/TanstackFormLabel.d.ts +8 -0
- package/dist/esm/components/form-field/parts/TanstackFormLabel.js +26 -0
- package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.d.ts +26 -0
- package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +45 -0
- package/dist/esm/components/funnel-layout/parts/FunnelSidebar.d.ts +2 -2
- package/dist/esm/components/icon/Icon.js +23 -19
- package/dist/esm/components/icon-button/CircularIconButton.d.ts +9 -9
- package/dist/esm/components/icon-button/CircularIconButton.js +53 -36
- package/dist/esm/components/icon-button/IconButton.variants.d.ts +1 -0
- package/dist/esm/components/icon-button/IconButton.variants.js +44 -28
- package/dist/esm/components/input/Input.js +36 -35
- package/dist/esm/components/input/TanstackInput.d.ts +22 -0
- package/dist/esm/components/input/TanstackInput.js +38 -0
- package/dist/esm/components/label/Label.js +12 -12
- package/dist/esm/components/link/{Link.variants.d.ts → RawLink.d.ts} +92 -0
- package/dist/esm/components/link/{Link.variants.js → RawLink.js} +78 -5
- package/dist/esm/components/list-view/ListView.d.ts +56 -0
- package/dist/esm/components/list-view/ListView.fixtures.d.ts +20 -0
- package/dist/esm/components/list-view/ListView.js +44 -0
- package/dist/esm/components/list-view/parts/ListViewItemLabel.d.ts +34 -0
- package/dist/esm/components/list-view/parts/ListViewItemLabel.js +22 -0
- package/dist/esm/components/list-view/parts/ListViewItemText.d.ts +33 -0
- package/dist/esm/components/list-view/parts/ListViewItemText.js +22 -0
- package/dist/esm/components/list-view/parts/ListViewSection.d.ts +14 -0
- package/dist/esm/components/list-view/parts/ListViewSection.js +21 -0
- package/dist/esm/components/list-view/parts/RawListViewItem.d.ts +102 -0
- package/dist/esm/components/list-view/parts/RawListViewItem.js +80 -0
- package/dist/esm/components/menu/parts/{MenuItem.d.ts → RawMenuItem.d.ts} +3 -4
- package/dist/esm/components/menu/parts/{MenuItem.js → RawMenuItem.js} +9 -9
- package/dist/esm/components/multi-select/MultiSelect.d.ts +5 -7
- package/dist/esm/components/multi-select/MultiSelect.js +199 -176
- package/dist/esm/components/multi-select/MultiselectTypes.d.ts +114 -0
- package/dist/esm/components/multi-select/TanstackMultiSelect.d.ts +7 -0
- package/dist/esm/components/multi-select/TanstackMultiSelect.js +41 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.d.ts +2 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.js +62 -46
- package/dist/esm/components/multi-select/parts/MultiSelectPopover.js +15 -15
- package/dist/esm/components/multi-select-field/MultiSelectField.d.ts +45 -12
- package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -66
- package/dist/esm/components/multi-select-field/TanstackMultiSelectField.d.ts +92 -0
- package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +48 -0
- package/dist/esm/components/multi-select-field/test-utils.d.ts +17 -0
- package/dist/esm/components/multi-select-field/test-utils.js +45 -0
- package/dist/esm/components/nav/parts/NavGroup.d.ts +3 -3
- package/dist/esm/components/nav/parts/NavGroup.js +62 -51
- package/dist/esm/components/nav/parts/{NavItem.d.ts → RawNavItem.d.ts} +102 -5
- package/dist/esm/components/nav/parts/RawNavItem.js +106 -0
- package/dist/esm/components/navigation-card/NavigationCard.context.d.ts +31 -0
- package/dist/esm/components/navigation-card/NavigationCard.context.js +13 -0
- package/dist/esm/components/navigation-card/NavigationCard.d.ts +46 -0
- package/dist/esm/components/navigation-card/NavigationCard.js +62 -0
- package/dist/esm/components/navigation-card/NavigationCard.types.d.ts +37 -0
- package/dist/esm/components/navigation-card/NavigationCard.variants.d.ts +1147 -0
- package/dist/esm/components/navigation-card/NavigationCard.variants.js +164 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardDescription.d.ts +39 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +22 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardGroup.d.ts +146 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +93 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardLabel.d.ts +32 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +24 -0
- package/dist/esm/components/number-field/NumberField.d.ts +2 -0
- package/dist/esm/components/number-field/TanstackNumberField.d.ts +74 -0
- package/dist/esm/components/number-field/TanstackNumberField.js +44 -0
- package/dist/esm/components/number-input/NumberInput.js +31 -29
- package/dist/esm/components/number-input/TanstackNumberInput.d.ts +58 -0
- package/dist/esm/components/number-input/TanstackNumberInput.js +38 -0
- package/dist/esm/components/page/Page.js +13 -12
- package/dist/esm/components/page/parts/PageHeader.d.ts +79 -9
- package/dist/esm/components/page/parts/PageHeader.js +22 -20
- package/dist/esm/components/pagination/Pagination.d.ts +23 -44
- package/dist/esm/components/pagination/Pagination.js +89 -163
- package/dist/esm/components/pagination/PaginationContext.d.ts +11 -0
- package/dist/esm/components/pagination/PaginationContext.js +15 -0
- package/dist/esm/components/pagination/hooks/use-pagination-state.d.ts +63 -0
- package/dist/esm/components/pagination/hooks/use-pagination-state.js +27 -0
- package/dist/esm/components/pagination/hooks/use-pagination-window.d.ts +64 -0
- package/dist/esm/components/pagination/hooks/use-pagination-window.js +15 -0
- package/dist/esm/components/pagination/parts/PaginationContent.d.ts +30 -0
- package/dist/esm/components/pagination/parts/PaginationContent.js +37 -0
- package/dist/esm/components/pagination/parts/PaginationEllipsis.d.ts +23 -4
- package/dist/esm/components/pagination/parts/PaginationEllipsis.js +20 -16
- package/dist/esm/components/pagination/parts/PaginationItem.d.ts +38 -0
- package/dist/esm/components/pagination/parts/PaginationItem.js +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationLink.d.ts +11 -0
- package/dist/esm/components/pagination/parts/RawPaginationLink.js +60 -0
- package/dist/esm/components/pagination/parts/RawPaginationNext.d.ts +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationNext.js +70 -0
- package/dist/esm/components/pagination/parts/RawPaginationPrevious.d.ts +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +67 -0
- package/dist/esm/components/pagination/utils/pagination-window.js +29 -20
- package/dist/esm/components/payfit-brand/PayFitBrand.d.ts +4 -0
- package/dist/esm/components/payfit-brand/PayFitBrand.js +30 -22
- package/dist/esm/components/payfit-brand/PayFitPreprod.js +25 -25
- package/dist/esm/components/phone-number/PhoneNumberInput.d.ts +67 -0
- package/dist/esm/components/phone-number/PhoneNumberInput.js +322 -0
- package/dist/esm/components/phone-number/TanstackPhoneNumberInput.d.ts +64 -0
- package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +33 -0
- package/dist/esm/components/phone-number/parts/PhoneNumberItem.d.ts +42 -0
- package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +68 -0
- package/dist/esm/components/phone-number/unknownFlag.svg.js +4 -0
- package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.d.ts +15 -0
- package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +32 -0
- package/dist/esm/components/pill/Pill.d.ts +2 -2
- package/dist/esm/components/pill/Pill.js +8 -8
- package/dist/esm/components/popover/Popover.js +6 -6
- package/dist/esm/components/promo-dialog/PromoDialog.d.ts +149 -0
- package/dist/esm/components/promo-dialog/PromoDialog.js +219 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogActions.d.ts +44 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +29 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogContent.d.ts +43 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +20 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogHero.d.ts +47 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +25 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.d.ts +53 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +21 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.d.ts +6 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +18 -0
- package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.d.ts +13 -0
- package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +43 -0
- package/dist/esm/components/radio-button-group/parts/RadioButton.d.ts +29 -11
- package/dist/esm/components/radio-button-group/parts/RadioButton.js +53 -51
- package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.d.ts +2 -0
- package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.d.ts +13 -0
- package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +38 -0
- package/dist/esm/components/search/Search.js +46 -46
- package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +5 -5
- package/dist/esm/components/select/Select.d.ts +5 -4
- package/dist/esm/components/select/Select.js +79 -53
- package/dist/esm/components/select/TanstackSelect.d.ts +80 -0
- package/dist/esm/components/select/TanstackSelect.js +34 -0
- package/dist/esm/components/select/parts/SearchInput.d.ts +4 -1
- package/dist/esm/components/select/parts/SearchInput.js +49 -31
- package/dist/esm/components/select/parts/SelectButton.js +19 -17
- package/dist/esm/components/select/parts/SelectOption.js +9 -9
- package/dist/esm/components/select-field/SelectField.d.ts +2 -0
- package/dist/esm/components/select-field/SelectField.js +8 -9
- package/dist/esm/components/select-field/TanstackSelectField.d.ts +124 -0
- package/dist/esm/components/select-field/TanstackSelectField.js +44 -0
- package/dist/esm/components/select-list/SelectList.d.ts +95 -0
- package/dist/esm/components/select-list/SelectList.js +79 -0
- package/dist/esm/components/select-list/SelectList.types.d.ts +29 -0
- package/dist/esm/components/select-list/constants.d.ts +36 -0
- package/dist/esm/components/select-list/constants.js +29 -0
- package/dist/esm/components/select-list/helpers.d.ts +42 -0
- package/dist/esm/components/select-list/helpers.js +48 -0
- package/dist/esm/components/select-list/hooks/useControlledSelection.d.ts +23 -0
- package/dist/esm/components/select-list/hooks/useControlledSelection.js +16 -0
- package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.d.ts +23 -0
- package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +31 -0
- package/dist/esm/components/select-list/parts/SelectListEmptyState.d.ts +8 -0
- package/dist/esm/components/select-list/parts/SelectListEmptyState.js +25 -0
- package/dist/esm/components/select-list/parts/SelectListOptGroup.d.ts +118 -0
- package/dist/esm/components/select-list/parts/SelectListOptGroup.js +28 -0
- package/dist/esm/components/select-list/parts/SelectListOption.d.ts +24 -0
- package/dist/esm/components/select-list/parts/SelectListOption.js +72 -0
- package/dist/esm/components/select-list/parts/SelectListSearchInput.d.ts +2 -0
- package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -0
- package/dist/esm/components/select-list/parts/SelectedItemsSection.d.ts +54 -0
- package/dist/esm/components/select-list/parts/SelectedItemsSection.js +35 -0
- package/dist/esm/components/select-list/utils/partition.d.ts +13 -0
- package/dist/esm/components/select-list/utils/partition.js +9 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.ts +1 -5
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.ts +6 -1
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +23 -23
- package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.d.ts +27 -0
- package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +34 -0
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.ts +1 -16
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +56 -57
- package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.d.ts +81 -0
- package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +47 -0
- package/dist/esm/components/selectable-card/internals/Description.js +1 -1
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +1 -1
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.d.ts +26 -0
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +32 -0
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +24 -24
- package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.d.ts +2 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +12 -14
- package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.d.ts +28 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +32 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/RadioIndicator.js +14 -13
- package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +27 -25
- package/dist/esm/components/selectable-card/selectableCard.variant.js +5 -5
- package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.d.ts +10 -0
- package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +38 -0
- package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.d.ts +10 -0
- package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +38 -0
- package/dist/esm/components/skip-links/SkipLinks.js +1 -1
- package/dist/esm/components/table/Table.context.d.ts +5 -0
- package/dist/esm/components/table/Table.context.js +14 -13
- package/dist/esm/components/table/Table.d.ts +94 -0
- package/dist/esm/components/table/Table.js +145 -108
- package/dist/esm/components/table/hooks/useTableKeyboardNavigation.js +6 -6
- package/dist/esm/components/table/parts/TableBody.js +83 -21
- package/dist/esm/components/table/parts/TableCell.js +29 -26
- package/dist/esm/components/table/parts/TableEmptyState.js +6 -6
- package/dist/esm/components/table/parts/TableHeader.js +1 -1
- package/dist/esm/components/table/parts/TablePagination.d.ts +5 -5
- package/dist/esm/components/table/parts/TablePagination.js +11 -11
- package/dist/esm/components/table/parts/TableRow.js +22 -18
- package/dist/esm/components/tabs/Tabs.variant.d.ts +0 -6
- package/dist/esm/components/tabs/Tabs.variant.js +11 -12
- package/dist/esm/components/tabs/parts/{Tab.d.ts → RawTab.d.ts} +2 -2
- package/dist/esm/components/tabs/parts/{Tab.js → RawTab.js} +6 -6
- package/dist/esm/components/task-menu/TaskMenu.d.ts +4 -4
- package/dist/esm/components/task-menu/parts/{SubTask.d.ts → RawSubTask.d.ts} +7 -7
- package/dist/esm/components/task-menu/parts/{SubTask.js → RawSubTask.js} +43 -43
- package/dist/esm/components/task-menu/parts/{Task.d.ts → RawTask.d.ts} +7 -7
- package/dist/esm/components/task-menu/parts/{Task.js → RawTask.js} +45 -41
- package/dist/esm/components/task-menu/parts/TaskGroup.d.ts +5 -5
- package/dist/esm/components/task-menu/parts/TaskGroup.js +30 -26
- package/dist/esm/components/task-menu/parts/task.variants.js +4 -2
- package/dist/esm/components/text/Text.d.ts +11 -1
- package/dist/esm/components/text/Text.js +43 -30
- package/dist/esm/components/text/Text.variants.d.ts +12 -0
- package/dist/esm/components/text/Text.variants.js +4 -0
- package/dist/esm/components/text-area/TanstackTextArea.d.ts +21 -0
- package/dist/esm/components/text-area/TanstackTextArea.js +35 -0
- package/dist/esm/components/text-area/TextArea.js +31 -29
- package/dist/esm/components/text-field/TanstackTextField.d.ts +79 -0
- package/dist/esm/components/text-field/TanstackTextField.js +60 -0
- package/dist/esm/components/text-field/TextField.d.ts +2 -0
- package/dist/esm/components/toast/UnityToast.js +5 -5
- package/dist/esm/components/toast/test-utils.d.ts +36 -0
- package/dist/esm/components/toast/test-utils.js +118 -0
- package/dist/esm/components/toggle-switch/TanstackToggleSwitch.d.ts +46 -0
- package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +25 -0
- package/dist/esm/components/toggle-switch/ToggleSwitch.d.ts +21 -9
- package/dist/esm/components/toggle-switch/ToggleSwitch.js +71 -32
- package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.d.ts +11 -0
- package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +34 -0
- package/dist/esm/components/toggle-switch-field/ToggleSwitchField.d.ts +2 -0
- package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.d.ts +57 -0
- package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +23 -0
- package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +1 -1
- package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.d.ts +19 -0
- package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +50 -0
- package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.d.ts +2 -0
- package/dist/esm/docs/{table → examples/data}/mocks/employee-columns.d.ts +1 -1
- package/dist/esm/hooks/tanstack-form-context.d.ts +1 -0
- package/dist/esm/hooks/tanstack-form-context.js +8 -0
- package/dist/esm/hooks/use-container-query-level.d.ts +42 -0
- package/dist/esm/hooks/use-container-query-level.js +33 -0
- package/dist/esm/hooks/use-form.d.ts +2 -0
- package/dist/esm/hooks/use-has-scroll.d.ts +71 -0
- package/dist/esm/hooks/use-has-scroll.js +75 -0
- package/dist/esm/hooks/use-tanstack-form.d.ts +369 -0
- package/dist/esm/hooks/use-tanstack-form.js +209 -0
- package/dist/esm/index.d.ts +64 -30
- package/dist/esm/index.js +482 -394
- package/dist/esm/index.storybook-testing.d.ts +3 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumb.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.d.ts +38 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.js +7 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumbs.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/use-route-breadcrumb.d.ts +53 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +45 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.js +7 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
- package/dist/esm/integrations/tanstack-router/components/link/Link.d.ts +33 -0
- package/dist/esm/integrations/tanstack-router/components/link/Link.js +7 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/ListView.d.ts +34 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +25 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.d.ts +51 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +32 -0
- package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.d.ts +49 -0
- package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.js +16 -0
- package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.js +29 -0
- package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.d.ts +73 -0
- package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +37 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.d.ts +54 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.js +21 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.js +22 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.d.ts +51 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.js +22 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.d.ts +82 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.js +41 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.js +15 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabList.d.ts +5 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.d.ts +77 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.js +16 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.d.ts +69 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.js +14 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/Task.d.ts +64 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/Task.js +14 -0
- package/dist/esm/integrations/tanstack-router/index.d.ts +19 -0
- package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router.js +40 -0
- package/dist/esm/mocks/employees.d.ts +1 -5
- package/dist/esm/providers/router/RouterProvider.d.ts +7 -2
- package/dist/esm/providers/router/RouterProvider.js +14 -10
- package/dist/esm/storybook-testing.js +8 -2
- package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
- package/dist/esm/types/DataAttributes.d.ts +1 -1
- package/dist/esm/utils/scroll-detection.d.ts +77 -0
- package/dist/esm/utils/scroll-detection.js +33 -0
- package/dist/esm/utils/spacing.d.ts +63 -0
- package/dist/esm/utils/spacing.js +15 -0
- package/i18n/en-GB.json +22 -8
- package/i18n/es-ES.json +24 -10
- package/i18n/fr-FR.json +25 -11
- package/package.json +66 -45
- package/dist/esm/components/form-field/parts/FormContextualLink.d.ts +0 -20
- package/dist/esm/components/form-field/parts/FormContextualLink.js +0 -37
- package/dist/esm/components/link/Link.d.ts +0 -93
- package/dist/esm/components/link/Link.js +0 -68
- package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
- package/dist/esm/components/nav/parts/NavItem.js +0 -95
- package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.d.ts +0 -6
- package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.js +0 -28
- package/dist/esm/integrations/react-router/v5/index.d.ts +0 -1
- package/dist/esm/integrations/react-router/v5.js +0 -4
- /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.d.ts +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.js +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationJumpDialog.js +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.d.ts +0 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { VariantProps } from '@payfit/unity-themes';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
export declare const promoDialog: import('tailwind-variants').TVReturnType<{
|
|
4
|
+
[key: string]: {
|
|
5
|
+
[key: string]: import('tailwind-merge').ClassNameValue | {
|
|
6
|
+
content?: import('tailwind-merge').ClassNameValue;
|
|
7
|
+
overlay?: import('tailwind-merge').ClassNameValue;
|
|
8
|
+
layoutWrapper?: import('tailwind-merge').ClassNameValue;
|
|
9
|
+
wrapper?: import('tailwind-merge').ClassNameValue;
|
|
10
|
+
dismissIcon?: import('tailwind-merge').ClassNameValue;
|
|
11
|
+
contentColumn?: import('tailwind-merge').ClassNameValue;
|
|
12
|
+
scrollableContent?: import('tailwind-merge').ClassNameValue;
|
|
13
|
+
actionsWrapper?: import('tailwind-merge').ClassNameValue;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
} | {
|
|
17
|
+
[x: string]: {
|
|
18
|
+
[x: string]: import('tailwind-merge').ClassNameValue | {
|
|
19
|
+
content?: import('tailwind-merge').ClassNameValue;
|
|
20
|
+
overlay?: import('tailwind-merge').ClassNameValue;
|
|
21
|
+
layoutWrapper?: import('tailwind-merge').ClassNameValue;
|
|
22
|
+
wrapper?: import('tailwind-merge').ClassNameValue;
|
|
23
|
+
dismissIcon?: import('tailwind-merge').ClassNameValue;
|
|
24
|
+
contentColumn?: import('tailwind-merge').ClassNameValue;
|
|
25
|
+
scrollableContent?: import('tailwind-merge').ClassNameValue;
|
|
26
|
+
actionsWrapper?: import('tailwind-merge').ClassNameValue;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
} | {}, {
|
|
30
|
+
overlay: string[];
|
|
31
|
+
wrapper: string[];
|
|
32
|
+
content: string[];
|
|
33
|
+
dismissIcon: string[];
|
|
34
|
+
layoutWrapper: string[];
|
|
35
|
+
contentColumn: string[];
|
|
36
|
+
scrollableContent: string[];
|
|
37
|
+
actionsWrapper: string[];
|
|
38
|
+
}, undefined, {
|
|
39
|
+
[key: string]: {
|
|
40
|
+
[key: string]: import('tailwind-merge').ClassNameValue | {
|
|
41
|
+
content?: import('tailwind-merge').ClassNameValue;
|
|
42
|
+
overlay?: import('tailwind-merge').ClassNameValue;
|
|
43
|
+
layoutWrapper?: import('tailwind-merge').ClassNameValue;
|
|
44
|
+
wrapper?: import('tailwind-merge').ClassNameValue;
|
|
45
|
+
dismissIcon?: import('tailwind-merge').ClassNameValue;
|
|
46
|
+
contentColumn?: import('tailwind-merge').ClassNameValue;
|
|
47
|
+
scrollableContent?: import('tailwind-merge').ClassNameValue;
|
|
48
|
+
actionsWrapper?: import('tailwind-merge').ClassNameValue;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
} | {}, {
|
|
52
|
+
overlay: string[];
|
|
53
|
+
wrapper: string[];
|
|
54
|
+
content: string[];
|
|
55
|
+
dismissIcon: string[];
|
|
56
|
+
layoutWrapper: string[];
|
|
57
|
+
contentColumn: string[];
|
|
58
|
+
scrollableContent: string[];
|
|
59
|
+
actionsWrapper: string[];
|
|
60
|
+
}, import('tailwind-variants').TVReturnType<unknown, {
|
|
61
|
+
overlay: string[];
|
|
62
|
+
wrapper: string[];
|
|
63
|
+
content: string[];
|
|
64
|
+
dismissIcon: string[];
|
|
65
|
+
layoutWrapper: string[];
|
|
66
|
+
contentColumn: string[];
|
|
67
|
+
scrollableContent: string[];
|
|
68
|
+
actionsWrapper: string[];
|
|
69
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
70
|
+
export interface PromoDialogProps extends PropsWithChildren<VariantProps<typeof promoDialog>> {
|
|
71
|
+
/** aria-label has to be defined if the dialog does not have a visible label*/
|
|
72
|
+
'aria-label'?: string;
|
|
73
|
+
/** Controls the open state of the dialog. Use only in controlled mode (along with the `onOpenChange` callback) */
|
|
74
|
+
isOpen?: boolean;
|
|
75
|
+
/** it is used for controlled mode (need to be used with isOpen property) */
|
|
76
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
77
|
+
/** if false it does not allow to close the modal when click outside, default: true*/
|
|
78
|
+
isDismissable?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* The PromoDialog component provides a specialized modal interface for promotional content,
|
|
82
|
+
* feature announcements, and important communications that benefit from visual emphasis.
|
|
83
|
+
*
|
|
84
|
+
* Use PromoDialog when you want to introduce new features, highlight important updates, or present
|
|
85
|
+
* promotional content with a compelling illustration. It features a hero section for illustrations
|
|
86
|
+
* and automatically adapts its layout between mobile (vertical stack) and desktop (horizontal split).
|
|
87
|
+
*
|
|
88
|
+
* The PromoDialog requires several parts working together:
|
|
89
|
+
* - `PromoDialogHero`: Contains the promotional illustration (required)
|
|
90
|
+
* - `PromoDialogTitle`: Displays the title of the dialog
|
|
91
|
+
* - `PromoDialogContent`: Contains the main content of the dialog (required)
|
|
92
|
+
* - `PromoDialogActions`: Contains action buttons for user interaction
|
|
93
|
+
* - `DialogButton`: Handles specific actions (close, confirm, or danger)
|
|
94
|
+
* @param props - The props for the PromoDialog component
|
|
95
|
+
* @param props.children - The dialog content including hero, title, content, and actions
|
|
96
|
+
* @param props.isOpen - Controls the open state in controlled mode
|
|
97
|
+
* @param props.onOpenChange - Callback fired when open state changes
|
|
98
|
+
* @param props.isDismissable - Whether the dialog can be dismissed by clicking outside or pressing Escape
|
|
99
|
+
* @see {@link PromoDialogProps} for all available props
|
|
100
|
+
* @example
|
|
101
|
+
* ```tsx
|
|
102
|
+
* import {
|
|
103
|
+
* PromoDialog,
|
|
104
|
+
* DialogTrigger,
|
|
105
|
+
* PromoDialogHero,
|
|
106
|
+
* PromoDialogTitle,
|
|
107
|
+
* PromoDialogContent,
|
|
108
|
+
* PromoDialogActions,
|
|
109
|
+
* DialogButton
|
|
110
|
+
* } from '@payfit/unity-components'
|
|
111
|
+
* import { Illustration } from '@payfit/unity-illustrations'
|
|
112
|
+
*
|
|
113
|
+
* function FeatureAnnouncement() {
|
|
114
|
+
* return (
|
|
115
|
+
* <DialogTrigger>
|
|
116
|
+
* <Button>Learn more</Button>
|
|
117
|
+
* <PromoDialog>
|
|
118
|
+
* <PromoDialogHero>
|
|
119
|
+
* <Illustration src={ContractSignature} variant="picture" />
|
|
120
|
+
* </PromoDialogHero>
|
|
121
|
+
* <PromoDialogTitle>Introducing our new feature</PromoDialogTitle>
|
|
122
|
+
* <PromoDialogContent>
|
|
123
|
+
* Discover how this feature can help you...
|
|
124
|
+
* </PromoDialogContent>
|
|
125
|
+
* <PromoDialogActions>
|
|
126
|
+
* <DialogButton variant="close">Maybe later</DialogButton>
|
|
127
|
+
* <DialogButton variant="confirm">Get started</DialogButton>
|
|
128
|
+
* </PromoDialogActions>
|
|
129
|
+
* </PromoDialog>
|
|
130
|
+
* </DialogTrigger>
|
|
131
|
+
* )
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
* @remarks
|
|
135
|
+
* - Content scrolls when it overflows, with a sticky footer
|
|
136
|
+
* - Layout adapts automatically: vertical on mobile, horizontal split on desktop
|
|
137
|
+
* - Hero section is mandatory and displays on the left (desktop) or top (mobile)
|
|
138
|
+
* - Shadow appears on footer when content is scrollable
|
|
139
|
+
* - **Accessibility**: Either `PromoDialogTitle` or `aria-label` prop is required for screen readers
|
|
140
|
+
* - **Accessibility**: Dialog traps focus and can be closed with Escape key when dismissable
|
|
141
|
+
* - **Accessibility**: Close button is keyboard accessible with proper ARIA labels
|
|
142
|
+
* - **Accessibility**: Supports prefers-reduced-motion for users with motion sensitivities
|
|
143
|
+
* [API Docs](https://unity-components.payfit.io/?path=/docs/feedback-promodialog--docs) • [Design Docs](https://www.payfit.design/24f360409/p/01f5dc-dialog)
|
|
144
|
+
*/
|
|
145
|
+
declare function PromoDialog({ children, isOpen, onOpenChange, isDismissable, ...rest }: PromoDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
146
|
+
declare namespace PromoDialog {
|
|
147
|
+
var displayName: string;
|
|
148
|
+
}
|
|
149
|
+
export { PromoDialog };
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { jsx as t, jsxs as c } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as P, Children as m, isValidElement as l, useLayoutEffect as v } from "react";
|
|
3
|
+
import { uyTv as N } from "@payfit/unity-themes";
|
|
4
|
+
import { useId as C } from "react-aria";
|
|
5
|
+
import { ModalOverlay as A, Modal as E, DialogContext as I, Dialog as j } from "react-aria-components";
|
|
6
|
+
import { useIntl as z } from "react-intl";
|
|
7
|
+
import { useHasScroll as M } from "../../hooks/use-has-scroll.js";
|
|
8
|
+
import { DialogButton as H } from "../dialog/parts/DialogActions/DialogButton.js";
|
|
9
|
+
import { CircularIconButton as T } from "../icon-button/CircularIconButton.js";
|
|
10
|
+
import { PromoDialogActions as b } from "./parts/PromoDialogActions.js";
|
|
11
|
+
import { PromoDialogHero as W } from "./parts/PromoDialogHero.js";
|
|
12
|
+
import { PromoDialogTitle as _ } from "./parts/PromoDialogTitle.js";
|
|
13
|
+
const k = N({
|
|
14
|
+
slots: {
|
|
15
|
+
overlay: [
|
|
16
|
+
"uy:@container",
|
|
17
|
+
"uy:fixed uy:inset-0 uy:z-30 uy:overflow-y-auto",
|
|
18
|
+
"uy:min-h-full",
|
|
19
|
+
"uy:flex uy:items-end uy:md:items-center uy:md:justify-center uy:md:text-center",
|
|
20
|
+
"uy:bg-utility-backdrop",
|
|
21
|
+
// enter/leave animation
|
|
22
|
+
"uy:data-[entering]:animate-fade-in uy:data-[exiting]:animate-fade-out",
|
|
23
|
+
"uy:motion-reduce:data-[entering]:animate-none uy:motion-reduce:data-[exiting]:animate-none"
|
|
24
|
+
],
|
|
25
|
+
wrapper: [
|
|
26
|
+
"uy:w-full uy:relative uy:isolate",
|
|
27
|
+
"uy:m-0",
|
|
28
|
+
"uy:rounded-t-300 uy:md:rounded-300",
|
|
29
|
+
"uy:bg-surface-neutral",
|
|
30
|
+
"uy:text-left uy:align-middle uy:shadow-floating",
|
|
31
|
+
// Mobile: enter/leave animation
|
|
32
|
+
"uy:data-[entering]:animate-slide-up-fade-in uy:data-[exiting]:animate-slide-down-fade-out",
|
|
33
|
+
"uy:md:[animation-delay:100ms]",
|
|
34
|
+
// Desktop: enter/leave animation
|
|
35
|
+
"uy:md:data-[entering]:animate-zoom-in uy:md:data-[exiting]:animate-zoom-out",
|
|
36
|
+
"uy:motion-reduce:data-[entering]:animate-none uy:motion-reduce:data-[exiting]:animate-none",
|
|
37
|
+
// Mobile: scrollable with max height
|
|
38
|
+
"uy:max-h-[95dvh] uy:overflow-y-auto",
|
|
39
|
+
// Desktop: max height (adapts to content), no overflow on wrapper
|
|
40
|
+
"uy:md:h-[82dvh] uy:md:max-h-65 uy:lg:max-h-85 uy:md:overflow-hidden",
|
|
41
|
+
"uy:md:w-10/12 uy:md:max-w-[1000px] uy:p-300 uy:pb-0 uy:md:p-200"
|
|
42
|
+
],
|
|
43
|
+
content: [
|
|
44
|
+
"uy:group/promo-dialog uy:outline-none uy:relative",
|
|
45
|
+
// Mobile: auto height (wrapper scrolls)
|
|
46
|
+
"uy:h-auto",
|
|
47
|
+
// Desktop: full height (content scrolls internally)
|
|
48
|
+
"uy:md:h-full"
|
|
49
|
+
],
|
|
50
|
+
dismissIcon: [
|
|
51
|
+
// Mobile: sticky button that takes some padding at the top
|
|
52
|
+
"uy:sticky uy:top-0 uy:right-0 uy:flex uy:justify-end",
|
|
53
|
+
// Desktop: close button is positioned absolutely at the top-right corner
|
|
54
|
+
"uy:md:absolute uy:md:right-100 uy:md:top-100 uy:md:z-20"
|
|
55
|
+
],
|
|
56
|
+
// Layout slots
|
|
57
|
+
layoutWrapper: [
|
|
58
|
+
"uy:flex uy:flex-col uy:md:flex-row",
|
|
59
|
+
// Mobile: auto height (wrapper scrolls)
|
|
60
|
+
"uy:h-auto",
|
|
61
|
+
// Desktop: full height for flex layout
|
|
62
|
+
"uy:md:h-full uy:gap-300 uy:md:gap-0"
|
|
63
|
+
],
|
|
64
|
+
contentColumn: [
|
|
65
|
+
"uy:group/content-column",
|
|
66
|
+
"uy:flex uy:flex-col",
|
|
67
|
+
// Mobile: auto height
|
|
68
|
+
"uy:h-auto",
|
|
69
|
+
// Desktop: takes 2/3 of width, fixed max height, enables scrolling
|
|
70
|
+
"uy:md:basis-2/3 uy:md:h-full uy:md:max-h-85 uy:md:overflow-y-auto uy:md:pt-600"
|
|
71
|
+
],
|
|
72
|
+
scrollableContent: [
|
|
73
|
+
"uy:md:pl-[clamp(var(--uy-spacing-400),11%,var(--uy-spacing-800))] uy:md:pr-1000 uy:[scrollbar-width:thin] uy:md:scroll-mt-1000",
|
|
74
|
+
// Mobile: flex-1 to fill space (wrapper scrolls)
|
|
75
|
+
"uy:flex-1",
|
|
76
|
+
// desktop: centered layout
|
|
77
|
+
"uy:md:flex uy:md:flex-col uy:md:justify-center"
|
|
78
|
+
],
|
|
79
|
+
actionsWrapper: [
|
|
80
|
+
"uy:py-300 uy:md:py-0 uy:sticky uy:-bottom-px uy:bg-surface-neutral",
|
|
81
|
+
// Apply shadow when parent group has scroll
|
|
82
|
+
"uy:group-data-[has-scroll=true]/content-column:shadow-[0_-1px_6px_0_var(--uy-color-utility-shadow-floating)]"
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
}), B = (r) => {
|
|
86
|
+
const n = m.toArray(r).find(
|
|
87
|
+
(e) => l(e) && e.type === b
|
|
88
|
+
);
|
|
89
|
+
return l(
|
|
90
|
+
n
|
|
91
|
+
) ? m.toArray(n.props.children).some(
|
|
92
|
+
(e) => l(
|
|
93
|
+
e
|
|
94
|
+
) && e.type === H && e.props.variant === "danger"
|
|
95
|
+
) : !1;
|
|
96
|
+
};
|
|
97
|
+
function q({
|
|
98
|
+
children: r,
|
|
99
|
+
isOpen: n,
|
|
100
|
+
onOpenChange: e,
|
|
101
|
+
isDismissable: p = !0,
|
|
102
|
+
...y
|
|
103
|
+
}) {
|
|
104
|
+
const f = z(), d = C(), g = P(null), { hasAnyScroll: i } = M(g, {
|
|
105
|
+
strategy: "both",
|
|
106
|
+
watchMutations: !1
|
|
107
|
+
}), s = m.toArray(r), u = s.find(
|
|
108
|
+
(o) => l(o) && o.type === W
|
|
109
|
+
), h = s.find(
|
|
110
|
+
(o) => l(o) && o.type === b
|
|
111
|
+
), w = s.filter(
|
|
112
|
+
(o) => o !== u && o !== h
|
|
113
|
+
);
|
|
114
|
+
v(() => {
|
|
115
|
+
u || console.error(
|
|
116
|
+
"PromoDialog: PromoDialogHero is required. Please add <PromoDialogHero> as a child of your PromoDialog component."
|
|
117
|
+
);
|
|
118
|
+
}, [u]), v(() => {
|
|
119
|
+
const D = m.toArray(r).some(
|
|
120
|
+
(x) => l(x) && x.type === _
|
|
121
|
+
);
|
|
122
|
+
!y["aria-label"] && !D && console.error(
|
|
123
|
+
"PromoDialog: Either an aria-label or a PromoDialogTitle is required for accessibility. Provide one to ensure screen reader users can identify the dialog."
|
|
124
|
+
);
|
|
125
|
+
}, [r, y]);
|
|
126
|
+
const a = k();
|
|
127
|
+
return /* @__PURE__ */ t(
|
|
128
|
+
A,
|
|
129
|
+
{
|
|
130
|
+
isDismissable: p,
|
|
131
|
+
isOpen: n,
|
|
132
|
+
onOpenChange: e,
|
|
133
|
+
className: a.overlay(),
|
|
134
|
+
children: /* @__PURE__ */ t(
|
|
135
|
+
E,
|
|
136
|
+
{
|
|
137
|
+
className: a.wrapper(),
|
|
138
|
+
"data-unity-promo-dialog": !0,
|
|
139
|
+
"data-dd-privacy": "allow",
|
|
140
|
+
children: /* @__PURE__ */ t(I.Provider, { value: { "aria-describedby": d }, children: /* @__PURE__ */ c(
|
|
141
|
+
j,
|
|
142
|
+
{
|
|
143
|
+
role: B(r) ? "alertdialog" : "dialog",
|
|
144
|
+
"aria-modal": "true",
|
|
145
|
+
className: a.content(),
|
|
146
|
+
"aria-label": y["aria-label"],
|
|
147
|
+
"aria-describedby": d,
|
|
148
|
+
"data-unity-slot": "promo-dialog",
|
|
149
|
+
children: [
|
|
150
|
+
p && /* @__PURE__ */ t("div", { className: a.dismissIcon(), children: /* @__PURE__ */ t(
|
|
151
|
+
T,
|
|
152
|
+
{
|
|
153
|
+
asElement: "button",
|
|
154
|
+
icon: "CloseOutlined",
|
|
155
|
+
color: "content.neutral.low",
|
|
156
|
+
size: "large",
|
|
157
|
+
title: f.formatMessage({
|
|
158
|
+
id: "unity:component:common:close:label"
|
|
159
|
+
}),
|
|
160
|
+
slot: "close",
|
|
161
|
+
className: "uy:relative uy:-top-100 uy:-right-100 uy:md:static"
|
|
162
|
+
}
|
|
163
|
+
) }),
|
|
164
|
+
/* @__PURE__ */ c(
|
|
165
|
+
"div",
|
|
166
|
+
{
|
|
167
|
+
className: a.layoutWrapper(),
|
|
168
|
+
"data-slot": "promo-dialog.layout-wrapper",
|
|
169
|
+
children: [
|
|
170
|
+
u,
|
|
171
|
+
/* @__PURE__ */ c(
|
|
172
|
+
"div",
|
|
173
|
+
{
|
|
174
|
+
ref: g,
|
|
175
|
+
className: a.contentColumn(),
|
|
176
|
+
"data-slot": "promo-dialog.content-column",
|
|
177
|
+
"data-has-scroll": i,
|
|
178
|
+
role: i ? "region" : void 0,
|
|
179
|
+
"aria-label": i ? f.formatMessage({
|
|
180
|
+
id: "unity:component:common:scrollable-content:label"
|
|
181
|
+
}) : void 0,
|
|
182
|
+
tabIndex: i ? 0 : void 0,
|
|
183
|
+
children: [
|
|
184
|
+
/* @__PURE__ */ t(
|
|
185
|
+
"div",
|
|
186
|
+
{
|
|
187
|
+
id: d,
|
|
188
|
+
className: a.scrollableContent(),
|
|
189
|
+
"data-slot": "promo-dialog.scrollable-content",
|
|
190
|
+
children: w
|
|
191
|
+
}
|
|
192
|
+
),
|
|
193
|
+
/* @__PURE__ */ t(
|
|
194
|
+
"div",
|
|
195
|
+
{
|
|
196
|
+
className: a.actionsWrapper(),
|
|
197
|
+
"data-slot": "promo-dialog.actions-wrapper",
|
|
198
|
+
children: h
|
|
199
|
+
}
|
|
200
|
+
)
|
|
201
|
+
]
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
)
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
) })
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
q.displayName = "PromoDialog";
|
|
216
|
+
export {
|
|
217
|
+
q as PromoDialog,
|
|
218
|
+
k as promoDialog
|
|
219
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* PromoDialogActions contains the action buttons for a promo dialog.
|
|
4
|
+
* It provides consistent layout and spacing for dialog action buttons.
|
|
5
|
+
*
|
|
6
|
+
* This component should be used within a `PromoDialog` to display action buttons like
|
|
7
|
+
* confirm, cancel, or close actions. The buttons are automatically arranged in a row
|
|
8
|
+
* on desktop and stacked on mobile.
|
|
9
|
+
* @param props - The props for the PromoDialogActions component
|
|
10
|
+
* @param props.children - The action buttons (typically DialogButton components)
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { PromoDialog, PromoDialogHero, DialogTitle, PromoDialogContent, PromoDialogActions, DialogButton } from '@payfit/unity-components'
|
|
14
|
+
* import { Illustration } from '@payfit/unity-illustrations'
|
|
15
|
+
* import ContractSignature from '@payfit/unity-illustrations/assets/ContractSignature'
|
|
16
|
+
*
|
|
17
|
+
* function PromoExample() {
|
|
18
|
+
* return (
|
|
19
|
+
* <PromoDialog>
|
|
20
|
+
* <PromoDialogHero>
|
|
21
|
+
* <Illustration src={ContractSignature} variant="picture" />
|
|
22
|
+
* </PromoDialogHero>
|
|
23
|
+
* <DialogTitle>Welcome</DialogTitle>
|
|
24
|
+
* <PromoDialogContent>
|
|
25
|
+
* <p>Content here...</p>
|
|
26
|
+
* </PromoDialogContent>
|
|
27
|
+
* <PromoDialogActions>
|
|
28
|
+
* <DialogButton variant="close">Skip</DialogButton>
|
|
29
|
+
* <DialogButton variant="confirm">Continue</DialogButton>
|
|
30
|
+
* </PromoDialogActions>
|
|
31
|
+
* </PromoDialog>
|
|
32
|
+
* )
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
* @remarks
|
|
36
|
+
* - Buttons are stacked vertically on mobile (reverse order) and horizontal on desktop
|
|
37
|
+
* - Use DialogButton components as children for consistent styling
|
|
38
|
+
* - **Accessibility**: Actions are grouped with role="group" for better screen reader navigation
|
|
39
|
+
*/
|
|
40
|
+
declare const PromoDialogActions: {
|
|
41
|
+
({ children }: PropsWithChildren<object>): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
displayName: string;
|
|
43
|
+
};
|
|
44
|
+
export { PromoDialogActions };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { uyTv as i } from "@payfit/unity-themes";
|
|
3
|
+
import { useIntl as r } from "react-intl";
|
|
4
|
+
const s = i({
|
|
5
|
+
base: [
|
|
6
|
+
"uy:md:pt-250 uy:md:pb-100 uy:md:px-200 uy:flex uy:flex-col-reverse uy:md:flex-row uy:md:justify-end uy:md:items-start",
|
|
7
|
+
"uy:gap-150 uy:md:gap-100",
|
|
8
|
+
"uy:self-stretch"
|
|
9
|
+
]
|
|
10
|
+
}), e = ({ children: o }) => {
|
|
11
|
+
const t = r();
|
|
12
|
+
return /* @__PURE__ */ a(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
role: "group",
|
|
16
|
+
"aria-label": t.formatMessage({
|
|
17
|
+
id: "unity:component:dialog:actions:label"
|
|
18
|
+
}),
|
|
19
|
+
className: s(),
|
|
20
|
+
"data-unity-slot": "promo-dialog.actions",
|
|
21
|
+
"data-dd-privacy": "allow",
|
|
22
|
+
children: o
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
e.displayName = "PromoDialogActions";
|
|
27
|
+
export {
|
|
28
|
+
e as PromoDialogActions
|
|
29
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* PromoDialogContent contains the main content of a promo dialog.
|
|
4
|
+
* It provides consistent spacing and typography for dialog content.
|
|
5
|
+
*
|
|
6
|
+
* This component should be used within a `PromoDialog` to display the main message,
|
|
7
|
+
* description, or any other content that needs to be presented to the user.
|
|
8
|
+
* @param props - The props for the PromoDialogContent component
|
|
9
|
+
* @param props.children - The content to be displayed in the dialog body
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { PromoDialog, PromoDialogHero, DialogTitle, PromoDialogContent, PromoDialogActions, DialogButton } from '@payfit/unity-components'
|
|
13
|
+
* import { Illustration } from '@payfit/unity-illustrations'
|
|
14
|
+
* import ContractSignature from '@payfit/unity-illustrations/assets/ContractSignature'
|
|
15
|
+
*
|
|
16
|
+
* function PromoExample() {
|
|
17
|
+
* return (
|
|
18
|
+
* <PromoDialog>
|
|
19
|
+
* <PromoDialogHero>
|
|
20
|
+
* <Illustration src={ContractSignature} variant="picture" />
|
|
21
|
+
* </PromoDialogHero>
|
|
22
|
+
* <DialogTitle>Welcome</DialogTitle>
|
|
23
|
+
* <PromoDialogContent>
|
|
24
|
+
* <p>This is the main content of the promo dialog.</p>
|
|
25
|
+
* </PromoDialogContent>
|
|
26
|
+
* <PromoDialogActions>
|
|
27
|
+
* <DialogButton variant="close">Skip</DialogButton>
|
|
28
|
+
* <DialogButton variant="confirm">Continue</DialogButton>
|
|
29
|
+
* </PromoDialogActions>
|
|
30
|
+
* </PromoDialog>
|
|
31
|
+
* )
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
* @remarks
|
|
35
|
+
* - Use this component for the main body text and content
|
|
36
|
+
* - Content will automatically scroll when it overflows
|
|
37
|
+
* - Maintains consistent spacing with other promo dialog parts
|
|
38
|
+
*/
|
|
39
|
+
declare const PromoDialogContent: {
|
|
40
|
+
({ children }: PropsWithChildren<object>): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
displayName: string;
|
|
42
|
+
};
|
|
43
|
+
export { PromoDialogContent };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { uyTv as n } from "@payfit/unity-themes";
|
|
3
|
+
const a = n({
|
|
4
|
+
base: [
|
|
5
|
+
"uy:flex uy:flex-col uy:gap-200",
|
|
6
|
+
"uy:text-content-neutral",
|
|
7
|
+
"uy:typography-body"
|
|
8
|
+
]
|
|
9
|
+
}), e = ({ children: o }) => /* @__PURE__ */ t(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: a(),
|
|
13
|
+
"data-unity-slot": "promo-dialog.content",
|
|
14
|
+
children: o
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
e.displayName = "PromoDialogContent";
|
|
18
|
+
export {
|
|
19
|
+
e as PromoDialogContent
|
|
20
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
export interface PromoDialogHeroProps extends PropsWithChildren {
|
|
3
|
+
/**
|
|
4
|
+
* Additional class names for the hero
|
|
5
|
+
*/
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* PromoDialogHero displays a promotional illustration or hero image in promo dialogs.
|
|
10
|
+
* It's designed to complement important announcements, feature introductions, or promotional content.
|
|
11
|
+
*
|
|
12
|
+
* This component is required when using `PromoDialog` and automatically triggers
|
|
13
|
+
* a special layout with the hero section on the left (desktop) or top (mobile), and content on the right/bottom.
|
|
14
|
+
* @param props - The props for the PromoDialogHero component
|
|
15
|
+
* @param props.children - The hero content, typically an Illustration component
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { PromoDialog, PromoDialogHero, DialogTitle, DialogContent } from '@payfit/unity-components'
|
|
19
|
+
* import { Illustration } from '@payfit/unity-illustrations'
|
|
20
|
+
* import ContractSignature from '@payfit/unity-illustrations/assets/ContractSignature'
|
|
21
|
+
*
|
|
22
|
+
* function PromoExample() {
|
|
23
|
+
* return (
|
|
24
|
+
* <PromoDialog>
|
|
25
|
+
* <PromoDialogHero>
|
|
26
|
+
* <Illustration src={ContractSignature} variant="picture" />
|
|
27
|
+
* </PromoDialogHero>
|
|
28
|
+
* <DialogTitle>Welcome to our new feature</DialogTitle>
|
|
29
|
+
* <DialogContent>
|
|
30
|
+
* Discover how this feature can help you...
|
|
31
|
+
* </DialogContent>
|
|
32
|
+
* </PromoDialog>
|
|
33
|
+
* )
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
* @remarks
|
|
37
|
+
* - This component is specifically designed for promo dialogs and triggers a special horizontal split layout on desktop
|
|
38
|
+
* - On mobile devices, the layout automatically adjusts to a vertical stack
|
|
39
|
+
* - The hero section has a light blue background by default
|
|
40
|
+
* - Use with illustrations from `@payfit/unity-illustrations` for consistent branding
|
|
41
|
+
* - **Accessibility**: Hero content is marked as decorative (aria-hidden) as it's purely visual
|
|
42
|
+
*/
|
|
43
|
+
declare const PromoDialogHero: {
|
|
44
|
+
({ children, className }: PromoDialogHeroProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
displayName: string;
|
|
46
|
+
};
|
|
47
|
+
export { PromoDialogHero };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { uyTv as e } from "@payfit/unity-themes";
|
|
3
|
+
const t = e({
|
|
4
|
+
base: [
|
|
5
|
+
"uy:rounded-150 uy:bg-surface-neutral-lowest",
|
|
6
|
+
"uy:flex uy:items-center uy:justify-center",
|
|
7
|
+
// Mobile: auto height for vertical stack
|
|
8
|
+
"uy:h-auto",
|
|
9
|
+
// Desktop: takes 1/3 of width, stretches to row height
|
|
10
|
+
"uy:md:basis-[40%] uy:lg:basis-[37.2%] uy:md:shrink-0"
|
|
11
|
+
]
|
|
12
|
+
}), u = ({ children: o, className: r }) => /* @__PURE__ */ a(
|
|
13
|
+
"div",
|
|
14
|
+
{
|
|
15
|
+
className: t({ className: r }),
|
|
16
|
+
"data-unity-slot": "promo-dialog.hero",
|
|
17
|
+
"data-dd-privacy": "allow",
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
children: o
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
u.displayName = "PromoDialogHero";
|
|
23
|
+
export {
|
|
24
|
+
u as PromoDialogHero
|
|
25
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { TextProps } from '../../text/Text.js';
|
|
2
|
+
export type PromoDialogSubtitleProps = Omit<TextProps, 'variant' | 'color'>;
|
|
3
|
+
/**
|
|
4
|
+
* PromoDialogSubtitle displays a subtitle text above the title in a promo dialog.
|
|
5
|
+
* It provides consistent styling with body variant and neutral lowest color.
|
|
6
|
+
*
|
|
7
|
+
* This component should be used within a `PromoDialog` to display additional context
|
|
8
|
+
* or information above the main title, such as step indicators or feature labels.
|
|
9
|
+
* @param props - The props for the PromoDialogSubtitle component
|
|
10
|
+
* @param props.children - The subtitle text to be displayed
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import {
|
|
14
|
+
* PromoDialog,
|
|
15
|
+
* PromoDialogHero,
|
|
16
|
+
* PromoDialogSubtitle,
|
|
17
|
+
* PromoDialogTitle,
|
|
18
|
+
* PromoDialogContent,
|
|
19
|
+
* PromoDialogActions,
|
|
20
|
+
* DialogButton,
|
|
21
|
+
* } from '@payfit/unity-components'
|
|
22
|
+
* import { Illustration } from '@payfit/unity-illustrations'
|
|
23
|
+
* import ContractSignature from '@payfit/unity-illustrations/assets/ContractSignature'
|
|
24
|
+
*
|
|
25
|
+
* function PromoExample() {
|
|
26
|
+
* return (
|
|
27
|
+
* <PromoDialog>
|
|
28
|
+
* <PromoDialogHero>
|
|
29
|
+
* <Illustration src={ContractSignature} variant="picture" />
|
|
30
|
+
* </PromoDialogHero>
|
|
31
|
+
* <PromoDialogSubtitle>Step 1/3</PromoDialogSubtitle>
|
|
32
|
+
* <PromoDialogTitle>Welcome</PromoDialogTitle>
|
|
33
|
+
* <PromoDialogContent>
|
|
34
|
+
* <p>This is the main content of the promo dialog.</p>
|
|
35
|
+
* </PromoDialogContent>
|
|
36
|
+
* <PromoDialogActions>
|
|
37
|
+
* <DialogButton variant="close">Skip</DialogButton>
|
|
38
|
+
* <DialogButton variant="confirm">Continue</DialogButton>
|
|
39
|
+
* </PromoDialogActions>
|
|
40
|
+
* </PromoDialog>
|
|
41
|
+
* )
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
* @remarks
|
|
45
|
+
* - Use this component for displaying contextual information above the title
|
|
46
|
+
* - Styled with body variant and content.neutral.lowest color
|
|
47
|
+
* - Automatically positioned above PromoDialogTitle when used together
|
|
48
|
+
*/
|
|
49
|
+
declare const PromoDialogSubtitle: {
|
|
50
|
+
({ children, ...rest }: PromoDialogSubtitleProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
displayName: string;
|
|
52
|
+
};
|
|
53
|
+
export { PromoDialogSubtitle };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { Text as l } from "../../text/Text.js";
|
|
3
|
+
const r = ({
|
|
4
|
+
children: o,
|
|
5
|
+
...t
|
|
6
|
+
}) => /* @__PURE__ */ a(
|
|
7
|
+
l,
|
|
8
|
+
{
|
|
9
|
+
...t,
|
|
10
|
+
variant: "body",
|
|
11
|
+
asElement: "h4",
|
|
12
|
+
color: "content.neutral.lowest",
|
|
13
|
+
"data-unity-slot": "promo-dialog.subtitle",
|
|
14
|
+
className: "uy:typography-body-small uy:md:typography-body uy:mb-100",
|
|
15
|
+
children: o
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
r.displayName = "PromoDialogSubtitle";
|
|
19
|
+
export {
|
|
20
|
+
r as PromoDialogSubtitle
|
|
21
|
+
};
|