@celar-ui/svelte 2.0.1 → 2.0.2

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.
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @utility button-base {
4
4
  @apply relative m-0 box-border inline-block h-fit w-fit cursor-pointer border-none p-0 no-underline transition-all select-none;
@@ -28,7 +28,7 @@
28
28
  </div>
29
29
 
30
30
  <style>
31
- @reference '$style/index.css';
31
+ @reference '@celar-ui/svelte/styles/index.css';
32
32
 
33
33
  @layer components {
34
34
  [data-spacer] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-avatar-root] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-breadcrumb] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-card] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-container] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-surface-container] {
@@ -55,7 +55,7 @@
55
55
  </label>
56
56
 
57
57
  <style>
58
- @reference '$style/index.css';
58
+ @reference '@celar-ui/svelte/styles/index.css';
59
59
 
60
60
  @layer components {
61
61
  [data-checkbox] {
@@ -19,7 +19,7 @@
19
19
  </label>
20
20
 
21
21
  <style>
22
- @reference '$style/index.css';
22
+ @reference '@celar-ui/svelte/styles/index.css';
23
23
 
24
24
  @layer components {
25
25
  [data-color-input] {
@@ -24,7 +24,7 @@
24
24
  </label>
25
25
 
26
26
  <style>
27
- @reference '$style/index.css';
27
+ @reference '@celar-ui/svelte/styles/index.css';
28
28
 
29
29
  @layer components {
30
30
  [data-file-input] {
@@ -16,7 +16,7 @@
16
16
  </label>
17
17
 
18
18
  <style>
19
- @reference '$style/index.css';
19
+ @reference '@celar-ui/svelte/styles/index.css';
20
20
 
21
21
  @layer components {
22
22
  [data-radio-item] {
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
 
21
21
  <style>
22
- @reference '$style/index.css';
22
+ @reference '@celar-ui/svelte/styles/index.css';
23
23
 
24
24
  @utility track {
25
25
  @apply box-border h-2 w-full rounded-2xl border-none;
@@ -18,7 +18,7 @@
18
18
  </label>
19
19
 
20
20
  <style>
21
- @reference '$style/index.css';
21
+ @reference '@celar-ui/svelte/styles/index.css';
22
22
 
23
23
  @layer components {
24
24
  [data-switch] {
@@ -106,7 +106,7 @@
106
106
  </div>
107
107
 
108
108
  <style>
109
- @reference '$style/index.css';
109
+ @reference '@celar-ui/svelte/styles/index.css';
110
110
 
111
111
  @layer components {
112
112
  [data-tag-input] {
@@ -20,7 +20,7 @@
20
20
  </label>
21
21
 
22
22
  <style>
23
- @reference '$style/index.css';
23
+ @reference '@celar-ui/svelte/styles/index.css';
24
24
 
25
25
  @layer components {
26
26
  [data-text-input] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
  @layer components {
3
3
  [data-radio-group-root] {
4
4
  position: relative;
@@ -14,7 +14,7 @@
14
14
  </span>
15
15
 
16
16
  <style>
17
- @reference '$style/index.css';
17
+ @reference '@celar-ui/svelte/styles/index.css';
18
18
 
19
19
  @layer components {
20
20
  [data-badge] {
@@ -138,7 +138,7 @@
138
138
  </svg>
139
139
 
140
140
  <style>
141
- @reference '$style/index.css';
141
+ @reference '@celar-ui/svelte/styles/index.css';
142
142
 
143
143
  @layer components {
144
144
  [data-duck-spinner] {
@@ -9,7 +9,7 @@
9
9
  <div data-gap style:width={size}></div>
10
10
 
11
11
  <style>
12
- @reference '$style/index.css';
12
+ @reference '@celar-ui/svelte/styles/index.css';
13
13
 
14
14
  @layer components {
15
15
  [data-gap] {
@@ -8,7 +8,7 @@
8
8
  </div>
9
9
 
10
10
  <style>
11
- @reference '$style/index.css';
11
+ @reference '@celar-ui/svelte/styles/index.css';
12
12
 
13
13
  @layer components {
14
14
  [data-linear-progress-indicator] {
@@ -47,7 +47,7 @@
47
47
  </div>
48
48
 
49
49
  <style>
50
- @reference '$style/index.css';
50
+ @reference '@celar-ui/svelte/styles/index.css';
51
51
 
52
52
  @layer components {
53
53
  [data-adaptive-sidebar-backdrop] {
@@ -28,7 +28,7 @@
28
28
  </section>
29
29
 
30
30
  <style>
31
- @reference '$style/index.css';
31
+ @reference '@celar-ui/svelte/styles/index.css';
32
32
 
33
33
  @layer components {
34
34
  [data-app-bar] {
@@ -9,7 +9,7 @@
9
9
  </section>
10
10
 
11
11
  <style>
12
- @reference '$style/index.css';
12
+ @reference '@celar-ui/svelte/styles/index.css';
13
13
 
14
14
  @layer components {
15
15
  [data-navigation-bar] {
@@ -24,7 +24,7 @@
24
24
  </a>
25
25
 
26
26
  <style>
27
- @reference '$style/index.css';
27
+ @reference '@celar-ui/svelte/styles/index.css';
28
28
 
29
29
  @layer components {
30
30
  [data-navigation-bar-button] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-navigation-drawer-backdrop] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-command-dialog] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-celar-dialog-overlay] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-popover-content] {
@@ -1,4 +1,4 @@
1
- @reference '$style/index.css';
1
+ @reference '@celar-ui/svelte/styles/index.css';
2
2
 
3
3
  @layer components {
4
4
  [data-minimal-surface-dialog] {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celar-ui/svelte",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "cuikho210",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "scripts": {
15
15
  "dev": "vite dev",
16
- "build": "bun run gen-theme && vite build && bun run prepack",
16
+ "build": "vite build && bun run prepack",
17
17
  "preview": "vite preview",
18
18
  "prepare": "svelte-kit sync || echo ''",
19
19
  "prepack": "svelte-kit sync && svelte-package && publint",
@@ -27,6 +27,7 @@
27
27
  "files": [
28
28
  "dist",
29
29
  "src/styles",
30
+ "src/bin",
30
31
  "!dist/**/*.test.*",
31
32
  "!dist/**/*.spec.*"
32
33
  ],
@@ -41,10 +42,12 @@
41
42
  "types": "./dist/index.d.ts",
42
43
  "svelte": "./dist/index.js"
43
44
  },
44
- "./src/styles/*.css": {
45
- "import": "./src/styles/*.css",
46
- "require": "./src/styles/*.css"
47
- }
45
+ "./styles/index.css": "./src/styles/index.css",
46
+ "./styles/theme.css": "./src/styles/theme.css",
47
+ "./styles/*.css": "./src/styles/*.css"
48
+ },
49
+ "bin": {
50
+ "gen-theme": "./src/bin/gen-theme.ts"
48
51
  },
49
52
  "peerDependencies": {
50
53
  "bits-ui": "^2.8.0",
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env bun
2
+
3
+ /**
4
+ * Generate Tailwind 4 @theme CSS from Material Color Utilities theme output.
5
+ * Usage: bun index.ts <output-path>
6
+ *
7
+ * This script generates a CSS file with @variant and @theme directives,
8
+ * using the output of Material Color Utilities' themeFromSourceColor.
9
+ */
10
+
11
+ import materialDynamicColors from 'material-dynamic-colors';
12
+ import { mkdir, writeFile } from 'node:fs/promises';
13
+ import path from 'node:path';
14
+
15
+ // ---- CONFIGURABLE SOURCE COLOR / OUTPUT ----
16
+ const argv = process.argv.slice(2);
17
+ const getFlag = (names: string[]) => {
18
+ const i = argv.findIndex((a) => names.includes(a));
19
+ if (i >= 0 && argv[i + 1] && !argv[i + 1].startsWith('--')) return argv[i + 1];
20
+ const kv = argv.find((a) => names.some((n) => a.startsWith(`${n}=`)));
21
+ return kv ? kv.split('=').slice(1).join('=') : undefined;
22
+ };
23
+ const sourceColor = (getFlag(['--color', '-c']) || process.env.SOURCE_COLOR || '#ff907f').trim();
24
+ const outputPath = path.resolve(
25
+ process.cwd(),
26
+ getFlag(['--out', '-o']) || process.env.OUTPUT_PATH || 'src/styles/theme.css'
27
+ );
28
+
29
+ // ---- GENERATE THEME ----
30
+ const theme = await materialDynamicColors(sourceColor);
31
+
32
+ // ---- TAILWIND 4 @THEME CSS OUTPUT ----
33
+ function toThemeVariables(colors: Record<string, string>): string {
34
+ return Object.entries(colors)
35
+ .map(([k, v]) => ` --color-${k}: ${v};`)
36
+ .join('\n');
37
+ }
38
+
39
+ const lightVars = toThemeVariables(theme.light as unknown as Record<string, string>);
40
+ const darkVars = toThemeVariables(theme.dark as unknown as Record<string, string>);
41
+
42
+ const css = `/* Generated by index.ts */
43
+ /* Source color: ${sourceColor} */
44
+
45
+ @custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
46
+
47
+ @theme {
48
+ ${lightVars}
49
+ --color-info: #1a3baa;
50
+ --color-onInfo: #e2ffff;
51
+ --color-success: #2b5f50;
52
+ --color-onSuccess: #e8fef5;
53
+ --color-warning: #8a5a00;
54
+ --color-onWarning: #fff8ec;
55
+ }
56
+
57
+ @variant dark {
58
+ ${darkVars}
59
+ --color-info: #008eff;
60
+ --color-onInfo: #101a3b;
61
+ --color-success: #9bdac7;
62
+ --color-onSuccess: #184d3a;
63
+ --color-warning: #bfa060;
64
+ --color-onWarning: #4a3700;
65
+ }
66
+ `;
67
+
68
+ // ---- WRITE FILE ----
69
+ await mkdir(path.dirname(outputPath), { recursive: true });
70
+ await writeFile(outputPath, css);
71
+ console.log(`Material theme CSS written to ${outputPath}`);
@@ -4,91 +4,91 @@
4
4
  @custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));
5
5
 
6
6
  @theme {
7
- --color-primary: #9c4235;
8
- --color-onPrimary: #ffffff;
9
- --color-primaryContainer: #ffdad4;
10
- --color-onPrimaryContainer: #410000;
11
- --color-secondary: #775651;
12
- --color-onSecondary: #ffffff;
13
- --color-secondaryContainer: #ffdad4;
14
- --color-onSecondaryContainer: #2c1512;
15
- --color-tertiary: #705c2e;
16
- --color-onTertiary: #ffffff;
17
- --color-tertiaryContainer: #fbdfa6;
18
- --color-onTertiaryContainer: #251a00;
19
- --color-error: #ba1a1a;
20
- --color-onError: #ffffff;
21
- --color-errorContainer: #ffdad6;
22
- --color-onErrorContainer: #410002;
23
- --color-background: #fffbff;
24
- --color-onBackground: #201a19;
25
- --color-surface: #fff8f6;
26
- --color-onSurface: #201a19;
27
- --color-surfaceVariant: #f5ddda;
28
- --color-onSurfaceVariant: #534341;
29
- --color-outline: #857370;
30
- --color-outlineVariant: #d8c2be;
31
- --color-shadow: #000000;
32
- --color-scrim: #000000;
33
- --color-inverseSurface: #362f2e;
34
- --color-inverseOnSurface: #fbeeec;
35
- --color-inversePrimary: #ffb4a8;
36
- --color-surfaceDim: #e4d7d5;
37
- --color-surfaceBright: #fff8f6;
38
- --color-surfaceContainerLowest: #ffffff;
39
- --color-surfaceContainerLow: #fef1ee;
40
- --color-surfaceContainer: #f8ebe9;
41
- --color-surfaceContainerHigh: #f3e5e3;
42
- --color-surfaceContainerHighest: #ede0dd;
43
- --color-info: #1a3baa;
44
- --color-onInfo: #e2ffff;
45
- --color-success: #2b5f50;
46
- --color-onSuccess: #e8fef5;
47
- --color-warning: #8a5a00;
48
- --color-onWarning: #fff8ec;
7
+ --color-primary: #9c4235;
8
+ --color-onPrimary: #ffffff;
9
+ --color-primaryContainer: #ffdad4;
10
+ --color-onPrimaryContainer: #410000;
11
+ --color-secondary: #775651;
12
+ --color-onSecondary: #ffffff;
13
+ --color-secondaryContainer: #ffdad4;
14
+ --color-onSecondaryContainer: #2c1512;
15
+ --color-tertiary: #705c2e;
16
+ --color-onTertiary: #ffffff;
17
+ --color-tertiaryContainer: #fbdfa6;
18
+ --color-onTertiaryContainer: #251a00;
19
+ --color-error: #ba1a1a;
20
+ --color-onError: #ffffff;
21
+ --color-errorContainer: #ffdad6;
22
+ --color-onErrorContainer: #410002;
23
+ --color-background: #fffbff;
24
+ --color-onBackground: #201a19;
25
+ --color-surface: #fff8f6;
26
+ --color-onSurface: #201a19;
27
+ --color-surfaceVariant: #f5ddda;
28
+ --color-onSurfaceVariant: #534341;
29
+ --color-outline: #857370;
30
+ --color-outlineVariant: #d8c2be;
31
+ --color-shadow: #000000;
32
+ --color-scrim: #000000;
33
+ --color-inverseSurface: #362f2e;
34
+ --color-inverseOnSurface: #fbeeec;
35
+ --color-inversePrimary: #ffb4a8;
36
+ --color-surfaceDim: #e4d7d5;
37
+ --color-surfaceBright: #fff8f6;
38
+ --color-surfaceContainerLowest: #ffffff;
39
+ --color-surfaceContainerLow: #fef1ee;
40
+ --color-surfaceContainer: #f8ebe9;
41
+ --color-surfaceContainerHigh: #f3e5e3;
42
+ --color-surfaceContainerHighest: #ede0dd;
43
+ --color-info: #1a3baa;
44
+ --color-onInfo: #e2ffff;
45
+ --color-success: #2b5f50;
46
+ --color-onSuccess: #e8fef5;
47
+ --color-warning: #8a5a00;
48
+ --color-onWarning: #fff8ec;
49
49
  }
50
50
 
51
51
  @variant dark {
52
- --color-primary: #ffb4a8;
53
- --color-onPrimary: #5f150d;
54
- --color-primaryContainer: #7d2b21;
55
- --color-onPrimaryContainer: #ffdad4;
56
- --color-secondary: #e7bdb6;
57
- --color-onSecondary: #442925;
58
- --color-secondaryContainer: #5d3f3b;
59
- --color-onSecondaryContainer: #ffdad4;
60
- --color-tertiary: #dec48c;
61
- --color-onTertiary: #3e2e04;
62
- --color-tertiaryContainer: #564419;
63
- --color-onTertiaryContainer: #fbdfa6;
64
- --color-error: #ffb4ab;
65
- --color-onError: #690005;
66
- --color-errorContainer: #93000a;
67
- --color-onErrorContainer: #ffb4ab;
68
- --color-background: #201a19;
69
- --color-onBackground: #ede0dd;
70
- --color-surface: #181211;
71
- --color-onSurface: #ede0dd;
72
- --color-surfaceVariant: #534341;
73
- --color-onSurfaceVariant: #d8c2be;
74
- --color-outline: #a08c89;
75
- --color-outlineVariant: #534341;
76
- --color-shadow: #000000;
77
- --color-scrim: #000000;
78
- --color-inverseSurface: #ede0dd;
79
- --color-inverseOnSurface: #362f2e;
80
- --color-inversePrimary: #9c4235;
81
- --color-surfaceDim: #181211;
82
- --color-surfaceBright: #3f3736;
83
- --color-surfaceContainerLowest: #120d0c;
84
- --color-surfaceContainerLow: #201a19;
85
- --color-surfaceContainer: #251e1d;
86
- --color-surfaceContainerHigh: #2f2827;
87
- --color-surfaceContainerHighest: #3b3332;
88
- --color-info: #008eff;
89
- --color-onInfo: #101a3b;
90
- --color-success: #9bdac7;
91
- --color-onSuccess: #184d3a;
92
- --color-warning: #bfa060;
93
- --color-onWarning: #4a3700;
52
+ --color-primary: #ffb4a8;
53
+ --color-onPrimary: #5f150d;
54
+ --color-primaryContainer: #7d2b21;
55
+ --color-onPrimaryContainer: #ffdad4;
56
+ --color-secondary: #e7bdb6;
57
+ --color-onSecondary: #442925;
58
+ --color-secondaryContainer: #5d3f3b;
59
+ --color-onSecondaryContainer: #ffdad4;
60
+ --color-tertiary: #dec48c;
61
+ --color-onTertiary: #3e2e04;
62
+ --color-tertiaryContainer: #564419;
63
+ --color-onTertiaryContainer: #fbdfa6;
64
+ --color-error: #ffb4ab;
65
+ --color-onError: #690005;
66
+ --color-errorContainer: #93000a;
67
+ --color-onErrorContainer: #ffb4ab;
68
+ --color-background: #201a19;
69
+ --color-onBackground: #ede0dd;
70
+ --color-surface: #181211;
71
+ --color-onSurface: #ede0dd;
72
+ --color-surfaceVariant: #534341;
73
+ --color-onSurfaceVariant: #d8c2be;
74
+ --color-outline: #a08c89;
75
+ --color-outlineVariant: #534341;
76
+ --color-shadow: #000000;
77
+ --color-scrim: #000000;
78
+ --color-inverseSurface: #ede0dd;
79
+ --color-inverseOnSurface: #362f2e;
80
+ --color-inversePrimary: #9c4235;
81
+ --color-surfaceDim: #181211;
82
+ --color-surfaceBright: #3f3736;
83
+ --color-surfaceContainerLowest: #120d0c;
84
+ --color-surfaceContainerLow: #201a19;
85
+ --color-surfaceContainer: #251e1d;
86
+ --color-surfaceContainerHigh: #2f2827;
87
+ --color-surfaceContainerHighest: #3b3332;
88
+ --color-info: #008eff;
89
+ --color-onInfo: #101a3b;
90
+ --color-success: #9bdac7;
91
+ --color-onSuccess: #184d3a;
92
+ --color-warning: #bfa060;
93
+ --color-onWarning: #4a3700;
94
94
  }