paris 0.0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +11 -0
  3. package/.eslintrc.json +22 -0
  4. package/.github/workflows/publish.yml +54 -0
  5. package/.husky/pre-commit +2 -0
  6. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  7. package/.idea/jsLibraryMappings.xml +6 -0
  8. package/.idea/jsLinters/eslint.xml +6 -0
  9. package/.idea/modules.xml +8 -0
  10. package/.idea/paris.iml +13 -0
  11. package/.idea/vcs.xml +6 -0
  12. package/.idea/watcherTasks.xml +4 -0
  13. package/.storybook/main.ts +43 -0
  14. package/.storybook/manager-head.html +16 -0
  15. package/.storybook/manager.ts +6 -0
  16. package/.storybook/preview.ts +74 -0
  17. package/.storybook/themes.ts +30 -0
  18. package/CHANGELOG.md +17 -0
  19. package/README.md +42 -2
  20. package/cat +2 -0
  21. package/global.d.ts +2 -0
  22. package/next.config.js +6 -0
  23. package/package.json +71 -9
  24. package/public/favicon.ico +0 -0
  25. package/public/fira/fira_code.css +48 -0
  26. package/public/fira/woff/FiraCode-Bold.woff +0 -0
  27. package/public/fira/woff/FiraCode-Light.woff +0 -0
  28. package/public/fira/woff/FiraCode-Medium.woff +0 -0
  29. package/public/fira/woff/FiraCode-Regular.woff +0 -0
  30. package/public/fira/woff/FiraCode-SemiBold.woff +0 -0
  31. package/public/fira/woff/FiraCode-VF.woff +0 -0
  32. package/public/fira/woff2/FiraCode-Bold.woff2 +0 -0
  33. package/public/fira/woff2/FiraCode-Light.woff2 +0 -0
  34. package/public/fira/woff2/FiraCode-Medium.woff2 +0 -0
  35. package/public/fira/woff2/FiraCode-Regular.woff2 +0 -0
  36. package/public/fira/woff2/FiraCode-SemiBold.woff2 +0 -0
  37. package/public/fira/woff2/FiraCode-VF.woff2 +0 -0
  38. package/public/graphik/GraphikSS-Black.woff +0 -0
  39. package/public/graphik/GraphikSS-Black.woff2 +0 -0
  40. package/public/graphik/GraphikSS-BlackItalic.woff +0 -0
  41. package/public/graphik/GraphikSS-BlackItalic.woff2 +0 -0
  42. package/public/graphik/GraphikSS-Bold.woff +0 -0
  43. package/public/graphik/GraphikSS-Bold.woff2 +0 -0
  44. package/public/graphik/GraphikSS-BoldItalic.woff +0 -0
  45. package/public/graphik/GraphikSS-BoldItalic.woff2 +0 -0
  46. package/public/graphik/GraphikSS-Extralight.woff +0 -0
  47. package/public/graphik/GraphikSS-Extralight.woff2 +0 -0
  48. package/public/graphik/GraphikSS-ExtralightItalic.woff +0 -0
  49. package/public/graphik/GraphikSS-ExtralightItalic.woff2 +0 -0
  50. package/public/graphik/GraphikSS-Light.woff +0 -0
  51. package/public/graphik/GraphikSS-Light.woff2 +0 -0
  52. package/public/graphik/GraphikSS-LightItalic.woff +0 -0
  53. package/public/graphik/GraphikSS-LightItalic.woff2 +0 -0
  54. package/public/graphik/GraphikSS-Medium.woff +0 -0
  55. package/public/graphik/GraphikSS-Medium.woff2 +0 -0
  56. package/public/graphik/GraphikSS-MediumItalic.woff +0 -0
  57. package/public/graphik/GraphikSS-MediumItalic.woff2 +0 -0
  58. package/public/graphik/GraphikSS-Regular.woff +0 -0
  59. package/public/graphik/GraphikSS-Regular.woff2 +0 -0
  60. package/public/graphik/GraphikSS-RegularItalic.woff +0 -0
  61. package/public/graphik/GraphikSS-RegularItalic.woff2 +0 -0
  62. package/public/graphik/GraphikSS-Semibold.woff +0 -0
  63. package/public/graphik/GraphikSS-Semibold.woff2 +0 -0
  64. package/public/graphik/GraphikSS-SemiboldItalic.woff +0 -0
  65. package/public/graphik/GraphikSS-SemiboldItalic.woff2 +0 -0
  66. package/public/graphik/GraphikSS-Super.woff +0 -0
  67. package/public/graphik/GraphikSS-Super.woff2 +0 -0
  68. package/public/graphik/GraphikSS-SuperItalic.woff +0 -0
  69. package/public/graphik/GraphikSS-SuperItalic.woff2 +0 -0
  70. package/public/graphik/GraphikSS-Thin.woff +0 -0
  71. package/public/graphik/GraphikSS-Thin.woff2 +0 -0
  72. package/public/graphik/GraphikSS-ThinItalic.woff +0 -0
  73. package/public/graphik/GraphikSS-ThinItalic.woff2 +0 -0
  74. package/public/graphik/graphik.css +174 -0
  75. package/public/next.svg +1 -0
  76. package/public/pte.css +219 -0
  77. package/public/thirteen.svg +1 -0
  78. package/public/vercel.svg +1 -0
  79. package/scripts/createComponent.js +100 -0
  80. package/scripts/generateEntry.js +35 -0
  81. package/scripts/text.ts +118 -0
  82. package/src/pages/_app.tsx +7 -0
  83. package/src/pages/_document.tsx +15 -0
  84. package/src/pages/index.tsx +132 -0
  85. package/src/stories/Tokens.mdx +54 -0
  86. package/src/stories/Welcome.mdx +8 -0
  87. package/src/stories/button/Button.module.scss +128 -0
  88. package/src/stories/button/Button.stories.ts +42 -0
  89. package/src/stories/button/Button.tsx +81 -0
  90. package/src/stories/button/index.ts +1 -0
  91. package/src/stories/text/Text.module.scss +3 -0
  92. package/src/stories/text/Text.stories.ts +155 -0
  93. package/src/stories/text/Text.tsx +40 -0
  94. package/src/stories/text/Typography.module.css +164 -0
  95. package/src/stories/text/index.ts +1 -0
  96. package/src/stories/theme/index.ts +2 -0
  97. package/src/stories/theme/themes.ts +409 -0
  98. package/src/stories/theme/tokens.ts +68 -0
  99. package/src/styles/Home.module.css +278 -0
  100. package/src/styles/globals.css +5 -0
  101. package/src/styles/tw-preflight.css +369 -0
  102. package/src/styles/util.scss +4 -0
  103. package/tsconfig.json +27 -0
@@ -0,0 +1,8 @@
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)
@@ -0,0 +1,11 @@
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": "public",
8
+ "baseBranch": "main",
9
+ "updateInternalDependencies": "patch",
10
+ "ignore": []
11
+ }
package/.eslintrc.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "root": true,
3
+ "extends": [
4
+ "@ssh",
5
+ "plugin:storybook/recommended",
6
+ "plugin:css/recommended"
7
+ ],
8
+ "plugins": [
9
+ "css"
10
+ ],
11
+ "parserOptions": {
12
+ "project": "./tsconfig.json"
13
+ },
14
+ "ignorePatterns": [
15
+ "dist/",
16
+ "node_modules/"
17
+ ],
18
+ "rules": {
19
+ "react/button-has-type": "off",
20
+ "react/jsx-props-no-spreading": "off"
21
+ }
22
+ }
@@ -0,0 +1,54 @@
1
+ name: Publish
2
+ on:
3
+ push:
4
+ branches:
5
+ - "main"
6
+
7
+ concurrency: ${{ github.workflow }}-${{ github.ref }}
8
+
9
+ jobs:
10
+ release:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v3
15
+
16
+ - name: Install Node.js
17
+ uses: actions/setup-node@v3
18
+ with:
19
+ node-version: 18.x
20
+
21
+ - uses: pnpm/action-setup@v2
22
+ name: Install pnpm
23
+ id: pnpm-install
24
+ with:
25
+ version: ^8.x
26
+ run_install: false
27
+
28
+ - name: Get pnpm store directory
29
+ id: pnpm-cache
30
+ shell: bash
31
+ run: |
32
+ echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
33
+
34
+ - uses: actions/cache@v3
35
+ name: Setup pnpm cache
36
+ with:
37
+ path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
38
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
39
+ restore-keys: |
40
+ ${{ runner.os }}-pnpm-store-
41
+
42
+ - name: Install dependencies
43
+ run: pnpm install
44
+
45
+ - name: Create Release Pull Request or Publish
46
+ id: changesets
47
+ uses: changesets/action@v1
48
+ with:
49
+ publish: pnpm release
50
+ title: "chore(release): publish"
51
+ commit: "chore(release): publish"
52
+ env:
53
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env sh
2
+ . "$(dirname -- "$0")/_/husky.sh"
@@ -0,0 +1,7 @@
1
+ <component name="InspectionProjectProfileManager">
2
+ <profile version="1.0">
3
+ <option name="myName" value="Project Default" />
4
+ <inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
5
+ <inspection_tool class="JSLastCommaInObjectLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
6
+ </profile>
7
+ </component>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="JavaScriptLibraryMappings">
4
+ <includedPredefinedLibrary name="Node.js Core" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="EslintConfiguration">
4
+ <option name="fix-on-save" value="true" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/paris.iml" filepath="$PROJECT_DIR$/.idea/paris.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$">
5
+ <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
+ <excludeFolder url="file://$MODULE_DIR$/temp" />
7
+ <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ <excludeFolder url="file://$MODULE_DIR$/storybook-static" />
9
+ </content>
10
+ <orderEntry type="inheritedJdk" />
11
+ <orderEntry type="sourceFolder" forTests="false" />
12
+ </component>
13
+ </module>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectTasksOptions" suppressed-tasks="SCSS" />
4
+ </project>
@@ -0,0 +1,43 @@
1
+ import type { StorybookConfig } from "@storybook/nextjs";
2
+ import { TsconfigPathsPlugin } from 'tsconfig-paths-webpack-plugin';
3
+
4
+ const config: StorybookConfig = {
5
+ stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
6
+ addons: [
7
+ "@storybook/addon-links",
8
+ "@storybook/addon-essentials",
9
+ "@storybook/addon-interactions",
10
+ "storybook-dark-mode",
11
+ ],
12
+ framework: {
13
+ name: "@storybook/nextjs",
14
+ options: {},
15
+ },
16
+ docs: {
17
+ autodocs: "tag",
18
+ },
19
+ staticDirs: [
20
+ '../public'
21
+ ],
22
+ previewHead: (head) => (
23
+ `${head}
24
+ <style>
25
+ body {
26
+ color: var(--pte-colors-contentPrimary);
27
+ background-color: var(--pte-colors-backgroundPrimary);
28
+ transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
29
+ }
30
+
31
+ h2#stories {
32
+ letter-spacing: var(--pte-typography-styles-labelMedium-letterSpacing);
33
+ }
34
+ </style>`
35
+ ),
36
+ webpackFinal: async (config) => {
37
+ config.resolve.plugins = [
38
+ new TsconfigPathsPlugin()
39
+ ];
40
+ return config;
41
+ }
42
+ };
43
+ export default config;
@@ -0,0 +1,16 @@
1
+ <link rel="stylesheet" href="/graphik/graphik.css" />
2
+ <link rel="stylesheet" href="/fira/fira_code.css" />
3
+
4
+ <style>
5
+ .sidebar-subheading button {
6
+ letter-spacing: 0.1rem !important;
7
+ }
8
+
9
+ * {
10
+ transition: color 0.2s ease, background-color 0.2s ease;
11
+ }
12
+
13
+ #storybook-explorer-searchfield {
14
+ border-radius: 0;
15
+ }
16
+ </style>
@@ -0,0 +1,6 @@
1
+ import { addons } from '@storybook/manager-api';
2
+ import { Light, Dark } from './themes';
3
+
4
+ addons.setConfig({
5
+ theme: Light,
6
+ });
@@ -0,0 +1,74 @@
1
+ import type { Preview } from '@storybook/react';
2
+ import { Dark, Light } from './themes';
3
+ import { DocsContainer } from '@storybook/blocks';
4
+ import { useDarkMode } from 'storybook-dark-mode';
5
+ import { createElement, useEffect } from 'react';
6
+ import { injectTheme, LightTheme, DarkTheme } from '../src/stories/theme';
7
+
8
+ import '../public/graphik/graphik.css';
9
+ import '../public/fira/fira_code.css';
10
+ import '../src/styles/globals.css';
11
+ import '../src/styles/tw-preflight.css';
12
+
13
+ const Wrapper = (props: any) => {
14
+ const isDark = useDarkMode();
15
+
16
+ useEffect(() => {
17
+ injectTheme(!isDark ? LightTheme : DarkTheme);
18
+ }, [isDark]);
19
+
20
+ return props.children;
21
+ }
22
+
23
+ export const decorators = [
24
+ (renderStory) => createElement(Wrapper, {}, renderStory()),
25
+ ];
26
+
27
+ const preview: Preview = {
28
+ parameters: {
29
+ actions: { argTypesRegex: "^on[A-Z].*" },
30
+ backgrounds: { disable: true },
31
+ controls: {
32
+ matchers: {
33
+ color: /(background|color)$/i,
34
+ date: /Date$/,
35
+ },
36
+ },
37
+ docs: {
38
+ container: (context: any) => {
39
+ const isDark = useDarkMode();
40
+
41
+ const props = {
42
+ ...context,
43
+ theme: isDark ? Dark : Light,
44
+ };
45
+
46
+ useEffect(() => {
47
+ injectTheme(!isDark ? LightTheme : DarkTheme);
48
+ }, [isDark]);
49
+
50
+ return createElement(DocsContainer, props);
51
+ },
52
+ },
53
+ options: {
54
+ storySort: {
55
+ order: [
56
+ 'Welcome',
57
+ 'Tokens',
58
+ 'Inputs',
59
+ 'Content',
60
+ 'Uncategorized'
61
+ ],
62
+ }
63
+ },
64
+ darkMode: {
65
+ stylePreview: true,
66
+ // Override the default dark theme
67
+ dark: Dark,
68
+ // Override the default light theme
69
+ light: Light
70
+ }
71
+ },
72
+ };
73
+
74
+ export default preview;
@@ -0,0 +1,30 @@
1
+ import { create, ThemeVars } from '@storybook/theming';
2
+ import { LightTheme, DarkTheme, pvar } from '../src/stories/theme';
3
+
4
+ /**
5
+ * Shared theme variables across light and dark themes.
6
+ */
7
+ const sharedConfig: Partial<ThemeVars> = {
8
+ brandTitle: 'Paris',
9
+ brandUrl: 'https://slingshot.fm',
10
+ brandTarget: '_blank',
11
+ colorSecondary: '#FB46BE',
12
+ fontBase: '"Graphik Web", sans-serif',
13
+ fontCode: '"Fira Code VF", monospace',
14
+ inputBorderRadius: 0,
15
+ };
16
+
17
+ export const Light = create({
18
+ ...sharedConfig,
19
+ base: 'light',
20
+ brandImage: 'https://fast.slingshot.fm/sling/logo/paris-sb.png',
21
+ appBg: LightTheme.colors.backgroundPrimary,
22
+ });
23
+
24
+ export const Dark = create({
25
+ ...sharedConfig,
26
+ base: 'dark',
27
+ brandImage: 'https://fast.slingshot.fm/sling/logo/paris-sb-white.png',
28
+ appBg: DarkTheme.colors.backgroundPrimary,
29
+ appContentBg: DarkTheme.colors.backgroundPrimary,
30
+ });
package/CHANGELOG.md ADDED
@@ -0,0 +1,17 @@
1
+ # paris
2
+
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7b3a5fc: `Button` component
8
+ - d1630ec: `Text` component for typography and script for auto-generating typography CSS module + Storybook stories
9
+
10
+ ### Patch Changes
11
+
12
+ - 4a3ecb1: Document tokens, update README and auto-import it to Welcome
13
+ - 6d358a4: Update proof-of-concept `Button` with `pte` theming
14
+ - 952ee38: Add `pte` for theming
15
+ - 3b46865: Circular colors on Tokens page
16
+ - 2059fea: Proper theme injection and updates across stories and docs
17
+ - 72875c5: Set up changesets & husky
package/README.md CHANGED
@@ -1,3 +1,43 @@
1
- # paris
1
+ # Paris
2
2
 
3
- Coming Soon...
3
+ Paris is Slingshot's React design system, meant to work universally across server and client components. It's a collection of reusable components, design tokens, and guidelines for building consistent, accessible, and performant user interfaces.
4
+
5
+ Currently, Paris is provided as a set of *unbundled* `.tsx` components styled with SCSS modules. This means that you can import only the components you need, and you can use your own bundler to optimize your bundle size. As a result, Paris works best with frameworks like Next.js that have built-in support for TypeScript and SCSS modules.
6
+
7
+ Paris 1.x styling is heavily inspired by Uber's [Base Web](https://baseweb.design), which we previously used in our production apps. We built Paris because to move away from Styletron and CSS-in-JS, since we're now largely working with React 18, RSC, and the Next.js `app` directory.
8
+
9
+ <br />
10
+
11
+ ## Getting started
12
+
13
+ First, install Paris and SASS in your project:
14
+
15
+ ```bash
16
+ pnpm i paris sass
17
+ # or
18
+ yarn add paris sass
19
+ # or
20
+ npm i paris sass
21
+ ```
22
+
23
+ Map our types in your `.tsconfig.json` file (this is a temporary workaround that we'll fix soon):
24
+
25
+ ```json
26
+ {
27
+ "paths": {
28
+ "paris/*": ["./node_modules/paris/src/stories/*"]
29
+ }
30
+ }
31
+ ```
32
+
33
+ That's it! You can now import any component from Paris:
34
+
35
+ ```tsx
36
+ import { Button } from 'paris/button';
37
+
38
+ const App = () => (
39
+ <Button>Click me</Button>
40
+ );
41
+ ```
42
+
43
+ This should work out of the box with Next.js, since it has built-in support for TypeScript and SCSS modules. If you're using another framework or bundler, you may need to configure it for generic SCSS support.
package/cat ADDED
@@ -0,0 +1,2 @@
1
+ /Users/sanil/Projects/Slingshot/paris/node_modules/.bin/pte
2
+ /Users/sanil/Projects/Slingshot/paris/node_modules/.bin/pte
package/global.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ declare module '*.module.css';
2
+ declare module '*.module.scss';
package/next.config.js ADDED
@@ -0,0 +1,6 @@
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ reactStrictMode: true,
4
+ };
5
+
6
+ module.exports = nextConfig;
package/package.json CHANGED
@@ -1,12 +1,74 @@
1
1
  {
2
2
  "name": "paris",
3
- "version": "0.0.1",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
3
+ "description": "Paris is Slingshot's React design system. It's a collection of reusable components, design tokens, and guidelines that help us build consistent, accessible, and performant user interfaces.",
4
+ "version": "0.2.0",
5
+ "engines": {
6
+ "pnpm": "^8.x"
7
+ },
8
+ "exports": {
9
+ "./*": "./src/stories/*"
10
+ },
11
+ "peerDependencies": {
12
+ "react": "^18.x || ^17.x",
13
+ "react-dom": "^18.x || ^17.x",
14
+ "sass": "^1.x",
15
+ "typescript": "^5.0 || ^4.9"
8
16
  },
9
- "keywords": [],
10
- "author": "danielkalen",
11
- "license": "ISC"
12
- }
17
+ "devDependencies": {
18
+ "@changesets/cli": "^2.26.1",
19
+ "@ssh/csstypes": "^1.1.0",
20
+ "@ssh/eslint-config": "^1.0.0",
21
+ "@storybook/addon-essentials": "^7.0.12",
22
+ "@storybook/addon-interactions": "^7.0.12",
23
+ "@storybook/addon-links": "^7.0.12",
24
+ "@storybook/blocks": "^7.0.12",
25
+ "@storybook/manager-api": "^7.0.12",
26
+ "@storybook/nextjs": "^7.0.12",
27
+ "@storybook/react": "^7.0.12",
28
+ "@storybook/testing-library": "^0.1.0",
29
+ "@storybook/theming": "^7.0.12",
30
+ "@types/node": "18.15.11",
31
+ "@types/react": "18.0.31",
32
+ "@types/react-dom": "18.0.11",
33
+ "@typescript-eslint/eslint-plugin": "^5.13.0",
34
+ "@typescript-eslint/parser": "^5.0.0",
35
+ "change-case": "^4.1.2",
36
+ "csstype": "^3.1.2",
37
+ "esbuild-scss-modules-plugin": "^1.1.1",
38
+ "eslint": "^8.2.0",
39
+ "eslint-config-next": "13.4.2",
40
+ "eslint-plugin-css": "^0.8.0",
41
+ "eslint-plugin-storybook": "^0.6.12",
42
+ "husky": "^8.0.0",
43
+ "jss": "^10.10.0",
44
+ "jss-preset-default": "^10.10.0",
45
+ "next": "^13.4.2",
46
+ "react": "^18.2.0",
47
+ "react-dom": "^18.2.0",
48
+ "sass": "^1.62.1",
49
+ "storybook": "^7.0.12",
50
+ "storybook-dark-mode": "^3.0.0",
51
+ "title-case": "^3.0.3",
52
+ "ts-node": "^10.9.1",
53
+ "tsconfig-paths-webpack-plugin": "^4.0.1",
54
+ "tsup": "^6.7.0",
55
+ "type-fest": "^3.10.0",
56
+ "typescript": "^5.0.2"
57
+ },
58
+ "dependencies": {
59
+ "pte": "^0.4.7"
60
+ },
61
+ "scripts": {
62
+ "dev": "next dev",
63
+ "build": "next build",
64
+ "start": "next start",
65
+ "lint": "next lint",
66
+ "storybook": "storybook dev -p 6006",
67
+ "build:storybook": "storybook build",
68
+ "create:component": "node ./scripts/createComponent.js",
69
+ "generate:entry": "node ./scripts/generateEntry.js",
70
+ "generate:theme": "pte export ./src/stories/theme/themes.ts LightTheme -o ./public/pte.css",
71
+ "generate:text": "ts-node --esm ./scripts/text.ts",
72
+ "release": "pnpm changeset publish"
73
+ }
74
+ }
Binary file
@@ -0,0 +1,48 @@
1
+ @font-face {
2
+ font-family: 'Fira Code';
3
+ src: url('woff2/FiraCode-Light.woff2') format('woff2'),
4
+ url("woff/FiraCode-Light.woff") format("woff");
5
+ font-weight: 300;
6
+ font-style: normal;
7
+ }
8
+
9
+ @font-face {
10
+ font-family: 'Fira Code';
11
+ src: url('woff2/FiraCode-Regular.woff2') format('woff2'),
12
+ url("woff/FiraCode-Regular.woff") format("woff");
13
+ font-weight: 400;
14
+ font-style: normal;
15
+ }
16
+
17
+ @font-face {
18
+ font-family: 'Fira Code';
19
+ src: url('woff2/FiraCode-Medium.woff2') format('woff2'),
20
+ url("woff/FiraCode-Medium.woff") format("woff");
21
+ font-weight: 500;
22
+ font-style: normal;
23
+ }
24
+
25
+ @font-face {
26
+ font-family: 'Fira Code';
27
+ src: url('woff2/FiraCode-SemiBold.woff2') format('woff2'),
28
+ url("woff/FiraCode-SemiBold.woff") format("woff");
29
+ font-weight: 600;
30
+ font-style: normal;
31
+ }
32
+
33
+ @font-face {
34
+ font-family: 'Fira Code';
35
+ src: url('woff2/FiraCode-Bold.woff2') format('woff2'),
36
+ url("woff/FiraCode-Bold.woff") format("woff");
37
+ font-weight: 700;
38
+ font-style: normal;
39
+ }
40
+
41
+ @font-face {
42
+ font-family: 'Fira Code VF';
43
+ src: url('woff2/FiraCode-VF.woff2') format('woff2-variations'),
44
+ url('woff/FiraCode-VF.woff') format('woff-variations');
45
+ /* font-weight requires a range: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide#Using_a_variable_font_font-face_changes */
46
+ font-weight: 300 700;
47
+ font-style: normal;
48
+ }