@keepui/ui 0.1.7 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/styles/index.css CHANGED
@@ -14,23 +14,32 @@
14
14
  * ─── Tailwind v4 utilities generated ────────────────────────────────────────
15
15
  *
16
16
  * Surface & background:
17
- * bg-keepui-background bg-keepui-surface bg-keepui-surface-hover
17
+ * bg-ku-primary bg-ku-secondary bg-ku-secondary-hover
18
18
  *
19
19
  * Text:
20
- * text-keepui-text text-keepui-text-muted text-keepui-text-disabled
20
+ * text-ku-primary-text text-ku-secondary-text text-ku-gray-text
21
21
  *
22
22
  * Borders:
23
- * border-keepui-border border-keepui-border-strong
23
+ * border-ku-secondary-border border-ku-primary-border border-ku-gray-border
24
24
  *
25
- * Brand / Primary:
26
- * bg-keepui-primary bg-keepui-primary-hover bg-keepui-primary-active
27
- * text-keepui-primary-fg border-keepui-primary
25
+ * Brand / Accent:
26
+ * text-ku-brand-text border-ku-primary-border bg-ku-primary/10
28
27
  *
29
28
  * Feedback:
30
- * text-keepui-error bg-keepui-error bg-keepui-success bg-keepui-warning
29
+ * text-ku-red-text bg-ku-red-bg border-ku-red-border text-ku-green-text
31
30
  *
32
- * Shadows:
33
- * shadow-keepui-sm shadow-keepui-md shadow-keepui-lg
31
+ * Semantic color palette (bg / border / text per color):
32
+ * bg-ku-gray-bg border-ku-gray-border text-ku-gray-text
33
+ * bg-ku-brand-bg border-ku-brand-border text-ku-brand-text
34
+ * bg-ku-indigo-bg border-ku-indigo-border text-ku-indigo-text
35
+ * bg-ku-blue-bg border-ku-blue-border text-ku-blue-text
36
+ * bg-ku-pink-bg border-ku-pink-border text-ku-pink-text
37
+ * bg-ku-orange-bg border-ku-orange-border text-ku-orange-text
38
+ * bg-ku-yellow-bg border-ku-yellow-border text-ku-yellow-text
39
+ * bg-ku-green-bg border-ku-green-border text-ku-green-text
40
+ * bg-ku-purple-bg border-ku-purple-border text-ku-purple-text
41
+ * bg-ku-teal-bg border-ku-teal-border text-ku-teal-text
42
+ * bg-ku-red-bg border-ku-red-border text-ku-red-text
34
43
  *
35
44
  * ─── Requirements ───────────────────────────────────────────────────────────
36
45
  *
@@ -48,37 +57,74 @@
48
57
  * @source inline() declares all Tailwind classes used by KeepUI components
49
58
  * explicitly — the string must be on a SINGLE LINE (CSS string literal rule).
50
59
  */
51
- @source inline("inline-flex items-center justify-center gap-2 min-h-[2.75rem] text-sm font-medium cursor-pointer select-none transition-colors duration-200 transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-keepui-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed w-full h-10 px-4 w-40 px-6 rounded-full rounded-2xl rounded-lg bg-keepui-primary text-keepui-primary-fg border border-keepui-primary enabled:hover:bg-keepui-primary-hover enabled:hover:border-keepui-primary-hover enabled:active:bg-keepui-primary-active enabled:active:border-keepui-primary-active bg-keepui-surface text-keepui-text border-keepui-border enabled:hover:bg-keepui-surface-hover enabled:hover:border-keepui-border-strong disabled:text-keepui-text-disabled bg-transparent text-keepui-primary enabled:hover:border-keepui-primary enabled:hover:text-keepui-primary bg-keepui-primary/10 enabled:hover:bg-keepui-primary/10 bg-keepui-error text-keepui-error-fg border-keepui-error enabled:hover:opacity-90 enabled:active:opacity-80 p-4 shadow-keepui-sm shadow-keepui-md shadow-keepui-lg flex flex-col gap-4 max-w-full h-auto text-keepui-error m-0 block sr-only");
60
+ @source inline("inline-flex items-center justify-center gap-2 min-h-[2.75rem] text-sm font-medium cursor-pointer select-none transition-colors duration-200 transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ku-primary-border focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed w-full h-10 px-4 w-40 px-6 rounded-full rounded-2xl rounded-lg bg-ku-action-primary border-ku-action-primary text-ku-action-primary bg-ku-action-background text-ku-error-primary bg-ku-error-primary border-ku-error-primary bg-ku-error-background text-ku-success-primary bg-ku-success-primary border-ku-success-primary bg-ku-success-background text-ku-warning-primary bg-ku-warning-primary border-ku-warning-primary bg-ku-warning-background bg-ku-primary text-ku-primary-text border border-ku-primary-border enabled:hover:bg-ku-primary-hover enabled:hover:border-ku-primary-border enabled:active:bg-ku-primary-hover enabled:active:border-ku-primary-border bg-ku-secondary text-ku-secondary-text border-ku-secondary-border enabled:hover:bg-ku-secondary-hover enabled:hover:border-ku-gray-border disabled:text-ku-gray-text bg-transparent text-ku-brand-text enabled:hover:border-ku-primary-border enabled:hover:text-ku-brand-text bg-ku-primary/10 enabled:hover:bg-ku-primary/10 bg-ku-red-bg text-ku-red-text border-ku-red-border enabled:hover:opacity-90 enabled:active:opacity-80 p-4 shadow-sm shadow shadow-lg flex flex-col gap-4 max-w-full h-auto m-0 block sr-only bg-ku-gray-bg border-ku-gray-border text-ku-gray-text bg-ku-brand-bg border-ku-brand-border text-ku-brand-text bg-ku-indigo-bg border-ku-indigo-border text-ku-indigo-text bg-ku-blue-bg border-ku-blue-border text-ku-blue-text bg-ku-pink-bg border-ku-pink-border text-ku-pink-text bg-ku-orange-bg border-ku-orange-border text-ku-orange-text bg-ku-yellow-bg border-ku-yellow-border text-ku-yellow-text bg-ku-green-bg border-ku-green-border text-ku-green-text bg-ku-purple-bg border-ku-purple-border text-ku-purple-text bg-ku-teal-bg border-ku-teal-border text-ku-teal-text bg-ku-red-bg border-ku-red-border text-ku-red-text rounded-xl overflow-hidden transition-colors border-ku-brand-border hover:bg-ku-primary-hover focus:outline-none focus-visible:ring-ku-brand-border h-full h-4 shrink-0 overflow-y-auto overflow-x-auto p-3 p-6 px-4 pt-4");
52
61
 
53
62
  @theme inline {
54
- /* ── Surfaces ── */
55
- --color-keepui-background: var(--keepui-background);
56
- --color-keepui-surface: var(--keepui-surface);
57
- --color-keepui-surface-hover: var(--keepui-surface-hover);
58
-
59
- /* ── Borders ── */
60
- --color-keepui-border: var(--keepui-border);
61
- --color-keepui-border-strong: var(--keepui-border-strong);
62
-
63
- /* ── Text ── */
64
- --color-keepui-text: var(--keepui-text);
65
- --color-keepui-text-muted: var(--keepui-text-muted);
66
- --color-keepui-text-disabled: var(--keepui-text-disabled);
67
-
68
- /* ── Primary ── */
69
- --color-keepui-primary: var(--keepui-primary);
70
- --color-keepui-primary-hover: var(--keepui-primary-hover);
71
- --color-keepui-primary-active: var(--keepui-primary-active);
72
- --color-keepui-primary-fg: var(--keepui-primary-foreground);
73
-
74
- /* ── Feedback ── */
75
- --color-keepui-error: var(--keepui-error);
76
- --color-keepui-error-fg: var(--keepui-error-foreground);
77
- --color-keepui-success: var(--keepui-success);
78
- --color-keepui-warning: var(--keepui-warning);
79
-
80
- /* ── Shadows ── */
81
- --shadow-keepui-sm: var(--keepui-shadow-sm);
82
- --shadow-keepui-md: var(--keepui-shadow-md);
83
- --shadow-keepui-lg: var(--keepui-shadow-lg);
63
+
64
+ /* ── Action / Feedback tokens ── */
65
+ --color-ku-action-primary: var(--ku-action-primary);
66
+ --color-ku-action-background: var(--ku-action-background);
67
+ --color-ku-success-primary: var(--ku-success-primary);
68
+ --color-ku-success-background: var(--ku-success-background);
69
+ --color-ku-error-primary: var(--ku-error-primary);
70
+ --color-ku-error-background: var(--ku-error-background);
71
+ --color-ku-warning-primary: var(--ku-warning-primary);
72
+ --color-ku-warning-background: var(--ku-warning-background);
73
+
74
+ /* ── Primary surface ── */
75
+ --color-ku-primary: var(--ku-primary);
76
+ --color-ku-primary-hover: var(--ku-primary-hover);
77
+ --color-ku-primary-text: var(--ku-primary-text);
78
+ --color-ku-primary-border: var(--ku-primary-border);
79
+
80
+ /* ── Secondary surface ── */
81
+ --color-ku-secondary: var(--ku-secondary);
82
+ --color-ku-secondary-hover: var(--ku-secondary-hover);
83
+ --color-ku-secondary-text: var(--ku-secondary-text);
84
+ --color-ku-secondary-border: var(--ku-secondary-border);
85
+
86
+ /* ── Semantic color palette ── */
87
+ --color-ku-gray-bg: var(--ku-gray-bg);
88
+ --color-ku-gray-border: var(--ku-gray-border);
89
+ --color-ku-gray-text: var(--ku-gray-text);
90
+
91
+ --color-ku-brand-bg: var(--ku-brand-bg);
92
+ --color-ku-brand-border: var(--ku-brand-border);
93
+ --color-ku-brand-text: var(--ku-brand-text);
94
+
95
+ --color-ku-indigo-bg: var(--ku-indigo-bg);
96
+ --color-ku-indigo-border: var(--ku-indigo-border);
97
+ --color-ku-indigo-text: var(--ku-indigo-text);
98
+
99
+ --color-ku-blue-bg: var(--ku-blue-bg);
100
+ --color-ku-blue-border: var(--ku-blue-border);
101
+ --color-ku-blue-text: var(--ku-blue-text);
102
+
103
+ --color-ku-pink-bg: var(--ku-pink-bg);
104
+ --color-ku-pink-border: var(--ku-pink-border);
105
+ --color-ku-pink-text: var(--ku-pink-text);
106
+
107
+ --color-ku-orange-bg: var(--ku-orange-bg);
108
+ --color-ku-orange-border: var(--ku-orange-border);
109
+ --color-ku-orange-text: var(--ku-orange-text);
110
+
111
+ --color-ku-yellow-bg: var(--ku-yellow-bg);
112
+ --color-ku-yellow-border: var(--ku-yellow-border);
113
+ --color-ku-yellow-text: var(--ku-yellow-text);
114
+
115
+ --color-ku-green-bg: var(--ku-green-bg);
116
+ --color-ku-green-border: var(--ku-green-border);
117
+ --color-ku-green-text: var(--ku-green-text);
118
+
119
+ --color-ku-purple-bg: var(--ku-purple-bg);
120
+ --color-ku-purple-border: var(--ku-purple-border);
121
+ --color-ku-purple-text: var(--ku-purple-text);
122
+
123
+ --color-ku-teal-bg: var(--ku-teal-bg);
124
+ --color-ku-teal-border: var(--ku-teal-border);
125
+ --color-ku-teal-text: var(--ku-teal-text);
126
+
127
+ --color-ku-red-bg: var(--ku-red-bg);
128
+ --color-ku-red-border: var(--ku-red-border);
129
+ --color-ku-red-text: var(--ku-red-text);
84
130
  }
@@ -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))}}@media (prefers-color-scheme:dark){.dark\:bg-keepui-primary{background-color:var(--keepui-primary)}}}: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],.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]):not(.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;--color-white:#fff;--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-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-xl:.75rem;--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{.invisible{visibility:hidden}.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)}.end{inset-inline-end: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-3{margin-top:calc(var(--spacing) * 3)}.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-5{margin-bottom:calc(var(--spacing) * 5)}.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}.table{display:table}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.h-4{height:calc(var(--spacing) * 4)}.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-52{height:calc(var(--spacing) * 52)}.h-auto{height:auto}.h-full{height:100%}.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))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.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-6{gap:calc(var(--spacing) * 6)}.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)}.rounded-xl{border-radius:var(--radius-xl)}.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-ku-action-primary{border-color:var(--ku-action-primary)}.border-ku-brand-border{border-color:var(--ku-brand-border)}.border-ku-error-primary{border-color:var(--ku-error-primary)}.border-ku-primary-border{border-color:var(--ku-primary-border)}.border-ku-secondary-border{border-color:var(--ku-secondary-border)}.\!bg-ku-primary-hover{background-color:var(--ku-primary-hover)!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-ku-action-primary{background-color:var(--ku-action-primary)}.bg-ku-error-primary{background-color:var(--ku-error-primary)}.bg-ku-primary{background-color:var(--ku-primary)}.bg-ku-primary-hover{background-color:var(--ku-primary-hover)}.bg-ku-secondary{background-color:var(--ku-secondary)}.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)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.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-ku-primary-text{color:var(--ku-primary-text)!important}.text-ku-action-primary{color:var(--ku-action-primary)}.text-ku-brand-text{color:var(--ku-brand-text)}.text-ku-error-primary{color:var(--ku-error-primary)}.text-ku-gray-text{color:var(--ku-gray-text)}.text-ku-primary-text{color:var(--ku-primary-text)}.text-ku-red-text{color:var(--ku-red-text)}.text-ku-secondary-text{color:var(--ku-secondary-text)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.no-underline{text-decoration-line:none}.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-ku-primary-border:hover{border-color:var(--ku-primary-border)}.hover\:bg-ku-primary-hover:hover{background-color:var(--ku-primary-hover)}.hover\:bg-ku-secondary-hover:hover{background-color:var(--ku-secondary-hover)}.hover\:text-ku-primary-text:hover{color:var(--ku-primary-text)}.hover\:shadow-sm:hover{--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)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.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-ku-brand-border:focus-visible{--tw-ring-color:var(--ku-brand-border)}.focus-visible\:ring-ku-primary-border:focus-visible{--tw-ring-color:var(--ku-primary-border)}.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-ku-action-primary:enabled:hover{border-color:var(--ku-action-primary)}.enabled\:hover\:border-ku-error-primary:enabled:hover{border-color:var(--ku-error-primary)}.enabled\:hover\:bg-ku-action-background:enabled:hover{background-color:var(--ku-action-background)}.enabled\:hover\:bg-ku-error-background:enabled:hover{background-color:var(--ku-error-background)}.enabled\:hover\:text-ku-action-primary:enabled:hover{color:var(--ku-action-primary)}.enabled\:hover\:text-ku-error-primary:enabled:hover{color:var(--ku-error-primary)}.enabled\:hover\:opacity-90:enabled:hover{opacity:.9}}.enabled\:active\:opacity-80:enabled:active{opacity:.8}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,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{--ku-action-primary:#007bff;--ku-action-background:#007bff33;--ku-success-primary:#5abf68;--ku-success-background:#5abf6833;--ku-error-primary:#de695e;--ku-error-background:#de695e33;--ku-warning-primary:#e59928;--ku-warning-background:#e5992833;--ku-primary:#f9f9f9;--ku-primary-hover:#e2e3e8;--ku-primary-text:#171717;--ku-primary-border:#e2e3e8;--ku-secondary:#fff;--ku-secondary-hover:#f9f9f9;--ku-secondary-text:#171717;--ku-secondary-border:#e2e3e8;--ku-gray-bg:#f5f5f5;--ku-gray-border:#d5d7da;--ku-gray-text:#6b7280;--ku-brand-bg:#f9f5ff;--ku-brand-border:#d6bbfb;--ku-brand-text:#6941c6;--ku-indigo-bg:#eef4ff;--ku-indigo-border:#c7d7fe;--ku-indigo-text:#3538cd;--ku-blue-bg:#eff8ff;--ku-blue-border:#b2ddff;--ku-blue-text:#175cd3;--ku-pink-bg:#fdf2fa;--ku-pink-border:#fcceee;--ku-pink-text:#c11574;--ku-orange-bg:#fff6ed;--ku-orange-border:#f9dbaf;--ku-orange-text:#b93815;--ku-yellow-bg:#fefbe8;--ku-yellow-border:#fedf89;--ku-yellow-text:#a15c07;--ku-green-bg:#ecfdf3;--ku-green-border:#abefc6;--ku-green-text:#067647;--ku-purple-bg:#f4f3ff;--ku-purple-border:#d9d6fe;--ku-purple-text:#5925dc;--ku-teal-bg:#f0fdfa;--ku-teal-border:#99f6e4;--ku-teal-text:#0f766e;--ku-red-bg:#fff1f2;--ku-red-border:#fecdd3;--ku-red-text:#b91c1c}[data-theme=dark],.dark{--ku-action-primary:#007bff;--ku-action-background:#007bff33;--ku-success-primary:#5abf68;--ku-success-background:#5abf6833;--ku-error-primary:#de695e;--ku-error-background:#de695e33;--ku-warning-primary:#e59928;--ku-warning-background:#e5992833;--ku-primary:#050505;--ku-primary-hover:#2c2d31;--ku-primary-text:#fff;--ku-primary-border:#2c2d31;--ku-secondary:#15161a;--ku-secondary-hover:#2c2d31;--ku-secondary-text:#fff;--ku-secondary-border:#2c2d31;--ku-gray-bg:#1f2937;--ku-gray-border:#4b5563;--ku-gray-text:#9ca3af;--ku-brand-bg:#2e1065;--ku-brand-border:#7c3aed;--ku-brand-text:#c4b5fd;--ku-indigo-bg:#1e1b4b;--ku-indigo-border:#4338ca;--ku-indigo-text:#a5b4fc;--ku-blue-bg:#0c1d3e;--ku-blue-border:#2563eb;--ku-blue-text:#93c5fd;--ku-pink-bg:#3d0b2f;--ku-pink-border:#db2777;--ku-pink-text:#f9a8d4;--ku-orange-bg:#2c1204;--ku-orange-border:#ea580c;--ku-orange-text:#fdba74;--ku-yellow-bg:#2c1f02;--ku-yellow-border:#ca8a04;--ku-yellow-text:#fde047;--ku-green-bg:#052e16;--ku-green-border:#16a34a;--ku-green-text:#4ade80;--ku-purple-bg:#1c1040;--ku-purple-border:#6d28d9;--ku-purple-text:#c4b5fd;--ku-teal-bg:#042a28;--ku-teal-border:#0d9488;--ku-teal-text:#2dd4bf;--ku-red-bg:#2d0b0b;--ku-red-border:#dc2626;--ku-red-text:#fca5a5;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--spacing-3xl:64px;--spacing-4xl:96px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:1px 1px 12px 0 #0006;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a, 0 10px 10px -5px #0000000a;--shadow-2xl:0 25px 50px -12px #00000040;--z-index-base:0;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not(.light){--ku-action-primary:#007bff;--ku-action-background:#007bff33;--ku-success-primary:#5abf68;--ku-success-background:#5abf6833;--ku-error-primary:#de695e;--ku-error-background:#de695e33;--ku-warning-primary:#e59928;--ku-warning-background:#e5992833;--ku-gray-bg:#1f2937;--ku-gray-border:#4b5563;--ku-gray-text:#9ca3af;--ku-brand-bg:#2e1065;--ku-brand-border:#7c3aed;--ku-brand-text:#c4b5fd;--ku-indigo-bg:#1e1b4b;--ku-indigo-border:#4338ca;--ku-indigo-text:#a5b4fc;--ku-blue-bg:#0c1d3e;--ku-blue-border:#2563eb;--ku-blue-text:#93c5fd;--ku-pink-bg:#3d0b2f;--ku-pink-border:#db2777;--ku-pink-text:#f9a8d4;--ku-orange-bg:#2c1204;--ku-orange-border:#ea580c;--ku-orange-text:#fdba74;--ku-yellow-bg:#2c1f02;--ku-yellow-border:#ca8a04;--ku-yellow-text:#fde047;--ku-green-bg:#052e16;--ku-green-border:#16a34a;--ku-green-text:#4ade80;--ku-purple-bg:#1c1040;--ku-purple-border:#6d28d9;--ku-purple-text:#c4b5fd;--ku-teal-bg:#042a28;--ku-teal-border:#0d9488;--ku-teal-text:#2dd4bf;--ku-red-bg:#2d0b0b;--ku-red-border:#dc2626;--ku-red-text:#fca5a5}}@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/themes.css CHANGED
@@ -1,132 +1,241 @@
1
- /*
2
- * KeepUI — Default Theme
3
- *
4
- * This file defines all the CSS custom properties (design tokens) used by
5
- * KeepUI components. Import it once in your application's global stylesheet:
6
- *
7
- * @import "@keepui/ui/styles/themes.css";
8
- *
9
- * ─── How to customise ───────────────────────────────────────────────────
10
- *
11
- * Override any variable in your own CSS to create a custom theme:
12
- *
13
- * :root {
14
- * --keepui-primary: #6366f1;
15
- * --keepui-primary-hover: #4f46e5;
16
- * }
17
- *
18
- * [data-theme="dark"] {
19
- * --keepui-primary: #818cf8;
20
- * --keepui-primary-hover: #a5b4fc;
21
- * }
22
- *
23
- * ─── Switching themes at runtime ────────────────────────────────────────
24
- *
25
- * Add `data-theme="dark"` to <html> or any ancestor element:
26
- *
27
- * document.documentElement.setAttribute('data-theme', 'dark');
28
- *
29
- * Or rely on the user's OS preference — the defaults already include
30
- * a `@media (prefers-color-scheme: dark)` block.
31
- * ────────────────────────────────────────────────────────────────────────
32
- */
33
-
34
1
  /* ===== LIGHT THEME (default) ===== */
35
2
  :root {
36
- /* ── Brand ── */
37
- --keepui-primary: #3b82f6;
38
- --keepui-primary-hover: #2563eb;
39
- --keepui-primary-active: #1d4ed8;
40
- --keepui-primary-foreground: #ffffff;
41
-
42
- /* ── Surfaces ── */
43
- --keepui-background: #f5f5f5;
44
- --keepui-surface: #ffffff;
45
- --keepui-surface-hover: #f0f0f0;
46
-
47
- /* ── Borders ── */
48
- --keepui-border: #e0e0e0;
49
- --keepui-border-strong: #cccccc;
50
-
51
- /* ── Text ── */
52
- --keepui-text: #1f2937;
53
- --keepui-text-muted: #6b7280;
54
- --keepui-text-disabled: #9ca3af;
55
-
56
- /* ── Feedback ── */
57
- --keepui-error: #dc2626;
58
- --keepui-error-foreground: #ffffff;
59
- --keepui-success: #16a34a;
60
- --keepui-warning: #f59e0b;
61
-
62
- /* ── Misc ── */
63
- --keepui-radius: 0.5rem;
64
- --keepui-radius-sm: 0.25rem;
65
- --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.12);
66
- --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.15);
67
- --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.18);
68
- --keepui-transition: 0.2s ease;
69
- --keepui-disabled-opacity: 0.5;
70
- --keepui-font-family: system-ui, -apple-system, sans-serif;
3
+ --ku-action-primary: #007BFF;
4
+ --ku-action-background: rgba(0, 123, 255, 0.2);
5
+ --ku-success-primary: #5ABF68;
6
+ --ku-success-background: rgba(90, 191, 104, 0.2);
7
+ --ku-error-primary: #DE695E;
8
+ --ku-error-background: rgba(222, 105, 94, 0.2);
9
+ --ku-warning-primary: #E59928;
10
+ --ku-warning-background: rgba(229, 153, 40, 0.2);
11
+
12
+ --ku-primary: #F9F9F9;
13
+ --ku-primary-hover: #E2E3E8;
14
+ --ku-primary-text: #171717;
15
+ --ku-primary-border: #E2E3E8;
16
+
17
+ --ku-secondary: #FFFFFF;
18
+ --ku-secondary-hover: #F9F9F9;
19
+ --ku-secondary-text: #171717;
20
+ --ku-secondary-border: #E2E3E8;
21
+
22
+ --ku-gray-bg: #F5F5F5;
23
+ --ku-gray-border: #D5D7DA;
24
+ --ku-gray-text: #6B7280;
25
+
26
+ --ku-brand-bg: #F9F5FF;
27
+ --ku-brand-border: #D6BBFB;
28
+ --ku-brand-text: #6941C6;
29
+
30
+ --ku-indigo-bg: #EEF4FF;
31
+ --ku-indigo-border: #C7D7FE;
32
+ --ku-indigo-text: #3538CD;
33
+
34
+ --ku-blue-bg: #EFF8FF;
35
+ --ku-blue-border: #B2DDFF;
36
+ --ku-blue-text: #175CD3;
37
+
38
+ --ku-pink-bg: #FDF2FA;
39
+ --ku-pink-border: #FCCEEE;
40
+ --ku-pink-text: #C11574;
41
+
42
+ --ku-orange-bg: #FFF6ED;
43
+ --ku-orange-border: #F9DBAF;
44
+ --ku-orange-text: #B93815;
45
+
46
+ --ku-yellow-bg: #FEFBE8;
47
+ --ku-yellow-border: #FEDF89;
48
+ --ku-yellow-text: #A15C07;
49
+
50
+ --ku-green-bg: #ECFDF3;
51
+ --ku-green-border: #ABEFC6;
52
+ --ku-green-text: #067647;
53
+
54
+ --ku-purple-bg: #F4F3FF;
55
+ --ku-purple-border: #D9D6FE;
56
+ --ku-purple-text: #5925DC;
57
+
58
+ --ku-teal-bg: #F0FDFA;
59
+ --ku-teal-border: #99F6E4;
60
+ --ku-teal-text: #0F766E;
61
+
62
+ --ku-red-bg: #FFF1F2;
63
+ --ku-red-border: #FECDD3;
64
+ --ku-red-text: #B91C1C;
65
+
71
66
  }
72
67
 
73
68
  /* ===== DARK THEME ===== */
74
- /* Soporta tanto clase .dark (Tailwind estándar) como atributo data-theme="dark" */
75
69
  [data-theme="dark"],
76
70
  .dark {
77
- --keepui-primary: #60a5fa;
78
- --keepui-primary-hover: #93c5fd;
79
- --keepui-primary-active: #3b82f6;
80
- --keepui-primary-foreground: #0f172a;
81
-
82
- --keepui-background: #0f172a;
83
- --keepui-surface: #1e293b;
84
- --keepui-surface-hover: #334155;
85
-
86
- --keepui-border: #334155;
87
- --keepui-border-strong: #475569;
88
-
89
- --keepui-text: #f1f5f9;
90
- --keepui-text-muted: #94a3b8;
91
- --keepui-text-disabled: #64748b;
92
-
93
- --keepui-error: #f87171;
94
- --keepui-error-foreground: #0f172a;
95
- --keepui-success: #4ade80;
96
- --keepui-warning: #fbbf24;
97
-
98
- --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
99
- --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.45);
100
- --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.5);
71
+ --ku-action-primary: #007BFF;
72
+ --ku-action-background: rgba(0, 123, 255, 0.2);
73
+ --ku-success-primary: #5ABF68;
74
+ --ku-success-background: rgba(90, 191, 104, 0.2);
75
+ --ku-error-primary: #DE695E;
76
+ --ku-error-background: rgba(222, 105, 94, 0.2);
77
+ --ku-warning-primary: #E59928;
78
+ --ku-warning-background: rgba(229, 153, 40, 0.2);
79
+
80
+ --ku-primary: #050505;
81
+ --ku-primary-hover: #2C2D31;
82
+ --ku-primary-text: #FFFFFF;
83
+ --ku-primary-border: #2C2D31;
84
+
85
+ --ku-secondary: #15161A;
86
+ --ku-secondary-hover: #2C2D31;
87
+ --ku-secondary-text: #FFFFFF;
88
+ --ku-secondary-border: #2C2D31;
89
+
90
+ --ku-gray-bg: #1F2937;
91
+ --ku-gray-border: #4B5563;
92
+ --ku-gray-text: #9CA3AF;
93
+
94
+ --ku-brand-bg: #2E1065;
95
+ --ku-brand-border: #7C3AED;
96
+ --ku-brand-text: #C4B5FD;
97
+
98
+ --ku-indigo-bg: #1E1B4B;
99
+ --ku-indigo-border: #4338CA;
100
+ --ku-indigo-text: #A5B4FC;
101
+
102
+ --ku-blue-bg: #0C1D3E;
103
+ --ku-blue-border: #2563EB;
104
+ --ku-blue-text: #93C5FD;
105
+
106
+ --ku-pink-bg: #3D0B2F;
107
+ --ku-pink-border: #DB2777;
108
+ --ku-pink-text: #F9A8D4;
109
+
110
+ --ku-orange-bg: #2C1204;
111
+ --ku-orange-border: #EA580C;
112
+ --ku-orange-text: #FDBA74;
113
+
114
+ --ku-yellow-bg: #2C1F02;
115
+ --ku-yellow-border: #CA8A04;
116
+ --ku-yellow-text: #FDE047;
117
+
118
+ --ku-green-bg: #052E16;
119
+ --ku-green-border: #16A34A;
120
+ --ku-green-text: #4ADE80;
121
+
122
+ --ku-purple-bg: #1C1040;
123
+ --ku-purple-border: #6D28D9;
124
+ --ku-purple-text: #C4B5FD;
125
+
126
+ --ku-teal-bg: #042A28;
127
+ --ku-teal-border: #0D9488;
128
+ --ku-teal-text: #2DD4BF;
129
+
130
+ --ku-red-bg: #2D0B0B;
131
+ --ku-red-border: #DC2626;
132
+ --ku-red-text: #FCA5A5;
133
+
134
+ /* =====================================================
135
+ SPACING
136
+ ===================================================== */
137
+
138
+ --spacing-xs: 4px;
139
+ --spacing-sm: 8px;
140
+ --spacing-md: 16px;
141
+ --spacing-lg: 24px;
142
+ --spacing-xl: 32px;
143
+ --spacing-2xl: 48px;
144
+ --spacing-3xl: 64px;
145
+ --spacing-4xl: 96px;
146
+
147
+ /* =====================================================
148
+ BORDER RADIUS
149
+ ===================================================== */
150
+
151
+ --radius-sm: 4px;
152
+ --radius-md: 8px;
153
+ --radius-lg: 12px;
154
+ --radius-xl: 16px;
155
+ --radius-2xl: 24px;
156
+ --radius-full: 9999px;
157
+
158
+ /* =====================================================
159
+ BOX SHADOW
160
+ ===================================================== */
161
+
162
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
163
+ --shadow: 1px 1px 12px 0 rgba(0, 0, 0, 0.4);
164
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
165
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
166
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
167
+ --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
168
+
169
+ /* =====================================================
170
+ Z-INDEX
171
+ ===================================================== */
172
+
173
+ --z-index-base: 0;
174
+ --z-index-dropdown: 1000;
175
+ --z-index-sticky: 1020;
176
+ --z-index-fixed: 1030;
177
+ --z-index-modal-backdrop: 1040;
178
+ --z-index-modal: 1050;
179
+ --z-index-popover: 1060;
180
+ --z-index-tooltip: 1070;
101
181
  }
102
182
 
103
183
  /* ===== Auto dark (OS preference) ===== */
104
184
  @media (prefers-color-scheme: dark) {
105
185
  :root:not([data-theme="light"]):not(.light) {
106
- --keepui-primary: #60a5fa;
107
- --keepui-primary-hover: #93c5fd;
108
- --keepui-primary-active: #3b82f6;
109
- --keepui-primary-foreground: #0f172a;
110
-
111
- --keepui-background: #0f172a;
112
- --keepui-surface: #1e293b;
113
- --keepui-surface-hover: #334155;
114
-
115
- --keepui-border: #334155;
116
- --keepui-border-strong: #475569;
117
-
118
- --keepui-text: #f1f5f9;
119
- --keepui-text-muted: #94a3b8;
120
- --keepui-text-disabled: #64748b;
121
-
122
- --keepui-error: #f87171;
123
- --keepui-error-foreground: #0f172a;
124
- --keepui-success: #4ade80;
125
- --keepui-warning: #fbbf24;
126
-
127
- --keepui-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4);
128
- --keepui-shadow-md: 0 3px 6px rgba(0, 0, 0, 0.45);
129
- --keepui-shadow-lg: 0 6px 12px rgba(0, 0, 0, 0.5);
186
+ --ku-action-primary: #007BFF;
187
+ --ku-action-background: rgba(0, 123, 255, 0.2);
188
+ --ku-success-primary: #5ABF68;
189
+ --ku-success-background: rgba(90, 191, 104, 0.2);
190
+ --ku-error-primary: #DE695E;
191
+ --ku-error-background: rgba(222, 105, 94, 0.2);
192
+ --ku-warning-primary: #E59928;
193
+ --ku-warning-background: rgba(229, 153, 40, 0.2);
194
+
195
+ /* ── Semantic color palette (dark) ── */
196
+ --ku-gray-bg: #1F2937;
197
+ --ku-gray-border: #4B5563;
198
+ --ku-gray-text: #9CA3AF;
199
+
200
+ --ku-brand-bg: #2E1065;
201
+ --ku-brand-border: #7C3AED;
202
+ --ku-brand-text: #C4B5FD;
203
+
204
+ --ku-indigo-bg: #1E1B4B;
205
+ --ku-indigo-border: #4338CA;
206
+ --ku-indigo-text: #A5B4FC;
207
+
208
+ --ku-blue-bg: #0C1D3E;
209
+ --ku-blue-border: #2563EB;
210
+ --ku-blue-text: #93C5FD;
211
+
212
+ --ku-pink-bg: #3D0B2F;
213
+ --ku-pink-border: #DB2777;
214
+ --ku-pink-text: #F9A8D4;
215
+
216
+ --ku-orange-bg: #2C1204;
217
+ --ku-orange-border: #EA580C;
218
+ --ku-orange-text: #FDBA74;
219
+
220
+ --ku-yellow-bg: #2C1F02;
221
+ --ku-yellow-border: #CA8A04;
222
+ --ku-yellow-text: #FDE047;
223
+
224
+ --ku-green-bg: #052E16;
225
+ --ku-green-border: #16A34A;
226
+ --ku-green-text: #4ADE80;
227
+
228
+ --ku-purple-bg: #1C1040;
229
+ --ku-purple-border: #6D28D9;
230
+ --ku-purple-text: #C4B5FD;
231
+
232
+ --ku-teal-bg: #042A28;
233
+ --ku-teal-border: #0D9488;
234
+ --ku-teal-text: #2DD4BF;
235
+
236
+ --ku-red-bg: #2D0B0B;
237
+ --ku-red-border: #DC2626;
238
+ --ku-red-text: #FCA5A5;
130
239
  }
131
240
  }
132
241