@kaio-xyz/design-system 1.0.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.
- package/README.md +64 -0
- package/dist/components/atoms/badge/badge.d.ts +11 -0
- package/dist/components/atoms/badge/badge.stories.d.ts +29 -0
- package/dist/components/atoms/badge/index.d.ts +1 -0
- package/dist/components/atoms/label/index.d.ts +1 -0
- package/dist/components/atoms/label/label.d.ts +11 -0
- package/dist/index.cjs.js +16 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +14 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/styles.css +1 -0
- package/package.json +59 -0
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @kaio-xyz/design-system
|
|
2
|
+
|
|
3
|
+
React design system for Kaio/Libre projects.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @kaio-xyz/design-system
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
Import styles once in your entry point (e.g. `App.tsx` or `main.tsx`):
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
import "@kaio-xyz/design-system/styles.css";
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then use the components:
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
import { Badge } from "@kaio-xyz/design-system";
|
|
23
|
+
|
|
24
|
+
function App() {
|
|
25
|
+
return (
|
|
26
|
+
<Badge text="Success" status="success" />
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Development
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Install dependencies
|
|
35
|
+
pnpm install
|
|
36
|
+
|
|
37
|
+
# Start Storybook
|
|
38
|
+
pnpm storybook
|
|
39
|
+
|
|
40
|
+
# Build the library
|
|
41
|
+
pnpm build
|
|
42
|
+
|
|
43
|
+
# Watch mode
|
|
44
|
+
pnpm dev
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Storybook
|
|
48
|
+
|
|
49
|
+
View all components and their variants:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pnpm storybook
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Open http://localhost:6006
|
|
56
|
+
|
|
57
|
+
## Requirements
|
|
58
|
+
|
|
59
|
+
- React 18+ or 19+
|
|
60
|
+
- React DOM 18+ or 19+
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
ISC
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type BadgeStatus = "success" | "rejected" | "info" | "warning" | undefined;
|
|
2
|
+
export declare const badgeStatuses: BadgeStatus[];
|
|
3
|
+
export type BadgeProps = {
|
|
4
|
+
text: string;
|
|
5
|
+
fullWidth?: boolean;
|
|
6
|
+
size?: "xs" | "s" | "m" | "l";
|
|
7
|
+
dataTest?: string;
|
|
8
|
+
isLeftAlign?: boolean;
|
|
9
|
+
status?: BadgeStatus;
|
|
10
|
+
};
|
|
11
|
+
export declare const Badge: ({ text, status, fullWidth, size, dataTest, isLeftAlign, }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react";
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: ({ text, status, fullWidth, size, dataTest, isLeftAlign, }: import("./badge").BadgeProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
};
|
|
8
|
+
tags: string[];
|
|
9
|
+
args: {
|
|
10
|
+
text: string;
|
|
11
|
+
fullWidth: false;
|
|
12
|
+
};
|
|
13
|
+
argTypes: {
|
|
14
|
+
text: {
|
|
15
|
+
description: string;
|
|
16
|
+
};
|
|
17
|
+
fullWidth: {
|
|
18
|
+
description: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
type Story = StoryObj<typeof meta>;
|
|
24
|
+
export declare const Default: Story;
|
|
25
|
+
export declare const Success: Story;
|
|
26
|
+
export declare const Rejected: Story;
|
|
27
|
+
export declare const Info: Story;
|
|
28
|
+
export declare const Warning: Story;
|
|
29
|
+
export declare const FullWidth: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Badge } from "./badge";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Label } from './label';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
type LabelProps = {
|
|
3
|
+
id?: string;
|
|
4
|
+
label?: ReactNode;
|
|
5
|
+
className?: string;
|
|
6
|
+
hasMargin?: boolean;
|
|
7
|
+
hasHalfMargin?: boolean;
|
|
8
|
+
hasCursorPointer?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare const Label: ({ id, label, className, hasMargin, hasHalfMargin, hasCursorPointer }: LabelProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
|
|
6
|
+
var baseStyle = {"root":"badge-base-module__root__oUZlm"};
|
|
7
|
+
|
|
8
|
+
var style = {"root":"badge-module__root__rXpaz"};
|
|
9
|
+
|
|
10
|
+
var Badge = function (_a) {
|
|
11
|
+
var text = _a.text, status = _a.status, _b = _a.fullWidth, fullWidth = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? "m" : _c, dataTest = _a.dataTest, _d = _a.isLeftAlign, isLeftAlign = _d === void 0 ? false : _d;
|
|
12
|
+
return (jsxRuntime.jsx("label", { className: clsx(baseStyle.root, style.root), title: text, "data-status": status, "data-full-width": fullWidth, "data-size": size, "data-test": dataTest, "data-is-left-align": isLeftAlign, children: text }));
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
exports.Badge = Badge;
|
|
16
|
+
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/components/atoms/badge/badge.tsx"],"sourcesContent":["import clsx from 'clsx';\n\nimport baseStyle from './badge-base.module.css';\nimport style from './badge.module.css';\n\nexport type BadgeStatus = \"success\" | \"rejected\" | \"info\" | \"warning\" | undefined;\n\nexport const badgeStatuses: BadgeStatus[] = [\"warning\", \"info\", undefined, \"success\"];\n\nexport type BadgeProps = {\n text: string;\n fullWidth?: boolean;\n size?: \"xs\" | \"s\" | \"m\" | \"l\";\n dataTest?: string;\n isLeftAlign?: boolean;\n status?: BadgeStatus;\n};\n\nexport const Badge = ({\n text,\n status,\n fullWidth = false,\n size = \"m\",\n dataTest,\n isLeftAlign = false,\n}: BadgeProps) => (\n <label\n className={clsx(baseStyle.root, style.root)}\n title={text}\n data-status={status}\n data-full-width={fullWidth}\n data-size={size}\n data-test={dataTest}\n data-is-left-align={isLeftAlign}\n >\n {text}\n </label>\n);"],"names":["_jsx"],"mappings":";;;;;;;;;AAkBO,IAAM,KAAK,GAAG,UAAC,EAOT,EAAA;QANT,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA,EACjB,EAAA,GAAA,EAAA,CAAA,IAAU,EAAV,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,GAAG,GAAA,EAAA,EACV,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAA,GAAA,EAAA,CAAA,WAAmB,EAAnB,WAAW,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA;AACL,IAAA,QACdA,cAAA,CAAA,OAAA,EAAA,EACI,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAC3C,KAAK,EAAE,IAAI,EAAA,aAAA,EACE,MAAM,EAAA,iBAAA,EACF,SAAS,EAAA,WAAA,EACf,IAAI,EAAA,WAAA,EACJ,QAAQ,EAAA,oBAAA,EACC,WAAW,EAAA,QAAA,EAE9B,IAAI,GACD;AAXM;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
|
|
4
|
+
var baseStyle = {"root":"badge-base-module__root__oUZlm"};
|
|
5
|
+
|
|
6
|
+
var style = {"root":"badge-module__root__rXpaz"};
|
|
7
|
+
|
|
8
|
+
var Badge = function (_a) {
|
|
9
|
+
var text = _a.text, status = _a.status, _b = _a.fullWidth, fullWidth = _b === void 0 ? false : _b, _c = _a.size, size = _c === void 0 ? "m" : _c, dataTest = _a.dataTest, _d = _a.isLeftAlign, isLeftAlign = _d === void 0 ? false : _d;
|
|
10
|
+
return (jsx("label", { className: clsx(baseStyle.root, style.root), title: text, "data-status": status, "data-full-width": fullWidth, "data-size": size, "data-test": dataTest, "data-is-left-align": isLeftAlign, children: text }));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { Badge };
|
|
14
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/components/atoms/badge/badge.tsx"],"sourcesContent":["import clsx from 'clsx';\n\nimport baseStyle from './badge-base.module.css';\nimport style from './badge.module.css';\n\nexport type BadgeStatus = \"success\" | \"rejected\" | \"info\" | \"warning\" | undefined;\n\nexport const badgeStatuses: BadgeStatus[] = [\"warning\", \"info\", undefined, \"success\"];\n\nexport type BadgeProps = {\n text: string;\n fullWidth?: boolean;\n size?: \"xs\" | \"s\" | \"m\" | \"l\";\n dataTest?: string;\n isLeftAlign?: boolean;\n status?: BadgeStatus;\n};\n\nexport const Badge = ({\n text,\n status,\n fullWidth = false,\n size = \"m\",\n dataTest,\n isLeftAlign = false,\n}: BadgeProps) => (\n <label\n className={clsx(baseStyle.root, style.root)}\n title={text}\n data-status={status}\n data-full-width={fullWidth}\n data-size={size}\n data-test={dataTest}\n data-is-left-align={isLeftAlign}\n >\n {text}\n </label>\n);"],"names":["_jsx"],"mappings":";;;;;;;AAkBO,IAAM,KAAK,GAAG,UAAC,EAOT,EAAA;QANT,IAAI,GAAA,EAAA,CAAA,IAAA,EACJ,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,EAAA,GAAA,EAAA,CAAA,SAAiB,EAAjB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA,EACjB,EAAA,GAAA,EAAA,CAAA,IAAU,EAAV,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,GAAG,GAAA,EAAA,EACV,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAAA,GAAA,EAAA,CAAA,WAAmB,EAAnB,WAAW,GAAA,EAAA,KAAA,MAAA,GAAG,KAAK,GAAA,EAAA;AACL,IAAA,QACdA,GAAA,CAAA,OAAA,EAAA,EACI,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAC3C,KAAK,EAAE,IAAI,EAAA,aAAA,EACE,MAAM,EAAA,iBAAA,EACF,SAAS,EAAA,WAAA,EACf,IAAI,EAAA,WAAA,EACJ,QAAQ,EAAA,oBAAA,EACC,WAAW,EAAA,QAAA,EAE9B,IAAI,GACD;AAXM;;;;"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--primary-100:225,71%,55%;--primary-80:225,71%,60%;--primary-50:225,71%,80%;--primary-20:225,71%,90%;--neutral-0:0,0%,100%;--neutral-10:0,0%,95%;--neutral-20:0,0%,90%;--neutral-30:0,0%,85%;--neutral-40:0,0%,80%;--neutral-80:0,0%,30%;--neutral-100:0,0%,10%;--support-white:0,0%,100%;--support-white-93:0,0%,93%;--support-white-80:0,0%,80%;--support-white-96:0,0%,96%;--support-white-98:0,0%,98%;--support-black:0,0%,0%;--support-black-80:0,0%,0%,80%;--support-black-50:0,0%,0%,50%;--support-black-40:0,0%,0%,40%;--support-gray:211,25%,84%;--support-gray-dark:211,7%,47%;--support-gray-medium:240,13%,65%;--support-gray-light:0,0%,95%;--support-blue:211,61%,43%;--support-blue-light:202,81%,86%;--support-gold:45,51%,50%;--semantic-success:104,71%,31%;--semantic-success-light:124,45%,61%;--semantic-warning:43,100%,52%;--semantic-warning-light:52,92%,56%;--semantic-warning-dark:35,100%,34%;--semantic-error:0,76%,57%;--semantic-error-light:0,76%,90%;--semantic-info:195,100%,68%;--semantic-info-dark:196,100%,31%;--small-container:820px;--medium-container:1024px;--large-container:1440px;--space-2-px:2px;--space-4-px:4px;--space-6-px:6px;--space-8-px:8px;--space-12-px:12px;--space-14-px:14px;--space-16-px:16px;--space-20-px:20px;--space-24-px:24px;--space-28-px:28px;--space-32-px:32px;--space-42-px:42px;--space-64-px:64px;--radius-3-px:3px;--radius-6-px:6px;--radius-16-px:16px;--font-size-10-px:10px;--font-size-12-px:12px;--font-size-14-px:14px;--font-size-16-px:16px;--font-size-18-px:18px;--font-size-20-px:20px;--font-size-26-px:26px;--font-size-40-px:40px;--time-100-ms:100ms;--time-200-ms:200ms;--time-250-ms:250ms;--time-300-ms:300ms;--time-500-ms:500ms;--font-weight-light:300;--font-weight-regular:400;--font-weight-semibold:600;--blur-filter:1px;--header-height:70px;--navigation-menu-height:46px;--sidebar-width:200px;--sidebar-width--mobile:120px;--sidebar-collapsed-width:79px;--shadow-low:0 2px 0px rgba(0,0,0,.1),0 2px rgba(0,0,0,.05);--shadow-base:0 4px 8px rgba(0,0,0,.1),0 0 4px rgba(0,0,0,.05);--shadow-mid:0px 5px 20px -5px rgba(61,62,63,.225),0px 5px 11px -7px rgba(61,62,63,.13);--shadow-warning-mid:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px hsl(var(--semantic-warning));--shadow-error-mid:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px hsl(var(--semantic-error));--shadow-info-mid:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px hsl(var(--semantic-info));--ease-standard-css:cubic-bezier(0.3,0.07,0.034,1)}.badge-base-module__root__oUZlm{background-color:hsla(var(--support-gray),20%);border-radius:var(--radius-3-px);color:hsl(var(--support-gray-dark));display:inline-block;font-size:var(--font-size-14-px);font-weight:var(--font-weight-semibold);min-width:120px;padding:var(--space-6-px) var(--space-12-px);pointer-events:none;text-align:center}.badge-base-module__root__oUZlm[data-full-width=true]{width:100%}.badge-base-module__root__oUZlm[data-is-left-align=true]{text-align:left}.badge-base-module__root__oUZlm[data-size=xs]{font-size:var(--font-size-10-px);min-width:60px;padding:var(--space-2-px) var(--space-4-px)}.badge-base-module__root__oUZlm[data-size=s]{font-size:var(--font-size-12-px);min-width:80px;padding:var(--space-4-px) var(--space-4-px)}.badge-base-module__root__oUZlm[data-size=m]{font-size:var(--font-size-14-px);min-width:120px;padding:var(--space-4-px) var(--space-8-px)}.badge-base-module__root__oUZlm[data-size=l]{font-size:var(--font-size-16-px);min-width:160px;padding:var(--space-8-px) var(--space-12-px)}.badge-module__root__rXpaz[data-status=success]{background-color:hsla(var(--semantic-success),20%);color:hsl(var(--semantic-success))}.badge-module__root__rXpaz[data-status=info]{background-color:hsla(var(--semantic-info),20%);color:hsl(var(--semantic-info-dark))}.badge-module__root__rXpaz[data-status=warning]{background-color:hsla(var(--semantic-warning-light),20%);color:hsl(var(--semantic-warning-dark))}.badge-module__root__rXpaz[data-status=rejected]{background-color:hsla(var(--semantic-error),20%);color:hsl(var(--semantic-error))}
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kaio-xyz/design-system",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "dist/index.cjs.js",
|
|
6
|
+
"module": "dist/index.esm.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "rollup -c",
|
|
11
|
+
"dev": "rollup -c -w",
|
|
12
|
+
"storybook": "storybook dev -p 6006",
|
|
13
|
+
"build-storybook": "storybook build"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [],
|
|
16
|
+
"author": "",
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"packageManager": "pnpm@10.24.0",
|
|
19
|
+
"peerDependencies": {
|
|
20
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
21
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@csstools/postcss-design-tokens": "^4.0.5",
|
|
25
|
+
"@rollup/plugin-typescript": "12.3.0",
|
|
26
|
+
"@storybook/addon-docs": "^10.1.4",
|
|
27
|
+
"@storybook/blocks": "^8.6.14",
|
|
28
|
+
"@storybook/react": "^10.1.4",
|
|
29
|
+
"@storybook/react-vite": "^10.1.4",
|
|
30
|
+
"@types/react": "19.2.7",
|
|
31
|
+
"clsx": "^2.1.1",
|
|
32
|
+
"postcss": "8.5.6",
|
|
33
|
+
"postcss-custom-media": "11.0.6",
|
|
34
|
+
"postcss-import": "^16.1.1",
|
|
35
|
+
"postcss-normalize": "^13.0.1",
|
|
36
|
+
"postcss-preset-env": "10.5.0",
|
|
37
|
+
"react": "19.2.1",
|
|
38
|
+
"react-dom": "19.2.1",
|
|
39
|
+
"rollup": "4.53.3",
|
|
40
|
+
"rollup-plugin-postcss": "4.0.2",
|
|
41
|
+
"storybook": "^10.1.4",
|
|
42
|
+
"tslib": "2.8.1",
|
|
43
|
+
"typescript": "5.9.3"
|
|
44
|
+
},
|
|
45
|
+
"exports": {
|
|
46
|
+
".": {
|
|
47
|
+
"types": "./dist/index.d.ts",
|
|
48
|
+
"import": "./dist/index.esm.js",
|
|
49
|
+
"require": "./dist/index.cjs.js"
|
|
50
|
+
},
|
|
51
|
+
"./styles.css": "./dist/styles.css"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"dist"
|
|
55
|
+
],
|
|
56
|
+
"sideEffects": [
|
|
57
|
+
"**/*.css"
|
|
58
|
+
]
|
|
59
|
+
}
|