@preply/ds-web-lib 11.0.0 → 11.1.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/dist/Accordion-B0hR-tcI.js +96 -0
- package/dist/AlertBannerProvider-Cf7w9AOq.js +76 -0
- package/dist/AlertDialog-BG-diKBi.js +475 -0
- package/dist/Avatar-B-JdqVyg.js +66 -0
- package/dist/AvatarWithStatus-CD9jEqEB.js +36 -0
- package/dist/Badge-Dd-CLBoW.js +50 -0
- package/dist/Box-BJBE9KNm.js +91 -0
- package/dist/BubbleCounter.module-BU2S0euA.js +16 -0
- package/dist/Button-C35BZJZT.js +91 -0
- package/dist/ButtonBase-8eUyTWxX.js +215 -0
- package/dist/Checkbox-CtolNbxI.js +108 -0
- package/dist/Chips-BRGw7Uup.js +99 -0
- package/dist/ChipsPrimitive-Bezq7ptE.js +1179 -0
- package/dist/CountryFlag-DVDKHmQH.js +43 -0
- package/dist/Dialog.module-Db2BJAn4.js +21 -0
- package/dist/DialogCloseButton-DjDd9Mid.js +98 -0
- package/dist/DialogDescription-8zw9t6pm.js +44 -0
- package/dist/DialogRoot-B67oJduC.js +335 -0
- package/dist/DialogRootContext-Bz8RW-Mq.js +12 -0
- package/dist/DialogTitle-C2Nn2ys-.js +43 -0
- package/dist/Divider-DvwDWB9_.js +17 -0
- package/dist/DropdownMenu.primitives-BrsTBvMk.js +4007 -0
- package/dist/FieldButton-B2slox8P.js +32 -0
- package/dist/FormControl-qnbQL1iF.js +128 -0
- package/dist/Heading-DA9gHfsx.js +71 -0
- package/dist/Icon-CixAeOSd.js +48 -0
- package/dist/IconButton-BPKpgfep.js +31 -0
- package/dist/InputContainer-CzzuOe_p.js +38 -0
- package/dist/LayoutFlex-e9auDvWD.js +86 -0
- package/dist/LayoutFlexItem-D9ziMmHe.js +48 -0
- package/dist/LayoutGridItem-Q8Lnvrri.js +34 -0
- package/dist/Link-CdoJVeER.js +66 -0
- package/dist/Loader-BMOxdJce.js +26 -0
- package/dist/OnboardingTooltip-B47_Yrsj.js +165 -0
- package/dist/OnboardingTour-DUUoI5WE.js +131 -0
- package/dist/PasswordField-Bx5YG62t.js +93 -0
- package/dist/PreplyLogo-abgOre30.js +112 -0
- package/dist/ProgressBar-CEU4GyHn.js +31 -0
- package/dist/ProgressSteps-BSqopxqv.js +45 -0
- package/dist/Select-Bo7PX_8V.js +124 -0
- package/dist/Slider-Crg4DEn_.js +64 -0
- package/dist/Spinner-Ck8KQA22.js +86 -0
- package/dist/Stars-D5QspUBE.js +72 -0
- package/dist/Steps-DbN5vFrP.js +173 -0
- package/dist/Switch-Ck_xB0ID.js +49 -0
- package/dist/Text-CaOF75Z-.js +121 -0
- package/dist/TextHighlighted-Dwq9Clgn.js +34 -0
- package/dist/TextInline-BcA4H2Tk.js +34 -0
- package/dist/Toast-wJAjSLfo.js +1019 -0
- package/dist/TokyoUIChevronDown-DGcVqR1z.js +14 -0
- package/dist/Tooltip-grvKQxTN.js +84 -0
- package/dist/VisuallyHidden-CtcHcZCK.js +29 -0
- package/dist/align-self-VrZUceie.js +42 -0
- package/dist/assets/Accordion.css +2 -2
- package/dist/assets/AlertBannerProvider.css +2 -2
- package/dist/assets/AlertDialog.css +2 -2
- package/dist/assets/Avatar.css +3 -3
- package/dist/assets/AvatarWithStatus.css +2 -2
- package/dist/assets/Badge.css +1 -1
- package/dist/assets/Box.css +3 -3
- package/dist/assets/BubbleCounter.css +1 -1
- package/dist/assets/Button.css +4 -4
- package/dist/assets/ButtonBase.css +40 -46
- package/dist/assets/Checkbox.css +1 -1
- package/dist/assets/Chips.css +2 -2
- package/dist/assets/ChipsPrimitive.css +2 -2
- package/dist/assets/CountryFlag.css +1 -1
- package/dist/assets/Dialog.css +13 -4
- package/dist/assets/Divider.css +1 -1
- package/dist/assets/DropdownMenu.css +2 -2
- package/dist/assets/FieldButton.css +3 -3
- package/dist/assets/FormControl.css +1 -1
- package/dist/assets/Heading.css +3 -3
- package/dist/assets/Icon.css +3 -3
- package/dist/assets/InputContainer.css +2 -2
- package/dist/assets/LayoutFlex.css +1 -1
- package/dist/assets/LayoutFlexItem.css +1 -1
- package/dist/assets/Link.css +3 -3
- package/dist/assets/Loader.css +1 -1
- package/dist/assets/OnboardingTooltip.css +1 -1
- package/dist/assets/OnboardingTour.css +1 -1
- package/dist/assets/PreplyLogo.css +1 -1
- package/dist/assets/ProgressBar.css +1 -1
- package/dist/assets/ProgressSteps.css +1 -1
- package/dist/assets/Select.css +2 -2
- package/dist/assets/Slider.css +1 -1
- package/dist/assets/Spinner.css +3 -3
- package/dist/assets/Stars.css +3 -3
- package/dist/assets/Steps.css +2 -2
- package/dist/assets/Switch.css +1 -1
- package/dist/assets/Text.css +3 -3
- package/dist/assets/TextHighlighted.css +3 -3
- package/dist/assets/TextInline.css +3 -3
- package/dist/assets/Toast.css +2 -2
- package/dist/assets/Tooltip.css +1 -1
- package/dist/assets/align-self.css +1 -1
- package/dist/assets/{IconTile.css → components.css} +1 -1
- package/dist/assets/exp-color.css +2 -2
- package/dist/assets/index.css +1 -1
- package/dist/assets/layout-gap.css +3 -3
- package/dist/assets/layout-grid.css +3 -3
- package/dist/assets/layout-hide.css +1 -1
- package/dist/assets/layout-padding.css +3 -3
- package/dist/assets/layout-relative.css +1 -1
- package/dist/assets/text-accent.css +2 -2
- package/dist/assets/text-centered.css +1 -1
- package/dist/assets/text-weight.css +2 -2
- package/dist/chunk-BVTlhY3a.js +24 -0
- package/dist/components/Accordion/Accordion.js +4 -60
- package/dist/components/Accordion/hooks/useOnOpenChange.js +19 -28
- package/dist/components/AlertBanner/AlertBanner.js +11 -26
- package/dist/components/AlertBanner/AlertBannerProvider.js +3 -8
- package/dist/components/AlertBanner/primitives/AlertBannerAction.js +11 -69
- package/dist/components/AlertBanner/primitives/AlertBannerIcon.js +77 -39
- package/dist/components/AlertBanner/primitives/AlertBannerRoot.js +26 -22
- package/dist/components/AlertBanner/primitives/AlertBannerText.js +11 -70
- package/dist/components/AlertDialog/AlertDialog.js +5 -430
- package/dist/components/Avatar/Avatar.js +3 -71
- package/dist/components/AvatarWithStatus/AvatarWithStatus.js +3 -43
- package/dist/components/Badge/Badge.js +4 -62
- package/dist/components/Box/Box.js +3 -95
- package/dist/components/BubbleCounter/BubbleCounter.js +23 -28
- package/dist/components/Button/Button.js +4 -80
- package/dist/components/CalloutBanner/CalloutBanner.js +61 -12
- package/dist/components/CalloutBanner/primitives/CalloutBannerDismissButton.js +50 -22
- package/dist/components/CalloutBanner/primitives/CalloutBannerIcon.js +86 -45
- package/dist/components/CalloutBanner/primitives/CalloutBannerRoot.js +50 -24
- package/dist/components/CalloutBanner/primitives/CalloutBannerText.js +41 -11
- package/dist/components/Checkbox/Checkbox.js +4 -78
- package/dist/components/Checkbox/hooks/useIndeterminate.js +24 -30
- package/dist/components/Chips/Chips.types.js +0 -1
- package/dist/components/Chips/DismissibleChips.js +117 -86
- package/dist/components/Chips/MultiSelectChips.js +98 -64
- package/dist/components/Chips/SingleSelectChips.js +94 -57
- package/dist/components/Chips/private/ChipsPrimitive.js +4 -17
- package/dist/components/CountryFlag/CountryFlag.js +3 -44
- package/dist/components/Dialog/Dialog.js +56 -31
- package/dist/components/Dialog/DialogSteps.js +40 -29
- package/dist/components/Dialog/primitives/DialogActions.js +26 -19
- package/dist/components/Dialog/primitives/DialogButtonStack.d.ts.map +1 -1
- package/dist/components/Dialog/primitives/DialogButtonStack.js +22 -15
- package/dist/components/Dialog/primitives/DialogCloseButton.d.ts +1 -1
- package/dist/components/Dialog/primitives/DialogCloseButton.d.ts.map +1 -1
- package/dist/components/Dialog/primitives/DialogCloseButton.js +4 -67
- package/dist/components/Dialog/primitives/DialogDescription.js +3 -43
- package/dist/components/Dialog/primitives/DialogFooter.js +37 -34
- package/dist/components/Dialog/primitives/DialogRoot.js +4 -315
- package/dist/components/Dialog/primitives/DialogTitle.js +3 -42
- package/dist/components/Divider/Divider.js +3 -14
- package/dist/components/DropdownMenu/DropdownMenu.js +253 -188
- package/dist/components/DropdownMenu/primitives/DropdownMenu.primitives.js +5 -34
- package/dist/components/DropdownMenu/primitives/DropdownMenuSelectItem.primitives.js +121 -71
- package/dist/components/FieldButton/FieldButton.js +3 -37
- package/dist/components/FormControl/FormControl.js +3 -105
- package/dist/components/Heading/Heading.js +3 -78
- package/dist/components/Icon/Icon.js +4 -49
- package/dist/components/IconButton/IconButton.d.ts +5 -1
- package/dist/components/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.js +4 -28
- package/dist/components/IconTile/IconTile.js +11 -69
- package/dist/components/IntlFormatted/IntlFormattedAggregatedDateTime.js +16 -32
- package/dist/components/IntlFormatted/IntlFormattedCurrency.js +20 -42
- package/dist/components/IntlFormatted/IntlFormattedDate.js +73 -195
- package/dist/components/IntlFormatted/IntlFormattedTime.js +14 -24
- package/dist/components/IntlFormatted/Wrapper.js +14 -8
- package/dist/components/LayoutFlex/LayoutFlex.js +3 -100
- package/dist/components/LayoutFlex/style/getStyleAttrs.js +71 -143
- package/dist/components/LayoutFlex/tests/AlignItems.js +67 -97
- package/dist/components/LayoutFlex/tests/ColumnReverse.js +63 -100
- package/dist/components/LayoutFlex/tests/DataOverride.js +1498 -1093
- package/dist/components/LayoutFlex/tests/Default.js +19 -20
- package/dist/components/LayoutFlex/tests/Direction.js +65 -88
- package/dist/components/LayoutFlex/tests/Gap.js +115 -197
- package/dist/components/LayoutFlex/tests/HideInline.js +95 -136
- package/dist/components/LayoutFlex/tests/JustifyContent.js +75 -108
- package/dist/components/LayoutFlex/tests/Nowrap.js +35 -42
- package/dist/components/LayoutFlex/tests/Padding.js +207 -263
- package/dist/components/LayoutFlex/tests/Relative.js +49 -64
- package/dist/components/LayoutFlexItem/LayoutFlexItem.js +3 -54
- package/dist/components/LayoutGrid/LayoutGrid.js +26 -34
- package/dist/components/LayoutGridItem/LayoutGridItem.js +3 -41
- package/dist/components/Link/Link.js +3 -72
- package/dist/components/Loader/Loader.js +3 -32
- package/dist/components/NumberField/NumberField.js +33 -35
- package/dist/components/ObserveIntersection/ObserveIntersection.js +41 -42
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -115
- package/dist/components/OnboardingTour/OnboardingTour.js +4 -114
- package/dist/components/PasswordField/PasswordField.js +3 -78
- package/dist/components/PreplyLogo/PreplyLogo.js +3 -81
- package/dist/components/ProgressBar/ProgressBar.js +3 -27
- package/dist/components/ProgressSteps/ProgressSteps.js +3 -48
- package/dist/components/Rating/Rating.js +29 -20
- package/dist/components/Rating/RatingInput.js +57 -59
- package/dist/components/Rating/Stars.js +4 -8
- package/dist/components/Rating/hooks/useHasError.js +11 -15
- package/dist/components/Rating/hooks/useHoverPercentage.js +37 -45
- package/dist/components/Rating/hooks/useInputState.js +18 -24
- package/dist/components/Rating/hooks/useLocalizations.js +12 -24
- package/dist/components/Rating/utils/roundToHalfDecimal.js +4 -4
- package/dist/components/SelectField/Select.js +5 -112
- package/dist/components/SelectField/SelectField.js +29 -24
- package/dist/components/SelectField/hooks/useBreakpointMatch.js +18 -19
- package/dist/components/ShowOnIntersection/ShowOnIntersection.js +32 -21
- package/dist/components/Slider/RangeSlider.js +62 -52
- package/dist/components/Slider/Slider.js +3 -10
- package/dist/components/Steps/Steps.js +4 -210
- package/dist/components/Switch/Switch.js +3 -51
- package/dist/components/Text/Text.js +3 -128
- package/dist/components/TextField/TextField.js +27 -29
- package/dist/components/TextHighlighted/TextHighlighted.js +3 -41
- package/dist/components/TextInline/TextInline.js +3 -40
- package/dist/components/TextareaField/TextareaField.js +26 -28
- package/dist/components/Toast/Toast.js +4 -1168
- package/dist/components/Tooltip/Tooltip.js +3 -66
- package/dist/components/deprecated/Chips/Chips.js +4 -76
- package/dist/components/deprecated/NativeSelectField/NativeSelect.js +40 -32
- package/dist/components/deprecated/NativeSelectField/NativeSelectField.js +34 -33
- package/dist/components/deprecated/index.js +5 -6
- package/dist/components/index.js +50 -150
- package/dist/components/private/ButtonBase/ButtonBase.d.ts +7 -11
- package/dist/components/private/ButtonBase/ButtonBase.d.ts.map +1 -1
- package/dist/components/private/ButtonBase/ButtonBase.js +3 -247
- package/dist/components/private/Input/Input.js +27 -19
- package/dist/components/private/Input/InputContainer.js +3 -5
- package/dist/components/private/Input/Textarea.js +24 -20
- package/dist/components/private/Input/index.js +2 -4
- package/dist/components/private/Spinner/Spinner.js +3 -52
- package/dist/components/private/VisuallyHidden/VisuallyHidden.js +3 -15
- package/dist/components-BIYP8wHJ.js +200 -0
- package/dist/exp-color-C5mKAN91.js +74 -0
- package/dist/floating-ui.utils.dom-CoeTbDZx.js +215 -0
- package/dist/index.js +50 -150
- package/dist/index.module-1c7ENvxc.js +7 -0
- package/dist/jsx-runtime-i4KUlhDu.js +743 -0
- package/dist/layout-gap.module-DLD8bcR4.js +95 -0
- package/dist/layout-grid.module-CZfhrKrB.js +101 -0
- package/dist/layout-hide.module-B1P0N4i3.js +53 -0
- package/dist/layout-padding-ugY-yd2q.js +389 -0
- package/dist/layout-relative.module-B5xrFD9j.js +6 -0
- package/dist/render-icon-Ch3b2dE0.js +290 -0
- package/dist/shared-styles/align-self/align-self.js +2 -36
- package/dist/shared-styles/exp-color/exp-color.js +2 -68
- package/dist/shared-styles/layout-gap/layout-gap.js +13 -7
- package/dist/shared-styles/layout-grid/layout-grid.js +28 -28
- package/dist/shared-styles/layout-grid-responsive-columns/layout-grid-responsive-columns.js +29 -43
- package/dist/shared-styles/layout-hide/layout-hide.js +8 -8
- package/dist/shared-styles/layout-padding/layout-padding.js +2 -5
- package/dist/shared-styles/layout-relative/layout-relative.js +14 -8
- package/dist/shared-styles/text-accent/text-accent.js +2 -25
- package/dist/shared-styles/text-centered/text-centered.js +2 -24
- package/dist/shared-styles/text-weight/text-weight.js +2 -15
- package/dist/store-sN_eYeZT.js +1064 -0
- package/dist/storybook-utils/consts.js +6 -8
- package/dist/storybook-utils/index.js +1 -5
- package/dist/text-accent-CfUFx-1K.js +30 -0
- package/dist/text-centered-Dwp2_-Yp.js +30 -0
- package/dist/text-weight-CwoqmM4o.js +21 -0
- package/dist/useBaseUiId-CWAD_PSs.js +13 -0
- package/dist/useBreakpointMatch-D9a3CTNK.js +338 -0
- package/dist/useButton-DHTh3Hm7.js +148 -0
- package/dist/useDialogClose-BzFIyWco.js +22 -0
- package/dist/useId-CJsH-2wV.js +34 -0
- package/dist/useOpenInteractionType-D8vA_ZKI.js +4104 -0
- package/dist/useRenderElement-ZBds6eRN.js +341 -0
- package/dist/utils/Orientation/OrientationProvider.js +54 -23
- package/dist/utils/Orientation/index.js +2 -4
- package/dist/utils/RovingTabIndex/RovingTabIndexProvider.js +70 -44
- package/dist/utils/RovingTabIndex/index.js +2 -4
- package/dist/utils/createRequiredContext.js +23 -13
- package/dist/utils/filterAttributesPassedByRadixUIAtRuntime.js +28 -25
- package/dist/utils/render-icon.js +3 -320
- package/dist/utils/shared-strings.js +24 -32
- package/dist/utils/useBreakpointMatch.d.ts.map +1 -1
- package/dist/utils/useBreakpointMatch.js +2 -183
- package/dist/utils/useControllableState/useControllableState.js +31 -25
- package/dist/utils/useMergeRefs.js +29 -14
- package/dist/utils/useStableCallback/useStableCallback.js +28 -13
- package/package.json +17 -22
- package/dist/AlertBannerProvider-DTx2Xp3V.js +0 -50
- package/dist/BubbleCounter.module-QMwXWFIS.js +0 -16
- package/dist/ChipsPrimitive-DzsaOWgY.js +0 -1244
- package/dist/Dialog.module-Ba1X7b3N.js +0 -29
- package/dist/DialogRootContext-BCXmmJAw.js +0 -15
- package/dist/DropdownMenu.primitives-B3WK71bR.js +0 -5871
- package/dist/IconTile-D1G7MljH.js +0 -172
- package/dist/InputContainer-oHJlLWIi.js +0 -30
- package/dist/Slider-DB4Maswa.js +0 -55
- package/dist/Stars-C_mHop2H.js +0 -67
- package/dist/TokyoUIChevronDown-D_tD1yU8.js +0 -11
- package/dist/floating-ui.utils.dom-3OgjGonN.js +0 -234
- package/dist/index.module-Q9TzIR6B.js +0 -11
- package/dist/layout-gap.module-MKn_un_k.js +0 -97
- package/dist/layout-grid.module-P4B4WVUy.js +0 -103
- package/dist/layout-hide.module-Bpl3Pl-a.js +0 -55
- package/dist/layout-padding-D5I6rRlL.js +0 -373
- package/dist/layout-relative.module-1z75aSwo.js +0 -8
- package/dist/store-BUKWfVf3.js +0 -1155
- package/dist/useBaseUiId-DavsGYu9.js +0 -8
- package/dist/useButton-CFPpP0o5.js +0 -193
- package/dist/useDialogClose-C9x1leGd.js +0 -34
- package/dist/useId-BhIOp2JG.js +0 -28
- package/dist/useOpenInteractionType-Cj41-8Yk.js +0 -2880
- package/dist/useRenderElement-DtYPTE_y.js +0 -350
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as Icon } from "./Icon-CixAeOSd.js";
|
|
3
|
+
import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
|
|
4
|
+
import { t as Text } from "./Text-CaOF75Z-.js";
|
|
5
|
+
import { useOnOpenChange } from "./components/Accordion/hooks/useOnOpenChange.js";
|
|
6
|
+
import { forwardRef } from "react";
|
|
7
|
+
import { getDatasetProps } from "@preply/ds-web-core";
|
|
8
|
+
import TokyoUIChevronDown from "@preply/ds-media-icons/dist/24/TokyoUIChevronDown.svg";
|
|
9
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
10
|
+
import './assets/Accordion.css';var index_module_default = {
|
|
11
|
+
accordion: "accordion__GSBx4",
|
|
12
|
+
"--dsInternalSimulation-focus": "_--dsInternalSimulation-focus__XvNco",
|
|
13
|
+
"--dsInternalSimulation-noAnimation": "_--dsInternalSimulation-noAnimation__eyg-P"
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/components/Accordion/Accordion.tsx
|
|
17
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
18
|
+
/**
|
|
19
|
+
* An Accordion container.
|
|
20
|
+
*
|
|
21
|
+
* Add `AccordionItem` children to render a list of disclosable contents.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <Accordion>
|
|
25
|
+
* <AccordionItem>
|
|
26
|
+
* <AccordionHeader>
|
|
27
|
+
* Is Preply the best platform for learning a language?
|
|
28
|
+
* </AccordionHeader>
|
|
29
|
+
* <AccordionContent>Of course it is!</AccordionContent>
|
|
30
|
+
* </AccordionItem>
|
|
31
|
+
* <AccordionItem>
|
|
32
|
+
* <AccordionHeader>Why?</AccordionHeader>
|
|
33
|
+
* <AccordionContent>
|
|
34
|
+
* If you are wondering, it means you have not tried it out yet!
|
|
35
|
+
* </AccordionContent>
|
|
36
|
+
* </AccordionItem>
|
|
37
|
+
* </Accordion>
|
|
38
|
+
*
|
|
39
|
+
* @see AccordionItem
|
|
40
|
+
* @see AccordionHeader
|
|
41
|
+
* @see AccordionContent
|
|
42
|
+
*/
|
|
43
|
+
var Accordion = ({ dataset, children, "aria-label": ariaLabel }) => {
|
|
44
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
45
|
+
className: index_module_default.accordion,
|
|
46
|
+
"aria-label": ariaLabel,
|
|
47
|
+
...getDatasetProps(dataset),
|
|
48
|
+
"data-preply-ds-component": webComponentNames.Accordion,
|
|
49
|
+
children
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* A single `Accordion` item, the wrapper of AccordionHeader and AccordionContent.
|
|
54
|
+
*/
|
|
55
|
+
var AccordionItem = forwardRef(function AccordionItem({ open, name, dataset, children, onOpenChange, dsInternalSimulation }, ref) {
|
|
56
|
+
const { mergedRef } = useOnOpenChange({
|
|
57
|
+
ref,
|
|
58
|
+
onOpenChange
|
|
59
|
+
});
|
|
60
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("details", {
|
|
61
|
+
ref: mergedRef,
|
|
62
|
+
name,
|
|
63
|
+
open,
|
|
64
|
+
...getDatasetProps(dataset),
|
|
65
|
+
className: index_module_default[`--dsInternalSimulation-${dsInternalSimulation}`],
|
|
66
|
+
children
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* The header of a single `Accordion` item, to be used in conjunction with AccordionItem and wrapped inside AccordionContent.
|
|
71
|
+
*/
|
|
72
|
+
var AccordionHeader = forwardRef(function AccordionItem({ dataset, children, onClick }, ref) {
|
|
73
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("summary", {
|
|
74
|
+
ref,
|
|
75
|
+
...getDatasetProps(dataset),
|
|
76
|
+
onClick,
|
|
77
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
|
|
78
|
+
variant: "default-semibold",
|
|
79
|
+
children
|
|
80
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Icon, { svg: TokyoUIChevronDown })]
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* The content of a single `Accordion` item, to be used in conjunction with AccordionHeader wrapped inside AccordionContent.
|
|
85
|
+
*/
|
|
86
|
+
var AccordionContent = forwardRef(function AccordionItem({ dataset, children }, ref) {
|
|
87
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, {
|
|
88
|
+
tag: "div",
|
|
89
|
+
variant: "small-regular",
|
|
90
|
+
ref,
|
|
91
|
+
...getDatasetProps(dataset),
|
|
92
|
+
children
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
//#endregion
|
|
96
|
+
export { AccordionItem as i, AccordionContent as n, AccordionHeader as r, Accordion as t };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
|
|
3
|
+
import { createContext, useContext, useState } from "react";
|
|
4
|
+
import { useIntl } from "react-intl";
|
|
5
|
+
import './assets/AlertBannerProvider.css';var AlertBanner_module_default = {
|
|
6
|
+
alertBannerHost: "alertBannerHost__LKZaB",
|
|
7
|
+
alertBanner: "alertBanner__C0J87",
|
|
8
|
+
icon: "icon__5M08K",
|
|
9
|
+
description: "description__pXWo6",
|
|
10
|
+
action: "action__uKuZ4"
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/components/AlertBanner/AlertBannerProvider.tsx
|
|
14
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
15
|
+
var AlertBannerHostContext = createContext({ hostEl: null });
|
|
16
|
+
/**
|
|
17
|
+
* If you have issues with AlertBannerHostContext, ensures `AlertBannerProvider` is put at the top of
|
|
18
|
+
* your app component tree
|
|
19
|
+
*
|
|
20
|
+
* @see AlertBannerProvider
|
|
21
|
+
*/
|
|
22
|
+
function useAlertBannerHost() {
|
|
23
|
+
const ctx = useContext(AlertBannerHostContext);
|
|
24
|
+
if (!ctx) throw new Error("useAlertBannerHost must be used within AlertBannerHostContext");
|
|
25
|
+
return ctx.hostEl;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A region where all the `AlertBanner`s will be rendered into, and announced accordingly. It should
|
|
29
|
+
* be the first element of the page.
|
|
30
|
+
*
|
|
31
|
+
* From an affordance perspective:
|
|
32
|
+
* 1. Sighted users can see the page-wide banner with their eyes. The visual prominence ensures the
|
|
33
|
+
* alerts are noticed.
|
|
34
|
+
* 2. Screen readers announce the banners when they are added, and the text content of the banner
|
|
35
|
+
* help the users to understand the level of importance.
|
|
36
|
+
*
|
|
37
|
+
* For blind users readers, it's important that AlertBannerProvider wraps the whole app so its DOM
|
|
38
|
+
* element is put at the top of the page, because:
|
|
39
|
+
* 1. Screen readers announce the banner contents, but don't allow users to navigate to them and
|
|
40
|
+
* interact with them.
|
|
41
|
+
* 2. So, if this element is put on the top of the page, screen readers wil read the label ("Alerts,
|
|
42
|
+
* warnings, and updates") as the first element, so the users are aware since the beginning that
|
|
43
|
+
* there is a dedicated region for alerts.
|
|
44
|
+
* 3. When an alert appears, it's announced with something like "Alert: we can't renew your
|
|
45
|
+
* subscription", and they can connect the initially announced region with the newly appeared alert.
|
|
46
|
+
* 4. They can then navigate to the alerts region, and interact with the alert actions.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* <App>
|
|
50
|
+
* <AlertBannerProvider>
|
|
51
|
+
* ...rest of the app
|
|
52
|
+
* </AlertBannerProvider>
|
|
53
|
+
* </App>
|
|
54
|
+
*/
|
|
55
|
+
function AlertBannerProvider({ children, ...props }) {
|
|
56
|
+
const [hostEl, setHostEl] = useState(null);
|
|
57
|
+
const { formatMessage } = useIntl();
|
|
58
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertBannerHostContext.Provider, {
|
|
59
|
+
value: { hostEl },
|
|
60
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
61
|
+
className: AlertBanner_module_default.alertBannerHost,
|
|
62
|
+
role: "region",
|
|
63
|
+
"aria-live": "polite",
|
|
64
|
+
"aria-atomic": "false",
|
|
65
|
+
"aria-label": formatMessage({
|
|
66
|
+
id: "preply-ds.alert-banner.host-region",
|
|
67
|
+
defaultMessage: "Alerts, warnings, and updates",
|
|
68
|
+
description: "It's announced by screen readers when they scan the content of the page, and they find the alert banners container."
|
|
69
|
+
}),
|
|
70
|
+
ref: setHostEl,
|
|
71
|
+
...props
|
|
72
|
+
}), children]
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
export { useAlertBannerHost as n, AlertBanner_module_default as r, AlertBannerProvider as t };
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as require_jsx_runtime } from "./jsx-runtime-i4KUlhDu.js";
|
|
3
|
+
import { f as useRefWithInit, t as useRenderElement, u as EMPTY_OBJECT } from "./useRenderElement-ZBds6eRN.js";
|
|
4
|
+
import { S as useEventCallback } from "./floating-ui.utils.dom-CoeTbDZx.js";
|
|
5
|
+
import { t as useBaseUiId } from "./useBaseUiId-CWAD_PSs.js";
|
|
6
|
+
import { A as inertValue, F as useOpenChangeComplete, L as COMPOSITE_KEYS, M as popupStateMapping, P as triggerOpenStateMapping, ft as transitionStatusMapping, j as CommonPopupDataAttributes, o as getEmptyContext, r as InternalBackdrop, v as FloatingFocusManager, y as FloatingPortal } from "./useOpenInteractionType-D8vA_ZKI.js";
|
|
7
|
+
import { t as useButton } from "./useButton-DHTh3Hm7.js";
|
|
8
|
+
import { n as useDialogRootContext, t as DialogRootContext } from "./DialogRootContext-Bz8RW-Mq.js";
|
|
9
|
+
import { t as useDialogClose } from "./useDialogClose-BzFIyWco.js";
|
|
10
|
+
import { n as useDialogRoot, t as DialogStore } from "./store-sN_eYeZT.js";
|
|
11
|
+
import { t as Heading } from "./Heading-DA9gHfsx.js";
|
|
12
|
+
import { t as Button } from "./Button-C35BZJZT.js";
|
|
13
|
+
import * as React$1 from "react";
|
|
14
|
+
import { Children, cloneElement, forwardRef, isValidElement } from "react";
|
|
15
|
+
import { getDatasetProps } from "@preply/ds-web-core";
|
|
16
|
+
import { webComponentNames } from "@preply/ds-visual-coverage-preply-component-names";
|
|
17
|
+
import { usePortalElement } from "@preply/ds-web-root";
|
|
18
|
+
import './assets/AlertDialog.css';//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/backdrop/AlertDialogBackdrop.js
|
|
19
|
+
var stateAttributesMapping$1 = {
|
|
20
|
+
...popupStateMapping,
|
|
21
|
+
...transitionStatusMapping
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* An overlay displayed beneath the popup.
|
|
25
|
+
* Renders a `<div>` element.
|
|
26
|
+
*
|
|
27
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
28
|
+
*/
|
|
29
|
+
var AlertDialogBackdrop = /* @__PURE__ */ React$1.forwardRef(function AlertDialogBackdrop(componentProps, forwardedRef) {
|
|
30
|
+
const { render, className, forceRender = false, ...elementProps } = componentProps;
|
|
31
|
+
const { store } = useDialogRootContext();
|
|
32
|
+
const open = store.useState("open");
|
|
33
|
+
const nested = store.useState("nested");
|
|
34
|
+
const mounted = store.useState("mounted");
|
|
35
|
+
const transitionStatus = store.useState("transitionStatus");
|
|
36
|
+
return useRenderElement("div", componentProps, {
|
|
37
|
+
state: React$1.useMemo(() => ({
|
|
38
|
+
open,
|
|
39
|
+
transitionStatus
|
|
40
|
+
}), [open, transitionStatus]),
|
|
41
|
+
ref: [store.context.backdropRef, forwardedRef],
|
|
42
|
+
props: [{
|
|
43
|
+
role: "presentation",
|
|
44
|
+
hidden: !mounted,
|
|
45
|
+
style: {
|
|
46
|
+
userSelect: "none",
|
|
47
|
+
WebkitUserSelect: "none"
|
|
48
|
+
}
|
|
49
|
+
}, elementProps],
|
|
50
|
+
stateAttributesMapping: stateAttributesMapping$1,
|
|
51
|
+
enabled: forceRender || !nested
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
if (process.env.NODE_ENV !== "production") AlertDialogBackdrop.displayName = "AlertDialogBackdrop";
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/close/AlertDialogClose.js
|
|
57
|
+
/**
|
|
58
|
+
* A button that closes the alert dialog.
|
|
59
|
+
* Renders a `<button>` element.
|
|
60
|
+
*
|
|
61
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
62
|
+
*/
|
|
63
|
+
var AlertDialogClose = /* @__PURE__ */ React$1.forwardRef(function AlertDialogClose(componentProps, forwardedRef) {
|
|
64
|
+
const { render, className, disabled = false, nativeButton = true, ...elementProps } = componentProps;
|
|
65
|
+
const { store } = useDialogRootContext();
|
|
66
|
+
const { getRootProps, ref } = useDialogClose({
|
|
67
|
+
disabled,
|
|
68
|
+
open: store.useState("open"),
|
|
69
|
+
setOpen: store.setOpen,
|
|
70
|
+
nativeButton
|
|
71
|
+
});
|
|
72
|
+
return useRenderElement("button", componentProps, {
|
|
73
|
+
state: React$1.useMemo(() => ({ disabled }), [disabled]),
|
|
74
|
+
ref: [forwardedRef, ref],
|
|
75
|
+
props: [elementProps, getRootProps]
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
if (process.env.NODE_ENV !== "production") AlertDialogClose.displayName = "AlertDialogClose";
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/description/AlertDialogDescription.js
|
|
81
|
+
/**
|
|
82
|
+
* A paragraph with additional information about the alert dialog.
|
|
83
|
+
* Renders a `<p>` element.
|
|
84
|
+
*
|
|
85
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
86
|
+
*/
|
|
87
|
+
var AlertDialogDescription = /* @__PURE__ */ React$1.forwardRef(function AlertDialogDescription(componentProps, forwardedRef) {
|
|
88
|
+
const { render, className, id: idProp, ...elementProps } = componentProps;
|
|
89
|
+
const { store } = useDialogRootContext();
|
|
90
|
+
const id = useBaseUiId(idProp);
|
|
91
|
+
store.useSyncedValueWithCleanup("descriptionElementId", id);
|
|
92
|
+
return useRenderElement("p", componentProps, {
|
|
93
|
+
ref: forwardedRef,
|
|
94
|
+
props: [{ id }, elementProps]
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
if (process.env.NODE_ENV !== "production") AlertDialogDescription.displayName = "AlertDialogDescription";
|
|
98
|
+
//#endregion
|
|
99
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopupCssVars.js
|
|
100
|
+
var AlertDialogPopupCssVars = /* @__PURE__ */ function(AlertDialogPopupCssVars) {
|
|
101
|
+
/**
|
|
102
|
+
* Indicates how many dialogs are nested within.
|
|
103
|
+
* @type {number}
|
|
104
|
+
*/
|
|
105
|
+
AlertDialogPopupCssVars["nestedDialogs"] = "--nested-dialogs";
|
|
106
|
+
return AlertDialogPopupCssVars;
|
|
107
|
+
}({});
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopupDataAttributes.js
|
|
110
|
+
var AlertDialogPopupDataAttributes = function(AlertDialogPopupDataAttributes) {
|
|
111
|
+
/**
|
|
112
|
+
* Present when the dialog is open.
|
|
113
|
+
*/
|
|
114
|
+
AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["open"] = CommonPopupDataAttributes.open] = "open";
|
|
115
|
+
/**
|
|
116
|
+
* Present when the dialog is closed.
|
|
117
|
+
*/
|
|
118
|
+
AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["closed"] = CommonPopupDataAttributes.closed] = "closed";
|
|
119
|
+
/**
|
|
120
|
+
* Present when the dialog is animating in.
|
|
121
|
+
*/
|
|
122
|
+
AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["startingStyle"] = CommonPopupDataAttributes.startingStyle] = "startingStyle";
|
|
123
|
+
/**
|
|
124
|
+
* Present when the dialog is animating out.
|
|
125
|
+
*/
|
|
126
|
+
AlertDialogPopupDataAttributes[AlertDialogPopupDataAttributes["endingStyle"] = CommonPopupDataAttributes.endingStyle] = "endingStyle";
|
|
127
|
+
/**
|
|
128
|
+
* Present when the dialog is nested within another dialog.
|
|
129
|
+
*/
|
|
130
|
+
AlertDialogPopupDataAttributes["nested"] = "data-nested";
|
|
131
|
+
/**
|
|
132
|
+
* Present when the dialog has other open dialogs nested within it.
|
|
133
|
+
*/
|
|
134
|
+
AlertDialogPopupDataAttributes["nestedDialogOpen"] = "data-nested-dialog-open";
|
|
135
|
+
return AlertDialogPopupDataAttributes;
|
|
136
|
+
}({});
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/portal/AlertDialogPortalContext.js
|
|
139
|
+
var AlertDialogPortalContext = /* @__PURE__ */ React$1.createContext(void 0);
|
|
140
|
+
if (process.env.NODE_ENV !== "production") AlertDialogPortalContext.displayName = "AlertDialogPortalContext";
|
|
141
|
+
function useAlertDialogPortalContext() {
|
|
142
|
+
const value = React$1.useContext(AlertDialogPortalContext);
|
|
143
|
+
if (value === void 0) throw new Error("Base UI: <AlertDialog.Portal> is missing.");
|
|
144
|
+
return value;
|
|
145
|
+
}
|
|
146
|
+
//#endregion
|
|
147
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/popup/AlertDialogPopup.js
|
|
148
|
+
var import_jsx_runtime = require_jsx_runtime();
|
|
149
|
+
var stateAttributesMapping = {
|
|
150
|
+
...popupStateMapping,
|
|
151
|
+
...transitionStatusMapping,
|
|
152
|
+
nestedDialogOpen(value) {
|
|
153
|
+
return value ? { [AlertDialogPopupDataAttributes.nestedDialogOpen]: "" } : null;
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* A container for the alert dialog contents.
|
|
158
|
+
* Renders a `<div>` element.
|
|
159
|
+
*
|
|
160
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
161
|
+
*/
|
|
162
|
+
var AlertDialogPopup = /* @__PURE__ */ React$1.forwardRef(function AlertDialogPopup(componentProps, forwardedRef) {
|
|
163
|
+
const { className, render, initialFocus, finalFocus, ...elementProps } = componentProps;
|
|
164
|
+
const { store } = useDialogRootContext();
|
|
165
|
+
const descriptionElementId = store.useState("descriptionElementId");
|
|
166
|
+
const floatingRootContext = store.useState("floatingRootContext");
|
|
167
|
+
const rootPopupProps = store.useState("popupProps");
|
|
168
|
+
const mounted = store.useState("mounted");
|
|
169
|
+
const nested = store.useState("nested");
|
|
170
|
+
const nestedOpenDialogCount = store.useState("nestedOpenDialogCount");
|
|
171
|
+
const open = store.useState("open");
|
|
172
|
+
const titleElementId = store.useState("titleElementId");
|
|
173
|
+
const transitionStatus = store.useState("transitionStatus");
|
|
174
|
+
useAlertDialogPortalContext();
|
|
175
|
+
useOpenChangeComplete({
|
|
176
|
+
open,
|
|
177
|
+
ref: store.context.popupRef,
|
|
178
|
+
onComplete() {
|
|
179
|
+
if (open) {
|
|
180
|
+
var _store$context$openCh, _store$context;
|
|
181
|
+
(_store$context$openCh = (_store$context = store.context).openChangeComplete) === null || _store$context$openCh === void 0 || _store$context$openCh.call(_store$context, true);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
const defaultInitialFocus = useEventCallback((interactionType) => {
|
|
186
|
+
if (interactionType === "touch") return store.context.popupRef.current;
|
|
187
|
+
return true;
|
|
188
|
+
});
|
|
189
|
+
const resolvedInitialFocus = initialFocus === void 0 ? defaultInitialFocus : initialFocus;
|
|
190
|
+
const nestedDialogOpen = nestedOpenDialogCount > 0;
|
|
191
|
+
const element = useRenderElement("div", componentProps, {
|
|
192
|
+
state: React$1.useMemo(() => ({
|
|
193
|
+
open,
|
|
194
|
+
nested,
|
|
195
|
+
transitionStatus,
|
|
196
|
+
nestedDialogOpen
|
|
197
|
+
}), [
|
|
198
|
+
open,
|
|
199
|
+
nested,
|
|
200
|
+
transitionStatus,
|
|
201
|
+
nestedDialogOpen
|
|
202
|
+
]),
|
|
203
|
+
props: [
|
|
204
|
+
rootPopupProps,
|
|
205
|
+
{
|
|
206
|
+
"aria-labelledby": titleElementId !== null && titleElementId !== void 0 ? titleElementId : void 0,
|
|
207
|
+
"aria-describedby": descriptionElementId !== null && descriptionElementId !== void 0 ? descriptionElementId : void 0,
|
|
208
|
+
role: "alertdialog",
|
|
209
|
+
tabIndex: -1,
|
|
210
|
+
hidden: !mounted,
|
|
211
|
+
onKeyDown(event) {
|
|
212
|
+
if (COMPOSITE_KEYS.has(event.key)) event.stopPropagation();
|
|
213
|
+
},
|
|
214
|
+
style: { [AlertDialogPopupCssVars.nestedDialogs]: nestedOpenDialogCount }
|
|
215
|
+
},
|
|
216
|
+
elementProps
|
|
217
|
+
],
|
|
218
|
+
ref: [
|
|
219
|
+
forwardedRef,
|
|
220
|
+
store.context.popupRef,
|
|
221
|
+
store.getElementSetter("popupElement")
|
|
222
|
+
],
|
|
223
|
+
stateAttributesMapping
|
|
224
|
+
});
|
|
225
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(React$1.Fragment, { children: [mounted && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InternalBackdrop, {
|
|
226
|
+
ref: store.context.internalBackdropRef,
|
|
227
|
+
inert: inertValue(!open)
|
|
228
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingFocusManager, {
|
|
229
|
+
context: floatingRootContext,
|
|
230
|
+
disabled: !mounted,
|
|
231
|
+
initialFocus: resolvedInitialFocus,
|
|
232
|
+
returnFocus: finalFocus,
|
|
233
|
+
children: element
|
|
234
|
+
})] });
|
|
235
|
+
});
|
|
236
|
+
if (process.env.NODE_ENV !== "production") AlertDialogPopup.displayName = "AlertDialogPopup";
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/portal/AlertDialogPortal.js
|
|
239
|
+
/**
|
|
240
|
+
* A portal element that moves the popup to a different part of the DOM.
|
|
241
|
+
* By default, the portal element is appended to `<body>`.
|
|
242
|
+
*
|
|
243
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
244
|
+
*/
|
|
245
|
+
function AlertDialogPortal(props) {
|
|
246
|
+
const { children, keepMounted = false, container } = props;
|
|
247
|
+
const { store } = useDialogRootContext();
|
|
248
|
+
if (!(store.useState("mounted") || keepMounted)) return null;
|
|
249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogPortalContext.Provider, {
|
|
250
|
+
value: keepMounted,
|
|
251
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FloatingPortal, {
|
|
252
|
+
root: container,
|
|
253
|
+
children
|
|
254
|
+
})
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/root/AlertDialogRoot.js
|
|
259
|
+
var INITIAL_STATE = {
|
|
260
|
+
open: false,
|
|
261
|
+
dismissible: false,
|
|
262
|
+
nested: false,
|
|
263
|
+
popupElement: null,
|
|
264
|
+
triggerElement: null,
|
|
265
|
+
modal: true,
|
|
266
|
+
descriptionElementId: void 0,
|
|
267
|
+
titleElementId: void 0,
|
|
268
|
+
openMethod: null,
|
|
269
|
+
mounted: false,
|
|
270
|
+
transitionStatus: "idle",
|
|
271
|
+
nestedOpenDialogCount: 0,
|
|
272
|
+
triggerProps: EMPTY_OBJECT,
|
|
273
|
+
popupProps: EMPTY_OBJECT,
|
|
274
|
+
floatingRootContext: getEmptyContext()
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Groups all parts of the alert dialog.
|
|
278
|
+
* Doesn’t render its own HTML element.
|
|
279
|
+
*
|
|
280
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
281
|
+
*/
|
|
282
|
+
var AlertDialogRoot = function AlertDialogRoot(props) {
|
|
283
|
+
const { children, defaultOpen = false, onOpenChange, onOpenChangeComplete, open: openProp, actionsRef } = props;
|
|
284
|
+
const parentDialogRootContext = useDialogRootContext();
|
|
285
|
+
const nested = Boolean(parentDialogRootContext);
|
|
286
|
+
const store = useRefWithInit(DialogStore.create, INITIAL_STATE).current;
|
|
287
|
+
store.useControlledProp("open", openProp, defaultOpen);
|
|
288
|
+
store.useSyncedValue("nested", nested);
|
|
289
|
+
store.useContextCallback("openChange", onOpenChange);
|
|
290
|
+
store.useContextCallback("openChangeComplete", onOpenChangeComplete);
|
|
291
|
+
useDialogRoot({
|
|
292
|
+
store,
|
|
293
|
+
actionsRef,
|
|
294
|
+
parentContext: parentDialogRootContext === null || parentDialogRootContext === void 0 ? void 0 : parentDialogRootContext.store.context,
|
|
295
|
+
onOpenChange
|
|
296
|
+
});
|
|
297
|
+
const contextValue = React$1.useMemo(() => ({ store }), [store]);
|
|
298
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogRootContext.Provider, {
|
|
299
|
+
value: contextValue,
|
|
300
|
+
children
|
|
301
|
+
});
|
|
302
|
+
};
|
|
303
|
+
if (process.env.NODE_ENV !== "production") AlertDialogRoot.displayName = "AlertDialogRoot";
|
|
304
|
+
//#endregion
|
|
305
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/title/AlertDialogTitle.js
|
|
306
|
+
/**
|
|
307
|
+
* A heading that labels the dialog.
|
|
308
|
+
* Renders an `<h2>` element.
|
|
309
|
+
*
|
|
310
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
311
|
+
*/
|
|
312
|
+
var AlertDialogTitle = /* @__PURE__ */ React$1.forwardRef(function AlertDialogTitle(componentProps, forwardedRef) {
|
|
313
|
+
const { render, className, id: idProp, ...elementProps } = componentProps;
|
|
314
|
+
const { store } = useDialogRootContext();
|
|
315
|
+
const id = useBaseUiId(idProp);
|
|
316
|
+
store.useSyncedValueWithCleanup("titleElementId", id);
|
|
317
|
+
return useRenderElement("h2", componentProps, {
|
|
318
|
+
ref: forwardedRef,
|
|
319
|
+
props: [{ id }, elementProps]
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
if (process.env.NODE_ENV !== "production") AlertDialogTitle.displayName = "AlertDialogTitle";
|
|
323
|
+
//#endregion
|
|
324
|
+
//#region ../../node_modules/@base-ui-components/react/esm/alert-dialog/trigger/AlertDialogTrigger.js
|
|
325
|
+
/**
|
|
326
|
+
* A button that opens the alert dialog.
|
|
327
|
+
* Renders a `<button>` element.
|
|
328
|
+
*
|
|
329
|
+
* Documentation: [Base UI Alert Dialog](https://base-ui.com/react/components/alert-dialog)
|
|
330
|
+
*/
|
|
331
|
+
var AlertDialogTrigger$1 = /* @__PURE__ */ React$1.forwardRef(function AlertDialogTrigger(componentProps, forwardedRef) {
|
|
332
|
+
const { render, className, disabled = false, nativeButton = true, ...elementProps } = componentProps;
|
|
333
|
+
const { store } = useDialogRootContext();
|
|
334
|
+
const open = store.useState("open");
|
|
335
|
+
const triggerProps = store.useState("triggerProps");
|
|
336
|
+
const state = React$1.useMemo(() => ({
|
|
337
|
+
disabled,
|
|
338
|
+
open
|
|
339
|
+
}), [disabled, open]);
|
|
340
|
+
const { getButtonProps, buttonRef } = useButton({
|
|
341
|
+
disabled,
|
|
342
|
+
native: nativeButton
|
|
343
|
+
});
|
|
344
|
+
return useRenderElement("button", componentProps, {
|
|
345
|
+
state,
|
|
346
|
+
ref: [
|
|
347
|
+
forwardedRef,
|
|
348
|
+
buttonRef,
|
|
349
|
+
store.getElementSetter("triggerElement")
|
|
350
|
+
],
|
|
351
|
+
stateAttributesMapping: triggerOpenStateMapping,
|
|
352
|
+
props: [
|
|
353
|
+
triggerProps,
|
|
354
|
+
elementProps,
|
|
355
|
+
getButtonProps
|
|
356
|
+
]
|
|
357
|
+
});
|
|
358
|
+
});
|
|
359
|
+
if (process.env.NODE_ENV !== "production") AlertDialogTrigger$1.displayName = "AlertDialogTrigger";
|
|
360
|
+
var AlertDialog_module_default = {
|
|
361
|
+
overlay: "overlay__cqEa0",
|
|
362
|
+
overlayShow: "overlayShow__DlV95",
|
|
363
|
+
content: "content__U-iLo",
|
|
364
|
+
contentShow: "contentShow__8iLk2",
|
|
365
|
+
description: "description__7w95W",
|
|
366
|
+
actions: "actions__DbfEY"
|
|
367
|
+
};
|
|
368
|
+
//#endregion
|
|
369
|
+
//#region src/components/AlertDialog/AlertDialog.tsx
|
|
370
|
+
var AlertDialogTrigger = forwardRef(function AlertDialogActionComponent(props, ref) {
|
|
371
|
+
const child = Children.only(props.children);
|
|
372
|
+
if (!isValidElement(child)) return null;
|
|
373
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogTrigger$1, { render: (primitiveProps) => {
|
|
374
|
+
return cloneElement(child, {
|
|
375
|
+
...primitiveProps,
|
|
376
|
+
ref
|
|
377
|
+
});
|
|
378
|
+
} });
|
|
379
|
+
});
|
|
380
|
+
var AlertDialogAction = forwardRef(function AlertDialogActionComponent(props, ref) {
|
|
381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogClose, {
|
|
382
|
+
ref,
|
|
383
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {}),
|
|
384
|
+
...props
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
var AlertDialogCancel = forwardRef(function AlertDialogCancelComponent(props, ref) {
|
|
388
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogClose, {
|
|
389
|
+
ref,
|
|
390
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Button, {}),
|
|
391
|
+
...props
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
var AlertDialogComponent = ({ open, title, description, dataset, children }) => {
|
|
395
|
+
const container = usePortalElement();
|
|
396
|
+
const datasetProps = getDatasetProps(dataset, { preplyDsComponent: webComponentNames.AlertDialog });
|
|
397
|
+
let trigger;
|
|
398
|
+
const actions = [];
|
|
399
|
+
Children.forEach(children, (child) => {
|
|
400
|
+
if (isValidElement(child)) if (child.type === AlertDialogTrigger) trigger = child;
|
|
401
|
+
else actions.push(child);
|
|
402
|
+
});
|
|
403
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogRoot, {
|
|
404
|
+
open,
|
|
405
|
+
children: [trigger, /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogPortal, {
|
|
406
|
+
container,
|
|
407
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogBackdrop, { className: AlertDialog_module_default.overlay }), /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(AlertDialogPopup, {
|
|
408
|
+
...datasetProps,
|
|
409
|
+
className: AlertDialog_module_default.content,
|
|
410
|
+
children: [
|
|
411
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogTitle, { render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Heading, {
|
|
412
|
+
tag: "h3",
|
|
413
|
+
variant: "medium",
|
|
414
|
+
children: title
|
|
415
|
+
}) }),
|
|
416
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(AlertDialogDescription, {
|
|
417
|
+
className: AlertDialog_module_default.description,
|
|
418
|
+
children: description
|
|
419
|
+
}),
|
|
420
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
421
|
+
className: AlertDialog_module_default.actions,
|
|
422
|
+
children: actions
|
|
423
|
+
})
|
|
424
|
+
]
|
|
425
|
+
})]
|
|
426
|
+
})]
|
|
427
|
+
});
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* A modal alertdialog that interrupts the user with important content and expects a response.
|
|
431
|
+
*
|
|
432
|
+
* Unlike a `Dialog`, it cannot be dismissed by clicking outside or pressing escape.
|
|
433
|
+
*
|
|
434
|
+
* @example
|
|
435
|
+
* // Controlled:
|
|
436
|
+
* <Button variant="critical" onClick={() => setIsOpen(true)}>
|
|
437
|
+
* Delete Account
|
|
438
|
+
* </Button>
|
|
439
|
+
* <AlertDialog
|
|
440
|
+
* open={isOpen}
|
|
441
|
+
* title="Delete Account"
|
|
442
|
+
* description="This action cannot be undone."
|
|
443
|
+
* >
|
|
444
|
+
* <AlertDialog.Cancel variant="secondary" onClick={() => setIsOpen(false)}>
|
|
445
|
+
* Cancel
|
|
446
|
+
* </AlertDialog.Cancel>
|
|
447
|
+
* <AlertDialog.Action variant="critical" onClick={() => setIsOpen(false)}>
|
|
448
|
+
* Delete
|
|
449
|
+
* </AlertDialog.Action>
|
|
450
|
+
* </AlertDialog>
|
|
451
|
+
*
|
|
452
|
+
* @example
|
|
453
|
+
* // Uncontrolled:
|
|
454
|
+
* <AlertDialog
|
|
455
|
+
* title="Delete Account"
|
|
456
|
+
* description="This action cannot be undone."
|
|
457
|
+
* >
|
|
458
|
+
* <AlertDialog.Trigger>
|
|
459
|
+
* <Button variant="critical">Delete Account</Button>
|
|
460
|
+
* </AlertDialog.Trigger>
|
|
461
|
+
* <AlertDialog.Cancel variant="secondary">
|
|
462
|
+
* Cancel
|
|
463
|
+
* </AlertDialog.Cancel>
|
|
464
|
+
* <AlertDialog.Action variant="critical">
|
|
465
|
+
* Delete
|
|
466
|
+
* </AlertDialog.Action>
|
|
467
|
+
* </AlertDialog>
|
|
468
|
+
*/
|
|
469
|
+
var AlertDialog = Object.assign(AlertDialogComponent, {
|
|
470
|
+
Trigger: AlertDialogTrigger,
|
|
471
|
+
Action: AlertDialogAction,
|
|
472
|
+
Cancel: AlertDialogCancel
|
|
473
|
+
});
|
|
474
|
+
//#endregion
|
|
475
|
+
export { AlertDialog as t };
|