@keepui/ui 0.1.1 → 0.1.3

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 CHANGED
@@ -48,7 +48,27 @@ npx cap sync
48
48
 
49
49
  ## Usage — Angular Web App
50
50
 
51
- ### 1. Register the web provider
51
+ ### 1. Import styles
52
+
53
+ KeepUI components use CSS custom properties for theming. You **must** import the
54
+ library styles in your global stylesheet.
55
+
56
+ **If your project uses Tailwind CSS v4:**
57
+
58
+ ```css
59
+ /* src/styles.css or src/tailwind.css */
60
+ @import "tailwindcss";
61
+ @import "@keepui/ui/styles";
62
+ ```
63
+
64
+ **If your project does NOT use Tailwind:**
65
+
66
+ ```css
67
+ /* src/styles.css */
68
+ @import "@keepui/ui/styles/prebuilt.css";
69
+ ```
70
+
71
+ ### 2. Register the web provider
52
72
 
53
73
  ```ts
54
74
  // src/app/app.config.ts
@@ -63,7 +83,7 @@ export const appConfig: ApplicationConfig = {
63
83
  };
64
84
  ```
65
85
 
66
- ### 2. Use components
86
+ ### 3. Use components
67
87
 
68
88
  ```ts
69
89
  // src/app/app.component.ts
@@ -98,7 +118,15 @@ export class AppComponent {
98
118
 
99
119
  ## Usage — Angular + Capacitor App
100
120
 
101
- ### 1. Register the Capacitor provider
121
+ ### 1. Import styles (same as web)
122
+
123
+ ```css
124
+ /* src/styles.css or src/tailwind.css */
125
+ @import "tailwindcss";
126
+ @import "@keepui/ui/styles";
127
+ ```
128
+
129
+ ### 2. Register the Capacitor provider
102
130
 
103
131
  ```ts
104
132
  // src/app/app.config.ts
@@ -257,6 +285,35 @@ Ensure `package.json` has the correct `name`, `version`, and `peerDependencies`
257
285
 
258
286
  ---
259
287
 
288
+ ## Theming
289
+
290
+ KeepUI uses CSS custom properties for all design tokens. Override any variable
291
+ in your own CSS to create a custom theme:
292
+
293
+ ```css
294
+ :root {
295
+ --keepui-primary: #6366f1;
296
+ --keepui-primary-hover: #4f46e5;
297
+ }
298
+
299
+ [data-theme="dark"] {
300
+ --keepui-primary: #818cf8;
301
+ --keepui-primary-hover: #a5b4fc;
302
+ }
303
+ ```
304
+
305
+ Switch themes at runtime:
306
+
307
+ ```ts
308
+ document.documentElement.setAttribute('data-theme', 'dark');
309
+ ```
310
+
311
+ The library also respects `prefers-color-scheme: dark` by default.
312
+
313
+ See `themes.css` for the full list of available tokens.
314
+
315
+ ---
316
+
260
317
  ## Future Improvements
261
318
 
262
319
  - Additional components (modal, toast, form controls, etc.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keepui/ui",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "KeepUI — Angular cross-platform UI component library with optional Capacitor support",
5
5
  "keywords": [
6
6
  "angular",
@@ -10,7 +10,9 @@
10
10
  "cross-platform"
11
11
  ],
12
12
  "license": "MIT",
13
- "sideEffects": false,
13
+ "sideEffects": [
14
+ "*.css"
15
+ ],
14
16
  "peerDependencies": {
15
17
  "@angular/common": ">=19.0.0",
16
18
  "@angular/core": ">=19.0.0"
@@ -6,7 +6,7 @@ interface NgAddOptions {
6
6
  * `ng add @keepui/ui` schematic.
7
7
  *
8
8
  * Installs the package and prints guidance on how to register
9
- * `provideKeepUi()` in the host application's `app.config.ts`.
9
+ * `provideKeepUi()` and import styles in the host application.
10
10
  */
11
11
  export declare function ngAdd(_options: NgAddOptions): Rule;
12
12
  export {};
@@ -6,7 +6,7 @@ const tasks_1 = require("@angular-devkit/schematics/tasks");
6
6
  * `ng add @keepui/ui` schematic.
7
7
  *
8
8
  * Installs the package and prints guidance on how to register
9
- * `provideKeepUi()` in the host application's `app.config.ts`.
9
+ * `provideKeepUi()` and import styles in the host application.
10
10
  */
11
11
  function ngAdd(_options) {
12
12
  return (tree, context) => {
@@ -15,7 +15,17 @@ function ngAdd(_options) {
15
15
  context.logger.info('✅ KeepUI has been added to your project!');
16
16
  context.logger.info('');
17
17
  context.logger.info('Next steps:');
18
- context.logger.info(' 1. Open your app.config.ts and add provideKeepUi() to the providers array:');
18
+ context.logger.info('');
19
+ context.logger.info(' 1. Import KeepUI styles in your global CSS (after tailwindcss):');
20
+ context.logger.info('');
21
+ context.logger.info(' /* If your project uses Tailwind CSS v4: */');
22
+ context.logger.info(" @import \"tailwindcss\";");
23
+ context.logger.info(" @import \"@keepui/ui/styles\";");
24
+ context.logger.info('');
25
+ context.logger.info(' /* OR if your project does NOT use Tailwind: */');
26
+ context.logger.info(" @import \"@keepui/ui/styles/prebuilt.css\";");
27
+ context.logger.info('');
28
+ context.logger.info(' 2. Open your app.config.ts and add provideKeepUi() to the providers array:');
19
29
  context.logger.info('');
20
30
  context.logger.info(" import { provideKeepUi } from '@keepui/ui';");
21
31
  context.logger.info('');
@@ -23,10 +33,10 @@ function ngAdd(_options) {
23
33
  context.logger.info(' providers: [provideKeepUi()],');
24
34
  context.logger.info(' };');
25
35
  context.logger.info('');
26
- context.logger.info(' 2. Use KeepUI components in your templates:');
27
- context.logger.info(" import { ImagePreviewComponent } from '@keepui/ui';");
36
+ context.logger.info(' 3. Use KeepUI components in your templates:');
37
+ context.logger.info(" import { ButtonComponent } from '@keepui/ui';");
28
38
  context.logger.info('');
29
- context.logger.info(' 3. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.');
39
+ context.logger.info(' 4. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.');
30
40
  context.logger.info('');
31
41
  return tree;
32
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAaA,sBA4BC;AAxCD,4DAA0E;AAM1E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAsB;IAC1C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8EAA8E,CAC/E,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAChF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8FAA8F,CAC/F,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAaA,sBAwCC;AApDD,4DAA0E;AAM1E;;;;;GAKG;AACH,SAAgB,KAAK,CAAC,QAAsB;IAC1C,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,mEAAmE,CACpE,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAC3D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC5E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8EAA8E,CAC/E,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAC1E,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,8FAA8F,CAC/F,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
@@ -9,7 +9,7 @@ interface NgAddOptions {
9
9
  * `ng add @keepui/ui` schematic.
10
10
  *
11
11
  * Installs the package and prints guidance on how to register
12
- * `provideKeepUi()` in the host application's `app.config.ts`.
12
+ * `provideKeepUi()` and import styles in the host application.
13
13
  */
14
14
  export function ngAdd(_options: NgAddOptions): Rule {
15
15
  return (tree: Tree, context: SchematicContext) => {
@@ -19,8 +19,20 @@ export function ngAdd(_options: NgAddOptions): Rule {
19
19
  context.logger.info('✅ KeepUI has been added to your project!');
20
20
  context.logger.info('');
21
21
  context.logger.info('Next steps:');
22
+ context.logger.info('');
23
+ context.logger.info(
24
+ ' 1. Import KeepUI styles in your global CSS (after tailwindcss):',
25
+ );
26
+ context.logger.info('');
27
+ context.logger.info(' /* If your project uses Tailwind CSS v4: */');
28
+ context.logger.info(" @import \"tailwindcss\";");
29
+ context.logger.info(" @import \"@keepui/ui/styles\";");
30
+ context.logger.info('');
31
+ context.logger.info(' /* OR if your project does NOT use Tailwind: */');
32
+ context.logger.info(" @import \"@keepui/ui/styles/prebuilt.css\";");
33
+ context.logger.info('');
22
34
  context.logger.info(
23
- ' 1. Open your app.config.ts and add provideKeepUi() to the providers array:',
35
+ ' 2. Open your app.config.ts and add provideKeepUi() to the providers array:',
24
36
  );
25
37
  context.logger.info('');
26
38
  context.logger.info(" import { provideKeepUi } from '@keepui/ui';");
@@ -29,11 +41,11 @@ export function ngAdd(_options: NgAddOptions): Rule {
29
41
  context.logger.info(' providers: [provideKeepUi()],');
30
42
  context.logger.info(' };');
31
43
  context.logger.info('');
32
- context.logger.info(' 2. Use KeepUI components in your templates:');
33
- context.logger.info(" import { ImagePreviewComponent } from '@keepui/ui';");
44
+ context.logger.info(' 3. Use KeepUI components in your templates:');
45
+ context.logger.info(" import { ButtonComponent } from '@keepui/ui';");
34
46
  context.logger.info('');
35
47
  context.logger.info(
36
- ' 3. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.',
48
+ ' 4. For Capacitor projects, use provideKeepUiCapacitor() from @keepui/ui/capacitor instead.',
37
49
  );
38
50
  context.logger.info('');
39
51
 
@@ -0,0 +1,110 @@
1
+ /*
2
+ * KeepUI — Styles entry point
3
+ *
4
+ * Import this file once in your application's global stylesheet,
5
+ * AFTER @import "tailwindcss":
6
+ *
7
+ * @import "tailwindcss";
8
+ * @import "@keepui/ui/styles";
9
+ *
10
+ * ─── Alternative (no Tailwind required) ──────────────────────────────────
11
+ *
12
+ * @import "@keepui/ui/styles/prebuilt.css";
13
+ *
14
+ * ─── Tailwind v4 utilities generated ────────────────────────────────────────
15
+ *
16
+ * Surface & background:
17
+ * bg-keepui-background bg-keepui-surface bg-keepui-surface-hover
18
+ *
19
+ * Text:
20
+ * text-keepui-text text-keepui-text-muted text-keepui-text-disabled
21
+ *
22
+ * Borders:
23
+ * border-keepui-border border-keepui-border-strong
24
+ *
25
+ * Brand / Primary:
26
+ * bg-keepui-primary bg-keepui-primary-hover bg-keepui-primary-active
27
+ * text-keepui-primary-fg border-keepui-primary
28
+ *
29
+ * Feedback:
30
+ * text-keepui-error bg-keepui-error bg-keepui-success bg-keepui-warning
31
+ *
32
+ * Shadows:
33
+ * shadow-keepui-sm shadow-keepui-md shadow-keepui-lg
34
+ *
35
+ * ─── Requirements ───────────────────────────────────────────────────────────
36
+ *
37
+ * Your application must process this file with Tailwind CSS v4 (e.g. via
38
+ * @tailwindcss/postcss or @tailwindcss/vite) to generate the utility classes.
39
+ * ────────────────────────────────────────────────────────────────────────────
40
+ */
41
+
42
+ @import "./themes.css";
43
+
44
+ /*
45
+ * Tailwind v4 ignores node_modules during automatic source detection AND
46
+ * when resolving @source paths that land inside node_modules.
47
+ *
48
+ * To guarantee that every utility class used by KeepUI components is
49
+ * generated in the consumer's CSS output, we use @source inline() to
50
+ * declare all classes explicitly — no filesystem scan required.
51
+ */
52
+ @source inline("
53
+ inline-flex items-center justify-center gap-2
54
+ min-h-[2.75rem] text-sm font-medium cursor-pointer select-none
55
+ transition-colors duration-200 transition-all
56
+ focus-visible:outline-none focus-visible:ring-2
57
+ focus-visible:ring-keepui-primary focus-visible:ring-offset-2
58
+ disabled:opacity-50 disabled:cursor-not-allowed
59
+ w-full h-10 px-4 w-40 px-6
60
+ rounded-full rounded-2xl rounded-lg
61
+ bg-keepui-primary text-keepui-primary-fg border border-keepui-primary
62
+ enabled:hover:bg-keepui-primary-hover enabled:hover:border-keepui-primary-hover
63
+ enabled:active:bg-keepui-primary-active enabled:active:border-keepui-primary-active
64
+ bg-keepui-surface text-keepui-text border-keepui-border
65
+ enabled:hover:bg-keepui-surface-hover enabled:hover:border-keepui-border-strong
66
+ disabled:text-keepui-text-disabled
67
+ bg-transparent text-keepui-primary
68
+ enabled:hover:border-keepui-primary enabled:hover:text-keepui-primary
69
+ bg-keepui-primary/10 enabled:hover:bg-keepui-primary/10
70
+ bg-keepui-error text-keepui-error-fg border-keepui-error
71
+ enabled:hover:opacity-90 enabled:active:opacity-80
72
+ p-4 bg-keepui-surface border-keepui-border text-keepui-text
73
+ shadow-keepui-sm shadow-keepui-md shadow-keepui-lg
74
+ flex flex-col gap-4 max-w-full h-auto
75
+ border-keepui-border text-keepui-error m-0
76
+ block sr-only
77
+ ");
78
+
79
+ @theme inline {
80
+ /* ── Surfaces ── */
81
+ --color-keepui-background: var(--keepui-background, #f5f5f5);
82
+ --color-keepui-surface: var(--keepui-surface, #ffffff);
83
+ --color-keepui-surface-hover: var(--keepui-surface-hover, #f0f0f0);
84
+
85
+ /* ── Borders ── */
86
+ --color-keepui-border: var(--keepui-border, #e0e0e0);
87
+ --color-keepui-border-strong: var(--keepui-border-strong, #cccccc);
88
+
89
+ /* ── Text ── */
90
+ --color-keepui-text: var(--keepui-text, #1f2937);
91
+ --color-keepui-text-muted: var(--keepui-text-muted, #6b7280);
92
+ --color-keepui-text-disabled: var(--keepui-text-disabled, #9ca3af);
93
+
94
+ /* ── Primary ── */
95
+ --color-keepui-primary: var(--keepui-primary, #3b82f6);
96
+ --color-keepui-primary-hover: var(--keepui-primary-hover, #2563eb);
97
+ --color-keepui-primary-active: var(--keepui-primary-active, #1d4ed8);
98
+ --color-keepui-primary-fg: var(--keepui-primary-foreground, #ffffff);
99
+
100
+ /* ── Feedback ── */
101
+ --color-keepui-error: var(--keepui-error, #dc2626);
102
+ --color-keepui-error-fg: var(--keepui-error-foreground, #ffffff);
103
+ --color-keepui-success: var(--keepui-success, #16a34a);
104
+ --color-keepui-warning: var(--keepui-warning, #f59e0b);
105
+
106
+ /* ── Shadows ── */
107
+ --shadow-keepui-sm: var(--keepui-shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.12));
108
+ --shadow-keepui-md: var(--keepui-shadow-md, 0 3px 6px rgba(0, 0, 0, 0.15));
109
+ --shadow-keepui-lg: var(--keepui-shadow-lg, 0 6px 12px rgba(0, 0, 0, 0.18));
110
+ }
@@ -23,34 +23,33 @@
23
23
 
24
24
  @theme inline {
25
25
  /* ── Surfaces ── */
26
- --color-keepui-background: var(--keepui-background);
27
- --color-keepui-surface: var(--keepui-surface);
28
- --color-keepui-surface-hover: var(--keepui-surface-hover);
26
+ --color-keepui-background: var(--keepui-background, #f5f5f5);
27
+ --color-keepui-surface: var(--keepui-surface, #ffffff);
28
+ --color-keepui-surface-hover: var(--keepui-surface-hover, #f0f0f0);
29
29
 
30
30
  /* ── Borders ── */
31
- --color-keepui-border: var(--keepui-border);
32
- --color-keepui-border-strong: var(--keepui-border-strong);
31
+ --color-keepui-border: var(--keepui-border, #e0e0e0);
32
+ --color-keepui-border-strong: var(--keepui-border-strong, #cccccc);
33
33
 
34
34
  /* ── Text ── */
35
- --color-keepui-text: var(--keepui-text);
36
- --color-keepui-text-muted: var(--keepui-text-muted);
37
- --color-keepui-text-disabled: var(--keepui-text-disabled);
35
+ --color-keepui-text: var(--keepui-text, #1f2937);
36
+ --color-keepui-text-muted: var(--keepui-text-muted, #6b7280);
37
+ --color-keepui-text-disabled: var(--keepui-text-disabled, #9ca3af);
38
38
 
39
39
  /* ── Primary ── */
40
- --color-keepui-primary: var(--keepui-primary);
41
- --color-keepui-primary-hover: var(--keepui-primary-hover);
42
- --color-keepui-primary-active: var(--keepui-primary-active);
43
- --color-keepui-primary-fg: var(--keepui-primary-foreground);
40
+ --color-keepui-primary: var(--keepui-primary, #3b82f6);
41
+ --color-keepui-primary-hover: var(--keepui-primary-hover, #2563eb);
42
+ --color-keepui-primary-active: var(--keepui-primary-active, #1d4ed8);
43
+ --color-keepui-primary-fg: var(--keepui-primary-foreground, #ffffff);
44
44
 
45
45
  /* ── Feedback ── */
46
- --color-keepui-error: var(--keepui-error);
47
- --color-keepui-error-fg: var(--keepui-error-foreground);
48
- --color-keepui-success: var(--keepui-success);
49
- --color-keepui-warning: var(--keepui-warning);
46
+ --color-keepui-error: var(--keepui-error, #dc2626);
47
+ --color-keepui-error-fg: var(--keepui-error-foreground, #ffffff);
48
+ --color-keepui-success: var(--keepui-success, #16a34a);
49
+ --color-keepui-warning: var(--keepui-warning, #f59e0b);
50
50
 
51
51
  /* ── Shadows ── */
52
- --shadow-keepui-sm: var(--keepui-shadow-sm);
53
- --shadow-keepui-md: var(--keepui-shadow-md);
54
- --shadow-keepui-lg: var(--keepui-shadow-lg);
52
+ --shadow-keepui-sm: var(--keepui-shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.12));
53
+ --shadow-keepui-md: var(--keepui-shadow-md, 0 3px 6px rgba(0, 0, 0, 0.15));
54
+ --shadow-keepui-lg: var(--keepui-shadow-lg, 0 6px 12px rgba(0, 0, 0, 0.18));
55
55
  }
56
-
@@ -1,2 +1,2 @@
1
1
  /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
2
- @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.left-0{left:calc(var(--spacing) * 0)}.z-30{z-index:30}.z-40{z-index:40}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-auto{height:auto}.h-screen{height:100vh}.min-h-\[2\.75rem\]{min-height:2.75rem}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-40{width:calc(var(--spacing) * 40)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[2\.75rem\]{min-width:2.75rem}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-8{gap:calc(var(--spacing) * 8)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-keepui-border{border-color:var(--keepui-border)}.border-keepui-border-strong{border-color:var(--keepui-border-strong)}.border-keepui-error{border-color:var(--keepui-error)}.border-keepui-primary{border-color:var(--keepui-primary)}.\!bg-keepui-primary{background-color:var(--keepui-primary)!important}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-keepui-background{background-color:var(--keepui-background)}.bg-keepui-error{background-color:var(--keepui-error)}.bg-keepui-primary{background-color:var(--keepui-primary)}.bg-keepui-primary-active{background-color:var(--keepui-primary-active)}.bg-keepui-primary-hover{background-color:var(--keepui-primary-hover)}.bg-keepui-success{background-color:var(--keepui-success)}.bg-keepui-surface{background-color:var(--keepui-surface)}.bg-keepui-surface-hover{background-color:var(--keepui-surface-hover)}.bg-keepui-warning{background-color:var(--keepui-warning)}.bg-transparent{background-color:#0000}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\!text-keepui-primary-fg{color:var(--keepui-primary-foreground)!important}.text-keepui-error{color:var(--keepui-error)}.text-keepui-error-fg{color:var(--keepui-error-foreground)}.text-keepui-primary{color:var(--keepui-primary)}.text-keepui-primary-fg{color:var(--keepui-primary-foreground)}.text-keepui-success{color:var(--keepui-success)}.text-keepui-text{color:var(--keepui-text)}.text-keepui-text-disabled{color:var(--keepui-text-disabled)}.text-keepui-text-muted{color:var(--keepui-text-muted)}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-lg{--tw-shadow:var(--keepui-shadow-lg);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-md{--tw-shadow:var(--keepui-shadow-md);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-sm{--tw-shadow:var(--keepui-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:gap-2:is(:where(.group):hover *){gap:calc(var(--spacing) * 2)}}.first\:mt-1\.5:first-child{margin-top:calc(var(--spacing) * 1.5)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\:border-keepui-primary:hover{border-color:var(--keepui-primary)}.hover\:bg-keepui-surface-hover:hover{background-color:var(--keepui-surface-hover)}.hover\:text-keepui-text:hover{color:var(--keepui-text)}.hover\:shadow-keepui-sm:hover{--tw-shadow:var(--keepui-shadow-sm);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-keepui-primary:focus-visible{--tw-ring-color:var(--keepui-primary)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.enabled\:hover\:border-keepui-border-strong:enabled:hover{border-color:var(--keepui-border-strong)}.enabled\:hover\:border-keepui-primary:enabled:hover{border-color:var(--keepui-primary)}.enabled\:hover\:border-keepui-primary-hover:enabled:hover{border-color:var(--keepui-primary-hover)}.enabled\:hover\:bg-keepui-primary-hover:enabled:hover{background-color:var(--keepui-primary-hover)}.enabled\:hover\:bg-keepui-primary\/10:enabled:hover{background-color:var(--keepui-primary)}@supports (color:color-mix(in lab, red, red)){.enabled\:hover\:bg-keepui-primary\/10:enabled:hover{background-color:color-mix(in oklab, var(--keepui-primary) 10%, transparent)}}.enabled\:hover\:bg-keepui-surface-hover:enabled:hover{background-color:var(--keepui-surface-hover)}.enabled\:hover\:text-keepui-primary:enabled:hover{color:var(--keepui-primary)}.enabled\:hover\:opacity-90:enabled:hover{opacity:.9}}.enabled\:active\:border-keepui-primary-active:enabled:active{border-color:var(--keepui-primary-active)}.enabled\:active\:bg-keepui-primary-active:enabled:active{background-color:var(--keepui-primary-active)}.enabled\:active\:opacity-80:enabled:active{opacity:.8}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-keepui-text-disabled:disabled{color:var(--keepui-text-disabled)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.md\:static{position:static}.md\:inset-auto{inset:auto}.md\:z-auto{z-index:auto}.md\:hidden{display:none}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:p-10{padding:calc(var(--spacing) * 10)}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--keepui-primary:#3b82f6;--keepui-primary-hover:#2563eb;--keepui-primary-active:#1d4ed8;--keepui-primary-foreground:#fff;--keepui-background:#f5f5f5;--keepui-surface:#fff;--keepui-surface-hover:#f0f0f0;--keepui-border:#e0e0e0;--keepui-border-strong:#ccc;--keepui-text:#1f2937;--keepui-text-muted:#6b7280;--keepui-text-disabled:#9ca3af;--keepui-error:#dc2626;--keepui-error-foreground:#fff;--keepui-success:#16a34a;--keepui-warning:#f59e0b;--keepui-radius:.5rem;--keepui-radius-sm:.25rem;--keepui-shadow-sm:0 1px 3px #0000001f;--keepui-shadow-md:0 3px 6px #00000026;--keepui-shadow-lg:0 6px 12px #0000002e;--keepui-transition:.2s ease;--keepui-disabled-opacity:.5;--keepui-font-family:system-ui, -apple-system, sans-serif}[data-theme=dark]{--keepui-primary:#60a5fa;--keepui-primary-hover:#93c5fd;--keepui-primary-active:#3b82f6;--keepui-primary-foreground:#0f172a;--keepui-background:#0f172a;--keepui-surface:#1e293b;--keepui-surface-hover:#334155;--keepui-border:#334155;--keepui-border-strong:#475569;--keepui-text:#f1f5f9;--keepui-text-muted:#94a3b8;--keepui-text-disabled:#64748b;--keepui-error:#f87171;--keepui-error-foreground:#0f172a;--keepui-success:#4ade80;--keepui-warning:#fbbf24;--keepui-shadow-sm:0 1px 3px #0006;--keepui-shadow-md:0 3px 6px #00000073;--keepui-shadow-lg:0 6px 12px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--keepui-primary:#60a5fa;--keepui-primary-hover:#93c5fd;--keepui-primary-active:#3b82f6;--keepui-primary-foreground:#0f172a;--keepui-background:#0f172a;--keepui-surface:#1e293b;--keepui-surface-hover:#334155;--keepui-border:#334155;--keepui-border-strong:#475569;--keepui-text:#f1f5f9;--keepui-text-muted:#94a3b8;--keepui-text-disabled:#64748b;--keepui-error:#f87171;--keepui-error-foreground:#0f172a;--keepui-success:#4ade80;--keepui-warning:#fbbf24;--keepui-shadow-sm:0 1px 3px #0006;--keepui-shadow-md:0 3px 6px #00000073;--keepui-shadow-lg:0 6px 12px #00000080}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.left-0{left:calc(var(--spacing) * 0)}.z-30{z-index:30}.z-40{z-index:40}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-auto{margin-inline:auto}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-auto{height:auto}.h-screen{height:100vh}.min-h-\[2\.75rem\]{min-height:2.75rem}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-40{width:calc(var(--spacing) * 40)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[2\.75rem\]{min-width:2.75rem}.min-w-max{min-width:max-content}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-8{gap:calc(var(--spacing) * 8)}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-keepui-border{border-color:var(--keepui-border,#e0e0e0)}.border-keepui-border-strong{border-color:var(--keepui-border-strong,#ccc)}.border-keepui-error{border-color:var(--keepui-error,#dc2626)}.border-keepui-primary{border-color:var(--keepui-primary,#3b82f6)}.\!bg-keepui-primary{background-color:var(--keepui-primary,#3b82f6)!important}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-keepui-background{background-color:var(--keepui-background,#f5f5f5)}.bg-keepui-error{background-color:var(--keepui-error,#dc2626)}.bg-keepui-primary{background-color:var(--keepui-primary,#3b82f6)}.bg-keepui-primary-active{background-color:var(--keepui-primary-active,#1d4ed8)}.bg-keepui-primary-hover{background-color:var(--keepui-primary-hover,#2563eb)}.bg-keepui-success{background-color:var(--keepui-success,#16a34a)}.bg-keepui-surface{background-color:var(--keepui-surface,#fff)}.bg-keepui-surface-hover{background-color:var(--keepui-surface-hover,#f0f0f0)}.bg-keepui-warning{background-color:var(--keepui-warning,#f59e0b)}.bg-transparent{background-color:#0000}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.\!text-keepui-primary-fg{color:var(--keepui-primary-foreground,#fff)!important}.text-keepui-error{color:var(--keepui-error,#dc2626)}.text-keepui-error-fg{color:var(--keepui-error-foreground,#fff)}.text-keepui-primary{color:var(--keepui-primary,#3b82f6)}.text-keepui-primary-fg{color:var(--keepui-primary-foreground,#fff)}.text-keepui-success{color:var(--keepui-success,#16a34a)}.text-keepui-text{color:var(--keepui-text,#1f2937)}.text-keepui-text-disabled{color:var(--keepui-text-disabled,#9ca3af)}.text-keepui-text-muted{color:var(--keepui-text-muted,#6b7280)}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-lg{--tw-shadow:var(--keepui-shadow-lg,0 6px 12px #0000002e);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-md{--tw-shadow:var(--keepui-shadow-md,0 3px 6px #00000026);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-keepui-sm{--tw-shadow:var(--keepui-shadow-sm,0 1px 3px #0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\:gap-2:is(:where(.group):hover *){gap:calc(var(--spacing) * 2)}}.first\:mt-1\.5:first-child{margin-top:calc(var(--spacing) * 1.5)}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\:border-keepui-primary:hover{border-color:var(--keepui-primary,#3b82f6)}.hover\:bg-keepui-surface-hover:hover{background-color:var(--keepui-surface-hover,#f0f0f0)}.hover\:text-keepui-text:hover{color:var(--keepui-text,#1f2937)}.hover\:shadow-keepui-sm:hover{--tw-shadow:var(--keepui-shadow-sm,0 1px 3px #0000001f);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-keepui-primary:focus-visible{--tw-ring-color:var(--keepui-primary,#3b82f6)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.enabled\:hover\:border-keepui-border-strong:enabled:hover{border-color:var(--keepui-border-strong,#ccc)}.enabled\:hover\:border-keepui-primary:enabled:hover{border-color:var(--keepui-primary,#3b82f6)}.enabled\:hover\:border-keepui-primary-hover:enabled:hover{border-color:var(--keepui-primary-hover,#2563eb)}.enabled\:hover\:bg-keepui-primary-hover:enabled:hover{background-color:var(--keepui-primary-hover,#2563eb)}.enabled\:hover\:bg-keepui-primary\/10:enabled:hover{background-color:var(--keepui-primary,#3b82f6)}@supports (color:color-mix(in lab, red, red)){.enabled\:hover\:bg-keepui-primary\/10:enabled:hover{background-color:color-mix(in oklab, var(--keepui-primary,#3b82f6) 10%, transparent)}}.enabled\:hover\:bg-keepui-surface-hover:enabled:hover{background-color:var(--keepui-surface-hover,#f0f0f0)}.enabled\:hover\:text-keepui-primary:enabled:hover{color:var(--keepui-primary,#3b82f6)}.enabled\:hover\:opacity-90:enabled:hover{opacity:.9}}.enabled\:active\:border-keepui-primary-active:enabled:active{border-color:var(--keepui-primary-active,#1d4ed8)}.enabled\:active\:bg-keepui-primary-active:enabled:active{background-color:var(--keepui-primary-active,#1d4ed8)}.enabled\:active\:opacity-80:enabled:active{opacity:.8}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-keepui-text-disabled:disabled{color:var(--keepui-text-disabled,#9ca3af)}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:48rem){.md\:static{position:static}.md\:inset-auto{inset:auto}.md\:z-auto{z-index:auto}.md\:hidden{display:none}.md\:translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:p-10{padding:calc(var(--spacing) * 10)}}@media (min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--keepui-primary:#3b82f6;--keepui-primary-hover:#2563eb;--keepui-primary-active:#1d4ed8;--keepui-primary-foreground:#fff;--keepui-background:#f5f5f5;--keepui-surface:#fff;--keepui-surface-hover:#f0f0f0;--keepui-border:#e0e0e0;--keepui-border-strong:#ccc;--keepui-text:#1f2937;--keepui-text-muted:#6b7280;--keepui-text-disabled:#9ca3af;--keepui-error:#dc2626;--keepui-error-foreground:#fff;--keepui-success:#16a34a;--keepui-warning:#f59e0b;--keepui-radius:.5rem;--keepui-radius-sm:.25rem;--keepui-shadow-sm:0 1px 3px #0000001f;--keepui-shadow-md:0 3px 6px #00000026;--keepui-shadow-lg:0 6px 12px #0000002e;--keepui-transition:.2s ease;--keepui-disabled-opacity:.5;--keepui-font-family:system-ui, -apple-system, sans-serif}[data-theme=dark]{--keepui-primary:#60a5fa;--keepui-primary-hover:#93c5fd;--keepui-primary-active:#3b82f6;--keepui-primary-foreground:#0f172a;--keepui-background:#0f172a;--keepui-surface:#1e293b;--keepui-surface-hover:#334155;--keepui-border:#334155;--keepui-border-strong:#475569;--keepui-text:#f1f5f9;--keepui-text-muted:#94a3b8;--keepui-text-disabled:#64748b;--keepui-error:#f87171;--keepui-error-foreground:#0f172a;--keepui-success:#4ade80;--keepui-warning:#fbbf24;--keepui-shadow-sm:0 1px 3px #0006;--keepui-shadow-md:0 3px 6px #00000073;--keepui-shadow-lg:0 6px 12px #00000080}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--keepui-primary:#60a5fa;--keepui-primary-hover:#93c5fd;--keepui-primary-active:#3b82f6;--keepui-primary-foreground:#0f172a;--keepui-background:#0f172a;--keepui-surface:#1e293b;--keepui-surface-hover:#334155;--keepui-border:#334155;--keepui-border-strong:#475569;--keepui-text:#f1f5f9;--keepui-text-muted:#94a3b8;--keepui-text-disabled:#64748b;--keepui-error:#f87171;--keepui-error-foreground:#0f172a;--keepui-success:#4ade80;--keepui-warning:#fbbf24;--keepui-shadow-sm:0 1px 3px #0006;--keepui-shadow-md:0 3px 6px #00000073;--keepui-shadow-lg:0 6px 12px #00000080}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
package/styles/_index.css DELETED
@@ -1,80 +0,0 @@
1
- /*
2
- * KeepUI — Styles entry point
3
- *
4
- * Import this file once in your application's global stylesheet:
5
- *
6
- * @import "@keepui/ui/styles";
7
- *
8
- * It includes:
9
- * - Default light & dark theme tokens (CSS custom properties)
10
- * - Tailwind CSS v4 theme mappings via @theme inline
11
- *
12
- * ─── Tailwind v4 utilities generated ────────────────────────────────────────
13
- *
14
- * Surface & background:
15
- * bg-keepui-background bg-keepui-surface bg-keepui-surface-hover
16
- *
17
- * Text:
18
- * text-keepui-text text-keepui-text-muted text-keepui-text-disabled
19
- *
20
- * Borders:
21
- * border-keepui-border border-keepui-border-strong
22
- *
23
- * Brand / Primary:
24
- * bg-keepui-primary bg-keepui-primary-hover bg-keepui-primary-active
25
- * text-keepui-primary-fg border-keepui-primary
26
- *
27
- * Feedback:
28
- * text-keepui-error bg-keepui-error bg-keepui-success bg-keepui-warning
29
- *
30
- * Shadows:
31
- * shadow-keepui-sm shadow-keepui-md shadow-keepui-lg
32
- *
33
- * ─── Requirements ───────────────────────────────────────────────────────────
34
- *
35
- * Your application must process this file with Tailwind CSS v4 (e.g. via
36
- * @tailwindcss/postcss or @tailwindcss/vite) to generate the utility classes.
37
- * ────────────────────────────────────────────────────────────────────────────
38
- */
39
-
40
- @import "./themes.css";
41
-
42
- /*
43
- * Tell Tailwind v4 to scan KeepUI's compiled bundles so that all utility
44
- * classes used inside library component templates are included in the
45
- * consumer's CSS output — even though node_modules is excluded by default.
46
- */
47
- @source "../fesm2022";
48
-
49
- @theme inline {
50
- /* ── Surfaces ── */
51
- --color-keepui-background: var(--keepui-background);
52
- --color-keepui-surface: var(--keepui-surface);
53
- --color-keepui-surface-hover: var(--keepui-surface-hover);
54
-
55
- /* ── Borders ── */
56
- --color-keepui-border: var(--keepui-border);
57
- --color-keepui-border-strong: var(--keepui-border-strong);
58
-
59
- /* ── Text ── */
60
- --color-keepui-text: var(--keepui-text);
61
- --color-keepui-text-muted: var(--keepui-text-muted);
62
- --color-keepui-text-disabled: var(--keepui-text-disabled);
63
-
64
- /* ── Primary ── */
65
- --color-keepui-primary: var(--keepui-primary);
66
- --color-keepui-primary-hover: var(--keepui-primary-hover);
67
- --color-keepui-primary-active: var(--keepui-primary-active);
68
- --color-keepui-primary-fg: var(--keepui-primary-foreground);
69
-
70
- /* ── Feedback ── */
71
- --color-keepui-error: var(--keepui-error);
72
- --color-keepui-error-fg: var(--keepui-error-foreground);
73
- --color-keepui-success: var(--keepui-success);
74
- --color-keepui-warning: var(--keepui-warning);
75
-
76
- /* ── Shadows ── */
77
- --shadow-keepui-sm: var(--keepui-shadow-sm);
78
- --shadow-keepui-md: var(--keepui-shadow-md);
79
- --shadow-keepui-lg: var(--keepui-shadow-lg);
80
- }