diff --git a/with-radix/.gitignore b/with-radix/.gitignore new file mode 100644 index 00000000..54afb48b --- /dev/null +++ b/with-radix/.gitignore @@ -0,0 +1,33 @@ + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +out/ +build/ +dist/ + +# plasmo +.plasmo + +# typescript +.tsbuildinfo diff --git a/with-radix/.prettierrc.mjs b/with-radix/.prettierrc.mjs new file mode 100644 index 00000000..77f84c21 --- /dev/null +++ b/with-radix/.prettierrc.mjs @@ -0,0 +1,26 @@ +/** + * @type {import('prettier').Options} + */ +export default { + printWidth: 80, + tabWidth: 2, + useTabs: false, + semi: false, + singleQuote: false, + trailingComma: "none", + bracketSpacing: true, + bracketSameLine: true, + plugins: ["@ianvs/prettier-plugin-sort-imports"], + importOrder: [ + "", // Node.js built-in modules + "", // Imports not matched by other special words or groups. + "", // Empty line + "^@plasmo/(.*)$", + "", + "^@plasmohq/(.*)$", + "", + "^~(.*)$", + "", + "^[./]" + ] +} diff --git a/with-radix/README.md b/with-radix/README.md new file mode 100644 index 00000000..ca9c259f --- /dev/null +++ b/with-radix/README.md @@ -0,0 +1,33 @@ +This is a [Plasmo extension](https://docs.plasmo.com/) project bootstrapped with [`plasmo init`](https://www.npmjs.com/package/plasmo). + +## Getting Started + +First, run the development server: + +```bash +pnpm dev +# or +npm run dev +``` + +Open your browser and load the appropriate development build. For example, if you are developing for the chrome browser, using manifest v3, use: `build/chrome-mv3-dev`. + +You can start editing the popup by modifying `popup.tsx`. It should auto-update as you make changes. To add an options page, simply add a `options.tsx` file to the root of the project, with a react component default exported. Likewise to add a content page, add a `content.ts` file to the root of the project, importing some module and do some logic, then reload the extension on your browser. + +For further guidance, [visit our Documentation](https://docs.plasmo.com/) + +## Making production build + +Run the following: + +```bash +pnpm build +# or +npm run build +``` + +This should create a production bundle for your extension, ready to be zipped and published to the stores. + +## Submit to the webstores + +The easiest way to deploy your Plasmo extension is to use the built-in [bpp](https://bpp.browser.market) GitHub action. Prior to using this action however, make sure to build your extension and upload the first version to the store to establish the basic credentials. Then, simply follow [this setup instruction](https://docs.plasmo.com/framework/workflows/submit) and you should be on your way for automated submission! diff --git a/with-radix/assets/icon.png b/with-radix/assets/icon.png new file mode 100644 index 00000000..cfd931be Binary files /dev/null and b/with-radix/assets/icon.png differ diff --git a/with-radix/content.tsx b/with-radix/content.tsx new file mode 100644 index 00000000..b3b8191f --- /dev/null +++ b/with-radix/content.tsx @@ -0,0 +1,21 @@ +import styleText from "data-text:@radix-ui/themes/styles.css" +import { Button, Theme } from '@radix-ui/themes'; +import { BookmarkIcon } from '@radix-ui/react-icons'; +import type { PlasmoGetStyle } from "plasmo" + + +export const getStyle: PlasmoGetStyle = () => { + const style = document.createElement("style") + style.textContent = styleText.replaceAll(':root', ':host(plasmo-csui)'); + return style +} + +const CustomButton = () => { + return ( + + ) +} + +export default CustomButton \ No newline at end of file diff --git a/with-radix/package.json b/with-radix/package.json new file mode 100644 index 00000000..f93af91e --- /dev/null +++ b/with-radix/package.json @@ -0,0 +1,33 @@ +{ + "name": "with-radix", + "displayName": "With radix", + "version": "0.0.1", + "description": "A basic Plasmo extension.", + "author": "Plasmo Corp. ", + "scripts": { + "dev": "plasmo dev", + "build": "plasmo build", + "package": "plasmo package" + }, + "dependencies": { + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/themes": "^3.1.3", + "plasmo": "0.88.0", + "react": "18.2.0", + "react-dom": "18.2.0" + }, + "devDependencies": { + "@ianvs/prettier-plugin-sort-imports": "4.1.1", + "@types/chrome": "0.0.258", + "@types/node": "20.11.5", + "@types/react": "18.2.48", + "@types/react-dom": "18.2.18", + "prettier": "3.2.4", + "typescript": "5.3.3" + }, + "manifest": { + "host_permissions": [ + "https://*/*" + ] + } +} diff --git a/with-radix/popup.tsx b/with-radix/popup.tsx new file mode 100644 index 00000000..da1bd77e --- /dev/null +++ b/with-radix/popup.tsx @@ -0,0 +1,29 @@ +import { useState } from "react" +import { Theme, Text,Link } from "@radix-ui/themes" +import '@radix-ui/themes/styles.css'; + +function IndexPopup() { + const [data, setData] = useState("") + + return ( + +
+ + Welcome to your{" "} + + Plasmo + {" "} + Extension! + + setData(e.target.value)} value={data} /> + View Docs + +
+
+ ) +} + +export default IndexPopup diff --git a/with-radix/tsconfig.json b/with-radix/tsconfig.json new file mode 100644 index 00000000..9c10ec49 --- /dev/null +++ b/with-radix/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "plasmo/templates/tsconfig.base", + "exclude": [ + "node_modules" + ], + "include": [ + ".plasmo/index.d.ts", + "./**/*.ts", + "./**/*.tsx" + ], + "compilerOptions": { + "paths": { + "~*": [ + "./*" + ] + }, + "baseUrl": "." + } +}