@preply/ds-docs 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/decorators/withIntlProvider.tsx +1 -1
- package/.storybook/main.ts +1 -0
- package/.storybook/preview.tsx +5 -0
- package/chromatic.config.json +10 -0
- package/dist/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
- package/dist/assets/00.LayoutFlex.stories-pFo1xsBe.js +85 -0
- package/dist/assets/00.applications-Cqkdr1wk.js +50 -0
- package/dist/assets/00.favicons.guide-B91Vhoka.js +21 -0
- package/dist/assets/00.token-explorer-B19aUGGg.js +340 -0
- package/dist/assets/00.using-responsive-props-B3Gr_s-n.js +18 -0
- package/dist/assets/01.semantic-tokens-ClbORo2f.js +11 -0
- package/dist/assets/01.using-shorthand-props-CZYYf4mA.js +39 -0
- package/dist/assets/10.Combinations.stories-BktZvBWq.js +128 -0
- package/dist/assets/10.fonts.guide-BGeAIZ8f.js +39 -0
- package/dist/assets/10.ssr--ERdtJ_Z.js +91 -0
- package/dist/assets/11.fonts.explorer-CApH9AGF.js +2 -0
- package/dist/assets/11.ssr.app-router-DusJ4Mbq.js +59 -0
- package/dist/assets/20.libraries-AkYtGwIz.js +22 -0
- package/dist/assets/2025-q4-ds-cleanup-njc6pOZy.js +351 -0
- package/dist/assets/30.icons.explorer-D8JDwXl5.js +72 -0
- package/dist/assets/30.storybook-C2VMIEWx.js +42 -0
- package/dist/assets/40.illustrations.explorer-Dexx0-Yq.js +21 -0
- package/dist/assets/60.components-EsXml7S8.js +22 -0
- package/dist/assets/90.advanced-CGMa0hIb.js +32 -0
- package/dist/assets/Accordion-BGpSQDcU.js +25 -0
- package/dist/assets/Accordion-bbEcwV1l.css +1 -0
- package/dist/assets/{Accordion.stories-CLwah67K.js → Accordion.stories-DZqm_pl0.js} +7 -7
- package/dist/assets/{Accordion.tests.stories-CFH7p1Jq.js → Accordion.tests.stories-CETE9vG5.js} +9 -9
- package/dist/assets/AlertBanner.primitives.stories-C1Rk8KVQ.js +14 -0
- package/dist/assets/AlertBanner.stories-CJnU52Gn.js +112 -0
- package/dist/assets/AlertBannerAction-BSNrnhbi.js +216 -0
- package/dist/assets/AlertBannerAction-UAyHHOqS.css +1 -0
- package/dist/assets/AlertDialog-Cr1_lUp6.css +1 -0
- package/dist/assets/AlertDialog-D1kj7VoM.js +6 -0
- package/dist/assets/{AlertDialog.stories-BKT7nitb.js → AlertDialog.stories-CjXjghMW.js} +11 -7
- package/dist/assets/Avatar-CZrWRM_5.css +1 -0
- package/dist/assets/Avatar-LEDcSb51.js +6 -0
- package/dist/assets/Avatar.stories-B6YvTFd5.js +42 -0
- package/dist/assets/{AvatarWithStatus-azmN9QBq.css → AvatarWithStatus-DNgVIYbt.css} +1 -1
- package/dist/assets/AvatarWithStatus-Dacm-jO_.js +6 -0
- package/dist/assets/AvatarWithStatus.stories-D9tFABve.js +36 -0
- package/dist/assets/Badge-CXba4Jz8.js +10 -0
- package/dist/assets/{Badge-BVnE8GHY.css → Badge-ChvYkJOj.css} +1 -1
- package/dist/assets/Badge.stories-6McX8lAA.js +90 -0
- package/dist/assets/Box-CJ3Eco8o.js +3 -0
- package/dist/assets/Box-CoMoVRxI.css +1 -0
- package/dist/assets/Box.stories-D7RLIL2b.js +44 -0
- package/dist/assets/BubbleCounter-DwJsPISN.js +5 -0
- package/dist/assets/BubbleCounter.stories-CaNBUXy9.js +246 -0
- package/dist/assets/Button-DnVrHohm.js +18 -0
- package/dist/assets/Button-DsoMn9D3.css +1 -0
- package/dist/assets/Button.stories-DB4FO1yP.js +271 -0
- package/dist/assets/ButtonBase-DMbDbkQ4.css +1 -0
- package/dist/assets/ButtonBase-DV0YtoS6.js +8 -0
- package/dist/assets/CalloutBanner-ChlWZtBk.css +1 -0
- package/dist/assets/CalloutBanner.stories-DMr5laA1.js +212 -0
- package/dist/assets/CalloutBannerText-Lb5ksCJz.css +1 -0
- package/dist/assets/CalloutBannerText-pe-2SkHW.js +75 -0
- package/dist/assets/Checkbox-B_qY1TUo.css +1 -0
- package/dist/assets/Checkbox-DEB6VLYS.js +10 -0
- package/dist/assets/{Checkbox.stories-ClI-ZBnj.js → Checkbox.stories-C_Oku35V.js} +6 -6
- package/dist/assets/Checkbox.tests.stories-BPHBBZi3.js +68 -0
- package/dist/assets/Chips-DK10vypy.css +1 -0
- package/dist/assets/Chips.stories-_LC622UQ.js +148 -0
- package/dist/assets/Color-6BZIO3FS-Cli2qKZW.js +1 -0
- package/dist/assets/{ComposingDialogs.stories-DwVqal9K.js → ComposingDialogs.stories-BSCyTSJL.js} +3 -3
- package/dist/assets/ComposingPopovers.stories-cp3PAdHA.js +49 -0
- package/dist/assets/CountryFlag-DMEPQuIc.js +49 -0
- package/dist/assets/{CountryFlag.stories-hf40f81N.js → CountryFlag.stories-CCfcgg_Y.js} +6 -6
- package/dist/assets/CountryFlag.test.stories-BaGoS-6l.js +27 -0
- package/dist/assets/Dialog-DCPUOQU4.js +13 -0
- package/dist/assets/Dialog.primitives-BPvLcj0z.css +1 -0
- package/dist/assets/Dialog.primitives.stories-Vxeh7YZt.js +237 -0
- package/dist/assets/Dialog.stories-87tBh-R6.js +267 -0
- package/dist/assets/Dialog.test.stories-B4pw7sJ3.js +146 -0
- package/dist/assets/DialogActions-BuK-fnKs.js +101 -0
- package/dist/assets/DialogCloseButton-Bh5fJ-N5.css +1 -0
- package/dist/assets/DialogCloseButton-dPdpMifg.js +149 -0
- package/dist/assets/DismissibleChips-Dv66pNAL.js +1 -0
- package/dist/assets/DismissibleChips.stories-nMCs_O4R.js +625 -0
- package/dist/assets/{Divider-DECo0bYW.css → Divider-BVw27QR_.css} +1 -1
- package/dist/assets/Divider-BsdKe9ia.js +1 -0
- package/dist/assets/Divider.stories-DMxdOUMT.js +9 -0
- package/dist/assets/DocsRenderer-LL677BLK-CToDaeBi.js +2 -0
- package/dist/assets/DropdownMenu-BUteP_4e.js +1258 -0
- package/dist/assets/DropdownMenu-Dp5QD_2I.css +1 -0
- package/dist/assets/DropdownMenu.stories-CPFPB_iw.js +1613 -0
- package/dist/assets/FieldButton-B7nd3jTk.css +1 -0
- package/dist/assets/FieldButton-lc__KGvz.js +1 -0
- package/dist/assets/FieldButton.stories-BweftrEg.js +1 -0
- package/dist/assets/FormControl-DX3yRMc2.css +1 -0
- package/dist/assets/FormControl-cSvM3XwI.js +7 -0
- package/dist/assets/FormControl.stories-guYQ8AuE.js +42 -0
- package/dist/assets/Heading-BMcfRMjT.css +1 -0
- package/dist/assets/Heading-CEZfMm-F.js +1 -0
- package/dist/assets/Heading.stories-CzERNny6.js +67 -0
- package/dist/assets/Icon-CfZyHxyH.js +8 -0
- package/dist/assets/{Icon-CyGLQNx7.css → Icon-D-_6_kTJ.css} +1 -1
- package/dist/assets/Icon-RSC-BpFBpboR.js +6 -0
- package/dist/assets/Icon.stories-D27wol8h.js +45 -0
- package/dist/assets/IconButton-CUt4Aks_.js +8 -0
- package/dist/assets/IconButton-D-myVwPD.css +1 -0
- package/dist/assets/IconTile.stories-jvAqK25q.js +88 -0
- package/dist/assets/Input-DXnvG-Wl.js +95 -0
- package/dist/assets/InputContainer-CKX9LGmw.js +2 -0
- package/dist/assets/InputContainer-dj6obgaH.css +1 -0
- package/dist/assets/IntegrationWithReactHookForm.stories-CW7Lqen8.js +467 -0
- package/dist/assets/{IntlFormattedDateTime.stories-BCwbTrw1.js → IntlFormattedAggregatedDateTime-CsA6eNMt.js} +112 -94
- package/dist/assets/{IntlFormattedCurrency.stories-j1D4xFto.js → IntlFormattedCurrency-CAb0INYF.js} +149 -125
- package/dist/assets/IntlFormattedCurrency.stories-CDdFf0Ih.js +1 -0
- package/dist/assets/IntlFormattedDateTime.stories-UGK_UBla.js +2 -0
- package/dist/assets/{constants-DDJ2G0OO.js → IntlFormattedTime-CFUwDROI.js} +853 -761
- package/dist/assets/LayoutFlex-Bc-UxKN0.css +1 -0
- package/dist/assets/LayoutFlex-DdWp4cl3.js +1 -0
- package/dist/assets/LayoutFlexItem-D6I-QYqv.css +1 -0
- package/dist/assets/LayoutFlexItem-DE78Bh3c.js +1 -0
- package/dist/assets/LayoutGrid-CIFhWu8r.css +1 -0
- package/dist/assets/LayoutGrid-qM5_bxVY.js +1 -0
- package/dist/assets/LayoutGrid.stories-DnBXjNoY.js +88 -0
- package/dist/assets/LayoutGridItem-BDeI61oE.css +1 -0
- package/dist/assets/LayoutGridItem-DXWb3V6X.js +1 -0
- package/dist/assets/Link-DZ7eineG.css +1 -0
- package/dist/assets/Link-J-HUcV5T.js +5 -0
- package/dist/assets/{Link.stories-6gHkl5xC.js → Link.stories-Bi7F_Vkw.js} +7 -7
- package/dist/assets/Loader-D4VDQ8pj.css +1 -0
- package/dist/assets/Loader-D9Ihhamv.js +1 -0
- package/dist/assets/Loader.stories-CA2r7ptV.js +37 -0
- package/dist/assets/MultiSelectChips-DLTwAQne.js +2 -0
- package/dist/assets/MultiSelectChips.stories-BXvs5PAK.js +608 -0
- package/dist/assets/NativeSelectField.stories-D0re4a3o.js +295 -0
- package/dist/assets/NumberField-BAofx_Ni.js +6 -0
- package/dist/assets/NumberField.stories-BhuTuTmY.js +254 -0
- package/dist/assets/ObserveIntersection-DPsyMqP-.js +8 -0
- package/dist/assets/ObserveIntersection.stories-C5r2quD1.js +27 -0
- package/dist/assets/OnboardingTooltip-By90tTWJ.css +1 -0
- package/dist/assets/OnboardingTooltip-D8NhfEzc.js +24 -0
- package/dist/assets/OnboardingTooltip.stories-D2Y_je7z.js +107 -0
- package/dist/assets/OnboardingTooltip.tests.stories-Chu-efpG.js +79 -0
- package/dist/assets/OnboardingTour-90hHg-Pp.css +1 -0
- package/dist/assets/OnboardingTour-DGI3bTQy.js +4 -0
- package/dist/assets/OnboardingTour.stories-Cb1WP0Hu.js +50 -0
- package/dist/assets/{OnboardingTour.tests.stories-CHMykq2a.js → OnboardingTour.tests.stories-B05mBGhB.js} +6 -6
- package/dist/assets/PasswordField-ByApWpbK.js +6 -0
- package/dist/assets/PasswordField.stories-DMtrOVsn.js +229 -0
- package/dist/assets/PreplyLogo-D-slBTep.js +3 -0
- package/dist/assets/PreplyLogo.stories-uJXJ3dh_.js +93 -0
- package/dist/assets/ProgressBar-Tb0nv9N6.js +4 -0
- package/dist/assets/ProgressBar-ZiF8cU84.css +1 -0
- package/dist/assets/ProgressBar.stories-Bj5ouQO7.js +43 -0
- package/dist/assets/ProgressSteps-CKNbDWn0.js +4 -0
- package/dist/assets/ProgressSteps-LZubx2ie.css +1 -0
- package/dist/assets/ProgressSteps.stories-Dl5cvdWw.js +31 -0
- package/dist/assets/PromoDialog-Daxo9KGU.js +3 -0
- package/dist/assets/RangeSlider-BshsrfHH.js +4 -0
- package/dist/assets/RangeSlider.stories-BnxUgnUq.js +117 -0
- package/dist/assets/Rating-7Lokv5qX.js +2 -0
- package/dist/assets/Rating.stories-C6vLq72a.js +115 -0
- package/dist/assets/RatingInput-B9JvC6a9.js +30 -0
- package/dist/assets/RatingInput.stories-CZaxR49A.js +421 -0
- package/dist/assets/SelectField-_eSdIkCW.js +19 -0
- package/dist/assets/SelectField-jvir0s5w.css +1 -0
- package/dist/assets/SelectField.stories-CeBOPAQf.js +517 -0
- package/dist/assets/ShowOnIntersection-sdAtBMhN.js +11 -0
- package/dist/assets/ShowOnIntersection.stories-Lmr1KetU.js +17 -0
- package/dist/assets/SingleSelectChips-BuIHP3oW.js +2 -0
- package/dist/assets/{SingleSelectChips.stories-CTAvW0Y9.js → SingleSelectChips.stories-z43WCX3L.js} +22 -22
- package/dist/assets/Slider-BJ8Eqvyw.css +1 -0
- package/dist/assets/Slider-BjEfhJ_o.js +2 -0
- package/dist/assets/Slider.stories-OZrQotEf.js +69 -0
- package/dist/assets/Spinner-9IaQuPm2.js +1 -0
- package/dist/assets/Spinner-CIgevzeA.css +1 -0
- package/dist/assets/Stars-DRmASRCW.css +1 -0
- package/dist/assets/Stars-DuQupRe3.js +1 -0
- package/dist/assets/Steps-BAxCCGnQ.css +1 -0
- package/dist/assets/Steps-Bf2x77zr.js +26 -0
- package/dist/assets/{Steps.stories-DqOo6fKy.js → Steps.stories-DFPBr2Yl.js} +13 -11
- package/dist/assets/Switch-ClfB15Th.css +1 -0
- package/dist/assets/Switch-DPX8X1b7.js +12 -0
- package/dist/assets/Switch.stories-EIYyG0Zt.js +151 -0
- package/dist/assets/Text-BTI4NIf0.css +1 -0
- package/dist/assets/Text-bm2vnOS2.js +1 -0
- package/dist/assets/Text.stories-CmIl_fwM.js +67 -0
- package/dist/assets/TextField-zS8J7vJP.js +6 -0
- package/dist/assets/TextField.stories-BUVrLpus.js +254 -0
- package/dist/assets/{TextHighlighted-CzbRMqIZ.css → TextHighlighted-C53ygX_A.css} +1 -1
- package/dist/assets/TextHighlighted-DF3lEelY.js +1 -0
- package/dist/assets/TextHighlighted.stories-CqDVxX79.js +32 -0
- package/dist/assets/{TextInline-CNIzsRbS.css → TextInline-BDaxjuE1.css} +1 -1
- package/dist/assets/TextInline-CHB850A5.js +1 -0
- package/dist/assets/TextInline.stories-CN5P8M-t.js +50 -0
- package/dist/assets/TextareaField-D-D245Qp.js +6 -0
- package/dist/assets/TextareaField.stories-zf-ovHbR.js +272 -0
- package/dist/assets/Toast-BwHq_wh7.js +3 -0
- package/dist/assets/Toast-CeQJ1lVu.css +1 -0
- package/dist/assets/Toast.stories-ojcdW7OV.js +183 -0
- package/dist/assets/TokyoUIAttach-CJ32NKTG.js +1 -0
- package/dist/assets/TokyoUIAvailability7LateNight-DffduFvP.js +1 -0
- package/dist/assets/TokyoUICheck-UkrDdu35.js +1 -0
- package/dist/assets/TokyoUICheckmark-6GaMBtS8.js +1 -0
- package/dist/assets/TokyoUIChevronDown-CS0lTt7n.js +1 -0
- package/dist/assets/TokyoUIChevronRight-BtUABx06.js +1 -0
- package/dist/assets/TokyoUIClose-cJyNy-kq.js +1 -0
- package/dist/assets/TokyoUIEmojiFrowning-DEhH_o6k.js +1 -0
- package/dist/assets/TokyoUIErrorWarning-CE_6hT_0.js +1 -0
- package/dist/assets/TokyoUIExerciseClosedGapsJumble-CmLQbqx9.js +1 -0
- package/dist/assets/TokyoUIEye--Ky-ic4j.js +1 -0
- package/dist/assets/TokyoUIFav-D3EBPocg.js +1 -0
- package/dist/assets/TokyoUIInfo-B-CriP10.js +1 -0
- package/dist/assets/TokyoUILanguage-B0kNm-zw.js +1 -0
- package/dist/assets/TokyoUILibraryExplore-BZ10fOAZ.js +1 -0
- package/dist/assets/TokyoUILock-Chkf2ogE.js +1 -0
- package/dist/assets/TokyoUIMessages-z4JOaU4E.js +1 -0
- package/dist/assets/TokyoUIMinus-DKK-A5EK.js +1 -0
- package/dist/assets/TokyoUINotebook-DO8t9gWt.js +1 -0
- package/dist/assets/TokyoUINotesWithPad-DM2X7aVA.js +1 -0
- package/dist/assets/TokyoUIPhone-Bw5Vf4vA.js +1 -0
- package/dist/assets/TokyoUISettings-D5pBmcYk.js +1 -0
- package/dist/assets/TokyoUISparkle-C3Cy7wMI.js +1 -0
- package/dist/assets/TokyoUIStarFilled-CYq7gSvg.js +1 -0
- package/dist/assets/TokyoUITag-Cg8pSiwB.js +1 -0
- package/dist/assets/TokyoUIUpload-B1wN3uN1.js +1 -0
- package/dist/assets/TokyoUIUser-BxbKTbW_.js +1 -0
- package/dist/assets/{Tooltip-Cm9bKrYj.css → Tooltip-C5LpnpaC.css} +1 -1
- package/dist/assets/Tooltip-IQdlsINh.js +9 -0
- package/dist/assets/Tooltip.stories-9Tn4uyBh.js +93 -0
- package/dist/assets/Tooltip.tests.stories-Cr4rBDLb.js +65 -0
- package/dist/assets/VisuallyHidden-CN0xhFLZ.js +1 -0
- package/dist/assets/VisuallyHidden-SLhaLKxx.css +1 -0
- package/dist/assets/WithTooltip-65CFNBJE-B-ngulbF.js +9 -0
- package/dist/assets/align-self-B8vQODdk.css +1 -0
- package/dist/assets/align-self-DLZqaACP.js +1 -0
- package/dist/assets/ar-CmAh1fW1.js +1 -0
- package/dist/assets/axe-C7CO230w.js +20 -0
- package/dist/assets/breakpoints-DVI9b-sj.js +31 -0
- package/dist/assets/breakpoints-DhB77ppz.js +32 -0
- package/dist/assets/breakpoints-JehRf-HQ.js +30 -0
- package/dist/assets/{changelog-BoskfpJ8.js → changelog-BlpT3PVh.js} +18 -3
- package/dist/assets/chunk-242VQQM5-BHHKbgg-.js +1 -0
- package/dist/assets/chunk-3LY4VQVK-Di70sXb8.js +6 -0
- package/dist/assets/chunk-BneVvdWh.js +1 -0
- package/dist/assets/chunk-YKABRMAI-tsMt0pG-.js +18 -0
- package/dist/assets/client-o3HipSzo.js +1 -0
- package/dist/assets/components-B2mdrQXl.js +1 -0
- package/dist/assets/components-BJI6UJJQ.js +250 -0
- package/dist/assets/constants-BKSB-IRi.js +37 -0
- package/dist/assets/createRequiredContext-CgxIAZIj.js +241 -0
- package/dist/assets/createRequiredContext-rvejDfGq.css +1 -0
- package/dist/assets/cs-o6LA2LFi.js +1 -0
- package/dist/assets/de-CGU9rRAn.js +1 -0
- package/dist/assets/dist-Cc1j9Pjk.js +1 -0
- package/dist/assets/dist-CrJFSSHJ.css +1 -0
- package/dist/assets/dist-DtfJeYQK.js +32 -0
- package/dist/assets/dist-XW9XCd1i.js +122 -0
- package/dist/assets/emotion-unitless.esm-NifOLKB5.js +1 -0
- package/dist/assets/en-CAnKwElg.js +1 -0
- package/dist/assets/es-MH1DT2kV.js +1 -0
- package/dist/assets/esm-CS074ZRu.js +12 -0
- package/dist/assets/filterAttributesPassedByRadixUIAtRuntime-CGiuUnR2.js +1 -0
- package/dist/assets/fonts-explorer.stories-I8-ZOqnR.js +100 -0
- package/dist/assets/formatter-EIJCOSYU-CrRlJc_C.js +1 -0
- package/dist/assets/fr-CgnvB_BI.js +1 -0
- package/dist/assets/getTokenVar-BdWui4zI.js +11 -0
- package/dist/assets/gradientBorders-CStgfkEm.js +45 -0
- package/dist/assets/hk-CaQALTDd.js +1 -0
- package/dist/assets/hover-BZswJq9X.js +13 -0
- package/dist/assets/hover-DkvE2XjW.js +14 -0
- package/dist/assets/hover-xopBYDG-.js +16 -0
- package/dist/assets/id-Bp-BGWpK.js +1 -0
- package/dist/assets/iframe-CYkk6Y66.css +1 -0
- package/dist/assets/iframe-f34VuKy-.js +1194 -0
- package/dist/assets/intro-OCMNWtPd.js +31 -0
- package/dist/assets/it-BMSKWkCc.js +1 -0
- package/dist/assets/ja-wtIn1pnV.js +1 -0
- package/dist/assets/jsx-runtime-C2wGStra.js +1 -0
- package/dist/assets/ko-DvhW2pVO.js +1 -0
- package/dist/assets/layout-relative-BDjBJtei.js +1 -0
- package/dist/assets/layout-relative-D3aa9xon.css +1 -0
- package/dist/assets/layout-relative.module-BEsoJgyf.js +1 -0
- package/dist/assets/lib-CXCPi5ID.js +26 -0
- package/dist/assets/matchers-5TDFFDYO-CdU16gNa.js +28 -0
- package/dist/assets/mcp-wYzkbrqT.js +32 -0
- package/dist/assets/mdx-react-shim-Bi0BC7jy.js +1 -0
- package/dist/assets/migrating-from-less-DfjDPQaC.js +36 -0
- package/dist/assets/nl-BW9s7SpL.js +1 -0
- package/dist/assets/pl-B0BEw5na.js +1 -0
- package/dist/assets/playground.stories-oI9ZDlnt.js +6 -0
- package/dist/assets/preload-helper-nVtPd9zc.js +1 -0
- package/dist/assets/pt-qEWGT9cy.js +1 -0
- package/dist/assets/react-18-ziWOvQTm.js +1 -0
- package/dist/assets/react-B8jdHdWa.js +1 -0
- package/dist/assets/react-C6B6irz5.js +1 -0
- package/dist/assets/react-C7IZe2D1.js +1 -0
- package/dist/assets/react-dom-CLuuWI32.js +8 -0
- package/dist/assets/render-icon-Dzkg3KVE.js +1 -0
- package/dist/assets/ro-DLH7plv7.js +1 -0
- package/dist/assets/ru-BmiT91mV.js +1 -0
- package/dist/assets/shared-strings-DrlpFtg5.js +1 -0
- package/dist/assets/shim-Do3tPrxV.js +1 -0
- package/dist/assets/storybook-utils-CXrHOWy7.js +1 -0
- package/dist/assets/styled-components.browser.esm-BqKZXl6d.js +2 -0
- package/dist/assets/styled-components.browser.esm-ByE8r-7j.js +2 -0
- package/dist/assets/sv-CW9z0vaU.js +1 -0
- package/dist/assets/syntaxhighlighter-ED5Y7EFY-BYBQ9ptv.js +6 -0
- package/dist/assets/text-accent-CfNKCcRq.js +1 -0
- package/dist/assets/text-centered-DCp9pLpt.css +1 -0
- package/dist/assets/text-centered-ozyo-Yf9.js +1 -0
- package/dist/assets/th-isRlGLm5.js +1 -0
- package/dist/assets/theming-BrHPXhKw.js +1 -0
- package/dist/assets/theming-C7TmxyGw.js +39 -0
- package/dist/assets/tokens-C1gyoh8D.js +16 -0
- package/dist/assets/tokens-C7Hn5QJc.js +15 -0
- package/dist/assets/tokens-CubiKgE5.js +15 -0
- package/dist/assets/tr-CvfBJD7Q.js +1 -0
- package/dist/assets/tw-DpiBe17Q.js +1 -0
- package/dist/assets/ua-CPYW3Hlj.js +1 -0
- package/dist/assets/useBreakpointMatch-B8CIBjwc.js +1 -0
- package/dist/assets/useControllableState-BBsZ9A2n.js +1 -0
- package/dist/assets/useMergeRefs-D0D5dYrn.js +1 -0
- package/dist/assets/usePortalElement-uqsVx9U8.js +19 -0
- package/dist/assets/useStableCallback-DnHVYLVo.js +1 -0
- package/dist/assets/welcome-t0_iHw7X.js +23 -0
- package/dist/assets/zeroheight-DxMICzug.js +75 -0
- package/dist/assets/zh-C43VYh_6.js +1 -0
- package/dist/iframe.html +69 -40
- package/dist/index.html +8 -3
- package/dist/index.json +1 -1
- package/dist/preview-stats.json +21532 -16519
- package/dist/project.json +1 -1
- package/dist/sb-addons/a11y-1/manager-bundle.js +55 -3
- package/dist/sb-addons/chromatic-com-storybook-5/manager-bundle.js +352 -0
- package/dist/sb-addons/chromatic-com-storybook-5/manager-bundle.js.LEGAL.txt +40 -0
- package/dist/sb-addons/docs-4/manager-bundle.js +1 -1
- package/dist/sb-addons/links-2/manager-bundle.js +1 -1
- package/dist/sb-addons/storybook-6/manager-bundle.js +3 -0
- package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +66 -66
- package/dist/sb-addons/vitest-3/manager-bundle.js +1 -1
- package/dist/sb-manager/globals-runtime.js +9758 -7407
- package/dist/sb-manager/runtime.js +3034 -2325
- package/dist/vite-inject-mocker-entry.js +2 -18
- package/package.json +19 -20
- package/pages/30.guides/70.assets/constants/icon-imports.ts +8 -0
- package/dist/assets/00-BMs4V7pn.css +0 -1
- package/dist/assets/00-CGymiNpA.css +0 -1
- package/dist/assets/00.LayoutFlex.stories-lllooXjc.js +0 -85
- package/dist/assets/00.applications-ApRgtzMF.js +0 -50
- package/dist/assets/00.favicons.guide-4ivqvu_K.js +0 -21
- package/dist/assets/00.token-explorer-DCBSOdHJ.js +0 -340
- package/dist/assets/00.using-responsive-props-BhAkr9Gn.js +0 -18
- package/dist/assets/01-2pw2iC19.css +0 -1
- package/dist/assets/01.semantic-tokens-BBQKcQ5o.js +0 -11
- package/dist/assets/01.using-shorthand-props-SxccG8oR.js +0 -39
- package/dist/assets/10.Combinations.stories-D3XySbv3.js +0 -128
- package/dist/assets/10.fonts.guide-p4vZ2TE8.js +0 -39
- package/dist/assets/10.ssr-BLS5aGYV.js +0 -91
- package/dist/assets/11.fonts.explorer-BMm1rcuE.js +0 -2
- package/dist/assets/11.ssr.app-router-B_LdKMuw.js +0 -59
- package/dist/assets/20.libraries-Uutk1t-k.js +0 -21
- package/dist/assets/2025-q4-ds-cleanup-D2AonoQX.js +0 -341
- package/dist/assets/30.icons.explorer-D63Br7GU.js +0 -72
- package/dist/assets/30.storybook-B_OtmSNE.js +0 -42
- package/dist/assets/40.illustrations.explorer-Pi9iaQwM.js +0 -21
- package/dist/assets/90.advanced-tEkbHxcl.js +0 -32
- package/dist/assets/Accordion-2avWtqXz.js +0 -23
- package/dist/assets/Accordion-DBIXJNVb.css +0 -1
- package/dist/assets/AlertBanner.primitives.stories-DpA-of6O.js +0 -14
- package/dist/assets/AlertBanner.stories-B7xxyCn2.js +0 -124
- package/dist/assets/AlertBannerAction-D14MnnIA.js +0 -128
- package/dist/assets/AlertBannerAction-Dgo9FikS.css +0 -1
- package/dist/assets/AlertDialog-B5rRXSxb.js +0 -4
- package/dist/assets/AlertDialog-DjB9AufV.css +0 -1
- package/dist/assets/Avatar-B6s9WtES.css +0 -1
- package/dist/assets/Avatar-Die_4zu0.js +0 -6
- package/dist/assets/Avatar.stories-DJHK0lEC.js +0 -42
- package/dist/assets/AvatarWithStatus.stories-E9QQr3Dr.js +0 -41
- package/dist/assets/Badge-BSDHZ3bI.js +0 -10
- package/dist/assets/Badge.stories-6FOVA96I.js +0 -90
- package/dist/assets/Box-CfDLuPKr.css +0 -1
- package/dist/assets/Box.stories-DAVs5Qmd.js +0 -44
- package/dist/assets/BubbleCounter.stories-DHv_hrNV.js +0 -242
- package/dist/assets/Button-C0Um_QuO.js +0 -18
- package/dist/assets/Button-U6ON1pQl.css +0 -1
- package/dist/assets/Button.stories-CTSwUwYJ.js +0 -270
- package/dist/assets/ButtonBase-Bv11I0L0.css +0 -1
- package/dist/assets/ButtonBase-DGinnt2u.js +0 -1
- package/dist/assets/ButtonBase-HkSfLFbE.js +0 -8
- package/dist/assets/ButtonBase-vTD2whCv.css +0 -1
- package/dist/assets/CalloutBanner-Cw440Euq.css +0 -1
- package/dist/assets/CalloutBanner.stories-C62ApsKt.js +0 -286
- package/dist/assets/Checkbox-CrI8PiHH.css +0 -1
- package/dist/assets/Checkbox-U8uzIr-e.js +0 -10
- package/dist/assets/Checkbox.tests.stories-CrLxNZ2d.js +0 -64
- package/dist/assets/Chips-BXIX_-Jx.css +0 -1
- package/dist/assets/Chips.stories-BMxD1fH1.js +0 -146
- package/dist/assets/Color-ASIRERSW-BsR8auWQ.js +0 -1
- package/dist/assets/ComposingPopovers.stories-DtmTbsU_.js +0 -49
- package/dist/assets/CountryFlag-D40CtNEa.js +0 -49
- package/dist/assets/CountryFlag.test.stories-Bde0Okud.js +0 -27
- package/dist/assets/Dialog-CJQmu6iz.js +0 -13
- package/dist/assets/Dialog.primitives-DLgD-yog.css +0 -1
- package/dist/assets/Dialog.primitives.stories-BRGfipHO.js +0 -213
- package/dist/assets/Dialog.stories-D4tyIGD0.js +0 -329
- package/dist/assets/Dialog.test.stories-xCqInD69.js +0 -146
- package/dist/assets/DialogActions-GLMqsJfB.js +0 -101
- package/dist/assets/DialogCloseButton-D5YliaRd.js +0 -149
- package/dist/assets/DialogCloseButton-DXcPNZE4.css +0 -1
- package/dist/assets/DismissibleChips-YCE2ttV-.js +0 -1
- package/dist/assets/DismissibleChips.stories-Cx3sJ6UG.js +0 -625
- package/dist/assets/Divider-j3vJV734.js +0 -1
- package/dist/assets/Divider.stories-CK-PipZt.js +0 -9
- package/dist/assets/DocsRenderer-GHJI37HO-WuLZQEsz.js +0 -2
- package/dist/assets/DropdownMenu-B9HIHqSr.css +0 -1
- package/dist/assets/DropdownMenu-CgNvtJ2F.js +0 -1232
- package/dist/assets/DropdownMenu.stories-DpmKDI1Q.js +0 -1603
- package/dist/assets/FieldButton-CDW5AvHN.css +0 -1
- package/dist/assets/FieldButton-DpHF49o_.js +0 -1
- package/dist/assets/FieldButton.stories-C7v9WweE.js +0 -1
- package/dist/assets/FormControl-BBqp99uJ.css +0 -1
- package/dist/assets/FormControl-Zqf1cIwP.js +0 -7
- package/dist/assets/FormControl.stories-D4xKaMaA.js +0 -42
- package/dist/assets/Heading-BTHqyLcz.css +0 -1
- package/dist/assets/Heading-Cj8Si45g.js +0 -1
- package/dist/assets/Heading.stories-BG_kLNJz.js +0 -67
- package/dist/assets/Icon-CC0yjdx9.js +0 -8
- package/dist/assets/Icon-RSC-Cl0H44C3.js +0 -6
- package/dist/assets/Icon.stories-DAIYY4Bp.js +0 -45
- package/dist/assets/IconButton-BpjNyYgD.js +0 -8
- package/dist/assets/IconButton-COydvoLU.css +0 -1
- package/dist/assets/IconTile-CAnlU9ss.js +0 -1
- package/dist/assets/IconTile-DDvHA75S.css +0 -1
- package/dist/assets/IconTile.stories-DnUYn3Id.js +0 -88
- package/dist/assets/Input-DuW1_5SG.js +0 -48
- package/dist/assets/InputContainer-Cmdo_xyq.js +0 -2
- package/dist/assets/InputContainer-DIiUCsnL.css +0 -1
- package/dist/assets/IntegrationWithReactHookForm.stories-9EImL3zR.js +0 -467
- package/dist/assets/LayoutFlex-7DoB3s9X.css +0 -1
- package/dist/assets/LayoutFlex-CTH6ELdm.js +0 -1
- package/dist/assets/LayoutFlex-DXRMJ9FH.js +0 -1
- package/dist/assets/LayoutFlex-vHEU4SLb.css +0 -1
- package/dist/assets/LayoutFlexItem-C4cPPR-1.css +0 -1
- package/dist/assets/LayoutFlexItem-lmgCv4Y9.js +0 -1
- package/dist/assets/LayoutGrid-CSKyUAin.css +0 -1
- package/dist/assets/LayoutGrid-CUGRXgEO.js +0 -1
- package/dist/assets/LayoutGrid-Cm59X3OY.css +0 -1
- package/dist/assets/LayoutGrid-SAztDD7Z.js +0 -1
- package/dist/assets/LayoutGrid.stories-2dbzhVi7.js +0 -88
- package/dist/assets/LayoutGridItem-Bo7Opdaq.css +0 -1
- package/dist/assets/LayoutGridItem-UTn4G6JO.js +0 -1
- package/dist/assets/Link-BAFCJR3T.js +0 -5
- package/dist/assets/Link-BIhxLhqK.css +0 -1
- package/dist/assets/Loader-hjoeRutr.css +0 -1
- package/dist/assets/Loader.stories-CG-Eo8vg.js +0 -37
- package/dist/assets/MultiSelectChips-CBnEtn4N.js +0 -2
- package/dist/assets/MultiSelectChips.stories-Ch4FxGM2.js +0 -608
- package/dist/assets/NativeSelectField.stories-Pj5dm9hL.js +0 -295
- package/dist/assets/NumberField-klmIiQAi.js +0 -6
- package/dist/assets/NumberField.stories-D740jISy.js +0 -254
- package/dist/assets/ObserveIntersection-Dx2gD1CU.js +0 -8
- package/dist/assets/ObserveIntersection.stories-JJPEw5oG.js +0 -27
- package/dist/assets/OnboardingTooltip-DzQhJzWc.js +0 -16
- package/dist/assets/OnboardingTooltip-X4QjsIe6.css +0 -1
- package/dist/assets/OnboardingTooltip.stories-BDgRgbzO.js +0 -107
- package/dist/assets/OnboardingTooltip.tests.stories-DrqovP8T.js +0 -79
- package/dist/assets/OnboardingTour-B5gEod5H.js +0 -4
- package/dist/assets/OnboardingTour-DoEbirUE.css +0 -1
- package/dist/assets/OnboardingTour.stories-BzHBS52z.js +0 -46
- package/dist/assets/PasswordField-BjqiXySY.js +0 -6
- package/dist/assets/PasswordField.stories-YCTP14pU.js +0 -229
- package/dist/assets/PreplyLogo.stories-lPBmn_E2.js +0 -95
- package/dist/assets/ProgressBar-N_jhfqno.css +0 -1
- package/dist/assets/ProgressBar.stories-DqvDJEeF.js +0 -44
- package/dist/assets/ProgressSteps-5GOrC9Qn.css +0 -1
- package/dist/assets/ProgressSteps-Dce_SjLt.js +0 -2
- package/dist/assets/ProgressSteps.stories-BMDqz7-Z.js +0 -31
- package/dist/assets/PromoDialog-DdnXVfH8.js +0 -3
- package/dist/assets/RangeSlider-MZqvjtBp.js +0 -4
- package/dist/assets/RangeSlider.stories-BS4-l1u4.js +0 -117
- package/dist/assets/Rating.stories-wHsrBw3w.js +0 -116
- package/dist/assets/RatingInput.stories-BKAXF4Qv.js +0 -455
- package/dist/assets/SelectField-BvrdbknI.css +0 -1
- package/dist/assets/SelectField-DU60q2LU.js +0 -19
- package/dist/assets/SelectField.stories-BKCyFPQa.js +0 -517
- package/dist/assets/ShowOnIntersection.stories-BdO_3n9P.js +0 -17
- package/dist/assets/SingleSelectChips-CDtny-H7.js +0 -2
- package/dist/assets/Slider-B8ndK7PX.js +0 -2
- package/dist/assets/Slider-B_IRLClB.css +0 -1
- package/dist/assets/Slider.stories-CBV0fePJ.js +0 -69
- package/dist/assets/Spinner-8-RB4YZR.js +0 -1
- package/dist/assets/Spinner-CzIq-Vt3.css +0 -1
- package/dist/assets/Stars-BJkSwBV2.css +0 -1
- package/dist/assets/Stars-BSTkfC0i.js +0 -1
- package/dist/assets/Steps-DUeCVcxV.js +0 -26
- package/dist/assets/Steps-nUB2CDHz.css +0 -1
- package/dist/assets/Switch-DHmH1ale.css +0 -1
- package/dist/assets/Switch-Dyoj_Z1P.js +0 -12
- package/dist/assets/Switch.stories-CDVDjU2B.js +0 -151
- package/dist/assets/Text-D2ADMZ83.css +0 -1
- package/dist/assets/Text-DJTKRzSb.js +0 -1
- package/dist/assets/Text-DvShrljd.js +0 -1
- package/dist/assets/Text-O3SM8a3p.css +0 -1
- package/dist/assets/Text.stories-DRuLuJwb.js +0 -67
- package/dist/assets/TextField-BSJgR_zK.js +0 -6
- package/dist/assets/TextField.stories-rtu-asgN.js +0 -254
- package/dist/assets/TextHighlighted.stories-Bc0bMLCv.js +0 -32
- package/dist/assets/TextInline.stories-DKWvwjg6.js +0 -50
- package/dist/assets/TextareaField-DUqOyVK5.js +0 -53
- package/dist/assets/TextareaField.stories-CiRYJL_j.js +0 -272
- package/dist/assets/Toast-PKFBYWQw.css +0 -1
- package/dist/assets/Toast.stories-S5qFLRPf.js +0 -185
- package/dist/assets/TokyoUIAttach-BsMlsNHQ.js +0 -1
- package/dist/assets/TokyoUIAvailability7LateNight-BUCnoHXS.js +0 -1
- package/dist/assets/TokyoUICheck-DQLX_x10.js +0 -1
- package/dist/assets/TokyoUICheckmark-BHJrELn_.js +0 -1
- package/dist/assets/TokyoUIChevronDown-DiBNbDdz.js +0 -1
- package/dist/assets/TokyoUIChevronRight-DRhJYmWB.js +0 -1
- package/dist/assets/TokyoUIClose-BfMyMrDa.js +0 -1
- package/dist/assets/TokyoUIEmojiFrowning-DkxcBN-M.js +0 -1
- package/dist/assets/TokyoUIErrorWarning-GuwQvo24.js +0 -1
- package/dist/assets/TokyoUIExerciseClosedGapsJumble-BhG23ylY.css +0 -1
- package/dist/assets/TokyoUIExerciseClosedGapsJumble-C8roFqfh.js +0 -1
- package/dist/assets/TokyoUIEye-oyrTN--k.js +0 -1
- package/dist/assets/TokyoUIFav-C-stY9U_.js +0 -1
- package/dist/assets/TokyoUIInfo-BSNbI4Gr.js +0 -1
- package/dist/assets/TokyoUILanguage-BcrymOo9.js +0 -1
- package/dist/assets/TokyoUILibraryExplore-DvvKpWd6.js +0 -1
- package/dist/assets/TokyoUILock-B22xkFQW.js +0 -1
- package/dist/assets/TokyoUIMessages-hZLnK87p.js +0 -1
- package/dist/assets/TokyoUIMinus-C6TctZRw.js +0 -1
- package/dist/assets/TokyoUINotebook-mwleX-o1.js +0 -1
- package/dist/assets/TokyoUINotesWithPad-CG0gLTYm.js +0 -1
- package/dist/assets/TokyoUIPhone-CFykqUer.js +0 -1
- package/dist/assets/TokyoUISettings-BbgnUEy1.js +0 -1
- package/dist/assets/TokyoUISparkle-DPOw7W2T.js +0 -1
- package/dist/assets/TokyoUIStarFilled-CF0iG37X.js +0 -1
- package/dist/assets/TokyoUITag-B1Xueyd7.js +0 -1
- package/dist/assets/TokyoUIUpload-CrasJ02A.js +0 -1
- package/dist/assets/TokyoUIUser-XhPCF9-5.js +0 -1
- package/dist/assets/Tooltip-BiqKWYpo.js +0 -9
- package/dist/assets/Tooltip.stories-DCB24NyS.js +0 -93
- package/dist/assets/Tooltip.tests.stories-B3iLlPPq.js +0 -65
- package/dist/assets/VisuallyHidden-Jfhj9R2Y.css +0 -1
- package/dist/assets/VisuallyHidden-fvo3PSUE.js +0 -1
- package/dist/assets/WithTooltip-IO6J4KBT-BUV9ELqr.js +0 -9
- package/dist/assets/align-self-BYi8giLn.js +0 -1
- package/dist/assets/align-self-C4ATemga.css +0 -1
- package/dist/assets/ar-D1Y8jKvF.js +0 -1
- package/dist/assets/axe-BG-rWtCi.js +0 -30
- package/dist/assets/breakpoints-BfMlrtxE.js +0 -1
- package/dist/assets/breakpoints-CBpJ5xgl.js +0 -31
- package/dist/assets/breakpoints-Cu9uEe0J.js +0 -32
- package/dist/assets/breakpoints-CuJuvIR9.js +0 -30
- package/dist/assets/client-BN2KdiJY.js +0 -1
- package/dist/assets/componentNames-hc9KR2nX.js +0 -1
- package/dist/assets/constants-5om8Ptru.js +0 -1
- package/dist/assets/constants-DYYVurUY.js +0 -1
- package/dist/assets/consts-KAYct7Gj.js +0 -1
- package/dist/assets/createRequiredContext-B3Arn9-D.js +0 -241
- package/dist/assets/createRequiredContext-Cjxy1dPq.css +0 -1
- package/dist/assets/cs-CamDwf-r.js +0 -1
- package/dist/assets/de-CWLDjtzP.js +0 -1
- package/dist/assets/emotion-unitless.esm-BZwEwAnk.js +0 -1
- package/dist/assets/en-DmA3N6t9.js +0 -1
- package/dist/assets/es-C4sqCVWL.js +0 -1
- package/dist/assets/filterAttributesPassedByRadixUIAtRuntime-B7QTVwVw.js +0 -1
- package/dist/assets/filterAttributesPassedByRadixUIAtRuntime-Bye2JkZ0.js +0 -1
- package/dist/assets/fonts-explorer-B5KcfnOG.css +0 -1
- package/dist/assets/fonts-explorer.stories-CeMUwBuQ.js +0 -130
- package/dist/assets/formatter-QJ4M4OGQ-B2Vljo6_.js +0 -1
- package/dist/assets/fr-BxUkVECU.js +0 -1
- package/dist/assets/getTokenVar-CVkrm5Qs.js +0 -1
- package/dist/assets/getTokenVar-DmUJH1GU.js +0 -11
- package/dist/assets/gradientBorders-Q_ip9Ojv.js +0 -45
- package/dist/assets/hk-CamDwf-r.js +0 -1
- package/dist/assets/hover-C8NhPbjk.js +0 -13
- package/dist/assets/hover-C9fsErpn.js +0 -16
- package/dist/assets/hover-D55mJaWK.js +0 -14
- package/dist/assets/id-BUwhaEpp.js +0 -1
- package/dist/assets/iframe-B_74HtSc.js +0 -1891
- package/dist/assets/iframe-DR4kltvM.css +0 -1
- package/dist/assets/index-BJaBvJhB.js +0 -22
- package/dist/assets/index-BW8FBNWq.js +0 -193
- package/dist/assets/index-CC6DAVyL.js +0 -1
- package/dist/assets/index-Cnv20V_M.js +0 -1
- package/dist/assets/index-DIqvfT2b.js +0 -12
- package/dist/assets/index-DWFFXgf1.js +0 -1
- package/dist/assets/index-W3BB_3go.js +0 -41
- package/dist/assets/intro-DOuARa_Y.js +0 -31
- package/dist/assets/it-kJJ1S0qv.js +0 -1
- package/dist/assets/ja-CThSHCIs.js +0 -1
- package/dist/assets/ko-B1qhOecF.js +0 -1
- package/dist/assets/layout-relative-B9CiYPwj.js +0 -1
- package/dist/assets/layout-relative-BWwbkKin.css +0 -1
- package/dist/assets/layout-relative-DOxkgOJk.css +0 -1
- package/dist/assets/layout-relative.module-1z75aSwo-Dcy7i8oK.js +0 -1
- package/dist/assets/layout-relative.module-BIZVul8q.js +0 -1
- package/dist/assets/matchers-DMFSMG2O-CAdg16Fl.js +0 -14
- package/dist/assets/mcp-D2eIYE7x.js +0 -32
- package/dist/assets/message-DJT5rp5J.js +0 -1
- package/dist/assets/migrating-from-less-CxT_5hNC.js +0 -36
- package/dist/assets/mixins-DZk1Zeoo.js +0 -7
- package/dist/assets/nl-CEfRou2e.js +0 -1
- package/dist/assets/options-jUub4JL1.js +0 -1
- package/dist/assets/pl-B4SjM4RJ.js +0 -1
- package/dist/assets/playground.stories-DqwdOX0P.js +0 -6
- package/dist/assets/preload-helper-Dp1pzeXC.js +0 -1
- package/dist/assets/pt-B_cv-Bbz.js +0 -1
- package/dist/assets/react-18-DoE4ZK8O.js +0 -1
- package/dist/assets/render-icon-DSbVIpCz.js +0 -9
- package/dist/assets/render-icon-MT6RlyNs.js +0 -9
- package/dist/assets/ro-Wp2i1-uz.js +0 -1
- package/dist/assets/ru-C9RPHSvh.js +0 -1
- package/dist/assets/shared-strings-ThL9KyH0.js +0 -1
- package/dist/assets/store-B0wM9Zg8.js +0 -9
- package/dist/assets/styled-components.browser.esm-BHxIJD2_.js +0 -2
- package/dist/assets/styled-components.browser.esm-rrOBirU4.js +0 -2
- package/dist/assets/sv-BV70iAZ6.js +0 -1
- package/dist/assets/syntaxhighlighter-IQDEPFLK-BakL6JIW.js +0 -6
- package/dist/assets/text-accent-BQ9POoE5.js +0 -1
- package/dist/assets/text-centered-BEaaxMgl.js +0 -1
- package/dist/assets/text-centered-CT0UilMD.css +0 -1
- package/dist/assets/text-centered-CYnBFi3a.js +0 -1
- package/dist/assets/text-centered-DxXu3Wfr.css +0 -1
- package/dist/assets/th-DQ6Pn590.js +0 -1
- package/dist/assets/tokens-BEyO2LY-.js +0 -15
- package/dist/assets/tokens-Cg01svK-.js +0 -15
- package/dist/assets/tokens-CmSwgWJ8.js +0 -16
- package/dist/assets/tokens-im-qJUCZ.js +0 -1
- package/dist/assets/tr-ByOPzs3p.js +0 -1
- package/dist/assets/tw-CamDwf-r.js +0 -1
- package/dist/assets/ua-rcge5Swp.js +0 -1
- package/dist/assets/useControllableState-BB4EHwEp.js +0 -1
- package/dist/assets/useHostname-CbpnzdHv.js +0 -1
- package/dist/assets/useMergeRefs-CFhXCqbA.js +0 -1
- package/dist/assets/useMergeRefs-Caz9hOck.js +0 -1
- package/dist/assets/useOpenInteractionType-D3sASQWj.js +0 -15
- package/dist/assets/usePortalElement-Cbyb850w.js +0 -19
- package/dist/assets/useStableCallback-D5P5kDx5.js +0 -1
- package/dist/assets/useToken-OSVftwxQ.js +0 -1
- package/dist/assets/welcome-QqBTVkpV.js +0 -23
- package/dist/assets/zeroheight-BXMq4jvo.js +0 -75
- package/dist/assets/zh-B9zAtuTc.js +0 -1
- package/dist/sb-addons/storybook-5/manager-bundle.js +0 -3
- package/vitest.config.mts +0 -30
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
import{a as e,n as t}from"./chunk-BneVvdWh.js";import{t as n}from"./react-C7IZe2D1.js";import{t as r}from"./jsx-runtime-C2wGStra.js";import{t as i}from"./Heading-CEZfMm-F.js";import{t as a}from"./Button-DnVrHohm.js";import{r as o}from"./AlertBannerAction-BSNrnhbi.js";import{t as s}from"./Checkbox-DEB6VLYS.js";import{n as c,t as l}from"./SingleSelectChips-BuIHP3oW.js";import{n as u,t as d}from"./MultiSelectChips-DLTwAQne.js";import{n as f,t as p}from"./DismissibleChips-Dv66pNAL.js";import{t as m}from"./FormControl-cSvM3XwI.js";import{t as h}from"./LayoutFlex-DdWp4cl3.js";import{t as g}from"./NumberField-BAofx_Ni.js";import{t as _}from"./PasswordField-ByApWpbK.js";import{n as v,t as y}from"./RatingInput-B9JvC6a9.js";import{r as b,t as x}from"./SelectField-_eSdIkCW.js";import{t as ee}from"./Slider-BjEfhJ_o.js";import{t as S}from"./RangeSlider-BshsrfHH.js";import{t as C}from"./Switch-DPX8X1b7.js";import{t as w}from"./TextareaField-D-D245Qp.js";import{t as T}from"./TextField-zS8J7vJP.js";import{setRating as E,t as te}from"./RatingInput.stories-CZaxR49A.js";function D(e){let t,n=Array.isArray(e),r=typeof FileList<`u`?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(be&&(e instanceof Blob||r))&&(n||F(e)))if(t=n?[]:Object.create(Object.getPrototypeOf(e)),!n&&!ye(e))t=e;else for(let n in e)e.hasOwnProperty(n)&&(t[n]=D(e[n]));else return e;return t}function ne(e){let t=we(),{control:n=t.control,disabled:r,name:i,exact:a}=e||{},[o,s]=M.useState(n._formState),c=M.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Ee(()=>n._subscribe({name:i,formState:c.current,exact:a,callback:e=>{!r&&s({...n._formState,...e})}}),[i,r,a]),M.useEffect(()=>{c.current.isValid&&n._setValid(!0)},[n]),M.useMemo(()=>Te(o,n,c.current,!1),[o,n])}function O(e,t,n=new WeakSet){if(Oe(e)||Oe(t))return e===t;if(N(e)&&N(t))return e.getTime()===t.getTime();let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(let a of r){let r=e[a];if(!i.includes(a))return!1;if(a!==`ref`){let e=t[a];if(N(r)&&N(e)||F(r)&&F(e)||Array.isArray(r)&&Array.isArray(e)?!O(r,e,n):r!==e)return!1}}return!0}function re(e){let t=we(),{control:n=t.control,name:r,defaultValue:i,disabled:a,exact:o,compute:s}=e||{},c=M.useRef(i),l=M.useRef(s),u=M.useRef(void 0);l.current=s;let d=M.useMemo(()=>n._getWatch(r,c.current),[n,r]),[f,p]=M.useState(l.current?l.current(d):d);return Ee(()=>n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>{if(!a){let t=De(r,n._names,e.values||n._formValues,!1,c.current);if(l.current){let e=l.current(t);O(e,u.current)||(p(e),u.current=e)}else p(t)}}}),[n,a,r,o]),M.useEffect(()=>n._removeUnmounted()),f}function ie(e){let t=we(),{name:n,disabled:r,control:i=t.control,shouldUnregister:a,defaultValue:o}=e,s=ve(i._names.array,n),c=re({control:i,name:n,defaultValue:M.useMemo(()=>z(i._formValues,n,z(i._defaultValues,n,o)),[i,n,o]),exact:!0}),l=ne({control:i,name:n,exact:!0}),u=M.useRef(e),d=M.useRef(void 0),f=M.useRef(i.register(n,{...e.rules,value:c,...B(e.disabled)?{disabled:e.disabled}:{}}));u.current=e;let p=M.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!z(l.errors,n)},isDirty:{enumerable:!0,get:()=>!!z(l.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!z(l.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!z(l.validatingFields,n)},error:{enumerable:!0,get:()=>z(l.errors,n)}}),[l,n]),m=M.useCallback(e=>f.current.onChange({target:{value:ge(e),name:n},type:Se.CHANGE}),[n]),h=M.useCallback(()=>f.current.onBlur({target:{value:z(i._formValues,n),name:n},type:Se.BLUR}),[n,i._formValues]),g=M.useCallback(e=>{let t=z(i._fields,n);t&&e&&(t._f.ref={focus:()=>e.focus&&e.focus(),select:()=>e.select&&e.select(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})},[i._fields,n]),_=M.useMemo(()=>({name:n,value:c,...B(r)||l.disabled?{disabled:l.disabled||r}:{},onChange:m,onBlur:h,ref:g}),[n,r,l.disabled,m,h,g,c]);return M.useEffect(()=>{let e=i._options.shouldUnregister||a,t=d.current;t&&t!==n&&!s&&i.unregister(t),i.register(n,{...u.current.rules,...B(u.current.disabled)?{disabled:u.current.disabled}:{}});let r=(e,t)=>{let n=z(i._fields,e);n&&n._f&&(n._f.mount=t)};if(r(n,!0),e){let e=D(z(i._options.defaultValues,n,u.current.defaultValue));V(i._defaultValues,n,e),L(z(i._formValues,n))&&V(i._formValues,n,e)}return!s&&i.register(n),d.current=n,()=>{(s?e&&!i._state.action:e)?i.unregister(n):r(n,!1)}},[n,i,s,a]),M.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),M.useMemo(()=>({field:_,formState:l,fieldState:p}),[_,l,p])}function ae(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&F(i)&&a){let e=ae(i,a);F(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}function k(e,t){let n=t.slice(0,-1).length,r=0;for(;r<n;)e=L(e)?r++:e[t[r++]];return e}function oe(e){for(let t in e)if(e.hasOwnProperty(t)&&!L(e[t]))return!1;return!0}function A(e,t){let n=Array.isArray(t)?t:I(t)?[t]:R(t),r=n.length===1?e:k(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(F(r)&&K(r)||Array.isArray(r)&&oe(r))&&A(e,n.slice(0,-1)),e}function se(e){return Array.isArray(e)||F(e)&&!Re(e)}function j(e,t={}){for(let n in e)se(e[n])?(t[n]=Array.isArray(e[n])?[]:{},j(e[n],t[n])):L(e[n])||(t[n]=!0);return t}function ce(e,t,n){n||=j(t);for(let r in e)se(e[r])?L(t)||Oe(n[r])?n[r]=j(e[r],Array.isArray(e[r])?[]:{}):ce(e[r],P(t)?{}:t[r],n[r]):n[r]=!O(e[r],t[r]);return n}function le(e){let t=e.ref;return Me(t)?t.files:Fe(t)?We(e.refs).value:Pe(t)?[...t.selectedOptions].map(({value:e})=>e):me(t)?Ve(e.refs).value:He(L(t.value)?e.ref.value:t.value,e)}function ue(e,t,n){let r=z(e,n);if(r||I(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=z(t,r),o=z(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}function de(e,t,n=`validate`){if(W(e)||Array.isArray(e)&&e.every(W)||B(e)&&!e)return{type:n,message:W(e)?e:``,ref:t}}function fe(e={}){let t={...ot,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:q(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},i=(F(t.defaultValues)||F(t.values))&&D(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:D(i),o={action:!1,mount:!1,watch:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},c,l=0,u={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={...u},f={array:je(),state:je()},p=t.criteriaMode===H.all,m=e=>t=>{clearTimeout(l),l=setTimeout(e,t)},h=async e=>{if(!t.disabled&&(u.isValid||d.isValid||e)){let e=t.resolver?K((await S()).errors):await w(r,!0);e!==n.isValid&&f.state.next({isValid:e})}},g=(e,r)=>{!t.disabled&&(u.isValidating||u.validatingFields||d.isValidating||d.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?V(n.validatingFields,e,r):A(n.validatingFields,e))}),f.state.next({validatingFields:n.validatingFields,isValidating:!K(n.validatingFields)}))},_=(e,s=[],c,l,p=!0,m=!0)=>{if(l&&c&&!t.disabled){if(o.action=!0,m&&Array.isArray(z(r,e))){let t=c(z(r,e),l.argA,l.argB);p&&V(r,e,t)}if(m&&Array.isArray(z(n.errors,e))){let t=c(z(n.errors,e),l.argA,l.argB);p&&V(n.errors,e,t),rt(n.errors,e)}if((u.touchedFields||d.touchedFields)&&m&&Array.isArray(z(n.touchedFields,e))){let t=c(z(n.touchedFields,e),l.argA,l.argB);p&&V(n.touchedFields,e,t)}(u.dirtyFields||d.dirtyFields)&&(n.dirtyFields=ce(i,a)),f.state.next({name:e,isDirty:E(e,s),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else V(a,e,s)},v=(e,t)=>{V(n.errors,e,t),f.state.next({errors:n.errors})},y=e=>{n.errors=e,f.state.next({errors:n.errors,isValid:!1})},b=(e,t,n,s)=>{let c=z(r,e);if(c){let r=z(a,e,L(n)?z(i,e):n);L(r)||s&&s.defaultChecked||t?V(a,e,t?r:le(c._f)):re(e,r),o.mount&&h()}},x=(e,r,a,o,s)=>{let c=!1,l=!1,p={name:e};if(!t.disabled){if(!a||o){(u.isDirty||d.isDirty)&&(l=n.isDirty,n.isDirty=p.isDirty=E(),c=l!==p.isDirty);let t=O(z(i,e),r);l=!!z(n.dirtyFields,e),t?A(n.dirtyFields,e):V(n.dirtyFields,e,!0),p.dirtyFields=n.dirtyFields,c||=(u.dirtyFields||d.dirtyFields)&&l!==!t}if(a){let t=z(n.touchedFields,e);t||(V(n.touchedFields,e,a),p.touchedFields=n.touchedFields,c||=(u.touchedFields||d.touchedFields)&&t!==a)}c&&s&&f.state.next(p)}return c?p:{}},ee=(e,r,i,a)=>{let o=z(n.errors,e),s=(u.isValid||d.isValid)&&B(r)&&n.isValid!==r;if(t.delayError&&i?(c=m(()=>v(e,i)),c(t.delayError)):(clearTimeout(l),c=null,i?V(n.errors,e,i):A(n.errors,e)),(i?!O(o,i):o)||!K(a)||s){let t={...a,...s&&B(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},f.state.next(t)}},S=async e=>{g(e,!0);let n=await t.resolver(a,t.context,Ge(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return g(e),n},C=async e=>{let{errors:t}=await S(e);if(e)for(let r of e){let e=z(t,r);e?V(n.errors,r,e):A(n.errors,r)}else n.errors=t;return t},w=async(e,r,i={valid:!0})=>{for(let o in e){let c=e[o];if(c){let{_f:e,...o}=c;if(e){let o=s.array.has(e.name),l=c._f&&Xe(c._f);l&&u.validatingFields&&g([e.name],!0);let d=await at(c,s.disabled,a,p,t.shouldUseNativeValidation&&!r,o);if(l&&u.validatingFields&&g([e.name]),d[e.name]&&(i.valid=!1,r))break;!r&&(z(d,e.name)?o?it(n.errors,d,e.name):V(n.errors,e.name,d[e.name]):A(n.errors,e.name))}!K(o)&&await w(o,r,i)}}return i.valid},T=()=>{for(let e of s.unMount){let t=z(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Le(e)):!Le(t._f.ref))&&I(e)}s.unMount=new Set},E=(e,n)=>!t.disabled&&(e&&n&&V(a,e,n),!O(de(),i)),te=(e,t,n)=>De(e,s,{...o.mount?a:L(t)?i:W(e)?{[e]:t}:t},n,t),ne=e=>xe(z(o.mount?a:i,e,t.shouldUnregister?z(i,e,[]):[])),re=(e,t,n={})=>{let i=z(r,e),o=t;if(i){let n=i._f;n&&(!n.disabled&&V(a,e,He(t,n)),o=Ne(n.ref)&&P(t)?``:t,Pe(n.ref)?[...n.ref.options].forEach(e=>e.selected=o.includes(e.value)):n.refs?me(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(Array.isArray(o)?e.checked=!!o.find(t=>t===e.value):e.checked=o===e.value||!!o)}):n.refs.forEach(e=>e.checked=e.value===o):Me(n.ref)?n.ref.value=``:(n.ref.value=o,n.ref.type||f.state.next({name:e,values:D(a)})))}(n.shouldDirty||n.shouldTouch)&&x(e,o,n.shouldTouch,n.shouldDirty,!0),n.shouldValidate&&j(e)},ie=(e,t,n)=>{for(let i in t){if(!t.hasOwnProperty(i))return;let a=t[i],o=e+`.`+i,c=z(r,o);(s.array.has(e)||F(a)||c&&!c._f)&&!N(a)?ie(o,a,n):re(o,a,n)}},k=(e,t,c={})=>{let l=z(r,e),p=s.array.has(e),m=D(t);V(a,e,m),p?(f.array.next({name:e,values:D(a)}),(u.isDirty||u.dirtyFields||d.isDirty||d.dirtyFields)&&c.shouldDirty&&f.state.next({name:e,dirtyFields:ce(i,a),isDirty:E(e,m)})):l&&!l._f&&!P(m)?ie(e,m,c):re(e,m,c),Qe(e,s)&&f.state.next({...n,name:e}),f.state.next({name:o.mount?e:void 0,values:D(a)})},oe=async e=>{o.mount=!0;let i=e.target,l=i.name,m=!0,_=z(r,l),v=e=>{m=Number.isNaN(e)||N(e)&&isNaN(e.getTime())||O(e,z(a,l,e))},y=Je(t.mode),b=Je(t.reValidateMode);if(_){let o,C,T=i.type?le(_._f):ge(e),E=e.type===Se.BLUR||e.type===Se.FOCUS_OUT,te=!Ze(_._f)&&!t.resolver&&!z(n.errors,l)&&!_._f.deps||nt(E,z(n.touchedFields,l),n.isSubmitted,b,y),ne=Qe(l,s,E);V(a,l,T),E?(!i||!i.readOnly)&&(_._f.onBlur&&_._f.onBlur(e),c&&c(0)):_._f.onChange&&_._f.onChange(e);let O=x(l,T,E),re=!K(O)||ne;if(!E&&f.state.next({name:l,type:e.type,values:D(a)}),te)return(u.isValid||d.isValid)&&(t.mode===`onBlur`?E&&h():E||h()),re&&f.state.next({name:l,...ne?{}:O});if(!E&&ne&&f.state.next({...n}),t.resolver){let{errors:e}=await S([l]);if(v(T),m){let t=ue(n.errors,r,l),i=ue(e,r,t.name||l);o=i.error,l=i.name,C=K(e)}}else g([l],!0),o=(await at(_,s.disabled,a,p,t.shouldUseNativeValidation))[l],g([l]),v(T),m&&(o?C=!1:(u.isValid||d.isValid)&&(C=await w(r,!0)));m&&(_._f.deps&&(!Array.isArray(_._f.deps)||_._f.deps.length>0)&&j(_._f.deps),ee(l,C,o,O))}},se=(e,t)=>{if(z(n.errors,t)&&e.focus)return e.focus(),1},j=async(e,i={})=>{let a,o,c=Ae(e);if(t.resolver){let t=await C(L(e)?e:c);a=K(t),o=e?!c.some(e=>z(t,e)):a}else e?(o=(await Promise.all(c.map(async e=>{let t=z(r,e);return await w(t&&t._f?{[e]:t}:t)}))).every(Boolean),!(!o&&!n.isValid)&&h()):o=a=await w(r);return f.state.next({...!W(e)||(u.isValid||d.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&$e(r,se,e?c:s.mount),o},de=(e,t)=>{let r={...o.mount?a:i};return t&&(r=ae(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),L(e)?r:W(e)?z(r,e):e.map(e=>z(r,e))},fe=(e,t)=>({invalid:!!z((t||n).errors,e),isDirty:!!z((t||n).dirtyFields,e),error:z((t||n).errors,e),isValidating:!!z(n.validatingFields,e),isTouched:!!z((t||n).touchedFields,e)}),pe=e=>{e&&Ae(e).forEach(e=>A(n.errors,e)),f.state.next({errors:e?n.errors:{}})},M=(e,t,i)=>{let a=(z(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=z(n.errors,e)||{};V(n.errors,e,{...l,...t,ref:a}),f.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},he=(e,t)=>q(e)?f.state.subscribe({next:n=>`values`in n&&e(te(void 0,t),n)}):te(e,t,!0),_e=e=>f.state.subscribe({next:t=>{tt(e.name,t.name,e.exact)&&et(t,e.formState||u,Fe,e.reRenderRoot)&&e.callback({values:{...a},...n,...t,defaultValues:i})}}).unsubscribe,ye=e=>(o.mount=!0,d={...d,...e.formState},_e({...e,formState:d})),I=(e,o={})=>{for(let c of e?Ae(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(A(r,c),A(a,c)),!o.keepError&&A(n.errors,c),!o.keepDirty&&A(n.dirtyFields,c),!o.keepTouched&&A(n.touchedFields,c),!o.keepIsValidating&&A(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&A(i,c);f.state.next({values:D(a)}),f.state.next({...n,...o.keepDirty?{isDirty:E()}:{}}),!o.keepIsValid&&h()},R=({disabled:e,name:t})=>{(B(e)&&o.mount||e||s.disabled.has(t))&&(e?s.disabled.add(t):s.disabled.delete(t))},U=(e,n={})=>{let a=z(r,e),c=B(n.disabled)||B(t.disabled);return V(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a?R({disabled:B(n.disabled)?n.disabled:t.disabled,name:e}):b(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:qe(n.min),max:qe(n.max),minLength:qe(n.minLength),maxLength:qe(n.maxLength),pattern:qe(n.pattern)}:{},name:e,onChange:oe,onBlur:oe,ref:c=>{if(c){U(e,n),a=z(r,e);let t=L(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=Ie(t),s=a._f.refs||[];if(o?s.find(e=>e===t):t===a._f.ref)return;V(r,e,{_f:{...a._f,...o?{refs:[...s.filter(Le),t,...Array.isArray(z(i,e))?[{}]:[]],ref:{type:t.type,name:e}}:{ref:t}}}),b(e,!1,void 0,t)}else a=z(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(ve(s.array,e)&&o.action)&&s.unMount.add(e)}}},Ce=()=>t.shouldFocusError&&$e(r,se,s.mount),we=e=>{B(e)&&(f.state.next({disabled:e}),$e(r,(t,n)=>{let i=z(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},Te=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=D(a);if(f.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await S();n.errors=e,l=D(t)}else await w(r);if(s.disabled.size)for(let e of s.disabled)A(l,e);if(A(n.errors,`root`),K(n.errors)){f.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),Ce(),setTimeout(Ce);if(f.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:K(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},Ee=(e,t={})=>{z(r,e)&&(L(t.defaultValue)?k(e,D(z(i,e))):(k(e,t.defaultValue),V(i,e,D(t.defaultValue))),t.keepTouched||A(n.touchedFields,e),t.keepDirty||(A(n.dirtyFields,e),n.isDirty=t.defaultValue?E(e,D(z(i,e))):E()),t.keepError||(A(n.errors,e),u.isValid&&h()),f.state.next({...n}))},Oe=(e,c={})=>{let l=e?D(e):i,d=D(l),p=K(e),m=p?i:d;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(ce(i,a))]);for(let t of Array.from(e))z(n.dirtyFields,t)?V(m,t,z(a,t)):k(t,z(m,t))}else{if(be&&L(e))for(let e of s.mount){let t=z(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(Ne(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)k(e,z(m,e));else r={}}a=t.shouldUnregister?c.keepDefaultValues?D(i):{}:D(m),f.array.next({values:{...m}}),f.state.next({values:{...m}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!u.isValid||!!c.keepIsValid||!!c.keepDirtyValues,o.watch=!!t.shouldUnregister,f.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:p?!1:c.keepDirty?n.isDirty:!!(c.keepDefaultValues&&!O(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:p?{}:c.keepDirtyValues?c.keepDefaultValues&&a?ce(i,a):n.dirtyFields:c.keepDefaultValues&&e?ce(i,e):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},G=(e,t)=>Oe(q(e)?e(a):e,t),ke=(e,t={})=>{let n=z(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&(e.focus(),t.shouldSelect&&q(e.select)&&e.select())}},Fe=e=>{n={...n,...e}},Re={control:{register:U,unregister:I,getFieldState:fe,handleSubmit:Te,setError:M,_subscribe:_e,_runSchema:S,_focusError:Ce,_getWatch:te,_getDirty:E,_setValid:h,_setFieldArray:_,_setDisabledField:R,_setErrors:y,_getFieldArray:ne,_reset:Oe,_resetDefaultValues:()=>q(t.defaultValues)&&t.defaultValues().then(e=>{G(e,t.resetOptions),f.state.next({isLoading:!1})}),_removeUnmounted:T,_disableForm:we,_subjects:f,_proxyFormState:u,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e}}},subscribe:ye,trigger:j,register:U,handleSubmit:Te,watch:he,setValue:k,getValues:de,reset:G,resetField:Ee,clearErrors:pe,unregister:I,setError:M,setFocus:ke,getFieldState:fe};return{...Re,formControl:Re}}function pe(e={}){let t=M.useRef(void 0),n=M.useRef(void 0),[r,i]=M.useState({isDirty:!1,isValidating:!1,isLoading:q(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:q(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:r},e.defaultValues&&!q(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...i}=fe(e);t.current={...i,formState:r}}let a=t.current.control;return a._options=e,Ee(()=>{let e=a._subscribe({formState:a._proxyFormState,callback:()=>i({...a._formState}),reRenderRoot:!0});return i(e=>({...e,isReady:!0})),a._formState.isReady=!0,e},[a]),M.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),M.useEffect(()=>{e.mode&&(a._options.mode=e.mode),e.reValidateMode&&(a._options.reValidateMode=e.reValidateMode)},[a,e.mode,e.reValidateMode]),M.useEffect(()=>{e.errors&&(a._setErrors(e.errors),a._focusError())},[a,e.errors]),M.useEffect(()=>{e.shouldUnregister&&a._subjects.state.next({values:a._getWatch()})},[a,e.shouldUnregister]),M.useEffect(()=>{if(a._proxyFormState.isDirty){let e=a._getDirty();e!==r.isDirty&&a._subjects.state.next({isDirty:e})}},[a,r.isDirty]),M.useEffect(()=>{e.values&&!O(e.values,n.current)?(a._reset(e.values,{keepFieldsRef:!0,...a._options.resetOptions}),n.current=e.values,i(e=>({...e}))):a._resetDefaultValues()},[a,e.values]),M.useEffect(()=>{a._state.mount||(a._setValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),t.current.formState=Te(r,a),t.current}var M,me,N,P,he,F,ge,_e,ve,ye,be,I,L,xe,R,z,B,V,Se,H,U,Ce,we,Te,Ee,W,De,Oe,G,ke,Ae,je,K,Me,q,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it,J,at,ot,st=t((()=>{M=e(n(),1),me=e=>e.type===`checkbox`,N=e=>e instanceof Date,P=e=>e==null,he=e=>typeof e==`object`,F=e=>!P(e)&&!Array.isArray(e)&&he(e)&&!N(e),ge=e=>F(e)&&e.target?me(e.target)?e.target.checked:e.target.value:e,_e=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,ve=(e,t)=>e.has(_e(t)),ye=e=>{let t=e.constructor&&e.constructor.prototype;return F(t)&&t.hasOwnProperty(`isPrototypeOf`)},be=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`,I=e=>/^\w*$/.test(e),L=e=>e===void 0,xe=e=>Array.isArray(e)?e.filter(Boolean):[],R=e=>xe(e.replace(/["|']|\]/g,``).split(/\.|\[/)),z=(e,t,n)=>{if(!t||!F(e))return n;let r=(I(t)?[t]:R(t)).reduce((e,t)=>P(e)?e:e[t],e);return L(r)||r===e?L(e[t])?n:e[t]:r},B=e=>typeof e==`boolean`,V=(e,t,n)=>{let r=-1,i=I(t)?[t]:R(t),a=i.length,o=a-1;for(;++r<a;){let t=i[r],a=n;if(r!==o){let n=e[t];a=F(n)||Array.isArray(n)?n:isNaN(+i[r+1])?{}:[]}if(t===`__proto__`||t===`constructor`||t===`prototype`)return;e[t]=a,e=e[t]}},Se={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`},H={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},U={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},Ce=M.createContext(null),Ce.displayName=`HookFormContext`,we=()=>M.useContext(Ce),Te=(e,t,n,r=!0)=>{let i={defaultValues:t._defaultValues};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==H.all&&(t._proxyFormState[i]=!r||H.all),n&&(n[i]=!0),e[i]}});return i},Ee=typeof window<`u`?M.useLayoutEffect:M.useEffect,W=e=>typeof e==`string`,De=(e,t,n,r,i)=>W(e)?(r&&t.watch.add(e),z(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),z(n,e))):(r&&(t.watchAll=!0),n),Oe=e=>P(e)||!he(e),G=e=>e.render(ie(e)),ke=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},Ae=e=>Array.isArray(e)?e:[e],je=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}},K=e=>F(e)&&!Object.keys(e).length,Me=e=>e.type===`file`,q=e=>typeof e==`function`,Ne=e=>{if(!be)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Pe=e=>e.type===`select-multiple`,Fe=e=>e.type===`radio`,Ie=e=>Fe(e)||me(e),Le=e=>Ne(e)&&e.isConnected,Re=e=>{for(let t in e)if(q(e[t]))return!0;return!1},ze={value:!1,isValid:!1},Be={value:!0,isValid:!0},Ve=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!L(e[0].attributes.value)?L(e[0].value)||e[0].value===``?Be:{value:e[0].value,isValid:!0}:Be:ze}return ze},He=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>L(e)?e:t?e===``?NaN:e&&+e:n&&W(e)?new Date(e):r?r(e):e,Ue={isValid:!1,value:null},We=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,Ue):Ue,Ge=(e,t,n,r)=>{let i={};for(let n of e){let e=z(t,n);e&&V(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},Ke=e=>e instanceof RegExp,qe=e=>L(e)?e:Ke(e)?e.source:F(e)?Ke(e.value)?e.value.source:e.value:e,Je=e=>({isOnSubmit:!e||e===H.onSubmit,isOnBlur:e===H.onBlur,isOnChange:e===H.onChange,isOnAll:e===H.all,isOnTouch:e===H.onTouched}),Ye=`AsyncFunction`,Xe=e=>!!e&&!!e.validate&&!!(q(e.validate)&&e.validate.constructor.name===Ye||F(e.validate)&&Object.values(e.validate).find(e=>e.constructor.name===Ye)),Ze=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),Qe=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length)))),$e=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=z(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if($e(a,t))break}else if(F(a)&&$e(a,t))break}}},et=(e,t,n,r)=>{n(e);let{name:i,...a}=e;return K(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(e=>t[e]===(!r||H.all))},tt=(e,t,n)=>!e||!t||e===t||Ae(e).some(e=>e&&(n?e===t:e.startsWith(t)||t.startsWith(e))),nt=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,rt=(e,t)=>!xe(z(e,t)).length&&A(e,t),it=(e,t,n)=>{let r=Ae(z(e,n));return V(r,`root`,t[n]),V(e,n,r),e},J=e=>F(e)&&!Ke(e)?e:{value:e,message:``},at=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=z(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{i&&y.reportValidity&&(y.setCustomValidity(B(e)?``:e||``),y.reportValidity())},x={},ee=Fe(o),S=me(o),C=ee||S,w=(g||Me(o))&&L(o.value)&&L(v)||Ne(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length,T=ke.bind(null,h,r,x),E=(e,t,n,r=U.maxLength,i=U.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...T(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!C&&(w||P(v))||B(v)&&!v||S&&!Ve(s).isValid||ee&&!We(s).isValid)){let{value:e,message:t}=W(c)?{value:!!c,message:c}:J(c);if(e&&(x[h]={type:U.required,message:t,ref:y,...T(U.required,t)},!r))return b(t),x}if(!w&&(!P(d)||!P(f))){let e,t,n=J(f),i=J(d);if(!P(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;P(n.value)||(e=r>n.value),P(i.value)||(t=r<i.value)}else{let r=o.valueAsDate||new Date(v),a=e=>new Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;W(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),W(i.value)&&v&&(t=s?a(v)<a(i.value):c?v<i.value:r<new Date(i.value))}if((e||t)&&(E(!!e,n.message,i.message,U.max,U.min),!r))return b(x[h].message),x}if((l||u)&&!w&&(W(v)||a&&Array.isArray(v))){let e=J(l),t=J(u),n=!P(e.value)&&v.length>+e.value,i=!P(t.value)&&v.length<+t.value;if((n||i)&&(E(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!w&&W(v)){let{value:e,message:t}=J(p);if(Ke(e)&&!v.match(e)&&(x[h]={type:U.pattern,message:t,ref:o,...T(U.pattern,t)},!r))return b(t),x}if(m){if(q(m)){let e=de(await m(v,n),y);if(e&&(x[h]={...e,...T(U.validate,e.message)},!r))return b(e.message),x}else if(F(m)){let e={};for(let t in m){if(!K(e)&&!r)break;let i=de(await m[t](v,n),y,t);i&&(e={...i,...T(t,i.message)},b(i.message),r&&(x[h]=e))}if(!K(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},ot={mode:H.onSubmit,reValidateMode:H.onChange,shouldFocusError:!0}})),Y,X,Z,Q,ct,lt,ut,$,dt;t((()=>{e(n(),1),o(),st(),v(),te(),Y=r(),{userEvent:X,expect:Z,within:Q,waitFor:ct,fn:lt}=__STORYBOOK_MODULE_TEST__,ut={title:`Guides/Integration with React Hook Form`,args:{onSubmit:lt()}},$={render:function(e){return(0,Y.jsx)(()=>{let{register:t,handleSubmit:n,formState:{errors:r},reset:o,control:v}=pe({defaultValues:{fullName:``,email:``,age:void 0,country:``,password:``,confirmPassword:``,bio:``,privacyPolicyAccepted:!1,experienceLevel:50,priceRange:[25,75],emailNotifications:!0,englishLevel:null,skills:[],marketing:[`emails`,`push`],registrationExperience:0}});return(0,Y.jsx)(`div`,{style:{maxWidth:`600px`,margin:`0 auto`,padding:`20px`},children:(0,Y.jsxs)(h,{direction:`column`,gap:`16`,children:[(0,Y.jsx)(i,{variant:`extraLarge`,tag:`h1`,children:`User Registration Form`}),(0,Y.jsxs)(`form`,{onSubmit:n(e.onSubmit),style:{display:`contents`},noValidate:!0,children:[(0,Y.jsx)(T,{label:`Full Name`,...t(`fullName`,{required:`Full name is required`}),error:r.fullName?.message,required:!0}),(0,Y.jsx)(T,{label:`Email`,type:`email`,...t(`email`,{required:`Email is required`}),error:r.email?.message,required:!0}),(0,Y.jsx)(g,{label:`Age`,...t(`age`,{valueAsNumber:!0,required:`Age is required`,min:{value:18,message:`You must be at least 18 years old`}}),min:18,max:120,error:r.age?.message,required:!0}),(0,Y.jsx)(G,{name:`country`,control:v,rules:{required:`Country is required`},render:({field:e})=>(0,Y.jsxs)(x,{ref:e.ref,label:`Country`,placeholder:``,error:r.country?.message,required:!0,disabled:e.disabled,value:e.value,onBlur:e.onBlur,onValueChange:e.onChange,children:[(0,Y.jsx)(b,{value:`us`,children:`United States`}),(0,Y.jsx)(b,{value:`ca`,children:`Canada`}),(0,Y.jsx)(b,{value:`uk`,children:`United Kingdom`}),(0,Y.jsx)(b,{value:`de`,children:`Germany`}),(0,Y.jsx)(b,{value:`fr`,children:`France`}),(0,Y.jsx)(b,{value:`it`,children:`Italy`}),(0,Y.jsx)(b,{value:`es`,children:`Spain`}),(0,Y.jsx)(b,{value:`au`,children:`Australia`}),(0,Y.jsx)(b,{value:`jp`,children:`Japan`}),(0,Y.jsx)(b,{value:`other`,children:`Other`})]})}),(0,Y.jsx)(_,{label:`Password`,...t(`password`,{required:`Password is required`,minLength:{value:8,message:`Password must be at least 8 characters`},pattern:{value:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/,message:`Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character`}}),error:r.password?.message,required:!0}),(0,Y.jsx)(_,{label:`Confirm Password`,...t(`confirmPassword`,{required:`Please confirm your password`,validate:(e,t)=>e===t.password||`Passwords do not match`}),error:r.confirmPassword?.message,required:!0}),(0,Y.jsx)(w,{label:`Bio`,...t(`bio`,{maxLength:{value:500,message:`Bio must be less than 500 characters`}}),error:r.bio?.message}),(0,Y.jsx)(G,{name:`experienceLevel`,control:v,rules:{validate:{minValue:e=>e<50?`Must be above 50`:!0}},render:({field:e})=>(0,Y.jsx)(m,{label:`Experience Level`,error:r.experienceLevel?.message,children:(0,Y.jsx)(ee,{value:e.value,onValueChange:e.onChange,min:0,max:100,"aria-label":`Experience Level`})})}),(0,Y.jsx)(G,{name:`priceRange`,control:v,rules:{validate:{minValue:([e])=>e<=25?`Minimum must be above 25`:!0,maxValue:([,e])=>e>=75?`Maximum must be below 75`:!0}},render:({field:e})=>(0,Y.jsx)(m,{label:`Price`,error:r.priceRange?.message,children:(0,Y.jsx)(S,{value:e.value,onValueChange:e.onChange,min:0,max:100,"aria-label":`Price Range`})})}),(0,Y.jsx)(G,{name:`emailNotifications`,control:v,render:({field:e})=>(0,Y.jsx)(m,{label:`Email Notifications`,description:`Receive updates and newsletters via email`,error:r.emailNotifications?.message,children:(0,Y.jsx)(C,{checked:e.value,onCheckedChange:e.onChange,"aria-label":`Email Notifications`})})}),(0,Y.jsx)(G,{control:v,name:`englishLevel`,rules:{required:`English level is required`},render:({field:e})=>(0,Y.jsx)(m,{label:`English Level`,required:!0,children:(0,Y.jsxs)(l,{"aria-label":`English Level`,value:e.value,onValueChange:e.onChange,children:[(0,Y.jsx)(c,{value:`a0`,children:`A0`}),(0,Y.jsx)(c,{value:`a1`,children:`A1`}),(0,Y.jsx)(c,{value:`a2`,children:`A2`}),(0,Y.jsx)(c,{value:`b1`,children:`B1`}),(0,Y.jsx)(c,{value:`b2`,children:`B2`}),(0,Y.jsx)(c,{value:`c1`,children:`C1`}),(0,Y.jsx)(c,{value:`c2`,children:`C2`})]})})}),(0,Y.jsx)(G,{control:v,name:`skills`,rules:{required:`Skills are required`},render:({field:e})=>(0,Y.jsx)(m,{label:`Skills`,required:!0,children:(0,Y.jsxs)(d,{"aria-label":`Skills`,value:e.value,onValueChange:e.onChange,children:[(0,Y.jsx)(u,{value:`vocabulary`,children:`Vocabulary`}),(0,Y.jsx)(u,{value:`speaking`,children:`Speaking`}),(0,Y.jsx)(u,{value:`listening`,children:`Listening`}),(0,Y.jsx)(u,{value:`reading`,children:`Reading`})]})})}),(0,Y.jsx)(G,{control:v,name:`marketing`,rules:{required:`Marketing is required`},render:({field:e})=>(0,Y.jsx)(m,{label:`Marketing`,description:`How do you want to receive marketing communications?`,required:!0,children:(0,Y.jsxs)(p,{"aria-label":`Marketing`,value:e.value,onValueChange:e.onChange,children:[(0,Y.jsx)(f,{value:`emails`,children:`Marketing emails`}),(0,Y.jsx)(f,{value:`push`,children:`Push notifications`})]})})}),(0,Y.jsx)(m,{label:`Accept Privacy Policy`,description:`I accept the Privacy Policy`,error:r.privacyPolicyAccepted?.message,hideLabel:!0,children:(0,Y.jsx)(s,{...t(`privacyPolicyAccepted`,{required:`You must accept the Privacy Policy`})})}),(0,Y.jsx)(G,{name:`registrationExperience`,control:v,render:({field:e})=>(0,Y.jsx)(m,{label:`Rate the registration experience`,description:`Was the form easy to understand?`,error:r.registrationExperience?.message,id:`registrationExperienceField`,children:(0,Y.jsx)(y,{value:e.value,onValueChange:e.onChange})})}),(0,Y.jsxs)(h,{gap:`12`,padding:[`20`,`0`,`0`],justifyContent:`end`,children:[(0,Y.jsx)(a,{onClick:()=>o(),variant:`secondary`,children:`Reset`}),(0,Y.jsx)(a,{submitsForm:!0,children:`Submit`})]})]})]})})},{})},play:async({args:e,canvasElement:t,step:n})=>{let r=Q(t);await n(`Fill full name field`,async()=>{await X.type(r.getByRole(`textbox`,{name:`Full Name`}),`John Doe`)}),await n(`Fill email field`,async()=>{await X.type(r.getByRole(`textbox`,{name:`Email`}),`john.doe@example.com`)}),await n(`Fill age field`,async()=>{await X.clear(r.getByRole(`spinbutton`,{name:`Age`})),await X.type(r.getByRole(`spinbutton`,{name:`Age`}),`25`)}),await n(`Fill country field`,async()=>{r.getByRole(`combobox`,{name:`Country`}).focus(),await X.keyboard(`{Enter}`.repeat(2))}),await n(`Fill password field`,async()=>{await X.type(r.getByLabelText(/^Password/),`TestPassword123!`)}),await n(`Fill confirm password field`,async()=>{await X.type(r.getByLabelText(/^Confirm Password/),`TestPassword123!`)}),await n(`Fill bio field`,async()=>{await X.type(r.getByRole(`textbox`,{name:`Bio`}),`I am a software engineer with 5 years of experience.`)}),await n(`Move experience level slider`,async()=>{r.getByRole(`slider`,{name:`Experience Level`}).focus(),await X.keyboard(`{ArrowRight}`.repeat(5))}),await n(`Move price range slider minimum`,async()=>{r.getByRole(`slider`,{name:`Minimum Price Range`}).focus(),await X.keyboard(`{ArrowRight}`.repeat(2))}),await n(`Move price range slider maximum`,async()=>{r.getByRole(`slider`,{name:`Maximum Price Range`}).focus(),await X.keyboard(`{ArrowLeft}`.repeat(2))}),await n(`Select english level`,async()=>{let e=Q(r.getByRole(`listbox`,{name:`English Level`})).getByRole(`option`,{name:`B2`});await X.click(e)}),await n(`Select reading skill`,async()=>{let e=Q(r.getByRole(`listbox`,{name:`Skills`})).getByRole(`option`,{name:`Reading`});await X.click(e)}),await n(`Select listening skill`,async()=>{let e=Q(r.getByRole(`listbox`,{name:`Skills`})).getByRole(`option`,{name:`Listening`});await X.click(e)}),await n(`Dismiss push notifications`,async()=>{let e=Q(r.getByRole(`list`,{name:`Marketing`})).getByRole(`button`,{name:`Remove Push notifications`});await X.click(e)}),await n(`Accept privacy policy`,async()=>{let e=r.getByRole(`checkbox`,{name:`Accept Privacy Policy`});await X.click(e)}),await n(`Toggle email notifications`,async()=>{await X.click(r.getByRole(`switch`,{name:`Email Notifications`}))});let i=t.querySelector(`#registrationExperienceField`);if(!i)throw Error(`#registrationExperienceField is not in the canvas`);if(!(i instanceof HTMLElement))throw Error(`#registrationExperienceField is not a valid HTMLElement`);await n(`Rate the registration form`,async()=>{await E({value:5,rating:i})}),await n(`Submit the form`,async()=>{await X.click(r.getByRole(`button`,{name:`Submit`}))}),await n(`Assert that onSubmit was called with correct data`,async()=>{await ct(()=>{Z(e.onSubmit).toHaveBeenCalledWith({fullName:`John Doe`,email:`john.doe@example.com`,age:25,country:`us`,password:`TestPassword123!`,confirmPassword:`TestPassword123!`,bio:`I am a software engineer with 5 years of experience.`,privacyPolicyAccepted:!0,experienceLevel:55,priceRange:[27,73],emailNotifications:!1,englishLevel:`b2`,skills:[`reading`,`listening`],marketing:[`emails`],registrationExperience:5},Z.anything())})}),await n(`Reset the form`,async()=>{await X.click(r.getByRole(`button`,{name:`Reset`}))}),await n(`Assert all fields are cleared`,async()=>{await ct(()=>{Z(r.getByRole(`textbox`,{name:`Full Name`})).not.toHaveValue(),Z(r.getByRole(`textbox`,{name:`Email`})).not.toHaveValue(),Z(r.getByRole(`spinbutton`,{name:`Age`})).not.toHaveValue(),Z(r.getByRole(`combobox`,{name:`Country`})).not.toHaveValue(),Z(r.getByLabelText(/^Password/)).not.toHaveValue(),Z(r.getByLabelText(/^Confirm Password/)).not.toHaveValue(),Z(r.getByRole(`textbox`,{name:`Bio`})).not.toHaveValue(),Z(r.getByRole(`checkbox`,{name:`Accept Privacy Policy`})).not.toBeChecked(),Z(r.getByRole(`switch`,{name:`Email Notifications`})).toHaveAttribute(`aria-checked`,`true`),Z(r.getByRole(`slider`,{name:`Experience Level`})).toHaveAttribute(`aria-valuenow`,`50`),Z(r.getByRole(`slider`,{name:`Minimum Price Range`})).toHaveAttribute(`aria-valuenow`,`25`),Z(r.getByRole(`slider`,{name:`Maximum Price Range`})).toHaveAttribute(`aria-valuenow`,`75`),Q(r.getByRole(`listbox`,{name:`English Level`})).getAllByRole(`option`).forEach(e=>{Z(e).toHaveAttribute(`aria-selected`,`false`)}),Q(r.getByRole(`listbox`,{name:`Skills`})).getAllByRole(`option`).forEach(e=>{Z(e).toHaveAttribute(`aria-selected`,`false`)});let e=r.getByRole(`list`,{name:`Marketing`});Z(Q(e).getByRole(`button`,{name:`Remove Marketing emails`})).toBeVisible(),Z(Q(e).getByRole(`button`,{name:`Remove Push notifications`})).toBeVisible();let n=t.querySelector(`#registrationExperienceField`);if(!n)throw Error(`#registrationExperienceField is not in the canvas`);if(!(n instanceof HTMLElement))throw Error(`#registrationExperienceField is not a valid HTMLElement`);Z(n).toHaveAttribute(`aria-valuetext`,`0 out of 5`)})})}},$.parameters={...$.parameters,docs:{...$.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
render: function Story(args) {
|
|
3
|
+
/**
|
|
4
|
+
* This \`Story\` component is a hacky workaround; without it, the
|
|
5
|
+
* react-hook-form \`Controller\` component causes a memory leak (and
|
|
6
|
+
* subsequent crash) on submit.
|
|
7
|
+
*
|
|
8
|
+
* We're not sure why yet, but it may have to do with the fact that the
|
|
9
|
+
* Storybook \`render\` function isn't actually a component, and so some
|
|
10
|
+
* code inside \`Controller\` runs in an unexpected context.
|
|
11
|
+
*/
|
|
12
|
+
const Story = () => {
|
|
13
|
+
const {
|
|
14
|
+
register,
|
|
15
|
+
handleSubmit,
|
|
16
|
+
formState: {
|
|
17
|
+
errors
|
|
18
|
+
},
|
|
19
|
+
reset,
|
|
20
|
+
control
|
|
21
|
+
} = useForm<FormData>({
|
|
22
|
+
defaultValues: {
|
|
23
|
+
fullName: '',
|
|
24
|
+
email: '',
|
|
25
|
+
age: undefined,
|
|
26
|
+
country: '',
|
|
27
|
+
password: '',
|
|
28
|
+
confirmPassword: '',
|
|
29
|
+
bio: '',
|
|
30
|
+
privacyPolicyAccepted: false,
|
|
31
|
+
experienceLevel: 50,
|
|
32
|
+
priceRange: [25, 75],
|
|
33
|
+
emailNotifications: true,
|
|
34
|
+
englishLevel: null,
|
|
35
|
+
skills: [],
|
|
36
|
+
marketing: ['emails', 'push'],
|
|
37
|
+
registrationExperience: 0
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return <div style={{
|
|
41
|
+
maxWidth: '600px',
|
|
42
|
+
margin: '0 auto',
|
|
43
|
+
padding: '20px'
|
|
44
|
+
}}>
|
|
45
|
+
<LayoutFlex direction="column" gap="16">
|
|
46
|
+
<Heading variant="extraLarge" tag="h1">
|
|
47
|
+
User Registration Form
|
|
48
|
+
</Heading>
|
|
49
|
+
|
|
50
|
+
<form onSubmit={handleSubmit(args.onSubmit)} style={{
|
|
51
|
+
display: 'contents'
|
|
52
|
+
}}
|
|
53
|
+
// Since we're using react-hook-form, we can disable the default HTML5 validation
|
|
54
|
+
// to keep error messages visually consistent
|
|
55
|
+
noValidate>
|
|
56
|
+
<TextField label="Full Name" {...register('fullName', {
|
|
57
|
+
required: 'Full name is required'
|
|
58
|
+
})} error={errors.fullName?.message} required />
|
|
59
|
+
|
|
60
|
+
<TextField label="Email" type="email" {...register('email', {
|
|
61
|
+
required: 'Email is required'
|
|
62
|
+
})} error={errors.email?.message} required />
|
|
63
|
+
|
|
64
|
+
<NumberField label="Age" {...register('age', {
|
|
65
|
+
valueAsNumber: true,
|
|
66
|
+
required: 'Age is required',
|
|
67
|
+
min: {
|
|
68
|
+
value: 18,
|
|
69
|
+
message: 'You must be at least 18 years old'
|
|
70
|
+
}
|
|
71
|
+
})} min={18} max={120} error={errors.age?.message} required />
|
|
72
|
+
|
|
73
|
+
<Controller name="country" control={control} rules={{
|
|
74
|
+
required: 'Country is required'
|
|
75
|
+
}} render={({
|
|
76
|
+
field
|
|
77
|
+
}) => <SelectField ref={field.ref} label="Country" placeholder="" error={errors.country?.message} required disabled={field.disabled} value={field.value} onBlur={field.onBlur} onValueChange={field.onChange}>
|
|
78
|
+
<SelectFieldOption value="us">
|
|
79
|
+
United States
|
|
80
|
+
</SelectFieldOption>
|
|
81
|
+
<SelectFieldOption value="ca">Canada</SelectFieldOption>
|
|
82
|
+
<SelectFieldOption value="uk">
|
|
83
|
+
United Kingdom
|
|
84
|
+
</SelectFieldOption>
|
|
85
|
+
<SelectFieldOption value="de">Germany</SelectFieldOption>
|
|
86
|
+
<SelectFieldOption value="fr">France</SelectFieldOption>
|
|
87
|
+
<SelectFieldOption value="it">Italy</SelectFieldOption>
|
|
88
|
+
<SelectFieldOption value="es">Spain</SelectFieldOption>
|
|
89
|
+
<SelectFieldOption value="au">Australia</SelectFieldOption>
|
|
90
|
+
<SelectFieldOption value="jp">Japan</SelectFieldOption>
|
|
91
|
+
<SelectFieldOption value="other">Other</SelectFieldOption>
|
|
92
|
+
</SelectField>} />
|
|
93
|
+
|
|
94
|
+
<PasswordField label="Password" {...register('password', {
|
|
95
|
+
required: 'Password is required',
|
|
96
|
+
minLength: {
|
|
97
|
+
value: 8,
|
|
98
|
+
message: 'Password must be at least 8 characters'
|
|
99
|
+
},
|
|
100
|
+
pattern: {
|
|
101
|
+
value: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]/,
|
|
102
|
+
message: 'Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character'
|
|
103
|
+
}
|
|
104
|
+
})} error={errors.password?.message} required />
|
|
105
|
+
|
|
106
|
+
<PasswordField label="Confirm Password" {...register('confirmPassword', {
|
|
107
|
+
required: 'Please confirm your password',
|
|
108
|
+
validate: (value, formValues) => value === formValues.password || 'Passwords do not match'
|
|
109
|
+
})} error={errors.confirmPassword?.message} required />
|
|
110
|
+
|
|
111
|
+
<TextareaField label="Bio" {...register('bio', {
|
|
112
|
+
maxLength: {
|
|
113
|
+
value: 500,
|
|
114
|
+
message: 'Bio must be less than 500 characters'
|
|
115
|
+
}
|
|
116
|
+
})} error={errors.bio?.message} />
|
|
117
|
+
|
|
118
|
+
<Controller name="experienceLevel" control={control} rules={{
|
|
119
|
+
validate: {
|
|
120
|
+
minValue: value => {
|
|
121
|
+
if (value < 50) {
|
|
122
|
+
return 'Must be above 50';
|
|
123
|
+
}
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}} render={({
|
|
128
|
+
field
|
|
129
|
+
}) => <FormControl label="Experience Level" error={errors.experienceLevel?.message}>
|
|
130
|
+
<Slider value={field.value} onValueChange={field.onChange} min={0} max={100} aria-label="Experience Level" />
|
|
131
|
+
</FormControl>} />
|
|
132
|
+
|
|
133
|
+
<Controller name="priceRange" control={control} rules={{
|
|
134
|
+
validate: {
|
|
135
|
+
minValue: ([min]) => {
|
|
136
|
+
if (min <= 25) {
|
|
137
|
+
return 'Minimum must be above 25';
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
},
|
|
141
|
+
maxValue: ([, max]) => {
|
|
142
|
+
if (max >= 75) {
|
|
143
|
+
return 'Maximum must be below 75';
|
|
144
|
+
}
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}} render={({
|
|
149
|
+
field
|
|
150
|
+
}) => <FormControl label="Price" error={errors.priceRange?.message}>
|
|
151
|
+
<RangeSlider value={field.value} onValueChange={field.onChange} min={0} max={100} aria-label="Price Range" />
|
|
152
|
+
</FormControl>} />
|
|
153
|
+
|
|
154
|
+
<Controller name="emailNotifications" control={control} render={({
|
|
155
|
+
field
|
|
156
|
+
}) => <FormControl label="Email Notifications" description="Receive updates and newsletters via email" error={errors.emailNotifications?.message}>
|
|
157
|
+
<Switch checked={field.value} onCheckedChange={field.onChange} aria-label="Email Notifications" />
|
|
158
|
+
</FormControl>} />
|
|
159
|
+
|
|
160
|
+
<Controller control={control} name="englishLevel" rules={{
|
|
161
|
+
required: 'English level is required'
|
|
162
|
+
}} render={({
|
|
163
|
+
field
|
|
164
|
+
}) => <FormControl label="English Level" required>
|
|
165
|
+
<SingleSelectChips aria-label="English Level" value={field.value} onValueChange={field.onChange}>
|
|
166
|
+
<SingleSelectChipsItem value="a0">
|
|
167
|
+
A0
|
|
168
|
+
</SingleSelectChipsItem>
|
|
169
|
+
<SingleSelectChipsItem value="a1">
|
|
170
|
+
A1
|
|
171
|
+
</SingleSelectChipsItem>
|
|
172
|
+
<SingleSelectChipsItem value="a2">
|
|
173
|
+
A2
|
|
174
|
+
</SingleSelectChipsItem>
|
|
175
|
+
<SingleSelectChipsItem value="b1">
|
|
176
|
+
B1
|
|
177
|
+
</SingleSelectChipsItem>
|
|
178
|
+
<SingleSelectChipsItem value="b2">
|
|
179
|
+
B2
|
|
180
|
+
</SingleSelectChipsItem>
|
|
181
|
+
<SingleSelectChipsItem value="c1">
|
|
182
|
+
C1
|
|
183
|
+
</SingleSelectChipsItem>
|
|
184
|
+
<SingleSelectChipsItem value="c2">
|
|
185
|
+
C2
|
|
186
|
+
</SingleSelectChipsItem>
|
|
187
|
+
</SingleSelectChips>
|
|
188
|
+
</FormControl>} />
|
|
189
|
+
|
|
190
|
+
<Controller control={control} name="skills" rules={{
|
|
191
|
+
required: 'Skills are required'
|
|
192
|
+
}} render={({
|
|
193
|
+
field
|
|
194
|
+
}) => <FormControl label="Skills" required>
|
|
195
|
+
<MultiSelectChips aria-label="Skills" value={field.value} onValueChange={field.onChange}>
|
|
196
|
+
<MultiSelectChipsItem value="vocabulary">
|
|
197
|
+
Vocabulary
|
|
198
|
+
</MultiSelectChipsItem>
|
|
199
|
+
<MultiSelectChipsItem value="speaking">
|
|
200
|
+
Speaking
|
|
201
|
+
</MultiSelectChipsItem>
|
|
202
|
+
<MultiSelectChipsItem value="listening">
|
|
203
|
+
Listening
|
|
204
|
+
</MultiSelectChipsItem>
|
|
205
|
+
<MultiSelectChipsItem value="reading">
|
|
206
|
+
Reading
|
|
207
|
+
</MultiSelectChipsItem>
|
|
208
|
+
</MultiSelectChips>
|
|
209
|
+
</FormControl>} />
|
|
210
|
+
|
|
211
|
+
<Controller control={control} name="marketing" rules={{
|
|
212
|
+
required: 'Marketing is required'
|
|
213
|
+
}} render={({
|
|
214
|
+
field
|
|
215
|
+
}) => <FormControl label="Marketing" description="How do you want to receive marketing communications?" required>
|
|
216
|
+
<DismissibleChips aria-label="Marketing" value={field.value} onValueChange={field.onChange}>
|
|
217
|
+
<DismissibleChipsItem value="emails">
|
|
218
|
+
Marketing emails
|
|
219
|
+
</DismissibleChipsItem>
|
|
220
|
+
<DismissibleChipsItem value="push">
|
|
221
|
+
Push notifications
|
|
222
|
+
</DismissibleChipsItem>
|
|
223
|
+
</DismissibleChips>
|
|
224
|
+
</FormControl>} />
|
|
225
|
+
|
|
226
|
+
<FormControl label="Accept Privacy Policy" description="I accept the Privacy Policy" error={errors.privacyPolicyAccepted?.message} hideLabel>
|
|
227
|
+
<Checkbox {...register('privacyPolicyAccepted', {
|
|
228
|
+
required: 'You must accept the Privacy Policy'
|
|
229
|
+
})} />
|
|
230
|
+
</FormControl>
|
|
231
|
+
|
|
232
|
+
<Controller name="registrationExperience" control={control} render={({
|
|
233
|
+
field
|
|
234
|
+
}) => <FormControl label="Rate the registration experience" description="Was the form easy to understand?" error={errors.registrationExperience?.message} id="registrationExperienceField">
|
|
235
|
+
<RatingInput value={field.value} onValueChange={field.onChange} />
|
|
236
|
+
</FormControl>} />
|
|
237
|
+
|
|
238
|
+
<LayoutFlex gap="12" padding={['20', '0', '0']} justifyContent="end">
|
|
239
|
+
<Button onClick={() => reset()} variant="secondary">
|
|
240
|
+
Reset
|
|
241
|
+
</Button>
|
|
242
|
+
<Button submitsForm>Submit</Button>
|
|
243
|
+
</LayoutFlex>
|
|
244
|
+
</form>
|
|
245
|
+
</LayoutFlex>
|
|
246
|
+
</div>;
|
|
247
|
+
};
|
|
248
|
+
return <Story />;
|
|
249
|
+
},
|
|
250
|
+
play: async ({
|
|
251
|
+
args,
|
|
252
|
+
canvasElement,
|
|
253
|
+
step
|
|
254
|
+
}) => {
|
|
255
|
+
const canvas = within(canvasElement);
|
|
256
|
+
await step('Fill full name field', async () => {
|
|
257
|
+
await userEvent.type(canvas.getByRole('textbox', {
|
|
258
|
+
name: 'Full Name'
|
|
259
|
+
}), 'John Doe');
|
|
260
|
+
});
|
|
261
|
+
await step('Fill email field', async () => {
|
|
262
|
+
await userEvent.type(canvas.getByRole('textbox', {
|
|
263
|
+
name: 'Email'
|
|
264
|
+
}), 'john.doe@example.com');
|
|
265
|
+
});
|
|
266
|
+
await step('Fill age field', async () => {
|
|
267
|
+
await userEvent.clear(canvas.getByRole('spinbutton', {
|
|
268
|
+
name: 'Age'
|
|
269
|
+
}));
|
|
270
|
+
await userEvent.type(canvas.getByRole('spinbutton', {
|
|
271
|
+
name: 'Age'
|
|
272
|
+
}), '25');
|
|
273
|
+
});
|
|
274
|
+
await step('Fill country field', async () => {
|
|
275
|
+
canvas.getByRole('combobox', {
|
|
276
|
+
name: 'Country'
|
|
277
|
+
}).focus();
|
|
278
|
+
await userEvent.keyboard('{Enter}'.repeat(2));
|
|
279
|
+
});
|
|
280
|
+
await step('Fill password field', async () => {
|
|
281
|
+
// Password fields doesn't have implicit role, so we need to use getByLabelText
|
|
282
|
+
await userEvent.type(canvas.getByLabelText(/^Password/), 'TestPassword123!');
|
|
283
|
+
});
|
|
284
|
+
await step('Fill confirm password field', async () => {
|
|
285
|
+
// Password fields doesn't have implicit role, so we need to use getByLabelText
|
|
286
|
+
await userEvent.type(canvas.getByLabelText(/^Confirm Password/), 'TestPassword123!');
|
|
287
|
+
});
|
|
288
|
+
await step('Fill bio field', async () => {
|
|
289
|
+
await userEvent.type(canvas.getByRole('textbox', {
|
|
290
|
+
name: 'Bio'
|
|
291
|
+
}), 'I am a software engineer with 5 years of experience.');
|
|
292
|
+
});
|
|
293
|
+
await step('Move experience level slider', async () => {
|
|
294
|
+
const experienceSlider = canvas.getByRole('slider', {
|
|
295
|
+
name: 'Experience Level'
|
|
296
|
+
});
|
|
297
|
+
experienceSlider.focus();
|
|
298
|
+
await userEvent.keyboard('{ArrowRight}'.repeat(5));
|
|
299
|
+
});
|
|
300
|
+
await step('Move price range slider minimum', async () => {
|
|
301
|
+
const priceRangeMin = canvas.getByRole('slider', {
|
|
302
|
+
name: 'Minimum Price Range'
|
|
303
|
+
});
|
|
304
|
+
priceRangeMin.focus();
|
|
305
|
+
await userEvent.keyboard('{ArrowRight}'.repeat(2));
|
|
306
|
+
});
|
|
307
|
+
await step('Move price range slider maximum', async () => {
|
|
308
|
+
const priceRangeMax = canvas.getByRole('slider', {
|
|
309
|
+
name: 'Maximum Price Range'
|
|
310
|
+
});
|
|
311
|
+
priceRangeMax.focus();
|
|
312
|
+
await userEvent.keyboard('{ArrowLeft}'.repeat(2));
|
|
313
|
+
});
|
|
314
|
+
await step('Select english level', async () => {
|
|
315
|
+
const englishLevels = canvas.getByRole('listbox', {
|
|
316
|
+
name: 'English Level'
|
|
317
|
+
});
|
|
318
|
+
const b2 = within(englishLevels).getByRole('option', {
|
|
319
|
+
name: 'B2'
|
|
320
|
+
});
|
|
321
|
+
await userEvent.click(b2);
|
|
322
|
+
});
|
|
323
|
+
await step('Select reading skill', async () => {
|
|
324
|
+
const skills = canvas.getByRole('listbox', {
|
|
325
|
+
name: 'Skills'
|
|
326
|
+
});
|
|
327
|
+
const reading = within(skills).getByRole('option', {
|
|
328
|
+
name: 'Reading'
|
|
329
|
+
});
|
|
330
|
+
await userEvent.click(reading);
|
|
331
|
+
});
|
|
332
|
+
await step('Select listening skill', async () => {
|
|
333
|
+
const skills = canvas.getByRole('listbox', {
|
|
334
|
+
name: 'Skills'
|
|
335
|
+
});
|
|
336
|
+
const listening = within(skills).getByRole('option', {
|
|
337
|
+
name: 'Listening'
|
|
338
|
+
});
|
|
339
|
+
await userEvent.click(listening);
|
|
340
|
+
});
|
|
341
|
+
await step('Dismiss push notifications', async () => {
|
|
342
|
+
const marketing = canvas.getByRole('list', {
|
|
343
|
+
name: 'Marketing'
|
|
344
|
+
});
|
|
345
|
+
const push = within(marketing).getByRole('button', {
|
|
346
|
+
name: 'Remove Push notifications'
|
|
347
|
+
});
|
|
348
|
+
await userEvent.click(push);
|
|
349
|
+
});
|
|
350
|
+
await step('Accept privacy policy', async () => {
|
|
351
|
+
const privacyPolicy = canvas.getByRole('checkbox', {
|
|
352
|
+
name: 'Accept Privacy Policy'
|
|
353
|
+
});
|
|
354
|
+
await userEvent.click(privacyPolicy);
|
|
355
|
+
});
|
|
356
|
+
await step('Toggle email notifications', async () => {
|
|
357
|
+
await userEvent.click(canvas.getByRole('switch', {
|
|
358
|
+
name: 'Email Notifications'
|
|
359
|
+
}));
|
|
360
|
+
});
|
|
361
|
+
const rating = canvasElement.querySelector('#registrationExperienceField');
|
|
362
|
+
if (!rating) throw new Error('#registrationExperienceField is not in the canvas');
|
|
363
|
+
if (!(rating instanceof HTMLElement)) throw new Error('#registrationExperienceField is not a valid HTMLElement');
|
|
364
|
+
await step('Rate the registration form', async () => {
|
|
365
|
+
await setRating({
|
|
366
|
+
value: 5,
|
|
367
|
+
rating
|
|
368
|
+
});
|
|
369
|
+
});
|
|
370
|
+
await step('Submit the form', async () => {
|
|
371
|
+
await userEvent.click(canvas.getByRole('button', {
|
|
372
|
+
name: 'Submit'
|
|
373
|
+
}));
|
|
374
|
+
});
|
|
375
|
+
await step('Assert that onSubmit was called with correct data', async () => {
|
|
376
|
+
await waitFor(() => {
|
|
377
|
+
expect(args.onSubmit).toHaveBeenCalledWith({
|
|
378
|
+
fullName: 'John Doe',
|
|
379
|
+
email: 'john.doe@example.com',
|
|
380
|
+
age: 25,
|
|
381
|
+
country: 'us',
|
|
382
|
+
password: 'TestPassword123!',
|
|
383
|
+
confirmPassword: 'TestPassword123!',
|
|
384
|
+
bio: 'I am a software engineer with 5 years of experience.',
|
|
385
|
+
privacyPolicyAccepted: true,
|
|
386
|
+
experienceLevel: 55,
|
|
387
|
+
priceRange: [27, 73],
|
|
388
|
+
emailNotifications: false,
|
|
389
|
+
englishLevel: 'b2',
|
|
390
|
+
skills: ['reading', 'listening'],
|
|
391
|
+
marketing: ['emails'],
|
|
392
|
+
registrationExperience: 5
|
|
393
|
+
}, expect.anything());
|
|
394
|
+
});
|
|
395
|
+
});
|
|
396
|
+
await step('Reset the form', async () => {
|
|
397
|
+
await userEvent.click(canvas.getByRole('button', {
|
|
398
|
+
name: 'Reset'
|
|
399
|
+
}));
|
|
400
|
+
});
|
|
401
|
+
await step('Assert all fields are cleared', async () => {
|
|
402
|
+
await waitFor(() => {
|
|
403
|
+
expect(canvas.getByRole('textbox', {
|
|
404
|
+
name: 'Full Name'
|
|
405
|
+
})).not.toHaveValue();
|
|
406
|
+
expect(canvas.getByRole('textbox', {
|
|
407
|
+
name: 'Email'
|
|
408
|
+
})).not.toHaveValue();
|
|
409
|
+
expect(canvas.getByRole('spinbutton', {
|
|
410
|
+
name: 'Age'
|
|
411
|
+
})).not.toHaveValue();
|
|
412
|
+
expect(canvas.getByRole('combobox', {
|
|
413
|
+
name: 'Country'
|
|
414
|
+
})).not.toHaveValue();
|
|
415
|
+
|
|
416
|
+
// Password fields doesn't have implicit role, so we need to use getByLabelText
|
|
417
|
+
expect(canvas.getByLabelText(/^Password/)).not.toHaveValue();
|
|
418
|
+
expect(canvas.getByLabelText(/^Confirm Password/)).not.toHaveValue();
|
|
419
|
+
expect(canvas.getByRole('textbox', {
|
|
420
|
+
name: 'Bio'
|
|
421
|
+
})).not.toHaveValue();
|
|
422
|
+
expect(canvas.getByRole('checkbox', {
|
|
423
|
+
name: 'Accept Privacy Policy'
|
|
424
|
+
})).not.toBeChecked();
|
|
425
|
+
expect(canvas.getByRole('switch', {
|
|
426
|
+
name: 'Email Notifications'
|
|
427
|
+
})).toHaveAttribute('aria-checked', 'true');
|
|
428
|
+
expect(canvas.getByRole('slider', {
|
|
429
|
+
name: 'Experience Level'
|
|
430
|
+
})).toHaveAttribute('aria-valuenow', '50');
|
|
431
|
+
expect(canvas.getByRole('slider', {
|
|
432
|
+
name: 'Minimum Price Range'
|
|
433
|
+
})).toHaveAttribute('aria-valuenow', '25');
|
|
434
|
+
expect(canvas.getByRole('slider', {
|
|
435
|
+
name: 'Maximum Price Range'
|
|
436
|
+
})).toHaveAttribute('aria-valuenow', '75');
|
|
437
|
+
const levelChips = canvas.getByRole('listbox', {
|
|
438
|
+
name: 'English Level'
|
|
439
|
+
});
|
|
440
|
+
within(levelChips).getAllByRole('option').forEach(option => {
|
|
441
|
+
expect(option).toHaveAttribute('aria-selected', 'false');
|
|
442
|
+
});
|
|
443
|
+
const skillsChips = canvas.getByRole('listbox', {
|
|
444
|
+
name: 'Skills'
|
|
445
|
+
});
|
|
446
|
+
within(skillsChips).getAllByRole('option').forEach(option => {
|
|
447
|
+
expect(option).toHaveAttribute('aria-selected', 'false');
|
|
448
|
+
});
|
|
449
|
+
const marketingChips = canvas.getByRole('list', {
|
|
450
|
+
name: 'Marketing'
|
|
451
|
+
});
|
|
452
|
+
expect(within(marketingChips).getByRole('button', {
|
|
453
|
+
name: 'Remove Marketing emails'
|
|
454
|
+
})).toBeVisible();
|
|
455
|
+
expect(within(marketingChips).getByRole('button', {
|
|
456
|
+
name: 'Remove Push notifications'
|
|
457
|
+
})).toBeVisible();
|
|
458
|
+
const rating = canvasElement.querySelector('#registrationExperienceField');
|
|
459
|
+
if (!rating) throw new Error('#registrationExperienceField is not in the canvas');
|
|
460
|
+
if (!(rating instanceof HTMLElement)) throw new Error('#registrationExperienceField is not a valid HTMLElement');
|
|
461
|
+
expect(rating).toHaveAttribute('aria-valuetext', '0 out of 5');
|
|
462
|
+
});
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
}`,...$.parameters?.docs?.source},description:{story:`This example demonstrates how to integrate design system fields with react-hook-form.
|
|
466
|
+
|
|
467
|
+
See [react-hook-form docs](https://react-hook-form.com/docs) for more information.`,...$.parameters?.docs?.description}}},dt=[`IntegrationWithReactHookForm`]}))();export{$ as IntegrationWithReactHookForm,dt as __namedExportsOrder,ut as default};
|