thailife-react 0.0.12 → 0.0.13

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.
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface ThemeProviderProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const ThemeProvider: React.FC<ThemeProviderProps>;
6
+ export default ThemeProvider;
7
+ //# sourceMappingURL=ThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/styles/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAEtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,6 +1,4 @@
1
- import "./globals.css";
2
- export declare const styles: {
3
- globals: string;
4
- components: string;
5
- };
1
+ export { default as theme } from "./theme";
2
+ export { default as ThemeProvider } from "./ThemeProvider";
3
+ export type { Theme } from "./theme";
6
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,CAAC;AAGvB,eAAO,MAAM,MAAM;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/styles/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,87 @@
1
+ export declare const theme: {
2
+ readonly colors: {
3
+ readonly primary: "#007AC2";
4
+ readonly error: "#ff1100";
5
+ readonly dark: "#333333";
6
+ readonly light: "#666666";
7
+ readonly white: "#ffffff";
8
+ readonly black: "#000000";
9
+ readonly gray: {
10
+ readonly 50: "#f9fafb";
11
+ readonly 100: "#f3f4f6";
12
+ readonly 200: "#e5e7eb";
13
+ readonly 300: "#d1d5db";
14
+ readonly 400: "#9ca3af";
15
+ readonly 500: "#6b7280";
16
+ readonly 600: "#4b5563";
17
+ readonly 700: "#374151";
18
+ readonly 800: "#1f2937";
19
+ readonly 900: "#111827";
20
+ };
21
+ };
22
+ readonly spacing: {
23
+ readonly 0: "0";
24
+ readonly 1: "0.25rem";
25
+ readonly 2: "0.5rem";
26
+ readonly 3: "0.75rem";
27
+ readonly 4: "1rem";
28
+ readonly 5: "1.25rem";
29
+ readonly 6: "1.5rem";
30
+ readonly 8: "2rem";
31
+ readonly 10: "2.5rem";
32
+ readonly 12: "3rem";
33
+ readonly 16: "4rem";
34
+ readonly 18: "4.5rem";
35
+ readonly 20: "5rem";
36
+ readonly 24: "6rem";
37
+ readonly 32: "8rem";
38
+ readonly 40: "10rem";
39
+ readonly 48: "12rem";
40
+ readonly 56: "14rem";
41
+ readonly 64: "16rem";
42
+ readonly 88: "22rem";
43
+ };
44
+ readonly fontSize: {
45
+ readonly xs: "0.75rem";
46
+ readonly sm: "0.875rem";
47
+ readonly base: "1rem";
48
+ readonly lg: "1.125rem";
49
+ readonly xl: "1.25rem";
50
+ readonly "2xl": "1.5rem";
51
+ readonly "3xl": "1.875rem";
52
+ readonly "4xl": "2.25rem";
53
+ readonly "5xl": "3rem";
54
+ readonly "6xl": "3.75rem";
55
+ };
56
+ readonly fontFamily: {
57
+ readonly sans: readonly ["Inter", "system-ui", "sans-serif"];
58
+ readonly serif: readonly ["Georgia", "Cambria", "Times New Roman", "Times", "serif"];
59
+ readonly mono: readonly ["Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", "monospace"];
60
+ };
61
+ readonly borderRadius: {
62
+ readonly none: "0";
63
+ readonly sm: "0.125rem";
64
+ readonly base: "0.25rem";
65
+ readonly md: "0.375rem";
66
+ readonly lg: "0.5rem";
67
+ readonly xl: "0.75rem";
68
+ readonly "2xl": "1rem";
69
+ readonly "3xl": "1.5rem";
70
+ readonly full: "9999px";
71
+ };
72
+ readonly shadows: {
73
+ readonly sm: "0 1px 2px 0 rgba(0, 0, 0, 0.05)";
74
+ readonly base: "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)";
75
+ readonly md: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)";
76
+ readonly lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)";
77
+ readonly xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)";
78
+ };
79
+ readonly transitions: {
80
+ readonly fast: "150ms ease-in-out";
81
+ readonly base: "300ms ease-in-out";
82
+ readonly slow: "500ms ease-in-out";
83
+ };
84
+ };
85
+ export type Theme = typeof theme;
86
+ export default theme;
87
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/styles/theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFR,CAAC;AAEX,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC;AACjC,eAAe,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "thailife-react",
3
- "version": "0.0.12",
4
- "description": "A modern UI library built with React and Tailwind CSS",
3
+ "version": "0.0.13",
4
+ "description": "A modern UI library built with React and styled-components",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",
7
7
  "types": "dist/index.d.ts",
@@ -10,9 +10,8 @@
10
10
  "dist"
11
11
  ],
12
12
  "scripts": {
13
- "build": "rollup -c rollup.config.mjs && tsc --emitDeclarationOnly && npm run build:css",
13
+ "build": "rollup -c rollup.config.mjs && tsc --emitDeclarationOnly",
14
14
  "build:watch": "rollup -c rollup.config.mjs -w",
15
- "build:css": "node scripts/build-css.js",
16
15
  "storybook": "storybook dev -p 6006",
17
16
  "build-storybook": "storybook build",
18
17
  "test": "jest --config jest.config.cjs",
@@ -26,7 +25,7 @@
26
25
  "react",
27
26
  "ui",
28
27
  "components",
29
- "tailwindcss",
28
+ "styled-components",
30
29
  "typescript"
31
30
  ],
32
31
  "author": "ThaiLife",
@@ -70,7 +69,6 @@
70
69
  "@typescript-eslint/eslint-plugin": "^6.9.0",
71
70
  "@typescript-eslint/parser": "^6.9.0",
72
71
  "@vitejs/plugin-react": "^4.1.0",
73
- "autoprefixer": "^10.4.0",
74
72
  "clsx": "^2.0.0",
75
73
  "eslint": "^8.52.0",
76
74
  "eslint-plugin-react": "^7.33.0",
@@ -79,17 +77,16 @@
79
77
  "identity-obj-proxy": "^3.0.0",
80
78
  "jest": "^29.7.0",
81
79
  "jest-environment-jsdom": "^29.7.0",
82
- "postcss": "^8.4.0",
83
- "postcss-import": "16.1.1",
84
- "postcss-preset-env": "10.3.0",
85
80
  "react": "^18.3.1",
86
81
  "react-dom": "^18.3.1",
87
82
  "rollup": "^4.1.0",
88
- "rollup-plugin-postcss": "^4.0.0",
89
83
  "storybook": "^7.5.0",
90
- "tailwindcss": "^3.3.0",
91
84
  "ts-jest": "^29.1.0",
92
85
  "typescript": "^5.2.0",
93
86
  "vite": "^5.0.0"
87
+ },
88
+ "dependencies": {
89
+ "@types/styled-components": "5.1.34",
90
+ "styled-components": "6.1.19"
94
91
  }
95
92
  }
@@ -1,35 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- /* @layer base {
6
- * {
7
- @apply border-border;
8
- }
9
-
10
- body {
11
- @apply bg-background text-foreground;
12
- }
13
- }
14
-
15
- @layer components {
16
- .btn {
17
- @apply inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background;
18
- }
19
-
20
- .btn-primary {
21
- @apply bg-primary text-primary-foreground hover:bg-primary/90;
22
- }
23
-
24
- .btn-secondary {
25
- @apply bg-secondary text-secondary-foreground hover:bg-secondary/80;
26
- }
27
-
28
- .btn-outline {
29
- @apply border border-input hover:bg-accent hover:text-accent-foreground;
30
- }
31
-
32
- .btn-ghost {
33
- @apply hover:bg-accent hover:text-accent-foreground;
34
- }
35
- } */
package/dist/styles.css DELETED
@@ -1,3 +0,0 @@
1
- *,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: } /*
2
- ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
3
- */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{left:0;right:0}.inset-0,.inset-y-0{bottom:0;top:0}.right-0{right:0}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.ml-3{margin-left:.75rem}.mt-1{margin-top:.25rem}.flex{display:flex}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-full{height:100%}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.rounded{border-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-dashed{border-style:dashed}.border-dark{--tw-border-opacity:1;border-color:#333;border-color:rgba(51,51,51,var(--tw-border-opacity,1))}.border-error{--tw-border-opacity:1;border-color:#f10;border-color:rgba(255,17,0,var(--tw-border-opacity,1))}.border-light{--tw-border-opacity:1;border-color:#666;border-color:rgba(102,102,102,var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:#007ac2;border-color:rgba(0,122,194,var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:#ef4444;border-color:rgba(239,68,68,var(--tw-border-opacity,1))}.bg-dark{--tw-bg-opacity:1;background-color:#333;background-color:rgba(51,51,51,var(--tw-bg-opacity,1))}.bg-error{--tw-bg-opacity:1;background-color:#f10;background-color:rgba(255,17,0,var(--tw-bg-opacity,1))}.bg-light{--tw-bg-opacity:1;background-color:#666;background-color:rgba(102,102,102,var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:#007ac2;background-color:rgba(0,122,194,var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity,1))}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.pr-3{padding-right:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.text-dark{--tw-text-opacity:1;color:#333;color:rgba(51,51,51,var(--tw-text-opacity,1))}.text-error{--tw-text-opacity:1;color:#f10;color:rgba(255,17,0,var(--tw-text-opacity,1))}.text-light{--tw-text-opacity:1;color:#666;color:rgba(102,102,102,var(--tw-text-opacity,1))}.text-primary{--tw-text-opacity:1;color:#007ac2;color:rgba(0,122,194,var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgba(220,38,38,var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-50{opacity:.5}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\:border-primary\/60:hover{border-color:rgba(0,122,194,.6)}.hover\:border-red-400:hover{--tw-border-opacity:1;border-color:#f87171;border-color:rgba(248,113,113,var(--tw-border-opacity,1))}.hover\:bg-dark\/10:hover{background-color:rgba(51,51,51,.1)}.hover\:bg-dark\/80:hover{background-color:rgba(51,51,51,.8)}.hover\:bg-error\/10:hover{background-color:rgba(255,17,0,.1)}.hover\:bg-error\/80:hover{background-color:rgba(255,17,0,.8)}.hover\:bg-light\/10:hover{background-color:hsla(0,0%,40%,.1)}.hover\:bg-light\/80:hover{background-color:hsla(0,0%,40%,.8)}.hover\:bg-primary\/10:hover{background-color:rgba(0,122,194,.1)}.hover\:bg-primary\/80:hover{background-color:rgba(0,122,194,.8)}.focus\:border-primary:focus{--tw-border-opacity:1;border-color:#007ac2;border-color:rgba(0,122,194,var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(0,122,194,var(--tw-ring-opacity,1))}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239,68,68,var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}
@@ -1,7 +0,0 @@
1
- import { type ClassValue } from "clsx";
2
- /**
3
- * Utility function to merge Tailwind CSS classes
4
- * Uses clsx for conditional classes and basic merging
5
- */
6
- export declare function cn(...inputs: ClassValue[]): string;
7
- //# sourceMappingURL=cn.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}