@preply/ds-docs 7.1.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{config → .storybook}/decorators/preventIframeFromScrollingParent.tsx +1 -1
- package/{config → .storybook}/decorators/withIntlProvider.tsx +1 -1
- package/{config → .storybook}/main.ts +9 -21
- package/{config/manager.js → .storybook/manager.ts} +3 -3
- package/{config → .storybook}/preview-head.html +5 -0
- package/{config → .storybook}/preview.tsx +32 -7
- package/.storybook/vitest.setup.ts +5 -0
- package/README.md +1 -2
- package/dist/assets/00.LayoutFlex.stories-Trn9fl1r.js +85 -0
- package/dist/assets/{00.applications-CUkoHGre.js → 00.applications-DgG50o0h.js} +2 -2
- package/dist/assets/{00.favicons.guide-BACLlsQJ.js → 00.favicons.guide-BPbT_6WU.js} +2 -2
- package/dist/assets/{00.token-explorer-KvyvCOUP.js → 00.token-explorer-ClCpyqpc.js} +45 -45
- package/dist/assets/00.using-responsive-props-Bb1iomQW.js +18 -0
- package/dist/assets/01.semantic-tokens-C27rrlvA.js +11 -0
- package/dist/assets/{01.using-shorthand-props-BVcqSsu2.js → 01.using-shorthand-props-Cx8UqLGh.js} +2 -2
- package/dist/assets/10.Combinations.stories-DW0Awy7g.js +128 -0
- package/dist/assets/{10.fonts.guide-C0WN5q3d.js → 10.fonts.guide-mlrpbwOs.js} +2 -2
- package/dist/assets/{10.ssr-nXkWq-Jg.js → 10.ssr-Bxv1R5s2.js} +2 -2
- package/dist/assets/{11.languageFont.explorer.stories-CtRFTC-u.js → 11.languageFont.explorer.stories-CduWkRQi.js} +5 -5
- package/dist/assets/{11.ssr.app-router-DQgi7F2D.js → 11.ssr.app-router-DaFyxoYP.js} +2 -2
- package/dist/assets/{20.libraries-DU9GpL6L.js → 20.libraries-B1FxeNSm.js} +2 -2
- package/dist/assets/{2025-q4-ds-cleanup-C1ZmbxTl.js → 2025-q4-ds-cleanup-CyVfiEF_.js} +2 -2
- package/dist/assets/30.icons.explorer-J5XXpjOy.js +72 -0
- package/dist/assets/{30.storybook-DZPRDZF1.js → 30.storybook-BXPxdYYA.js} +2 -2
- package/dist/assets/40.illustrations.explorer-Ll2UaYWn.js +21 -0
- package/dist/assets/{90.advanced-C_XdYJPc.js → 90.advanced-BkBCaIij.js} +2 -2
- package/dist/assets/Accordion-Bjcf873X.js +1 -0
- package/dist/assets/{Accordion.stories-BUn1TO-l.js → Accordion.stories-CwmuD6M9.js} +3 -3
- package/dist/assets/{Accordion.tests.stories-DHNOscki.js → Accordion.tests.stories-DycRaTsm.js} +8 -8
- package/dist/assets/AlertDialog.stories-CMG96OPW.js +240 -0
- package/dist/assets/Avatar-BHWZ6iZn.js +1 -0
- package/dist/assets/Avatar.stories-DcHCuUcU.js +42 -0
- package/dist/assets/AvatarWithStatus.stories-BQ9j0v-r.js +36 -0
- package/dist/assets/Badge-e3LEfrfi.css +1 -0
- package/dist/assets/Badge.stories-CjBGqctl.js +82 -0
- package/dist/assets/Box.stories-F4YHVHtw.js +44 -0
- package/dist/assets/BubbleCounter.stories-W-QyzoZM.js +238 -0
- package/dist/assets/{Button-C2MXHYlY.css → Button-6DthIrMV.css} +1 -1
- package/dist/assets/Button-Db3mZeHX.js +1 -0
- package/dist/assets/Button-KgwWX-kY.js +1 -0
- package/dist/assets/{Button.stories-VjpvM5FZ.js → Button.stories-DZXg3fC6.js} +8 -8
- package/dist/assets/ButtonBase-LoF75NjE.js +1 -0
- package/dist/assets/{ButtonBase-Ide6FPM1.css → ButtonBase-vTD2whCv.css} +1 -1
- package/dist/assets/Checkbox-Bdi6imAj.js +1 -0
- package/dist/assets/{Checkbox.stories-C1RURGZy.js → Checkbox.stories-Wzzjomc-.js} +4 -4
- package/dist/assets/Checkbox.tests.stories-CGPErtLg.js +64 -0
- package/dist/assets/Chips.stories-BwJJ2fGW.js +140 -0
- package/dist/assets/Color-ASIRERSW-B8huhEry.js +1 -0
- package/dist/assets/ComposingPopovers.stories-CYrydDT0.js +49 -0
- package/dist/assets/CountryFlag-BsylP9aC.js +1 -0
- package/dist/assets/{CountryFlag.stories-lizf_vqO.js → CountryFlag.stories-CV_Ix2uc.js} +6 -6
- package/dist/assets/CountryFlag.test.stories-D-_jZuZ1.js +27 -0
- package/dist/assets/Dialog-DBQC7rLf.js +9 -0
- package/dist/assets/Dialog.stories-CLAeCRCv.js +381 -0
- package/dist/assets/DismissibleChips-BTc-ZGnG.js +1 -0
- package/dist/assets/{DismissibleChips.stories-CM10Bclv.js → DismissibleChips.stories-DYuvYDPR.js} +10 -10
- package/dist/assets/Divider-aEUPegmM.js +1 -0
- package/dist/assets/Divider.stories-DY-9haru.js +9 -0
- package/dist/assets/DocsRenderer-GHJI37HO-ZaAnf_mS.js +2 -0
- package/dist/assets/DropdownMenu-Eg6NEumE.js +1 -0
- package/dist/assets/{DropdownMenu.stories-BMPgkvR1.js → DropdownMenu.stories-DRc0OM4l.js} +25 -20
- package/dist/assets/FieldButton-CE-kxD0a.js +1 -0
- package/dist/assets/FieldButton.stories-0iohAlVk.js +1 -0
- package/dist/assets/FormControl-DI4h0Rn1.js +1 -0
- package/dist/assets/FormControl.stories-B-wRzqin.js +42 -0
- package/dist/assets/Heading-jyl-6mnE.js +1 -0
- package/dist/assets/Heading.stories-C--u6-XB.js +67 -0
- package/dist/assets/Icon-BbVZ9NP7.js +1 -0
- package/dist/assets/Icon-RSC-iQ3CU9mQ.js +6 -0
- package/dist/assets/{Icon.stories-C8lZfyvV.js → Icon.stories-DRfWUzol.js} +2 -2
- package/dist/assets/IconButton-DvmHN9Bh.js +1 -0
- package/dist/assets/Input-qJLg_DQg.js +1 -0
- package/dist/assets/InputContainer-DxTdO3rg.js +1 -0
- package/dist/assets/IntegrationWithReactHookForm.stories-D7Os2mOo.js +467 -0
- package/dist/assets/IntlFormattedCurrency.stories-DsOonDv4.js +1 -0
- package/dist/assets/IntlFormattedDateTime.stories-CEfl-J8a.js +1 -0
- package/dist/assets/LayoutFlex-7DoB3s9X.css +1 -0
- package/dist/assets/LayoutFlex-CtFx5gUZ.js +1 -0
- package/dist/assets/LayoutFlex-TxluN-Yw.js +1 -0
- package/dist/assets/LayoutFlexItem-CG7Crdkt.js +1 -0
- package/dist/assets/LayoutGrid-CyPyNDw1.js +1 -0
- package/dist/assets/LayoutGrid-Ddqp2KT2.js +1 -0
- package/dist/assets/LayoutGrid.stories-D1L7aqlu.js +88 -0
- package/dist/assets/LayoutGridItem-D9IWdXiI.js +1 -0
- package/dist/assets/Link-DBtlp5DH.js +1 -0
- package/dist/assets/{Link.stories-DVvzdQg0.js → Link.stories-BGk_oU7W.js} +2 -2
- package/dist/assets/Loader.stories-BW_8B3fu.js +37 -0
- package/dist/assets/MultiSelectChips-vFJ-9-kf.js +1 -0
- package/dist/assets/{MultiSelectChips.stories-DtyVRO_D.js → MultiSelectChips.stories-DMQnklfd.js} +11 -11
- package/dist/assets/NativeSelectField.stories-iktDEjbi.js +243 -0
- package/dist/assets/NumberField-DachAjtc.js +1 -0
- package/dist/assets/NumberField.stories-CHm83Evu.js +254 -0
- package/dist/assets/ObserveIntersection-Gkcdp17D.js +1 -0
- package/dist/assets/ObserveIntersection.stories-Crg5XGQK.js +27 -0
- package/dist/assets/OnboardingTooltip-Clfuyvq4.js +1 -0
- package/dist/assets/{OnboardingTooltip.stories-CXeGdwmF.js → OnboardingTooltip.stories-1rbEN6tf.js} +5 -5
- package/dist/assets/OnboardingTooltip.tests.stories-DbaxrQeh.js +79 -0
- package/dist/assets/OnboardingTour-DlsIO1Gv.js +1 -0
- package/dist/assets/OnboardingTour.stories-eO-vrmSq.js +42 -0
- package/dist/assets/{OnboardingTour.tests.stories-geQyXRg0.js → OnboardingTour.tests.stories-nH2oAAkE.js} +6 -6
- package/dist/assets/PasswordField-Cb1fJLBM.js +1 -0
- package/dist/assets/PasswordField.stories-BpCu_Nmu.js +229 -0
- package/dist/assets/PreplyLogo.stories-C7DVat2q.js +93 -0
- package/dist/assets/ProgressBar.stories-CJTsS-k-.js +43 -0
- package/dist/assets/ProgressSteps-LRQw0WxN.js +1 -0
- package/dist/assets/ProgressSteps.stories-DkKhdsEq.js +31 -0
- package/dist/assets/PromoDialog-BD77J0Sb.js +3 -0
- package/dist/assets/RangeSlider-C7BMuKPO.js +3 -0
- package/dist/assets/{RangeSlider.stories-DOKf_qXp.js → RangeSlider.stories-BR0J8t26.js} +6 -6
- package/dist/assets/Rating.stories-C4odIVLb.js +115 -0
- package/dist/assets/{RatingInput.stories-BmhUO-vY.js → RatingInput.stories-C3TFrxw_.js} +30 -57
- package/dist/assets/SelectField-BvrdbknI.css +1 -0
- package/dist/assets/SelectField-qkC5zVlE.js +1 -0
- package/dist/assets/SelectField.stories-BkyQpgee.js +516 -0
- package/dist/assets/ShowOnIntersection.stories-DMrPWP_X.js +17 -0
- package/dist/assets/SingleSelectChips-URtzgStH.js +1 -0
- package/dist/assets/{SingleSelectChips.stories-CgSCJR-h.js → SingleSelectChips.stories-C62wkEv2.js} +19 -19
- package/dist/assets/Slider-DwJ11rhB.js +1 -0
- package/dist/assets/Slider.stories-Ctv9GCye.js +69 -0
- package/dist/assets/Spinner-BtlYJQrD.js +1 -0
- package/dist/assets/{Stars-DGzJFzmk.js → Stars-noMq-Uej.js} +1 -1
- package/dist/assets/Steps-ZKxhdp_N.js +1 -0
- package/dist/assets/{Steps.stories-BppoL2gK.js → Steps.stories-DcQb87xm.js} +12 -12
- package/dist/assets/Switch-CukXNUpT.js +1 -0
- package/dist/assets/{Switch.stories-aVZF_-KJ.js → Switch.stories-DDel8GN3.js} +9 -9
- package/dist/assets/Text-BaQf6qnx.js +1 -0
- package/dist/assets/Text-D2ssZW1_.js +1 -0
- package/dist/assets/Text-O3SM8a3p.css +1 -0
- package/dist/assets/Text.stories-DAYsyFR5.js +58 -0
- package/dist/assets/TextField-D3FL7yE0.js +1 -0
- package/dist/assets/TextField.stories-B7yiySGl.js +254 -0
- package/dist/assets/TextHighlighted.stories-GrC4GB2n.js +32 -0
- package/dist/assets/TextInline.stories-CLDPL3xz.js +50 -0
- package/dist/assets/TextareaField-lItTPjhC.js +1 -0
- package/dist/assets/{TextareaField.stories-oScbbK_V.js → TextareaField.stories-CSn1Y1es.js} +13 -12
- package/dist/assets/Toast-PKFBYWQw.css +1 -0
- package/dist/assets/Toast.stories-WMpE2CUA.js +183 -0
- package/dist/assets/TokyoUIAttach-DEHypfd2.js +1 -0
- package/dist/assets/TokyoUIAvailability7LateNight-DqIhY2LI.js +1 -0
- package/dist/assets/TokyoUICheck-DFXDKlST.js +1 -0
- package/dist/assets/TokyoUICheckmark-CC75JvoU.js +1 -0
- package/dist/assets/TokyoUIChevronDown-CV0GTyb_.js +1 -0
- package/dist/assets/TokyoUIClose-Bf-N_4aK.js +1 -0
- package/dist/assets/TokyoUIEmojiFrowning-CEEry-ar.js +1 -0
- package/dist/assets/TokyoUIEye-CvZmomj8.js +1 -0
- package/dist/assets/TokyoUIFav-CV3HlDno.js +1 -0
- package/dist/assets/TokyoUIInfo-S99idYL9.js +1 -0
- package/dist/assets/TokyoUILanguage-dDro1t5I.js +1 -0
- package/dist/assets/TokyoUILibraryExplore-3boXHfri.js +1 -0
- package/dist/assets/TokyoUILock-Ddb0LZOj.js +1 -0
- package/dist/assets/TokyoUIMessages-DddkimKx.js +1 -0
- package/dist/assets/TokyoUIMinus-BM97SQFD.js +1 -0
- package/dist/assets/TokyoUINotebook-CzW-xZ-S.js +1 -0
- package/dist/assets/TokyoUINotesWithPad-CZPHd-s1.js +1 -0
- package/dist/assets/TokyoUIPhone-B41go8ay.js +1 -0
- package/dist/assets/TokyoUISettings-r8yUukmp.js +1 -0
- package/dist/assets/TokyoUIStarFilled-DAFjKfr3.js +1 -0
- package/dist/assets/TokyoUITag-BOlMKPwF.js +1 -0
- package/dist/assets/TokyoUIUpload-DqgHhwt9.js +1 -0
- package/dist/assets/TokyoUIUser-DQL_EW5M.js +1 -0
- package/dist/assets/Tooltip-nL6-qc2S.js +1 -0
- package/dist/assets/Tooltip.stories-BCIj91Tz.js +93 -0
- package/dist/assets/{Tooltip.tests.stories-t8Ra6jdu.js → Tooltip.tests.stories-BuldDnaS.js} +3 -3
- package/dist/assets/VisuallyHidden-CBzPUOy4.js +1 -0
- package/dist/assets/WithTooltip-IO6J4KBT-sdWoJ5kA.js +9 -0
- package/dist/assets/align-self-Dj6Hw1ei.js +1 -0
- package/dist/assets/avatar-1.png +0 -0
- package/dist/assets/avatar-2.png +0 -0
- package/dist/assets/avatar-3.png +0 -0
- package/dist/assets/avatar-4.png +0 -0
- package/dist/assets/avatar-5.png +0 -0
- package/dist/assets/{axe-KozDj-05.js → axe-COSWniE7.js} +1 -1
- package/dist/assets/{breakpoints-BU3g7toZ.js → breakpoints-Bq0N-WKo.js} +2 -2
- package/dist/assets/{breakpoints-B9BgZenX.js → breakpoints-DAuVWyVl.js} +2 -2
- package/dist/assets/{breakpoints-BwVzZWx6.js → breakpoints-r5YNDlDj.js} +2 -2
- package/dist/assets/changelog-DfbyLrVG.js +2392 -0
- package/dist/assets/client-B0RkqQz5.js +1 -0
- package/dist/assets/{componentNames-k0j3gHgH.js → componentNames-CmmTyjin.js} +1 -1
- package/dist/assets/constants-DiGI6Pao.js +47 -0
- package/dist/assets/createRequiredContext-Dh2RVm_M.js +1 -0
- package/dist/assets/emotion-unitless.esm-BZwEwAnk.js +1 -0
- package/dist/assets/formatter-QJ4M4OGQ-DkyPaaGf.js +1 -0
- package/dist/assets/getTokenVar-DAf6Dqww.js +11 -0
- package/dist/assets/getTokenVar-DGGittrV.js +1 -0
- package/dist/assets/gradientBorders-BLAK8Z-v.js +45 -0
- package/dist/assets/hover-BK-WJeH0.js +16 -0
- package/dist/assets/hover-Bny3ccNR.js +13 -0
- package/dist/assets/hover-reiWegqW.js +14 -0
- package/dist/assets/iframe-CWgEsn_I.js +1891 -0
- package/dist/assets/iframe-Dl7aNcg3.css +1 -0
- package/dist/assets/index-BAEPs7Y-.js +12 -0
- package/dist/assets/index-BiSZC2o0.js +1 -0
- package/dist/assets/{index-Bd3pAdGF.js → index-CC1MzVDH.js} +2 -2
- package/dist/assets/index-D3eu31XZ.js +41 -0
- package/dist/assets/index-DN8YXDVa.js +1 -0
- package/dist/assets/index-DVMjwMfI.js +1 -0
- package/dist/assets/{intro-W6KSFbTA.js → intro-BstePxGk.js} +2 -2
- package/dist/assets/layout-relative-Dd1oD7no.js +1 -0
- package/dist/assets/layout-relative.module-1z75aSwo-BlGCRaGo.js +1 -0
- package/dist/assets/layout-relative.module-DtLbhGhZ.js +1 -0
- package/dist/assets/matchers-DMFSMG2O-CAdg16Fl.js +14 -0
- package/dist/assets/mcp-BnvXyj7V.js +32 -0
- package/dist/assets/message-qc_MCF3J.js +1 -0
- package/dist/assets/{migrating-from-less-DsURcUxp.js → migrating-from-less-DeeEWMYL.js} +2 -2
- package/dist/assets/playground.stories-CvceWUq7.js +6 -0
- package/dist/assets/preload-helper-Dp1pzeXC.js +1 -0
- package/dist/assets/react-18-Cn7fKkEX.js +1 -0
- package/dist/assets/{render-icon-Du0nasoi.js → render-icon-CcTDatKg.js} +2 -2
- package/dist/assets/render-icon-DCa6Vadq.js +9 -0
- package/dist/assets/{shared-strings-DFzxd8lM.js → shared-strings-I9WUPC_k.js} +1 -1
- package/dist/assets/styled-components.browser.esm-BZ4U6qbl.js +2 -0
- package/dist/assets/styled-components.browser.esm-DsfIp3u0.js +2 -0
- package/dist/assets/syntaxhighlighter-IQDEPFLK-BGcWLhM8.js +6 -0
- package/dist/assets/text-accent-CvDqGyH8.js +1 -0
- package/dist/assets/text-centered-4FcavPd_.js +1 -0
- package/dist/assets/text-centered-nO9Uq8mN.js +1 -0
- package/dist/assets/tokens-BEq-FCvC.js +15 -0
- package/dist/assets/tokens-I7xc-5gL.js +1 -0
- package/dist/assets/{tokens-Dr0rNfCQ.js → tokens-as7cem5X.js} +2 -2
- package/dist/assets/{tokens-CwpsI1W8.js → tokens-kjKX1OOx.js} +2 -2
- package/dist/assets/useControllableState-CB098DmS.js +1 -0
- package/dist/assets/useHostname-DENeD9To.js +1 -0
- package/dist/assets/useMergeRefs-Cma75nFm.js +1 -0
- package/dist/assets/useMergeRefs-DrdDSUH5.js +1 -0
- package/dist/assets/useOpenInteractionType-DeCsKa-1.js +15 -0
- package/dist/assets/usePortalElement-CK58JXLC.js +19 -0
- package/dist/assets/useStableCallback-Cg8WkzY2.js +1 -0
- package/dist/assets/useToken-Dy7e7qui.js +1 -0
- package/dist/assets/{welcome-CqKVBlQ_.js → welcome-DnB7jiTV.js} +3 -3
- package/dist/assets/{zeroheight-bhuS12y3.js → zeroheight-BLhCMMHP.js} +3 -3
- package/dist/favicon-wrapper.svg +46 -0
- package/dist/favicon.svg +2 -1
- package/dist/iframe.html +37 -11
- package/dist/index.html +30 -65
- package/dist/index.json +1 -1
- package/dist/preview-stats.json +13185 -12261
- package/dist/project.json +1 -1
- package/dist/sb-addons/a11y-1/manager-bundle.js +3 -218
- package/dist/sb-addons/docs-4/manager-bundle.js +3 -0
- package/dist/sb-addons/links-2/manager-bundle.js +3 -0
- package/dist/sb-addons/storybook-5/manager-bundle.js +3 -0
- package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +628 -0
- package/dist/sb-addons/vitest-3/manager-bundle.js +3 -0
- package/dist/sb-common-assets/favicon-wrapper.svg +46 -0
- package/dist/sb-common-assets/favicon.svg +1 -1
- package/dist/sb-manager/globals-runtime.js +73678 -40227
- package/dist/sb-manager/globals.js +13 -37
- package/dist/sb-manager/manager-stores.js +23 -0
- package/dist/sb-manager/runtime.js +17313 -9663
- package/dist/vite-inject-mocker-entry.js +18 -0
- package/package.json +17 -23
- package/pages/06.changelog/changelog.mdx +7 -0
- package/pages/30.guides/00.installation/00.applications.mdx +67 -0
- package/pages/30.guides/00.installation/10.ssr.mdx +113 -0
- package/pages/30.guides/00.installation/11.ssr.app-router.mdx +74 -0
- package/pages/30.guides/00.installation/20.libraries.mdx +38 -0
- package/pages/30.guides/00.installation/30.storybook.mdx +60 -0
- package/pages/30.guides/00.installation/90.advanced.mdx +41 -0
- package/pages/30.guides/10.MCP/mcp.mdx +50 -0
- package/pages/30.guides/40.tokens/00.token-explorer.mdx +17 -0
- package/pages/30.guides/40.tokens/01.semantic-tokens.mdx +33 -0
- package/pages/30.guides/40.tokens/components/SchemeSwitcher.styles.ts +34 -0
- package/pages/30.guides/40.tokens/components/SchemeSwitcher.tsx +41 -0
- package/pages/30.guides/40.tokens/components/SearchTerms.styles.tsx +17 -0
- package/pages/30.guides/40.tokens/components/SearchTerms.tsx +63 -0
- package/pages/30.guides/40.tokens/components/SemanticTokens.tsx +183 -0
- package/pages/30.guides/40.tokens/components/TokenCard.styles.tsx +33 -0
- package/pages/30.guides/40.tokens/components/TokenCard.tsx +50 -0
- package/pages/30.guides/40.tokens/components/TokenList.styles.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenList.tsx +32 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RenderDuration.tsx +25 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RenderEasing.tsx +7 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RenderTransition.tsx +21 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBackground.tsx +15 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBgColor.tsx +15 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBorderColor.tsx +33 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBorderImage.tsx +19 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBorderRadius.tsx +19 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBorderWidth.tsx +28 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBoxShadow.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererBrightness.tsx +22 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererEasingCoordinate.tsx +8 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererFgColor.tsx +20 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererFontFamily.tsx +28 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererFontSize.tsx +16 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererFontStyle.tsx +17 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererFontWeight.tsx +17 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererHeight.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererLetterSpacing.tsx +17 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererLineHeightPixels.tsx +23 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererLineHeightRatio.tsx +23 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererOutlineColor.tsx +33 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererOutlineOffset.tsx +29 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererOutlineWidth.tsx +28 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererPaletteItem.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererProps.tsx +6 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererSize.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererSpace.tsx +14 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererSwatch.tsx +25 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererTextDecoration.tsx +26 -0
- package/pages/30.guides/40.tokens/components/TokenRenderers/RendererTypeface.tsx +28 -0
- package/pages/30.guides/40.tokens/components/TokenSearch.styles.tsx +42 -0
- package/pages/30.guides/40.tokens/components/TokenSearch.tsx +79 -0
- package/pages/30.guides/40.tokens/components/TokenSearchHint.styles.tsx +17 -0
- package/pages/30.guides/40.tokens/components/TokenSearchHint.tsx +41 -0
- package/pages/30.guides/40.tokens/components/TokenSearchHints.tsx +25 -0
- package/pages/30.guides/40.tokens/constants/search-hints.tsx +34 -0
- package/pages/30.guides/40.tokens/constants/token-values-flattened.ts +35 -0
- package/pages/30.guides/40.tokens/functions/token-type.renderer.test.tsx +72 -0
- package/pages/30.guides/40.tokens/functions/token-type.renderer.tsx +206 -0
- package/pages/30.guides/40.tokens/functions/token.filter.ts +25 -0
- package/pages/30.guides/40.tokens/providers/TokenSearchProvider.tsx +76 -0
- package/pages/30.guides/40.tokens/providers/useTokenSearchContext.ts +5 -0
- package/pages/30.guides/40.tokens/types.ts +18 -0
- package/pages/30.guides/50.special-props/00.using-responsive-props.mdx +35 -0
- package/pages/30.guides/50.special-props/01.using-shorthand-props.mdx +64 -0
- package/pages/30.guides/50.special-props/components/BreakpointList.tsx +19 -0
- package/pages/30.guides/60.components/20.sc/examples/MyStyledComponentWithTokens.ts +14 -0
- package/pages/30.guides/60.components/index.mdx +28 -0
- package/pages/30.guides/60.components/less/breakpoints.mdx +43 -0
- package/pages/30.guides/60.components/less/hover.mdx +19 -0
- package/pages/30.guides/60.components/less/tokens.mdx +24 -0
- package/pages/30.guides/60.components/scss/breakpoints.mdx +52 -0
- package/pages/30.guides/60.components/scss/hover.mdx +30 -0
- package/pages/30.guides/60.components/scss/migrating-from-less.mdx +55 -0
- package/pages/30.guides/60.components/scss/tokens.mdx +33 -0
- package/pages/30.guides/60.components/styled-components/breakpoints.mdx +45 -0
- package/pages/30.guides/60.components/styled-components/hover.mdx +20 -0
- package/pages/30.guides/60.components/styled-components/intro.mdx +49 -0
- package/pages/30.guides/60.components/styled-components/tokens.mdx +22 -0
- package/pages/30.guides/70.assets/00.favicons.guide.mdx +32 -0
- package/pages/30.guides/70.assets/10.fonts.guide.mdx +59 -0
- package/pages/30.guides/70.assets/11.languageFont.explorer.stories.tsx +15 -0
- package/pages/30.guides/70.assets/30.icons.explorer.mdx +30 -0
- package/pages/30.guides/70.assets/40.illustrations.explorer.mdx +12 -0
- package/pages/30.guides/70.assets/components/FontForLanguages.tsx +357 -0
- package/pages/30.guides/70.assets/components/IconDetails.styles.ts +29 -0
- package/pages/30.guides/70.assets/components/IconDetails.tsx +163 -0
- package/pages/30.guides/70.assets/components/IconItem.styles.ts +51 -0
- package/pages/30.guides/70.assets/components/IconItem.tsx +35 -0
- package/pages/30.guides/70.assets/components/IconList.styles.ts +9 -0
- package/pages/30.guides/70.assets/components/IconList.tsx +26 -0
- package/pages/30.guides/70.assets/components/IconSearch.styles.ts +23 -0
- package/pages/30.guides/70.assets/components/IconSearch.tsx +19 -0
- package/pages/30.guides/70.assets/components/IconSearchResults.styles.ts +7 -0
- package/pages/30.guides/70.assets/components/IconSearchResults.tsx +37 -0
- package/pages/30.guides/70.assets/components/IconsSearchContext/IconSearchProvider.tsx +37 -0
- package/pages/30.guides/70.assets/components/IconsSearchContext/IconsContext.ts +36 -0
- package/pages/30.guides/70.assets/components/IconsSearchContext/useIconSearchContext.ts +5 -0
- package/pages/30.guides/70.assets/components/IllustrationsList.tsx +133 -0
- package/pages/30.guides/70.assets/components/ThemeOptionsItem.tsx +49 -0
- package/pages/30.guides/70.assets/components/ThemeOptionsList.tsx +61 -0
- package/pages/30.guides/70.assets/constants/icon-imports.ts +583 -0
- package/pages/30.guides/70.assets/functions/import-svg-file-name.tsx +8 -0
- package/pages/30.guides/70.assets/styles.css +35 -0
- package/pages/30.guides/90.migrations/2025-q4-ds-cleanup.mdx +1295 -0
- package/pages/50.utilities/getTokenVar.mdx +19 -0
- package/pages/50.utilities/gradientBorders.mdx +87 -0
- package/pages/50.utilities/usePortalElement.mdx +26 -0
- package/pages/hat.svg +3 -0
- package/pages/playground.stories.tsx +26 -0
- package/pages/welcome.mdx +35 -0
- package/pages/zeroheight.mdx +53 -0
- package/public/assets/avatar-1.png +0 -0
- package/public/assets/avatar-2.png +0 -0
- package/public/assets/avatar-3.png +0 -0
- package/public/assets/avatar-4.png +0 -0
- package/public/assets/avatar-5.png +0 -0
- package/public/assets/logo.svg +1 -0
- package/public/assets/path-preply-org.jpg +0 -0
- package/public/assets/path.png +0 -0
- package/root.html +13 -0
- package/tsconfig.json +11 -1
- package/vitest.config.mts +5 -3
- package/config/packages.js +0 -21
- package/config/utils/statics.js +0 -30
- package/config/vitest.setup.ts +0 -9
- package/dist/assets/00.LayoutFlex.stories-DER40PUP.js +0 -85
- package/dist/assets/00.using-responsive-props-Dtv6-YXW.js +0 -18
- package/dist/assets/01.semantic-tokens-DnB7r57n.js +0 -2
- package/dist/assets/10.Combinations.stories-B7f7hRFA.js +0 -128
- package/dist/assets/30.icons.explorer-Dj-ys2GU.js +0 -73
- package/dist/assets/40.illustrations.explorer-Coq1W0EG.js +0 -21
- package/dist/assets/Accordion-iUMOrUCV.js +0 -23
- package/dist/assets/AlertDialog.stories-Dt0cfcEo.js +0 -243
- package/dist/assets/Avatar-NdNFhLYi.js +0 -6
- package/dist/assets/Avatar.stories-DYqwXUUw.js +0 -42
- package/dist/assets/AvatarWithStatus.stories-Bhrj0cSz.js +0 -41
- package/dist/assets/Badge-DWapjrJk.css +0 -1
- package/dist/assets/Badge.stories-DR_x-i6O.js +0 -85
- package/dist/assets/Box.stories-DieBkr98.js +0 -44
- package/dist/assets/BubbleCounter.stories-CCKFDvHr.js +0 -242
- package/dist/assets/Button-B5i7cA94.js +0 -1
- package/dist/assets/Button-C-6rDSzI.js +0 -20
- package/dist/assets/ButtonBase-h431KMrY.js +0 -8
- package/dist/assets/Checkbox-BnqXU33n.js +0 -10
- package/dist/assets/Checkbox.tests.stories-CKbpVER5.js +0 -64
- package/dist/assets/Chips.stories-kLSnMqrz.js +0 -146
- package/dist/assets/Color-YHDXOIA2-BWptXrTc.js +0 -1
- package/dist/assets/ComposingPopovers.stories--SKHALGr.js +0 -49
- package/dist/assets/CountryFlag-DuiC2miK.js +0 -49
- package/dist/assets/CountryFlag.test.stories-BoCBFg0i.js +0 -27
- package/dist/assets/Dialog.stories-RQp6xIqU.js +0 -379
- package/dist/assets/DismissibleChips-BGcUuQYK.js +0 -1
- package/dist/assets/Divider-BPgGsji3.js +0 -1
- package/dist/assets/Divider.stories-D0XhMPpe.js +0 -9
- package/dist/assets/DocsRenderer-CFRXHY34-7_I-DC5T.js +0 -2
- package/dist/assets/DropdownMenu-PLTFFi-U.js +0 -1229
- package/dist/assets/FieldButton-DAY3HLuQ.js +0 -1
- package/dist/assets/FieldButton.stories-DApRDUo4.js +0 -1
- package/dist/assets/FormControl-BIPOTQBb.js +0 -7
- package/dist/assets/FormControl.stories-Ybw0qxva.js +0 -67
- package/dist/assets/Heading-CzIRSKAr.js +0 -1
- package/dist/assets/Heading.stories-B0-2LbXt.js +0 -67
- package/dist/assets/Icon-BsfKiFZj.js +0 -8
- package/dist/assets/Icon-RSC-4fhV_e9B.js +0 -6
- package/dist/assets/IconButton-BgdrD9k8.js +0 -8
- package/dist/assets/Input-CfV08vH7.js +0 -48
- package/dist/assets/InputContainer-Cnv--ROK.js +0 -2
- package/dist/assets/IntegrationWithReactHookForm.stories-BgtVrzFb.js +0 -460
- package/dist/assets/IntlFormattedCurrency.stories-BMYzNxPt.js +0 -1
- package/dist/assets/IntlFormattedDateTime.stories-ZBusegeN.js +0 -1
- package/dist/assets/LayoutFlex-B05EaYB1.css +0 -1
- package/dist/assets/LayoutFlex-BkczeydK.js +0 -1
- package/dist/assets/LayoutFlex-DF8MvGnJ.js +0 -1
- package/dist/assets/LayoutFlexItem-XGd2QoPI.js +0 -1
- package/dist/assets/LayoutGrid-B5JJKgNY.js +0 -1
- package/dist/assets/LayoutGrid-CcWPCxyF.js +0 -1
- package/dist/assets/LayoutGrid.stories-CLDor39v.js +0 -88
- package/dist/assets/LayoutGridItem-BLoIIsgH.js +0 -1
- package/dist/assets/Link-CjAvDgdX.js +0 -5
- package/dist/assets/Loader.stories-CgVn9xQk.js +0 -37
- package/dist/assets/MultiSelectChips-9U0Tnh2Z.js +0 -2
- package/dist/assets/NumberField-CmClnfq6.js +0 -6
- package/dist/assets/NumberField.stories-3yRHDVS1.js +0 -254
- package/dist/assets/ObserveIntersection-tF7V09tr.js +0 -8
- package/dist/assets/ObserveIntersection.stories-CU9weI-s.js +0 -27
- package/dist/assets/OnboardingTooltip-DVeLAHtQ.js +0 -16
- package/dist/assets/OnboardingTooltip.tests.stories-O2UC2o4R.js +0 -79
- package/dist/assets/OnboardingTour-D3xEUgOf.js +0 -4
- package/dist/assets/OnboardingTour.stories-CBnSnEFN.js +0 -46
- package/dist/assets/PasswordField-DAL68lC4.js +0 -6
- package/dist/assets/PasswordField.stories-DYI1gVQx.js +0 -228
- package/dist/assets/PortalElementProvider-BAqvxZzH.js +0 -1
- package/dist/assets/PreplyLogo.stories-DP9KwK_Z.js +0 -95
- package/dist/assets/ProgressBar.stories-DZGEpHCd.js +0 -44
- package/dist/assets/ProgressSteps-BfCnfM68.js +0 -2
- package/dist/assets/ProgressSteps.stories--Zns7FpA.js +0 -31
- package/dist/assets/PromoDialog-oLEsdGtd.js +0 -3
- package/dist/assets/RangeSlider-BKOYT1ZU.js +0 -4
- package/dist/assets/Rating.stories-CC-5R6ut.js +0 -116
- package/dist/assets/RootProvider-CyXG17jf.js +0 -1
- package/dist/assets/SelectField-ByfZzt_b.js +0 -53
- package/dist/assets/SelectField.stories-IaZzYevq.js +0 -243
- package/dist/assets/ShowOnIntersection.stories-C2m-k9HC.js +0 -17
- package/dist/assets/SingleSelectChips-D7f85tAs.js +0 -2
- package/dist/assets/Slider-GGejckz6.js +0 -2
- package/dist/assets/Slider.stories-DSglTZg5.js +0 -69
- package/dist/assets/Spinner-qiZily8k.js +0 -1
- package/dist/assets/Steps-BnIR8N56.js +0 -26
- package/dist/assets/StorybookGlobalStyle-CtZU2X7e.js +0 -42
- package/dist/assets/Switch-B-jGiz3C.js +0 -12
- package/dist/assets/Text-DVl1HBkZ.js +0 -1
- package/dist/assets/Text.stories-CHcPPDZB.js +0 -58
- package/dist/assets/TextField-BRDwFAhX.js +0 -6
- package/dist/assets/TextField.stories-Psl8ijNV.js +0 -253
- package/dist/assets/TextHighlighted.stories-CTQM4A4u.js +0 -32
- package/dist/assets/TextInline.stories-TEw3tSim.js +0 -50
- package/dist/assets/TextareaField-BUSqPXn3.js +0 -53
- package/dist/assets/Toast-Bce4LWtf.css +0 -1
- package/dist/assets/Toast.stories-Den6Rcqh.js +0 -101
- package/dist/assets/TokyoUIAttach-BWl7Jkq1.js +0 -1
- package/dist/assets/TokyoUIAvailability7LateNight-TgMFD5Or.js +0 -1
- package/dist/assets/TokyoUICheck-BMIsD36S.js +0 -1
- package/dist/assets/TokyoUIChevronDown-CEw5hWWz.js +0 -1
- package/dist/assets/TokyoUIClose-thK8sk63.js +0 -1
- package/dist/assets/TokyoUIEmojiFrowning-DwuiVRut.js +0 -1
- package/dist/assets/TokyoUIEye-CteyS9_g.js +0 -1
- package/dist/assets/TokyoUIFav-DOVerCtW.js +0 -1
- package/dist/assets/TokyoUIInfo-DbkQBubr.js +0 -1
- package/dist/assets/TokyoUILanguage-CLpo5Vdq.js +0 -1
- package/dist/assets/TokyoUILibraryExplore-B9OQyi-V.js +0 -1
- package/dist/assets/TokyoUILock-CUE2UpP8.js +0 -1
- package/dist/assets/TokyoUIMessages-BShhOmUG.js +0 -1
- package/dist/assets/TokyoUIMinus-RacYe9uc.js +0 -1
- package/dist/assets/TokyoUINotebook-kt8pWj_a.js +0 -1
- package/dist/assets/TokyoUINotesWithPad-B-o4vu0Y.js +0 -1
- package/dist/assets/TokyoUIPhone-CvuBM6jb.js +0 -1
- package/dist/assets/TokyoUISettings-NNMqOtUc.js +0 -1
- package/dist/assets/TokyoUIStarFilled-CVOoYvsY.js +0 -1
- package/dist/assets/TokyoUITag-CS4uarg6.js +0 -1
- package/dist/assets/TokyoUIUpload-Bf0gWv4M.js +0 -1
- package/dist/assets/TokyoUIUser-Cvenl_VS.js +0 -1
- package/dist/assets/Tooltip-_f_f-kTL.js +0 -9
- package/dist/assets/Tooltip.stories-C2Yz1gLt.js +0 -93
- package/dist/assets/VisuallyHidden-CZd13GOS.js +0 -1
- package/dist/assets/_commonjsHelpers-Cpj98o6Y.js +0 -1
- package/dist/assets/align-self-Cj4aclWl.js +0 -1
- package/dist/assets/changelog-Caynf8sn.js +0 -2325
- package/dist/assets/chunk-XP5HYGXS-BpfKkqn7.js +0 -1
- package/dist/assets/classNames-9hsFPPZv.js +0 -1
- package/dist/assets/client-CYxxc9KC.js +0 -1
- package/dist/assets/constants-DTpaCXm6.js +0 -1
- package/dist/assets/constants-DVSid1Xr.js +0 -48
- package/dist/assets/createRequiredContext-DPmvfWRz.js +0 -241
- package/dist/assets/defaults-_YAxqn11.js +0 -1
- package/dist/assets/entry-preview-B8S6AF6S.js +0 -2
- package/dist/assets/entry-preview-docs-BuAKzHmI.js +0 -46
- package/dist/assets/getTokenVar-4Jlty0xz.js +0 -1
- package/dist/assets/getTokenVar-Ik0AWZ4t.js +0 -11
- package/dist/assets/hoist-non-react-statics.cjs-C-Qo8PK8.js +0 -8
- package/dist/assets/hover-CquEGcLG.js +0 -13
- package/dist/assets/hover-DSaWqp3c.js +0 -14
- package/dist/assets/hover-ZyQgH17L.js +0 -16
- package/dist/assets/iframe-C3SpczPa.js +0 -211
- package/dist/assets/index--TGv0Gnn.js +0 -131
- package/dist/assets/index-2TVOn9du.js +0 -1
- package/dist/assets/index-B-lxVbXh.js +0 -1
- package/dist/assets/index-BN6VMYqa.js +0 -1
- package/dist/assets/index-BPCsOyHr.js +0 -24
- package/dist/assets/index-BV2iXjxm.js +0 -1
- package/dist/assets/index-BqT8peiM.js +0 -1
- package/dist/assets/index-C5uDgNEj.js +0 -12
- package/dist/assets/index-CA5R8PN9.js +0 -8
- package/dist/assets/index-CRQycg-8.js +0 -575
- package/dist/assets/index-CUHsGBvM.js +0 -41
- package/dist/assets/index-Cb9e4tly.js +0 -1
- package/dist/assets/index-Cc-bXjHe.js +0 -1
- package/dist/assets/index-ChsGqxH_.js +0 -9
- package/dist/assets/index-DR63UjCN.js +0 -1
- package/dist/assets/index-DWSmmBvQ.js +0 -12
- package/dist/assets/index-Dk_MCKuE.js +0 -240
- package/dist/assets/index-DrFu-skq.js +0 -6
- package/dist/assets/index-qlqSh81O.js +0 -1
- package/dist/assets/index-s7KTOhR7.js +0 -1
- package/dist/assets/jsx-runtime-BTJTZTIL.js +0 -9
- package/dist/assets/layout-relative-Rn-Bns4t.js +0 -1
- package/dist/assets/layout-relative.module-1z75aSwo-rvXP8TMg.js +0 -1
- package/dist/assets/layout-relative.module-FOVgic7W.js +0 -1
- package/dist/assets/matchers-7Z3WT2CE-T3xScrR7.js +0 -14
- package/dist/assets/message-CSdaKtIj.js +0 -1
- package/dist/assets/playground.stories-_pKinBuZ.js +0 -6
- package/dist/assets/preview-B2Uoj8bD.js +0 -2
- package/dist/assets/preview-B8lJiyuQ.js +0 -34
- package/dist/assets/preview-BBWR9nbA.js +0 -1
- package/dist/assets/preview-BO3Eq4YI.js +0 -11
- package/dist/assets/preview-BTnW7Hye.js +0 -1
- package/dist/assets/preview-BWzBA1C2.js +0 -396
- package/dist/assets/preview-CtMGbgR3.js +0 -1
- package/dist/assets/preview-CvbIS5ZJ.js +0 -1
- package/dist/assets/preview-CzAPySEb.css +0 -1
- package/dist/assets/preview-DGUiP6tS.js +0 -7
- package/dist/assets/preview-DHQbi4pV.js +0 -1
- package/dist/assets/preview-RZiq1oHg.js +0 -2
- package/dist/assets/react-18-vqCHxTgY.js +0 -1
- package/dist/assets/render-icon-BT0Aq7PA.js +0 -9
- package/dist/assets/styled-components.browser.esm-COuAnjOv.js +0 -2
- package/dist/assets/test-utils-Cec0Zua5.js +0 -9
- package/dist/assets/text-accent-VILyY3zt.js +0 -1
- package/dist/assets/text-centered-BFb64PJw.js +0 -1
- package/dist/assets/text-centered-DRiH4EXX.js +0 -1
- package/dist/assets/tokens-BYLcI6Lk.js +0 -1
- package/dist/assets/tokens-CNkSTEMS.js +0 -15
- package/dist/assets/tslib.es6-C7pnyCjR.js +0 -1
- package/dist/assets/useControllableState-DKskwY-e.js +0 -1
- package/dist/assets/useHostname-PsilflFC.js +0 -1
- package/dist/assets/useMergeRefs-D_RfOOSs.js +0 -1
- package/dist/assets/useMergeRefs-SFH7Mw4x.js +0 -1
- package/dist/assets/useOpenInteractionType-BkuUI9ak.js +0 -15
- package/dist/assets/usePortalElement-CZ5jtEVS.js +0 -19
- package/dist/assets/useTheme-zzbPBRtu.js +0 -1
- package/dist/assets/useToken-Cfvk3vM1.js +0 -1
- package/dist/assets/v4-CtRu48qb.js +0 -1
- package/dist/sb-addons/actions-2/manager-bundle.js +0 -3
- package/dist/sb-addons/config-13/manager-bundle.js +0 -3
- package/dist/sb-addons/essentials-actions-5/manager-bundle.js +0 -3
- package/dist/sb-addons/essentials-backgrounds-7/manager-bundle.js +0 -12
- package/dist/sb-addons/essentials-controls-4/manager-bundle.js +0 -402
- package/dist/sb-addons/essentials-docs-6/manager-bundle.js +0 -242
- package/dist/sb-addons/essentials-measure-10/manager-bundle.js +0 -3
- package/dist/sb-addons/essentials-outline-11/manager-bundle.js +0 -3
- package/dist/sb-addons/essentials-toolbars-9/manager-bundle.js +0 -3
- package/dist/sb-addons/essentials-viewport-8/manager-bundle.js +0 -3
- package/dist/sb-addons/links-3/manager-bundle.js +0 -3
- package/dist/sb-addons/storybook-core-core-server-presets-0/common-manager-bundle.js +0 -3
- package/dist/sb-addons/storybook-experimental-addon-test-12/manager-bundle.js +0 -223
- package/dist/sb-manager/globals-module-info.js +0 -1052
- package/docs/root.html +0 -13
- package/scripts/copy-statics.js +0 -12
- package/scripts/publish-changelog.js +0 -39
- /package/{config → .storybook}/decorators/preventIframeFromScrollingParent.module.css +0 -0
- /package/{config → .storybook}/decorators/withRootProvider.tsx +0 -0
- /package/{config → .storybook}/manager-head.html +0 -0
- /package/dist/assets/{index-D1siTi3u.css → Dialog-D1siTi3u.css} +0 -0
- /package/{docs/static → dist/assets}/logo.svg +0 -0
- /package/{docs/static → dist/assets}/path-preply-org.jpg +0 -0
- /package/{docs/static → dist/assets}/path.png +0 -0
- /package/{docs/static → public}/favicon.svg +0 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import {
|
|
2
|
+
HEADING_VARIANT_OPTIONS,
|
|
3
|
+
TextVariant,
|
|
4
|
+
TEXT_VARIANT_DEFAULT,
|
|
5
|
+
TEXT_VARIANT_OPTIONS,
|
|
6
|
+
tokens,
|
|
7
|
+
} from '@preply/ds-core';
|
|
8
|
+
import { Button, Heading, LayoutFlex, LayoutGrid, Text, TextField } from '@preply/ds-web-lib';
|
|
9
|
+
import { GlobalStyle, RootProvider } from '@preply/ds-web-root';
|
|
10
|
+
import React, { FC, useEffect, useState } from 'react';
|
|
11
|
+
import { ThemeOptionsList } from './ThemeOptionsList';
|
|
12
|
+
|
|
13
|
+
const TOKYO_TEXT_VARIANTS: TextVariant[] = [
|
|
14
|
+
'caption-regular',
|
|
15
|
+
'caption-semibold',
|
|
16
|
+
'small-regular',
|
|
17
|
+
'small-regular-italic',
|
|
18
|
+
'small-semibold',
|
|
19
|
+
'small-semibold-italic',
|
|
20
|
+
'default-regular',
|
|
21
|
+
'default-regular-italic',
|
|
22
|
+
'default-semibold',
|
|
23
|
+
'default-semibold-italic',
|
|
24
|
+
'large-regular',
|
|
25
|
+
'large-regular-italic',
|
|
26
|
+
'large-semibold',
|
|
27
|
+
'large-semibold-italic',
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
// Placeholder for languages data
|
|
31
|
+
const languagesData = [
|
|
32
|
+
{
|
|
33
|
+
name: 'Русский (Russian)',
|
|
34
|
+
code: 'ru',
|
|
35
|
+
localized: 'Привет, мир!',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'English',
|
|
39
|
+
code: 'en',
|
|
40
|
+
localized: 'Hello, World!',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Polski',
|
|
44
|
+
code: 'pl',
|
|
45
|
+
localized: 'Cześć, Świecie!',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Deutsch',
|
|
49
|
+
code: 'de',
|
|
50
|
+
localized: 'Hallo, Welt!',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: 'Українська (Ukranian)',
|
|
54
|
+
code: 'uk',
|
|
55
|
+
localized: 'Привіт, Світ!',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
name: 'Português',
|
|
59
|
+
code: 'pt',
|
|
60
|
+
localized: 'Olá, Mundo!',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
name: 'Türkçe',
|
|
64
|
+
code: 'tr',
|
|
65
|
+
localized: 'Merhaba, Dünya!',
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: 'Bahasa',
|
|
69
|
+
code: 'id',
|
|
70
|
+
localized: 'Halo, Dunia!',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Français',
|
|
74
|
+
code: 'fr',
|
|
75
|
+
localized: 'Bonjour, le monde!',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: 'Italiano',
|
|
79
|
+
code: 'it',
|
|
80
|
+
localized: 'Ciao, Mondo!',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: 'Español',
|
|
84
|
+
code: 'es',
|
|
85
|
+
localized: '¡Hola, Mundo!',
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: '中文 (Chinese)',
|
|
89
|
+
code: 'zh',
|
|
90
|
+
localized: '你好,世界!',
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: '日本語 (Japanese)',
|
|
94
|
+
code: 'ja',
|
|
95
|
+
localized: 'こんにちは、世界!',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: '한국어 (Korean)',
|
|
99
|
+
code: 'ko',
|
|
100
|
+
localized: '안녕하세요, 세계!',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'العربية',
|
|
104
|
+
code: 'ar',
|
|
105
|
+
localized: 'مرحبا بك في عالم البرمجة!',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'Nederlands',
|
|
109
|
+
code: 'nl',
|
|
110
|
+
localized: 'Hallo, wereld!',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'Română',
|
|
114
|
+
code: 'ro',
|
|
115
|
+
localized: 'Salut, Lume!',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'Thai',
|
|
119
|
+
code: 'th',
|
|
120
|
+
localized: 'สวัสดี, โลก!',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: 'Swedish',
|
|
124
|
+
code: 'sv',
|
|
125
|
+
localized: 'Hej, världen!',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
name: 'Czeck',
|
|
129
|
+
code: 'cs',
|
|
130
|
+
localized: 'Ahoj, světe!',
|
|
131
|
+
},
|
|
132
|
+
] as const;
|
|
133
|
+
|
|
134
|
+
type Language = (typeof languagesData)[number]['code'];
|
|
135
|
+
|
|
136
|
+
const defaultValue: Record<Language, boolean> = {
|
|
137
|
+
ru: true,
|
|
138
|
+
en: true,
|
|
139
|
+
pl: true,
|
|
140
|
+
de: true,
|
|
141
|
+
ua: true,
|
|
142
|
+
pt: true,
|
|
143
|
+
tr: true,
|
|
144
|
+
id: true,
|
|
145
|
+
fr: true,
|
|
146
|
+
it: true,
|
|
147
|
+
es: true,
|
|
148
|
+
zh: true,
|
|
149
|
+
ja: true,
|
|
150
|
+
ko: true,
|
|
151
|
+
ar: true,
|
|
152
|
+
nl: true,
|
|
153
|
+
ro: true,
|
|
154
|
+
th: true,
|
|
155
|
+
sv: true,
|
|
156
|
+
cs: true,
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
function LanguagesTable() {
|
|
160
|
+
const localStorageValue = localStorage.getItem('selectedLanguages');
|
|
161
|
+
|
|
162
|
+
const [selectedLanguages, setSelectedLanguages] = useState<Partial<Record<Language, boolean>>>(
|
|
163
|
+
localStorageValue ? JSON.parse(localStorageValue) : defaultValue,
|
|
164
|
+
);
|
|
165
|
+
const [allVariants, setAllVariants] = useState(false);
|
|
166
|
+
const [englishSentence, setEnglishSentence] = useState('Hello, World!');
|
|
167
|
+
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
localStorage.setItem('selectedLanguages', JSON.stringify(selectedLanguages));
|
|
170
|
+
}, [selectedLanguages]);
|
|
171
|
+
|
|
172
|
+
const handleLanguageChange = event => {
|
|
173
|
+
setSelectedLanguages({
|
|
174
|
+
...selectedLanguages,
|
|
175
|
+
[event.target.name]: event.target.checked,
|
|
176
|
+
});
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
const selectAllLanguages = () => {
|
|
180
|
+
const allLanguages = languagesData.reduce((acc, language) => {
|
|
181
|
+
acc[language.code] = true;
|
|
182
|
+
return acc;
|
|
183
|
+
}, {});
|
|
184
|
+
setSelectedLanguages(allLanguages);
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
const deselectAllLanguages = () => {
|
|
188
|
+
setSelectedLanguages({});
|
|
189
|
+
};
|
|
190
|
+
|
|
191
|
+
const resetLanguages = () => {
|
|
192
|
+
setSelectedLanguages(defaultValue);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const toggleAllVariants = () => {
|
|
196
|
+
setAllVariants(currentValue => !currentValue);
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
return (
|
|
200
|
+
<div className="App">
|
|
201
|
+
<LayoutFlex column gap="32">
|
|
202
|
+
<LayoutGrid columns={5} gap="8">
|
|
203
|
+
{languagesData.map(language => (
|
|
204
|
+
<div key={language.code}>
|
|
205
|
+
<input
|
|
206
|
+
type="checkbox"
|
|
207
|
+
name={language.code}
|
|
208
|
+
checked={selectedLanguages[language.code] || false}
|
|
209
|
+
onChange={handleLanguageChange}
|
|
210
|
+
id={language.code}
|
|
211
|
+
/>
|
|
212
|
+
<label htmlFor={language.code}>
|
|
213
|
+
{language.name} ({language.code})
|
|
214
|
+
</label>
|
|
215
|
+
</div>
|
|
216
|
+
))}
|
|
217
|
+
</LayoutGrid>
|
|
218
|
+
<LayoutFlex gap="8">
|
|
219
|
+
<Button variant="secondary" onClick={selectAllLanguages}>
|
|
220
|
+
Select all languages
|
|
221
|
+
</Button>
|
|
222
|
+
<Button variant="secondary" onClick={deselectAllLanguages}>
|
|
223
|
+
Deselect all languages
|
|
224
|
+
</Button>
|
|
225
|
+
<Button variant="ghost" onClick={resetLanguages}>
|
|
226
|
+
Reset selected languages
|
|
227
|
+
</Button>
|
|
228
|
+
<Button variant="ghost" onClick={toggleAllVariants}>
|
|
229
|
+
Toggle all text variants
|
|
230
|
+
</Button>
|
|
231
|
+
</LayoutFlex>
|
|
232
|
+
<LayoutFlex column gap="32">
|
|
233
|
+
<TextField
|
|
234
|
+
label="English sentence"
|
|
235
|
+
value={englishSentence}
|
|
236
|
+
onValueChange={setEnglishSentence}
|
|
237
|
+
/>
|
|
238
|
+
</LayoutFlex>
|
|
239
|
+
|
|
240
|
+
<LayoutGrid columns={3} gap="16">
|
|
241
|
+
{languagesData
|
|
242
|
+
.filter(language => selectedLanguages[language.code])
|
|
243
|
+
.map(language => (
|
|
244
|
+
<div key={language.code} style={{ display: 'contents' }}>
|
|
245
|
+
<div>
|
|
246
|
+
{language.name} ({language.code})
|
|
247
|
+
</div>
|
|
248
|
+
<div lang={language.code}>
|
|
249
|
+
<Text accent="tertiary">
|
|
250
|
+
<i>English sentence</i>
|
|
251
|
+
</Text>
|
|
252
|
+
<Heading variant="large" tag="h2">
|
|
253
|
+
{englishSentence}
|
|
254
|
+
</Heading>
|
|
255
|
+
<Text>{englishSentence}</Text>
|
|
256
|
+
|
|
257
|
+
{allVariants && (
|
|
258
|
+
<>
|
|
259
|
+
<ThemeOptionsList
|
|
260
|
+
referenceTheme="tokyo-ui"
|
|
261
|
+
component="Heading"
|
|
262
|
+
prop="variant"
|
|
263
|
+
options={HEADING_VARIANT_OPTIONS}
|
|
264
|
+
render={variant => (
|
|
265
|
+
<Heading variant={variant}>
|
|
266
|
+
{englishSentence}
|
|
267
|
+
</Heading>
|
|
268
|
+
)}
|
|
269
|
+
resolveToken={option =>
|
|
270
|
+
tokens.heading.variant[option].fontSize
|
|
271
|
+
}
|
|
272
|
+
/>
|
|
273
|
+
<ThemeOptionsList
|
|
274
|
+
referenceTheme="tokyo-ui"
|
|
275
|
+
component="Text"
|
|
276
|
+
prop="variant"
|
|
277
|
+
options={TEXT_VARIANT_OPTIONS.filter(({ id }) =>
|
|
278
|
+
TOKYO_TEXT_VARIANTS.includes(id),
|
|
279
|
+
)}
|
|
280
|
+
defaultValue={TEXT_VARIANT_DEFAULT}
|
|
281
|
+
resolveToken={option =>
|
|
282
|
+
tokens.text.variant[option].fontSize
|
|
283
|
+
}
|
|
284
|
+
render={variant => (
|
|
285
|
+
<Text variant={variant}>{englishSentence}</Text>
|
|
286
|
+
)}
|
|
287
|
+
/>
|
|
288
|
+
</>
|
|
289
|
+
)}
|
|
290
|
+
</div>
|
|
291
|
+
<div lang={language.code}>
|
|
292
|
+
<Text accent="tertiary">
|
|
293
|
+
<i>Localized sentence</i>
|
|
294
|
+
</Text>
|
|
295
|
+
<Heading variant="large" tag="h2">
|
|
296
|
+
{language.localized}
|
|
297
|
+
</Heading>
|
|
298
|
+
<Text>{language.localized}</Text>
|
|
299
|
+
|
|
300
|
+
{allVariants && (
|
|
301
|
+
<>
|
|
302
|
+
<ThemeOptionsList
|
|
303
|
+
referenceTheme="tokyo-ui"
|
|
304
|
+
component="Heading"
|
|
305
|
+
prop="variant"
|
|
306
|
+
options={HEADING_VARIANT_OPTIONS}
|
|
307
|
+
render={variant => (
|
|
308
|
+
<Heading variant={variant}>
|
|
309
|
+
{language.localized}
|
|
310
|
+
</Heading>
|
|
311
|
+
)}
|
|
312
|
+
resolveToken={option =>
|
|
313
|
+
tokens.heading.variant[option].fontSize
|
|
314
|
+
}
|
|
315
|
+
/>
|
|
316
|
+
<ThemeOptionsList
|
|
317
|
+
referenceTheme="tokyo-ui"
|
|
318
|
+
component="Text"
|
|
319
|
+
prop="variant"
|
|
320
|
+
options={TEXT_VARIANT_OPTIONS.filter(({ id }) =>
|
|
321
|
+
TOKYO_TEXT_VARIANTS.includes(id),
|
|
322
|
+
)}
|
|
323
|
+
defaultValue={TEXT_VARIANT_DEFAULT}
|
|
324
|
+
resolveToken={option =>
|
|
325
|
+
tokens.text.variant[option].fontSize
|
|
326
|
+
}
|
|
327
|
+
render={variant => (
|
|
328
|
+
<Text variant={variant}>
|
|
329
|
+
{language.localized}
|
|
330
|
+
</Text>
|
|
331
|
+
)}
|
|
332
|
+
/>
|
|
333
|
+
</>
|
|
334
|
+
)}
|
|
335
|
+
</div>
|
|
336
|
+
</div>
|
|
337
|
+
))}
|
|
338
|
+
</LayoutGrid>
|
|
339
|
+
</LayoutFlex>
|
|
340
|
+
</div>
|
|
341
|
+
);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
export const FontForLanguages: FC<Record<string, never>> = () => {
|
|
345
|
+
return (
|
|
346
|
+
<>
|
|
347
|
+
<GlobalStyle />
|
|
348
|
+
<RootProvider theme="tokyo-ui">
|
|
349
|
+
{/* See https://preply.atlassian.net/browse/DES-1108 for when data-preply-ds-theme can be
|
|
350
|
+
removed */}
|
|
351
|
+
<div data-preply-ds-theme="tokyo-ui">
|
|
352
|
+
<LanguagesTable />
|
|
353
|
+
</div>
|
|
354
|
+
</RootProvider>
|
|
355
|
+
</>
|
|
356
|
+
);
|
|
357
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
|
|
3
|
+
export const Div = styled.div`
|
|
4
|
+
position: sticky;
|
|
5
|
+
top: 5px;
|
|
6
|
+
border: 1px solid #ccc;
|
|
7
|
+
border-radius: 4px;
|
|
8
|
+
height: fit-content;
|
|
9
|
+
min-height: 400px;
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
padding: 20px 15px;
|
|
13
|
+
h2 {
|
|
14
|
+
word-break: break-all;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
|
|
18
|
+
export const SelectIconDiv = styled.div`
|
|
19
|
+
position: sticky;
|
|
20
|
+
top: 5px;
|
|
21
|
+
border: 1px solid #ccc;
|
|
22
|
+
border-radius: 4px;
|
|
23
|
+
height: fit-content;
|
|
24
|
+
min-height: 400px;
|
|
25
|
+
display: flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
padding: 15px;
|
|
29
|
+
`;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { color } from '@preply/ds-core';
|
|
2
|
+
import { Feature } from '@preply/ds-core-types';
|
|
3
|
+
import { getTokenVar as t } from '@preply/ds-web-core';
|
|
4
|
+
import { Icon, LayoutFlex, Text } from '@preply/ds-web-lib';
|
|
5
|
+
import React, { FC } from 'react';
|
|
6
|
+
|
|
7
|
+
import { importSvgFileName } from '../functions/import-svg-file-name';
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
icon: Feature | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const CopyCodeBlock = ({ code }) => {
|
|
14
|
+
const positiveBg = t(color.background.positiveDark);
|
|
15
|
+
return (
|
|
16
|
+
<div
|
|
17
|
+
style={{
|
|
18
|
+
display: 'flex',
|
|
19
|
+
flexDirection: 'column',
|
|
20
|
+
gap: '16px',
|
|
21
|
+
backgroundColor: '#f5f2f0',
|
|
22
|
+
color: 'darkslategray',
|
|
23
|
+
borderRadius: 4,
|
|
24
|
+
padding: 4,
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
<pre
|
|
28
|
+
style={{
|
|
29
|
+
fontFamily: 'monospace',
|
|
30
|
+
fontSize: '12px',
|
|
31
|
+
}}
|
|
32
|
+
>
|
|
33
|
+
<code style={{ whiteSpace: 'pre-wrap', overflowWrap: 'break-word' }}>{code}</code>
|
|
34
|
+
</pre>
|
|
35
|
+
<button
|
|
36
|
+
type="button"
|
|
37
|
+
onClick={async e => {
|
|
38
|
+
const btn = e.currentTarget;
|
|
39
|
+
await navigator.clipboard.writeText(code);
|
|
40
|
+
btn.animate(
|
|
41
|
+
[
|
|
42
|
+
{ color: 'black', backgroundColor: 'none' },
|
|
43
|
+
{ color: 'white', backgroundColor: positiveBg },
|
|
44
|
+
{ color: 'black', backgroundColor: 'none' },
|
|
45
|
+
],
|
|
46
|
+
{
|
|
47
|
+
duration: 500,
|
|
48
|
+
easing: 'ease-in-out',
|
|
49
|
+
},
|
|
50
|
+
);
|
|
51
|
+
}}
|
|
52
|
+
style={{
|
|
53
|
+
alignSelf: 'end',
|
|
54
|
+
fontSize: '12px',
|
|
55
|
+
border: 'none',
|
|
56
|
+
borderRadius: '4px',
|
|
57
|
+
backgroundColor: 'none',
|
|
58
|
+
cursor: 'pointer',
|
|
59
|
+
}}
|
|
60
|
+
>
|
|
61
|
+
Copy
|
|
62
|
+
</button>
|
|
63
|
+
</div>
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const RNIconDetails: FC<Props> = ({ icon }) => {
|
|
68
|
+
if (!icon) return null;
|
|
69
|
+
|
|
70
|
+
if (!icon.name.startsWith('TokyoUI'))
|
|
71
|
+
return (
|
|
72
|
+
<>
|
|
73
|
+
<h3>React Native</h3>
|
|
74
|
+
<p>Non-TokyoUI icons are not supported in React Native.</p>
|
|
75
|
+
</>
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
const rnIconName = icon.name.replace('TokyoUI', '');
|
|
79
|
+
|
|
80
|
+
const rnCodeSnippet = `
|
|
81
|
+
import { Icon } from '@preply/ds-rn-lib';
|
|
82
|
+
|
|
83
|
+
<Icon name="${rnIconName}" />`;
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<>
|
|
87
|
+
<h3>React Native</h3>
|
|
88
|
+
<CopyCodeBlock code={rnCodeSnippet.trim()} />
|
|
89
|
+
</>
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const IconDetails: FC<Props> = ({ icon }) => {
|
|
94
|
+
if (!icon) {
|
|
95
|
+
return (
|
|
96
|
+
<div
|
|
97
|
+
style={{
|
|
98
|
+
position: 'sticky',
|
|
99
|
+
top: '4px',
|
|
100
|
+
border: '1px solid lightgray',
|
|
101
|
+
borderRadius: '4px',
|
|
102
|
+
textAlign: 'center',
|
|
103
|
+
alignContent: 'center',
|
|
104
|
+
height: 'fit-content',
|
|
105
|
+
}}
|
|
106
|
+
>
|
|
107
|
+
<p>select an icon</p>
|
|
108
|
+
</div>
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const isDeprecated = typeof icon.name === 'string' && !icon.name.startsWith('TokyoUI');
|
|
113
|
+
|
|
114
|
+
const importStatement = `import ${icon.name} from '@preply/ds-media-icons/dist/24/${icon.name}.svg';`;
|
|
115
|
+
const iconUsage = `<Icon svg={${icon.name}} />`;
|
|
116
|
+
|
|
117
|
+
return (
|
|
118
|
+
<div
|
|
119
|
+
style={{
|
|
120
|
+
position: 'sticky',
|
|
121
|
+
top: '4px',
|
|
122
|
+
border: '1px solid lightgray',
|
|
123
|
+
borderRadius: '4px',
|
|
124
|
+
padding: '16px',
|
|
125
|
+
height: 'fit-content',
|
|
126
|
+
backgroundColor: isDeprecated ? t(color.background.warningLight) : 'unset',
|
|
127
|
+
}}
|
|
128
|
+
>
|
|
129
|
+
{isDeprecated && (
|
|
130
|
+
<Text accent="warning" variant={'large-semibold-italic'}>
|
|
131
|
+
This icon is deprecated, use the "TokyoUI"-prefixed one
|
|
132
|
+
</Text>
|
|
133
|
+
)}
|
|
134
|
+
<LayoutFlex>
|
|
135
|
+
<Icon svg={importSvgFileName(icon.name)} size="16" />
|
|
136
|
+
<Icon svg={importSvgFileName(icon.name)} size="24" />
|
|
137
|
+
<Icon svg={importSvgFileName(icon.name)} size="32" />
|
|
138
|
+
<Icon svg={importSvgFileName(icon.name)} size="48" />
|
|
139
|
+
</LayoutFlex>
|
|
140
|
+
<h2>{icon.name}</h2>
|
|
141
|
+
<p>{icon.description}</p>
|
|
142
|
+
<p>Import the icon from:</p>
|
|
143
|
+
<CopyCodeBlock code={importStatement} />
|
|
144
|
+
<p>Then render it using the Icon component:</p>
|
|
145
|
+
<CopyCodeBlock code={iconUsage} />
|
|
146
|
+
<br />
|
|
147
|
+
<RNIconDetails icon={icon} />
|
|
148
|
+
<h3>Color customizations</h3>
|
|
149
|
+
<p>
|
|
150
|
+
The icon should allow changing its black fill color with everything else. Here the
|
|
151
|
+
icon should look red on a soft-red background.
|
|
152
|
+
</p>
|
|
153
|
+
<div
|
|
154
|
+
style={{
|
|
155
|
+
color: t(color.text.critical),
|
|
156
|
+
background: t(color.background.criticalLight),
|
|
157
|
+
}}
|
|
158
|
+
>
|
|
159
|
+
<Icon svg={importSvgFileName(icon.name)} />
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
);
|
|
163
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { onHover } from '@preply/ds-web-core';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
isSelected?: boolean;
|
|
6
|
+
isDeprecated?: boolean;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const Li = styled.li`
|
|
10
|
+
display: flex;
|
|
11
|
+
text-decoration: none;
|
|
12
|
+
`;
|
|
13
|
+
|
|
14
|
+
export const IconCard = styled.button.withConfig({
|
|
15
|
+
shouldForwardProp: (prop: string) =>
|
|
16
|
+
prop !== 'isDeprecated' && prop !== 'isDeprecated' && prop !== 'isSelected',
|
|
17
|
+
})<Props>`
|
|
18
|
+
all: unset;
|
|
19
|
+
display: flex;
|
|
20
|
+
border-radius: 4px;
|
|
21
|
+
flex-direction: row;
|
|
22
|
+
align-items: center;
|
|
23
|
+
gap: 8px;
|
|
24
|
+
text-decoration: none;
|
|
25
|
+
padding: 16px;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
flex: 1;
|
|
28
|
+
p {
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
text-overflow: ellipsis;
|
|
31
|
+
${({ isDeprecated }) => {
|
|
32
|
+
if (isDeprecated) {
|
|
33
|
+
return `color: #966208`; // color.text.warning
|
|
34
|
+
}
|
|
35
|
+
return '';
|
|
36
|
+
}}
|
|
37
|
+
}
|
|
38
|
+
${onHover(`
|
|
39
|
+
background-color: #fafafa;
|
|
40
|
+
`)}
|
|
41
|
+
&:focus {
|
|
42
|
+
border: 1px solid #ccc;
|
|
43
|
+
}
|
|
44
|
+
${({ isSelected }) => {
|
|
45
|
+
if (isSelected) {
|
|
46
|
+
return `background-color: #fafafa;
|
|
47
|
+
border: 1px solid #ccc;`;
|
|
48
|
+
}
|
|
49
|
+
return '';
|
|
50
|
+
}}
|
|
51
|
+
`;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Feature } from '@preply/ds-core-types';
|
|
2
|
+
import { Icon } from '@preply/ds-web-lib';
|
|
3
|
+
import React, { FC } from 'react';
|
|
4
|
+
|
|
5
|
+
import { importSvgFileName } from '../functions/import-svg-file-name';
|
|
6
|
+
|
|
7
|
+
import { IconCard, Li } from './IconItem.styles';
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
icon: Feature;
|
|
11
|
+
onIconClick: (icon: Feature) => void;
|
|
12
|
+
isSelected?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const IconItem: FC<Props> = ({ icon, onIconClick, isSelected }) => {
|
|
16
|
+
const isDeprecated = typeof icon.name === 'string' && !icon.name.startsWith('TokyoUI');
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<Li key={icon.name}>
|
|
20
|
+
<IconCard
|
|
21
|
+
onClick={() => onIconClick(icon)}
|
|
22
|
+
isSelected={isSelected}
|
|
23
|
+
isDeprecated={isDeprecated}
|
|
24
|
+
>
|
|
25
|
+
<Icon
|
|
26
|
+
svg={importSvgFileName(icon.name)}
|
|
27
|
+
accent={isDeprecated ? 'warning' : 'primary'}
|
|
28
|
+
/>
|
|
29
|
+
<p>
|
|
30
|
+
{icon.name} {isDeprecated && '(deprecated)'}
|
|
31
|
+
</p>
|
|
32
|
+
</IconCard>
|
|
33
|
+
</Li>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Feature } from '@preply/ds-core-types';
|
|
2
|
+
import React, { FC } from 'react';
|
|
3
|
+
|
|
4
|
+
import { IconItem } from './IconItem';
|
|
5
|
+
import { Ul } from './IconList.styles';
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
icons: Feature[];
|
|
9
|
+
onIconClick: (icon: Feature) => void;
|
|
10
|
+
selectedIcon: Feature | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const IconList: FC<Props> = ({ icons, onIconClick, selectedIcon }) => {
|
|
14
|
+
return (
|
|
15
|
+
<Ul>
|
|
16
|
+
{icons.map(icon => (
|
|
17
|
+
<IconItem
|
|
18
|
+
key={icon.name}
|
|
19
|
+
icon={icon}
|
|
20
|
+
onIconClick={() => onIconClick(icon)}
|
|
21
|
+
isSelected={selectedIcon?.name === icon.name}
|
|
22
|
+
/>
|
|
23
|
+
))}
|
|
24
|
+
</Ul>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
|
|
3
|
+
export const Form = styled.form`
|
|
4
|
+
display: flex;
|
|
5
|
+
align-items: flex-start;
|
|
6
|
+
gap: 20px;
|
|
7
|
+
margin: 30px 0 20px;
|
|
8
|
+
`;
|
|
9
|
+
|
|
10
|
+
export const Input = styled.input`
|
|
11
|
+
width: 100%;
|
|
12
|
+
height: 32px;
|
|
13
|
+
padding: 5px 20px;
|
|
14
|
+
font-size: 16px;
|
|
15
|
+
border: 1px solid #ccc;
|
|
16
|
+
border-radius: 4px;
|
|
17
|
+
|
|
18
|
+
::placeholder {
|
|
19
|
+
font-size: 14px;
|
|
20
|
+
color: #666;
|
|
21
|
+
font-style: italic;
|
|
22
|
+
}
|
|
23
|
+
`;
|