├── .changeset ├── README.md └── config.json ├── .github └── FUNDING.yml ├── .gitignore ├── .npmrc ├── .prettierrc ├── .watchmanconfig ├── .yarn └── releases │ └── yarn-4.1.1.cjs ├── .yarnrc.yml ├── apps ├── expo │ ├── .gitignore │ ├── CHANGELOG.md │ ├── app.json │ ├── app │ │ ├── _layout.tsx │ │ ├── icons.tsx │ │ ├── index.tsx │ │ ├── media.tsx │ │ ├── overview.tsx │ │ └── playground.tsx │ ├── assets │ │ ├── adaptive-icon.png │ │ ├── favicon.png │ │ ├── icon.png │ │ └── splash.png │ ├── babel.config.js │ ├── eas.json │ ├── i18n.ts │ ├── index.js │ ├── metro.config.js │ ├── package.json │ ├── tamagui.config.ts │ └── tsconfig.json ├── next │ ├── .eslintrc.js │ ├── .gitignore │ ├── CHANGELOG.md │ ├── next-env.d.ts │ ├── next-i18next.config.js │ ├── next.config.js │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── locales │ │ │ ├── de │ │ │ │ └── common.json │ │ │ └── en │ │ │ │ └── common.json │ │ ├── tamagui.css │ │ └── vercel.svg │ ├── src │ │ ├── pages │ │ │ ├── _app.tsx │ │ │ ├── _document.tsx │ │ │ ├── icons.tsx │ │ │ ├── index.tsx │ │ │ ├── media.tsx │ │ │ ├── overview.tsx │ │ │ └── playground.tsx │ │ └── util │ │ │ └── appGetStaticProps.ts │ ├── tamagui.config.ts │ ├── tsconfig.json │ └── turbo.json ├── sb-vite │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .storybook │ │ ├── i18n.ts │ │ ├── main.ts │ │ ├── preview-head.html │ │ └── preview.tsx │ ├── README.md │ ├── index.html │ ├── package.json │ ├── public │ │ └── vite.svg │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── Router.tsx │ │ ├── assets │ │ │ └── react.svg │ │ ├── index.css │ │ ├── main.tsx │ │ ├── screens │ │ │ └── Home.tsx │ │ └── vite-env.d.ts │ ├── storybook-static │ │ ├── assets │ │ │ ├── Anchor-4_t_3kaw.js │ │ │ ├── Avatar-In_ttTYf.js │ │ │ ├── Card-MZrg_zQJ.js │ │ │ ├── Color-6VNJS4EI-QPYPgbLz.js │ │ │ ├── DatepickerProvider-XA7obZFU.js │ │ │ ├── DocsRenderer-NNNQARDV-Dmht8yMW.js │ │ │ ├── EventEmitter-3h9cKSNS.js │ │ │ ├── Headings-zc2v6h-R.js │ │ │ ├── Image-E4WYJ6IT.js │ │ │ ├── LinearGradient.shared-jx44gTD1.js │ │ │ ├── ListItem-IOiP-Ieg.js │ │ │ ├── LmAlert.stories-Y_yn-9cm.js │ │ │ ├── LmAlertDialog.stories-a-MFqVcn.js │ │ │ ├── LmAppShell.web-9iBjLBIG.js │ │ │ ├── LmAspectRatio.stories-NSgP-9Ay.js │ │ │ ├── LmAutocomplete-kGbePZjJ.js │ │ │ ├── LmAutocomplete-wK2upo9r.js │ │ │ ├── LmAutocomplete.stories-KH_qqIWD.js │ │ │ ├── LmAvatar.stories-hEVGRatg.js │ │ │ ├── LmButton.stories-j5feQBFW.js │ │ │ ├── LmCard-_C9bX3cF.js │ │ │ ├── LmCard.stories-vwHXFCpG.js │ │ │ ├── LmCheckbox.stories-257qnqBA.js │ │ │ ├── LmCheckboxRhf-QgWE9zUd.js │ │ │ ├── LmDateSelection.stories-YAMFD_XO.js │ │ │ ├── LmDatepicker.stories-_px21fqB.js │ │ │ ├── LmDatepickerRhf-LhoEuI4i.js │ │ │ ├── LmDialog.stories-ZJqe4iA3.js │ │ │ ├── LmFile.stories-r_PVfcKy.js │ │ │ ├── LmFormRhfProvider-OKkc2Xhx.js │ │ │ ├── LmFormRhfProvider-PduC4BrJ.js │ │ │ ├── LmGrid--faLWKbq.js │ │ │ ├── LmGrid-dD4DUrOQ.js │ │ │ ├── LmGrid.stories-AphekiH1.js │ │ │ ├── LmImage-J69gcWFB.js │ │ │ ├── LmImage-bkyQyklE.js │ │ │ ├── LmImage.stories-VGIocnfM.js │ │ │ ├── LmInput.stories-fM5G5sNF.js │ │ │ ├── LmInputRhf-gaBMKt7J.js │ │ │ ├── LmMonthPicker.stories-lWFu5ZFW.js │ │ │ ├── LmPopover.stories-qRHxrOtf.js │ │ │ ├── LmRadioGroup.stories-qulJJctI.js │ │ │ ├── LmRhf.stories-U9QGIZ9N.js │ │ │ ├── LmRichText-uAq-LfkS.css │ │ │ ├── LmRichText.stories-06STjc44.js │ │ │ ├── LmSelect-NIcsajhv.js │ │ │ ├── LmSelect-ix11IQZ5.js │ │ │ ├── LmSelect.stories-P8sODWIq.js │ │ │ ├── LmSheet-nphtVfUp.js │ │ │ ├── LmSheet-yZcxhf80.js │ │ │ ├── LmSheet.stories-_ix8tr6g.js │ │ │ ├── LmSlider.stories-fgXO1jdS.js │ │ │ ├── LmStarRating.stories-jY8bv4hP.js │ │ │ ├── LmSubmitButtonRhf-85k1ezmG.js │ │ │ ├── LmSubmitButtonRhf-Epz0h-MI.js │ │ │ ├── LmSwitch.stories-YhQ4lKM0.js │ │ │ ├── LmSwitchRhf-WBoskbHJ.js │ │ │ ├── LmVideo.stories-WP6QFjYp.js │ │ │ ├── LmVideoEmbed.stories-QArcA_M8.js │ │ │ ├── LmYoutubeEmbed.web-Q44Tzmd_.js │ │ │ ├── MediaScreen.stories-_oYO5jO9.js │ │ │ ├── PermissionsInterface-ENCbFuSo.js │ │ │ ├── Playground.stories-39xfvIIM.js │ │ │ ├── Popover-jfxuliJS.js │ │ │ ├── RCTDeviceEventEmitter-v7vvFmgm.js │ │ │ ├── Separator-xEpcC6ux.js │ │ │ ├── SizableStack-x2xeJTXj.js │ │ │ ├── Stacks-cf55noxu.js │ │ │ ├── Text-GPmJrOtX.js │ │ │ ├── Video-516jo3DQ.js │ │ │ ├── WithTooltip-V3YHNWJZ-tSIKRWN9.js │ │ │ ├── _baseIsEqual-CFr8iVHd.js │ │ │ ├── _commonjs-dynamic-modules-FZ9QPYRN.js │ │ │ ├── _commonjsHelpers-4gQjN7DL.js │ │ │ ├── _getPrototype-MXemwaK5.js │ │ │ ├── chunk-WFFRPTHA-zlNDxfrq.js │ │ │ ├── context-W07bjnle.js │ │ │ ├── createClass-SPiPqPE8.js │ │ │ ├── dateHelper-pqTkKOmM.js │ │ │ ├── entry-preview-NPj0Q1QB.js │ │ │ ├── entry-preview-docs-cV61QPcr.js │ │ │ ├── extends-nGe_wfaW.js │ │ │ ├── formatter-SWP5E3XI-kG5c5Os5.js │ │ │ ├── iframe-JsPZtx2K.js │ │ │ ├── index-4g5l5LRQ.js │ │ │ ├── index-Cm4IpdGE.js │ │ │ ├── index-PPLHz8o0.js │ │ │ ├── index-RduBmlIh.js │ │ │ ├── index-TmN4oE2O.js │ │ │ ├── index-UfAEvnza.js │ │ │ ├── index-_VGcpBFS.js │ │ │ ├── index-_wg5PwQV.js │ │ │ ├── index-iwWdm5Ml.js │ │ │ ├── index-oRJpL3FP.js │ │ │ ├── index-ogXoivrg.js │ │ │ ├── index.esm-HDFLGYcx.js │ │ │ ├── index.esm-qGf7LkUX.js │ │ │ ├── inter-all-400-normal-aTkQBzfv.woff │ │ │ ├── inter-all-700-normal-w8d0EwWo.woff │ │ │ ├── inter-cyrillic-400-normal-EPgtxUdt.woff2 │ │ │ ├── inter-cyrillic-700-normal-WjK-gRow.woff2 │ │ │ ├── inter-cyrillic-ext-400-normal-hbwVqd76.woff2 │ │ │ ├── inter-cyrillic-ext-700-normal-rc5oWlJP.woff2 │ │ │ ├── inter-greek-400-normal-YZIAb8Pm.woff2 │ │ │ ├── inter-greek-700-normal-hSEF9VNm.woff2 │ │ │ ├── inter-greek-ext-400-normal-Ofy3y2SD.woff2 │ │ │ ├── inter-greek-ext-700-normal-Ck4W3Q6w.woff2 │ │ │ ├── inter-latin-400-normal-GLYHyz0Z.woff2 │ │ │ ├── inter-latin-700-normal-Y9QfVihh.woff2 │ │ │ ├── inter-latin-ext-400-normal-94UIUsAk.woff2 │ │ │ ├── inter-latin-ext-700-normal-CN7A-HjB.woff2 │ │ │ ├── nonIterableRest-8u_NaQ2m.js │ │ │ ├── overview.stories-OX3NkN4f.js │ │ │ ├── preview-70qxeh8F.js │ │ │ ├── preview-98732p1V.js │ │ │ ├── preview-DpAvqqAd.js │ │ │ ├── preview-FekBEZxm.js │ │ │ ├── preview-PC0Xz-mG.js │ │ │ ├── preview-TkXSQy1x.js │ │ │ ├── preview-UjQ6hyBM.js │ │ │ ├── preview-VI2eoWmp.js │ │ │ ├── preview-bEa2SesL.js │ │ │ ├── preview-errors-7FWlPnjy.js │ │ │ ├── preview-s_wDH8IC.css │ │ │ ├── preview-u8M_OEO2.js │ │ │ ├── react-18-gDJZMjUw.js │ │ │ ├── router-context.shared-runtime-dLj_Pzr5.js │ │ │ ├── screen.stories-5uQyYR65.js │ │ │ ├── selectItems-62Hhm5qZ.js │ │ │ ├── selectItems-L3zF9VcJ.js │ │ │ ├── syntaxhighlighter-V7JZZA35-VmuI3yqZ.js │ │ │ ├── toPropertyKey-NzAT2yhV.js │ │ │ ├── uniq-DjaUhnlG.js │ │ │ ├── usePopoverState-AcQ9Dkm1.js │ │ │ ├── usePopoverState-znF3ooTh.js │ │ │ └── welcome.stories-qX4PhUKv.js │ │ ├── favicon.svg │ │ ├── iframe.html │ │ ├── index.html │ │ ├── index.json │ │ ├── project.json │ │ ├── sb-addons │ │ │ ├── essentials-actions-2 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-backgrounds-3 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-controls-1 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-measure-6 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-outline-7 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-toolbars-5 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-viewport-4 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── interactions-8 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── links-0 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ └── storybook-react-i18next-9 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ ├── sb-common-assets │ │ │ ├── fonts.css │ │ │ ├── nunito-sans-bold-italic.woff2 │ │ │ ├── nunito-sans-bold.woff2 │ │ │ ├── nunito-sans-italic.woff2 │ │ │ └── nunito-sans-regular.woff2 │ │ ├── sb-manager │ │ │ ├── WithTooltip-V3YHNWJZ-LVYLGZW2.js │ │ │ ├── chunk-2IXBUOFS.js │ │ │ ├── chunk-F4FCO4CF.js │ │ │ ├── chunk-INSKDKQB.js │ │ │ ├── chunk-NGTUFCUO.js │ │ │ ├── chunk-ZEU7PDD3.js │ │ │ ├── formatter-SWP5E3XI-7BGIK6BL.js │ │ │ ├── globals-module-info.js │ │ │ ├── globals.js │ │ │ ├── index.js │ │ │ ├── runtime.js │ │ │ └── syntaxhighlighter-V7JZZA35-DXZCI2WR.js │ │ ├── sb-preview │ │ │ ├── globals.js │ │ │ └── runtime.js │ │ ├── stories.json │ │ └── vite.svg │ ├── tamagui.config.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── storybook-react │ ├── .eslintrc.json │ ├── .gitignore │ ├── .storybook │ │ ├── i18n.ts │ │ ├── main.ts │ │ ├── preview-head.html │ │ └── preview.tsx │ ├── CHANGELOG.md │ ├── README.md │ ├── build-storybook.log │ ├── chromatic.log │ ├── next.config.js │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── woff │ │ │ │ ├── SpaceGrotesk-Bold-subset.zopfli.woff │ │ │ │ └── SpaceGrotesk-Regular-subset.zopfli.woff │ │ │ └── woff2 │ │ │ │ ├── SpaceGrotesk-Bold-subset.woff2 │ │ │ │ ├── SpaceGrotesk-Bold.woff2 │ │ │ │ ├── SpaceGrotesk-Regular-subset.woff2 │ │ │ │ └── SpaceGrotesk-Regular.woff2 │ │ └── vercel.svg │ ├── storybook-static │ │ ├── 1069.1f519595.iframe.bundle.js │ │ ├── 1438.bbd15d0c.iframe.bundle.js │ │ ├── 1523.f3963967.iframe.bundle.js │ │ ├── 1524.344fceff.iframe.bundle.js │ │ ├── 1634.fa48a62f.iframe.bundle.js │ │ ├── 1716.9dca0e92.iframe.bundle.js │ │ ├── 1844.3346998e.iframe.bundle.js │ │ ├── 1938.9fec08a6.iframe.bundle.js │ │ ├── 195.efc95e03.iframe.bundle.js │ │ ├── 195.efc95e03.iframe.bundle.js.LICENSE.txt │ │ ├── 1994.ef0041d1.iframe.bundle.js │ │ ├── 2017.73162783.iframe.bundle.js │ │ ├── 2022.899a5e17.iframe.bundle.js │ │ ├── 2059.d8b79803.iframe.bundle.js │ │ ├── 2093.5b26bb3d.iframe.bundle.js │ │ ├── 2093.5b26bb3d.iframe.bundle.js.LICENSE.txt │ │ ├── 2093.5b26bb3d.iframe.bundle.js.map │ │ ├── 2110.107fd54a.iframe.bundle.js │ │ ├── 2137.990c4d64.iframe.bundle.js │ │ ├── 2179.09fba600.iframe.bundle.js │ │ ├── 2215.532d168b.iframe.bundle.js │ │ ├── 2308.106d5d31.iframe.bundle.js │ │ ├── 2449.0b88fbbe.iframe.bundle.js │ │ ├── 2525.cc87db2b.iframe.bundle.js │ │ ├── 2586.ab7eb696.iframe.bundle.js │ │ ├── 2636.c0102fde.iframe.bundle.js │ │ ├── 2771.cef76262.iframe.bundle.js │ │ ├── 296.395afc44.iframe.bundle.js │ │ ├── 3071.34c7aad5.iframe.bundle.js │ │ ├── 3326.b472f913.iframe.bundle.js │ │ ├── 3546.4b25508d.iframe.bundle.js │ │ ├── 3596.ccafb671.iframe.bundle.js │ │ ├── 3742.c3c0a010.iframe.bundle.js │ │ ├── 3847.d808aadf.iframe.bundle.js │ │ ├── 3915.8ad8efc9.iframe.bundle.js │ │ ├── 3927.a7403e9e.iframe.bundle.js │ │ ├── 395.4a70d74b.iframe.bundle.js │ │ ├── 395.4a70d74b.iframe.bundle.js.LICENSE.txt │ │ ├── 395.4a70d74b.iframe.bundle.js.map │ │ ├── 4075.da3d52e2.iframe.bundle.js │ │ ├── 4088.a226440c.iframe.bundle.js │ │ ├── 4103.77405480.iframe.bundle.js │ │ ├── 4383.040bb164.iframe.bundle.js │ │ ├── 4459.c748be98.iframe.bundle.js │ │ ├── 4459.c748be98.iframe.bundle.js.LICENSE.txt │ │ ├── 4533.4b2ec20b.iframe.bundle.js │ │ ├── 4533.4b2ec20b.iframe.bundle.js.LICENSE.txt │ │ ├── 4545.f00cf6bc.iframe.bundle.js │ │ ├── 4605.fee7a439.iframe.bundle.js │ │ ├── 4605.fee7a439.iframe.bundle.js.map │ │ ├── 4627.a8a90706.iframe.bundle.js │ │ ├── 4749.b4d74719.iframe.bundle.js │ │ ├── 4764.fa5a2af0.iframe.bundle.js │ │ ├── 4980.ce8abf20.iframe.bundle.js │ │ ├── 5094.a120a9b6.iframe.bundle.js │ │ ├── 5117.ccb90286.iframe.bundle.js │ │ ├── 515.eec99c92.iframe.bundle.js │ │ ├── 5175.506ba9e4.iframe.bundle.js │ │ ├── 5208.37111768.iframe.bundle.js │ │ ├── 5283.a2dc372f.iframe.bundle.js │ │ ├── 5538.9d609c6f.iframe.bundle.js │ │ ├── 5629.a6bd483a.iframe.bundle.js │ │ ├── 6097.2562f36a.iframe.bundle.js │ │ ├── 6144.3775bb9f.iframe.bundle.js │ │ ├── 6436.92d0d2be.iframe.bundle.js │ │ ├── 650.dbbb2472.iframe.bundle.js │ │ ├── 6569.594e9b3d.iframe.bundle.js │ │ ├── 6696.d31299d7.iframe.bundle.js │ │ ├── 6696.d31299d7.iframe.bundle.js.LICENSE.txt │ │ ├── 6732.21601f53.iframe.bundle.js │ │ ├── 6737.e539eae9.iframe.bundle.js │ │ ├── 687.e1d0c860.iframe.bundle.js │ │ ├── 7293.923c40c9.iframe.bundle.js │ │ ├── 732.eefa1638.iframe.bundle.js │ │ ├── 7330.e6adf4aa.iframe.bundle.js │ │ ├── 737.3037498f.iframe.bundle.js │ │ ├── 7496.f8bf2e24.iframe.bundle.js │ │ ├── 7681.b0a96399.iframe.bundle.js │ │ ├── 7757.331e5e50.iframe.bundle.js │ │ ├── 7823.64ef7da7.iframe.bundle.js │ │ ├── 786.a219039f.iframe.bundle.js │ │ ├── 7998.ed071efc.iframe.bundle.js │ │ ├── 8066.bc761bdb.iframe.bundle.js │ │ ├── 8113.9cb3914f.iframe.bundle.js │ │ ├── 8156.abe78f70.iframe.bundle.js │ │ ├── 8156.abe78f70.iframe.bundle.js.LICENSE.txt │ │ ├── 8156.abe78f70.iframe.bundle.js.map │ │ ├── 8246.6dffdaf8.iframe.bundle.js │ │ ├── 8375.6fd39fab.iframe.bundle.js │ │ ├── 8379.13dd20ea.iframe.bundle.js │ │ ├── 841.a279fcab.iframe.bundle.js │ │ ├── 8426.6017031f.iframe.bundle.js │ │ ├── 8545.a3d03253.iframe.bundle.js │ │ ├── 8558.5a01fcd7.iframe.bundle.js │ │ ├── 8669.55f8c159.iframe.bundle.js │ │ ├── 88.0cf59868.iframe.bundle.js │ │ ├── 88.0cf59868.iframe.bundle.js.LICENSE.txt │ │ ├── 8976.802d5dab.iframe.bundle.js │ │ ├── 9050.16e2ff0b.iframe.bundle.js │ │ ├── 9700.9cf5bb9a.iframe.bundle.js │ │ ├── 975.ffe92a89.iframe.bundle.js │ │ ├── 9781.7d48bd2d.iframe.bundle.js │ │ ├── 9823.71b8f89c.iframe.bundle.js │ │ ├── 9902.75672ed4.iframe.bundle.js │ │ ├── 9971.7c00b5de.iframe.bundle.js │ │ ├── favicon.ico │ │ ├── favicon.svg │ │ ├── fonts │ │ │ ├── woff │ │ │ │ ├── SpaceGrotesk-Bold-subset.zopfli.woff │ │ │ │ └── SpaceGrotesk-Regular-subset.zopfli.woff │ │ │ └── woff2 │ │ │ │ ├── SpaceGrotesk-Bold-subset.woff2 │ │ │ │ ├── SpaceGrotesk-Bold.woff2 │ │ │ │ ├── SpaceGrotesk-Regular-subset.woff2 │ │ │ │ └── SpaceGrotesk-Regular.woff2 │ │ ├── iframe.html │ │ ├── index.html │ │ ├── index.json │ │ ├── main.59c5c8d4.iframe.bundle.js │ │ ├── project.json │ │ ├── runtime~main.90e568dd.iframe.bundle.js │ │ ├── sb-addons │ │ │ ├── essentials-actions-2 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-backgrounds-3 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-controls-1 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-measure-6 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-outline-7 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-toolbars-5 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── essentials-viewport-4 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── interactions-8 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ ├── links-0 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ │ └── storybook-react-i18next-9 │ │ │ │ ├── manager-bundle.js │ │ │ │ └── manager-bundle.js.LEGAL.txt │ │ ├── sb-common-assets │ │ │ ├── fonts.css │ │ │ ├── nunito-sans-bold-italic.woff2 │ │ │ ├── nunito-sans-bold.woff2 │ │ │ ├── nunito-sans-italic.woff2 │ │ │ └── nunito-sans-regular.woff2 │ │ ├── sb-manager │ │ │ ├── WithTooltip-V3YHNWJZ-LVYLGZW2.js │ │ │ ├── chunk-2IXBUOFS.js │ │ │ ├── chunk-3MAIP5DL.js │ │ │ ├── chunk-INSKDKQB.js │ │ │ ├── chunk-NGTUFCUO.js │ │ │ ├── chunk-ZEU7PDD3.js │ │ │ ├── formatter-SWP5E3XI-7BGIK6BL.js │ │ │ ├── globals-module-info.js │ │ │ ├── globals.js │ │ │ ├── index.js │ │ │ ├── runtime.js │ │ │ └── syntaxhighlighter-V7JZZA35-DXZCI2WR.js │ │ ├── sb-preview │ │ │ ├── globals.js │ │ │ └── runtime.js │ │ ├── static │ │ │ └── media │ │ │ │ ├── inter-all-400-normal.8c804432.woff │ │ │ │ ├── inter-all-700-normal.4caa68a0.woff │ │ │ │ ├── inter-cyrillic-400-normal.8684fef6.woff2 │ │ │ │ ├── inter-cyrillic-700-normal.fce0dd82.woff2 │ │ │ │ ├── inter-cyrillic-ext-400-normal.fcc125c4.woff2 │ │ │ │ ├── inter-cyrillic-ext-700-normal.177b82cd.woff2 │ │ │ │ ├── inter-greek-400-normal.0278a49f.woff2 │ │ │ │ ├── inter-greek-700-normal.d36e38b1.woff2 │ │ │ │ ├── inter-greek-ext-400-normal.3f642a92.woff2 │ │ │ │ ├── inter-greek-ext-700-normal.25e184a6.woff2 │ │ │ │ ├── inter-latin-400-normal.be7cb18d.woff2 │ │ │ │ ├── inter-latin-700-normal.54321e26.woff2 │ │ │ │ ├── inter-latin-ext-400-normal.3a7a7652.woff2 │ │ │ │ ├── inter-latin-ext-700-normal.8e5621b2.woff2 │ │ │ │ ├── inter-vietnamese-400-normal.789afb71.woff2 │ │ │ │ └── inter-vietnamese-700-normal.3d836ea0.woff2 │ │ ├── stories.json │ │ └── vercel.svg │ ├── tamagui.config.ts │ ├── tsconfig.json │ └── turbo.json └── tests │ ├── .gitignore │ ├── __tests__ │ └── ui │ │ └── MyComponent.test.tsx │ ├── babel.config.js │ ├── jest.config.js │ ├── jest.setup-after-env.js │ ├── jest.setup.js │ ├── package.json │ ├── src │ ├── index.ts │ └── test-utils.tsx │ └── tamagui.config.ts ├── chromatic.log ├── jsconfig.json ├── kitchen-sink.code-workspace ├── package.json ├── packages ├── app │ ├── .gitignore │ ├── CHANGELOG.md │ ├── index.ts │ ├── package.json │ ├── react-i18n.d.ts │ ├── rnw-overrides.tsx │ ├── src │ │ ├── components │ │ │ ├── layouts │ │ │ │ ├── LmAppBar.tsx │ │ │ │ ├── LmAppDrawer.tsx │ │ │ │ ├── LmAppShell.tsx │ │ │ │ ├── LmAppShell.web.tsx │ │ │ │ └── layoutTypes.ts │ │ │ └── various │ │ │ │ └── LmThemeToggle.tsx │ │ ├── features │ │ │ ├── home │ │ │ │ ├── HomeScreen.tsx │ │ │ │ └── screen.stories.tsx │ │ │ ├── icons │ │ │ │ └── IconsScreen.tsx │ │ │ ├── media │ │ │ │ ├── MediaScreen.stories.tsx │ │ │ │ └── MediaScreen.tsx │ │ │ ├── overview │ │ │ │ ├── overview.stories.tsx │ │ │ │ └── overview.tsx │ │ │ └── playground │ │ │ │ ├── Playground.stories.tsx │ │ │ │ ├── playground.tsx │ │ │ │ └── util.ts │ │ ├── fixtures │ │ │ └── selectItems.ts │ │ ├── lib │ │ │ └── fixtures │ │ │ │ └── selectItems.ts │ │ ├── navigation │ │ │ ├── routerConfig.ts │ │ │ ├── useOnRouteChange.ts │ │ │ ├── useOnRouteChange.web.ts │ │ │ └── useParam.ts │ │ ├── provider │ │ │ ├── LmTamaguiProvider.tsx │ │ │ ├── StorybookDecorator.tsx │ │ │ ├── index.tsx │ │ │ └── safe-area │ │ │ │ ├── SaveAreaProvider.tsx │ │ │ │ └── SaveAreaProvider.web.tsx │ │ ├── state │ │ │ ├── appState.ts │ │ │ └── themeState.ts │ │ └── stories │ │ │ ├── core │ │ │ ├── content │ │ │ │ ├── LmAlert.stories.tsx │ │ │ │ ├── LmAspectRatio.stories.tsx │ │ │ │ ├── LmAvatar.stories.tsx │ │ │ │ ├── LmButton.stories.tsx │ │ │ │ ├── LmCard.stories.tsx │ │ │ │ ├── LmGrid.stories.tsx │ │ │ │ └── LmImage.stories.tsx │ │ │ ├── panels │ │ │ │ ├── LmAlertDialog.stories.tsx │ │ │ │ ├── LmDialog.stories.tsx │ │ │ │ ├── LmPopover.stories.tsx │ │ │ │ └── LmSheet.stories.tsx │ │ │ └── welcome.stories.tsx │ │ │ ├── date │ │ │ ├── LmDateSelection.stories.tsx │ │ │ ├── LmDatepicker.stories.tsx │ │ │ └── LmMonthPicker.stories.tsx │ │ │ ├── file │ │ │ └── LmFile.stories.tsx │ │ │ ├── form │ │ │ ├── FormDecorator.tsx │ │ │ ├── LmAutocomplete.stories.tsx │ │ │ ├── LmCheckbox.stories.tsx │ │ │ ├── LmInput.stories.tsx │ │ │ ├── LmRadioGroup.stories.tsx │ │ │ ├── LmRhf.stories.tsx │ │ │ ├── LmSelect.stories.tsx │ │ │ ├── LmSlider.stories.tsx │ │ │ ├── LmStarRating.stories.tsx │ │ │ └── LmSwitch.stories.tsx │ │ │ ├── rich-text │ │ │ └── LmRichText.stories.tsx │ │ │ ├── video │ │ │ └── LmVideo.stories.tsx │ │ │ └── youtube │ │ │ └── LmVideoEmbed.stories.tsx │ ├── tamagui.config.ts │ └── tsconfig.json ├── config │ ├── CHANGELOG.md │ ├── package.json │ └── src │ │ ├── animations.ts │ │ ├── index.ts │ │ └── tamagui.config.ts ├── core │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── readme.md │ ├── src │ │ ├── core │ │ │ ├── content │ │ │ │ ├── LmAlert.tsx │ │ │ │ ├── LmAspectRatio.tsx │ │ │ │ ├── LmAvatar.tsx │ │ │ │ ├── LmCard.tsx │ │ │ │ ├── LmGrid.tsx │ │ │ │ ├── LmImage.tsx │ │ │ │ ├── LmSkeleton.tsx │ │ │ │ ├── icons │ │ │ │ │ ├── ArrowClockwise.tsx │ │ │ │ │ ├── ArrowCounterClockwise.tsx │ │ │ │ │ ├── ArrowLeft.tsx │ │ │ │ │ ├── ArrowRight.tsx │ │ │ │ │ ├── Calendar.tsx │ │ │ │ │ ├── CaretDoubleLeft.tsx │ │ │ │ │ ├── CaretDoubleRight.tsx │ │ │ │ │ ├── CaretDown.tsx │ │ │ │ │ ├── CaretLeft.tsx │ │ │ │ │ ├── CaretRight.tsx │ │ │ │ │ ├── CaretUp.tsx │ │ │ │ │ ├── Check.tsx │ │ │ │ │ ├── CheckCircle.tsx │ │ │ │ │ ├── CheckSquare.tsx │ │ │ │ │ ├── Eye.tsx │ │ │ │ │ ├── EyeSlash.tsx │ │ │ │ │ ├── IconProps.tsx │ │ │ │ │ ├── Info.tsx │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── ListNumbers.tsx │ │ │ │ │ ├── ListPlus.tsx │ │ │ │ │ ├── Minus.tsx │ │ │ │ │ ├── Quotes.tsx │ │ │ │ │ ├── Square.tsx │ │ │ │ │ ├── Star.tsx │ │ │ │ │ ├── StarFill.tsx │ │ │ │ │ ├── Sun.tsx │ │ │ │ │ ├── TextBolder.tsx │ │ │ │ │ ├── TextItalic.tsx │ │ │ │ │ ├── TextStrikethrough.tsx │ │ │ │ │ ├── TextUnderline.tsx │ │ │ │ │ ├── Warning.tsx │ │ │ │ │ ├── WarningCircle.tsx │ │ │ │ │ ├── X.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── themed.tsx │ │ │ │ └── index.ts │ │ │ ├── form │ │ │ │ ├── LmButton.tsx │ │ │ │ └── index.ts │ │ │ ├── hooks │ │ │ │ ├── index.ts │ │ │ │ └── usePopoverState.ts │ │ │ ├── panels │ │ │ │ ├── LmAlertDialog.tsx │ │ │ │ ├── LmDialog.tsx │ │ │ │ ├── LmDialogActions.tsx │ │ │ │ ├── LmDialogContent.tsx │ │ │ │ ├── LmPopover.tsx │ │ │ │ ├── LmSheet.tsx │ │ │ │ ├── index.ts │ │ │ │ └── useFloatingContext.tsx │ │ │ └── themeMappings.ts │ │ ├── index.ts │ │ └── tamagui.config.ts │ └── tsconfig.json ├── date │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── LmMonthsPicker.tsx │ │ ├── dateHelper.ts │ │ ├── datepicker │ │ │ ├── DatepickerProvider.tsx │ │ │ ├── LmDatepicker.native.tsx │ │ │ ├── LmDatepicker.tsx │ │ │ ├── LmDatepickerPopover.tsx │ │ │ ├── LmDay.tsx │ │ │ ├── LmMonth.tsx │ │ │ ├── dateSelection │ │ │ │ ├── LmDateSelection.tsx │ │ │ │ ├── LmDaySelect.tsx │ │ │ │ ├── LmMonthSelect.tsx │ │ │ │ ├── LmYearSelect.tsx │ │ │ │ └── dateSelectionTypes.ts │ │ │ ├── datepickerTypes.ts │ │ │ └── rhf │ │ │ │ ├── LmDateRangePickerRhf.tsx │ │ │ │ ├── LmDateSelectionRhf.tsx │ │ │ │ └── LmDatepickerRhf.tsx │ │ └── index.ts │ └── tsconfig.json ├── file │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── LmFile.tsx │ │ ├── LmFilePicker.tsx │ │ ├── filePickerTypes.ts │ │ └── index.ts │ ├── tsconfig.json │ └── types │ │ ├── LmFile.d.ts │ │ ├── LmFilePicker.d.ts │ │ ├── filePickerTypes.d.ts │ │ └── index.d.ts ├── form │ ├── .gitignore │ ├── CHANGELOG.md │ ├── dist │ │ ├── cjs │ │ │ ├── LmAutocomplete.js │ │ │ ├── LmAutocomplete.js.map │ │ │ ├── LmCheckbox.js │ │ │ ├── LmCheckbox.js.map │ │ │ ├── LmFormFieldContainer.js │ │ │ ├── LmFormFieldContainer.js.map │ │ │ ├── LmInput.js │ │ │ ├── LmInput.js.map │ │ │ ├── LmRadioGroup.js │ │ │ ├── LmRadioGroup.js.map │ │ │ ├── LmSelect.js │ │ │ ├── LmSelect.js.map │ │ │ ├── LmSlider.js │ │ │ ├── LmSlider.js.map │ │ │ ├── LmStarRating.js │ │ │ ├── LmStarRating.js.map │ │ │ ├── LmSwitch.js │ │ │ ├── LmSwitch.js.map │ │ │ ├── formContainerTypes.js │ │ │ ├── formContainerTypes.js.map │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ └── rhf │ │ │ │ ├── LmAutocompleteRhf.js │ │ │ │ ├── LmAutocompleteRhf.js.map │ │ │ │ ├── LmCheckboxRhf.js │ │ │ │ ├── LmCheckboxRhf.js.map │ │ │ │ ├── LmFormRhfProvider.js │ │ │ │ ├── LmFormRhfProvider.js.map │ │ │ │ ├── LmInputRhf.js │ │ │ │ ├── LmInputRhf.js.map │ │ │ │ ├── LmRadioGroupRhf.js │ │ │ │ ├── LmRadioGroupRhf.js.map │ │ │ │ ├── LmResetButtonRhf.js │ │ │ │ ├── LmResetButtonRhf.js.map │ │ │ │ ├── LmSelectRhf.js │ │ │ │ ├── LmSelectRhf.js.map │ │ │ │ ├── LmSliderRhf.js │ │ │ │ ├── LmSliderRhf.js.map │ │ │ │ ├── LmStarRatingRhf.js │ │ │ │ ├── LmStarRatingRhf.js.map │ │ │ │ ├── LmSubmitButtonRhf.js │ │ │ │ ├── LmSubmitButtonRhf.js.map │ │ │ │ ├── LmSwitchRhf.js │ │ │ │ ├── LmSwitchRhf.js.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── lmRhfProps.js │ │ │ │ └── lmRhfProps.js.map │ │ ├── esm │ │ │ ├── LmAutocomplete.js │ │ │ ├── LmAutocomplete.js.map │ │ │ ├── LmCheckbox.js │ │ │ ├── LmCheckbox.js.map │ │ │ ├── LmFormFieldContainer.js │ │ │ ├── LmFormFieldContainer.js.map │ │ │ ├── LmInput.js │ │ │ ├── LmInput.js.map │ │ │ ├── LmRadioGroup.js │ │ │ ├── LmRadioGroup.js.map │ │ │ ├── LmSelect.js │ │ │ ├── LmSelect.js.map │ │ │ ├── LmSlider.js │ │ │ ├── LmSlider.js.map │ │ │ ├── LmStarRating.js │ │ │ ├── LmStarRating.js.map │ │ │ ├── LmSwitch.js │ │ │ ├── LmSwitch.js.map │ │ │ ├── formContainerTypes.js │ │ │ ├── formContainerTypes.js.map │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ └── rhf │ │ │ │ ├── LmAutocompleteRhf.js │ │ │ │ ├── LmAutocompleteRhf.js.map │ │ │ │ ├── LmCheckboxRhf.js │ │ │ │ ├── LmCheckboxRhf.js.map │ │ │ │ ├── LmFormRhfProvider.js │ │ │ │ ├── LmFormRhfProvider.js.map │ │ │ │ ├── LmInputRhf.js │ │ │ │ ├── LmInputRhf.js.map │ │ │ │ ├── LmRadioGroupRhf.js │ │ │ │ ├── LmRadioGroupRhf.js.map │ │ │ │ ├── LmResetButtonRhf.js │ │ │ │ ├── LmResetButtonRhf.js.map │ │ │ │ ├── LmSelectRhf.js │ │ │ │ ├── LmSelectRhf.js.map │ │ │ │ ├── LmSliderRhf.js │ │ │ │ ├── LmSliderRhf.js.map │ │ │ │ ├── LmStarRatingRhf.js │ │ │ │ ├── LmStarRatingRhf.js.map │ │ │ │ ├── LmSubmitButtonRhf.js │ │ │ │ ├── LmSubmitButtonRhf.js.map │ │ │ │ ├── LmSwitchRhf.js │ │ │ │ ├── LmSwitchRhf.js.map │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── lmRhfProps.js │ │ │ │ └── lmRhfProps.js.map │ │ └── jsx │ │ │ ├── LmAutocomplete.js │ │ │ ├── LmAutocomplete.js.map │ │ │ ├── LmCheckbox.js │ │ │ ├── LmCheckbox.js.map │ │ │ ├── LmFormFieldContainer.js │ │ │ ├── LmFormFieldContainer.js.map │ │ │ ├── LmInput.js │ │ │ ├── LmInput.js.map │ │ │ ├── LmRadioGroup.js │ │ │ ├── LmRadioGroup.js.map │ │ │ ├── LmSelect.js │ │ │ ├── LmSelect.js.map │ │ │ ├── LmSlider.js │ │ │ ├── LmSlider.js.map │ │ │ ├── LmStarRating.js │ │ │ ├── LmStarRating.js.map │ │ │ ├── LmSwitch.js │ │ │ ├── LmSwitch.js.map │ │ │ ├── formContainerTypes.js │ │ │ ├── formContainerTypes.js.map │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ └── rhf │ │ │ ├── LmAutocompleteRhf.js │ │ │ ├── LmAutocompleteRhf.js.map │ │ │ ├── LmCheckboxRhf.js │ │ │ ├── LmCheckboxRhf.js.map │ │ │ ├── LmFormRhfProvider.js │ │ │ ├── LmFormRhfProvider.js.map │ │ │ ├── LmInputRhf.js │ │ │ ├── LmInputRhf.js.map │ │ │ ├── LmRadioGroupRhf.js │ │ │ ├── LmRadioGroupRhf.js.map │ │ │ ├── LmResetButtonRhf.js │ │ │ ├── LmResetButtonRhf.js.map │ │ │ ├── LmSelectRhf.js │ │ │ ├── LmSelectRhf.js.map │ │ │ ├── LmSliderRhf.js │ │ │ ├── LmSliderRhf.js.map │ │ │ ├── LmStarRatingRhf.js │ │ │ ├── LmStarRatingRhf.js.map │ │ │ ├── LmSubmitButtonRhf.js │ │ │ ├── LmSubmitButtonRhf.js.map │ │ │ ├── LmSwitchRhf.js │ │ │ ├── LmSwitchRhf.js.map │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── lmRhfProps.js │ │ │ └── lmRhfProps.js.map │ ├── package.json │ ├── readme.md │ ├── src │ │ ├── LmAutocomplete.tsx │ │ ├── LmCheckbox.tsx │ │ ├── LmFormFieldContainer.tsx │ │ ├── LmInput.tsx │ │ ├── LmRadioGroup.tsx │ │ ├── LmSelect.tsx │ │ ├── LmSlider.tsx │ │ ├── LmStarRating.tsx │ │ ├── LmSwitch.tsx │ │ ├── formContainerTypes.ts │ │ ├── index.ts │ │ ├── rhf │ │ │ ├── LmAutocompleteRhf.tsx │ │ │ ├── LmCheckboxRhf.tsx │ │ │ ├── LmFormRhfProvider.tsx │ │ │ ├── LmInputRhf.tsx │ │ │ ├── LmRadioGroupRhf.tsx │ │ │ ├── LmResetButtonRhf.tsx │ │ │ ├── LmSelectRhf.tsx │ │ │ ├── LmSliderRhf.tsx │ │ │ ├── LmStarRatingRhf.tsx │ │ │ ├── LmSubmitButtonRhf.tsx │ │ │ ├── LmSwitchRhf.tsx │ │ │ ├── index.ts │ │ │ └── lmRhfProps.tsx │ │ └── tamagui.config.ts │ └── tsconfig.json ├── link │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── LmLinkButton.tsx │ │ └── index.ts │ └── tsconfig.json ├── rich-text │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── LmRichText.native.tsx │ │ ├── LmRichText.tsx │ │ ├── LmRichTextRhf.tsx │ │ ├── LmTipTapMenuBar.tsx │ │ ├── index.ts │ │ ├── proseMirror.css │ │ └── richTextTypes.ts │ └── tsconfig.json ├── video │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ │ ├── LmVideo.tsx │ │ ├── index.ts │ │ └── videoTypes.ts │ └── tsconfig.json └── youtube │ ├── .gitignore │ ├── CHANGELOG.md │ ├── package.json │ ├── src │ ├── LmYoutubeEmbed.tsx │ ├── LmYoutubeEmbed.web.tsx │ ├── index.ts │ └── videoEmbedTypes.ts │ ├── tsconfig.json │ └── types │ ├── LmYoutubeEmbed.d.ts │ ├── index.d.ts │ └── videoEmbedTypes.d.ts ├── readme.md ├── tsconfig.base.json ├── tsconfig.json ├── turbo.json └── yarn.lock /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@2.3.0/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": false, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "restricted", 8 | "baseBranch": "master", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [dohomi] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 12 | polar: # Replace with a single Polar username 13 | buy_me_a_coffee: dohomi 14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | .yarn/* 3 | !.yarn/patches 4 | !.yarn/plugins 5 | !.yarn/releases 6 | !.yarn/sdks 7 | !.yarn/versions 8 | 9 | # expo 10 | **/.expo/* 11 | 12 | # next.js 13 | **/.next/* 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # debug 20 | npm-debug.log* 21 | yarn-debug.log* 22 | yarn-error.log* 23 | .pnpm-debug.log* 24 | 25 | # local env files 26 | .env.local 27 | .env.development.local 28 | .env.test.local 29 | .env.production.local 30 | .env 31 | 32 | # vercel 33 | .vercel 34 | 35 | # typescript 36 | *.tsbuildinfo 37 | 38 | # os 39 | .DS_Store 40 | THUMBS_DB 41 | thumbs.db 42 | 43 | .idea 44 | .vscode 45 | turbo-build.log 46 | graphql.config.* 47 | .graphqlconfig 48 | schema.graphql 49 | .tamagui 50 | .turbo 51 | dist 52 | 53 | **/types/**/*.d.ts.map 54 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry: https://registry.npmjs.org/ 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "semi": false, 4 | "singleQuote": true, 5 | "arrowParens": "always", 6 | "printWidth": 100 7 | } 8 | -------------------------------------------------------------------------------- /.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | compressionLevel: mixed 2 | 3 | enableGlobalCache: false 4 | 5 | enableTelemetry: false 6 | 7 | logFilters: 8 | - code: YN0002 9 | level: discard 10 | - code: YN0060 11 | level: discard 12 | - code: YN0006 13 | level: discard 14 | - code: YN0076 15 | level: discard 16 | - code: YN0013 17 | level: discard 18 | 19 | nmHoistingLimits: none 20 | 21 | nodeLinker: node-modules 22 | 23 | yarnPath: .yarn/releases/yarn-4.1.1.cjs 24 | -------------------------------------------------------------------------------- /apps/expo/app/icons.tsx: -------------------------------------------------------------------------------- 1 | import IconsScreen from 'app/src/features/icons/IconsScreen' 2 | 3 | export default IconsScreen 4 | -------------------------------------------------------------------------------- /apps/expo/app/index.tsx: -------------------------------------------------------------------------------- 1 | import { HomeScreen } from 'app/src/features/home/HomeScreen' 2 | 3 | export default function Home() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /apps/expo/app/media.tsx: -------------------------------------------------------------------------------- 1 | import { MediaScreen } from 'app/src/features/media/MediaScreen' 2 | 3 | export default MediaScreen 4 | -------------------------------------------------------------------------------- /apps/expo/app/overview.tsx: -------------------------------------------------------------------------------- 1 | import {OverviewScreen} from "app/src/features/overview/overview"; 2 | 3 | export default OverviewScreen -------------------------------------------------------------------------------- /apps/expo/app/playground.tsx: -------------------------------------------------------------------------------- 1 | import { PlaygroundScreen } from 'app/src/features/playground/playground' 2 | 3 | export default function Playground() { 4 | return 5 | } 6 | -------------------------------------------------------------------------------- /apps/expo/assets/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/expo/assets/adaptive-icon.png -------------------------------------------------------------------------------- /apps/expo/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/expo/assets/favicon.png -------------------------------------------------------------------------------- /apps/expo/assets/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/expo/assets/icon.png -------------------------------------------------------------------------------- /apps/expo/assets/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/expo/assets/splash.png -------------------------------------------------------------------------------- /apps/expo/eas.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": { 3 | "development": { 4 | "distribution": "internal", 5 | "android": { 6 | "buildType": "apk" 7 | }, 8 | "ios": { 9 | "simulator": true, 10 | "image": "latest" 11 | } 12 | }, 13 | "production": { 14 | "distribution": "store", 15 | "android": { 16 | "buildType": "app-bundle" 17 | } 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /apps/expo/i18n.ts: -------------------------------------------------------------------------------- 1 | import { initReactI18next } from 'react-i18next' 2 | 3 | import i18n from 'i18next' 4 | // @ts-ignore 5 | import EN from '../next/public/locales/en/common.json' 6 | // @ts-ignore 7 | import DE from '../next/public/locales/de/common.json' 8 | 9 | const ns = ['common'] 10 | const supportedLngs = ['en', 'de'] 11 | 12 | i18n.use(initReactI18next).init({ 13 | //debug: true, 14 | lng: 'en', 15 | fallbackLng: 'en', 16 | compatibilityJSON: 'v3', // because of expo rn 17 | interpolation: { escapeValue: false }, 18 | supportedLngs, 19 | ns, 20 | defaultNS: 'common', 21 | resources: { 22 | en: { 23 | common: EN, 24 | }, 25 | de: { common: DE }, 26 | }, 27 | }) 28 | 29 | export default i18n 30 | -------------------------------------------------------------------------------- /apps/expo/index.js: -------------------------------------------------------------------------------- 1 | // registerRootComponent happens in "expo-router/entry" 2 | import 'expo-router/entry' 3 | -------------------------------------------------------------------------------- /apps/expo/metro.config.js: -------------------------------------------------------------------------------- 1 | // Learn more https://docs.expo.io/guides/customizing-metro 2 | /** 3 | * @type {import('expo/metro-config')} 4 | */ 5 | const { getDefaultConfig } = require('@expo/metro-config') 6 | const path = require('path') 7 | 8 | const projectRoot = __dirname 9 | const workspaceRoot = path.resolve(__dirname, '../..') 10 | 11 | const config = getDefaultConfig(projectRoot) 12 | 13 | config.watchFolders = [workspaceRoot] 14 | config.resolver.nodeModulesPaths = [ 15 | path.resolve(projectRoot, 'node_modules'), 16 | path.resolve(workspaceRoot, 'node_modules'), 17 | ] 18 | config.resolver.disableHierarchicalLookup = true 19 | config.resolver = { 20 | ...config.resolver, 21 | } 22 | 23 | config.transformer = { ...config.transformer, unstable_allowRequireContext: true } 24 | config.transformer.minifierPath = require.resolve('metro-minify-terser') 25 | 26 | module.exports = config 27 | -------------------------------------------------------------------------------- /apps/expo/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | export default config 9 | -------------------------------------------------------------------------------- /apps/expo/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base", 3 | "include": [ 4 | "app/**/*.ts", 5 | "app/**/*.tsx", 6 | "i18n.ts" 7 | ], 8 | "compilerOptions": { 9 | "composite": true, 10 | "jsx": "react-jsx" 11 | }, 12 | "references": [] 13 | } -------------------------------------------------------------------------------- /apps/next/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'next', 3 | root: true, 4 | } 5 | -------------------------------------------------------------------------------- /apps/next/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .next 3 | dist 4 | .vercel 5 | -------------------------------------------------------------------------------- /apps/next/next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /apps/next/next-i18next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | i18n: { 3 | defaultLocale: 'en', 4 | locales: ['en', 'de'], 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /apps/next/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/next/public/favicon.ico -------------------------------------------------------------------------------- /apps/next/public/locales/de/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "test": "TestEN", 3 | "common": { 4 | "ok": "OK!", 5 | "cancel": "Abbrechen", 6 | "back": "Zurück" 7 | }, 8 | "home": "Startseite", 9 | "playground": "Spielwiese", 10 | "errors": { 11 | "invalidEmail": "Ungültige E-Mail-Adresse." 12 | }, 13 | "icons": "Icons", 14 | "close": "Schließen", 15 | "welcomeScreen": { 16 | "home": "HomeEN" 17 | }, 18 | "overviewScreen": { 19 | "headline": "Übersicht" 20 | }, 21 | "mediaScreen": { 22 | "headline": "Medien" 23 | } 24 | } -------------------------------------------------------------------------------- /apps/next/public/locales/en/common.json: -------------------------------------------------------------------------------- 1 | { 2 | "test": "TestEN", 3 | "common": { 4 | "ok": "OK!", 5 | "cancel": "Cancel", 6 | "back": "Back" 7 | }, 8 | "home": "Home", 9 | "playground": "Playground", 10 | "errors": { 11 | "invalidEmail": "Invalid email address." 12 | }, 13 | "icons": "Icons", 14 | "close": "Close", 15 | "welcomeScreen": { 16 | "home": "HomeEN" 17 | }, 18 | "overviewScreen": { 19 | "headline": "Overview" 20 | }, 21 | "mediaScreen": { 22 | "headline": "Media" 23 | } 24 | } -------------------------------------------------------------------------------- /apps/next/src/pages/icons.tsx: -------------------------------------------------------------------------------- 1 | import IconsScreen from 'app/src/features/icons/IconsScreen' 2 | 3 | export default IconsScreen 4 | -------------------------------------------------------------------------------- /apps/next/src/pages/index.tsx: -------------------------------------------------------------------------------- 1 | export { HomeScreen as default } from 'app/src/features/home/HomeScreen' 2 | 3 | export { getStaticProps } from '../util/appGetStaticProps' 4 | -------------------------------------------------------------------------------- /apps/next/src/pages/media.tsx: -------------------------------------------------------------------------------- 1 | export { MediaScreen as default } from 'app/src/features/media/MediaScreen' 2 | export { getStaticProps } from '../util/appGetStaticProps' 3 | -------------------------------------------------------------------------------- /apps/next/src/pages/overview.tsx: -------------------------------------------------------------------------------- 1 | export { OverviewScreen as default } from 'app/src/features/overview/overview' 2 | 3 | export { getStaticProps } from '../util/appGetStaticProps' 4 | -------------------------------------------------------------------------------- /apps/next/src/pages/playground.tsx: -------------------------------------------------------------------------------- 1 | export { PlaygroundScreen as default } from 'app/src/features/playground/playground' 2 | 3 | export { getStaticProps } from '../util/appGetStaticProps' 4 | -------------------------------------------------------------------------------- /apps/next/src/util/appGetStaticProps.ts: -------------------------------------------------------------------------------- 1 | import { GetStaticPropsContext } from 'next' 2 | import { serverSideTranslations } from 'next-i18next/serverSideTranslations' 3 | 4 | export const getStaticProps = async ({ locale }: GetStaticPropsContext) => { 5 | return { 6 | props: { 7 | ...(await serverSideTranslations(locale || 'en', ['common'])), 8 | // Will be passed to the page component as props 9 | }, 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /apps/next/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | export default config 9 | -------------------------------------------------------------------------------- /apps/next/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "baseUrl": "./", 6 | "paths": { 7 | "react-native": [ 8 | "react-native-web" 9 | ] 10 | }, 11 | "allowJs": true, 12 | "skipLibCheck": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "noEmit": true, 16 | "esModuleInterop": true, 17 | "downlevelIteration": true, 18 | "module": "esnext", 19 | "moduleResolution": "node", 20 | "resolveJsonModule": true, 21 | "isolatedModules": true, 22 | "jsx": "preserve", 23 | "incremental": true 24 | }, 25 | "include": [ 26 | "next-env.d.ts", "**/*.ts", "**/*.tsx"], 27 | "exclude": [ 28 | "node_modules" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /apps/next/turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "//" 4 | ], 5 | "pipeline": { 6 | "build": { 7 | "outputs": [ 8 | ".next/**", 9 | "!.next/cache/**" 10 | ] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /apps/sb-vite/.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { browser: true, es2020: true }, 4 | extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended', 'plugin:storybook/recommended'], 5 | ignorePatterns: ['dist', '.eslintrc.cjs'], 6 | parser: '@typescript-eslint/parser', 7 | plugins: ['react-refresh'], 8 | rules: { 9 | 'react-refresh/only-export-components': [ 10 | 'warn', 11 | { allowConstantExport: true }, 12 | ], 13 | }, 14 | } 15 | -------------------------------------------------------------------------------- /apps/sb-vite/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /apps/sb-vite/.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/sb-vite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vite + React + TS 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/sb-vite/src/App.css: -------------------------------------------------------------------------------- 1 | #root { 2 | max-width: 1280px; 3 | margin: 0 auto; 4 | padding: 2rem; 5 | text-align: center; 6 | } 7 | 8 | .logo { 9 | height: 6em; 10 | padding: 1.5em; 11 | will-change: filter; 12 | transition: filter 300ms; 13 | } 14 | .logo:hover { 15 | filter: drop-shadow(0 0 2em #646cffaa); 16 | } 17 | .logo.react:hover { 18 | filter: drop-shadow(0 0 2em #61dafbaa); 19 | } 20 | 21 | @keyframes logo-spin { 22 | from { 23 | transform: rotate(0deg); 24 | } 25 | to { 26 | transform: rotate(360deg); 27 | } 28 | } 29 | 30 | @media (prefers-reduced-motion: no-preference) { 31 | a:nth-of-type(2) .logo { 32 | animation: logo-spin infinite 20s linear; 33 | } 34 | } 35 | 36 | .card { 37 | padding: 2em; 38 | } 39 | 40 | .read-the-docs { 41 | color: #888; 42 | } 43 | -------------------------------------------------------------------------------- /apps/sb-vite/src/App.tsx: -------------------------------------------------------------------------------- 1 | import './App.css' 2 | import { LmTamaguiProvider } from 'app/src/provider/LmTamaguiProvider.tsx' 3 | import { RootStack } from './Router.tsx' 4 | 5 | function App() { 6 | return ( 7 | 8 | 9 | 10 | ) 11 | } 12 | 13 | export default App 14 | -------------------------------------------------------------------------------- /apps/sb-vite/src/Router.tsx: -------------------------------------------------------------------------------- 1 | import { createStackNavigator } from '@react-navigation/stack' 2 | import { Home } from './screens/Home.tsx' 3 | import { NavigationContainer } from '@react-navigation/native' 4 | 5 | const Stack = createStackNavigator() 6 | 7 | export function RootStack() { 8 | return ( 9 | 10 | 11 | 12 | 13 | 14 | ) 15 | } 16 | -------------------------------------------------------------------------------- /apps/sb-vite/src/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/src/index.css -------------------------------------------------------------------------------- /apps/sb-vite/src/main.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom/client' 3 | import '@tamagui/core/reset.css' 4 | import '@fontsource/inter/400.css' 5 | import '@fontsource/inter/700.css' 6 | import 'raf/polyfill' 7 | import App from './App.tsx' 8 | 9 | ReactDOM.createRoot(document.getElementById('root')!).render( 10 | 11 | 12 | 13 | ) 14 | -------------------------------------------------------------------------------- /apps/sb-vite/src/screens/Home.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from 'react' 2 | import { Paragraph, YStack } from 'tamagui' 3 | 4 | export function Home() { 5 | const [count, setCount] = useState(0) 6 | 7 | return ( 8 | 9 | hallo 10 | 11 | ) 12 | } 13 | -------------------------------------------------------------------------------- /apps/sb-vite/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/Anchor-4_t_3kaw.js: -------------------------------------------------------------------------------- 1 | import"./index-4g5l5LRQ.js";import{s as r,j as i}from"./Stacks-cf55noxu.js";import{S as m}from"./Headings-zc2v6h-R.js";const s=r(m,{name:"Anchor",tag:"a",accessibilityRole:"link"}),p=s.styleable(({href:o,target:t,...a},e)=>i.jsx(s,{...a,href:o,target:t,ref:e}));export{p as A}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/DatepickerProvider-XA7obZFU.js: -------------------------------------------------------------------------------- 1 | import{j as a}from"./Stacks-cf55noxu.js";import{r as e}from"./index-4g5l5LRQ.js";const r={rtl:!1,focusedDate:null,isDateFocused:()=>!1,isDateSelected:()=>!1,isDateHovered:()=>!1,isDateBlocked:()=>!1,isFirstOrLastSelectedDate:()=>!1,onDateFocus:()=>{},onDateHover:()=>{},onDateSelect:()=>{},onDayRender:void 0,goToPreviousMonthsByOneMonth:()=>{},goToPreviousMonths:()=>{},goToNextMonthsByOneMonth:()=>{},goToNextMonths:()=>{},goToPreviousYear:()=>{},goToNextYear:()=>{}},t=e.createContext(r),c=({children:o,...s})=>a.jsx(t.Provider,{value:s,children:o}),l=()=>e.useContext(t);export{c as L,l as u}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/Image-E4WYJ6IT.js: -------------------------------------------------------------------------------- 1 | import{r as m}from"./index-4g5l5LRQ.js";import{s as d,j as g}from"./Stacks-cf55noxu.js";import{I as e}from"./index-UfAEvnza.js";import{e as u}from"./index-_wg5PwQV.js";const o=d(e,{name:"Image"}),r=o.extractable(m.forwardRef((i,c)=>{const[a,h]=u(i),{src:s,source:f,...p}=a;let t=typeof s=="string"?{uri:s,width:a.width,height:a.height}:f??s;return t&&typeof t=="object"&&t.default&&(t=t.default),g.jsx(o,{ref:c,source:t,style:h,...p})}));r.getSize=e.getSize;r.getSizeWithHeaders=e.getSizeWithHeaders;r.prefetch=e.prefetch;r.prefetchWithMetadata=e.prefetchWithMetadata;r.abortPrefetch=e.abortPrefetch;r.queryCache=e.queryCache;export{r as I}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmCard-_C9bX3cF.js: -------------------------------------------------------------------------------- 1 | import{j as r}from"./Stacks-cf55noxu.js";import{L as i}from"./LmImage-J69gcWFB.js";import{C as s}from"./Card-MZrg_zQJ.js";import{H as p,P as l}from"./Headings-zc2v6h-R.js";const y=({bouncy:a,title:o,subTitle:d,footer:t,image:e,children:h,theme:c="gray",...n})=>r.jsxs(s,{elevate:!0,size:"$4",bordered:!0,...a&&{animation:"bouncy",scale:.9,hoverStyle:{scale:.925},pressStyle:{scale:.875}},theme:c,...n,children:[(o||d)&&r.jsxs(s.Header,{padded:!0,children:[o&&r.jsx(p,{children:o}),d&&r.jsx(l,{theme:"alt2",children:d})]}),h,t&&r.jsx(s.Footer,{padded:!0,children:t}),!!(e!=null&&e.src)&&r.jsx(s.Background,{children:r.jsx(i,{position:"absolute",resizeMode:"cover",width:"100%",height:"auto",src:e.src,source:{width:e.width,height:e.height}})})]});export{y as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmFormRhfProvider-OKkc2Xhx.js: -------------------------------------------------------------------------------- 1 | import{u as n,F as t}from"./index.esm-qGf7LkUX.js";import{j as s}from"./Stacks-cf55noxu.js";function u({children:o,forceFormProvider:m,...e}){const r=n({...e});return typeof o=="function"?m?s.jsx(t,{...r,children:o(r)}):s.jsx(s.Fragment,{children:o(r)}):s.jsx(t,{...r,children:o})}export{u as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmFormRhfProvider-PduC4BrJ.js: -------------------------------------------------------------------------------- 1 | import{j as s}from"./Stacks-cf55noxu.js";import{u as n,F as t}from"./index.esm-qGf7LkUX.js";function u({children:o,forceFormProvider:m,...e}){const r=n({...e});return typeof o=="function"?m?s.jsx(t,{...r,children:o(r)}):s.jsx(s.Fragment,{children:o(r)}):s.jsx(t,{...r,children:o})}export{u as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmImage-J69gcWFB.js: -------------------------------------------------------------------------------- 1 | import{j as i,S as o}from"./Stacks-cf55noxu.js";import"./index-_wg5PwQV.js";import"./index-4g5l5LRQ.js";import"./index-TmN4oE2O.js";import{I as m}from"./Image-E4WYJ6IT.js";function x({aspectRatio:t,...r}){return t?i.jsx(o,{width:"100%",aspectRatio:t,position:"relative",children:i.jsx(m,{...r,aspectRatio:t,width:"100%!important",height:"100%!important",resizeMode:"contain"})}):i.jsx(m,{...r})}export{x as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmImage-bkyQyklE.js: -------------------------------------------------------------------------------- 1 | import"./index-_wg5PwQV.js";import{j as i,S as o}from"./Stacks-cf55noxu.js";import"./index-4g5l5LRQ.js";import"./index-TmN4oE2O.js";import{I as m}from"./Image-E4WYJ6IT.js";function x({aspectRatio:t,...r}){return t?i.jsx(o,{width:"100%",aspectRatio:t,position:"relative",children:i.jsx(m,{...r,aspectRatio:t,width:"100%!important",height:"100%!important",resizeMode:"contain"})}):i.jsx(m,{...r})}export{x as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmImage.stories-VGIocnfM.js: -------------------------------------------------------------------------------- 1 | import"./Stacks-cf55noxu.js";import"./index-4g5l5LRQ.js";import"./LmGrid-dD4DUrOQ.js";import{L as m}from"./LmImage-J69gcWFB.js";import"./_commonjsHelpers-4gQjN7DL.js";import"./index-_wg5PwQV.js";import"./EventEmitter-3h9cKSNS.js";import"./toPropertyKey-NzAT2yhV.js";import"./index-TmN4oE2O.js";import"./extends-nGe_wfaW.js";import"./index-iwWdm5Ml.js";import"./Headings-zc2v6h-R.js";import"./Image-E4WYJ6IT.js";import"./index-UfAEvnza.js";const f={title:"core/Content/Image",component:m},i="https://placekitten.com/400/300",r={args:{width:400,height:300,src:i}};var t,o,e;r.parameters={...r.parameters,docs:{...(t=r.parameters)==null?void 0:t.docs,source:{originalSource:`{ 2 | args: { 3 | width: 400, 4 | height: 300, 5 | src: imageSrc 6 | } 7 | }`,...(e=(o=r.parameters)==null?void 0:o.docs)==null?void 0:e.source}}};const w=["Basic"];export{r as Basic,w as __namedExportsOrder,f as default}; 8 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmInputRhf-gaBMKt7J.js: -------------------------------------------------------------------------------- 1 | import{C as d}from"./index.esm-qGf7LkUX.js";import{L as l}from"./LmAutocomplete-kGbePZjJ.js";import{j as i}from"./Stacks-cf55noxu.js";function j({name:m,control:o,rules:t={},defaultValue:s,...e}){return e.required&&(t.required="This field is required"),i.jsx(d,{name:m,rules:t,control:o,defaultValue:s,render:({field:{onChange:a,value:f,onBlur:n,ref:x},fieldState:{error:r}})=>i.jsx(l,{...e,ref:x,value:f??"",onBlur:n,error:!!r,onChangeText:a,helperText:r?r.message:e.helperText})})}export{j as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmRichText-uAq-LfkS.css: -------------------------------------------------------------------------------- 1 | ul,ol{padding:0 1rem}h1,h2,h3,h4,h5,h6{line-height:1.1}.ProseMirror p:first-child,.ProseMirror h1:first-child,.ProseMirror h2:first-child,.ProseMirror h3:first-child,.ProseMirror h4:first-child,.ProseMirror h5:first-child,.ProseMirror h6:first-child{margin-top:10px}.ProseMirror{padding:4px 8px 4px 14px;line-height:1.2;outline:none}.ProseMirror p{margin-bottom:1em}.ProseMirror ul,.ProseMirror ol{list-style-position:outside;padding:0 0 0 2em;margin:0 0 0 1em}.ProseMirror ul{list-style-type:disc;margin-left:1.5em}.ProseMirror ol{list-style-type:decimal;margin-left:1.5em}.ProseMirror li{display:list-item;margin:.5em 0 .5em 1em} 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmSheet-nphtVfUp.js: -------------------------------------------------------------------------------- 1 | import{r as p}from"./index-4g5l5LRQ.js";import{j as s}from"./Stacks-cf55noxu.js";import{S as t}from"./index-_wg5PwQV.js";function h({hideHandle:r,children:i,fullScreen:o,snapPoints:n=[85,50,25],enableScroll:m,scrollviewProps:e,...a}){const[d,x]=p.useState(0);return s.jsxs(t,{modal:!0,dismissOnSnapToBottom:!0,...a,snapPoints:o?[100,0]:n,disableDrag:o?!0:a.disableDrag,position:d,onPositionChange:x,children:[!o&&s.jsx(t.Overlay,{}),!r&&!o&&s.jsx(t.Handle,{}),s.jsx(t.Frame,{flex:1,padding:"$4",borderRadius:o?0:void 0,children:m?s.jsx(t.ScrollView,{...e,children:i}):s.jsx(s.Fragment,{children:i})})]})}export{h as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmSheet-yZcxhf80.js: -------------------------------------------------------------------------------- 1 | import{j as s}from"./Stacks-cf55noxu.js";import{r as p}from"./index-4g5l5LRQ.js";import{S as t}from"./index-_wg5PwQV.js";function b({hideHandle:r,children:i,fullScreen:o,snapPoints:e=[85,50,25],enableScroll:n,scrollviewProps:m,...a}){const[d,x]=p.useState(0);return s.jsxs(t,{modal:!0,dismissOnSnapToBottom:!0,...a,snapPoints:o?[100,0]:e,disableDrag:o?!0:a.disableDrag,position:d,onPositionChange:x,children:[!o&&s.jsx(t.Overlay,{}),!r&&!o&&s.jsx(t.Handle,{}),s.jsx(t.Frame,{flex:1,padding:"$4",borderRadius:o?0:void 0,children:n?s.jsx(t.ScrollView,{...m,children:i}):s.jsx(s.Fragment,{children:i})})]})}export{b as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmSubmitButtonRhf-85k1ezmG.js: -------------------------------------------------------------------------------- 1 | import{j as s}from"./Stacks-cf55noxu.js";import"./index-4g5l5LRQ.js";import{L as a}from"./LmGrid--faLWKbq.js";import{a as e}from"./index.esm-qGf7LkUX.js";function l({onSubmit:m,...t}){const o=e(),{handleSubmit:n,formState:r}=o;return s.jsx(a,{...t,onPress:n(i=>{m(i,o)}),loading:r.isValidating||t.loading})}export{l as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmSubmitButtonRhf-Epz0h-MI.js: -------------------------------------------------------------------------------- 1 | import"./index-4g5l5LRQ.js";import{j as a}from"./Stacks-cf55noxu.js";import{L as s}from"./LmGrid--faLWKbq.js";import{a as e}from"./index.esm-qGf7LkUX.js";function l({onSubmit:m,...t}){const o=e(),{handleSubmit:n,formState:r}=o;return a.jsx(s,{...t,onPress:n(i=>{m(i,o)}),loading:r.isValidating||t.loading})}export{l as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/LmYoutubeEmbed.web-Q44Tzmd_.js: -------------------------------------------------------------------------------- 1 | import{n as c}from"./index-_wg5PwQV.js";import{j as e,S as t}from"./Stacks-cf55noxu.js";import{r as l}from"./index-4g5l5LRQ.js";import"./index-TmN4oE2O.js";import"./LmGrid--faLWKbq.js";function p(){return e.jsx(t,{position:"absolute",top:0,left:0,backgroundColor:"$gray5",width:"100%",height:"100%",alignItems:"center",display:"flex",justifyContent:"center",children:e.jsx(c,{})})}function h({youtubeId:o="JxS5E-kZc2s",aspectRatio:r=16/9,width:i="100%",...n}){const[s,a]=l.useState(!1);return e.jsxs(t,{...n,width:i,aspectRatio:r,position:"relative",children:[!s&&e.jsx(p,{}),e.jsx("iframe",{src:`https://www.youtube-nocookie.com/embed/${o}?controls=1`,frameBorder:"0",width:"100%",height:"100%",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,onLoad:()=>a(!0)})]})}export{h as L}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/RCTDeviceEventEmitter-v7vvFmgm.js: -------------------------------------------------------------------------------- 1 | import{E as t}from"./EventEmitter-3h9cKSNS.js";const r=new t;export{r as R}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/Separator-xEpcC6ux.js: -------------------------------------------------------------------------------- 1 | import"./index-4g5l5LRQ.js";import{s as t,S as r}from"./Stacks-cf55noxu.js";const e=t(r,{name:"Separator",borderColor:"$borderColor",flexShrink:0,borderWidth:0,flex:1,height:0,maxHeight:0,borderBottomWidth:1,y:-.5,variants:{vertical:{true:{y:0,x:-.5,height:"initial",maxHeight:"initial",width:0,maxWidth:0,borderBottomWidth:0,borderRightWidth:1}}}});export{e as S}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/SizableStack-x2xeJTXj.js: -------------------------------------------------------------------------------- 1 | import{h as a,p as r,f as t,i as o,j as m,k as i,l as h}from"./index-_wg5PwQV.js";import{s as c,X as l}from"./Stacks-cf55noxu.js";const p=c(l,{name:"SizableStack",variants:{unstyled:{true:{hoverTheme:!1,pressTheme:!1,focusTheme:!1,elevate:!1,bordered:!1}},hoverTheme:a,pressTheme:r,focusTheme:t,circular:o,elevate:m,bordered:i,size:{"...size":(e,s)=>h(e,s)}}});export{p as S}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/Text-GPmJrOtX.js: -------------------------------------------------------------------------------- 1 | import{s as e,T as s}from"./Stacks-cf55noxu.js";var t={};const o=e(s,{variants:{unstyled:{false:{color:"$color"}}},defaultVariants:{unstyled:t.TAMAGUI_HEADLESS==="1"}});export{o as T}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/WithTooltip-V3YHNWJZ-tSIKRWN9.js: -------------------------------------------------------------------------------- 1 | import{W as x,W as P,a as S}from"./DocsRenderer-NNNQARDV-Dmht8yMW.js";import"./iframe-JsPZtx2K.js";import"../sb-preview/runtime.js";import"./index-4g5l5LRQ.js";import"./_commonjsHelpers-4gQjN7DL.js";import"./react-18-gDJZMjUw.js";import"./index-iwWdm5Ml.js";import"./_commonjs-dynamic-modules-FZ9QPYRN.js";import"./extends-nGe_wfaW.js";import"./index-ogXoivrg.js";import"./_getPrototype-MXemwaK5.js";import"./_baseIsEqual-CFr8iVHd.js";import"./uniq-DjaUhnlG.js";import"./index-PPLHz8o0.js";export{x as WithToolTipState,P as WithTooltip,S as WithTooltipPure}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/_commonjs-dynamic-modules-FZ9QPYRN.js: -------------------------------------------------------------------------------- 1 | function a(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t,o){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,s){return r.__proto__=s,r},n(t,o)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},i(t)}function c(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}export{n as _,i as a,a as b,c}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/_commonjsHelpers-4gQjN7DL.js: -------------------------------------------------------------------------------- 1 | var u=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function l(e){if(e.__esModule)return e;var r=e.default;if(typeof r=="function"){var t=function o(){return this instanceof o?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)};t.prototype=r.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:function(){return e[o]}})}),t}export{l as a,u as c,f as g}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/context-W07bjnle.js: -------------------------------------------------------------------------------- 1 | import{_ as r,a as o}from"./createClass-SPiPqPE8.js";import{r as p}from"./index-4g5l5LRQ.js";var u=p.createContext(),i=function(){function e(){o(this,e),this.usedNamespaces={}}return r(e,[{key:"addUsedNamespaces",value:function(c){var s=this;c.forEach(function(a){s.usedNamespaces[a]||(s.usedNamespaces[a]=!0)})}},{key:"getUsedNamespaces",value:function(){return Object.keys(this.usedNamespaces)}}]),e}();export{u as I,i as R}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/createClass-SPiPqPE8.js: -------------------------------------------------------------------------------- 1 | import{t}from"./toPropertyKey-NzAT2yhV.js";function r(e,a){if(!(e instanceof a))throw new TypeError("Cannot call a class as a function")}function l(e,a){for(var f=0;fn(new Date(Date.UTC(2021,o%12))))}const m=e=>r(e).map((a,t)=>({value:t+1,label:a})),l=({localeName:e,options:a,date:t})=>t?new Intl.DateTimeFormat(e,a??{month:"2-digit",year:"numeric",day:"2-digit"}).format(t):"";export{l as a,m as g}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/index-PPLHz8o0.js: -------------------------------------------------------------------------------- 1 | function l(o){for(var f=[],i=1;i(e.current.value!==r&&(e.current.previous=e.current.value,e.current.value=r),e.current.previous),[r])}export{o as u}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/index-_VGcpBFS.js: -------------------------------------------------------------------------------- 1 | import{R as o}from"./index-4g5l5LRQ.js";import"./_commonjsHelpers-4gQjN7DL.js";const u=o.createContext({});function C(t){return e;function e(r){const n=i(r.components);return o.createElement(t,{...r,allComponents:n})}}function i(t){const e=o.useContext(u);return o.useMemo(()=>typeof t=="function"?t(e):{...e,...t},[e,t])}const c={};function a({components:t,children:e,disableParentContext:r}){let n;return r?n=typeof t=="function"?t({}):t||c:n=i(t),o.createElement(u.Provider,{value:n},e)}export{u as MDXContext,a as MDXProvider,i as useMDXComponents,C as withMDXComponents}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-all-400-normal-aTkQBzfv.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-all-400-normal-aTkQBzfv.woff -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-all-700-normal-w8d0EwWo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-all-700-normal-w8d0EwWo.woff -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-cyrillic-400-normal-EPgtxUdt.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-cyrillic-400-normal-EPgtxUdt.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-cyrillic-700-normal-WjK-gRow.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-cyrillic-700-normal-WjK-gRow.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-cyrillic-ext-400-normal-hbwVqd76.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-cyrillic-ext-400-normal-hbwVqd76.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-cyrillic-ext-700-normal-rc5oWlJP.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-cyrillic-ext-700-normal-rc5oWlJP.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-greek-400-normal-YZIAb8Pm.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-greek-400-normal-YZIAb8Pm.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-greek-700-normal-hSEF9VNm.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-greek-700-normal-hSEF9VNm.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-greek-ext-400-normal-Ofy3y2SD.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-greek-ext-400-normal-Ofy3y2SD.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-greek-ext-700-normal-Ck4W3Q6w.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-greek-ext-700-normal-Ck4W3Q6w.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-latin-400-normal-GLYHyz0Z.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-latin-400-normal-GLYHyz0Z.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-latin-700-normal-Y9QfVihh.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-latin-700-normal-Y9QfVihh.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-latin-ext-400-normal-94UIUsAk.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-latin-ext-400-normal-94UIUsAk.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/inter-latin-ext-700-normal-CN7A-HjB.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/assets/inter-latin-ext-700-normal-CN7A-HjB.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/preview-PC0Xz-mG.js: -------------------------------------------------------------------------------- 1 | import{_ as t}from"./iframe-JsPZtx2K.js";import"../sb-preview/runtime.js";var _={docs:{renderer:async()=>{let{DocsRenderer:r}=await t(()=>import("./DocsRenderer-NNNQARDV-Dmht8yMW.js").then(e=>e.D),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url);return new r}}};export{_ as parameters}; 2 | function __vite__mapDeps(indexes) { 3 | if (!__vite__mapDeps.viteFileDeps) { 4 | __vite__mapDeps.viteFileDeps = ["./DocsRenderer-NNNQARDV-Dmht8yMW.js","./iframe-JsPZtx2K.js","./index-4g5l5LRQ.js","./_commonjsHelpers-4gQjN7DL.js","./react-18-gDJZMjUw.js","./index-iwWdm5Ml.js","./_commonjs-dynamic-modules-FZ9QPYRN.js","./extends-nGe_wfaW.js","./index-ogXoivrg.js","./_getPrototype-MXemwaK5.js","./_baseIsEqual-CFr8iVHd.js","./uniq-DjaUhnlG.js","./index-PPLHz8o0.js"] 5 | } 6 | return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) 7 | } 8 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/preview-VI2eoWmp.js: -------------------------------------------------------------------------------- 1 | import"./index-ogXoivrg.js";const{global:O}=__STORYBOOK_MODULE_GLOBAL__,{makeDecorator:E,addons:_}=__STORYBOOK_MODULE_PREVIEW_API__,{STORY_CHANGED:l,SELECT_STORY:L}=__STORYBOOK_MODULE_CORE_EVENTS__;var c="links",{document:i,HTMLElement:m}=O,v=e=>_.getChannel().emit(L,e),o=e=>{let{target:t}=e;if(!(t instanceof m))return;let s=t,{sbKind:a,sbStory:r}=s.dataset;(a||r)&&(e.preventDefault(),v({kind:a,story:r}))},n=!1,d=()=>{n||(n=!0,i.addEventListener("click",o))},k=()=>{n&&(n=!1,i.removeEventListener("click",o))},R=E({name:"withLinks",parameterName:c,wrapper:(e,t)=>(d(),_.getChannel().once(l,k),e(t))}),T=[R];export{T as decorators}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/preview-bEa2SesL.js: -------------------------------------------------------------------------------- 1 | const{global:r}=__STORYBOOK_MODULE_GLOBAL__,{addons:s}=__STORYBOOK_MODULE_PREVIEW_API__,{STORY_CHANGED:O}=__STORYBOOK_MODULE_CORE_EVENTS__;var i="storybook/highlight",d="storybookHighlight",g=`${i}/add`,E=`${i}/reset`,{document:l}=r,H=(e="#FF4785",t="dashed")=>` 2 | outline: 2px ${t} ${e}; 3 | outline-offset: 2px; 4 | box-shadow: 0 0 0 6px rgba(255,255,255,0.6); 5 | `,I=e=>({outline:`2px dashed ${e}`,outlineOffset:2,boxShadow:"0 0 0 6px rgba(255,255,255,0.6)"}),_=s.getChannel(),T=e=>{let t=d;n();let o=Array.from(new Set(e.elements)),h=l.createElement("style");h.setAttribute("id",t),h.innerHTML=o.map(a=>`${a}{ 6 | ${H(e.color,e.style)} 7 | }`).join(" "),l.head.appendChild(h)},n=()=>{var o;let e=d,t=l.getElementById(e);t&&((o=t.parentNode)==null||o.removeChild(t))};_.on(O,n);_.on(E,n);_.on(g,T);export{I as highlightObject,H as highlightStyle}; 8 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/router-context.shared-runtime-dLj_Pzr5.js: -------------------------------------------------------------------------------- 1 | import{r as o}from"./index-4g5l5LRQ.js";var t={},r={};r._=r._interop_require_default=_;function _(e){return e&&e.__esModule?e:{default:e}}var u;function f(){return u||(u=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"RouterContext",{enumerable:!0,get:function(){return n}});const n=r._(o).default.createContext(null)}(t)),t}export{r as _,f as r}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/selectItems-62Hhm5qZ.js: -------------------------------------------------------------------------------- 1 | const e=[{label:"Apple"},{label:"Pear"},{label:"Blackberry"},{label:"Peach"},{label:"Apricot"},{label:"Melon"},{label:"Honeydew"},{label:"Starfruit"},{label:"Blueberry"},{label:"Rasberry"},{label:"Strawberry"},{label:"Mango"},{label:"Pineapple"},{label:"Lime"},{label:"Lemon"},{label:"Coconut"},{label:"Guava"},{label:"Papaya"},{label:"Orange"},{label:"Grape"},{label:"Jackfruit"},{label:"Durian"}].map(l=>({value:l.label,label:l.label}));export{e as f}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/selectItems-L3zF9VcJ.js: -------------------------------------------------------------------------------- 1 | const e=[{label:"Apple"},{label:"Pear"},{label:"Blackberry"},{label:"Peach"},{label:"Apricot"},{label:"Melon"},{label:"Honeydew"},{label:"Starfruit"},{label:"Blueberry"},{label:"Rasberry"},{label:"Strawberry"},{label:"Mango"},{label:"Pineapple"},{label:"Lime"},{label:"Lemon"},{label:"Coconut"},{label:"Guava"},{label:"Papaya"},{label:"Orange"},{label:"Grape"},{label:"Jackfruit"},{label:"Durian"}].map(l=>({value:l.label,label:l.label}));export{e as f}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/syntaxhighlighter-V7JZZA35-VmuI3yqZ.js: -------------------------------------------------------------------------------- 1 | import{S as h,c as u,s as x}from"./DocsRenderer-NNNQARDV-Dmht8yMW.js";import"./iframe-JsPZtx2K.js";import"../sb-preview/runtime.js";import"./index-4g5l5LRQ.js";import"./_commonjsHelpers-4gQjN7DL.js";import"./react-18-gDJZMjUw.js";import"./index-iwWdm5Ml.js";import"./_commonjs-dynamic-modules-FZ9QPYRN.js";import"./extends-nGe_wfaW.js";import"./index-ogXoivrg.js";import"./_getPrototype-MXemwaK5.js";import"./_baseIsEqual-CFr8iVHd.js";import"./uniq-DjaUhnlG.js";import"./index-PPLHz8o0.js";export{h as SyntaxHighlighter,u as createCopyToClipboardFunction,x as default}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/toPropertyKey-NzAT2yhV.js: -------------------------------------------------------------------------------- 1 | function o(r){"@babel/helpers - typeof";return o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(r)}function n(r,t){if(o(r)!="object"||!r)return r;var e=r[Symbol.toPrimitive];if(e!==void 0){var i=e.call(r,t||"default");if(o(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(r)}function u(r){var t=n(r,"string");return o(t)=="symbol"?t:String(t)}export{o as _,u as t}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/assets/usePopoverState-AcQ9Dkm1.js: -------------------------------------------------------------------------------- 1 | import{r}from"./index-4g5l5LRQ.js";const s=e=>{const[t,o]=r.useState(!!e);return{open:t,onOpenChange:o,defaultOpen:!!e}};export{s as u}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- 1 | Bundled license information: 2 | 3 | telejson/dist/index.mjs: 4 | /*! 5 | * isobject 6 | * 7 | * Copyright (c) 2014-2017, Jon Schlinkert. 8 | * Released under the MIT License. 9 | */ 10 | /** 11 | * @license 12 | * Lodash (Custom Build) 13 | * Build: `lodash modularize exports="es" -o ./` 14 | * Copyright OpenJS Foundation and other contributors 15 | * Released under MIT license 16 | * Based on Underscore.js 1.8.3 17 | * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 18 | */ 19 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/links-0/manager-bundle.js: -------------------------------------------------------------------------------- 1 | try{ 2 | (()=>{var _=__STORYBOOK_API__,{ActiveTabs:h,Consumer:A,ManagerContext:E,Provider:b,addons:a,combineParameters:O,controlOrMetaKey:p,controlOrMetaSymbol:k,eventMatchesShortcut:v,eventToShortcut:g,isMacLike:I,isShortcutTaken:C,keyToSymbol:M,merge:P,mockChannel:R,optionOrAltSymbol:f,shortcutMatchesShortcut:x,shortcutToHumanString:D,types:G,useAddonState:K,useArgTypes:V,useArgs:$,useChannel:B,useGlobalTypes:N,useGlobals:Q,useParameter:U,useSharedState:Y,useStoryPrepared:q,useStorybookApi:H,useStorybookState:L}=__STORYBOOK_API__;var e="storybook/links",n={NAVIGATE:`${e}/navigate`,REQUEST:`${e}/request`,RECEIVE:`${e}/receive`};a.register(e,t=>{t.on(n.REQUEST,({kind:u,name:S})=>{let c=t.storyId(u,S);t.emit(n.RECEIVE,c)})});})(); 3 | }catch(e){ console.error("[Storybook] One of your manager-entries failed: " + import.meta.url, e); } 4 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/links-0/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/links-0/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-addons/storybook-react-i18next-9/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-addons/storybook-react-i18next-9/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-common-assets/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Nunito Sans'; 3 | font-style: normal; 4 | font-weight: 400; 5 | font-display: swap; 6 | src: url('./nunito-sans-regular.woff2') format('woff2'); 7 | } 8 | 9 | @font-face { 10 | font-family: 'Nunito Sans'; 11 | font-style: italic; 12 | font-weight: 400; 13 | font-display: swap; 14 | src: url('./nunito-sans-italic.woff2') format('woff2'); 15 | } 16 | 17 | @font-face { 18 | font-family: 'Nunito Sans'; 19 | font-style: normal; 20 | font-weight: 700; 21 | font-display: swap; 22 | src: url('./nunito-sans-bold.woff2') format('woff2'); 23 | } 24 | 25 | @font-face { 26 | font-family: 'Nunito Sans'; 27 | font-style: italic; 28 | font-weight: 700; 29 | font-display: swap; 30 | src: url('./nunito-sans-bold-italic.woff2') format('woff2'); 31 | } 32 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-bold.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-italic.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/sb-vite/storybook-static/sb-common-assets/nunito-sans-regular.woff2 -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-manager/WithTooltip-V3YHNWJZ-LVYLGZW2.js: -------------------------------------------------------------------------------- 1 | import{WithToolTipState,WithTooltipPure}from"./chunk-NGTUFCUO.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{WithToolTipState,WithToolTipState as WithTooltip,WithTooltipPure}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-manager/index.js: -------------------------------------------------------------------------------- 1 | import{Provider,Root,renderStorybookUI}from"./chunk-F4FCO4CF.js";import"./chunk-2IXBUOFS.js";import"./chunk-NGTUFCUO.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{Provider,Root,renderStorybookUI}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/storybook-static/sb-manager/syntaxhighlighter-V7JZZA35-DXZCI2WR.js: -------------------------------------------------------------------------------- 1 | import{SyntaxHighlighter2,createCopyToClipboardFunction,syntaxhighlighter_default}from"./chunk-2IXBUOFS.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{SyntaxHighlighter2 as SyntaxHighlighter,createCopyToClipboardFunction,syntaxhighlighter_default as default}; 2 | -------------------------------------------------------------------------------- /apps/sb-vite/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | export default config 9 | -------------------------------------------------------------------------------- /apps/sb-vite/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | "jsx": "react-jsx", 16 | 17 | /* Linting */ 18 | "strict": true, 19 | "noUnusedLocals": true, 20 | "noUnusedParameters": true, 21 | "noFallthroughCasesInSwitch": true 22 | }, 23 | "include": [ 24 | "src" 25 | ], 26 | "references": [{ "path": "./tsconfig.node.json"}] 27 | } 28 | -------------------------------------------------------------------------------- /apps/sb-vite/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "skipLibCheck": true, 5 | "module": "ESNext", 6 | "moduleResolution": "bundler", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "include": [ 10 | "vite.config.ts" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /apps/storybook-react/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /apps/storybook-react/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .expo/ 3 | .expo-shared 4 | dist/ 5 | npm-debug.* 6 | *.jks 7 | *.p8 8 | *.p12 9 | *.key 10 | *.mobileprovision 11 | *.orig.* 12 | web-build/ 13 | 14 | # macOS 15 | .DS_Store 16 | 17 | -------------------------------------------------------------------------------- /apps/storybook-react/.storybook/i18n.ts: -------------------------------------------------------------------------------- 1 | import { initReactI18next } from 'react-i18next' 2 | import i18n from 'i18next' 3 | import Backend from 'i18next-http-backend' 4 | import LanguageDetector from 'i18next-browser-languagedetector' 5 | 6 | const ns = ['common'] 7 | const supportedLngs = ['en', 'de'] 8 | const resources = ns.reduce((acc, n) => { 9 | supportedLngs.forEach((lng) => { 10 | if (!acc[lng]) acc[lng] = {} 11 | acc[lng] = { 12 | ...acc[lng], 13 | [n]: require(`../../next/public/locales/${lng}/${n}.json`), 14 | } 15 | }) 16 | return acc 17 | }, {}) 18 | 19 | i18n 20 | .use(initReactI18next) 21 | .use(LanguageDetector) 22 | .use(Backend) 23 | .init({ 24 | //debug: true, 25 | lng: 'en', 26 | fallbackLng: 'en', 27 | defaultNS: 'common', 28 | ns, 29 | interpolation: { escapeValue: false }, 30 | react: { useSuspense: false }, 31 | supportedLngs, 32 | resources, 33 | }) 34 | 35 | export default i18n 36 | -------------------------------------------------------------------------------- /apps/storybook-react/.storybook/preview-head.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/storybook-react/next.config.js: -------------------------------------------------------------------------------- 1 | const conf = require('../next/next.config') 2 | module.exports = conf 3 | -------------------------------------------------------------------------------- /apps/storybook-react/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/favicon.ico -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff/SpaceGrotesk-Bold-subset.zopfli.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff/SpaceGrotesk-Bold-subset.zopfli.woff -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff/SpaceGrotesk-Regular-subset.zopfli.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff/SpaceGrotesk-Regular-subset.zopfli.woff -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Bold-subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Bold-subset.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Bold.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Regular-subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Regular-subset.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/public/fonts/woff2/SpaceGrotesk-Regular.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/1069.1f519595.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[1069],{"../../node_modules/@storybook/components/dist/WithTooltip-V3YHNWJZ.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{WithToolTipState:()=>_chunk_NE5YGCQB_mjs__WEBPACK_IMPORTED_MODULE_0__.WA,WithTooltip:()=>_chunk_NE5YGCQB_mjs__WEBPACK_IMPORTED_MODULE_0__.WA,WithTooltipPure:()=>_chunk_NE5YGCQB_mjs__WEBPACK_IMPORTED_MODULE_0__.DG});var _chunk_NE5YGCQB_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/@storybook/components/dist/chunk-NE5YGCQB.mjs")}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/1844.3346998e.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[1844],{"../../packages/app/src/fixtures/selectItems.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{fruitItemsFixtures:()=>fruitItemsFixtures});var fruitItemsFixtures=[{label:"Apple"},{label:"Pear"},{label:"Blackberry"},{label:"Peach"},{label:"Apricot"},{label:"Melon"},{label:"Honeydew"},{label:"Starfruit"},{label:"Blueberry"},{label:"Rasberry"},{label:"Strawberry"},{label:"Mango"},{label:"Pineapple"},{label:"Lime"},{label:"Lemon"},{label:"Coconut"},{label:"Guava"},{label:"Papaya"},{label:"Orange"},{label:"Grape"},{label:"Jackfruit"},{label:"Durian"}].map((function(i){return{value:i.label,label:i.label}}))}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/1938.9fec08a6.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[1938],{"../../packages/app/src/features/playground/util.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{fruitItemsFixtures:()=>fruitItemsFixtures});var fruitItemsFixtures=[{label:"Apple"},{label:"Pear"},{label:"Blackberry"},{label:"Peach"},{label:"Apricot"},{label:"Melon"},{label:"Honeydew"},{label:"Starfruit"},{label:"Blueberry"},{label:"Rasberry"},{label:"Strawberry"},{label:"Mango"},{label:"Pineapple"},{label:"Lime"},{label:"Lemon"},{label:"Coconut"},{label:"Guava"},{label:"Papaya"},{label:"Orange"},{label:"Grape"},{label:"Jackfruit"},{label:"Durian"}].map((function(i){return{value:i.label,label:i.label}}))}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/195.efc95e03.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! safe-buffer. MIT License. Feross Aboukhadijeh */ 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/2059.d8b79803.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[2059],{"../../packages/app/src/components/layouts/layoutTypes.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__)}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/395.4a70d74b.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | * isobject 3 | * 4 | * Copyright (c) 2014-2017, Jon Schlinkert. 5 | * Released under the MIT License. 6 | */ 7 | 8 | /** 9 | * @license 10 | * Lodash (Custom Build) 11 | * Build: `lodash modularize exports="es" -o ./` 12 | * Copyright OpenJS Foundation and other contributors 13 | * Released under MIT license 14 | * Based on Underscore.js 1.8.3 15 | * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 16 | */ 17 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/4075.da3d52e2.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[4075],{"../../packages/app/src/lib/fixtures/selectItems.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{fruitItemsFixtures:()=>fruitItemsFixtures});var fruitItemsFixtures=[{label:"Apple"},{label:"Pear"},{label:"Blackberry"},{label:"Peach"},{label:"Apricot"},{label:"Melon"},{label:"Honeydew"},{label:"Starfruit"},{label:"Blueberry"},{label:"Rasberry"},{label:"Strawberry"},{label:"Mango"},{label:"Pineapple"},{label:"Lime"},{label:"Lemon"},{label:"Coconut"},{label:"Guava"},{label:"Papaya"},{label:"Orange"},{label:"Grape"},{label:"Jackfruit"},{label:"Durian"}].map((function(i){return{value:i.label,label:i.label}}))}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/4459.c748be98.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /** @license React v16.13.1 2 | * react-is.production.min.js 3 | * 4 | * Copyright (c) Facebook, Inc. and its affiliates. 5 | * 6 | * This source code is licensed under the MIT license found in the 7 | * LICENSE file in the root directory of this source tree. 8 | */ 9 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/4533.4b2ec20b.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! ***************************************************************************** 2 | Copyright (c) Microsoft Corporation. 3 | 4 | Permission to use, copy, modify, and/or distribute this software for any 5 | purpose with or without fee is hereby granted. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 8 | REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 9 | AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 10 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 11 | LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 12 | OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 13 | PERFORMANCE OF THIS SOFTWARE. 14 | ***************************************************************************** */ 15 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/4749.b4d74719.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[4749],{"../../packages/app/react-i18n.d.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__);__webpack_require__("../../node_modules/react-i18next/dist/es/index.js"),__webpack_require__("../next/public/locales/en/common.json")}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/4980.ce8abf20.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[4980],{"../../packages/app/src/navigation/routerConfig.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{nativeScreens:()=>nativeScreens});var nativeScreens={home:"",overview:"overview",dashboard:"dashboard",playground:"playground"}}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/5117.ccb90286.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[5117],{"../../packages/app/src/state/appState.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useAppState:()=>useAppState,useToggleMainDrawer:()=>useToggleMainDrawer});var useAppState=(0,__webpack_require__("../../node_modules/zustand/esm/index.mjs").Ue)((function(set){return{isMainDrawerOpen:!1,toggleMainDrawer:function toggleMainDrawer(){return set((function(state){return{isMainDrawerOpen:!state.isMainDrawerOpen}}))},setMainDrawer:function setMainDrawer(bool){return set({isMainDrawerOpen:bool})}}})),useToggleMainDrawer=function useToggleMainDrawer(){return useAppState((function(state){return state.toggleMainDrawer}))}}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/5208.37111768.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[5208],{"../../packages/app/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__)}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/650.dbbb2472.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[650],{"../../packages/app/rnw-overrides.tsx":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__)}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/6696.d31299d7.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/687.e1d0c860.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[687],{"../../node_modules/@storybook/components/dist/syntaxhighlighter-V7JZZA35.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{SyntaxHighlighter:()=>_chunk_ELLS3HSY_mjs__WEBPACK_IMPORTED_MODULE_0__.d3,createCopyToClipboardFunction:()=>_chunk_ELLS3HSY_mjs__WEBPACK_IMPORTED_MODULE_0__.xV,default:()=>_chunk_ELLS3HSY_mjs__WEBPACK_IMPORTED_MODULE_0__.qG});var _chunk_ELLS3HSY_mjs__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/@storybook/components/dist/chunk-ELLS3HSY.mjs")}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/7496.f8bf2e24.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[7496],{"../../packages/app/src/navigation/useOnRouteChange.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{useOnRouteChange:()=>useOnRouteChange});var _react_navigation_native__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("../../node_modules/@react-navigation/native/lib/module/index.js"),react__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("../../node_modules/next/dist/compiled/react/index.js");function useOnRouteChange(func){var routeIndex=(0,_react_navigation_native__WEBPACK_IMPORTED_MODULE_1__.useNavigationState)((function(state){return null==state?void 0:state.index}));return(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)((function(){Number.isInteger(routeIndex)&&func()}),[routeIndex]),null}}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/8156.abe78f70.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ 2 | 3 | /** @license React v17.0.2 4 | * react-is.production.min.js 5 | * 6 | * Copyright (c) Facebook, Inc. and its affiliates. 7 | * 8 | * This source code is licensed under the MIT license found in the 9 | * LICENSE file in the root directory of this source tree. 10 | */ 11 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/88.0cf59868.iframe.bundle.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/9700.9cf5bb9a.iframe.bundle.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunksb_react=self.webpackChunksb_react||[]).push([[9700],{"../../packages/app/package.json":module=>{module.exports=JSON.parse('{"version":"0.0.24","name":"app","private":true,"main":"index.ts","scripts":{"codegen":"graphql-codegen --config graphql.config.ts --errors-only --watch","__check-types":"tsc --noEmit"},"dependencies":{"@tamagui-extras/config":"1.5.0","@tamagui-extras/core":"1.6.1","@tamagui-extras/date":"1.8.4","@tamagui-extras/file":"1.6.0","@tamagui-extras/form":"1.9.0","@tamagui-extras/link":"1.6.0","@tamagui-extras/rich-text":"1.6.4","@tamagui-extras/video":"1.7.0","@tamagui-extras/youtube":"1.6.1","react-i18next":"^12.2.1","react-native-safe-area-context":"^4.5.2","react-native-web":"0.18.12","solito":"^3.2.5","tamagui":"^1.79.9","zustand":"^4.3.3"},"devDependencies":{"@storybook/jest":"0.2.3","@storybook/react":"7.6.4","@storybook/testing-library":"0.2.2"},"sideEffects":false}')}}]); -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/favicon.ico -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff/SpaceGrotesk-Bold-subset.zopfli.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff/SpaceGrotesk-Bold-subset.zopfli.woff -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff/SpaceGrotesk-Regular-subset.zopfli.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff/SpaceGrotesk-Regular-subset.zopfli.woff -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Bold-subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Bold-subset.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Bold.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Regular-subset.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Regular-subset.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/fonts/woff2/SpaceGrotesk-Regular.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-actions-2/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-backgrounds-3/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-controls-1/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- 1 | Bundled license information: 2 | 3 | telejson/dist/index.mjs: 4 | /*! 5 | * isobject 6 | * 7 | * Copyright (c) 2014-2017, Jon Schlinkert. 8 | * Released under the MIT License. 9 | */ 10 | /** 11 | * @license 12 | * Lodash (Custom Build) 13 | * Build: `lodash modularize exports="es" -o ./` 14 | * Copyright OpenJS Foundation and other contributors 15 | * Released under MIT license 16 | * Based on Underscore.js 1.8.3 17 | * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 18 | */ 19 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-measure-6/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-outline-7/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-toolbars-5/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/essentials-viewport-4/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/interactions-8/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/links-0/manager-bundle.js: -------------------------------------------------------------------------------- 1 | try{ 2 | (()=>{var _=__STORYBOOK_API__,{ActiveTabs:h,Consumer:A,ManagerContext:E,Provider:b,addons:a,combineParameters:O,controlOrMetaKey:k,controlOrMetaSymbol:p,eventMatchesShortcut:v,eventToShortcut:g,isMacLike:I,isShortcutTaken:C,keyToSymbol:M,merge:P,mockChannel:R,optionOrAltSymbol:f,shortcutMatchesShortcut:x,shortcutToHumanString:D,types:G,useAddonState:K,useArgTypes:V,useArgs:$,useChannel:B,useGlobalTypes:N,useGlobals:Q,useParameter:U,useSharedState:Y,useStoryPrepared:q,useStorybookApi:H,useStorybookState:L}=__STORYBOOK_API__;var e="storybook/links",n={NAVIGATE:`${e}/navigate`,REQUEST:`${e}/request`,RECEIVE:`${e}/receive`};a.register(e,t=>{t.on(n.REQUEST,({kind:u,name:S})=>{let c=t.storyId(u,S);t.emit(n.RECEIVE,c)})});})(); 3 | }catch(e){ console.error("[Storybook] One of your manager-entries failed: " + import.meta.url, e); } 4 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/links-0/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/links-0/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-addons/storybook-react-i18next-9/manager-bundle.js.LEGAL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-addons/storybook-react-i18next-9/manager-bundle.js.LEGAL.txt -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-common-assets/fonts.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Nunito Sans'; 3 | font-style: normal; 4 | font-weight: 400; 5 | font-display: swap; 6 | src: url('./nunito-sans-regular.woff2') format('woff2'); 7 | } 8 | 9 | @font-face { 10 | font-family: 'Nunito Sans'; 11 | font-style: italic; 12 | font-weight: 400; 13 | font-display: swap; 14 | src: url('./nunito-sans-italic.woff2') format('woff2'); 15 | } 16 | 17 | @font-face { 18 | font-family: 'Nunito Sans'; 19 | font-style: normal; 20 | font-weight: 700; 21 | font-display: swap; 22 | src: url('./nunito-sans-bold.woff2') format('woff2'); 23 | } 24 | 25 | @font-face { 26 | font-family: 'Nunito Sans'; 27 | font-style: italic; 28 | font-weight: 700; 29 | font-display: swap; 30 | src: url('./nunito-sans-bold-italic.woff2') format('woff2'); 31 | } 32 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-bold.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-italic.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/sb-common-assets/nunito-sans-regular.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-manager/WithTooltip-V3YHNWJZ-LVYLGZW2.js: -------------------------------------------------------------------------------- 1 | import{WithToolTipState,WithTooltipPure}from"./chunk-NGTUFCUO.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{WithToolTipState,WithToolTipState as WithTooltip,WithTooltipPure}; 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-manager/index.js: -------------------------------------------------------------------------------- 1 | import{Provider,Root,renderStorybookUI}from"./chunk-3MAIP5DL.js";import"./chunk-2IXBUOFS.js";import"./chunk-NGTUFCUO.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{Provider,Root,renderStorybookUI}; 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/sb-manager/syntaxhighlighter-V7JZZA35-DXZCI2WR.js: -------------------------------------------------------------------------------- 1 | import{SyntaxHighlighter2,createCopyToClipboardFunction,syntaxhighlighter_default}from"./chunk-2IXBUOFS.js";import"./chunk-INSKDKQB.js";import"./chunk-ZEU7PDD3.js";export{SyntaxHighlighter2 as SyntaxHighlighter,createCopyToClipboardFunction,syntaxhighlighter_default as default}; 2 | -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-all-400-normal.8c804432.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-all-400-normal.8c804432.woff -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-all-700-normal.4caa68a0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-all-700-normal.4caa68a0.woff -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-cyrillic-400-normal.8684fef6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-cyrillic-400-normal.8684fef6.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-cyrillic-700-normal.fce0dd82.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-cyrillic-700-normal.fce0dd82.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-cyrillic-ext-400-normal.fcc125c4.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-cyrillic-ext-400-normal.fcc125c4.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-cyrillic-ext-700-normal.177b82cd.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-cyrillic-ext-700-normal.177b82cd.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-greek-400-normal.0278a49f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-greek-400-normal.0278a49f.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-greek-700-normal.d36e38b1.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-greek-700-normal.d36e38b1.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-greek-ext-400-normal.3f642a92.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-greek-ext-400-normal.3f642a92.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-greek-ext-700-normal.25e184a6.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-greek-ext-700-normal.25e184a6.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-latin-400-normal.be7cb18d.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-latin-400-normal.be7cb18d.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-latin-700-normal.54321e26.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-latin-700-normal.54321e26.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-latin-ext-400-normal.3a7a7652.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-latin-ext-400-normal.3a7a7652.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-latin-ext-700-normal.8e5621b2.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-latin-ext-700-normal.8e5621b2.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-vietnamese-400-normal.789afb71.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-vietnamese-400-normal.789afb71.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/storybook-static/static/media/inter-vietnamese-700-normal.3d836ea0.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dohomi/tamagui-kitchen-sink/0ed13c5a889e278ab3f7471ca7f220f525812de3/apps/storybook-react/storybook-static/static/media/inter-vietnamese-700-normal.3d836ea0.woff2 -------------------------------------------------------------------------------- /apps/storybook-react/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | export default config 9 | -------------------------------------------------------------------------------- /apps/storybook-react/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json" 3 | } -------------------------------------------------------------------------------- /apps/storybook-react/turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "//" 4 | ], 5 | "pipeline": { 6 | "build": { 7 | "outputs": [ 8 | "dist/**", 9 | "public/**" 10 | ] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /apps/tests/__tests__/ui/MyComponent.test.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { LmButton } from '@tamagui-extras/core' 3 | import { renderUi } from '../../src' 4 | 5 | describe('', () => { 6 | it('has 1 child', () => { 7 | const { type, children } = renderUi(hello).toJSON() 8 | expect(type).toBe('View') 9 | expect(children.length).toBe(1) 10 | }) 11 | }) 12 | -------------------------------------------------------------------------------- /apps/tests/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true) 3 | return { 4 | presets: [['babel-preset-expo', {jsxRuntime: 'automatic'}]], 5 | plugins: [ 6 | // if you want reanimated support 7 | // 'react-native-reanimated/plugin', 8 | [ 9 | '@tamagui/babel-plugin', 10 | { 11 | components: ['tamagui', 'tamagui-extras'], 12 | config: './tamagui.config.ts', 13 | }, 14 | ], 15 | [ 16 | 'transform-inline-environment-variables', 17 | { 18 | include: 'TAMAGUI_TARGET', 19 | }, 20 | ], 21 | ], 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /apps/tests/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "preset": "jest-expo", 3 | "setupFilesAfterEnv": [ 4 | "./jest.setup-after-env.js" 5 | ], 6 | "setupFiles": [ 7 | "/jest.setup.js" 8 | ], 9 | "transformIgnorePatterns": [ 10 | "node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|@sentry/.*|native-base|react-native-svg|@walletconnect/.*|@motify/.*|solito|moti|@biconomy/.*|@react-three/.*|@babel/.*)" 11 | ], 12 | "moduleFileExtensions": [ 13 | "ts", 14 | "tsx", 15 | "js", 16 | "jsx" 17 | ] 18 | } -------------------------------------------------------------------------------- /apps/tests/jest.setup-after-env.js: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-native/extend-expect'; -------------------------------------------------------------------------------- /apps/tests/jest.setup.js: -------------------------------------------------------------------------------- 1 | import 'react-native-gesture-handler/jestSetup'; 2 | 3 | // jest.mock('react-native-reanimated', () => { 4 | // const Reanimated = require('react-native-reanimated/mock'); 5 | // 6 | // // The mock for `call` immediately calls the callback which is incorrect 7 | // // So we override it with a no-op 8 | // Reanimated.default.call = () => {}; 9 | // 10 | // return Reanimated; 11 | // }); 12 | 13 | // Silence the warning: Animated: `useNativeDriver` is not supported because the native animated module is missing 14 | jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); -------------------------------------------------------------------------------- /apps/tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tests", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "private": true, 7 | "scripts": { 8 | "test": "jest /__tests__" 9 | }, 10 | "dependencies": { 11 | "app": "*" 12 | }, 13 | "devDependencies": { 14 | "@testing-library/jest-native": "^4.0.11", 15 | "@testing-library/react-native": "^11.0.0", 16 | "@types/react": "~18.2.37", 17 | "babel-jest": "^28.1.3", 18 | "jest": "^28.1.3", 19 | "jest-expo": "^46.0.1", 20 | "typescript": "5.3.3" 21 | }, 22 | "author": "", 23 | "license": "ISC" 24 | } 25 | -------------------------------------------------------------------------------- /apps/tests/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './test-utils' -------------------------------------------------------------------------------- /apps/tests/src/test-utils.tsx: -------------------------------------------------------------------------------- 1 | import {render} from "@testing-library/react-native"; 2 | import {LmTamaguiProvider} from "app/src/provider/LmTamaguiProvider"; 3 | import {ReactElement} from "react"; 4 | 5 | export function renderUi(ui: ReactElement) { 6 | return render(ui, {wrapper: LmTamaguiProvider}) 7 | } 8 | 9 | -------------------------------------------------------------------------------- /apps/tests/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | export default config 9 | -------------------------------------------------------------------------------- /chromatic.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "ESNext", 4 | "moduleResolution": "Node", 5 | "target": "ES2020", 6 | "jsx": "react-jsx", 7 | "strictNullChecks": true, 8 | "strictFunctionTypes": true 9 | }, 10 | "exclude": [ 11 | "node_modules", 12 | "**/node_modules/*" 13 | ] 14 | } -------------------------------------------------------------------------------- /kitchen-sink.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": { 8 | "typescript.tsdk": "node_modules/typescript/lib" 9 | } 10 | } -------------------------------------------------------------------------------- /packages/app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .DS_Store 3 | THUMBS_DB 4 | -------------------------------------------------------------------------------- /packages/app/index.ts: -------------------------------------------------------------------------------- 1 | // leave this blank 2 | // don't re-export files from this workspace. it'll break next.js tree shaking 3 | // https://github.com/vercel/next.js/issues/12557 4 | export {} 5 | -------------------------------------------------------------------------------- /packages/app/react-i18n.d.ts: -------------------------------------------------------------------------------- 1 | import 'react-i18next' 2 | import en from '../../apps/next/public/locales/en/common.json' 3 | 4 | const resources = { 5 | en: { 6 | common: en, 7 | // tss 8 | }, 9 | } as const 10 | 11 | declare module 'react-i18next' { 12 | interface CustomTypeOptions { 13 | defaultNS: 'common' 14 | resources: typeof resources.en 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/app/rnw-overrides.tsx: -------------------------------------------------------------------------------- 1 | // override react-native types with react-native-web types 2 | import 'react-native' 3 | 4 | declare module 'react-native' { 5 | interface PressableStateCallbackType { 6 | hovered?: boolean 7 | focused?: boolean 8 | } 9 | interface ViewStyle { 10 | transitionProperty?: string 11 | transitionDuration?: string 12 | } 13 | interface TextProps { 14 | accessibilityComponentType?: never 15 | accessibilityTraits?: never 16 | href?: string 17 | hrefAttrs?: { 18 | rel: 'noreferrer' 19 | target?: '_blank' 20 | } 21 | } 22 | interface ViewProps { 23 | accessibilityRole?: string 24 | href?: string 25 | hrefAttrs?: { 26 | rel: 'noreferrer' 27 | target?: '_blank' 28 | } 29 | onClick?: (e: React.MouseEvent) => void 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /packages/app/src/components/layouts/LmAppShell.web.tsx: -------------------------------------------------------------------------------- 1 | import React, { PropsWithChildren } from 'react' 2 | import { YStack } from 'tamagui' 3 | import { LmAppDrawer } from 'app/src/components/layouts/LmAppDrawer' 4 | import { LmAppBar } from 'app/src/components/layouts/LmAppBar' 5 | 6 | export function LmAppShell({ children, title }: PropsWithChildren<{ title?: string }>) { 7 | return ( 8 | 9 | 10 | 18 | {children} 19 | 20 | 21 | 22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /packages/app/src/components/layouts/layoutTypes.ts: -------------------------------------------------------------------------------- 1 | import {PropsWithChildren, ReactNode} from "react"; 2 | 3 | export type LmDashboardShellProps = PropsWithChildren<{ 4 | title: string 5 | rightContent?: ReactNode 6 | }> 7 | 8 | -------------------------------------------------------------------------------- /packages/app/src/components/various/LmThemeToggle.tsx: -------------------------------------------------------------------------------- 1 | import { LmButton, LmButtonProps } from '@tamagui-extras/core' 2 | import { useThemeToggle } from '../../state/themeState' 3 | 4 | type LmThemeSwitchProps = LmButtonProps 5 | 6 | export function LmThemeToggle(props: LmThemeSwitchProps) { 7 | const toggleTheme = useThemeToggle() 8 | 9 | return ( 10 | { 13 | toggleTheme() 14 | }} 15 | {...props} 16 | /> 17 | ) 18 | } 19 | -------------------------------------------------------------------------------- /packages/app/src/features/home/screen.stories.tsx: -------------------------------------------------------------------------------- 1 | import { HomeScreen } from './HomeScreen' 2 | import { Meta, StoryObj } from '@storybook/react' 3 | 4 | const meta = { 5 | title: 'demo/Home', 6 | component: HomeScreen, 7 | parameters: { 8 | docs: {}, 9 | }, 10 | } satisfies Meta 11 | 12 | export default meta 13 | 14 | type Story = StoryObj 15 | export const Home: Story = {} 16 | -------------------------------------------------------------------------------- /packages/app/src/features/icons/IconsScreen.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import { LmAppShell } from 'app/src/components/layouts/LmAppShell' 3 | import { SizableText, XStack } from 'tamagui' 4 | import { QuotesRegular, StarFill, StarRegular } from '@tamagui-extras/core' 5 | 6 | export default function IconsScreen() { 7 | return ( 8 | 9 | Icons 10 | 11 | 12 | 13 | 14 | 15 | 16 | ) 17 | } 18 | -------------------------------------------------------------------------------- /packages/app/src/features/media/MediaScreen.stories.tsx: -------------------------------------------------------------------------------- 1 | import { MediaScreen } from 'app/src/features/media/MediaScreen' 2 | import { Meta, StoryObj } from '@storybook/react' 3 | 4 | const meta = { 5 | title: 'demo/Media', 6 | component: MediaScreen, 7 | } satisfies Meta 8 | 9 | export default meta 10 | 11 | type Story = StoryObj 12 | 13 | export const Media: Story = {} 14 | -------------------------------------------------------------------------------- /packages/app/src/features/media/MediaScreen.tsx: -------------------------------------------------------------------------------- 1 | import { H3, YStack } from 'tamagui' 2 | import { LmAppShell } from 'app/src/components/layouts/LmAppShell' 3 | import { LmVideo } from '@tamagui-extras/video' 4 | import { LmYoutubeEmbed } from '@tamagui-extras/youtube' 5 | 6 | export function MediaScreen() { 7 | return ( 8 | 9 | 10 | 11 |

Video

12 | 17 |
18 | 19 |

Youtube

20 | 21 |
22 |
23 |
24 | ) 25 | } 26 | -------------------------------------------------------------------------------- /packages/app/src/features/overview/overview.stories.tsx: -------------------------------------------------------------------------------- 1 | import { OverviewScreen } from './overview' 2 | 3 | export default { 4 | title: 'demo/overview', 5 | component: OverviewScreen, 6 | } 7 | 8 | export const Overview = () => 9 | -------------------------------------------------------------------------------- /packages/app/src/features/playground/Playground.stories.tsx: -------------------------------------------------------------------------------- 1 | import { PlaygroundScreen } from './playground' 2 | 3 | export default { 4 | title: 'demo/playground', 5 | } 6 | 7 | export const Playground = () => 8 | -------------------------------------------------------------------------------- /packages/app/src/features/playground/util.ts: -------------------------------------------------------------------------------- 1 | export const fruitItemsFixtures = [ 2 | {label: 'Apple'}, 3 | {label: 'Pear'}, 4 | {label: 'Blackberry'}, 5 | {label: 'Peach'}, 6 | {label: 'Apricot'}, 7 | {label: 'Melon'}, 8 | {label: 'Honeydew'}, 9 | {label: 'Starfruit'}, 10 | {label: 'Blueberry'}, 11 | {label: 'Rasberry'}, 12 | {label: 'Strawberry'}, 13 | {label: 'Mango'}, 14 | {label: 'Pineapple'}, 15 | {label: 'Lime'}, 16 | {label: 'Lemon'}, 17 | {label: 'Coconut'}, 18 | {label: 'Guava'}, 19 | {label: 'Papaya'}, 20 | {label: 'Orange'}, 21 | {label: 'Grape'}, 22 | {label: 'Jackfruit'}, 23 | {label: 'Durian'} 24 | ].map(i => ({ 25 | value: i.label, 26 | label: i.label 27 | })) -------------------------------------------------------------------------------- /packages/app/src/fixtures/selectItems.ts: -------------------------------------------------------------------------------- 1 | export const fruitItemsFixtures = [ 2 | {label: 'Apple'}, 3 | {label: 'Pear'}, 4 | {label: 'Blackberry'}, 5 | {label: 'Peach'}, 6 | {label: 'Apricot'}, 7 | {label: 'Melon'}, 8 | {label: 'Honeydew'}, 9 | {label: 'Starfruit'}, 10 | {label: 'Blueberry'}, 11 | {label: 'Rasberry'}, 12 | {label: 'Strawberry'}, 13 | {label: 'Mango'}, 14 | {label: 'Pineapple'}, 15 | {label: 'Lime'}, 16 | {label: 'Lemon'}, 17 | {label: 'Coconut'}, 18 | {label: 'Guava'}, 19 | {label: 'Papaya'}, 20 | {label: 'Orange'}, 21 | {label: 'Grape'}, 22 | {label: 'Jackfruit'}, 23 | {label: 'Durian'} 24 | ].map(i => ({ 25 | value: i.label, 26 | label: i.label 27 | })) -------------------------------------------------------------------------------- /packages/app/src/lib/fixtures/selectItems.ts: -------------------------------------------------------------------------------- 1 | export const fruitItemsFixtures = [ 2 | {label: 'Apple'}, 3 | {label: 'Pear'}, 4 | {label: 'Blackberry'}, 5 | {label: 'Peach'}, 6 | {label: 'Apricot'}, 7 | {label: 'Melon'}, 8 | {label: 'Honeydew'}, 9 | {label: 'Starfruit'}, 10 | {label: 'Blueberry'}, 11 | {label: 'Rasberry'}, 12 | {label: 'Strawberry'}, 13 | {label: 'Mango'}, 14 | {label: 'Pineapple'}, 15 | {label: 'Lime'}, 16 | {label: 'Lemon'}, 17 | {label: 'Coconut'}, 18 | {label: 'Guava'}, 19 | {label: 'Papaya'}, 20 | {label: 'Orange'}, 21 | {label: 'Grape'}, 22 | {label: 'Jackfruit'}, 23 | {label: 'Durian'} 24 | ].map(i => ({ 25 | value: i.label, 26 | label: i.label 27 | })) -------------------------------------------------------------------------------- /packages/app/src/navigation/routerConfig.ts: -------------------------------------------------------------------------------- 1 | export type RouterNavigationProps = { 2 | home: undefined 3 | overview: undefined 4 | dashboard: undefined 5 | playground: undefined 6 | settings: undefined 7 | }; 8 | 9 | export type RouterScreenProps = { 10 | [K in keyof RouterNavigationProps]: string; 11 | }; 12 | 13 | export const nativeScreens = { 14 | home: '', 15 | overview: 'overview', 16 | dashboard: 'dashboard', 17 | playground: 'playground' 18 | } as RouterScreenProps -------------------------------------------------------------------------------- /packages/app/src/navigation/useOnRouteChange.ts: -------------------------------------------------------------------------------- 1 | import {useNavigationState} from '@react-navigation/native'; 2 | import {useEffect} from "react"; 3 | 4 | export function useOnRouteChange(func: () => void) { 5 | const routeIndex = useNavigationState(state => state?.index); 6 | useEffect( 7 | () => { 8 | if (Number.isInteger(routeIndex)) { 9 | func() 10 | } 11 | }, 12 | [routeIndex] 13 | ) 14 | 15 | return null 16 | } 17 | -------------------------------------------------------------------------------- /packages/app/src/navigation/useOnRouteChange.web.ts: -------------------------------------------------------------------------------- 1 | import {useRouter} from "next/compat/router"; 2 | import {useEffect} from "react"; 3 | 4 | export function useOnRouteChange(func: () => void) { 5 | const {asPath} = useRouter() || {} 6 | useEffect( 7 | () => { 8 | if (asPath) { 9 | func() 10 | } 11 | }, 12 | [asPath] 13 | ) 14 | return null 15 | } 16 | -------------------------------------------------------------------------------- /packages/app/src/navigation/useParam.ts: -------------------------------------------------------------------------------- 1 | import {createParam} from 'solito' 2 | 3 | const {useParam} = createParam() 4 | 5 | export const useRouteParam = (param: string, pickFirst?: boolean): [string | string[] | undefined, (val: string) => void] => { 6 | const [value, setParam] = useParam(param) 7 | const parsedValue = pickFirst ? value?.[0] : value 8 | return [parsedValue, setParam] 9 | } 10 | -------------------------------------------------------------------------------- /packages/app/src/provider/LmTamaguiProvider.tsx: -------------------------------------------------------------------------------- 1 | import { TamaguiProvider, TamaguiProviderProps } from 'tamagui' 2 | import config from '../../tamagui.config' 3 | import { useThemeNameState } from 'app/src/state/themeState' 4 | 5 | type LmTamaguiProviderProps = Omit 6 | 7 | export function LmTamaguiProvider({ children, ...rest }: LmTamaguiProviderProps) { 8 | const theme = useThemeNameState(rest.defaultTheme as any) 9 | return ( 10 | 16 | {children} 17 | 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /packages/app/src/provider/StorybookDecorator.tsx: -------------------------------------------------------------------------------- 1 | import { LmTamaguiProvider } from './LmTamaguiProvider' 2 | import { YStack } from 'tamagui' 3 | 4 | export const StorybookDecorator = (Story, args: any) => { 5 | // The theme global we just declared 6 | const { theme: themeKey } = args.globals 7 | // const name = useThemeState((state) => state.name) 8 | let theme = themeKey 9 | if (!theme && window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { 10 | // dark mode 11 | theme = 'dark' 12 | } 13 | return ( 14 | <> 15 | 16 | 17 | 18 | 19 | 20 | 21 | ) 22 | } 23 | -------------------------------------------------------------------------------- /packages/app/src/provider/index.tsx: -------------------------------------------------------------------------------- 1 | import { TamaguiProviderProps } from 'tamagui' 2 | import { LmTamaguiProvider } from './LmTamaguiProvider' 3 | 4 | export function Provider({ children, ...rest }: Omit) { 5 | return {children} 6 | } 7 | -------------------------------------------------------------------------------- /packages/app/src/provider/safe-area/SaveAreaProvider.tsx: -------------------------------------------------------------------------------- 1 | export { SafeAreaProvider as SafeArea } from 'react-native-safe-area-context' 2 | -------------------------------------------------------------------------------- /packages/app/src/provider/safe-area/SaveAreaProvider.web.tsx: -------------------------------------------------------------------------------- 1 | import { PropsWithChildren } from 'react' 2 | 3 | export function SafeArea({ children }: PropsWithChildren) { 4 | return <>{children} 5 | } 6 | -------------------------------------------------------------------------------- /packages/app/src/state/appState.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | 3 | type AppState = { 4 | isMainDrawerOpen: boolean 5 | toggleMainDrawer: () => void 6 | setMainDrawer: (bool: boolean) => void 7 | } 8 | 9 | export const useAppState = create((set) => ({ 10 | isMainDrawerOpen: false, 11 | toggleMainDrawer: () => 12 | set((state) => ({ 13 | isMainDrawerOpen: !state.isMainDrawerOpen, 14 | })), 15 | setMainDrawer: (bool) => set({ isMainDrawerOpen: bool }), 16 | })) 17 | 18 | export const useToggleMainDrawer = () => useAppState((state) => state.toggleMainDrawer) 19 | -------------------------------------------------------------------------------- /packages/app/src/state/themeState.ts: -------------------------------------------------------------------------------- 1 | import { create } from 'zustand' 2 | import { shallow } from 'zustand/shallow' 3 | 4 | type ThemeVars = 'dark' | 'light' 5 | type Theme = { 6 | name?: ThemeVars 7 | changeTheme: (name: ThemeVars) => void 8 | toggleTheme: () => void 9 | } 10 | 11 | export const useThemeState = create((set) => ({ 12 | changeTheme: (name) => set({ name }), 13 | toggleTheme: () => 14 | set((state) => ({ 15 | name: state.name === 'dark' ? 'light' : 'dark', 16 | })), 17 | })) 18 | 19 | export const useThemeNameState = (defaultName?: ThemeVars) => { 20 | const name = useThemeState((state) => state.name, shallow) 21 | return name || defaultName 22 | } 23 | 24 | export const useThemeToggle = () => useThemeState((state) => state.toggleTheme, shallow) 25 | -------------------------------------------------------------------------------- /packages/app/src/stories/core/content/LmImage.stories.tsx: -------------------------------------------------------------------------------- 1 | import { LmImage } from '../../../../../core/src' 2 | 3 | export default { 4 | title: 'core/Content/Image', 5 | component: LmImage, 6 | } 7 | const imageSrc = 'https://placekitten.com/400/300' 8 | 9 | export const Basic = { 10 | args: { 11 | width: 400, 12 | height: 300, 13 | src: imageSrc, 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /packages/app/src/stories/date/LmMonthPicker.stories.tsx: -------------------------------------------------------------------------------- 1 | import { LmMonthsPicker } from '../../../../date/src' 2 | 3 | export default { 4 | title: 'date/Months Picker', 5 | component: LmMonthsPicker, 6 | } 7 | 8 | export const Basic = { 9 | args: { 10 | label: 'Month Picker', 11 | }, 12 | } 13 | 14 | export const BasicInline = { 15 | args: { 16 | label: 'Month Picker', 17 | labelInline: true, 18 | }, 19 | } 20 | 21 | export const Size = { 22 | args: { 23 | label: 'Month Picker', 24 | size: '$6', 25 | width: 250, 26 | }, 27 | } 28 | -------------------------------------------------------------------------------- /packages/app/src/stories/file/LmFile.stories.tsx: -------------------------------------------------------------------------------- 1 | import { action } from '@storybook/addon-actions' 2 | import { LmFile } from '../../../../file/src' 3 | import { Meta, StoryObj } from '@storybook/react' 4 | 5 | const meta = { 6 | title: 'file/File Picker', 7 | component: LmFile, 8 | } satisfies Meta 9 | export default meta 10 | 11 | type Story = StoryObj 12 | 13 | export const Basic: Story = { 14 | args: { 15 | onUpload: action('upload'), 16 | }, 17 | } 18 | 19 | export const DirectUpload = { 20 | args: { 21 | pickerButtonProps: { 22 | label: 'Choose Avatar', 23 | }, 24 | directUpload: true, 25 | onUpload: action('upload'), 26 | }, 27 | } 28 | -------------------------------------------------------------------------------- /packages/app/src/stories/form/FormDecorator.tsx: -------------------------------------------------------------------------------- 1 | import { LmFormRhfProvider } from '../../../../form/src' 2 | 3 | export const StorybookRhfDecorator = (Story) => ( 4 | 5 | 6 | 7 | ) 8 | -------------------------------------------------------------------------------- /packages/app/src/stories/rich-text/LmRichText.stories.tsx: -------------------------------------------------------------------------------- 1 | import { LmRichTextRhf } from '@tamagui-extras/rich-text' 2 | import { LmFormRhfProvider, LmSubmitButtonRhf } from '@tamagui-extras/form' 3 | 4 | export default { 5 | title: 'richText/TipTap Editor', 6 | component: LmRichTextRhf, 7 | } 8 | 9 | export const Basic = () => ( 10 | 11 | 12 | 13 | ) 14 | 15 | export const Multiple = () => ( 16 | Hello World

This is some preset text...

' }} 18 | > 19 | 20 | 21 | console.log(form)}>Submit 22 |
23 | ) 24 | -------------------------------------------------------------------------------- /packages/app/src/stories/youtube/LmVideoEmbed.stories.tsx: -------------------------------------------------------------------------------- 1 | import { LmYoutubeEmbed } from '@tamagui-extras/youtube' 2 | import { Meta, StoryObj } from '@storybook/react' 3 | import { H3, YStack } from 'tamagui' 4 | 5 | const meta = { 6 | title: 'youtube/Youtube Embed', 7 | component: LmYoutubeEmbed, 8 | } satisfies Meta 9 | 10 | export default meta 11 | 12 | type Story = StoryObj 13 | 14 | export const Youtube: Story = { 15 | args: { 16 | youtubeId: 'JxS5E-kZc2s', 17 | }, 18 | } 19 | 20 | export const AspectRatio = () => ( 21 | 22 |

Parent Container: 300x600

23 | 24 | 25 |
26 | ) 27 | -------------------------------------------------------------------------------- /packages/app/tamagui.config.ts: -------------------------------------------------------------------------------- 1 | import { config } from '@tamagui-extras/config' 2 | 3 | export type Conf = typeof config 4 | 5 | declare module 'tamagui' { 6 | interface TamaguiCustomConfig extends Conf {} 7 | } 8 | 9 | export default config 10 | -------------------------------------------------------------------------------- /packages/app/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base", 3 | "include": [ 4 | "src" 5 | ], 6 | "compilerOptions": { 7 | "composite": true, 8 | "jsx": "react-jsx" 9 | }, 10 | "references": [] 11 | } 12 | -------------------------------------------------------------------------------- /packages/config/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tamagui-extras/config", 3 | "version": "1.8.1", 4 | "license": "MIT", 5 | "author": "Dominic Garms", 6 | "repository": "https://github.com/dohomi/tamagui-kitchen-sink", 7 | "homepage": "https://tamagui-extras.vercel.app", 8 | "main": "src/index.ts", 9 | "dependencies": { 10 | "@tamagui/animations-react-native": "^1.92.1", 11 | "@tamagui/config": "^1.92.1", 12 | "@tamagui/font-inter": "^1.92.1", 13 | "@tamagui/react-native-media-driver": "^1.92.1", 14 | "@tamagui/shorthands": "^1.92.1", 15 | "@tamagui/themes": "^1.92.1", 16 | "tamagui": "^1.92.1" 17 | }, 18 | "publishConfig": { 19 | "access": "public" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/config/src/animations.ts: -------------------------------------------------------------------------------- 1 | import { createAnimations } from '@tamagui/animations-react-native' 2 | 3 | export const animations = createAnimations({ 4 | bouncy: { 5 | type: 'spring', 6 | damping: 10, 7 | mass: 0.9, 8 | stiffness: 100, 9 | }, 10 | lazy: { 11 | type: 'spring', 12 | damping: 20, 13 | stiffness: 60, 14 | }, 15 | quick: { 16 | type: 'spring', 17 | damping: 20, 18 | mass: 1.2, 19 | stiffness: 250, 20 | }, 21 | }) 22 | -------------------------------------------------------------------------------- /packages/config/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tamagui.config' 2 | -------------------------------------------------------------------------------- /packages/core/.gitignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | .DS_Store 3 | THUMBS_DB 4 | node_modules/ 5 | types/ 6 | -------------------------------------------------------------------------------- /packages/core/src/core/content/LmAspectRatio.tsx: -------------------------------------------------------------------------------- 1 | import {styled, ThemeableStack} from "tamagui"; 2 | 3 | export const LmAspectRatio = styled(ThemeableStack, {}) -------------------------------------------------------------------------------- /packages/core/src/core/content/LmImage.tsx: -------------------------------------------------------------------------------- 1 | import { Image, ImageProps, Stack } from 'tamagui' 2 | 3 | export type LmImageProps = ImageProps 4 | 5 | export function LmImage({ aspectRatio, ...props }: LmImageProps) { 6 | if (aspectRatio) { 7 | return ( 8 | 9 | 16 | 17 | ) 18 | } 19 | return 20 | } 21 | -------------------------------------------------------------------------------- /packages/core/src/core/content/LmSkeleton.tsx: -------------------------------------------------------------------------------- 1 | import {Spinner, Stack} from "tamagui"; 2 | 3 | export function LmSkeleton() { 4 | return ( 5 | 7 | 8 | 9 | ) 10 | } -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/CaretDown.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Polyline as _Polyline, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Polyline 11 | points="208 96 128 176 48 96" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'CaretDownRegular' 22 | const CaretDownRegular = memo(themed(Icon)) 23 | export { CaretDownRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/CaretLeft.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Polyline as _Polyline, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Polyline 11 | points="160 208 80 128 160 48" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'CaretLeftRegular' 22 | const CaretLeftRegular = memo(themed(Icon)) 23 | export { CaretLeftRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/CaretRight.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Polyline as _Polyline, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Polyline 11 | points="96 48 176 128 96 208" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'CaretRightRegular' 22 | const CaretRightRegular = memo(themed(Icon)) 23 | export { CaretRightRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/CaretUp.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Polyline as _Polyline, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Polyline 11 | points="48 160 128 80 208 160" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'CaretUpRegular' 22 | const CaretUpRegular = memo(themed(Icon)) 23 | export { CaretUpRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/Check.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Polyline as _Polyline, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Polyline 11 | points="216 72 104 184 48 128" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'CheckRegular' 22 | const CheckRegular = memo(themed(Icon)) 23 | export { CheckRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/IconProps.tsx: -------------------------------------------------------------------------------- 1 | import { ColorTokens, SizeTokens, ThemeTokens } from '@tamagui/core' 2 | import { SvgProps } from 'react-native-svg' 3 | 4 | export type IconContextProps = { 5 | size?: number | SizeTokens 6 | color?: (ColorTokens | ThemeTokens) | null 7 | style?: any 8 | weight?: 'thin' | 'light' | 'regular' | 'bold' | 'fill' | 'duotone' 9 | } 10 | 11 | export type IconProps = SvgProps & IconContextProps 12 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/Minus.tsx: -------------------------------------------------------------------------------- 1 | import React, { memo } from 'react' 2 | import { Line as _Line, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | 4 | import { themed } from './themed' 5 | import { IconProps } from './IconProps' 6 | 7 | const Icon = (props: IconProps) => { 8 | const { color = 'black', size = 24, ...otherProps } = props 9 | return ( 10 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 11 | <_Rect width="256" height="256" fill="none" /> 12 | <_Line 13 | x1="40" 14 | y1="128" 15 | x2="216" 16 | y2="128" 17 | fill="none" 18 | stroke={`${color}`} 19 | strokeLinecap="round" 20 | strokeLinejoin="round" 21 | strokeWidth="16" 22 | /> 23 | 24 | ) 25 | } 26 | 27 | Icon.displayName = 'MinusRegular' 28 | 29 | export const MinusRegular = memo(themed(Icon)) 30 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/Square.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Rect 11 | x="40" 12 | y="40" 13 | width="176" 14 | height="176" 15 | rx="8" 16 | fill="none" 17 | stroke={`${color}`} 18 | strokeLinecap="round" 19 | strokeLinejoin="round" 20 | strokeWidth="16" 21 | /> 22 | 23 | ) 24 | } 25 | Icon.displayName = 'SquareRegular' 26 | const SquareRegular = memo(themed(Icon)) 27 | export { SquareRegular } 28 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/StarFill.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Path as _Path, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size} fill={`${color}`}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Path d="M239.2,97.4A16.4,16.4,0,0,0,224.6,86l-59.4-4.1-22-55.5A16.4,16.4,0,0,0,128,16h0a16.4,16.4,0,0,0-15.2,10.4L90.4,82.2,31.4,86A16.5,16.5,0,0,0,16.8,97.4,16.8,16.8,0,0,0,22,115.5l45.4,38.4L53.9,207a18.5,18.5,0,0,0,7,19.6,18,18,0,0,0,20.1.6l46.9-29.7h.2l50.5,31.9a16.1,16.1,0,0,0,8.7,2.6,16.5,16.5,0,0,0,15.8-20.8l-14.3-58.1L234,115.5A16.8,16.8,0,0,0,239.2,97.4Z" /> 11 | 12 | ) 13 | } 14 | Icon.displayName = 'StarFill' 15 | const StarFill = memo(themed(Icon)) 16 | export { StarFill } 17 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/TextBolder.tsx: -------------------------------------------------------------------------------- 1 | import { memo } from 'react' 2 | import { Path as _Path, Rect as _Rect, Svg as _Svg } from 'react-native-svg' 3 | import { themed } from './themed' 4 | 5 | const Icon = (props) => { 6 | const { color = 'black', size = 24, ...otherProps } = props 7 | return ( 8 | <_Svg viewBox="0 0 256 256" {...otherProps} height={size} width={size}> 9 | <_Rect width="256" height="256" fill="none" /> 10 | <_Path 11 | d="M64,120h88a40,40,0,0,1,0,80H64V48h76a36,36,0,0,1,0,72" 12 | fill="none" 13 | stroke={`${color}`} 14 | strokeLinecap="round" 15 | strokeLinejoin="round" 16 | strokeWidth="16" 17 | /> 18 | 19 | ) 20 | } 21 | Icon.displayName = 'TextBolderRegular' 22 | const TextBolderRegular = memo(themed(Icon)) 23 | export { TextBolderRegular } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/icons/themed.tsx: -------------------------------------------------------------------------------- 1 | import { getTokens, getVariable, getVariableValue, useProps, useTheme } from 'tamagui' 2 | import React from 'react' 3 | 4 | export function themed(Component: A) { 5 | const wrapped = (propsIn: any) => { 6 | const props = useProps(propsIn) 7 | const theme = useTheme() 8 | const color = getVariable( 9 | (props.color in theme ? theme[props.color] : undefined) || 10 | props.color || 11 | (!props.disableTheme ? theme.color : null) || 12 | '#000' 13 | ) 14 | const size = 15 | typeof props.size === 'string' 16 | ? getVariableValue(getTokens().size[props.size] || props.size) 17 | : props.size 18 | 19 | // @ts-ignore 20 | return 21 | } 22 | return wrapped as unknown as A 23 | } 24 | -------------------------------------------------------------------------------- /packages/core/src/core/content/index.ts: -------------------------------------------------------------------------------- 1 | export * from './LmAlert' 2 | export * from './LmAvatar' 3 | export * from './LmCard' 4 | export * from './LmImage' 5 | export * from './LmSkeleton' 6 | export * from './LmGrid' 7 | -------------------------------------------------------------------------------- /packages/core/src/core/form/LmButton.tsx: -------------------------------------------------------------------------------- 1 | import { Button, ButtonProps, Spinner, TamaguiComponent } from 'tamagui' 2 | import { colormap, ThemeColors } from '../themeMappings' 3 | import { forwardRef } from 'react' 4 | 5 | export type LmButtonProps = ButtonProps & { 6 | colorVariant?: ThemeColors 7 | loading?: boolean 8 | } 9 | 10 | export const LmButton = forwardRef(function LmButtonFunc( 11 | { loading, colorVariant, ...props }: LmButtonProps, 12 | ref 13 | ) { 14 | const { theme } = props 15 | return ( 16 |