@situaction/traq-ui-ste 1.0.6 → 1.0.8

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 (41) hide show
  1. package/dist/components/button/Button.d.ts +16 -0
  2. package/dist/components/button/Button.js +52 -0
  3. package/dist/components/theme/ThemeContext.d.ts +12 -0
  4. package/dist/components/theme/ThemeContext.js +17 -0
  5. package/dist/components/theme/createTheme.d.ts +7 -0
  6. package/dist/components/theme/createTheme.js +1 -0
  7. package/dist/fonts/Unbounded-Black.ttf +0 -0
  8. package/dist/fonts/Unbounded-Bold.ttf +0 -0
  9. package/dist/fonts/Unbounded-ExtraBold.ttf +0 -0
  10. package/dist/fonts/Unbounded-ExtraLight.ttf +0 -0
  11. package/dist/fonts/Unbounded-Light.ttf +0 -0
  12. package/dist/fonts/Unbounded-Medium.ttf +0 -0
  13. package/dist/fonts/Unbounded-Regular.ttf +0 -0
  14. package/dist/fonts/Unbounded-SemiBold.ttf +0 -0
  15. package/dist/fonts/Urbanist-Black.ttf +0 -0
  16. package/dist/fonts/Urbanist-BlackItalic.ttf +0 -0
  17. package/dist/fonts/Urbanist-Bold.ttf +0 -0
  18. package/dist/fonts/Urbanist-BoldItalic.ttf +0 -0
  19. package/dist/fonts/Urbanist-ExtraBold.ttf +0 -0
  20. package/dist/fonts/Urbanist-ExtraBoldItalic.ttf +0 -0
  21. package/dist/fonts/Urbanist-ExtraLight.ttf +0 -0
  22. package/dist/fonts/Urbanist-ExtraLightItalic.ttf +0 -0
  23. package/dist/fonts/Urbanist-Italic.ttf +0 -0
  24. package/dist/fonts/Urbanist-Light.ttf +0 -0
  25. package/dist/fonts/Urbanist-LightItalic.ttf +0 -0
  26. package/dist/fonts/Urbanist-Medium.ttf +0 -0
  27. package/dist/fonts/Urbanist-MediumItalic.ttf +0 -0
  28. package/dist/fonts/Urbanist-Regular.ttf +0 -0
  29. package/dist/fonts/Urbanist-SemiBold.ttf +0 -0
  30. package/dist/fonts/Urbanist-SemiBoldItalic.ttf +0 -0
  31. package/dist/fonts/Urbanist-Thin.ttf +0 -0
  32. package/dist/fonts/Urbanist-ThinItalic.ttf +0 -0
  33. package/dist/main.d.ts +4 -2
  34. package/dist/main.js +7 -4
  35. package/dist/styles/Button.css +1 -1
  36. package/dist/styles/main.css +1 -0
  37. package/package.json +14 -2
  38. package/dist/components/Button/Button.d.ts +0 -27
  39. package/dist/components/Button/Button.js +0 -30
  40. /package/dist/components/{Input → input}/Input.d.ts +0 -0
  41. /package/dist/components/{Input → input}/Input.js +0 -0
@@ -0,0 +1,16 @@
1
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
2
+
3
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
+ mode?: string; /** Is this the principal call to action on the page? */
5
+ color?: string; /** What background color to use (blue, red, ...)*/
6
+ size?: 's' | 'm' | 'l' | 'xl'; /** How large should the button be? */
7
+ label: string; /** button contents */
8
+ children?: ReactNode; /** Additional content inside the button */
9
+ childrenPosition?: 'left' | 'right' | 'both'; /** Position of the children relative to the label */
10
+ onClick?: () => void; /** Optional click handler */
11
+ }
12
+ /**
13
+ * Primary UI component for user interaction
14
+ */
15
+ export declare const Button: ({ mode, size, color, label, children, childrenPosition, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,52 @@
1
+ import { jsxs as m, jsx as s } from "react/jsx-runtime";
2
+ import '../../styles/Button.css';const l = "_button_hzvpr_28", n = {
3
+ button: l,
4
+ "button-primary": "_button-primary_hzvpr_44",
5
+ "button-secondary": "_button-secondary_hzvpr_58",
6
+ "button-size-xl": "_button-size-xl_hzvpr_62",
7
+ "button-size-l": "_button-size-l_hzvpr_67",
8
+ "button-size-m": "_button-size-m_hzvpr_72",
9
+ "button-size-s": "_button-size-s_hzvpr_77",
10
+ "button-gap-xl": "_button-gap-xl_hzvpr_82",
11
+ "button-gap-l": "_button-gap-l_hzvpr_85",
12
+ "button-gap-m": "_button-gap-m_hzvpr_88",
13
+ "button-gap-s": "_button-gap-s_hzvpr_88"
14
+ }, v = ({
15
+ mode: b = "primary",
16
+ size: a = "m",
17
+ color: t = "blue",
18
+ label: p,
19
+ children: o,
20
+ childrenPosition: r,
21
+ ...u
22
+ }) => {
23
+ const _ = [
24
+ n.button,
25
+ n[`button-${b}`],
26
+ n[`button-size-${a}`],
27
+ n[`button-gap-${a}`],
28
+ "flexHorizontalCenter"
29
+ ].join(" "), e = {
30
+ "--dynamic-color": `var(--primary-color-${t})`,
31
+ "--dynamic-hover-color": `var(--primary-color-hover-${t})`,
32
+ "--dynamic-pressed-color": `var(--primary-color-pressed-${t})`,
33
+ "--dynamic-disabled-color": `var(--primary-color-disabled-${t})`
34
+ };
35
+ return /* @__PURE__ */ m(
36
+ "button",
37
+ {
38
+ type: "button",
39
+ className: _,
40
+ style: e,
41
+ ...u,
42
+ children: [
43
+ (r === "left" || r === "both") && o && /* @__PURE__ */ s("span", { children: o }),
44
+ /* @__PURE__ */ s("span", { children: p }),
45
+ (r === "right" || r === "both") && o && /* @__PURE__ */ s("span", { children: o })
46
+ ]
47
+ }
48
+ );
49
+ };
50
+ export {
51
+ v as Button
52
+ };
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ type Theme = 'light' | 'dark';
4
+ interface ThemeContextType {
5
+ theme: Theme;
6
+ toggleTheme: () => void;
7
+ }
8
+ export declare const ThemeProvider: ({ children }: {
9
+ children: ReactNode;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const useTheme: () => ThemeContextType;
12
+ export {};
@@ -0,0 +1,17 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { createContext as m, useState as s, useContext as d } from "react";
3
+ const r = m(void 0), a = ({ children: e }) => {
4
+ const [t, h] = s("light"), i = () => {
5
+ h((n) => n === "light" ? "dark" : "light");
6
+ };
7
+ return /* @__PURE__ */ o(r.Provider, { value: { theme: t, toggleTheme: i }, children: /* @__PURE__ */ o("div", { "data-theme": t, children: e }) });
8
+ }, v = () => {
9
+ const e = d(r);
10
+ if (e === void 0)
11
+ throw new Error("useTheme must be used within a ThemeProvider");
12
+ return e;
13
+ };
14
+ export {
15
+ a as ThemeProvider,
16
+ v as useTheme
17
+ };
@@ -0,0 +1,7 @@
1
+ declare const baseTheme: {
2
+ typography: {
3
+ fontFamily: string;
4
+ fontSize: number;
5
+ fontFamilySecondary: string;
6
+ };
7
+ };
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/dist/main.d.ts CHANGED
@@ -1,2 +1,4 @@
1
- export { Button } from './components/Button/Button';
2
- export { Input } from './components/Input/Input';
1
+ /** Export components **/
2
+ export { Button } from './components/button/Button';
3
+ export { Input } from './components/input/Input';
4
+ export { ThemeProvider, useTheme } from './components/theme/ThemeContext';
package/dist/main.js CHANGED
@@ -1,6 +1,9 @@
1
- import { Button as r } from "./components/Button/Button.js";
2
- import { Input as e } from "./components/Input/Input.js";
3
- export {
1
+ import { Button as r } from "./components/button/Button.js";
2
+ import { Input as m } from "./components/input/Input.js";
3
+ import { ThemeProvider as f, useTheme as u } from "./components/theme/ThemeContext.js";
4
+ import './styles/main.css';export {
4
5
  r as Button,
5
- e as Input
6
+ m as Input,
7
+ f as ThemeProvider,
8
+ u as useTheme
6
9
  };
@@ -1 +1 @@
1
- ._storybook-button_rvsxb_1{font-family:Nunito Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:700;border:0;border-radius:3em;cursor:pointer;display:inline-block;line-height:1}._storybook-button--primary_rvsxb_11{color:#fff;background-color:#49259e}._storybook-button--secondary_rvsxb_16{color:#333;background-color:transparent;box-shadow:#00000026 0 0 0 1px inset}._storybook-button--small_rvsxb_22{font-size:12px;padding:10px 16px}._storybook-button--medium_rvsxb_27{font-size:14px;padding:11px 20px}._storybook-button--large_rvsxb_32{font-size:16px;padding:12px 24px}
1
+ [data-theme=light]{--primary-color-blue: #1D3557;--primary-color-hover-blue: #1F416D;--primary-color-pressed-blue: #214B83;--primary-color-disabled-blue: #E5E7EA;--primary-color-text: #FFF;--primary-color-red: #dc3545;--primary-color-hover-red: #c82333;--primary-color-pressed-red: #bd2130;--primary-color-disabled-red: #c0c0c0}[data-theme=dark]{--primary-color-blue: #C3E9FD;--primary-color-hover-blue: #DFF1FF;--primary-color-pressed-blue: #EFF8FF;--primary-color-disabled-blue: #383F45;--primary-color-text: #1D3557;--primary-color-red: #bd7c88;--primary-color-hover-red: #80464c;--primary-color-pressed-red: #503135;--primary-color-disabled-red: #c0c0c0}._button_hzvpr_28{font-family:Urbanist,sans-serif;font-weight:500;border:0;border-radius:8px;cursor:pointer;display:inline-block;line-height:1;box-shadow:0 4px 10px #00000008;width:fit-content}._button_hzvpr_28:focus{outline:2px solid var(--dynamic-color);outline-offset:2px}._button-primary_hzvpr_44{color:var(--primary-color-text);background-color:var(--dynamic-color)}._button-primary_hzvpr_44:hover{background-color:var(--dynamic-hover-color)}._button-primary_hzvpr_44:active{background-color:var(--dynamic-pressed-color)}._button-primary_hzvpr_44:disabled{background-color:var(--dynamic-disabled-color);cursor:initial}._button-secondary_hzvpr_58{color:#333;background-color:transparent}._button-size-xl_hzvpr_62{padding:16px 32px;font-size:1.125em;line-height:28px}._button-size-l_hzvpr_67{padding:12px 24px;font-size:1em;line-height:24px}._button-size-m_hzvpr_72{padding:8px 16px;font-size:.875em;line-height:22px}._button-size-s_hzvpr_77{padding:6px 12px;font-size:.75em;line-height:16px}._button-gap-xl_hzvpr_82{gap:12px}._button-gap-l_hzvpr_85{gap:8px}._button-gap-m_hzvpr_88,._button-gap-s_hzvpr_88{gap:4px}
@@ -0,0 +1 @@
1
+ @font-face{font-family:Urbanist-Thin;src:url(/fonts/Urbanist-Thin.ttf) format("truetype");font-weight:100;font-style:normal}@font-face{font-family:Urbanist-Extra-Light;src:url(/fonts/Urbanist-ExtraLight.ttf) format("truetype");font-weight:200;font-style:normal}@font-face{font-family:Urbanist-Light;src:url(/fonts/Urbanist-Light.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Urbanist-Regular;src:url(/fonts/Urbanist-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Urbanist;src:url(/fonts/Urbanist-Medium.ttf) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:Urbanist-Back;src:url(/fonts/Urbanist-Black.ttf) format("truetype");font-weight:600;font-style:normal}@font-face{font-family:Urbanist-Semi-Bold;src:url(/fonts/Urbanist-SemiBold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Urbanist-Bold;src:url(/fonts/Urbanist-Bold.ttf) format("truetype");font-weight:800;font-style:normal}@font-face{font-family:Urbanist-Extra-Bold;src:url(/fonts/Urbanist-ExtraBold.ttf) format("truetype");font-weight:900;font-style:normal}:root,body{font-family:Urbanist,sans-serif}.fontUrbanist{font-family:Urbanist,sans-serif}.flexHorizontal{display:flex;justify-content:flex-start;align-items:center;flex-direction:row}.flexHorizontalCenter{display:flex;justify-content:center;align-items:center;flex-direction:row}.flexVertical{display:flex;justify-content:flex-start;align-items:center;flex-direction:column}.flexVerticalCenter{display:flex;justify-content:center;align-items:center;flex-direction:row}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}html{overflow-x:hidden}body{line-height:1;width:100vw;height:100vh}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}button{border:none;padding:0;cursor:pointer}[data-theme=light]{--primary-color-blue: #1D3557;--primary-color-hover-blue: #1F416D;--primary-color-pressed-blue: #214B83;--primary-color-disabled-blue: #E5E7EA;--primary-color-text: #FFF;--primary-color-red: #dc3545;--primary-color-hover-red: #c82333;--primary-color-pressed-red: #bd2130;--primary-color-disabled-red: #c0c0c0}[data-theme=dark]{--primary-color-blue: #C3E9FD;--primary-color-hover-blue: #DFF1FF;--primary-color-pressed-blue: #EFF8FF;--primary-color-disabled-blue: #383F45;--primary-color-text: #1D3557;--primary-color-red: #bd7c88;--primary-color-hover-red: #80464c;--primary-color-pressed-red: #503135;--primary-color-disabled-red: #c0c0c0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@situaction/traq-ui-ste",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "library react component Situaction",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",
@@ -9,6 +9,7 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "dev": "vite",
12
+ "test": "jest",
12
13
  "build": "tsc --p ./tsconfig-build.json && vite build",
13
14
  "prepublish": "npm run build",
14
15
  "publish": "npm publish --access public",
@@ -43,6 +44,10 @@
43
44
  "@storybook/react": "^8.1.9",
44
45
  "@storybook/react-vite": "^8.1.9",
45
46
  "@storybook/test": "^8.1.9",
47
+ "@testing-library/jest-dom": "^6.4.6",
48
+ "@testing-library/react": "^16.0.0",
49
+ "@testing-library/user-event": "^14.5.2",
50
+ "@types/jest": "^29.5.12",
46
51
  "@types/node": "^20.14.2",
47
52
  "@types/react": "^18.2.66",
48
53
  "@types/react-dom": "^18.2.22",
@@ -55,16 +60,23 @@
55
60
  "eslint-plugin-react-refresh": "^0.4.6",
56
61
  "eslint-plugin-storybook": "^0.8.0",
57
62
  "glob": "^10.4.1",
63
+ "identity-obj-proxy": "^3.0.0",
64
+ "jest": "^29.7.0",
65
+ "jest-environment-jsdom": "^29.7.0",
66
+ "rollup-plugin-copy": "^3.5.0",
58
67
  "sass": "^1.77.5",
59
68
  "sass-loader": "^14.2.0",
60
69
  "storybook": "^8.1.9",
61
70
  "style-loader": "^4.0.0",
71
+ "ts-jest": "^29.1.5",
72
+ "ts-node": "^10.9.2",
62
73
  "typescript": "^5.2.2",
63
74
  "vite": "^5.2.0",
64
75
  "vite-plugin-dts": "^3.9.1",
65
76
  "vite-plugin-lib-inject-css": "^2.1.1"
66
77
  },
67
78
  "dependencies": {
68
- "storybook-figma": "^0.1.2"
79
+ "storybook-figma": "^0.1.2",
80
+ "storybook-react-context": "^0.6.0"
69
81
  }
70
82
  }
@@ -1,27 +0,0 @@
1
- interface ButtonProps {
2
- /**
3
- * Is this the principal call to action on the page?
4
- */
5
- primary?: boolean;
6
- /**
7
- * What background color to use
8
- */
9
- backgroundColor?: string;
10
- /**
11
- * How large should the button be?
12
- */
13
- size?: 'small' | 'medium' | 'large';
14
- /**
15
- * Button contents
16
- */
17
- label: string;
18
- /**
19
- * Optional click handler
20
- */
21
- onClick?: () => void;
22
- }
23
- /**
24
- * Primary UI component for user interaction
25
- */
26
- export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
27
- export {};
@@ -1,30 +0,0 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import '../../styles/Button.css';const o = {
3
- "storybook-button": "_storybook-button_rvsxb_1",
4
- "storybook-button--primary": "_storybook-button--primary_rvsxb_11",
5
- "storybook-button--secondary": "_storybook-button--secondary_rvsxb_16",
6
- "storybook-button--small": "_storybook-button--small_rvsxb_22",
7
- "storybook-button--medium": "_storybook-button--medium_rvsxb_27",
8
- "storybook-button--large": "_storybook-button--large_rvsxb_32"
9
- }, e = ({
10
- primary: t = !1,
11
- size: b = "medium",
12
- backgroundColor: r,
13
- label: s,
14
- ...n
15
- }) => {
16
- const y = t ? o["storybook-button--primary"] : o["storybook-button--secondary"];
17
- return /* @__PURE__ */ u(
18
- "button",
19
- {
20
- type: "button",
21
- className: [o["storybook-button"], o[`storybook-button--${b}`], y].join(" "),
22
- style: { backgroundColor: r },
23
- ...n,
24
- children: s
25
- }
26
- );
27
- };
28
- export {
29
- e as Button
30
- };
File without changes
File without changes