@preply/ds-docs 10.0.0 → 11.0.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/assets/{00.LayoutFlex.stories-DB9Y25qw.js → 00.LayoutFlex.stories-lllooXjc.js} +1 -1
- package/dist/assets/{00.applications-C7qyvM1y.js → 00.applications-ApRgtzMF.js} +1 -1
- package/dist/assets/{00.favicons.guide-BmYhSQZH.js → 00.favicons.guide-4ivqvu_K.js} +1 -1
- package/dist/assets/{00.token-explorer-zaz4V88E.js → 00.token-explorer-DCBSOdHJ.js} +6 -6
- package/dist/assets/{00.using-responsive-props-DKW-uWVH.js → 00.using-responsive-props-BhAkr9Gn.js} +1 -1
- package/dist/assets/{01.semantic-tokens-Qf9qY_Sk.js → 01.semantic-tokens-BBQKcQ5o.js} +1 -1
- package/dist/assets/{01.using-shorthand-props-BedWZyE3.js → 01.using-shorthand-props-SxccG8oR.js} +1 -1
- package/dist/assets/{10.Combinations.stories-DL8TmNJ4.js → 10.Combinations.stories-D3XySbv3.js} +1 -1
- package/dist/assets/{10.fonts.guide-DWCtIfPx.js → 10.fonts.guide-p4vZ2TE8.js} +1 -1
- package/dist/assets/{10.ssr-FDyVDtdm.js → 10.ssr-BLS5aGYV.js} +1 -1
- package/dist/assets/11.fonts.explorer-BMm1rcuE.js +2 -0
- package/dist/assets/{11.ssr.app-router-C5TwsO2T.js → 11.ssr.app-router-B_LdKMuw.js} +1 -1
- package/dist/assets/{20.libraries-Cnl2_NKK.js → 20.libraries-Uutk1t-k.js} +1 -1
- package/dist/assets/{2025-q4-ds-cleanup-Bpa9AZ8j.js → 2025-q4-ds-cleanup-D2AonoQX.js} +1 -1
- package/dist/assets/30.icons.explorer-D63Br7GU.js +72 -0
- package/dist/assets/{30.storybook-C9GpdY6w.js → 30.storybook-B_OtmSNE.js} +1 -1
- package/dist/assets/{40.illustrations.explorer-BRtj5sFB.js → 40.illustrations.explorer-Pi9iaQwM.js} +1 -1
- package/dist/assets/{90.advanced-hNSc64rO.js → 90.advanced-tEkbHxcl.js} +1 -1
- package/dist/assets/{Accordion-CedlUpYk.js → Accordion-2avWtqXz.js} +4 -4
- package/dist/assets/{Accordion.stories-K6mzrdt8.js → Accordion.stories-CLwah67K.js} +1 -1
- package/dist/assets/{Accordion.tests.stories-B6lTbT6X.js → Accordion.tests.stories-CFH7p1Jq.js} +1 -1
- package/dist/assets/{AlertBanner.primitives.stories-CX03Ob-5.js → AlertBanner.primitives.stories-DpA-of6O.js} +1 -1
- package/dist/assets/{AlertBanner.stories-Cla7i7qF.js → AlertBanner.stories-B7xxyCn2.js} +2 -2
- package/dist/assets/{AlertBannerAction-CW-WBC-Q.js → AlertBannerAction-D14MnnIA.js} +33 -33
- package/dist/assets/AlertDialog-B5rRXSxb.js +4 -0
- package/dist/assets/AlertDialog.stories-BKT7nitb.js +232 -0
- package/dist/assets/{Avatar-Dlo9b83e.js → Avatar-Die_4zu0.js} +1 -1
- package/dist/assets/{Avatar.stories-B27rtxK8.js → Avatar.stories-DJHK0lEC.js} +1 -1
- package/dist/assets/{AvatarWithStatus.stories-DBeEaQQL.js → AvatarWithStatus.stories-E9QQr3Dr.js} +1 -1
- package/dist/assets/{Badge-CEZW6Ww4.js → Badge-BSDHZ3bI.js} +2 -2
- package/dist/assets/{Badge.stories-ioY8q4d7.js → Badge.stories-6FOVA96I.js} +1 -1
- package/dist/assets/{Box.stories-udfSjNu1.js → Box.stories-DAVs5Qmd.js} +1 -1
- package/dist/assets/{BubbleCounter.stories-D2G7jKKI.js → BubbleCounter.stories-DHv_hrNV.js} +1 -1
- package/dist/assets/{Button-DS2bg8PO.js → Button-C0Um_QuO.js} +2 -2
- package/dist/assets/{Button.stories-VD5Bx8BA.js → Button.stories-CTSwUwYJ.js} +1 -1
- package/dist/assets/{ButtonBase-CPJxprWJ.js → ButtonBase-DGinnt2u.js} +1 -1
- package/dist/assets/{ButtonBase-sV1YoG7h.js → ButtonBase-HkSfLFbE.js} +1 -1
- package/dist/assets/{CalloutBanner.stories-Cda3BZCl.js → CalloutBanner.stories-C62ApsKt.js} +19 -19
- package/dist/assets/{Checkbox-Cmmcg7FL.js → Checkbox-U8uzIr-e.js} +3 -3
- package/dist/assets/{Checkbox.stories-B0kQw-sr.js → Checkbox.stories-ClI-ZBnj.js} +1 -1
- package/dist/assets/{Checkbox.tests.stories-DDyVlpZg.js → Checkbox.tests.stories-CrLxNZ2d.js} +1 -1
- package/dist/assets/{Chips.stories-DcxW_jqF.js → Chips.stories-BMxD1fH1.js} +1 -1
- package/dist/assets/{Color-ASIRERSW-9q9Af87o.js → Color-ASIRERSW-BsR8auWQ.js} +1 -1
- package/dist/assets/ComposingDialogs.stories-DwVqal9K.js +111 -0
- package/dist/assets/{ComposingPopovers.stories-Co69SyGH.js → ComposingPopovers.stories-DtmTbsU_.js} +1 -1
- package/dist/assets/CountryFlag-D40CtNEa.js +49 -0
- package/dist/assets/{CountryFlag.stories-o-8kmOZA.js → CountryFlag.stories-hf40f81N.js} +1 -1
- package/dist/assets/{CountryFlag.test.stories-CKkoBStk.js → CountryFlag.test.stories-Bde0Okud.js} +1 -1
- package/dist/assets/{Dialog-DaLOtRn0.js → Dialog-CJQmu6iz.js} +1 -1
- package/dist/assets/{Dialog.primitives.stories-CDU4GhAO.js → Dialog.primitives.stories-BRGfipHO.js} +2 -2
- package/dist/assets/{Dialog.stories-N8LTxdNu.js → Dialog.stories-D4tyIGD0.js} +27 -22
- package/dist/assets/Dialog.test.stories-xCqInD69.js +146 -0
- package/dist/assets/{DialogActions-_9FMsJ9P.js → DialogActions-GLMqsJfB.js} +30 -30
- package/dist/assets/{DialogCloseButton-CDDeMFIL.js → DialogCloseButton-D5YliaRd.js} +47 -55
- package/dist/assets/{DismissibleChips-X4A9KOxs.js → DismissibleChips-YCE2ttV-.js} +1 -1
- package/dist/assets/{DismissibleChips.stories-DbnvLIw0.js → DismissibleChips.stories-Cx3sJ6UG.js} +1 -1
- package/dist/assets/{Divider-WS0wDfQZ.js → Divider-j3vJV734.js} +1 -1
- package/dist/assets/{Divider.stories-BO1cg142.js → Divider.stories-CK-PipZt.js} +1 -1
- package/dist/assets/{DocsRenderer-GHJI37HO-CzsXSkAO.js → DocsRenderer-GHJI37HO-WuLZQEsz.js} +2 -2
- package/dist/assets/{DropdownMenu-CB6xg9YD.js → DropdownMenu-CgNvtJ2F.js} +409 -409
- package/dist/assets/{DropdownMenu.stories-E-6mIs-U.js → DropdownMenu.stories-DpmKDI1Q.js} +82 -56
- package/dist/assets/{FieldButton-CYcQXg37.js → FieldButton-DpHF49o_.js} +1 -1
- package/dist/assets/{FieldButton.stories-UNjMUuGT.js → FieldButton.stories-C7v9WweE.js} +1 -1
- package/dist/assets/{FormControl-DgD7Nr_L.js → FormControl-Zqf1cIwP.js} +1 -1
- package/dist/assets/{FormControl.stories-DlqjswdS.js → FormControl.stories-D4xKaMaA.js} +1 -1
- package/dist/assets/{Heading-BPJGe0Bg.js → Heading-Cj8Si45g.js} +1 -1
- package/dist/assets/{Heading.stories-B9_Jr0z3.js → Heading.stories-BG_kLNJz.js} +1 -1
- package/dist/assets/{Icon-kphbe0CE.js → Icon-CC0yjdx9.js} +2 -2
- package/dist/assets/{Icon-RSC-BcGoz5Ez.js → Icon-RSC-Cl0H44C3.js} +1 -1
- package/dist/assets/{Icon.stories-CKAjKBCa.js → Icon.stories-DAIYY4Bp.js} +1 -1
- package/dist/assets/IconButton-BpjNyYgD.js +8 -0
- package/dist/assets/IconTile-CAnlU9ss.js +1 -0
- package/dist/assets/IconTile-DDvHA75S.css +1 -0
- package/dist/assets/IconTile.stories-DnUYn3Id.js +88 -0
- package/dist/assets/{Input-Cp2OkxN8.js → Input-DuW1_5SG.js} +16 -16
- package/dist/assets/{InputContainer-BlXlJbfJ.js → InputContainer-Cmdo_xyq.js} +1 -1
- package/dist/assets/{IntegrationWithReactHookForm.stories-BstJWvGF.js → IntegrationWithReactHookForm.stories-9EImL3zR.js} +1 -1
- package/dist/assets/{IntlFormattedCurrency.stories-CXBsKa8I.js → IntlFormattedCurrency.stories-j1D4xFto.js} +9 -9
- package/dist/assets/{IntlFormattedDateTime.stories-m5rFuyxv.js → IntlFormattedDateTime.stories-BCwbTrw1.js} +7 -7
- package/dist/assets/{LayoutFlex-Drgj-jqd.js → LayoutFlex-CTH6ELdm.js} +1 -1
- package/dist/assets/{LayoutFlex-p_p7LCCd.js → LayoutFlex-DXRMJ9FH.js} +1 -1
- package/dist/assets/{LayoutFlexItem-DrxhQlf5.js → LayoutFlexItem-lmgCv4Y9.js} +1 -1
- package/dist/assets/{LayoutGrid-DZv08iKe.js → LayoutGrid-CUGRXgEO.js} +1 -1
- package/dist/assets/{LayoutGrid-eROIp1sZ.js → LayoutGrid-SAztDD7Z.js} +1 -1
- package/dist/assets/{LayoutGrid.stories-DAnbCvD6.js → LayoutGrid.stories-2dbzhVi7.js} +1 -1
- package/dist/assets/{LayoutGridItem-DiU_IdjQ.js → LayoutGridItem-UTn4G6JO.js} +1 -1
- package/dist/assets/{Link-BHV5DCu-.js → Link-BAFCJR3T.js} +1 -1
- package/dist/assets/{Link.stories-CFRsbzfM.js → Link.stories-6gHkl5xC.js} +1 -1
- package/dist/assets/{Loader.stories-bvaq9oGD.js → Loader.stories-CG-Eo8vg.js} +1 -1
- package/dist/assets/{MultiSelectChips-CVg9kaKd.js → MultiSelectChips-CBnEtn4N.js} +2 -2
- package/dist/assets/{MultiSelectChips.stories-DOiIDnhX.js → MultiSelectChips.stories-Ch4FxGM2.js} +1 -1
- package/dist/assets/{NativeSelectField.stories-DojmcjvT.js → NativeSelectField.stories-Pj5dm9hL.js} +21 -21
- package/dist/assets/NumberField-klmIiQAi.js +6 -0
- package/dist/assets/{NumberField.stories-BEVJXeBn.js → NumberField.stories-D740jISy.js} +1 -1
- package/dist/assets/{ObserveIntersection-MtxhRIzU.js → ObserveIntersection-Dx2gD1CU.js} +2 -2
- package/dist/assets/{ObserveIntersection.stories-0f-z6V25.js → ObserveIntersection.stories-JJPEw5oG.js} +1 -1
- package/dist/assets/{OnboardingTooltip-DdKwzkB-.js → OnboardingTooltip-DzQhJzWc.js} +1 -1
- package/dist/assets/OnboardingTooltip-X4QjsIe6.css +1 -0
- package/dist/assets/{OnboardingTooltip.stories-DV2yAiRE.js → OnboardingTooltip.stories-BDgRgbzO.js} +1 -1
- package/dist/assets/{OnboardingTooltip.tests.stories-32a4fLzf.js → OnboardingTooltip.tests.stories-DrqovP8T.js} +1 -1
- package/dist/assets/{OnboardingTour-m4V6QT-X.js → OnboardingTour-B5gEod5H.js} +1 -1
- package/dist/assets/OnboardingTour-DoEbirUE.css +1 -0
- package/dist/assets/{OnboardingTour.stories-dLZBYgbr.js → OnboardingTour.stories-BzHBS52z.js} +2 -2
- package/dist/assets/{OnboardingTour.tests.stories-BnPXyzmi.js → OnboardingTour.tests.stories-CHMykq2a.js} +1 -1
- package/dist/assets/PasswordField-BjqiXySY.js +6 -0
- package/dist/assets/{PasswordField.stories-BxnBBn2_.js → PasswordField.stories-YCTP14pU.js} +1 -1
- package/dist/assets/{PreplyLogo.stories-BuK8vK1R.js → PreplyLogo.stories-lPBmn_E2.js} +1 -1
- package/dist/assets/{ProgressBar.stories-CwpXa86g.js → ProgressBar.stories-DqvDJEeF.js} +1 -1
- package/dist/assets/{ProgressSteps-DCVAFT7X.js → ProgressSteps-Dce_SjLt.js} +1 -1
- package/dist/assets/{ProgressSteps.stories--reXlzAk.js → ProgressSteps.stories-BMDqz7-Z.js} +1 -1
- package/dist/assets/{PromoDialog-BPWEGGGS.js → PromoDialog-DdnXVfH8.js} +2 -2
- package/dist/assets/{RangeSlider-BKIG-XfV.js → RangeSlider-MZqvjtBp.js} +1 -1
- package/dist/assets/{RangeSlider.stories-Dr7UfAUm.js → RangeSlider.stories-BS4-l1u4.js} +1 -1
- package/dist/assets/{Rating.stories-Cmpcr64W.js → Rating.stories-wHsrBw3w.js} +1 -1
- package/dist/assets/{RatingInput.stories-DWxrhIwu.js → RatingInput.stories-BKAXF4Qv.js} +2 -2
- package/dist/assets/{SelectField-BRicVVj7.js → SelectField-DU60q2LU.js} +13 -13
- package/dist/assets/{SelectField.stories-D6sJHBcs.js → SelectField.stories-BKCyFPQa.js} +2 -2
- package/dist/assets/{ShowOnIntersection.stories-DT94aTYJ.js → ShowOnIntersection.stories-BdO_3n9P.js} +1 -1
- package/dist/assets/{SingleSelectChips-B1d9MkC-.js → SingleSelectChips-CDtny-H7.js} +2 -2
- package/dist/assets/{SingleSelectChips.stories-QdsPQJO8.js → SingleSelectChips.stories-CTAvW0Y9.js} +1 -1
- package/dist/assets/{Slider-CVM0huNa.js → Slider-B8ndK7PX.js} +1 -1
- package/dist/assets/{Slider.stories-UCLuhto1.js → Slider.stories-CBV0fePJ.js} +1 -1
- package/dist/assets/{Spinner-BG27lVzS.js → Spinner-8-RB4YZR.js} +1 -1
- package/dist/assets/{Stars-St7ZRTZK.js → Stars-BSTkfC0i.js} +1 -1
- package/dist/assets/{Steps-CBqiqb-6.js → Steps-DUeCVcxV.js} +1 -1
- package/dist/assets/{Steps.stories-DOWMlpTM.js → Steps.stories-DqOo6fKy.js} +1 -1
- package/dist/assets/{Switch-DJROHOKs.js → Switch-Dyoj_Z1P.js} +1 -1
- package/dist/assets/{Switch.stories-C9cCCv8l.js → Switch.stories-CDVDjU2B.js} +1 -1
- package/dist/assets/{Text-FXv4P3JX.js → Text-DJTKRzSb.js} +1 -1
- package/dist/assets/{Text-C8DrHLQF.js → Text-DvShrljd.js} +1 -1
- package/dist/assets/{Text.stories-Cmn2Kn0h.js → Text.stories-DRuLuJwb.js} +1 -1
- package/dist/assets/TextField-BSJgR_zK.js +6 -0
- package/dist/assets/{TextField.stories-Bly_tLuN.js → TextField.stories-rtu-asgN.js} +1 -1
- package/dist/assets/{TextHighlighted.stories-CdIzDMMS.js → TextHighlighted.stories-Bc0bMLCv.js} +1 -1
- package/dist/assets/{TextInline.stories-NWWAzVY1.js → TextInline.stories-DKWvwjg6.js} +1 -1
- package/dist/assets/{TextareaField-DDEIieQg.js → TextareaField-DUqOyVK5.js} +21 -21
- package/dist/assets/{TextareaField.stories-CyuOlu4z.js → TextareaField.stories-CiRYJL_j.js} +1 -1
- package/dist/assets/{Toast.stories-BFWVkg8-.js → Toast.stories-S5qFLRPf.js} +1 -1
- package/dist/assets/{TokyoUIAttach-Bj2xsZ5E.js → TokyoUIAttach-BsMlsNHQ.js} +1 -1
- package/dist/assets/{TokyoUIAvailability7LateNight-CyPCBR0g.js → TokyoUIAvailability7LateNight-BUCnoHXS.js} +1 -1
- package/dist/assets/{TokyoUICheck-Cg3ZJnmD.js → TokyoUICheck-DQLX_x10.js} +1 -1
- package/dist/assets/{TokyoUICheckmark-CPDgq6wU.js → TokyoUICheckmark-BHJrELn_.js} +1 -1
- package/dist/assets/{TokyoUIChevronDown-CqAWFBEe.js → TokyoUIChevronDown-DiBNbDdz.js} +1 -1
- package/dist/assets/{TokyoUIChevronRight-UHMBQAxX.js → TokyoUIChevronRight-DRhJYmWB.js} +1 -1
- package/dist/assets/{TokyoUIClose-DoJfpCh8.js → TokyoUIClose-BfMyMrDa.js} +1 -1
- package/dist/assets/{TokyoUIEmojiFrowning-Bztw_WuD.js → TokyoUIEmojiFrowning-DkxcBN-M.js} +1 -1
- package/dist/assets/{TokyoUIErrorWarning-CE6C7y8g.js → TokyoUIErrorWarning-GuwQvo24.js} +1 -1
- package/dist/assets/{TokyoUIExerciseClosedGapsJumble-OGZLJcQZ.js → TokyoUIExerciseClosedGapsJumble-C8roFqfh.js} +1 -1
- package/dist/assets/{TokyoUIEye-BRl8T4Ci.js → TokyoUIEye-oyrTN--k.js} +1 -1
- package/dist/assets/{TokyoUIFav-w08HsdRu.js → TokyoUIFav-C-stY9U_.js} +1 -1
- package/dist/assets/{TokyoUIInfo-BoGHBgEW.js → TokyoUIInfo-BSNbI4Gr.js} +1 -1
- package/dist/assets/{TokyoUILanguage-Bd98PINi.js → TokyoUILanguage-BcrymOo9.js} +1 -1
- package/dist/assets/{TokyoUILibraryExplore-C-3tnEbW.js → TokyoUILibraryExplore-DvvKpWd6.js} +1 -1
- package/dist/assets/{TokyoUILock-d81cInRU.js → TokyoUILock-B22xkFQW.js} +1 -1
- package/dist/assets/{TokyoUIMessages-0is9ybHR.js → TokyoUIMessages-hZLnK87p.js} +1 -1
- package/dist/assets/{TokyoUIMinus-DPJ4shry.js → TokyoUIMinus-C6TctZRw.js} +1 -1
- package/dist/assets/{TokyoUINotebook-DLrYm4si.js → TokyoUINotebook-mwleX-o1.js} +1 -1
- package/dist/assets/TokyoUINotesWithPad-CG0gLTYm.js +1 -0
- package/dist/assets/{TokyoUIPhone-bFlwEn-_.js → TokyoUIPhone-CFykqUer.js} +1 -1
- package/dist/assets/{TokyoUISettings-DhHyIlWv.js → TokyoUISettings-BbgnUEy1.js} +1 -1
- package/dist/assets/{TokyoUISparkle-B1jtDvOV.js → TokyoUISparkle-DPOw7W2T.js} +1 -1
- package/dist/assets/{TokyoUIStarFilled-Cj894376.js → TokyoUIStarFilled-CF0iG37X.js} +1 -1
- package/dist/assets/{TokyoUITag-fMAL09F9.js → TokyoUITag-B1Xueyd7.js} +1 -1
- package/dist/assets/{TokyoUIUpload-DM2TbvbX.js → TokyoUIUpload-CrasJ02A.js} +1 -1
- package/dist/assets/{TokyoUIUser-Ba7_NA45.js → TokyoUIUser-XhPCF9-5.js} +1 -1
- package/dist/assets/{Tooltip-DDtzGgNm.js → Tooltip-BiqKWYpo.js} +1 -1
- package/dist/assets/{Tooltip.stories-j1bsH2PP.js → Tooltip.stories-DCB24NyS.js} +1 -1
- package/dist/assets/{Tooltip.tests.stories-DFas0O9K.js → Tooltip.tests.stories-B3iLlPPq.js} +1 -1
- package/dist/assets/{VisuallyHidden-GZBFKPVs.js → VisuallyHidden-fvo3PSUE.js} +1 -1
- package/dist/assets/{WithTooltip-IO6J4KBT-2Wz16aqd.js → WithTooltip-IO6J4KBT-BUV9ELqr.js} +1 -1
- package/dist/assets/{align-self-D0ug8REo.js → align-self-BYi8giLn.js} +1 -1
- package/dist/assets/{axe-BcoLkzU-.js → axe-BG-rWtCi.js} +1 -1
- package/dist/assets/{breakpoints-CIy8w3Dv.js → breakpoints-CBpJ5xgl.js} +1 -1
- package/dist/assets/{breakpoints-BDFtAvFy.js → breakpoints-Cu9uEe0J.js} +1 -1
- package/dist/assets/{breakpoints-BBwYud6y.js → breakpoints-CuJuvIR9.js} +1 -1
- package/dist/assets/{changelog-DIkUnuOo.js → changelog-BoskfpJ8.js} +24 -1
- package/dist/assets/{client-oIdhQPH3.js → client-BN2KdiJY.js} +1 -1
- package/dist/assets/{constants-Cwb-3GQ_.js → constants-DDJ2G0OO.js} +47 -47
- package/dist/assets/createRequiredContext-B3Arn9-D.js +241 -0
- package/dist/assets/fonts-explorer.stories-CeMUwBuQ.js +130 -0
- package/dist/assets/{formatter-QJ4M4OGQ-D2xZe9AO.js → formatter-QJ4M4OGQ-B2Vljo6_.js} +1 -1
- package/dist/assets/getTokenVar-CVkrm5Qs.js +1 -0
- package/dist/assets/{getTokenVar-B7BEyIpS.js → getTokenVar-DmUJH1GU.js} +1 -1
- package/dist/assets/{gradientBorders-B12ps1Or.js → gradientBorders-Q_ip9Ojv.js} +1 -1
- package/dist/assets/{hover-5BxL9d9v.js → hover-C8NhPbjk.js} +1 -1
- package/dist/assets/{hover-CG8OgvC5.js → hover-C9fsErpn.js} +1 -1
- package/dist/assets/{hover-gsGL4vVH.js → hover-D55mJaWK.js} +1 -1
- package/dist/assets/{iframe-DjYTJz7A.js → iframe-B_74HtSc.js} +12 -12
- package/dist/assets/{index-DHDwwoCu.js → index-BJaBvJhB.js} +1 -1
- package/dist/assets/{index-BII7aPfQ.js → index-BW8FBNWq.js} +1 -1
- package/dist/assets/{index-C_O4jEc0.js → index-Cnv20V_M.js} +1 -1
- package/dist/assets/{index-CUvrBGJo.js → index-DIqvfT2b.js} +1 -1
- package/dist/assets/{index-cpi3YaXo.js → index-DWFFXgf1.js} +1 -1
- package/dist/assets/{index-DOwxXd3L.js → index-W3BB_3go.js} +1 -1
- package/dist/assets/{intro-BXKxOrdm.js → intro-DOuARa_Y.js} +1 -1
- package/dist/assets/{layout-relative-DQF7VcUK.js → layout-relative-B9CiYPwj.js} +1 -1
- package/dist/assets/{layout-relative.module-1z75aSwo-CsvB7_pT.js → layout-relative.module-1z75aSwo-Dcy7i8oK.js} +1 -1
- package/dist/assets/{layout-relative.module-BM7yIsEb.js → layout-relative.module-BIZVul8q.js} +1 -1
- package/dist/assets/{mcp-X-VhpP6n.js → mcp-D2eIYE7x.js} +1 -1
- package/dist/assets/{message-DiUVdAQd.js → message-DJT5rp5J.js} +1 -1
- package/dist/assets/{migrating-from-less-8Nm2XYdW.js → migrating-from-less-CxT_5hNC.js} +1 -1
- package/dist/assets/{playground.stories-B4hfD_Uq.js → playground.stories-DqwdOX0P.js} +1 -1
- package/dist/assets/{react-18-B4n119qZ.js → react-18-DoE4ZK8O.js} +1 -1
- package/dist/assets/{render-icon-DlE4AZJV.js → render-icon-DSbVIpCz.js} +1 -1
- package/dist/assets/{render-icon-DZ6hllTG.js → render-icon-MT6RlyNs.js} +1 -1
- package/dist/assets/{shared-strings-ZccoNgto.js → shared-strings-ThL9KyH0.js} +1 -1
- package/dist/assets/store-B0wM9Zg8.js +9 -0
- package/dist/assets/{styled-components.browser.esm-3T8u8x7l.js → styled-components.browser.esm-BHxIJD2_.js} +1 -1
- package/dist/assets/{styled-components.browser.esm-DegKtid9.js → styled-components.browser.esm-rrOBirU4.js} +1 -1
- package/dist/assets/{syntaxhighlighter-IQDEPFLK-B-ddKj4v.js → syntaxhighlighter-IQDEPFLK-BakL6JIW.js} +1 -1
- package/dist/assets/{text-accent-C5-m5mrW.js → text-accent-BQ9POoE5.js} +1 -1
- package/dist/assets/{text-centered-D70wah8Y.js → text-centered-BEaaxMgl.js} +1 -1
- package/dist/assets/{text-centered-CqZrbSb_.js → text-centered-CYnBFi3a.js} +1 -1
- package/dist/assets/{tokens-ChCvx9cz.js → tokens-BEyO2LY-.js} +1 -1
- package/dist/assets/{tokens-BXEYWkXR.js → tokens-Cg01svK-.js} +1 -1
- package/dist/assets/{tokens-CBFYFIpi.js → tokens-CmSwgWJ8.js} +1 -1
- package/dist/assets/{tokens-Cp4gIGSO.js → tokens-im-qJUCZ.js} +1 -1
- package/dist/assets/{useControllableState-DQg81cp5.js → useControllableState-BB4EHwEp.js} +1 -1
- package/dist/assets/useHostname-CbpnzdHv.js +1 -0
- package/dist/assets/{useMergeRefs-jFGYKOXz.js → useMergeRefs-CFhXCqbA.js} +1 -1
- package/dist/assets/{useMergeRefs-CL5DIjXV.js → useMergeRefs-Caz9hOck.js} +1 -1
- package/dist/assets/{useOpenInteractionType-B976GY1b.js → useOpenInteractionType-D3sASQWj.js} +3 -3
- package/dist/assets/{usePortalElement-B3bWjUcx.js → usePortalElement-Cbyb850w.js} +1 -1
- package/dist/assets/{useStableCallback-662ysKf2.js → useStableCallback-D5P5kDx5.js} +1 -1
- package/dist/assets/{useToken-CJ7hsZh9.js → useToken-OSVftwxQ.js} +1 -1
- package/dist/assets/{welcome-bR5y4uLm.js → welcome-QqBTVkpV.js} +1 -1
- package/dist/assets/{zeroheight-D-Xst36e.js → zeroheight-BXMq4jvo.js} +1 -1
- package/dist/iframe.html +1 -1
- package/dist/index.json +1 -1
- package/dist/preview-stats.json +10562 -10490
- package/dist/project.json +1 -1
- package/package.json +5 -5
- package/pages/30.guides/70.assets/constants/icon-imports.ts +2 -0
- package/dist/assets/11.fonts.explorer-Bh_GOQIH.js +0 -2
- package/dist/assets/30.icons.explorer-BBtz-vBk.js +0 -72
- package/dist/assets/AlertDialog.stories-BKmaZZoo.js +0 -243
- package/dist/assets/CountryFlag-BKEpYyWK.js +0 -49
- package/dist/assets/Dialog.test.stories-tViVBTuF.js +0 -127
- package/dist/assets/IconButton-D4lbFOKH.js +0 -8
- package/dist/assets/IconTile-CanD5Ibh.css +0 -1
- package/dist/assets/IconTile.stories-BlATLdyV.js +0 -88
- package/dist/assets/NumberField-FWK2ErPL.js +0 -6
- package/dist/assets/OnboardingTooltip-CsmroJZe.css +0 -1
- package/dist/assets/OnboardingTour-D0hvRI8H.css +0 -1
- package/dist/assets/PasswordField-Bp2beBoD.js +0 -6
- package/dist/assets/TextField--Ctd_eHi.js +0 -6
- package/dist/assets/TokyoUINotesWithPad-D6VO7CbF.js +0 -1
- package/dist/assets/createRequiredContext-5BPDYgIa.js +0 -241
- package/dist/assets/fonts-explorer.stories-Bp_9af2z.js +0 -130
- package/dist/assets/getTokenVar-B8jDl0Ui.js +0 -1
- package/dist/assets/useHostname-By9vNKnQ.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as L,d as ne,e as x,f,g as s,h as F}from"./DropdownMenu-CB6xg9YD.js";import{B as oe}from"./Button-DS2bg8PO.js";import{I as v}from"./Icon-kphbe0CE.js";import{F as ko,a as Bo}from"./TokyoUISettings-DhHyIlWv.js";import{F as vo}from"./TokyoUIMessages-0is9ybHR.js";import{C as Ie}from"./CountryFlag-BKEpYyWK.js";import{A as je}from"./Avatar-Dlo9b83e.js";import{F as O}from"./TokyoUIEmojiFrowning-Bztw_WuD.js";import{D as Fe}from"./Dialog-DaLOtRn0.js";import{D as xo}from"./Divider-WS0wDfQZ.js";import{I as Ro}from"./IconButton-D4lbFOKH.js";import{c as So}from"./OnboardingTour-m4V6QT-X.js";import"./preload-helper-Dp1pzeXC.js";import"./TokyoUIChevronRight-UHMBQAxX.js";import"./TokyoUICheck-Cg3ZJnmD.js";import"./breakpoints-BfMlrtxE.js";import"./useOpenInteractionType-B976GY1b.js";import"./filterAttributesPassedByRadixUIAtRuntime-B7QTVwVw.js";import"./VisuallyHidden-GZBFKPVs.js";import"./index-CUvrBGJo.js";import"./useControllableState-DQg81cp5.js";import"./useStableCallback-662ysKf2.js";import"./message-DiUVdAQd.js";import"./componentNames-hc9KR2nX.js";import"./render-icon-DZ6hllTG.js";import"./ButtonBase-sV1YoG7h.js";import"./Spinner-BG27lVzS.js";import"./useMergeRefs-CL5DIjXV.js";import"./useHostname-By9vNKnQ.js";import"./index-CC6DAVyL.js";import"./text-accent-C5-m5mrW.js";import"./constants-5om8Ptru.js";import"./DialogCloseButton-CDDeMFIL.js";import"./TokyoUIClose-DoJfpCh8.js";import"./shared-strings-ZccoNgto.js";import"./OnboardingTooltip-DdKwzkB-.js";import"./Text-C8DrHLQF.js";import"./text-centered-D70wah8Y.js";import"./Heading-BPJGe0Bg.js";import"./index-DOwxXd3L.js";const{fn:m,expect:t,userEvent:i,waitFor:r,within:ie}=__STORYBOOK_MODULE_TEST__,u={onOpenChange:m(),items:{transferBalance:m(),addExtraHours:m(),currency:m(),language:m()}},gi={title:"Components/DropdownMenu",component:F,subcomponents:{DropdownMenuItem:s,DropdownMenuGroup:f,DropdownSubmenu:x,DropdownMenuRadioGroup:ne,DropdownMenuRadioItem:L,DropdownMenuCheckboxItem:V,DropdownMenuSelect:A,DropdownMenuSelectOption:h},parameters:{preventIframeFromScrollingParent:!0,layout:"fullscreen",docs:{story:{inline:!1,height:400,autoplay:!1}}},decorators:[(e,n)=>a.jsx("div",{style:{height:n.parameters.containerHeight||"100%",padding:24,display:"flex",justifyContent:"center",alignItems:"center"},children:a.jsx(e,{})})],args:{onOpenChange:u.onOpenChange,trigger:a.jsx(oe,{children:"Settings"}),children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),a.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours})]})}},re={tags:["!autodocs","!dev"],args:{defaultOpen:!0}},R=t.anything(),W={play:async({canvas:e,step:n,args:o})=>{await n("Initially closed",async()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()}),t(o.onOpenChange).toHaveBeenLastCalledWith(!0,R)}),await n("Click outside to close the menu",async()=>{await i.click(document.body),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)}),await n("Open dropdown again",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Transfer balance"',async()=>{await i.click(e.getByRole("menuitem",{name:"Transfer balance"})),t(u.items.transferBalance).toHaveBeenCalled(),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(u.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}},se={tags:["!autodocs"],args:{defaultOpen:!0},play:async({canvas:e,step:n})=>{await n("Initially open",async()=>{await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n("Click outside to close the menu",async()=>{await i.click(document.body),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(u.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}};let Me;const E={decorators:[(e,n)=>{const[o,l]=b.useState(!!n.args.open);Me=l;const c=(d,k)=>{var g,B;l(d),(B=(g=n.args).onOpenChange)==null||B.call(g,d,k)};return a.jsx(e,{args:{...n.args,open:o,onOpenChange:c}})}],args:{open:!1},play:async({canvas:e,step:n,args:o})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()}),t(o.onOpenChange).toHaveBeenLastCalledWith(!0,R)}),await n("Click outside to close the menu",async()=>{await i.click(document.body),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)}),await n("Open dropdown via open prop",async()=>{u.onOpenChange.mockClear(),Me(!0),await r(()=>{t(e.queryByRole("menu")).toBeVisible()}),t(o.onOpenChange).not.toHaveBeenCalled()}),await n("Close dropdown via open prop",async()=>{u.onOpenChange.mockClear(),Me(!1),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(o.onOpenChange).not.toHaveBeenCalled()})}},le={...E,tags:["!autodocs"],args:{...E.args,open:!0},play:async({canvas:e,step:n,args:o})=>{await n("Initially open",async()=>{await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n("Click outside to close the menu",async()=>{await i.click(document.body),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()}),t(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}},U={parameters:{containerHeight:"500px"},args:{side:"top",align:"start",defaultOpen:!0}},ce={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end",defaultOpen:!0}},ue={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},de={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},me={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},pe={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},ge={tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},ye={tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},z={args:{children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),a.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours,disabled:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Add extra hours"',async()=>{u.onOpenChange.mockClear();const o=e.getByRole("menuitem",{name:"Add extra hours"});t(o).toHaveAttribute("aria-disabled","true"),await i.click(o),t(u.items.addExtraHours).not.toHaveBeenCalled(),t(u.onOpenChange).not.toHaveBeenCalled(),t(e.queryByRole("menu")).toBeVisible()})}},P={args:{trigger:a.jsx(oe,{children:"Language"}),children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Español",description:"Spanish"}),a.jsx(s,{label:"Українська",description:"Ukrainian"})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Language"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n("Verify items a11y names and descriptions",async()=>{const o=e.getByRole("menuitem",{name:"Español"});t(o).toHaveAccessibleName("Español"),t(o).toHaveAccessibleDescription("Spanish");const l=e.getByRole("menuitem",{name:"Українська"});t(l).toHaveAccessibleName("Українська"),t(l).toHaveAccessibleDescription("Ukrainian")})}},G={args:{defaultOpen:!0,children:a.jsxs(a.Fragment,{children:[a.jsxs(f,{label:"Region",children:[a.jsx(s,{label:"Currency"}),a.jsx(s,{label:"Language"}),a.jsx(s,{label:"Time zone"})]}),a.jsxs(f,{label:"Subscription",children:[a.jsx(s,{label:"Transfer balance"}),a.jsx(s,{label:"Add extra hours"})]})]})}},K={args:{defaultOpen:!0,children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"User profile"}),a.jsx(s,{label:"Payments & subscriptions"}),a.jsx(xo,{}),a.jsx(s,{label:"Logout"})]})}},Y={parameters:{docs:{story:{height:600}}},args:{defaultOpen:!0,children:a.jsxs(a.Fragment,{children:[a.jsxs(f,{label:"Icons",children:[a.jsx(s,{leadingElement:a.jsx(v,{svg:ko,size:"24"}),label:"Reschedule"}),a.jsx(s,{leadingElement:a.jsx(v,{svg:vo,size:"24"}),label:"Message tutor"})]}),a.jsxs(f,{label:"Flags",children:[a.jsx(s,{leadingElement:a.jsx(Ie,{code:"es",alt:"",size:"medium"}),label:"Spain"}),a.jsx(s,{leadingElement:a.jsx(Ie,{code:"ua",alt:"",size:"medium"}),label:"Ukraine"})]}),a.jsxs(f,{label:"Avatars",children:[a.jsx(s,{leadingElement:a.jsx(je,{size:"24"}),label:"Kobe B."}),a.jsx(s,{leadingElement:a.jsx(je,{size:"24"}),label:"Jenny R."})]})]})}},Ae=b.forwardRef(function({to:n,...o},l){return a.jsx("a",{href:n,...o,ref:l})});Ae.displayName="Link";const S={findATutor:m(e=>{e.preventDefault()}),becomeATutor:m(e=>{e.preventDefault()}),myLessons:m(e=>{e.preventDefault()}),referAFriend:m(e=>{e.preventDefault()})},_={args:{trigger:a.jsx(oe,{children:"Links"}),children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Find a Tutor",onClick:S.findATutor,as:a.jsx("a",{href:"/en/online/english-tutors"})}),a.jsx(s,{label:"Become a Tutor",onClick:S.becomeATutor,as:a.jsx("a",{href:"/en/teach"}),disabled:!0}),a.jsx(s,{label:"My Lessons",onClick:S.myLessons,as:a.jsx(Ae,{to:"/en/lessons"})}),a.jsx(s,{label:"Refer a Friend",onClick:S.referAFriend,as:a.jsx(Ae,{to:"/en/referral"}),disabled:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Links"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n("Assert links are rendered correctly",async()=>{const o=e.getByRole("menuitem",{name:"Find a Tutor"});t(o.tagName).toBe("A"),t(o).toHaveAttribute("href","/en/online/english-tutors");const l=e.getByRole("menuitem",{name:"Become a Tutor"});t(l.tagName).toBe("A"),t(l).toHaveAttribute("href","/en/teach"),t(l).toHaveAttribute("aria-disabled","true");const c=e.getByRole("menuitem",{name:"My Lessons"});t(c.tagName).toBe("A"),t(c).toHaveAttribute("href","/en/lessons");const d=e.getByRole("menuitem",{name:"Refer a Friend"});t(d.tagName).toBe("A"),t(d).toHaveAttribute("href","/en/referral"),t(d).toHaveAttribute("aria-disabled","true")}),await n('Click on "Find a Tutor"',async()=>{const o=e.getByRole("menuitem",{name:"Find a Tutor"});await i.click(o),t(S.findATutor).toHaveBeenCalled()}),await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Links"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Become a Tutor"',async()=>{const o=e.getByRole("menuitem",{name:"Become a Tutor"});await i.click(o),t(S.becomeATutor).not.toHaveBeenCalled(),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "My Lessons"',async()=>{const o=e.getByRole("menuitem",{name:"My Lessons"});await i.click(o),t(S.myLessons).toHaveBeenCalled(),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()})}),await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Links"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Refer a Friend"',async()=>{const o=e.getByRole("menuitem",{name:"Refer a Friend"});await i.click(o),t(S.referAFriend).not.toHaveBeenCalled()})}},C={dayOfTheWeek:m(),timeOfTheDay:m(),frequency:m()},$={args:{children:a.jsxs(a.Fragment,{children:[a.jsx(f,{label:"Day of the week",children:a.jsx(ne,{defaultValue:"mon",onValueChange:C.dayOfTheWeek,items:[{label:"Monday",value:"mon"},{label:"Tuesday",value:"tue"},{label:"Wednesday",value:"wed"},{label:"Thursday",value:"thu"},{label:"Friday",value:"fri"},{label:"Saturday",value:"sat",disabled:!0},{label:"Sunday",value:"sun",disabled:!0}]})}),a.jsx(f,{label:"Time of the day",children:a.jsxs(ne,{onValueChange:C.timeOfTheDay,children:[a.jsx(L,{label:"Morning",value:"morning"}),a.jsx(L,{label:"Afternoon",value:"afternoon"})]})}),a.jsx(f,{label:"Frequency",children:a.jsxs(ne,{value:"once",onValueChange:C.frequency,disabled:!0,children:[a.jsx(L,{label:"Once",value:"once"}),a.jsx(L,{label:"Weekly",value:"weekly"})]})})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitemradio",{name:"Monday"}),l=e.getByRole("menuitemradio",{name:"Tuesday"}),c=e.getByRole("menuitemradio",{name:"Saturday"});await n("Day of the week: default value is selected",async()=>{t(o).toHaveAttribute("aria-checked","true")}),await n('Click on "Tuesday"',async()=>{await i.click(l),t(C.dayOfTheWeek).toHaveBeenCalledWith("tue"),await r(()=>{t(o).toHaveAttribute("aria-checked","false"),t(l).toHaveAttribute("aria-checked","true")})}),await n('Click on "Saturday"',async()=>{C.dayOfTheWeek.mockClear(),await i.click(c),t(C.dayOfTheWeek).not.toHaveBeenCalled(),await r(()=>{t(l).toHaveAttribute("aria-checked","true")})});const d=e.getByRole("menuitemradio",{name:"Morning"}),k=e.getByRole("menuitemradio",{name:"Afternoon"});await n("Time of the day: none is selected",async()=>{t(d).toHaveAttribute("aria-checked","false"),t(k).toHaveAttribute("aria-checked","false")}),await n('Click on "Morning"',async()=>{await i.click(d),t(C.timeOfTheDay).toHaveBeenCalledWith("morning"),await r(()=>{t(d).toHaveAttribute("aria-checked","true")})});const g=e.getByRole("menuitemradio",{name:"Once"}),B=e.getByRole("menuitemradio",{name:"Weekly"});await n("Frequency: everything is disabled, once is selected",async()=>{t(g).toHaveAttribute("aria-disabled","true"),t(B).toHaveAttribute("aria-disabled","true"),t(g).toHaveAttribute("aria-checked","true"),t(B).toHaveAttribute("aria-checked","false")}),await n('Click on "Weekly"',async()=>{await i.click(B),t(C.frequency).not.toHaveBeenCalled(),await r(()=>{t(g).toHaveAttribute("aria-checked","true")})})}},D={email:m(),sms:m(),push:m(),alerts:m()},J={args:{children:a.jsxs(a.Fragment,{children:[a.jsx(V,{label:"Email notifications",onCheckedChange:D.email,defaultChecked:!0}),a.jsx(V,{label:"SMS notifications",onCheckedChange:D.sms}),a.jsx(V,{label:"Push notifications",onCheckedChange:D.push,disabled:!0}),a.jsx(V,{label:"System alerts (required)",onCheckedChange:D.alerts,disabled:!0,checked:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitemcheckbox",{name:"Email notifications"}),l=e.getByRole("menuitemcheckbox",{name:"SMS notifications"}),c=e.getByRole("menuitemcheckbox",{name:"Push notifications"}),d=e.getByRole("menuitemcheckbox",{name:"System alerts (required)"});await n("Email notifications is checked by default",async()=>{t(o).toHaveAttribute("aria-checked","true")}),await n('Uncheck "Email notifications"',async()=>{await i.click(o),t(D.email).toHaveBeenCalledWith(!1,R),await r(()=>{t(o).toHaveAttribute("aria-checked","false")})}),await n('"SMS notifications" is not checked',async()=>{t(l).toHaveAttribute("aria-checked","false")}),await n('Check "SMS notifications"',async()=>{await i.click(l),t(D.sms).toHaveBeenCalledWith(!0,R),await r(()=>{t(l).toHaveAttribute("aria-checked","true")})}),await n('"Push notifications" is disabled and not checked',async()=>{t(c).toHaveAttribute("aria-disabled","true"),t(c).toHaveAttribute("aria-checked","false")}),await n('Click on "Push notifications"',async()=>{await i.click(c),t(D.push).not.toHaveBeenCalled(),await r(()=>{t(c).toHaveAttribute("aria-checked","false")})}),await n('"System alerts (required)" is disabled and checked',async()=>{t(d).toHaveAttribute("aria-disabled","true"),t(d).toHaveAttribute("aria-checked","true")}),await n('Click on "System alerts (required)"',async()=>{await i.click(d),t(D.alerts).not.toHaveBeenCalled(),await r(()=>{t(d).toHaveAttribute("aria-checked","true")})})}},N={dayOfTheWeek:m(),timeOfTheDay:m(),frequency:m()},I=e=>{const[n,o]=b.useState("mon"),[l,c]=b.useState(),d=g=>{o(g),N.dayOfTheWeek(g)},k=g=>{c(g),N.timeOfTheDay(g)};return a.jsxs(F,{...e,children:[a.jsx(A,{label:"Day of the week",value:n,onValueChange:d,items:[{label:"Monday",value:"mon"},{label:"Tuesday",value:"tue"},{label:"Wednesday",value:"wed"},{label:"Thursday",value:"thu"},{label:"Friday",value:"fri"},{label:"Saturday",value:"sat",disabled:!0},{label:"Sunday",value:"sun",disabled:!0}]}),a.jsxs(A,{label:"Time of the day",defaultValue:l,onValueChange:k,children:[a.jsx(h,{value:"morning",label:"Morning"}),a.jsx(h,{value:"afternoon",label:"Afternoon"})]}),a.jsxs(A,{label:"Frequency",onValueChange:N.frequency,disabled:!0,children:[a.jsx(h,{label:"Once",value:"once"}),a.jsx(h,{label:"Weekly",value:"weekly"})]})]})};I.play=async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitem",{name:/^Day of the week/});await n("Day of the week: default value is selected",async()=>{t(o).toHaveAccessibleName(/Selected: Monday$/)}),await n("Open day of the week submenu",async()=>{await i.hover(o),await r(()=>{t(e.queryByRole("menu",{name:/^Day of the week/})).toBeVisible()})}),await n('Click on "Tuesday"',async()=>{await i.click(e.getByRole("menuitemradio",{name:"Tuesday"})),t(N.dayOfTheWeek).toHaveBeenCalledWith("tue"),await r(()=>{t(e.queryByRole("menu",{name:/^Day of the week/,hidden:!0})).not.toBeVisible(),t(o).toHaveAccessibleName(/Selected: Tuesday$/)})});const l=e.getByRole("menuitem",{name:/^Time of the day/});await n("Time of the day: nothing is selected",async()=>{t(l).toHaveAccessibleName("Time of the day")}),await n("Open time of the day submenu",async()=>{l.focus(),await i.keyboard(" "),await r(()=>{t(e.queryByRole("menu",{name:/^Time of the day/})).toBeVisible()})}),await n('Click on "Morning"',async()=>{await i.click(e.getByRole("menuitemradio",{name:"Morning"})),t(N.timeOfTheDay).toHaveBeenCalledWith("morning"),await r(()=>{t(e.queryByRole("menu",{name:/^Time of the day/,hidden:!0})).not.toBeVisible(),t(l).toHaveAccessibleName(/Selected: Morning$/)})}),await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n("Frequency is disabled",async()=>{const c=e.getByRole("menuitem",{name:"Frequency"});t(c).toHaveAttribute("aria-disabled","true"),await i.click(c,{pointerEventsCheck:0}),t(N.frequency).not.toHaveBeenCalled(),await r(()=>{t(e.queryByRole("menu",{name:"Frequency",hidden:!0})).not.toBeVisible()})})};const y={render:function({align:n,side:o,...l}){return a.jsx(F,{...l,defaultOpen:!0,children:a.jsxs(A,{label:"Time of the day",side:o,align:n,defaultOpen:!0,children:[a.jsx(h,{value:"morning",label:"Morning"}),a.jsx(h,{value:"afternoon",label:"Afternoon"})]})})},parameters:{containerHeight:"500px"},args:{side:"top",align:"start"}},we={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end"}},be={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},he={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},fe={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},ke={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},Be={render:y.render,tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},ve={render:y.render,tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},H={args:{children:a.jsxs(a.Fragment,{children:[a.jsxs(x,{label:"Region",children:[a.jsx(s,{label:"Currency"}),a.jsx(s,{label:"Language"}),a.jsx(s,{label:"Time zone"})]}),a.jsxs(x,{label:"Subscription",children:[a.jsx(s,{label:"Transfer balance"}),a.jsx(s,{label:"Add extra hours"})]}),a.jsxs(x,{label:"Integrations",disabled:!0,children:[a.jsx(s,{label:"Connect calendar"}),a.jsx(s,{label:"Slack integration"}),a.jsx(s,{label:"Email sync"})]})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitem",{name:"Region"});await n("Region submenu opens on hover",async()=>{await i.hover(o),await r(()=>{t(e.queryByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Region submenu closes on hover out",async()=>{await i.unhover(o),await r(()=>{t(e.queryByRole("menu",{name:"Region"})).not.toBeInTheDocument()})}),await n("Integrations submenu is disabled",async()=>{const l=e.getByRole("menuitem",{name:"Integrations"});t(l).toHaveAttribute("aria-disabled","true"),await i.click(l),await r(()=>{t(e.queryByRole("menu",{name:"Integrations"})).not.toBeInTheDocument()})})}},w={render:function({align:n,side:o,...l}){return a.jsx(F,{...l,defaultOpen:!0,children:a.jsxs(x,{label:"Region",side:o,align:n,defaultOpen:!0,children:[a.jsx(s,{label:"Currency"}),a.jsx(s,{label:"Language"}),a.jsx(s,{label:"Time zone"})]})})},parameters:{containerHeight:"500px"},args:{side:"top",align:"start"}},xe={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end"}},Re={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},Se={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},Ce={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},De={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},Oe={render:w.render,tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},Te={render:w.render,tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},{Provider:ho,Step:T}=So();ho.displayName="Tour.Provider";T.displayName="Tour.Step";const Q={parameters:{docs:{source:{type:"dynamic"}}},decorators:[e=>{const[n,o]=b.useState(0),l=()=>o(n+1);return a.jsxs(a.Fragment,{children:[a.jsx(e,{},n),a.jsx("div",{style:{position:"fixed",left:0,bottom:0,margin:8},children:a.jsx(oe,{variant:"ghost",size:"small",onClick:l,children:"Reset story"})})]})}],render:function(){const[n,o]=b.useState(!1),[l,c]=b.useState(!1),[d,k]=b.useState(!1),g=fo=>{switch(fo){case 1:o(!0);return;case 3:c(!0);return;case 5:k(!0);return}},B=()=>{o(!1),c(!1),k(!1)};return a.jsx(ho,{totalSteps:6,onStepChange:g,onComplete:B,onClose:B,children:a.jsx(T,{step:0,title:"New settings menu",text:"All settings are now in one place.",children:a.jsxs(F,{open:n,onOpenChange:o,trigger:a.jsx(Ro,{svg:Bo,variant:"ghost",assistiveText:"Settings"}),children:[a.jsx(T,{step:1,title:"Transfer balance",text:"You can now transfer your balance to another tutor.",side:"right",children:a.jsx(s,{label:"Transfer balance"})}),a.jsx(s,{label:"Add extra hours"}),a.jsx(T,{step:2,title:"Region",text:"Region settings are grouped together.",side:"top",children:a.jsxs(x,{label:"Region",keepMounted:!0,open:l,onOpenChange:c,children:[a.jsx(s,{label:"Language"}),a.jsx(T,{step:3,title:"Time zone",text:"You can now select your time zone.",side:"right",children:a.jsx(s,{label:"Time zone"})})]})}),a.jsx(T,{step:4,title:"Currency",text:"Currency settings moved here.",side:"right",children:a.jsxs(A,{open:d,onOpenChange:k,defaultValue:"USD",label:"Currency",children:[a.jsx(h,{value:"USD",label:"US Dollar"}),a.jsx(h,{value:"EUR",label:"Euro"}),a.jsx(T,{step:5,title:"New currency!",text:"Pay and receive payments in british pounds.",children:a.jsx(h,{value:"GBP",label:"British Pound"})})]})})]})})})},play:async({canvas:e,step:n})=>{await n("Tour tooltip should be visible",async()=>{await r(()=>{t(e.getByRole("dialog",{name:"New settings menu"})).toBeVisible()})}),await n("Click Next to advance to second step",async()=>{await i.click(e.getByRole("button",{name:"Next"})),await r(()=>{t(e.getByRole("dialog",{name:"Transfer balance"})).toBeVisible(),t(e.getByRole("menu")).toBeVisible()})}),await n("Click Next to advance to third step",async()=>{const o=ie(e.getByRole("dialog",{name:"Transfer balance"}));await i.click(o.getByRole("button",{name:"Next"})),await r(()=>{t(e.getByRole("dialog",{name:"Region"})).toBeVisible()})}),await n("Click Next to advance to fourth step",async()=>{const o=ie(e.getByRole("dialog",{name:"Region"}));await i.click(o.getByRole("button",{name:"Next"})),await r(()=>{t(e.getByRole("dialog",{name:"Time zone"})).toBeVisible(),t(e.getByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Click Next to advance to fifth step",async()=>{const o=ie(e.getByRole("dialog",{name:"Time zone"}));await i.click(o.getByRole("button",{name:"Next"})),await r(()=>{t(e.getByRole("dialog",{name:"Currency"})).toBeVisible()})}),await n("Click Next to advance to the last step",async()=>{const o=ie(e.getByRole("dialog",{name:"Currency"}));await i.click(o.getByRole("button",{name:"Next"})),await r(()=>{t(e.getByRole("dialog",{name:"New currency!"})).toBeVisible(),t(e.getByRole("menu",{name:/Currency/})).toBeVisible()})}),await i.click(e.getByRole("button",{name:"Reset story"}))}},Ee=e=>{if(!e)return!1;const{top:n,left:o,bottom:l,right:c}=e.getBoundingClientRect();return!(n>=window.innerHeight||l<=0||o>=window.innerWidth||c<=0)},X={args:{keepMounted:!0,children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Transfer balance"}),a.jsx(s,{label:"Add extra hours"}),a.jsxs(x,{label:"Region",keepMounted:!0,children:[a.jsx(s,{label:"Currency"}),a.jsx(s,{label:"Language"}),a.jsx(s,{label:"Time zone"})]})]})},play:async({canvas:e,step:n})=>{const o=await e.findByRole("menu",{name:"Settings",hidden:!0}),l=await e.findByRole("menu",{name:"Region",hidden:!0});await n("Menus are mounted, but not visible",async()=>{t(o).toBeInTheDocument(),t(o).not.toBeVisible(),t(l).toBeInTheDocument(),t(l).not.toBeVisible()}),await n("Open the menu",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(o).toBeVisible()})}),await n("Submenu is visible",async()=>{await i.click(e.getByRole("menuitem",{name:"Region"})),await r(()=>{t(l).toBeVisible()})}),await n("Close the submenu.",async()=>{await i.keyboard("{Escape}"),await r(()=>{t(l).not.toBeVisible()}),t(l).toBeInTheDocument()}),await n("Close the menu.",async()=>{await i.keyboard("{Escape}"),await r(()=>{t(o).not.toBeVisible()}),t(o).toBeInTheDocument()})}},M={args:H.args,globals:{viewport:{value:"narrow-l",isRotated:!1}},parameters:{layout:"centered"},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Region"',async()=>{await i.click(e.getByRole("menuitem",{name:"Region"})),await r(async()=>{t(Ee(e.queryByRole("menu",{name:"Settings"})),"Main menu should be hidden").toBe(!1),t(Ee(e.queryByRole("menu",{name:"Region"})),"Submenu should be visible").toBe(!0)})}),await n("Tap away to return to main menu",async()=>{const o=e.getByRole("menu",{name:"Region"}).closest("[data-base-ui-portal]").querySelector("[data-backdrop]");await i.click(o),await r(async()=>{t(Ee(e.queryByRole("menu",{name:"Region"})),"Submenu should be hidden").toBe(!1),t(Ee(e.queryByRole("menu",{name:"Settings"})),"Main menu should be visible").toBe(!0)})}),await n("Tap away to close menu",async()=>{await i.click(document.querySelector("[data-backdrop]")),await r(async()=>{t(e.queryByRole("menu")).not.toBeInTheDocument()})})}},j={args:{children:a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),a.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours,disabled:!0}),a.jsxs(x,{label:"Region",children:[a.jsx(s,{label:"Currency",onClick:u.items.currency}),a.jsx(s,{label:"Language",onClick:u.items.language}),a.jsx(s,{label:"Time zone"})]})]})},play:async({canvas:e,step:n})=>{const o=e.getByRole("button",{name:"Settings"});await n("Focus on the trigger element",async()=>{o.focus()}),await n("Open the menu via Enter key. First item should be focused",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.queryByRole("menu")).toBeVisible(),t(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Close the menu via Escape key. Trigger should be focused",async()=>{await i.keyboard("{Escape}"),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument(),t(o).toHaveFocus()})}),await n("Open the menu via Space key. First item should be focused",async()=>{await i.keyboard(" "),await r(()=>{t(e.queryByRole("menu")).toBeVisible(),t(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Select the first item via Enter key. Menu should be closed and trigger should be focused",async()=>{await i.keyboard("{Enter}"),t(u.items.transferBalance).toHaveBeenCalled(),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument(),t(o).toHaveFocus()})}),await n("Open the menu via Enter key. First item should be focused",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.queryByRole("menu")).toBeVisible(),t(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Navigate through the menu using Arrow keys",async()=>{await i.keyboard("{ArrowDown}"),await r(()=>{t(e.getByRole("menuitem",{name:"Add extra hours"})).toHaveFocus()}),await i.keyboard("{ArrowDown}"),await r(()=>{t(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()}),await i.keyboard("{ArrowDown}"),await r(()=>{t(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()}),await i.keyboard("{ArrowUp}"),await i.keyboard("{ArrowUp}"),await r(()=>{t(e.getByRole("menuitem",{name:"Add extra hours"})).toHaveFocus()})}),await n("Enter key does nothing for disabled item",async()=>{await i.keyboard("{Enter}"),t(u.items.addExtraHours).not.toHaveBeenCalled()}),await n("Space key does nothing for disabled item",async()=>{await i.keyboard(" "),t(u.items.addExtraHours).not.toHaveBeenCalled()}),await n("Navigate to submenu trigger using Arrow down key",async()=>{await i.keyboard("{ArrowDown}"),await r(()=>{t(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open the submenu via Enter key. First item should be focused",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate back to main menu using Arrow left key. Submenu trigger should be focused",async()=>{await i.keyboard("{ArrowLeft}"),await r(()=>{t(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open submenu using Arrow right key. First item should be focused",async()=>{await i.keyboard("{ArrowRight}"),await r(()=>{t(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate back to main menu using Escape key. Submenu trigger should be focused",async()=>{await i.keyboard("{Escape}"),await r(()=>{t(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open submenu using Enter key. First item should be focused",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Close the menu via Tab key. Trigger should be focused",async()=>{await i.keyboard("{Tab}"),await r(()=>{t(e.queryByRole("menu")).not.toBeInTheDocument(),t(o).toHaveFocus()})})}},He={...j,globals:M.globals,parameters:M.parameters,tags:["!autodocs"]},Z={args:{defaultOpen:!0,children:a.jsx(a.Fragment,{children:Array.from({length:100}).map((e,n)=>a.jsx(s,{label:`Item ${n+1}`},n))})}},p=Array.from({length:5}).map(()=>"I won't use long labels for menu items.").join(" "),ee={args:{defaultOpen:!0,children:a.jsxs(f,{label:p,children:[a.jsx(s,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p}),a.jsx(x,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p,children:a.jsx(s,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p})}),a.jsx(A,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p,defaultValue:"1",children:a.jsx(h,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p,value:"1"})}),a.jsx(V,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p}),a.jsx(ne,{defaultValue:"1",children:a.jsx(L,{leadingElement:a.jsx(v,{size:"24",svg:O}),label:p,description:p,value:"1"})})]})}},ae={args:H.args,render:function(n){const[o,l]=b.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(oe,{onClick:()=>l(!0),children:"Open dialog"}),a.jsx(Fe,{open:o,onClose:()=>l(!1),title:"Dialog",description:void 0,children:a.jsx(F,{...n})})]})},play:async({canvas:e,step:n})=>{await n("Open dialog",async()=>{await i.click(e.getByRole("button",{name:"Open dialog"})),await r(()=>{t(e.getByRole("dialog",{name:"Dialog"})).toBeVisible()})}),await n("Open dropdown with mouse",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.queryByRole("menu",{name:"Settings"})).toBeVisible()})}),await n("Open Region submenu with mouse",async()=>{await i.click(e.getByRole("menuitem",{name:"Region"})),await r(()=>{t(e.queryByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Click on Currency item",async()=>{await i.click(e.getByRole("menuitem",{name:"Currency"})),await r(()=>{t(e.queryByRole("menu",{name:"Settings"})).not.toBeInTheDocument()})}),await n("Open dropdown with keyboard",async()=>{e.getByRole("button",{name:"Settings"}).focus(),await i.keyboard("{Enter}"),await r(()=>{t(e.queryByRole("menu",{name:"Settings"})).toBeVisible(),t(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open Region submenu with keyboard",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.queryByRole("menu",{name:"Region"})).toBeVisible(),t(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate to Language item with keyboard",async()=>{await i.keyboard("{ArrowDown}"),await r(()=>{t(e.getByRole("menuitem",{name:"Language"})).toHaveFocus()})}),await n("Select Language item with keyboard",async()=>{await i.keyboard("{Enter}"),await r(()=>{t(e.queryByRole("menu",{name:"Settings"})).not.toBeInTheDocument()})}),await n("Close dialog",async()=>{await i.keyboard("{Escape}"),await r(()=>{t(e.queryByRole("dialog",{name:"Dialog"})).not.toBeInTheDocument()})})}},q={render:function(n){const[o,l]=b.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(F,{...n,children:a.jsx(s,{label:"Open dialog",onClick:()=>l(!0)})}),a.jsx(Fe,{title:"Dialog",description:void 0,open:o,onClose:()=>l(!1),children:"Dialog content"})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await i.click(e.getByRole("button",{name:"Settings"})),await r(()=>{t(e.getByRole("menu")).toBeVisible()})}),await n("Open dialog",async()=>{await i.click(e.getByRole("menuitem",{name:"Open dialog"})),await r(()=>{t(e.getByRole("dialog",{name:"Dialog"})).toBeVisible()})}),await n("Close dialog",async()=>{await i.keyboard("{Escape}")})}},Co=()=>{const[e,n]=b.useState(!1);return a.jsxs(a.Fragment,{children:[a.jsx(s,{label:"Open dialog",onClick:()=>n(!0)}),a.jsx(Fe,{title:"Dialog",description:void 0,open:e,onClose:()=>n(!1),children:"Dialog content"})]})},te={args:{keepMounted:!0,children:a.jsx(Co,{})},play:q.play};var qe,Ve,Le;re.parameters={...re.parameters,docs:{...(qe=re.parameters)==null?void 0:qe.docs,source:{originalSource:`{
|
|
1
|
+
import{j as t,r as b}from"./iframe-B_74HtSc.js";import{D as h,a as F,b as V,c as L,d as N,e as x,f,g as s,h as O}from"./DropdownMenu-CgNvtJ2F.js";import{B as re}from"./Button-C0Um_QuO.js";import{I as v}from"./Icon-CC0yjdx9.js";import{F as Co,a as Do}from"./TokyoUISettings-BbgnUEy1.js";import{F as Oo}from"./TokyoUIMessages-hZLnK87p.js";import{C as je}from"./CountryFlag-D40CtNEa.js";import{A as qe}from"./Avatar-Die_4zu0.js";import{F as T}from"./TokyoUIEmojiFrowning-DkxcBN-M.js";import{D as Ie}from"./Dialog-CJQmu6iz.js";import{D as To}from"./Divider-j3vJV734.js";import{I as Eo}from"./IconButton-BpjNyYgD.js";import{c as Mo}from"./OnboardingTour-B5gEod5H.js";import"./preload-helper-Dp1pzeXC.js";import"./TokyoUIChevronRight-DRhJYmWB.js";import"./TokyoUICheck-DQLX_x10.js";import"./breakpoints-BfMlrtxE.js";import"./useOpenInteractionType-D3sASQWj.js";import"./filterAttributesPassedByRadixUIAtRuntime-B7QTVwVw.js";import"./VisuallyHidden-fvo3PSUE.js";import"./index-DIqvfT2b.js";import"./useControllableState-BB4EHwEp.js";import"./useStableCallback-D5P5kDx5.js";import"./message-DJT5rp5J.js";import"./componentNames-hc9KR2nX.js";import"./render-icon-MT6RlyNs.js";import"./ButtonBase-HkSfLFbE.js";import"./Spinner-8-RB4YZR.js";import"./useMergeRefs-Caz9hOck.js";import"./useHostname-CbpnzdHv.js";import"./index-CC6DAVyL.js";import"./text-accent-BQ9POoE5.js";import"./constants-5om8Ptru.js";import"./DialogCloseButton-D5YliaRd.js";import"./store-B0wM9Zg8.js";import"./TokyoUIClose-BfMyMrDa.js";import"./shared-strings-ThL9KyH0.js";import"./OnboardingTooltip-DzQhJzWc.js";import"./Text-DvShrljd.js";import"./text-centered-BEaaxMgl.js";import"./Heading-Cj8Si45g.js";import"./index-W3BB_3go.js";const{fn:m,expect:a,userEvent:r,waitFor:i,within:ie}=__STORYBOOK_MODULE_TEST__,u={onOpenChange:m(),items:{transferBalance:m(),addExtraHours:m(),currency:m(),language:m()}},Br={title:"Components/DropdownMenu",component:O,subcomponents:{DropdownMenuItem:s,DropdownMenuGroup:f,DropdownSubmenu:x,DropdownMenuRadioGroup:N,DropdownMenuRadioItem:L,DropdownMenuCheckboxItem:V,DropdownMenuSelect:F,DropdownMenuSelectOption:h},parameters:{preventIframeFromScrollingParent:!0,layout:"fullscreen",docs:{story:{inline:!1,height:400,autoplay:!1}}},decorators:[(e,n)=>t.jsx("div",{style:{height:n.parameters.containerHeight||"100%",padding:24,display:"flex",justifyContent:"center",alignItems:"center"},children:t.jsx(e,{})})],args:{onOpenChange:u.onOpenChange,trigger:t.jsx(re,{children:"Settings"}),children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),t.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours})]})}},se={tags:["!autodocs","!dev"],args:{defaultOpen:!0}},R=a.anything(),U={play:async({canvas:e,step:n,args:o})=>{await n("Initially closed",async()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()}),a(o.onOpenChange).toHaveBeenLastCalledWith(!0,R)}),await n("Click outside to close the menu",async()=>{await r.click(document.body),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)}),await n("Open dropdown again",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Transfer balance"',async()=>{await r.click(e.getByRole("menuitem",{name:"Transfer balance"})),a(u.items.transferBalance).toHaveBeenCalled(),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(u.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}},le={tags:["!autodocs"],args:{defaultOpen:!0},play:async({canvas:e,step:n})=>{await n("Initially open",async()=>{await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n("Click outside to close the menu",async()=>{await r.click(document.body),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(u.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}};let Ae;const M={decorators:[(e,n)=>{const[o,l]=b.useState(!!n.args.open);Ae=l;const c=(d,k)=>{var g,B;l(d),(B=(g=n.args).onOpenChange)==null||B.call(g,d,k)};return t.jsx(e,{args:{...n.args,open:o,onOpenChange:c}})}],args:{open:!1},play:async({canvas:e,step:n,args:o})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()}),a(o.onOpenChange).toHaveBeenLastCalledWith(!0,R)}),await n("Click outside to close the menu",async()=>{await r.click(document.body),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)}),await n("Open dropdown via open prop",async()=>{u.onOpenChange.mockClear(),Ae(!0),await i(()=>{a(e.queryByRole("menu")).toBeVisible()}),a(o.onOpenChange).not.toHaveBeenCalled()}),await n("Close dropdown via open prop",async()=>{u.onOpenChange.mockClear(),Ae(!1),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(o.onOpenChange).not.toHaveBeenCalled()})}},ce={...M,tags:["!autodocs"],args:{...M.args,open:!0},play:async({canvas:e,step:n,args:o})=>{await n("Initially open",async()=>{await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n("Click outside to close the menu",async()=>{await r.click(document.body),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()}),a(o.onOpenChange).toHaveBeenLastCalledWith(!1,R)})}},z={parameters:{containerHeight:"500px"},args:{side:"top",align:"start",defaultOpen:!0}},ue={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end",defaultOpen:!0}},de={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},me={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},pe={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},ge={parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},ye={tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},we={tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},P={args:{children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),t.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours,disabled:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Add extra hours"',async()=>{u.onOpenChange.mockClear();const o=e.getByRole("menuitem",{name:"Add extra hours"});a(o).toHaveAttribute("aria-disabled","true"),await r.click(o),a(u.items.addExtraHours).not.toHaveBeenCalled(),a(u.onOpenChange).not.toHaveBeenCalled(),a(e.queryByRole("menu")).toBeVisible()})}},G={args:{trigger:t.jsx(re,{children:"Language"}),children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Español",description:"Spanish"}),t.jsx(s,{label:"Українська",description:"Ukrainian"})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Language"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n("Verify items a11y names and descriptions",async()=>{const o=e.getByRole("menuitem",{name:"Español"});a(o).toHaveAccessibleName("Español"),a(o).toHaveAccessibleDescription("Spanish");const l=e.getByRole("menuitem",{name:"Українська"});a(l).toHaveAccessibleName("Українська"),a(l).toHaveAccessibleDescription("Ukrainian")})}},K={args:{defaultOpen:!0,children:t.jsxs(t.Fragment,{children:[t.jsxs(f,{label:"Region",children:[t.jsx(s,{label:"Currency"}),t.jsx(s,{label:"Language"}),t.jsx(s,{label:"Time zone"})]}),t.jsxs(f,{label:"Subscription",children:[t.jsx(s,{label:"Transfer balance"}),t.jsx(s,{label:"Add extra hours"})]})]})}},Y={args:{defaultOpen:!0,children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"User profile"}),t.jsx(s,{label:"Payments & subscriptions"}),t.jsx(To,{}),t.jsx(s,{label:"Logout"})]})}},_={parameters:{docs:{story:{height:600}}},args:{defaultOpen:!0,children:t.jsxs(t.Fragment,{children:[t.jsxs(f,{label:"Icons",children:[t.jsx(s,{leadingElement:t.jsx(v,{svg:Co,size:"24"}),label:"Reschedule"}),t.jsx(s,{leadingElement:t.jsx(v,{svg:Oo,size:"24"}),label:"Message tutor"})]}),t.jsxs(f,{label:"Flags",children:[t.jsx(s,{leadingElement:t.jsx(je,{code:"es",alt:"",size:"medium"}),label:"Spain"}),t.jsx(s,{leadingElement:t.jsx(je,{code:"ua",alt:"",size:"medium"}),label:"Ukraine"})]}),t.jsxs(f,{label:"Avatars",children:[t.jsx(s,{leadingElement:t.jsx(qe,{size:"24"}),label:"Kobe B."}),t.jsx(s,{leadingElement:t.jsx(qe,{size:"24"}),label:"Jenny R."})]})]})}},Fe=b.forwardRef(function({to:n,...o},l){return t.jsx("a",{href:n,...o,ref:l})});Fe.displayName="Link";const S={findATutor:m(e=>{e.preventDefault()}),becomeATutor:m(e=>{e.preventDefault()}),myLessons:m(e=>{e.preventDefault()}),referAFriend:m(e=>{e.preventDefault()})},$={args:{trigger:t.jsx(re,{children:"Links"}),children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Find a Tutor",onClick:S.findATutor,as:t.jsx("a",{href:"/en/online/english-tutors"})}),t.jsx(s,{label:"Become a Tutor",onClick:S.becomeATutor,as:t.jsx("a",{href:"/en/teach"}),disabled:!0}),t.jsx(s,{label:"My Lessons",onClick:S.myLessons,as:t.jsx(Fe,{to:"/en/lessons"})}),t.jsx(s,{label:"Refer a Friend",onClick:S.referAFriend,as:t.jsx(Fe,{to:"/en/referral"}),disabled:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Links"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n("Assert links are rendered correctly",async()=>{const o=e.getByRole("menuitem",{name:"Find a Tutor"});a(o.tagName).toBe("A"),a(o).toHaveAttribute("href","/en/online/english-tutors");const l=e.getByRole("menuitem",{name:"Become a Tutor"});a(l.tagName).toBe("A"),a(l).toHaveAttribute("href","/en/teach"),a(l).toHaveAttribute("aria-disabled","true");const c=e.getByRole("menuitem",{name:"My Lessons"});a(c.tagName).toBe("A"),a(c).toHaveAttribute("href","/en/lessons");const d=e.getByRole("menuitem",{name:"Refer a Friend"});a(d.tagName).toBe("A"),a(d).toHaveAttribute("href","/en/referral"),a(d).toHaveAttribute("aria-disabled","true")}),await n('Click on "Find a Tutor"',async()=>{const o=e.getByRole("menuitem",{name:"Find a Tutor"});await r.click(o),a(S.findATutor).toHaveBeenCalled()}),await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Links"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Become a Tutor"',async()=>{const o=e.getByRole("menuitem",{name:"Become a Tutor"});await r.click(o),a(S.becomeATutor).not.toHaveBeenCalled(),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "My Lessons"',async()=>{const o=e.getByRole("menuitem",{name:"My Lessons"});await r.click(o),a(S.myLessons).toHaveBeenCalled(),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()})}),await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Links"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Refer a Friend"',async()=>{const o=e.getByRole("menuitem",{name:"Refer a Friend"});await r.click(o),a(S.referAFriend).not.toHaveBeenCalled()})}},C={dayOfTheWeek:m(),timeOfTheDay:m(),frequency:m()},J={args:{children:t.jsxs(t.Fragment,{children:[t.jsx(f,{label:"Day of the week",children:t.jsx(N,{defaultValue:"mon",onValueChange:C.dayOfTheWeek,items:[{label:"Monday",value:"mon"},{label:"Tuesday",value:"tue"},{label:"Wednesday",value:"wed"},{label:"Thursday",value:"thu"},{label:"Friday",value:"fri"},{label:"Saturday",value:"sat",disabled:!0},{label:"Sunday",value:"sun",disabled:!0}]})}),t.jsx(f,{label:"Time of the day",children:t.jsxs(N,{onValueChange:C.timeOfTheDay,children:[t.jsx(L,{label:"Morning",value:"morning"}),t.jsx(L,{label:"Afternoon",value:"afternoon"})]})}),t.jsx(f,{label:"Frequency",children:t.jsxs(N,{value:"once",onValueChange:C.frequency,disabled:!0,children:[t.jsx(L,{label:"Once",value:"once"}),t.jsx(L,{label:"Weekly",value:"weekly"})]})})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitemradio",{name:"Monday"}),l=e.getByRole("menuitemradio",{name:"Tuesday"}),c=e.getByRole("menuitemradio",{name:"Saturday"});await n("Day of the week: default value is selected",async()=>{a(o).toHaveAttribute("aria-checked","true")}),await n('Click on "Tuesday"',async()=>{await r.click(l),a(C.dayOfTheWeek).toHaveBeenCalledWith("tue"),await i(()=>{a(o).toHaveAttribute("aria-checked","false"),a(l).toHaveAttribute("aria-checked","true")})}),await n('Click on "Saturday"',async()=>{C.dayOfTheWeek.mockClear(),await r.click(c),a(C.dayOfTheWeek).not.toHaveBeenCalled(),await i(()=>{a(l).toHaveAttribute("aria-checked","true")})});const d=e.getByRole("menuitemradio",{name:"Morning"}),k=e.getByRole("menuitemradio",{name:"Afternoon"});await n("Time of the day: none is selected",async()=>{a(d).toHaveAttribute("aria-checked","false"),a(k).toHaveAttribute("aria-checked","false")}),await n('Click on "Morning"',async()=>{await r.click(d),a(C.timeOfTheDay).toHaveBeenCalledWith("morning"),await i(()=>{a(d).toHaveAttribute("aria-checked","true")})});const g=e.getByRole("menuitemradio",{name:"Once"}),B=e.getByRole("menuitemradio",{name:"Weekly"});await n("Frequency: everything is disabled, once is selected",async()=>{a(g).toHaveAttribute("aria-disabled","true"),a(B).toHaveAttribute("aria-disabled","true"),a(g).toHaveAttribute("aria-checked","true"),a(B).toHaveAttribute("aria-checked","false")}),await n('Click on "Weekly"',async()=>{await r.click(B),a(C.frequency).not.toHaveBeenCalled(),await i(()=>{a(g).toHaveAttribute("aria-checked","true")})})}},D={email:m(),sms:m(),push:m(),alerts:m()},Q={args:{children:t.jsxs(t.Fragment,{children:[t.jsx(V,{label:"Email notifications",onCheckedChange:D.email,defaultChecked:!0}),t.jsx(V,{label:"SMS notifications",onCheckedChange:D.sms}),t.jsx(V,{label:"Push notifications",onCheckedChange:D.push,disabled:!0}),t.jsx(V,{label:"System alerts (required)",onCheckedChange:D.alerts,disabled:!0,checked:!0})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitemcheckbox",{name:"Email notifications"}),l=e.getByRole("menuitemcheckbox",{name:"SMS notifications"}),c=e.getByRole("menuitemcheckbox",{name:"Push notifications"}),d=e.getByRole("menuitemcheckbox",{name:"System alerts (required)"});await n("Email notifications is checked by default",async()=>{a(o).toHaveAttribute("aria-checked","true")}),await n('Uncheck "Email notifications"',async()=>{await r.click(o),a(D.email).toHaveBeenCalledWith(!1,R),await i(()=>{a(o).toHaveAttribute("aria-checked","false")})}),await n('"SMS notifications" is not checked',async()=>{a(l).toHaveAttribute("aria-checked","false")}),await n('Check "SMS notifications"',async()=>{await r.click(l),a(D.sms).toHaveBeenCalledWith(!0,R),await i(()=>{a(l).toHaveAttribute("aria-checked","true")})}),await n('"Push notifications" is disabled and not checked',async()=>{a(c).toHaveAttribute("aria-disabled","true"),a(c).toHaveAttribute("aria-checked","false")}),await n('Click on "Push notifications"',async()=>{await r.click(c),a(D.push).not.toHaveBeenCalled(),await i(()=>{a(c).toHaveAttribute("aria-checked","false")})}),await n('"System alerts (required)" is disabled and checked',async()=>{a(d).toHaveAttribute("aria-disabled","true"),a(d).toHaveAttribute("aria-checked","true")}),await n('Click on "System alerts (required)"',async()=>{await r.click(d),a(D.alerts).not.toHaveBeenCalled(),await i(()=>{a(d).toHaveAttribute("aria-checked","true")})})}},W={dayOfTheWeek:m(),timeOfTheDay:m(),frequency:m()},I=e=>{const[n,o]=b.useState("mon"),[l,c]=b.useState(),d=g=>{o(g),W.dayOfTheWeek(g)},k=g=>{c(g),W.timeOfTheDay(g)};return t.jsxs(O,{...e,children:[t.jsx(F,{label:"Day of the week",value:n,onValueChange:d,items:[{label:"Monday",value:"mon"},{label:"Tuesday",value:"tue"},{label:"Wednesday",value:"wed"},{label:"Thursday",value:"thu"},{label:"Friday",value:"fri"},{label:"Saturday",value:"sat",disabled:!0},{label:"Sunday",value:"sun",disabled:!0}]}),t.jsxs(F,{label:"Time of the day",defaultValue:l,onValueChange:k,children:[t.jsx(h,{value:"morning",label:"Morning"}),t.jsx(h,{value:"afternoon",label:"Afternoon"})]}),t.jsxs(F,{label:"Frequency",onValueChange:W.frequency,disabled:!0,children:[t.jsx(h,{label:"Once",value:"once"}),t.jsx(h,{label:"Weekly",value:"weekly"})]})]})};I.play=async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitem",{name:/^Day of the week/});await n("Day of the week: default value is selected",async()=>{a(o).toHaveAccessibleName(/Selected: Monday$/)}),await n("Open day of the week submenu",async()=>{await r.hover(o),await i(()=>{a(e.queryByRole("menu",{name:/^Day of the week/})).toBeVisible()})}),await n('Click on "Tuesday"',async()=>{await r.click(e.getByRole("menuitemradio",{name:"Tuesday"})),a(W.dayOfTheWeek).toHaveBeenCalledWith("tue"),await i(()=>{a(e.queryByRole("menu",{name:/^Day of the week/,hidden:!0})).not.toBeVisible(),a(o).toHaveAccessibleName(/Selected: Tuesday$/)})});const l=e.getByRole("menuitem",{name:/^Time of the day/});await n("Time of the day: nothing is selected",async()=>{a(l).toHaveAccessibleName("Time of the day")}),await n("Open time of the day submenu",async()=>{l.focus(),await r.keyboard(" "),await i(()=>{a(e.queryByRole("menu",{name:/^Time of the day/})).toBeVisible()})}),await n('Click on "Morning"',async()=>{await r.click(e.getByRole("menuitemradio",{name:"Morning"})),a(W.timeOfTheDay).toHaveBeenCalledWith("morning"),await i(()=>{a(e.queryByRole("menu",{name:/^Time of the day/,hidden:!0})).not.toBeVisible(),a(l).toHaveAccessibleName(/Selected: Morning$/)})}),await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n("Frequency is disabled",async()=>{const c=e.getByRole("menuitem",{name:"Frequency"});a(c).toHaveAttribute("aria-disabled","true"),await r.click(c,{pointerEventsCheck:0}),a(W.frequency).not.toHaveBeenCalled(),await i(()=>{a(e.queryByRole("menu",{name:"Frequency",hidden:!0})).not.toBeVisible()})})};const y={render:function({align:n,side:o,...l}){return t.jsx(O,{...l,defaultOpen:!0,children:t.jsxs(F,{label:"Time of the day",side:o,align:n,defaultOpen:!0,children:[t.jsx(h,{value:"morning",label:"Morning"}),t.jsx(h,{value:"afternoon",label:"Afternoon"})]})})},parameters:{containerHeight:"500px"},args:{side:"top",align:"start"}},be={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end"}},he={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},fe={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},ke={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},Be={render:y.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},ve={render:y.render,tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},xe={render:y.render,tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},H={args:{children:t.jsxs(t.Fragment,{children:[t.jsxs(x,{label:"Region",children:[t.jsx(s,{label:"Currency"}),t.jsx(s,{label:"Language"}),t.jsx(s,{label:"Time zone"})]}),t.jsxs(x,{label:"Subscription",children:[t.jsx(s,{label:"Transfer balance"}),t.jsx(s,{label:"Add extra hours"})]}),t.jsxs(x,{label:"Integrations",disabled:!0,children:[t.jsx(s,{label:"Connect calendar"}),t.jsx(s,{label:"Slack integration"}),t.jsx(s,{label:"Email sync"})]})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})});const o=e.getByRole("menuitem",{name:"Region"});await n("Region submenu opens on hover",async()=>{await r.hover(o),await i(()=>{a(e.queryByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Region submenu closes on hover out",async()=>{await r.unhover(o),await i(()=>{a(e.queryByRole("menu",{name:"Region"})).not.toBeInTheDocument()})}),await n("Integrations submenu is disabled",async()=>{const l=e.getByRole("menuitem",{name:"Integrations"});a(l).toHaveAttribute("aria-disabled","true"),await r.click(l),await i(()=>{a(e.queryByRole("menu",{name:"Integrations"})).not.toBeInTheDocument()})})}},w={render:function({align:n,side:o,...l}){return t.jsx(O,{...l,defaultOpen:!0,children:t.jsxs(x,{label:"Region",side:o,align:n,defaultOpen:!0,children:[t.jsx(s,{label:"Currency"}),t.jsx(s,{label:"Language"}),t.jsx(s,{label:"Time zone"})]})})},parameters:{containerHeight:"500px"},args:{side:"top",align:"start"}},Re={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-end"}},Se={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"inline-start",defaultOpen:!0}},Ce={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"left",defaultOpen:!0}},De={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"right",defaultOpen:!0}},Oe={render:w.render,parameters:{containerHeight:"500px"},tags:["!autodocs"],args:{side:"top",defaultOpen:!0}},Te={render:w.render,tags:["!autodocs"],args:{align:"start",defaultOpen:!0}},Ee={render:w.render,tags:["!autodocs"],args:{align:"end",defaultOpen:!0}},{Provider:Ro,Step:E}=Mo();Ro.displayName="Tour.Provider";E.displayName="Tour.Step";const X={parameters:{docs:{source:{type:"dynamic"}}},decorators:[e=>{const[n,o]=b.useState(0),l=()=>o(n+1);return t.jsxs(t.Fragment,{children:[t.jsx(e,{},n),t.jsx("div",{style:{position:"fixed",left:0,bottom:0,margin:8},children:t.jsx(re,{variant:"ghost",size:"small",onClick:l,children:"Reset story"})})]})}],render:function(){const[n,o]=b.useState(!1),[l,c]=b.useState(!1),[d,k]=b.useState(!1),g=So=>{switch(So){case 1:o(!0);return;case 3:c(!0);return;case 5:k(!0);return}},B=()=>{o(!1),c(!1),k(!1)};return t.jsx(Ro,{totalSteps:6,onStepChange:g,onComplete:B,onClose:B,children:t.jsx(E,{step:0,title:"New settings menu",text:"All settings are now in one place.",children:t.jsxs(O,{open:n,onOpenChange:o,trigger:t.jsx(Eo,{svg:Do,variant:"ghost",assistiveText:"Settings"}),children:[t.jsx(E,{step:1,title:"Transfer balance",text:"You can now transfer your balance to another tutor.",side:"right",children:t.jsx(s,{label:"Transfer balance"})}),t.jsx(s,{label:"Add extra hours"}),t.jsx(E,{step:2,title:"Region",text:"Region settings are grouped together.",side:"top",children:t.jsxs(x,{label:"Region",keepMounted:!0,open:l,onOpenChange:c,children:[t.jsx(s,{label:"Language"}),t.jsx(E,{step:3,title:"Time zone",text:"You can now select your time zone.",side:"right",children:t.jsx(s,{label:"Time zone"})})]})}),t.jsx(E,{step:4,title:"Currency",text:"Currency settings moved here.",side:"right",children:t.jsxs(F,{open:d,onOpenChange:k,defaultValue:"USD",label:"Currency",children:[t.jsx(h,{value:"USD",label:"US Dollar"}),t.jsx(h,{value:"EUR",label:"Euro"}),t.jsx(E,{step:5,title:"New currency!",text:"Pay and receive payments in british pounds.",children:t.jsx(h,{value:"GBP",label:"British Pound"})})]})})]})})})},play:async({canvas:e,step:n})=>{await n("Tour tooltip should be visible",async()=>{await i(()=>{a(e.getByRole("dialog",{name:"New settings menu"})).toBeVisible()})}),await n("Click Next to advance to second step",async()=>{await r.click(e.getByRole("button",{name:"Next"})),await i(()=>{a(e.getByRole("dialog",{name:"Transfer balance"})).toBeVisible(),a(e.getByRole("menu")).toBeVisible()})}),await n("Click Next to advance to third step",async()=>{const o=ie(e.getByRole("dialog",{name:"Transfer balance"}));await r.click(o.getByRole("button",{name:"Next"})),await i(()=>{a(e.getByRole("dialog",{name:"Region"})).toBeVisible()})}),await n("Click Next to advance to fourth step",async()=>{const o=ie(e.getByRole("dialog",{name:"Region"}));await r.click(o.getByRole("button",{name:"Next"})),await i(()=>{a(e.getByRole("dialog",{name:"Time zone"})).toBeVisible(),a(e.getByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Click Next to advance to fifth step",async()=>{const o=ie(e.getByRole("dialog",{name:"Time zone"}));await r.click(o.getByRole("button",{name:"Next"})),await i(()=>{a(e.getByRole("dialog",{name:"Currency"})).toBeVisible()})}),await n("Click Next to advance to the last step",async()=>{const o=ie(e.getByRole("dialog",{name:"Currency"}));await r.click(o.getByRole("button",{name:"Next"})),await i(()=>{a(e.getByRole("dialog",{name:"New currency!"})).toBeVisible(),a(e.getByRole("menu",{name:/Currency/})).toBeVisible()})}),await r.click(e.getByRole("button",{name:"Reset story"}))}},Me=e=>{if(!e)return!1;const{top:n,left:o,bottom:l,right:c}=e.getBoundingClientRect();return!(n>=window.innerHeight||l<=0||o>=window.innerWidth||c<=0)},Z={args:{keepMounted:!0,children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Transfer balance"}),t.jsx(s,{label:"Add extra hours"}),t.jsxs(x,{label:"Region",keepMounted:!0,children:[t.jsx(s,{label:"Currency"}),t.jsx(s,{label:"Language"}),t.jsx(s,{label:"Time zone"})]})]})},play:async({canvas:e,step:n})=>{const o=await e.findByRole("menu",{name:"Settings",hidden:!0}),l=await e.findByRole("menu",{name:"Region",hidden:!0});await n("Menus are mounted, but not visible",async()=>{a(o).toBeInTheDocument(),a(o).not.toBeVisible(),a(l).toBeInTheDocument(),a(l).not.toBeVisible()}),await n("Open the menu",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(o).toBeVisible()})}),await n("Submenu is visible",async()=>{await r.click(e.getByRole("menuitem",{name:"Region"})),await i(()=>{a(l).toBeVisible()})}),await n("Close the submenu.",async()=>{await r.keyboard("{Escape}"),await i(()=>{a(l).not.toBeVisible()}),a(l).toBeInTheDocument()}),await n("Close the menu.",async()=>{await r.keyboard("{Escape}"),await i(()=>{a(o).not.toBeVisible()}),a(o).toBeInTheDocument()})}},A={args:H.args,globals:{viewport:{value:"narrow-l",isRotated:!1}},parameters:{layout:"centered"},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu")).toBeVisible()})}),await n('Click on "Region"',async()=>{await r.click(e.getByRole("menuitem",{name:"Region"})),await i(async()=>{a(Me(e.queryByRole("menu",{name:"Settings"})),"Main menu should be hidden").toBe(!1),a(Me(e.queryByRole("menu",{name:"Region"})),"Submenu should be visible").toBe(!0)})}),await n("Tap away to return to main menu",async()=>{const o=e.getByRole("menu",{name:"Region"}).closest("[data-base-ui-portal]").querySelector("[data-backdrop]");await r.click(o),await i(async()=>{a(Me(e.queryByRole("menu",{name:"Region"})),"Submenu should be hidden").toBe(!1),a(Me(e.queryByRole("menu",{name:"Settings"})),"Main menu should be visible").toBe(!0)})}),await n("Tap away to close menu",async()=>{await r.click(document.querySelector("[data-backdrop]")),await i(async()=>{a(e.queryByRole("menu")).not.toBeInTheDocument()})})}},j={args:{children:t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),t.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours,disabled:!0}),t.jsxs(x,{label:"Region",children:[t.jsx(s,{label:"Currency",onClick:u.items.currency}),t.jsx(s,{label:"Language",onClick:u.items.language}),t.jsx(s,{label:"Time zone"})]})]})},play:async({canvas:e,step:n})=>{const o=e.getByRole("button",{name:"Settings"});await n("Focus on the trigger element",async()=>{o.focus()}),await n("Open the menu via Enter key. First item should be focused",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.queryByRole("menu")).toBeVisible(),a(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Close the menu via Escape key. Trigger should be focused",async()=>{await r.keyboard("{Escape}"),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument(),a(o).toHaveFocus()})}),await n("Open the menu via Space key. First item should be focused",async()=>{await r.keyboard(" "),await i(()=>{a(e.queryByRole("menu")).toBeVisible(),a(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Select the first item via Enter key. Menu should be closed and trigger should be focused",async()=>{await r.keyboard("{Enter}"),a(u.items.transferBalance).toHaveBeenCalled(),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument(),a(o).toHaveFocus()})}),await n("Open the menu via Enter key. First item should be focused",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.queryByRole("menu")).toBeVisible(),a(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()})}),await n("Navigate through the menu using Arrow keys",async()=>{await r.keyboard("{ArrowDown}"),await i(()=>{a(e.getByRole("menuitem",{name:"Add extra hours"})).toHaveFocus()}),await r.keyboard("{ArrowDown}"),await i(()=>{a(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()}),await r.keyboard("{ArrowDown}"),await i(()=>{a(e.getByRole("menuitem",{name:"Transfer balance"})).toHaveFocus()}),await r.keyboard("{ArrowUp}"),await r.keyboard("{ArrowUp}"),await i(()=>{a(e.getByRole("menuitem",{name:"Add extra hours"})).toHaveFocus()})}),await n("Enter key does nothing for disabled item",async()=>{await r.keyboard("{Enter}"),a(u.items.addExtraHours).not.toHaveBeenCalled()}),await n("Space key does nothing for disabled item",async()=>{await r.keyboard(" "),a(u.items.addExtraHours).not.toHaveBeenCalled()}),await n("Navigate to submenu trigger using Arrow down key",async()=>{await r.keyboard("{ArrowDown}"),await i(()=>{a(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open the submenu via Enter key. First item should be focused",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate back to main menu using Arrow left key. Submenu trigger should be focused",async()=>{await r.keyboard("{ArrowLeft}"),await i(()=>{a(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open submenu using Arrow right key. First item should be focused",async()=>{await r.keyboard("{ArrowRight}"),await i(()=>{a(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate back to main menu using Escape key. Submenu trigger should be focused",async()=>{await r.keyboard("{Escape}"),await i(()=>{a(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open submenu using Enter key. First item should be focused",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Close the menu via Tab key. Trigger should be focused",async()=>{await r.keyboard("{Tab}"),await i(()=>{a(e.queryByRole("menu")).not.toBeInTheDocument(),a(o).toHaveFocus()})})}},He={...j,globals:A.globals,parameters:A.parameters,tags:["!autodocs"]},ee={args:{defaultOpen:!0,children:t.jsx(t.Fragment,{children:Array.from({length:100}).map((e,n)=>t.jsx(s,{label:`Item ${n+1}`},n))})}},p=Array.from({length:5}).map(()=>"I won't use long labels for menu items.").join(" "),te={args:{defaultOpen:!0,children:t.jsxs(f,{label:p,children:[t.jsx(s,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p}),t.jsx(x,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p,children:t.jsx(s,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p})}),t.jsx(F,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p,defaultValue:"1",children:t.jsx(h,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p,value:"1"})}),t.jsx(V,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p}),t.jsx(N,{defaultValue:"1",children:t.jsx(L,{leadingElement:t.jsx(v,{size:"24",svg:T}),label:p,description:p,value:"1"})})]})}},ae={args:H.args,render:function(n){const[o,l]=b.useState(!1);return t.jsxs(t.Fragment,{children:[t.jsx(re,{onClick:()=>l(!0),children:"Open dialog"}),t.jsx(Ie,{open:o,onClose:()=>l(!1),title:"Dialog",description:void 0,children:t.jsx(O,{...n})})]})},play:async({canvas:e,step:n})=>{await n("Open dialog",async()=>{await r.click(e.getByRole("button",{name:"Open dialog"})),await i(()=>{a(e.getByRole("dialog",{name:"Dialog"})).toBeVisible()})}),await n("Open dropdown with mouse",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.queryByRole("menu",{name:"Settings"})).toBeVisible()})}),await n("Open Region submenu with mouse",async()=>{await r.click(e.getByRole("menuitem",{name:"Region"})),await i(()=>{a(e.queryByRole("menu",{name:"Region"})).toBeVisible()})}),await n("Click on Currency item",async()=>{await r.click(e.getByRole("menuitem",{name:"Currency"})),await i(()=>{a(e.queryByRole("menu",{name:"Settings"})).not.toBeInTheDocument()})}),await n("Open dropdown with keyboard",async()=>{e.getByRole("button",{name:"Settings"}).focus(),await r.keyboard("{Enter}"),await i(()=>{a(e.queryByRole("menu",{name:"Settings"})).toBeVisible(),a(e.getByRole("menuitem",{name:"Region"})).toHaveFocus()})}),await n("Open Region submenu with keyboard",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.queryByRole("menu",{name:"Region"})).toBeVisible(),a(e.getByRole("menuitem",{name:"Currency"})).toHaveFocus()})}),await n("Navigate to Language item with keyboard",async()=>{await r.keyboard("{ArrowDown}"),await i(()=>{a(e.getByRole("menuitem",{name:"Language"})).toHaveFocus()})}),await n("Select Language item with keyboard",async()=>{await r.keyboard("{Enter}"),await i(()=>{a(e.queryByRole("menu",{name:"Settings"})).not.toBeInTheDocument()})}),await n("Close dialog",async()=>{await r.keyboard("{Escape}"),await i(()=>{a(e.queryByRole("dialog",{name:"Dialog"})).not.toBeInTheDocument()})})}},q={render:function(n){const[o,l]=b.useState(!1);return t.jsxs(t.Fragment,{children:[t.jsx(O,{...n,children:t.jsx(s,{label:"Open dialog",onClick:()=>l(!0)})}),t.jsx(Ie,{title:"Dialog",description:void 0,open:o,onClose:()=>l(!1),children:"Dialog content"})]})},play:async({canvas:e,step:n})=>{await n("Open dropdown",async()=>{await r.click(e.getByRole("button",{name:"Settings"})),await i(()=>{a(e.getByRole("menu")).toBeVisible()})}),await n("Open dialog",async()=>{await r.click(e.getByRole("menuitem",{name:"Open dialog"})),await i(()=>{a(e.getByRole("dialog",{name:"Dialog"})).toBeVisible()})}),await n("Close dialog",async()=>{await r.keyboard("{Escape}")})}},Ho=()=>{const[e,n]=b.useState(!1);return t.jsxs(t.Fragment,{children:[t.jsx(s,{label:"Open dialog",onClick:()=>n(!0)}),t.jsx(Ie,{title:"Dialog",description:void 0,open:e,onClose:()=>n(!1),children:"Dialog content"})]})},ne={args:{keepMounted:!0,children:t.jsx(Ho,{})},play:q.play},oe={render:()=>{const e=b.forwardRef((n,o)=>t.jsx("button",{...n,ref:o,children:"Button"}));return t.jsx(O,{open:!0,trigger:t.jsx(e,{}),children:t.jsxs(N,{children:[t.jsx(s,{label:"Transfer balance",onClick:u.items.transferBalance}),t.jsx(s,{label:"Add extra hours",onClick:u.items.addExtraHours})]})})}};var Ve,Le,Ne;se.parameters={...se.parameters,docs:{...(Ve=se.parameters)==null?void 0:Ve.docs,source:{originalSource:`{
|
|
2
2
|
tags: ['!autodocs', '!dev'],
|
|
3
3
|
args: {
|
|
4
4
|
defaultOpen: true
|
|
5
5
|
}
|
|
6
|
-
}`,...(
|
|
6
|
+
}`,...(Ne=(Le=se.parameters)==null?void 0:Le.docs)==null?void 0:Ne.source}}};var We,Ue,ze,Pe,Ge;U.parameters={...U.parameters,docs:{...(We=U.parameters)==null?void 0:We.docs,source:{originalSource:`{
|
|
7
7
|
play: async ({
|
|
8
8
|
canvas,
|
|
9
9
|
step,
|
|
@@ -47,7 +47,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
47
47
|
expect(callbacks.onOpenChange).toHaveBeenLastCalledWith(false, BaseUiEventDetails);
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
}`,...(
|
|
50
|
+
}`,...(ze=(Ue=U.parameters)==null?void 0:Ue.docs)==null?void 0:ze.source},description:{story:"Dropdown menu is uncontrolled by default, managing its own open/closed state internally.\nUse the `defaultOpen` prop to set the initial open state.",...(Ge=(Pe=U.parameters)==null?void 0:Pe.docs)==null?void 0:Ge.description}}};var Ke,Ye,_e;le.parameters={...le.parameters,docs:{...(Ke=le.parameters)==null?void 0:Ke.docs,source:{originalSource:`{
|
|
51
51
|
tags: ['!autodocs'],
|
|
52
52
|
args: {
|
|
53
53
|
defaultOpen: true
|
|
@@ -69,7 +69,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
69
69
|
expect(callbacks.onOpenChange).toHaveBeenLastCalledWith(false, BaseUiEventDetails);
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
|
-
}`,...(
|
|
72
|
+
}`,...(_e=(Ye=le.parameters)==null?void 0:Ye.docs)==null?void 0:_e.source}}};var $e,Je,Qe,Xe,Ze;M.parameters={...M.parameters,docs:{...($e=M.parameters)==null?void 0:$e.docs,source:{originalSource:`{
|
|
73
73
|
decorators: [(Story, ctx) => {
|
|
74
74
|
const [open, setOpen] = useState(!!ctx.args.open);
|
|
75
75
|
setOpenFromPlayFunction = setOpen;
|
|
@@ -124,7 +124,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
124
124
|
expect(args.onOpenChange).not.toHaveBeenCalled();
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
|
-
}`,...(
|
|
127
|
+
}`,...(Qe=(Je=M.parameters)==null?void 0:Je.docs)==null?void 0:Qe.source},description:{story:"Use the `open` prop along with `onOpenChange` to make the dropdown menu controlled.\nThis gives you full control over the menu's open/closed state, useful for complex\ninteractions or when you need to coordinate the menu state with other UI elements.",...(Ze=(Xe=M.parameters)==null?void 0:Xe.docs)==null?void 0:Ze.description}}};var et,tt,at;ce.parameters={...ce.parameters,docs:{...(et=ce.parameters)==null?void 0:et.docs,source:{originalSource:`{
|
|
128
128
|
...Controlled,
|
|
129
129
|
tags: ['!autodocs'],
|
|
130
130
|
args: {
|
|
@@ -149,7 +149,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
149
149
|
expect(args.onOpenChange).toHaveBeenLastCalledWith(false, BaseUiEventDetails);
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
|
-
}`,...(
|
|
152
|
+
}`,...(at=(tt=ce.parameters)==null?void 0:tt.docs)==null?void 0:at.source}}};var nt,ot,rt,it,st;z.parameters={...z.parameters,docs:{...(nt=z.parameters)==null?void 0:nt.docs,source:{originalSource:`{
|
|
153
153
|
parameters: {
|
|
154
154
|
containerHeight: '500px'
|
|
155
155
|
},
|
|
@@ -158,7 +158,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
158
158
|
align: 'start',
|
|
159
159
|
defaultOpen: true
|
|
160
160
|
}
|
|
161
|
-
}`,...(
|
|
161
|
+
}`,...(rt=(ot=z.parameters)==null?void 0:ot.docs)==null?void 0:rt.source},description:{story:"Use the `side` and `align` props to control where the menu appears relative to the trigger.\nThe `side` prop determines which side of the trigger the menu opens on,\nwhile `align` controls alignment along that side.\nThe menu might automatically reposition to avoid viewport collisions.",...(st=(it=z.parameters)==null?void 0:it.docs)==null?void 0:st.description}}};var lt,ct,ut;ue.parameters={...ue.parameters,docs:{...(lt=ue.parameters)==null?void 0:lt.docs,source:{originalSource:`{
|
|
162
162
|
parameters: {
|
|
163
163
|
containerHeight: '500px'
|
|
164
164
|
},
|
|
@@ -167,7 +167,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
167
167
|
side: 'inline-end',
|
|
168
168
|
defaultOpen: true
|
|
169
169
|
}
|
|
170
|
-
}`,...(
|
|
170
|
+
}`,...(ut=(ct=ue.parameters)==null?void 0:ct.docs)==null?void 0:ut.source}}};var dt,mt,pt;de.parameters={...de.parameters,docs:{...(dt=de.parameters)==null?void 0:dt.docs,source:{originalSource:`{
|
|
171
171
|
parameters: {
|
|
172
172
|
containerHeight: '500px'
|
|
173
173
|
},
|
|
@@ -176,7 +176,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
176
176
|
side: 'inline-start',
|
|
177
177
|
defaultOpen: true
|
|
178
178
|
}
|
|
179
|
-
}`,...(
|
|
179
|
+
}`,...(pt=(mt=de.parameters)==null?void 0:mt.docs)==null?void 0:pt.source}}};var gt,yt,wt;me.parameters={...me.parameters,docs:{...(gt=me.parameters)==null?void 0:gt.docs,source:{originalSource:`{
|
|
180
180
|
parameters: {
|
|
181
181
|
containerHeight: '500px'
|
|
182
182
|
},
|
|
@@ -185,7 +185,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
185
185
|
side: 'left',
|
|
186
186
|
defaultOpen: true
|
|
187
187
|
}
|
|
188
|
-
}`,...(
|
|
188
|
+
}`,...(wt=(yt=me.parameters)==null?void 0:yt.docs)==null?void 0:wt.source}}};var bt,ht,ft;pe.parameters={...pe.parameters,docs:{...(bt=pe.parameters)==null?void 0:bt.docs,source:{originalSource:`{
|
|
189
189
|
parameters: {
|
|
190
190
|
containerHeight: '500px'
|
|
191
191
|
},
|
|
@@ -194,7 +194,7 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
194
194
|
side: 'right',
|
|
195
195
|
defaultOpen: true
|
|
196
196
|
}
|
|
197
|
-
}`,...(
|
|
197
|
+
}`,...(ft=(ht=pe.parameters)==null?void 0:ht.docs)==null?void 0:ft.source}}};var kt,Bt,vt;ge.parameters={...ge.parameters,docs:{...(kt=ge.parameters)==null?void 0:kt.docs,source:{originalSource:`{
|
|
198
198
|
parameters: {
|
|
199
199
|
containerHeight: '500px'
|
|
200
200
|
},
|
|
@@ -203,19 +203,19 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
203
203
|
side: 'top',
|
|
204
204
|
defaultOpen: true
|
|
205
205
|
}
|
|
206
|
-
}`,...(
|
|
206
|
+
}`,...(vt=(Bt=ge.parameters)==null?void 0:Bt.docs)==null?void 0:vt.source}}};var xt,Rt,St;ye.parameters={...ye.parameters,docs:{...(xt=ye.parameters)==null?void 0:xt.docs,source:{originalSource:`{
|
|
207
207
|
tags: ['!autodocs'],
|
|
208
208
|
args: {
|
|
209
209
|
align: 'start',
|
|
210
210
|
defaultOpen: true
|
|
211
211
|
}
|
|
212
|
-
}`,...(
|
|
212
|
+
}`,...(St=(Rt=ye.parameters)==null?void 0:Rt.docs)==null?void 0:St.source}}};var Ct,Dt,Ot;we.parameters={...we.parameters,docs:{...(Ct=we.parameters)==null?void 0:Ct.docs,source:{originalSource:`{
|
|
213
213
|
tags: ['!autodocs'],
|
|
214
214
|
args: {
|
|
215
215
|
align: 'end',
|
|
216
216
|
defaultOpen: true
|
|
217
217
|
}
|
|
218
|
-
}`,...(
|
|
218
|
+
}`,...(Ot=(Dt=we.parameters)==null?void 0:Dt.docs)==null?void 0:Ot.source}}};var Tt,Et,Mt,Ht,At;P.parameters={...P.parameters,docs:{...(Tt=P.parameters)==null?void 0:Tt.docs,source:{originalSource:`{
|
|
219
219
|
args: {
|
|
220
220
|
children: <>
|
|
221
221
|
<DropdownMenuItem label="Transfer balance" onClick={callbacks.items.transferBalance} />
|
|
@@ -246,9 +246,9 @@ import{j as a,r as b}from"./iframe-DjYTJz7A.js";import{D as h,a as A,b as V,c as
|
|
|
246
246
|
expect(canvas.queryByRole('menu')).toBeVisible();
|
|
247
247
|
});
|
|
248
248
|
}
|
|
249
|
-
}`,...(
|
|
249
|
+
}`,...(Mt=(Et=P.parameters)==null?void 0:Et.docs)==null?void 0:Mt.source},description:{story:`Menu items can be disabled to prevent user interaction. Disabled items are visually
|
|
250
250
|
distinguished and cannot be clicked or selected, useful for showing unavailable options
|
|
251
|
-
or actions that require certain conditions to be met.`,...(
|
|
251
|
+
or actions that require certain conditions to be met.`,...(At=(Ht=P.parameters)==null?void 0:Ht.docs)==null?void 0:At.description}}};var Ft,It,jt,qt,Vt;G.parameters={...G.parameters,docs:{...(Ft=G.parameters)==null?void 0:Ft.docs,source:{originalSource:`{
|
|
252
252
|
args: {
|
|
253
253
|
trigger: <Button>Language</Button>,
|
|
254
254
|
children: <>
|
|
@@ -281,7 +281,7 @@ or actions that require certain conditions to be met.`,...(Ma=(Ha=z.parameters)=
|
|
|
281
281
|
expect(ukrainianItem).toHaveAccessibleDescription('Ukrainian');
|
|
282
282
|
});
|
|
283
283
|
}
|
|
284
|
-
}`,...(
|
|
284
|
+
}`,...(jt=(It=G.parameters)==null?void 0:It.docs)==null?void 0:jt.source},description:{story:"Menu items can display additional context below the label using the `description` prop.\nThis is particularly useful for language selectors, settings options, or any scenario\nwhere extra information helps users make informed choices.",...(Vt=(qt=G.parameters)==null?void 0:qt.docs)==null?void 0:Vt.description}}};var Lt,Nt,Wt,Ut,zt;K.parameters={...K.parameters,docs:{...(Lt=K.parameters)==null?void 0:Lt.docs,source:{originalSource:`{
|
|
285
285
|
args: {
|
|
286
286
|
defaultOpen: true,
|
|
287
287
|
children: <>
|
|
@@ -296,7 +296,7 @@ or actions that require certain conditions to be met.`,...(Ma=(Ha=z.parameters)=
|
|
|
296
296
|
</DropdownMenuGroup>
|
|
297
297
|
</>
|
|
298
298
|
}
|
|
299
|
-
}`,...(
|
|
299
|
+
}`,...(Wt=(Nt=K.parameters)==null?void 0:Nt.docs)==null?void 0:Wt.source},description:{story:"Organize related menu items into logical sections using `DropdownMenuGroup`. Groups have\na label and visually separate different categories of actions or options. This improves\nscannability and helps users quickly find what they're looking for in longer menus.",...(zt=(Ut=K.parameters)==null?void 0:Ut.docs)==null?void 0:zt.description}}};var Pt,Gt,Kt,Yt,_t;Y.parameters={...Y.parameters,docs:{...(Pt=Y.parameters)==null?void 0:Pt.docs,source:{originalSource:`{
|
|
300
300
|
args: {
|
|
301
301
|
defaultOpen: true,
|
|
302
302
|
children: <>
|
|
@@ -306,10 +306,10 @@ or actions that require certain conditions to be met.`,...(Ma=(Ha=z.parameters)=
|
|
|
306
306
|
<DropdownMenuItem label="Logout" />
|
|
307
307
|
</>
|
|
308
308
|
}
|
|
309
|
-
}`,...(
|
|
309
|
+
}`,...(Kt=(Gt=Y.parameters)==null?void 0:Gt.docs)==null?void 0:Kt.source},description:{story:`In some cases, you might want to separate outstanding items without creating a labeled group.
|
|
310
310
|
Use dividers to create subtle visual separation, particularly useful for isolating destructive
|
|
311
311
|
or important actions (like logout or delete) from regular options. Dividers provide a lightweight
|
|
312
|
-
way to organize menus when explicit group labels would be unnecessary or too verbose.`,...(
|
|
312
|
+
way to organize menus when explicit group labels would be unnecessary or too verbose.`,...(_t=(Yt=Y.parameters)==null?void 0:Yt.docs)==null?void 0:_t.description}}};var $t,Jt,Qt,Xt,Zt;_.parameters={..._.parameters,docs:{...($t=_.parameters)==null?void 0:$t.docs,source:{originalSource:`{
|
|
313
313
|
parameters: {
|
|
314
314
|
docs: {
|
|
315
315
|
story: {
|
|
@@ -334,7 +334,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
334
334
|
</DropdownMenuGroup>
|
|
335
335
|
</>
|
|
336
336
|
}
|
|
337
|
-
}`,...(
|
|
337
|
+
}`,...(Qt=(Jt=_.parameters)==null?void 0:Jt.docs)==null?void 0:Qt.source},description:{story:"Enhance menu items with visual context using the `leadingElement` prop. You can add icons\nto indicate actions, flags to represent countries or languages, or avatars to show users.\nLeading elements help users quickly identify and distinguish between different menu options.",...(Zt=(Xt=_.parameters)==null?void 0:Xt.docs)==null?void 0:Zt.description}}};var ea,ta,aa,na,oa;$.parameters={...$.parameters,docs:{...(ea=$.parameters)==null?void 0:ea.docs,source:{originalSource:`{
|
|
338
338
|
args: {
|
|
339
339
|
trigger: <Button>Links</Button>,
|
|
340
340
|
children: <>
|
|
@@ -431,7 +431,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
431
431
|
expect(linksCallbacks.referAFriend).not.toHaveBeenCalled();
|
|
432
432
|
});
|
|
433
433
|
}
|
|
434
|
-
}`,...(
|
|
434
|
+
}`,...(aa=(ta=$.parameters)==null?void 0:ta.docs)==null?void 0:aa.source},description:{story:"You can use the `as` prop to render a custom element for the menu item.\nYou can use that to render anchors or custom link components (e.g. Next.js or React Router Link)",...(oa=(na=$.parameters)==null?void 0:na.docs)==null?void 0:oa.description}}};var ra,ia,sa,la,ca;J.parameters={...J.parameters,docs:{...(ra=J.parameters)==null?void 0:ra.docs,source:{originalSource:`{
|
|
435
435
|
args: {
|
|
436
436
|
children: <>
|
|
437
437
|
<DropdownMenuGroup label="Day of the week">
|
|
@@ -551,7 +551,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
551
551
|
});
|
|
552
552
|
});
|
|
553
553
|
}
|
|
554
|
-
}`,...(
|
|
554
|
+
}`,...(sa=(ia=J.parameters)==null?void 0:ia.docs)==null?void 0:sa.source},description:{story:"Radio groups allow users to select a single option from a list of mutually exclusive options.\nUse `DropdownMenuRadioGroup` with `DropdownMenuRadioItem` components to create radio groups.\nMultiple independent radio groups can coexist in the same dropdown menu.\n\nYou can define radio group options either with type-safe `items` prop or by\npassing `DropdownMenuRadioItem` as children if you need more flexibility.",...(ca=(la=J.parameters)==null?void 0:la.docs)==null?void 0:ca.description}}};var ua,da,ma,pa,ga;Q.parameters={...Q.parameters,docs:{...(ua=Q.parameters)==null?void 0:ua.docs,source:{originalSource:`{
|
|
555
555
|
args: {
|
|
556
556
|
children: <>
|
|
557
557
|
<DropdownMenuCheckboxItem label="Email notifications" onCheckedChange={checkboxCallbacks.email} defaultChecked />
|
|
@@ -627,7 +627,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
627
627
|
});
|
|
628
628
|
});
|
|
629
629
|
}
|
|
630
|
-
}`,...(
|
|
630
|
+
}`,...(ma=(da=Q.parameters)==null?void 0:da.docs)==null?void 0:ma.source},description:{story:"Checkbox items allow users to select multiple independent options from a list.\nUse `DropdownMenuCheckboxItem` to add checkboxes to the menu. Each checkbox maintains\nits own state and can be checked or unchecked independently of others.",...(ga=(pa=Q.parameters)==null?void 0:pa.docs)==null?void 0:ga.description}}};var ya,wa,ba,ha,fa;I.parameters={...I.parameters,docs:{...(ya=I.parameters)==null?void 0:ya.docs,source:{originalSource:`args => {
|
|
631
631
|
const [dayOfTheWeek, setDayOfTheWeek] = useState('mon');
|
|
632
632
|
const [timeOfTheDay, setTimeOfTheDay] = useState<string | undefined>();
|
|
633
633
|
const handleDayOfTheWeekChange = (value: string) => {
|
|
@@ -672,7 +672,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
672
672
|
<DropdownMenuSelectOption label="Weekly" value="weekly" />
|
|
673
673
|
</DropdownMenuSelect>
|
|
674
674
|
</DropdownMenu>;
|
|
675
|
-
}`,...(
|
|
675
|
+
}`,...(ba=(wa=I.parameters)==null?void 0:wa.docs)==null?void 0:ba.source},description:{story:"Select items provide a nested menu for choosing from a list of options, similar to a dropdown within a dropdown.\nUse `DropdownMenuSelect` with `DropdownMenuSelectOption` components to create select menus.\nThe selected value is displayed in the trigger label, and hovering over it opens a submenu with all available options.\n\nYou can define select options either with type-safe `items` prop or by\npassing `DropdownMenuSelectOption` as children if you need more flexibility.",...(fa=(ha=I.parameters)==null?void 0:ha.docs)==null?void 0:fa.description}}};var ka,Ba,va,xa,Ra;y.parameters={...y.parameters,docs:{...(ka=y.parameters)==null?void 0:ka.docs,source:{originalSource:`{
|
|
676
676
|
render: function Render({
|
|
677
677
|
align,
|
|
678
678
|
side,
|
|
@@ -692,7 +692,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
692
692
|
side: 'top',
|
|
693
693
|
align: 'start'
|
|
694
694
|
}
|
|
695
|
-
}`,...(
|
|
695
|
+
}`,...(va=(Ba=y.parameters)==null?void 0:Ba.docs)==null?void 0:va.source},description:{story:"Similar to DropdownMenu, DropdownMenuSelect position can be controlled with `side` and `align` props.",...(Ra=(xa=y.parameters)==null?void 0:xa.docs)==null?void 0:Ra.description}}};var Sa,Ca,Da;be.parameters={...be.parameters,docs:{...(Sa=be.parameters)==null?void 0:Sa.docs,source:{originalSource:`{
|
|
696
696
|
render: ControllingSelectPosition.render,
|
|
697
697
|
parameters: {
|
|
698
698
|
containerHeight: '500px'
|
|
@@ -701,7 +701,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
701
701
|
args: {
|
|
702
702
|
side: 'inline-end'
|
|
703
703
|
}
|
|
704
|
-
}`,...(
|
|
704
|
+
}`,...(Da=(Ca=be.parameters)==null?void 0:Ca.docs)==null?void 0:Da.source}}};var Oa,Ta,Ea;he.parameters={...he.parameters,docs:{...(Oa=he.parameters)==null?void 0:Oa.docs,source:{originalSource:`{
|
|
705
705
|
render: ControllingSelectPosition.render,
|
|
706
706
|
parameters: {
|
|
707
707
|
containerHeight: '500px'
|
|
@@ -711,7 +711,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
711
711
|
side: 'inline-start',
|
|
712
712
|
defaultOpen: true
|
|
713
713
|
}
|
|
714
|
-
}`,...(
|
|
714
|
+
}`,...(Ea=(Ta=he.parameters)==null?void 0:Ta.docs)==null?void 0:Ea.source}}};var Ma,Ha,Aa;fe.parameters={...fe.parameters,docs:{...(Ma=fe.parameters)==null?void 0:Ma.docs,source:{originalSource:`{
|
|
715
715
|
render: ControllingSelectPosition.render,
|
|
716
716
|
parameters: {
|
|
717
717
|
containerHeight: '500px'
|
|
@@ -721,7 +721,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
721
721
|
side: 'left',
|
|
722
722
|
defaultOpen: true
|
|
723
723
|
}
|
|
724
|
-
}`,...(
|
|
724
|
+
}`,...(Aa=(Ha=fe.parameters)==null?void 0:Ha.docs)==null?void 0:Aa.source}}};var Fa,Ia,ja;ke.parameters={...ke.parameters,docs:{...(Fa=ke.parameters)==null?void 0:Fa.docs,source:{originalSource:`{
|
|
725
725
|
render: ControllingSelectPosition.render,
|
|
726
726
|
parameters: {
|
|
727
727
|
containerHeight: '500px'
|
|
@@ -731,7 +731,7 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
731
731
|
side: 'right',
|
|
732
732
|
defaultOpen: true
|
|
733
733
|
}
|
|
734
|
-
}`,...(
|
|
734
|
+
}`,...(ja=(Ia=ke.parameters)==null?void 0:Ia.docs)==null?void 0:ja.source}}};var qa,Va,La;Be.parameters={...Be.parameters,docs:{...(qa=Be.parameters)==null?void 0:qa.docs,source:{originalSource:`{
|
|
735
735
|
render: ControllingSelectPosition.render,
|
|
736
736
|
parameters: {
|
|
737
737
|
containerHeight: '500px'
|
|
@@ -741,21 +741,21 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
741
741
|
side: 'top',
|
|
742
742
|
defaultOpen: true
|
|
743
743
|
}
|
|
744
|
-
}`,...(
|
|
744
|
+
}`,...(La=(Va=Be.parameters)==null?void 0:Va.docs)==null?void 0:La.source}}};var Na,Wa,Ua;ve.parameters={...ve.parameters,docs:{...(Na=ve.parameters)==null?void 0:Na.docs,source:{originalSource:`{
|
|
745
745
|
render: ControllingSelectPosition.render,
|
|
746
746
|
tags: ['!autodocs'],
|
|
747
747
|
args: {
|
|
748
748
|
align: 'start',
|
|
749
749
|
defaultOpen: true
|
|
750
750
|
}
|
|
751
|
-
}`,...(
|
|
751
|
+
}`,...(Ua=(Wa=ve.parameters)==null?void 0:Wa.docs)==null?void 0:Ua.source}}};var za,Pa,Ga;xe.parameters={...xe.parameters,docs:{...(za=xe.parameters)==null?void 0:za.docs,source:{originalSource:`{
|
|
752
752
|
render: ControllingSelectPosition.render,
|
|
753
753
|
tags: ['!autodocs'],
|
|
754
754
|
args: {
|
|
755
755
|
align: 'end',
|
|
756
756
|
defaultOpen: true
|
|
757
757
|
}
|
|
758
|
-
}`,...(
|
|
758
|
+
}`,...(Ga=(Pa=xe.parameters)==null?void 0:Pa.docs)==null?void 0:Ga.source}}};var Ka,Ya,_a,$a,Ja;H.parameters={...H.parameters,docs:{...(Ka=H.parameters)==null?void 0:Ka.docs,source:{originalSource:`{
|
|
759
759
|
args: {
|
|
760
760
|
children: <>
|
|
761
761
|
<DropdownSubmenu label="Region">
|
|
@@ -818,10 +818,10 @@ way to organize menus when explicit group labels would be unnecessary or too ver
|
|
|
818
818
|
});
|
|
819
819
|
});
|
|
820
820
|
}
|
|
821
|
-
}`,...(
|
|
821
|
+
}`,...(_a=(Ya=H.parameters)==null?void 0:Ya.docs)==null?void 0:_a.source},description:{story:`Create nested menu structures using \`DropdownSubmenu\` to organize complex navigation hierarchies.
|
|
822
822
|
Submenus appear when hovering over or clicking their parent item, and can contain any menu items,
|
|
823
823
|
including additional submenus for deeper nesting. This pattern is ideal for settings menus or
|
|
824
|
-
complex action lists where options naturally group into categories.`,...(
|
|
824
|
+
complex action lists where options naturally group into categories.`,...(Ja=($a=H.parameters)==null?void 0:$a.docs)==null?void 0:Ja.description}}};var Qa,Xa,Za,en,tn;w.parameters={...w.parameters,docs:{...(Qa=w.parameters)==null?void 0:Qa.docs,source:{originalSource:`{
|
|
825
825
|
render: function Render({
|
|
826
826
|
align,
|
|
827
827
|
side,
|
|
@@ -842,7 +842,7 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
842
842
|
side: 'top',
|
|
843
843
|
align: 'start'
|
|
844
844
|
}
|
|
845
|
-
}`,...(
|
|
845
|
+
}`,...(Za=(Xa=w.parameters)==null?void 0:Xa.docs)==null?void 0:Za.source},description:{story:"Similar to DropdownMenu, DropdownSubmenu position can be controlled with `side` and `align` props.",...(tn=(en=w.parameters)==null?void 0:en.docs)==null?void 0:tn.description}}};var an,nn,on;Re.parameters={...Re.parameters,docs:{...(an=Re.parameters)==null?void 0:an.docs,source:{originalSource:`{
|
|
846
846
|
render: ControllingSubmenuPosition.render,
|
|
847
847
|
parameters: {
|
|
848
848
|
containerHeight: '500px'
|
|
@@ -851,7 +851,7 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
851
851
|
args: {
|
|
852
852
|
side: 'inline-end'
|
|
853
853
|
}
|
|
854
|
-
}`,...(
|
|
854
|
+
}`,...(on=(nn=Re.parameters)==null?void 0:nn.docs)==null?void 0:on.source}}};var rn,sn,ln;Se.parameters={...Se.parameters,docs:{...(rn=Se.parameters)==null?void 0:rn.docs,source:{originalSource:`{
|
|
855
855
|
render: ControllingSubmenuPosition.render,
|
|
856
856
|
parameters: {
|
|
857
857
|
containerHeight: '500px'
|
|
@@ -861,7 +861,7 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
861
861
|
side: 'inline-start',
|
|
862
862
|
defaultOpen: true
|
|
863
863
|
}
|
|
864
|
-
}`,...(
|
|
864
|
+
}`,...(ln=(sn=Se.parameters)==null?void 0:sn.docs)==null?void 0:ln.source}}};var cn,un,dn;Ce.parameters={...Ce.parameters,docs:{...(cn=Ce.parameters)==null?void 0:cn.docs,source:{originalSource:`{
|
|
865
865
|
render: ControllingSubmenuPosition.render,
|
|
866
866
|
parameters: {
|
|
867
867
|
containerHeight: '500px'
|
|
@@ -871,7 +871,7 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
871
871
|
side: 'left',
|
|
872
872
|
defaultOpen: true
|
|
873
873
|
}
|
|
874
|
-
}`,...(
|
|
874
|
+
}`,...(dn=(un=Ce.parameters)==null?void 0:un.docs)==null?void 0:dn.source}}};var mn,pn,gn;De.parameters={...De.parameters,docs:{...(mn=De.parameters)==null?void 0:mn.docs,source:{originalSource:`{
|
|
875
875
|
render: ControllingSubmenuPosition.render,
|
|
876
876
|
parameters: {
|
|
877
877
|
containerHeight: '500px'
|
|
@@ -881,7 +881,7 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
881
881
|
side: 'right',
|
|
882
882
|
defaultOpen: true
|
|
883
883
|
}
|
|
884
|
-
}`,...(
|
|
884
|
+
}`,...(gn=(pn=De.parameters)==null?void 0:pn.docs)==null?void 0:gn.source}}};var yn,wn,bn;Oe.parameters={...Oe.parameters,docs:{...(yn=Oe.parameters)==null?void 0:yn.docs,source:{originalSource:`{
|
|
885
885
|
render: ControllingSubmenuPosition.render,
|
|
886
886
|
parameters: {
|
|
887
887
|
containerHeight: '500px'
|
|
@@ -891,21 +891,21 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
891
891
|
side: 'top',
|
|
892
892
|
defaultOpen: true
|
|
893
893
|
}
|
|
894
|
-
}`,...(
|
|
894
|
+
}`,...(bn=(wn=Oe.parameters)==null?void 0:wn.docs)==null?void 0:bn.source}}};var hn,fn,kn;Te.parameters={...Te.parameters,docs:{...(hn=Te.parameters)==null?void 0:hn.docs,source:{originalSource:`{
|
|
895
895
|
render: ControllingSubmenuPosition.render,
|
|
896
896
|
tags: ['!autodocs'],
|
|
897
897
|
args: {
|
|
898
898
|
align: 'start',
|
|
899
899
|
defaultOpen: true
|
|
900
900
|
}
|
|
901
|
-
}`,...(
|
|
901
|
+
}`,...(kn=(fn=Te.parameters)==null?void 0:fn.docs)==null?void 0:kn.source}}};var Bn,vn,xn;Ee.parameters={...Ee.parameters,docs:{...(Bn=Ee.parameters)==null?void 0:Bn.docs,source:{originalSource:`{
|
|
902
902
|
render: ControllingSubmenuPosition.render,
|
|
903
903
|
tags: ['!autodocs'],
|
|
904
904
|
args: {
|
|
905
905
|
align: 'end',
|
|
906
906
|
defaultOpen: true
|
|
907
907
|
}
|
|
908
|
-
}`,...(
|
|
908
|
+
}`,...(xn=(vn=Ee.parameters)==null?void 0:vn.docs)==null?void 0:xn.source}}};var Rn,Sn,Cn,Dn,On;X.parameters={...X.parameters,docs:{...(Rn=X.parameters)==null?void 0:Rn.docs,source:{originalSource:`{
|
|
909
909
|
parameters: {
|
|
910
910
|
docs: {
|
|
911
911
|
source: {
|
|
@@ -1066,8 +1066,8 @@ complex action lists where options naturally group into categories.`,...($t=(_t=
|
|
|
1066
1066
|
name: 'Reset story'
|
|
1067
1067
|
}));
|
|
1068
1068
|
}
|
|
1069
|
-
}`,...(
|
|
1070
|
-
This is useful for creating coordinated onboarding tours.`,...(
|
|
1069
|
+
}`,...(Cn=(Sn=X.parameters)==null?void 0:Sn.docs)==null?void 0:Cn.source},description:{story:`Submenu and select open state also can be controlled.
|
|
1070
|
+
This is useful for creating coordinated onboarding tours.`,...(On=(Dn=X.parameters)==null?void 0:Dn.docs)==null?void 0:On.description}}};var Tn,En,Mn,Hn,An;Z.parameters={...Z.parameters,docs:{...(Tn=Z.parameters)==null?void 0:Tn.docs,source:{originalSource:`{
|
|
1071
1071
|
args: {
|
|
1072
1072
|
keepMounted: true,
|
|
1073
1073
|
children: <>
|
|
@@ -1129,7 +1129,7 @@ This is useful for creating coordinated onboarding tours.`,...(Dn=(Cn=Q.paramete
|
|
|
1129
1129
|
expect(menu).toBeInTheDocument();
|
|
1130
1130
|
});
|
|
1131
1131
|
}
|
|
1132
|
-
}`,...(
|
|
1132
|
+
}`,...(Mn=(En=Z.parameters)==null?void 0:En.docs)==null?void 0:Mn.source},description:{story:"Use the `keepMounted` prop to keep the menu in the DOM when closed, hidden with CSS instead of\nunmounted. This is useful for preserving state, enabling exit animations, or improving performance\nwhen the menu opens and closes frequently. Both the main menu and submenus can be kept mounted independently.",...(An=(Hn=Z.parameters)==null?void 0:Hn.docs)==null?void 0:An.description}}};var Fn,In,jn,qn,Vn;A.parameters={...A.parameters,docs:{...(Fn=A.parameters)==null?void 0:Fn.docs,source:{originalSource:`{
|
|
1133
1133
|
args: Submenus.args,
|
|
1134
1134
|
globals: {
|
|
1135
1135
|
viewport: {
|
|
@@ -1196,7 +1196,7 @@ This is useful for creating coordinated onboarding tours.`,...(Dn=(Cn=Q.paramete
|
|
|
1196
1196
|
});
|
|
1197
1197
|
});
|
|
1198
1198
|
}
|
|
1199
|
-
}`,...(
|
|
1199
|
+
}`,...(jn=(In=A.parameters)==null?void 0:In.docs)==null?void 0:jn.source},description:{story:"On mobile devices, the menu will be rendered as a bottom sheet instead of a dropdown.",...(Vn=(qn=A.parameters)==null?void 0:qn.docs)==null?void 0:Vn.description}}};var Ln,Nn,Wn,Un,zn;j.parameters={...j.parameters,docs:{...(Ln=j.parameters)==null?void 0:Ln.docs,source:{originalSource:`{
|
|
1200
1200
|
args: {
|
|
1201
1201
|
children: <>
|
|
1202
1202
|
<DropdownMenuItem label="Transfer balance" onClick={callbacks.items.transferBalance} />
|
|
@@ -1351,7 +1351,7 @@ This is useful for creating coordinated onboarding tours.`,...(Dn=(Cn=Q.paramete
|
|
|
1351
1351
|
});
|
|
1352
1352
|
});
|
|
1353
1353
|
}
|
|
1354
|
-
}`,...(
|
|
1354
|
+
}`,...(Wn=(Nn=j.parameters)==null?void 0:Nn.docs)==null?void 0:Wn.source},description:{story:`The DropdownMenu component implements comprehensive keyboard navigation following the
|
|
1355
1355
|
[WAI-ARIA Menu pattern](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/) and accessibility
|
|
1356
1356
|
best practices. This ensures users who rely on keyboard navigation or assistive technologies
|
|
1357
1357
|
can efficiently interact with menus.
|
|
@@ -1377,12 +1377,12 @@ can efficiently interact with menus.
|
|
|
1377
1377
|
|
|
1378
1378
|
- **Enter** or **Arrow Right**: Opens a submenu and moves focus to its first item
|
|
1379
1379
|
- **Arrow Left** or **Escape**: Closes the submenu and returns focus to the submenu trigger
|
|
1380
|
-
- Submenus maintain the same navigation patterns as the main menu`,...(
|
|
1380
|
+
- Submenus maintain the same navigation patterns as the main menu`,...(zn=(Un=j.parameters)==null?void 0:Un.docs)==null?void 0:zn.description}}};var Pn,Gn,Kn;He.parameters={...He.parameters,docs:{...(Pn=He.parameters)==null?void 0:Pn.docs,source:{originalSource:`{
|
|
1381
1381
|
...KeyboardNavigation,
|
|
1382
1382
|
globals: OnMobile.globals,
|
|
1383
1383
|
parameters: OnMobile.parameters,
|
|
1384
1384
|
tags: ['!autodocs']
|
|
1385
|
-
}`,...(
|
|
1385
|
+
}`,...(Kn=(Gn=He.parameters)==null?void 0:Gn.docs)==null?void 0:Kn.source}}};var Yn,_n,$n,Jn,Qn;ee.parameters={...ee.parameters,docs:{...(Yn=ee.parameters)==null?void 0:Yn.docs,source:{originalSource:`{
|
|
1386
1386
|
args: {
|
|
1387
1387
|
defaultOpen: true,
|
|
1388
1388
|
children: <>
|
|
@@ -1391,7 +1391,7 @@ can efficiently interact with menus.
|
|
|
1391
1391
|
}).map((_, index) => <DropdownMenuItem key={index} label={\`Item \${index + 1}\`} />)}
|
|
1392
1392
|
</>
|
|
1393
1393
|
}
|
|
1394
|
-
}`,...(
|
|
1394
|
+
}`,...($n=(_n=ee.parameters)==null?void 0:_n.docs)==null?void 0:$n.source},description:{story:"When the menu has a lot of items, it will be rendered as a scrollable container.",...(Qn=(Jn=ee.parameters)==null?void 0:Jn.docs)==null?void 0:Qn.description}}};var Xn,Zn,eo,to,ao;te.parameters={...te.parameters,docs:{...(Xn=te.parameters)==null?void 0:Xn.docs,source:{originalSource:`{
|
|
1395
1395
|
args: {
|
|
1396
1396
|
defaultOpen: true,
|
|
1397
1397
|
children: <DropdownMenuGroup label={longText}>
|
|
@@ -1408,7 +1408,7 @@ can efficiently interact with menus.
|
|
|
1408
1408
|
</DropdownMenuRadioGroup>
|
|
1409
1409
|
</DropdownMenuGroup>
|
|
1410
1410
|
}
|
|
1411
|
-
}`,...(
|
|
1411
|
+
}`,...(eo=(Zn=te.parameters)==null?void 0:Zn.docs)==null?void 0:eo.source},description:{story:"Please don't use long labels and descriptions for menu items.",...(ao=(to=te.parameters)==null?void 0:to.docs)==null?void 0:ao.description}}};var no,oo,ro,io,so;ae.parameters={...ae.parameters,docs:{...(no=ae.parameters)==null?void 0:no.docs,source:{originalSource:`{
|
|
1412
1412
|
args: Submenus.args,
|
|
1413
1413
|
render: function StoryRender(args) {
|
|
1414
1414
|
const [dialogOpen, setDialogOpen] = useState(false);
|
|
@@ -1514,7 +1514,7 @@ can efficiently interact with menus.
|
|
|
1514
1514
|
});
|
|
1515
1515
|
});
|
|
1516
1516
|
}
|
|
1517
|
-
}`,...(
|
|
1517
|
+
}`,...(ro=(oo=ae.parameters)==null?void 0:oo.docs)==null?void 0:ro.source},description:{story:"Dropdown menu can be used inside a dialog or other popups.",...(so=(io=ae.parameters)==null?void 0:io.docs)==null?void 0:so.description}}};var lo,co,uo,mo,po;q.parameters={...q.parameters,docs:{...(lo=q.parameters)==null?void 0:lo.docs,source:{originalSource:`{
|
|
1518
1518
|
render: function WithItemOpeningDialog(args) {
|
|
1519
1519
|
const [open, setOpen] = useState(false);
|
|
1520
1520
|
return <>
|
|
@@ -1552,13 +1552,13 @@ can efficiently interact with menus.
|
|
|
1552
1552
|
await userEvent.keyboard('{Escape}');
|
|
1553
1553
|
});
|
|
1554
1554
|
}
|
|
1555
|
-
}`,...(
|
|
1555
|
+
}`,...(uo=(co=q.parameters)==null?void 0:co.docs)==null?void 0:uo.source},description:{story:"Dropdown menu items can also open external dialogs.",...(po=(mo=q.parameters)==null?void 0:mo.docs)==null?void 0:po.description}}};var go,yo,wo,bo,ho;ne.parameters={...ne.parameters,docs:{...(go=ne.parameters)==null?void 0:go.docs,source:{originalSource:`{
|
|
1556
1556
|
args: {
|
|
1557
1557
|
keepMounted: true,
|
|
1558
1558
|
children: <CustomDropdownMenuItemWithDialog />
|
|
1559
1559
|
},
|
|
1560
1560
|
play: ItemOpeningDialog.play
|
|
1561
|
-
}`,...(
|
|
1561
|
+
}`,...(wo=(yo=ne.parameters)==null?void 0:yo.docs)==null?void 0:wo.source},description:{story:`In some cases you might want to wrap DropdownMenuItem with a custom component, which might have a dialog inside:
|
|
1562
1562
|
|
|
1563
1563
|
\`\`\`tsx
|
|
1564
1564
|
const CustomDropdownMenuItemWithDialog = () => {
|
|
@@ -1574,4 +1574,30 @@ const CustomDropdownMenuItemWithDialog = () => {
|
|
|
1574
1574
|
};
|
|
1575
1575
|
\`\`\`
|
|
1576
1576
|
|
|
1577
|
-
In this case you need to use the \`keepMounted\` prop to prevent dialog from closing when menu unmounts.`,...(
|
|
1577
|
+
In this case you need to use the \`keepMounted\` prop to prevent dialog from closing when menu unmounts.`,...(ho=(bo=ne.parameters)==null?void 0:bo.docs)==null?void 0:ho.description}}};var fo,ko,Bo,vo,xo;oe.parameters={...oe.parameters,docs:{...(fo=oe.parameters)==null?void 0:fo.docs,source:{originalSource:`{
|
|
1578
|
+
render: () => {
|
|
1579
|
+
const CustomButton = forwardRef<HTMLButtonElement, Record<string, unknown>>((props, ref) => {
|
|
1580
|
+
return <button {...props} ref={ref}>
|
|
1581
|
+
Button
|
|
1582
|
+
</button>;
|
|
1583
|
+
});
|
|
1584
|
+
return <DropdownMenu open={true} trigger={<CustomButton />}>
|
|
1585
|
+
<DropdownMenuRadioGroup>
|
|
1586
|
+
<DropdownMenuItem label="Transfer balance" onClick={callbacks.items.transferBalance} />
|
|
1587
|
+
<DropdownMenuItem label="Add extra hours" onClick={callbacks.items.addExtraHours} />
|
|
1588
|
+
</DropdownMenuRadioGroup>
|
|
1589
|
+
</DropdownMenu>;
|
|
1590
|
+
}
|
|
1591
|
+
}`,...(Bo=(ko=oe.parameters)==null?void 0:ko.docs)==null?void 0:Bo.source},description:{story:`Custom DropDownMenu triggers must forward the ref and props to the underlying DOM node to ensure proper dropdown positioning.
|
|
1592
|
+
|
|
1593
|
+
\`\`\`tsx
|
|
1594
|
+
const CustomButton = forwardRef<HTMLButtonElement, {}>(
|
|
1595
|
+
(props, ref) => {
|
|
1596
|
+
return <button {...props} ref={ref} />;
|
|
1597
|
+
},
|
|
1598
|
+
);
|
|
1599
|
+
|
|
1600
|
+
<DropdownMenu open={true} trigger={<CustomButton />}>
|
|
1601
|
+
...
|
|
1602
|
+
</DropdownMenu>
|
|
1603
|
+
\`\`\``,...(xo=(vo=oe.parameters)==null?void 0:vo.docs)==null?void 0:xo.description}}};const vr=["Default","Uncontrolled","UncontrolledDefaultOpen","Controlled","ControlledDefaultOpen","ControllingPosition","SideInlineEnd","SideInlineStart","SideLeft","SideRight","SideTop","AlignStart","AlignEnd","DisabledItems","Description","Groups","Dividers","LeadingElements","Links","RadioGroups","CheckboxItems","SelectItems","ControllingSelectPosition","SelectSideInlineEnd","SelectSideInlineStart","SelectSideLeft","SelectSideRight","SelectSideTop","SelectAlignStart","SelectAlignEnd","Submenus","ControllingSubmenuPosition","SubmenuSideInlineEnd","SubmenuSideInlineStart","SubmenuSideLeft","SubmenuSideRight","SubmenuSideTop","SubmenuAlignStart","SubmenuAlignEnd","ControlledSubmenusAndSelects","KeepMounted","OnMobile","KeyboardNavigation","KeyboardNavigationOnMobile","Scroll","LongLabels","InsideDialog","ItemOpeningDialog","DialogInsideCustomItemComponent","CustomChildComponent"];export{we as AlignEnd,ye as AlignStart,Q as CheckboxItems,M as Controlled,ce as ControlledDefaultOpen,X as ControlledSubmenusAndSelects,z as ControllingPosition,y as ControllingSelectPosition,w as ControllingSubmenuPosition,oe as CustomChildComponent,se as Default,G as Description,ne as DialogInsideCustomItemComponent,P as DisabledItems,Y as Dividers,K as Groups,ae as InsideDialog,q as ItemOpeningDialog,Z as KeepMounted,j as KeyboardNavigation,He as KeyboardNavigationOnMobile,_ as LeadingElements,$ as Links,te as LongLabels,A as OnMobile,J as RadioGroups,ee as Scroll,xe as SelectAlignEnd,ve as SelectAlignStart,I as SelectItems,be as SelectSideInlineEnd,he as SelectSideInlineStart,fe as SelectSideLeft,ke as SelectSideRight,Be as SelectSideTop,ue as SideInlineEnd,de as SideInlineStart,me as SideLeft,pe as SideRight,ge as SideTop,Ee as SubmenuAlignEnd,Te as SubmenuAlignStart,Re as SubmenuSideInlineEnd,Se as SubmenuSideInlineStart,Ce as SubmenuSideLeft,De as SubmenuSideRight,Oe as SubmenuSideTop,H as Submenus,U as Uncontrolled,le as UncontrolledDefaultOpen,vr as __namedExportsOrder,Br as default};
|