@plyaz/ui 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +77 -0
- package/dist/types/App.d.ts +5 -0
- package/dist/types/components/Box/Box.d.ts +9 -0
- package/dist/types/components/Box/Box.stories.d.ts +12 -0
- package/dist/types/components/Container/Container.d.ts +9 -0
- package/dist/types/components/Container/Container.stories.d.ts +6 -0
- package/dist/types/components/Flex/Flex.d.ts +26 -0
- package/dist/types/components/Flex/Flex.stories.d.ts +7 -0
- package/dist/types/components/Grid/Grid.d.ts +30 -0
- package/dist/types/components/Grid/Grid.stories.d.ts +7 -0
- package/dist/types/components/Heading/Heading.d.ts +19 -0
- package/dist/types/components/Heading/Heading.stories.d.ts +11 -0
- package/dist/types/components/Link/Link.d.ts +8 -0
- package/dist/types/components/Link/Link.stories.d.ts +7 -0
- package/dist/types/components/Paragraph/Paragraph.d.ts +14 -0
- package/dist/types/components/Paragraph/Paragraph.stories.d.ts +9 -0
- package/dist/types/components/Section/Section.d.ts +7 -0
- package/dist/types/components/Section/Section.stories.d.ts +6 -0
- package/dist/types/components/Stack/Stack.d.ts +11 -0
- package/dist/types/components/Stack/Stack.stories.d.ts +7 -0
- package/dist/types/components/Text/Text.d.ts +39 -0
- package/dist/types/components/Text/Text.stories.d.ts +8 -0
- package/dist/types/docs/DocTemplate.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/main.d.ts +0 -0
- package/dist/types/types/type.d.ts +1 -0
- package/dist/types/ui.es.d.ts +2 -0
- package/dist/ui.cjs.js +22 -0
- package/dist/ui.css +1 -0
- package/dist/ui.es.js +281 -0
- package/dist/vite.svg +1 -0
- package/package.json +90 -0
package/README.md
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# ui
|
|
2
|
+
|
|
3
|
+
A reusable, accessible, and themeable component library powering the Plyaz Web App interface. Built with performance and consistency in mind, @plyaz/ui delivers modular React components aligned with the Plyaz design system — enabling seamless development across fan-facing features, quests, NFTs, and loyalty flows in the Web3 ecosystem.
|
|
4
|
+
|
|
5
|
+
## Project Structure
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
src/ # source code
|
|
9
|
+
src/components # component source code
|
|
10
|
+
tests/ # Unit tests
|
|
11
|
+
.storybook/ # Storybook configuration
|
|
12
|
+
dist/ # Build output
|
|
13
|
+
package.json
|
|
14
|
+
tsconfig.json
|
|
15
|
+
vite.config.ts
|
|
16
|
+
tailwind.config.js
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install @plyaz/ui
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
or
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
yarn add @plyaz/ui
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
or
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pnpm add @plyaz/ui
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Storybook
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pnpm run storybook
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Plop Utility for Auto-Generating Storybook Stories
|
|
44
|
+
|
|
45
|
+
### Requirement
|
|
46
|
+
|
|
47
|
+
Manually creating Storybook story files for each component can be repetitive. So we needed a way to automatically generate story files with consistent structure and boilerplate.
|
|
48
|
+
|
|
49
|
+
### Solution
|
|
50
|
+
|
|
51
|
+
We integrated the **Plop** library, a micro-generator framework that automates file creation using custom templates (in our case, a story template). With Plop, we can generate story files for components quickly and consistently.
|
|
52
|
+
|
|
53
|
+
### How It Works
|
|
54
|
+
|
|
55
|
+
Plop takes three inputs and generates a story file based on a defined template:
|
|
56
|
+
|
|
57
|
+
- **Path to the component:** The target path where the file should be generated (relative to src/)
|
|
58
|
+
- **Component directory name (PascalCase):** The component directory name (e.g., Button)
|
|
59
|
+
- **Component name (PascalCase):** The component name in PascalCase format based on these inputs, Plop processes a predefined template plop-templates/Component.stories.tsx.hbs file and generates the corresponding story file in the specified location.
|
|
60
|
+
|
|
61
|
+
**Plop** then executes a custom template file and generates the new story file at the target path with the provided name.
|
|
62
|
+
|
|
63
|
+
### Folder Structure
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
plopfile.js
|
|
67
|
+
/plop-templates
|
|
68
|
+
└── Component.stories.tsx.hbs # template for story file
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Usage
|
|
72
|
+
|
|
73
|
+
To generate a new story file:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
pnpm run generate
|
|
77
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ElementType } from '../../types/type';
|
|
3
|
+
interface BoxProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
element?: ElementType;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const Box: ({ children, element, className, ...props }: BoxProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Box } from './Box';
|
|
3
|
+
type Story = StoryObj<typeof Box>;
|
|
4
|
+
declare const meta: Meta<typeof Box>;
|
|
5
|
+
export default meta;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Section: Story;
|
|
8
|
+
export declare const Article: Story;
|
|
9
|
+
export declare const Aside: Story;
|
|
10
|
+
export declare const Nav: Story;
|
|
11
|
+
export declare const Header: Story;
|
|
12
|
+
export declare const Footer: Story;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ElementType } from '../../types/type';
|
|
3
|
+
interface ContainerProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
className?: string;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
element?: ElementType;
|
|
7
|
+
}
|
|
8
|
+
export declare const Container: ({ className, children, element, ...props }: ContainerProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ALIGN_MAPPER, JUASTIFY_MAPPER } from '../Grid/Grid';
|
|
3
|
+
import { ElementType } from '../../types/type';
|
|
4
|
+
declare const DIRECTION_MAPPER: {
|
|
5
|
+
row: string;
|
|
6
|
+
col: string;
|
|
7
|
+
"row-reverse": string;
|
|
8
|
+
"col-reverse": string;
|
|
9
|
+
};
|
|
10
|
+
declare const WRAP_MAPPER: {
|
|
11
|
+
wrap: string;
|
|
12
|
+
nowrap: string;
|
|
13
|
+
"wrap-reverse": string;
|
|
14
|
+
};
|
|
15
|
+
interface FlexProps extends React.HTMLAttributes<HTMLElement> {
|
|
16
|
+
children: React.ReactNode;
|
|
17
|
+
gap?: string;
|
|
18
|
+
direction?: keyof typeof DIRECTION_MAPPER;
|
|
19
|
+
justify?: keyof typeof JUASTIFY_MAPPER;
|
|
20
|
+
align?: keyof typeof ALIGN_MAPPER;
|
|
21
|
+
wrap?: keyof typeof WRAP_MAPPER;
|
|
22
|
+
className?: string;
|
|
23
|
+
element?: ElementType;
|
|
24
|
+
}
|
|
25
|
+
export declare const Flex: ({ children, gap, direction, justify, align, wrap, className, element, ...props }: FlexProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Flex } from './Flex';
|
|
3
|
+
declare const meta: Meta<typeof Flex>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Flex>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const ColumnCentered: Story;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ElementType } from '../../types/type';
|
|
3
|
+
export declare const JUASTIFY_MAPPER: {
|
|
4
|
+
start: string;
|
|
5
|
+
end: string;
|
|
6
|
+
center: string;
|
|
7
|
+
between: string;
|
|
8
|
+
around: string;
|
|
9
|
+
evenly: string;
|
|
10
|
+
stretch: string;
|
|
11
|
+
};
|
|
12
|
+
export declare const ALIGN_MAPPER: {
|
|
13
|
+
start: string;
|
|
14
|
+
end: string;
|
|
15
|
+
center: string;
|
|
16
|
+
baseline: string;
|
|
17
|
+
stretch: string;
|
|
18
|
+
};
|
|
19
|
+
interface GridProps extends React.HTMLAttributes<HTMLElement> {
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
className?: string;
|
|
22
|
+
cols?: string;
|
|
23
|
+
rows?: string;
|
|
24
|
+
gap?: string;
|
|
25
|
+
justify?: keyof typeof JUASTIFY_MAPPER;
|
|
26
|
+
align?: keyof typeof ALIGN_MAPPER;
|
|
27
|
+
element?: ElementType;
|
|
28
|
+
}
|
|
29
|
+
export declare const Grid: ({ children, className, cols, rows, gap, justify, align, element, ...props }: GridProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
declare const SIZE_MAP: {
|
|
3
|
+
readonly xs: "xs";
|
|
4
|
+
readonly sm: "sm";
|
|
5
|
+
readonly base: "base";
|
|
6
|
+
readonly lg: "lg";
|
|
7
|
+
readonly xl: "xl";
|
|
8
|
+
readonly "2xl": "2xl";
|
|
9
|
+
readonly "3xl": "3xl";
|
|
10
|
+
readonly "4xl": "4xl";
|
|
11
|
+
};
|
|
12
|
+
interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
className?: string;
|
|
15
|
+
element: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
16
|
+
size: keyof typeof SIZE_MAP;
|
|
17
|
+
}
|
|
18
|
+
export declare const Heading: ({ children, element, className, size, ...props }: HeadingProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Heading } from './Heading';
|
|
3
|
+
declare const meta: Meta<typeof Heading>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Heading>;
|
|
6
|
+
export declare const H1: Story;
|
|
7
|
+
export declare const H2: Story;
|
|
8
|
+
export declare const H3: Story;
|
|
9
|
+
export declare const H4: Story;
|
|
10
|
+
export declare const H5: Story;
|
|
11
|
+
export declare const H6: Story;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface LinkProps extends React.HTMLAttributes<HTMLAnchorElement> {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
href?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const Link: ({ children, className, href, ...props }: LinkProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
declare const SIZE_MAP: {
|
|
3
|
+
readonly xs: "xs";
|
|
4
|
+
readonly sm: "sm";
|
|
5
|
+
readonly base: "base";
|
|
6
|
+
readonly lg: "lg";
|
|
7
|
+
};
|
|
8
|
+
interface ParagraphProps extends React.HTMLAttributes<HTMLElement> {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
size: keyof typeof SIZE_MAP;
|
|
12
|
+
}
|
|
13
|
+
export declare const Paragraph: ({ children, className, size, ...props }: ParagraphProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Paragraph } from './Paragraph';
|
|
3
|
+
declare const meta: Meta<typeof Paragraph>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Paragraph>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Small: Story;
|
|
8
|
+
export declare const ExtraSmall: Story;
|
|
9
|
+
export declare const Large: Story;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface SectionProps extends React.HTMLAttributes<HTMLElement> {
|
|
3
|
+
className?: string;
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare const Section: ({ className, children, ...props }: SectionProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ElementType } from '../../types/type';
|
|
3
|
+
interface StackProps extends React.HTMLAttributes<HTMLElement> {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
direction?: "vertical" | "horizontal";
|
|
7
|
+
spacing?: string;
|
|
8
|
+
element?: ElementType;
|
|
9
|
+
}
|
|
10
|
+
export declare const Stack: ({ children, direction, spacing, element, className, ...props }: StackProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Stack } from './Stack';
|
|
3
|
+
declare const meta: Meta<typeof Stack>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Stack>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Vertical: Story;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
declare const VARIANT_MAPPER: {
|
|
3
|
+
body: string;
|
|
4
|
+
heading: string;
|
|
5
|
+
caption: string;
|
|
6
|
+
};
|
|
7
|
+
declare const SIZES_MAPPER: {
|
|
8
|
+
xs: string;
|
|
9
|
+
sm: string;
|
|
10
|
+
base: string;
|
|
11
|
+
lg: string;
|
|
12
|
+
xl: string;
|
|
13
|
+
"2xl": string;
|
|
14
|
+
"3xl": string;
|
|
15
|
+
"4xl": string;
|
|
16
|
+
"5xl": string;
|
|
17
|
+
"6xl": string;
|
|
18
|
+
'7xl': string;
|
|
19
|
+
'8xl': string;
|
|
20
|
+
'9xl': string;
|
|
21
|
+
};
|
|
22
|
+
declare const TEXT_WEIGHT_MAPPER: {
|
|
23
|
+
normal: string;
|
|
24
|
+
medium: string;
|
|
25
|
+
semibold: string;
|
|
26
|
+
bold: string;
|
|
27
|
+
light: string;
|
|
28
|
+
};
|
|
29
|
+
type TextElement = "p" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
30
|
+
interface TextProps extends React.HTMLAttributes<HTMLElement> {
|
|
31
|
+
className?: string;
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
element: TextElement;
|
|
34
|
+
weight: keyof typeof TEXT_WEIGHT_MAPPER;
|
|
35
|
+
variant: keyof typeof VARIANT_MAPPER;
|
|
36
|
+
size?: keyof typeof SIZES_MAPPER;
|
|
37
|
+
}
|
|
38
|
+
export declare const Text: ({ className, children, element, weight, variant, size, ...props }: TextProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/react';
|
|
2
|
+
import { Text } from './Text';
|
|
3
|
+
declare const meta: Meta<typeof Text>;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj<typeof Text>;
|
|
6
|
+
export declare const Default: Story;
|
|
7
|
+
export declare const Heading: Story;
|
|
8
|
+
export declare const Caption: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const autoDocsTemplate: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './App';
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ElementType = "div" | "section" | "article" | "aside" | "nav" | "header" | "footer" | "main" | "span";
|
package/dist/ui.cjs.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";const ee=require("react");var T={exports:{}},R={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var $;function re(){if($)return R;$=1;var l=Symbol.for("react.transitional.element"),_=Symbol.for("react.fragment");function f(d,a,s){var m=null;if(s!==void 0&&(m=""+s),a.key!==void 0&&(m=""+a.key),"key"in a){s={};for(var E in a)E!=="key"&&(s[E]=a[E])}else s=a;return a=s.ref,{$$typeof:l,type:d,key:m,ref:a!==void 0?a:null,props:s}}return R.Fragment=_,R.jsx=f,R.jsxs=f,R}var b={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react-jsx-runtime.development.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var F;function te(){return F||(F=1,process.env.NODE_ENV!=="production"&&function(){function l(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Z?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case p:return"Fragment";case q:return"Profiler";case U:return"StrictMode";case G:return"Suspense";case X:return"SuspenseList";case H:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case W:return"Portal";case z:return(e.displayName||"Context")+".Provider";case J:return(e._context.displayName||"Context")+".Consumer";case V:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case B:return r=e.displayName||null,r!==null?r:l(e.type)||"Memo";case h:r=e._payload,e=e._init;try{return l(e(r))}catch{}}return null}function _(e){return""+e}function f(e){try{_(e);var r=!1}catch{r=!0}if(r){r=console;var t=r.error,n=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",n),_(e)}}function d(e){if(e===p)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===h)return"<...>";try{var r=l(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function a(){var e=k.A;return e===null?null:e.getOwner()}function s(){return Error("react-stack-top-frame")}function m(e){if(x.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function E(e,r){function t(){y||(y=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}function L(){var e=l(this.type);return N[e]||(N[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function M(e,r,t,n,c,u,A,S){return t=u.ref,e={$$typeof:g,type:e,key:r,props:u,_owner:c},(t!==void 0?t:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:L}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:S}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function w(e,r,t,n,c,u,A,S){var o=r.children;if(o!==void 0)if(n)if(Q(o)){for(n=0;n<o.length;n++)j(o[n]);Object.freeze&&Object.freeze(o)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else j(o);if(x.call(r,"key")){o=l(e);var i=Object.keys(r).filter(function(K){return K!=="key"});n=0<i.length?"{key: someKey, "+i.join(": ..., ")+": ...}":"{key: someKey}",I[o+n]||(i=0<i.length?"{"+i.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
18
|
+
let props = %s;
|
|
19
|
+
<%s {...props} />
|
|
20
|
+
React keys must be passed directly to JSX without using spread:
|
|
21
|
+
let props = %s;
|
|
22
|
+
<%s key={someKey} {...props} />`,n,o,i,o),I[o+n]=!0)}if(o=null,t!==void 0&&(f(t),o=""+t),m(r)&&(f(r.key),o=""+r.key),"key"in r){t={};for(var P in r)P!=="key"&&(t[P]=r[P])}else t=r;return o&&E(t,typeof e=="function"?e.displayName||e.name||"Unknown":e),M(e,o,u,c,a(),t,A,S)}function j(e){typeof e=="object"&&e!==null&&e.$$typeof===g&&e._store&&(e._store.validated=1)}var v=ee,g=Symbol.for("react.transitional.element"),W=Symbol.for("react.portal"),p=Symbol.for("react.fragment"),U=Symbol.for("react.strict_mode"),q=Symbol.for("react.profiler"),J=Symbol.for("react.consumer"),z=Symbol.for("react.context"),V=Symbol.for("react.forward_ref"),G=Symbol.for("react.suspense"),X=Symbol.for("react.suspense_list"),B=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),H=Symbol.for("react.activity"),Z=Symbol.for("react.client.reference"),k=v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,x=Object.prototype.hasOwnProperty,Q=Array.isArray,O=console.createTask?console.createTask:function(){return null};v={"react-stack-bottom-frame":function(e){return e()}};var y,N={},C=v["react-stack-bottom-frame"].bind(v,s)(),Y=O(d(s)),I={};b.Fragment=p,b.jsx=function(e,r,t,n,c){var u=1e4>k.recentlyCreatedOwnerStacks++;return w(e,r,t,!1,n,c,u?Error("react-stack-top-frame"):C,u?O(d(e)):Y)},b.jsxs=function(e,r,t,n,c){var u=1e4>k.recentlyCreatedOwnerStacks++;return w(e,r,t,!0,n,c,u?Error("react-stack-top-frame"):C,u?O(d(e)):Y)}}()),b}var D;function ne(){return D||(D=1,process.env.NODE_ENV==="production"?T.exports=re():T.exports=te()),T.exports}ne();
|
package/dist/ui.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
|
package/dist/ui.es.js
ADDED
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import ee from "react";
|
|
2
|
+
var T = { exports: {} }, R = {};
|
|
3
|
+
/**
|
|
4
|
+
* @license React
|
|
5
|
+
* react-jsx-runtime.production.js
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the MIT license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/
|
|
12
|
+
var $;
|
|
13
|
+
function re() {
|
|
14
|
+
if ($) return R;
|
|
15
|
+
$ = 1;
|
|
16
|
+
var l = Symbol.for("react.transitional.element"), _ = Symbol.for("react.fragment");
|
|
17
|
+
function f(d, a, s) {
|
|
18
|
+
var m = null;
|
|
19
|
+
if (s !== void 0 && (m = "" + s), a.key !== void 0 && (m = "" + a.key), "key" in a) {
|
|
20
|
+
s = {};
|
|
21
|
+
for (var E in a)
|
|
22
|
+
E !== "key" && (s[E] = a[E]);
|
|
23
|
+
} else s = a;
|
|
24
|
+
return a = s.ref, {
|
|
25
|
+
$$typeof: l,
|
|
26
|
+
type: d,
|
|
27
|
+
key: m,
|
|
28
|
+
ref: a !== void 0 ? a : null,
|
|
29
|
+
props: s
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return R.Fragment = _, R.jsx = f, R.jsxs = f, R;
|
|
33
|
+
}
|
|
34
|
+
var b = {};
|
|
35
|
+
/**
|
|
36
|
+
* @license React
|
|
37
|
+
* react-jsx-runtime.development.js
|
|
38
|
+
*
|
|
39
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
40
|
+
*
|
|
41
|
+
* This source code is licensed under the MIT license found in the
|
|
42
|
+
* LICENSE file in the root directory of this source tree.
|
|
43
|
+
*/
|
|
44
|
+
var F;
|
|
45
|
+
function te() {
|
|
46
|
+
return F || (F = 1, process.env.NODE_ENV !== "production" && function() {
|
|
47
|
+
function l(e) {
|
|
48
|
+
if (e == null) return null;
|
|
49
|
+
if (typeof e == "function")
|
|
50
|
+
return e.$$typeof === Z ? null : e.displayName || e.name || null;
|
|
51
|
+
if (typeof e == "string") return e;
|
|
52
|
+
switch (e) {
|
|
53
|
+
case p:
|
|
54
|
+
return "Fragment";
|
|
55
|
+
case q:
|
|
56
|
+
return "Profiler";
|
|
57
|
+
case U:
|
|
58
|
+
return "StrictMode";
|
|
59
|
+
case G:
|
|
60
|
+
return "Suspense";
|
|
61
|
+
case X:
|
|
62
|
+
return "SuspenseList";
|
|
63
|
+
case H:
|
|
64
|
+
return "Activity";
|
|
65
|
+
}
|
|
66
|
+
if (typeof e == "object")
|
|
67
|
+
switch (typeof e.tag == "number" && console.error(
|
|
68
|
+
"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
|
|
69
|
+
), e.$$typeof) {
|
|
70
|
+
case W:
|
|
71
|
+
return "Portal";
|
|
72
|
+
case z:
|
|
73
|
+
return (e.displayName || "Context") + ".Provider";
|
|
74
|
+
case J:
|
|
75
|
+
return (e._context.displayName || "Context") + ".Consumer";
|
|
76
|
+
case V:
|
|
77
|
+
var r = e.render;
|
|
78
|
+
return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
|
|
79
|
+
case B:
|
|
80
|
+
return r = e.displayName || null, r !== null ? r : l(e.type) || "Memo";
|
|
81
|
+
case h:
|
|
82
|
+
r = e._payload, e = e._init;
|
|
83
|
+
try {
|
|
84
|
+
return l(e(r));
|
|
85
|
+
} catch {
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
function _(e) {
|
|
91
|
+
return "" + e;
|
|
92
|
+
}
|
|
93
|
+
function f(e) {
|
|
94
|
+
try {
|
|
95
|
+
_(e);
|
|
96
|
+
var r = !1;
|
|
97
|
+
} catch {
|
|
98
|
+
r = !0;
|
|
99
|
+
}
|
|
100
|
+
if (r) {
|
|
101
|
+
r = console;
|
|
102
|
+
var t = r.error, n = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
|
|
103
|
+
return t.call(
|
|
104
|
+
r,
|
|
105
|
+
"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
|
|
106
|
+
n
|
|
107
|
+
), _(e);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function d(e) {
|
|
111
|
+
if (e === p) return "<>";
|
|
112
|
+
if (typeof e == "object" && e !== null && e.$$typeof === h)
|
|
113
|
+
return "<...>";
|
|
114
|
+
try {
|
|
115
|
+
var r = l(e);
|
|
116
|
+
return r ? "<" + r + ">" : "<...>";
|
|
117
|
+
} catch {
|
|
118
|
+
return "<...>";
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function a() {
|
|
122
|
+
var e = k.A;
|
|
123
|
+
return e === null ? null : e.getOwner();
|
|
124
|
+
}
|
|
125
|
+
function s() {
|
|
126
|
+
return Error("react-stack-top-frame");
|
|
127
|
+
}
|
|
128
|
+
function m(e) {
|
|
129
|
+
if (x.call(e, "key")) {
|
|
130
|
+
var r = Object.getOwnPropertyDescriptor(e, "key").get;
|
|
131
|
+
if (r && r.isReactWarning) return !1;
|
|
132
|
+
}
|
|
133
|
+
return e.key !== void 0;
|
|
134
|
+
}
|
|
135
|
+
function E(e, r) {
|
|
136
|
+
function t() {
|
|
137
|
+
y || (y = !0, console.error(
|
|
138
|
+
"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
|
|
139
|
+
r
|
|
140
|
+
));
|
|
141
|
+
}
|
|
142
|
+
t.isReactWarning = !0, Object.defineProperty(e, "key", {
|
|
143
|
+
get: t,
|
|
144
|
+
configurable: !0
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
function L() {
|
|
148
|
+
var e = l(this.type);
|
|
149
|
+
return N[e] || (N[e] = !0, console.error(
|
|
150
|
+
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
151
|
+
)), e = this.props.ref, e !== void 0 ? e : null;
|
|
152
|
+
}
|
|
153
|
+
function M(e, r, t, n, c, u, A, S) {
|
|
154
|
+
return t = u.ref, e = {
|
|
155
|
+
$$typeof: g,
|
|
156
|
+
type: e,
|
|
157
|
+
key: r,
|
|
158
|
+
props: u,
|
|
159
|
+
_owner: c
|
|
160
|
+
}, (t !== void 0 ? t : null) !== null ? Object.defineProperty(e, "ref", {
|
|
161
|
+
enumerable: !1,
|
|
162
|
+
get: L
|
|
163
|
+
}) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
|
|
164
|
+
configurable: !1,
|
|
165
|
+
enumerable: !1,
|
|
166
|
+
writable: !0,
|
|
167
|
+
value: 0
|
|
168
|
+
}), Object.defineProperty(e, "_debugInfo", {
|
|
169
|
+
configurable: !1,
|
|
170
|
+
enumerable: !1,
|
|
171
|
+
writable: !0,
|
|
172
|
+
value: null
|
|
173
|
+
}), Object.defineProperty(e, "_debugStack", {
|
|
174
|
+
configurable: !1,
|
|
175
|
+
enumerable: !1,
|
|
176
|
+
writable: !0,
|
|
177
|
+
value: A
|
|
178
|
+
}), Object.defineProperty(e, "_debugTask", {
|
|
179
|
+
configurable: !1,
|
|
180
|
+
enumerable: !1,
|
|
181
|
+
writable: !0,
|
|
182
|
+
value: S
|
|
183
|
+
}), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
|
|
184
|
+
}
|
|
185
|
+
function w(e, r, t, n, c, u, A, S) {
|
|
186
|
+
var o = r.children;
|
|
187
|
+
if (o !== void 0)
|
|
188
|
+
if (n)
|
|
189
|
+
if (Q(o)) {
|
|
190
|
+
for (n = 0; n < o.length; n++)
|
|
191
|
+
j(o[n]);
|
|
192
|
+
Object.freeze && Object.freeze(o);
|
|
193
|
+
} else
|
|
194
|
+
console.error(
|
|
195
|
+
"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
|
|
196
|
+
);
|
|
197
|
+
else j(o);
|
|
198
|
+
if (x.call(r, "key")) {
|
|
199
|
+
o = l(e);
|
|
200
|
+
var i = Object.keys(r).filter(function(K) {
|
|
201
|
+
return K !== "key";
|
|
202
|
+
});
|
|
203
|
+
n = 0 < i.length ? "{key: someKey, " + i.join(": ..., ") + ": ...}" : "{key: someKey}", I[o + n] || (i = 0 < i.length ? "{" + i.join(": ..., ") + ": ...}" : "{}", console.error(
|
|
204
|
+
`A props object containing a "key" prop is being spread into JSX:
|
|
205
|
+
let props = %s;
|
|
206
|
+
<%s {...props} />
|
|
207
|
+
React keys must be passed directly to JSX without using spread:
|
|
208
|
+
let props = %s;
|
|
209
|
+
<%s key={someKey} {...props} />`,
|
|
210
|
+
n,
|
|
211
|
+
o,
|
|
212
|
+
i,
|
|
213
|
+
o
|
|
214
|
+
), I[o + n] = !0);
|
|
215
|
+
}
|
|
216
|
+
if (o = null, t !== void 0 && (f(t), o = "" + t), m(r) && (f(r.key), o = "" + r.key), "key" in r) {
|
|
217
|
+
t = {};
|
|
218
|
+
for (var P in r)
|
|
219
|
+
P !== "key" && (t[P] = r[P]);
|
|
220
|
+
} else t = r;
|
|
221
|
+
return o && E(
|
|
222
|
+
t,
|
|
223
|
+
typeof e == "function" ? e.displayName || e.name || "Unknown" : e
|
|
224
|
+
), M(
|
|
225
|
+
e,
|
|
226
|
+
o,
|
|
227
|
+
u,
|
|
228
|
+
c,
|
|
229
|
+
a(),
|
|
230
|
+
t,
|
|
231
|
+
A,
|
|
232
|
+
S
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
function j(e) {
|
|
236
|
+
typeof e == "object" && e !== null && e.$$typeof === g && e._store && (e._store.validated = 1);
|
|
237
|
+
}
|
|
238
|
+
var v = ee, g = Symbol.for("react.transitional.element"), W = Symbol.for("react.portal"), p = Symbol.for("react.fragment"), U = Symbol.for("react.strict_mode"), q = Symbol.for("react.profiler"), J = Symbol.for("react.consumer"), z = Symbol.for("react.context"), V = Symbol.for("react.forward_ref"), G = Symbol.for("react.suspense"), X = Symbol.for("react.suspense_list"), B = Symbol.for("react.memo"), h = Symbol.for("react.lazy"), H = Symbol.for("react.activity"), Z = Symbol.for("react.client.reference"), k = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, x = Object.prototype.hasOwnProperty, Q = Array.isArray, O = console.createTask ? console.createTask : function() {
|
|
239
|
+
return null;
|
|
240
|
+
};
|
|
241
|
+
v = {
|
|
242
|
+
"react-stack-bottom-frame": function(e) {
|
|
243
|
+
return e();
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
var y, N = {}, C = v["react-stack-bottom-frame"].bind(
|
|
247
|
+
v,
|
|
248
|
+
s
|
|
249
|
+
)(), Y = O(d(s)), I = {};
|
|
250
|
+
b.Fragment = p, b.jsx = function(e, r, t, n, c) {
|
|
251
|
+
var u = 1e4 > k.recentlyCreatedOwnerStacks++;
|
|
252
|
+
return w(
|
|
253
|
+
e,
|
|
254
|
+
r,
|
|
255
|
+
t,
|
|
256
|
+
!1,
|
|
257
|
+
n,
|
|
258
|
+
c,
|
|
259
|
+
u ? Error("react-stack-top-frame") : C,
|
|
260
|
+
u ? O(d(e)) : Y
|
|
261
|
+
);
|
|
262
|
+
}, b.jsxs = function(e, r, t, n, c) {
|
|
263
|
+
var u = 1e4 > k.recentlyCreatedOwnerStacks++;
|
|
264
|
+
return w(
|
|
265
|
+
e,
|
|
266
|
+
r,
|
|
267
|
+
t,
|
|
268
|
+
!0,
|
|
269
|
+
n,
|
|
270
|
+
c,
|
|
271
|
+
u ? Error("react-stack-top-frame") : C,
|
|
272
|
+
u ? O(d(e)) : Y
|
|
273
|
+
);
|
|
274
|
+
};
|
|
275
|
+
}()), b;
|
|
276
|
+
}
|
|
277
|
+
var D;
|
|
278
|
+
function ne() {
|
|
279
|
+
return D || (D = 1, process.env.NODE_ENV === "production" ? T.exports = re() : T.exports = te()), T.exports;
|
|
280
|
+
}
|
|
281
|
+
ne();
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@plyaz/ui",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "A reusable, accessible, and themeable component library powering the Plyaz Web App interface. Built with performance and consistency in mind, @plyaz/ui delivers modular React components aligned with the Plyaz design system — enabling seamless development across fan-facing features, quests, NFTs, and loyalty flows in the Web3 ecosystem.",
|
|
5
|
+
"main": "index.ts",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"import": "./dist/ui.es.js",
|
|
13
|
+
"require": "./dist/ui.cjs.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"@tailwindcss/vite": "^4.1.8",
|
|
18
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
19
|
+
"@testing-library/user-event": "^14.6.1",
|
|
20
|
+
"clsx": "^2.1.1",
|
|
21
|
+
"react": "^19.1.0",
|
|
22
|
+
"react-dom": "^19.1.0",
|
|
23
|
+
"tailwindcss": "^4.1.8"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
27
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@eslint/js": "^9.25.0",
|
|
31
|
+
"@storybook/addon-a11y": "^8.6.12",
|
|
32
|
+
"@storybook/addon-controls": "^8.6.12",
|
|
33
|
+
"@storybook/addon-docs": "^8.6.12",
|
|
34
|
+
"@storybook/addon-essentials": "^8.6.12",
|
|
35
|
+
"@storybook/addon-interactions": "^8.6.12",
|
|
36
|
+
"@storybook/addon-onboarding": "^8.6.12",
|
|
37
|
+
"@storybook/addon-viewport": "^8.6.12",
|
|
38
|
+
"@storybook/blocks": "^8.6.12",
|
|
39
|
+
"@storybook/manager-api": "^8.6.12",
|
|
40
|
+
"@storybook/react": "^8.6.12",
|
|
41
|
+
"@storybook/react-vite": "^8.6.12",
|
|
42
|
+
"@storybook/test": "^8.6.12",
|
|
43
|
+
"@storybook/theming": "^8.6.12",
|
|
44
|
+
"@testing-library/dom": "^10.4.0",
|
|
45
|
+
"@testing-library/react": "^16.3.0",
|
|
46
|
+
"@types/react": "^19.1.2",
|
|
47
|
+
"@types/react-dom": "^19.1.2",
|
|
48
|
+
"@vitejs/plugin-react": "^4.4.1",
|
|
49
|
+
"@vitest/coverage-v8": "3.1.3",
|
|
50
|
+
"autoprefixer": "^10.4.21",
|
|
51
|
+
"chromatic": "^11.28.2",
|
|
52
|
+
"eslint": "^9.25.0",
|
|
53
|
+
"eslint-plugin-react-hooks": "^5.2.0",
|
|
54
|
+
"eslint-plugin-react-refresh": "^0.4.19",
|
|
55
|
+
"eslint-plugin-storybook": "^0.12.0",
|
|
56
|
+
"globals": "^16.0.0",
|
|
57
|
+
"happy-dom": "^17.4.7",
|
|
58
|
+
"plop": "^4.0.1",
|
|
59
|
+
"postcss": "^8.5.3",
|
|
60
|
+
"standard-version": "^9.5.0",
|
|
61
|
+
"storybook": "^8.6.12",
|
|
62
|
+
"storybook-addon-tailwind-autodocs": "^1.0.8",
|
|
63
|
+
"ts-node": "^10.9.2",
|
|
64
|
+
"typescript": "~5.8.3",
|
|
65
|
+
"vite": "^6.3.5",
|
|
66
|
+
"vite-plugin-dts": "^4.5.3",
|
|
67
|
+
"vitest": "^3.1.3"
|
|
68
|
+
},
|
|
69
|
+
"eslintConfig": {
|
|
70
|
+
"extends": [
|
|
71
|
+
"plugin:storybook/recommended"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
"packageManager": "pnpm@10.5.2+sha512.da9dc28cd3ff40d0592188235ab25d3202add8a207afbedc682220e4a0029ffbff4562102b9e6e46b4e3f9e8bd53e6d05de48544b0c57d4b0179e22c76d1199b",
|
|
75
|
+
"scripts": {
|
|
76
|
+
"dev": "vite",
|
|
77
|
+
"build": "vite build",
|
|
78
|
+
"preview": "vite preview",
|
|
79
|
+
"lint": "eslint .",
|
|
80
|
+
"storybook": "storybook dev -p 6006",
|
|
81
|
+
"build-storybook": "storybook build",
|
|
82
|
+
"generate": "plop",
|
|
83
|
+
"test": "vitest",
|
|
84
|
+
"coverage": "vitest run --coverage",
|
|
85
|
+
"chromatic": "chromatic",
|
|
86
|
+
"release:publish": "pnpm publish --access public",
|
|
87
|
+
"publish:ci": "pnpm publish --access public --no-git-checks",
|
|
88
|
+
"release": "standard-version"
|
|
89
|
+
}
|
|
90
|
+
}
|