Add a primitive package

This commit is contained in:
Zoe Roux 2022-11-04 01:05:34 +09:00
parent c64c34a9fb
commit e92e7758e7
No known key found for this signature in database
GPG Key ID: B2AB52A2636E5C46
13 changed files with 380 additions and 18 deletions

View File

@ -5,3 +5,18 @@ plugins:
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.2.4.cjs
packageExtensions:
"@expo/cli@*":
dependencies:
expo-modules-autolinking: "*"
"expo-asset@*":
dependencies:
expo: "*"
"babel-preset-expo@*":
dependencies:
"@babel/core": "*"
"react-native-codegen@*":
peerDependenciesMeta:
"@babel/preset-env":
optional: true

View File

@ -6,6 +6,7 @@ COPY package.json yarn.lock ./
COPY apps/web/package.json apps/web/package.json
COPY apps/mobile/package.json apps/mobile/package.json
COPY packages/ui/package.json packages/ui/package.json
COPY packages/primitives/package.json packages/primitives/package.json
RUN yarn --immutable
COPY . .

View File

@ -6,8 +6,10 @@ COPY package.json yarn.lock ./
COPY apps/web/package.json apps/web/package.json
COPY apps/mobile/package.json apps/mobile/package.json
COPY packages/ui/package.json packages/ui/package.json
COPY packages/primitives/package.json packages/primitives/package.json
RUN yarn --immutable
ENV NEXT_TELEMETRY_DISABLED 1
EXPOSE 3000
EXPOSE 19000
CMD ["yarn", "dev"]

View File

@ -9,12 +9,14 @@
"web": "expo start --web"
},
"dependencies": {
"@expo/html-elements": "^0.2.0",
"@kyoo/ui": "workspace:^",
"expo": "~46.0.16",
"expo-status-bar": "~1.4.0",
"react": "18.0.0",
"react-dom": "18.0.0",
"react-native": "0.69.6",
"react-native-svg": "12.3.0",
"react-native-web": "~0.18.7"
},
"devDependencies": {

View File

@ -1,13 +1,31 @@
/*
* Kyoo - A portable and vast media library solution.
* Copyright (c) Kyoo.
*
* See AUTHORS.md and LICENSE file in the project root for full license information.
*
* Kyoo is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* Kyoo is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Kyoo. If not, see <https://www.gnu.org/licenses/>.
*/
import { StatusBar } from "expo-status-bar";
import { StyleSheet, Text, View } from "react-native";
import { registerRootComponent } from "expo";
import { Toto } from "@kyoo/ui";
function App() {
return (
<View style={styles.container}>
<Text>Open up App.tsx to start working on your app!</Text>
<Toto />
<StatusBar style="auto" />
</View>
);

View File

@ -20,7 +20,7 @@
const path = require("path");
const CopyPlugin = require("copy-webpack-plugin");
const withTM = require("next-transpile-modules")(["@kyoo/ui"]);
const withTM = require("next-transpile-modules")(["@kyoo/ui", "@kyoo/primitives"]);
const suboctopus = path.dirname(require.resolve("@jellyfin/libass-wasm"));

View File

@ -13,6 +13,7 @@
"dependencies": {
"@emotion/react": "^11.9.3",
"@emotion/styled": "^11.9.3",
"@expo/html-elements": "^0.2.0",
"@jellyfin/libass-wasm": "^4.1.1",
"@kyoo/ui": "workspace:^",
"@mui/icons-material": "^5.8.4",

View File

@ -31,7 +31,6 @@ import Head from "next/head";
import { useMobileHover } from "~/utils/utils";
import { catppuccin } from "~/utils/themes/catppuccin";
import { selectMode } from "~/utils/themes/theme";
import { Toto } from "@kyoo/ui";
// Simply silence a SSR warning (see https://github.com/facebook/react/issues/14927 for more details)
if (typeof window === "undefined") {
@ -94,7 +93,6 @@ const App = ({ Component, pageProps }: AppProps) => {
<Hydrate state={queryState}>
<ThemeSelector>
<GlobalCssTheme />
<Toto />
{getLayout(<Component {...props} />)}
</ThemeSelector>
</Hydrate>

View File

@ -0,0 +1,24 @@
{
"name": "@kyoo/primitives",
"main": "src/index.tsx",
"types": "src/index.tsx",
"packageManager": "yarn@3.2.4",
"devDependencies": {
"@types/react": "^18.0.24",
"typescript": "^4.8.4"
},
"peerDependencies": {
"@expo/html-elements": "*",
"react": "*",
"react-native": "*",
"react-native-web": "*"
},
"peerDependenciesMeta": {
"react-native": {
"optional": true
},
"react-native-web": {
"optional": true
}
}
}

View File

@ -0,0 +1,26 @@
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"declaration": true,
"sourceMap": true,
"noEmit": true,
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-native",
"incremental": true,
"baseUrl": ".",
"paths": {
"~/*": ["src/*"]
}
},
"include": ["**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}

View File

@ -3,11 +3,17 @@
"main": "src/index.tsx",
"types": "src/index.tsx",
"packageManager": "yarn@3.2.4",
"dependencies": {
"@kyoo/primitives": "workspace:^",
"react-native-svg": "^13.5.0"
},
"devDependencies": {
"@types/react": "^18.0.24",
"typescript": "^4.8.4"
},
"peerDependencies": {
"@emotion/react": "*",
"@expo/html-elements": "*",
"react": "*",
"react-native": "*",
"react-native-web": "*"
@ -19,8 +25,5 @@
"react-native-web": {
"optional": true
}
},
"dependencies": {
"@emotion/react": "^11.10.5"
}
}

View File

@ -1,5 +0,0 @@
import { Button } from "react-native";
export const Toto = () => {
return <Button title="test"></Button>;
}

View File

@ -40,7 +40,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.19.6":
"@babel/core@npm:*, @babel/core@npm:^7.13.16, @babel/core@npm:^7.14.0, @babel/core@npm:^7.19.6":
version: 7.19.6
resolution: "@babel/core@npm:7.19.6"
dependencies:
@ -1540,6 +1540,33 @@ __metadata:
languageName: node
linkType: hard
"@emotion/native@npm:^11.10.0":
version: 11.10.0
resolution: "@emotion/native@npm:11.10.0"
dependencies:
"@emotion/primitives-core": ^11.10.0
peerDependencies:
"@babel/core": ^7.0.0
react-native: ">=0.14.0 <1"
peerDependenciesMeta:
"@babel/core":
optional: true
checksum: d3a48cd53f5ea54f306cefa46be9068bde0fe16375d430846015d0c6ef7e082473ca8fd49450f4a97e14fd5980d5016e71e09d741946e62dd1f451bc45b594a3
languageName: node
linkType: hard
"@emotion/primitives-core@npm:^11.10.0":
version: 11.10.0
resolution: "@emotion/primitives-core@npm:11.10.0"
dependencies:
css-to-react-native: ^3.0.0
peerDependencies:
"@emotion/react": ^11.0.0-rc.0
react: ">=16.8.0"
checksum: bf7f50843351527a084b584ba0601e247b89625d0a149b9e3a53fd0a76d3caecc07bd518c30670bde0d9fa2fd3abf908ccf6cf0e8d0775429ff997f39bda89c7
languageName: node
linkType: hard
"@emotion/react@npm:^11.10.5, @emotion/react@npm:^11.9.3":
version: 11.10.5
resolution: "@emotion/react@npm:11.10.5"
@ -1867,6 +1894,13 @@ __metadata:
languageName: node
linkType: hard
"@expo/html-elements@npm:^0.2.0":
version: 0.2.2
resolution: "@expo/html-elements@npm:0.2.2"
checksum: c3b754f8a32bf1705fa9330b058d52e003b6572ad2c7752aff7b1085c0a43aa59d3483d9f7e2e2aab5715f29401972a589b6081cff017cf690c06f6e9820269c
languageName: node
linkType: hard
"@expo/image-utils@npm:0.3.22":
version: 0.3.22
resolution: "@expo/image-utils@npm:0.3.22"
@ -2221,14 +2255,37 @@ __metadata:
languageName: node
linkType: hard
"@kyoo/primitives@workspace:^, @kyoo/primitives@workspace:packages/primitives":
version: 0.0.0-use.local
resolution: "@kyoo/primitives@workspace:packages/primitives"
dependencies:
"@types/react": ^18.0.24
typescript: ^4.8.4
peerDependencies:
"@emotion/react": "*"
"@expo/html-elements": "*"
react: "*"
react-native: "*"
react-native-web: "*"
peerDependenciesMeta:
react-native:
optional: true
react-native-web:
optional: true
languageName: unknown
linkType: soft
"@kyoo/ui@workspace:^, @kyoo/ui@workspace:packages/ui":
version: 0.0.0-use.local
resolution: "@kyoo/ui@workspace:packages/ui"
dependencies:
"@emotion/react": ^11.10.5
"@kyoo/primitives": "workspace:^"
"@types/react": ^18.0.24
react-native-svg: ^13.5.0
typescript: ^4.8.4
peerDependencies:
"@emotion/react": "*"
"@expo/html-elements": "*"
react: "*"
react-native: "*"
react-native-web: "*"
@ -4073,6 +4130,13 @@ __metadata:
languageName: node
linkType: hard
"boolbase@npm:^1.0.0":
version: 1.0.0
resolution: "boolbase@npm:1.0.0"
checksum: 3e25c80ef626c3a3487c73dbfc70ac322ec830666c9ad915d11b701142fab25ec1e63eff2c450c74347acfd2de854ccde865cd79ef4db1683f7c7b046ea43bb0
languageName: node
linkType: hard
"bplist-creator@npm:0.1.1":
version: 0.1.1
resolution: "bplist-creator@npm:0.1.1"
@ -4347,6 +4411,13 @@ __metadata:
languageName: node
linkType: hard
"camelize@npm:^1.0.0":
version: 1.0.1
resolution: "camelize@npm:1.0.1"
checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99
languageName: node
linkType: hard
"caniuse-lite@npm:^1.0.30001332, caniuse-lite@npm:^1.0.30001400":
version: 1.0.30001427
resolution: "caniuse-lite@npm:1.0.30001427"
@ -4849,6 +4920,13 @@ __metadata:
languageName: node
linkType: hard
"css-color-keywords@npm:^1.0.0":
version: 1.0.0
resolution: "css-color-keywords@npm:1.0.0"
checksum: 8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408
languageName: node
linkType: hard
"css-in-js-utils@npm:^2.0.0":
version: 2.0.1
resolution: "css-in-js-utils@npm:2.0.1"
@ -4859,6 +4937,60 @@ __metadata:
languageName: node
linkType: hard
"css-select@npm:^4.2.1":
version: 4.3.0
resolution: "css-select@npm:4.3.0"
dependencies:
boolbase: ^1.0.0
css-what: ^6.0.1
domhandler: ^4.3.1
domutils: ^2.8.0
nth-check: ^2.0.1
checksum: d6202736839194dd7f910320032e7cfc40372f025e4bf21ca5bf6eb0a33264f322f50ba9c0adc35dadd342d3d6fae5ca244779a4873afbfa76561e343f2058e0
languageName: node
linkType: hard
"css-select@npm:^5.1.0":
version: 5.1.0
resolution: "css-select@npm:5.1.0"
dependencies:
boolbase: ^1.0.0
css-what: ^6.1.0
domhandler: ^5.0.2
domutils: ^3.0.1
nth-check: ^2.0.1
checksum: 2772c049b188d3b8a8159907192e926e11824aea525b8282981f72ba3f349cf9ecd523fdf7734875ee2cb772246c22117fc062da105b6d59afe8dcd5c99c9bda
languageName: node
linkType: hard
"css-to-react-native@npm:^3.0.0":
version: 3.0.0
resolution: "css-to-react-native@npm:3.0.0"
dependencies:
camelize: ^1.0.0
css-color-keywords: ^1.0.0
postcss-value-parser: ^4.0.2
checksum: 98a2e9d4fbe9cabc8b744dfdd5ec108396ce497a7b860912a95b299bd52517461281810fcb707965a021a8be39adca9587184a26fb4e926211391a1557aca3c1
languageName: node
linkType: hard
"css-tree@npm:^1.0.0-alpha.39, css-tree@npm:^1.1.3":
version: 1.1.3
resolution: "css-tree@npm:1.1.3"
dependencies:
mdn-data: 2.0.14
source-map: ^0.6.1
checksum: 79f9b81803991b6977b7fcb1588799270438274d89066ce08f117f5cdb5e20019b446d766c61506dd772c839df84caa16042d6076f20c97187f5abe3b50e7d1f
languageName: node
linkType: hard
"css-what@npm:^6.0.1, css-what@npm:^6.1.0":
version: 6.1.0
resolution: "css-what@npm:6.1.0"
checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe
languageName: node
linkType: hard
"csstype@npm:^3.0.2, csstype@npm:^3.1.1":
version: 3.1.1
resolution: "csstype@npm:3.1.1"
@ -5134,6 +5266,75 @@ __metadata:
languageName: node
linkType: hard
"dom-serializer@npm:^1.0.1":
version: 1.4.1
resolution: "dom-serializer@npm:1.4.1"
dependencies:
domelementtype: ^2.0.1
domhandler: ^4.2.0
entities: ^2.0.0
checksum: fbb0b01f87a8a2d18e6e5a388ad0f7ec4a5c05c06d219377da1abc7bb0f674d804f4a8a94e3f71ff15f6cb7dcfc75704a54b261db672b9b3ab03da6b758b0b22
languageName: node
linkType: hard
"dom-serializer@npm:^2.0.0":
version: 2.0.0
resolution: "dom-serializer@npm:2.0.0"
dependencies:
domelementtype: ^2.3.0
domhandler: ^5.0.2
entities: ^4.2.0
checksum: cd1810544fd8cdfbd51fa2c0c1128ec3a13ba92f14e61b7650b5de421b88205fd2e3f0cc6ace82f13334114addb90ed1c2f23074a51770a8e9c1273acbc7f3e6
languageName: node
linkType: hard
"domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0":
version: 2.3.0
resolution: "domelementtype@npm:2.3.0"
checksum: ee837a318ff702622f383409d1f5b25dd1024b692ef64d3096ff702e26339f8e345820f29a68bcdcea8cfee3531776b3382651232fbeae95612d6f0a75efb4f6
languageName: node
linkType: hard
"domhandler@npm:^4.2.0, domhandler@npm:^4.3.1":
version: 4.3.1
resolution: "domhandler@npm:4.3.1"
dependencies:
domelementtype: ^2.2.0
checksum: 4c665ceed016e1911bf7d1dadc09dc888090b64dee7851cccd2fcf5442747ec39c647bb1cb8c8919f8bbdd0f0c625a6bafeeed4b2d656bbecdbae893f43ffaaa
languageName: node
linkType: hard
"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2":
version: 5.0.3
resolution: "domhandler@npm:5.0.3"
dependencies:
domelementtype: ^2.3.0
checksum: 0f58f4a6af63e6f3a4320aa446d28b5790a009018707bce2859dcb1d21144c7876482b5188395a188dfa974238c019e0a1e610d2fc269a12b2c192ea2b0b131c
languageName: node
linkType: hard
"domutils@npm:^2.8.0":
version: 2.8.0
resolution: "domutils@npm:2.8.0"
dependencies:
dom-serializer: ^1.0.1
domelementtype: ^2.2.0
domhandler: ^4.2.0
checksum: abf7434315283e9aadc2a24bac0e00eab07ae4313b40cc239f89d84d7315ebdfd2fb1b5bf750a96bc1b4403d7237c7b2ebf60459be394d625ead4ca89b934391
languageName: node
linkType: hard
"domutils@npm:^3.0.1":
version: 3.0.1
resolution: "domutils@npm:3.0.1"
dependencies:
dom-serializer: ^2.0.0
domelementtype: ^2.3.0
domhandler: ^5.0.1
checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3
languageName: node
linkType: hard
"ee-first@npm:1.1.1":
version: 1.1.1
resolution: "ee-first@npm:1.1.1"
@ -5197,6 +5398,20 @@ __metadata:
languageName: node
linkType: hard
"entities@npm:^2.0.0":
version: 2.2.0
resolution: "entities@npm:2.2.0"
checksum: 19010dacaf0912c895ea262b4f6128574f9ccf8d4b3b65c7e8334ad0079b3706376360e28d8843ff50a78aabcb8f08f0a32dbfacdc77e47ed77ca08b713669b3
languageName: node
linkType: hard
"entities@npm:^4.2.0":
version: 4.4.0
resolution: "entities@npm:4.4.0"
checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2
languageName: node
linkType: hard
"env-editor@npm:^0.4.1":
version: 0.4.2
resolution: "env-editor@npm:0.4.2"
@ -5866,6 +6081,21 @@ __metadata:
languageName: node
linkType: hard
"expo-modules-autolinking@npm:*":
version: 0.12.0
resolution: "expo-modules-autolinking@npm:0.12.0"
dependencies:
chalk: ^4.1.0
commander: ^7.2.0
fast-glob: ^3.2.5
find-up: ^5.0.0
fs-extra: ^9.1.0
bin:
expo-modules-autolinking: bin/expo-modules-autolinking.js
checksum: 6805d63ca5d721eff58a48e58ba41be6badab513cac51b3b7075c210af7b4c0a0f6e6b13eb7eef65bbb2032445364c58898a88c48640f4f7e5f5ad83b4bf469b
languageName: node
linkType: hard
"expo-modules-autolinking@npm:0.10.3":
version: 0.10.3
resolution: "expo-modules-autolinking@npm:0.10.3"
@ -5898,7 +6128,7 @@ __metadata:
languageName: node
linkType: hard
"expo@npm:~46.0.16":
"expo@npm:*, expo@npm:~46.0.16":
version: 46.0.16
resolution: "expo@npm:46.0.16"
dependencies:
@ -8172,6 +8402,13 @@ __metadata:
languageName: node
linkType: hard
"mdn-data@npm:2.0.14":
version: 2.0.14
resolution: "mdn-data@npm:2.0.14"
checksum: 9d0128ed425a89f4cba8f787dca27ad9408b5cb1b220af2d938e2a0629d17d879a34d2cb19318bdb26c3f14c77dd5dfbae67211f5caaf07b61b1f2c5c8c7dc16
languageName: node
linkType: hard
"media-typer@npm:0.3.0":
version: 0.3.0
resolution: "media-typer@npm:0.3.0"
@ -9005,6 +9242,9 @@ __metadata:
resolution: "mobile@workspace:apps/mobile"
dependencies:
"@babel/core": ^7.19.6
"@emotion/native": ^11.10.0
"@emotion/react": ^11.10.5
"@expo/html-elements": ^0.2.0
"@kyoo/ui": "workspace:^"
"@types/react": ~18.0.14
"@types/react-native": ~0.69.1
@ -9013,6 +9253,7 @@ __metadata:
react: 18.0.0
react-dom: 18.0.0
react-native: 0.69.6
react-native-svg: 12.3.0
react-native-web: ~0.18.7
typescript: ~4.3.5
languageName: unknown
@ -9365,6 +9606,15 @@ __metadata:
languageName: node
linkType: hard
"nth-check@npm:^2.0.1":
version: 2.1.1
resolution: "nth-check@npm:2.1.1"
dependencies:
boolbase: ^1.0.0
checksum: 5afc3dafcd1573b08877ca8e6148c52abd565f1d06b1eb08caf982e3fa289a82f2cae697ffb55b5021e146d60443f1590a5d6b944844e944714a5b549675bcd3
languageName: node
linkType: hard
"nullthrows@npm:^1.1.1":
version: 1.1.1
resolution: "nullthrows@npm:1.1.1"
@ -9883,7 +10133,7 @@ __metadata:
languageName: node
linkType: hard
"postcss-value-parser@npm:^4.2.0":
"postcss-value-parser@npm:^4.0.2, postcss-value-parser@npm:^4.2.0":
version: 4.2.0
resolution: "postcss-value-parser@npm:4.2.0"
checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f
@ -10193,6 +10443,32 @@ __metadata:
languageName: node
linkType: hard
"react-native-svg@npm:12.3.0":
version: 12.3.0
resolution: "react-native-svg@npm:12.3.0"
dependencies:
css-select: ^4.2.1
css-tree: ^1.0.0-alpha.39
peerDependencies:
react: "*"
react-native: ">=0.50.0"
checksum: 9bed890d030819ed650fdc84ae8127f78f72a28d81a160dd574729b81f237c85be6a5ff4a0951b4dd28bd2836189f18afffef1fd6447fb3b6537c7ecd23f08c2
languageName: node
linkType: hard
"react-native-svg@npm:^13.5.0":
version: 13.5.0
resolution: "react-native-svg@npm:13.5.0"
dependencies:
css-select: ^5.1.0
css-tree: ^1.1.3
peerDependencies:
react: "*"
react-native: "*"
checksum: 91f33bc2e0667f78bfbd9ba395cc0710b6d5591c1f4c31e407a1fb64a8bb6cfb573a9d581577691eca34c640db85ee03c2069b3db4e7993583dde9e6e01080df
languageName: node
linkType: hard
"react-native-web@npm:^0.18.9, react-native-web@npm:~0.18.7":
version: 0.18.9
resolution: "react-native-web@npm:0.18.9"
@ -11178,7 +11454,7 @@ __metadata:
languageName: node
linkType: hard
"source-map@npm:^0.6.0, source-map@npm:~0.6.1":
"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1":
version: 0.6.1
resolution: "source-map@npm:0.6.1"
checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2
@ -12330,6 +12606,7 @@ __metadata:
dependencies:
"@emotion/react": ^11.9.3
"@emotion/styled": ^11.9.3
"@expo/html-elements": ^0.2.0
"@jellyfin/libass-wasm": ^4.1.1
"@kyoo/ui": "workspace:^"
"@mui/icons-material": ^5.8.4