@keepui/ui 0.3.0 → 0.5.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/README.md +741 -276
- package/fesm2022/keepui-ui.mjs +1509 -2
- package/fesm2022/keepui-ui.mjs.map +1 -1
- package/lib/components/signal-dropdown/signal-dropdown.component.d.ts +91 -0
- package/lib/components/signal-dropdown/signal-dropdown.component.d.ts.map +1 -0
- package/lib/components/signal-dropdown/signal-dropdown.types.d.ts +12 -0
- package/lib/components/signal-dropdown/signal-dropdown.types.d.ts.map +1 -0
- package/lib/components/signal-text-input/signal-text-input.component.d.ts +101 -0
- package/lib/components/signal-text-input/signal-text-input.component.d.ts.map +1 -0
- package/lib/components/signal-text-input/signal-text-input.types.d.ts +8 -0
- package/lib/components/signal-text-input/signal-text-input.types.d.ts.map +1 -0
- package/lib/components/signal-textarea/signal-textarea.component.d.ts +70 -0
- package/lib/components/signal-textarea/signal-textarea.component.d.ts.map +1 -0
- package/lib/components/signal-textarea/signal-textarea.types.d.ts +11 -0
- package/lib/components/signal-textarea/signal-textarea.types.d.ts.map +1 -0
- package/lib/components/stepper/stepper.component.d.ts +67 -0
- package/lib/components/stepper/stepper.component.d.ts.map +1 -0
- package/lib/components/stepper/stepper.types.d.ts +16 -0
- package/lib/components/stepper/stepper.types.d.ts.map +1 -0
- package/lib/components/tab-group/tab-group.component.d.ts +52 -0
- package/lib/components/tab-group/tab-group.component.d.ts.map +1 -0
- package/lib/components/tab-group/tab-group.types.d.ts +14 -0
- package/lib/components/tab-group/tab-group.types.d.ts.map +1 -0
- package/lib/i18n/keep-ui-translations.d.ts +4 -0
- package/lib/i18n/keep-ui-translations.d.ts.map +1 -1
- package/lib/i18n/translation-keys.d.ts +4 -0
- package/lib/i18n/translation-keys.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +10 -0
- package/public-api.d.ts.map +1 -1
- package/styles/index.css +1 -1
- package/styles/prebuilt.css +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { ElementRef } from '@angular/core';
|
|
2
|
+
import { SignalTextInputType, SignalTextInputWidth } from './signal-text-input.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Signal-based accessible text input supporting all common HTML input types,
|
|
6
|
+
* leading/trailing icons, a trailing content slot, and a built-in
|
|
7
|
+
* password-visibility toggle (when `type="password"`).
|
|
8
|
+
*
|
|
9
|
+
* The `value` and `touched` properties are `model()` signals so the component
|
|
10
|
+
* integrates seamlessly with Angular signal-based forms.
|
|
11
|
+
*
|
|
12
|
+
* Password toggle labels are translated via Transloco (scope `'keepui'`).
|
|
13
|
+
* Call `provideKeepUiI18n()` in your `app.config.ts` to activate i18n.
|
|
14
|
+
*
|
|
15
|
+
* ```html
|
|
16
|
+
* <keepui-signal-text-input
|
|
17
|
+
* label="Email"
|
|
18
|
+
* type="email"
|
|
19
|
+
* placeholder="usuario@ejemplo.com"
|
|
20
|
+
* leadingIcon="mail-icon"
|
|
21
|
+
* [(value)]="email"
|
|
22
|
+
* />
|
|
23
|
+
*
|
|
24
|
+
* <!-- Password with toggle -->
|
|
25
|
+
* <keepui-signal-text-input
|
|
26
|
+
* label="Contraseña"
|
|
27
|
+
* type="password"
|
|
28
|
+
* [(value)]="password"
|
|
29
|
+
* />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class SignalTextInputComponent {
|
|
33
|
+
protected readonly isPasswordVisible: import("@angular/core").WritableSignal<boolean>;
|
|
34
|
+
protected readonly inputRef: import("@angular/core").Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
35
|
+
/** Translation key references (typed via KEEPUI_TRANSLATION_KEYS). */
|
|
36
|
+
protected readonly keys: {
|
|
37
|
+
readonly SHOW_PASSWORD: "signalTextInput.showPassword";
|
|
38
|
+
readonly HIDE_PASSWORD: "signalTextInput.hidePassword";
|
|
39
|
+
};
|
|
40
|
+
/** Optional label text rendered above the input. */
|
|
41
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
42
|
+
/** Placeholder passed to the underlying `<input>`. */
|
|
43
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
44
|
+
/** HTML `type` attribute. Use `'password'` to enable the visibility toggle. @default 'text' */
|
|
45
|
+
readonly type: import("@angular/core").InputSignal<SignalTextInputType>;
|
|
46
|
+
/** Layout width of the wrapper. @default 'full' */
|
|
47
|
+
readonly width: import("@angular/core").InputSignal<SignalTextInputWidth>;
|
|
48
|
+
/** Name of the leading icon (SVG symbol ID). Leave empty for no icon. */
|
|
49
|
+
readonly leadingIcon: import("@angular/core").InputSignal<string>;
|
|
50
|
+
/** Name of the trailing icon (SVG symbol ID). Ignored when `type="password"`. */
|
|
51
|
+
readonly trailingIcon: import("@angular/core").InputSignal<string>;
|
|
52
|
+
/**
|
|
53
|
+
* When `true`, a slot for custom trailing content is enabled
|
|
54
|
+
* (projects `[trailingSlot]` content). Overrides `trailingIcon`.
|
|
55
|
+
* @default false
|
|
56
|
+
*/
|
|
57
|
+
readonly hasTrailingSlot: import("@angular/core").InputSignal<boolean>;
|
|
58
|
+
/** Marks the field as required. Adds `aria-required` and a visual asterisk. @default false */
|
|
59
|
+
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
60
|
+
/** When `false`, hides the visual asterisk even if `required=true`. @default true */
|
|
61
|
+
readonly showRequiredIndicator: import("@angular/core").InputSignal<boolean>;
|
|
62
|
+
/** Human-readable error message. Takes precedence over `errors[0]`. */
|
|
63
|
+
readonly errorMessage: import("@angular/core").InputSignal<string>;
|
|
64
|
+
/**
|
|
65
|
+
* Array of error strings. The first item is displayed when `errorMessage` is empty.
|
|
66
|
+
* Set together with `invalid=true` to trigger the error state.
|
|
67
|
+
*/
|
|
68
|
+
readonly errors: import("@angular/core").InputSignal<readonly string[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Stable `id` used to link the `<label>` with the `<input>`.
|
|
71
|
+
* A random suffix is generated by default.
|
|
72
|
+
*/
|
|
73
|
+
readonly inputId: import("@angular/core").InputSignal<string>;
|
|
74
|
+
/** Disables the input. @default false */
|
|
75
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Forces the error visual state regardless of the `touched` model.
|
|
78
|
+
* Useful for external form validation. @default false
|
|
79
|
+
*/
|
|
80
|
+
readonly invalid: import("@angular/core").InputSignal<boolean>;
|
|
81
|
+
/** Current text value. Use `[(value)]` for two-way binding. */
|
|
82
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
83
|
+
/** Whether the control has been interacted with. Use `[(touched)]` for two-way binding. */
|
|
84
|
+
readonly touched: import("@angular/core").ModelSignal<boolean>;
|
|
85
|
+
protected readonly errorId: import("@angular/core").Signal<string>;
|
|
86
|
+
protected readonly isPasswordType: import("@angular/core").Signal<boolean>;
|
|
87
|
+
protected readonly resolvedType: import("@angular/core").Signal<string>;
|
|
88
|
+
protected readonly widthClass: import("@angular/core").Signal<string>;
|
|
89
|
+
protected readonly hasLeading: import("@angular/core").Signal<boolean>;
|
|
90
|
+
protected readonly hasTrailing: import("@angular/core").Signal<boolean>;
|
|
91
|
+
protected readonly showError: import("@angular/core").Signal<boolean>;
|
|
92
|
+
protected readonly isDateEmpty: import("@angular/core").Signal<boolean>;
|
|
93
|
+
protected readonly inputClasses: import("@angular/core").Signal<string>;
|
|
94
|
+
protected onInput(event: Event): void;
|
|
95
|
+
protected onBlur(): void;
|
|
96
|
+
protected openDatePicker(): void;
|
|
97
|
+
protected togglePasswordVisibility(): void;
|
|
98
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SignalTextInputComponent, never>;
|
|
99
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SignalTextInputComponent, "keepui-signal-text-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "leadingIcon": { "alias": "leadingIcon"; "required": false; "isSignal": true; }; "trailingIcon": { "alias": "trailingIcon"; "required": false; "isSignal": true; }; "hasTrailingSlot": { "alias": "hasTrailingSlot"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "showRequiredIndicator": { "alias": "showRequiredIndicator"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, ["[trailingSlot]"], true, never>;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=signal-text-input.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-text-input.component.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/signal-text-input/signal-text-input.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,UAAU,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;;AAItF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAqGa,wBAAwB;IAEnC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,kDAAiB;IAErD,SAAS,CAAC,QAAQ,CAAC,QAAQ,2EAAuD;IAElF,sEAAsE;IACtE,SAAS,CAAC,QAAQ,CAAC,IAAI;;;MAAuB;IAE9C,oDAAoD;IACpD,QAAQ,CAAC,KAAK,8CAAqB;IAEnC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,8CAAqB;IAEzC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,2DAAsC;IAEnD,mDAAmD;IACnD,QAAQ,CAAC,KAAK,4DAAuC;IAErD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,8CAAqB;IAEzC,iFAAiF;IACjF,QAAQ,CAAC,YAAY,8CAAqB;IAE1C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,+CAAyB;IAEjD,8FAA8F;IAC9F,QAAQ,CAAC,QAAQ,+CAAyB;IAE1C,qFAAqF;IACrF,QAAQ,CAAC,qBAAqB,+CAAwB;IAEtD,uEAAuE;IACvE,QAAQ,CAAC,YAAY,8CAAqB;IAE1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,yDAAgC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,OAAO,8CAEd;IAEF,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,+CAAyB;IAE1C;;;OAGG;IACH,QAAQ,CAAC,OAAO,+CAAyB;IAEzC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,8CAAqB;IAEnC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,+CAAyB;IAEzC,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAExB;IAEF,SAAS,CAAC,QAAQ,CAAC,cAAc,0CAA8C;IAE/E,SAAS,CAAC,QAAQ,CAAC,YAAY,yCAK5B;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAO1B;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,0CAAiD;IAE9E,SAAS,CAAC,QAAQ,CAAC,WAAW,0CAE5B;IAEF,SAAS,CAAC,QAAQ,CAAC,SAAS,0CAI1B;IAEF,SAAS,CAAC,QAAQ,CAAC,WAAW,0CAE5B;IAEF,SAAS,CAAC,QAAQ,CAAC,YAAY,yCAgB5B;IAEH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKrC,SAAS,CAAC,MAAM,IAAI,IAAI;IAIxB,SAAS,CAAC,cAAc,IAAI,IAAI;IAQhC,SAAS,CAAC,wBAAwB,IAAI,IAAI;yCAjJ/B,wBAAwB;2CAAxB,wBAAwB;CAoJpC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** Layout width of the text input wrapper. */
|
|
2
|
+
export type SignalTextInputWidth = 'full' | 'half' | 'auto';
|
|
3
|
+
/**
|
|
4
|
+
* HTML `type` attribute for the underlying `<input>` element.
|
|
5
|
+
* Use `'password'` to enable the built-in show/hide toggle.
|
|
6
|
+
*/
|
|
7
|
+
export type SignalTextInputType = 'text' | 'email' | 'tel' | 'number' | 'password' | 'search' | 'url' | 'date';
|
|
8
|
+
//# sourceMappingURL=signal-text-input.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-text-input.types.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/signal-text-input/signal-text-input.types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,KAAK,GACL,MAAM,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { SignalTextareaResize, SignalTextareaWidth } from './signal-textarea.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Signal-based accessible textarea component with character counter,
|
|
5
|
+
* resize control, and integrated error display.
|
|
6
|
+
*
|
|
7
|
+
* The `value` and `touched` properties are `model()` signals so the component
|
|
8
|
+
* integrates seamlessly with Angular signal-based forms.
|
|
9
|
+
*
|
|
10
|
+
* ```html
|
|
11
|
+
* <keepui-signal-textarea
|
|
12
|
+
* label="Descripción"
|
|
13
|
+
* placeholder="Escribe aquí…"
|
|
14
|
+
* [rows]="5"
|
|
15
|
+
* [maxLength]="500"
|
|
16
|
+
* [(value)]="description"
|
|
17
|
+
* />
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare class SignalTextareaComponent {
|
|
21
|
+
/** Optional label text rendered above the textarea. */
|
|
22
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
23
|
+
/** Placeholder passed to the underlying `<textarea>`. */
|
|
24
|
+
readonly placeholder: import("@angular/core").InputSignal<string>;
|
|
25
|
+
/** Number of visible text rows. @default 4 */
|
|
26
|
+
readonly rows: import("@angular/core").InputSignal<number>;
|
|
27
|
+
/** Layout width of the wrapper. @default 'full' */
|
|
28
|
+
readonly width: import("@angular/core").InputSignal<SignalTextareaWidth>;
|
|
29
|
+
/** CSS `resize` behaviour. @default 'none' */
|
|
30
|
+
readonly resize: import("@angular/core").InputSignal<SignalTextareaResize>;
|
|
31
|
+
/** Marks the field as required. @default false */
|
|
32
|
+
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
33
|
+
/** Human-readable error message. Takes precedence over `errors[0]`. */
|
|
34
|
+
readonly errorMessage: import("@angular/core").InputSignal<string>;
|
|
35
|
+
/**
|
|
36
|
+
* Array of error strings. The first item is displayed when `errorMessage` is empty.
|
|
37
|
+
* Set together with `invalid=true` to trigger the error state.
|
|
38
|
+
*/
|
|
39
|
+
readonly errors: import("@angular/core").InputSignal<readonly string[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Stable `id` used to link the `<label>` with the `<textarea>`.
|
|
42
|
+
* A random suffix is generated by default.
|
|
43
|
+
*/
|
|
44
|
+
readonly textareaId: import("@angular/core").InputSignal<string>;
|
|
45
|
+
/** Disables the textarea. @default false */
|
|
46
|
+
readonly disabled: import("@angular/core").InputSignal<boolean>;
|
|
47
|
+
/** Maximum number of characters allowed. Shows a character counter when set. */
|
|
48
|
+
readonly maxLength: import("@angular/core").InputSignal<number | undefined>;
|
|
49
|
+
/**
|
|
50
|
+
* Forces the error visual state regardless of the `touched` model.
|
|
51
|
+
* Useful for external form validation. @default false
|
|
52
|
+
*/
|
|
53
|
+
readonly invalid: import("@angular/core").InputSignal<boolean>;
|
|
54
|
+
/** Current text value. Use `[(value)]` for two-way binding. */
|
|
55
|
+
readonly value: import("@angular/core").ModelSignal<string>;
|
|
56
|
+
/** Whether the control has been interacted with. Use `[(touched)]` for two-way binding. */
|
|
57
|
+
readonly touched: import("@angular/core").ModelSignal<boolean>;
|
|
58
|
+
protected readonly errorId: import("@angular/core").Signal<string>;
|
|
59
|
+
protected readonly charCountId: import("@angular/core").Signal<string>;
|
|
60
|
+
protected readonly charCount: import("@angular/core").Signal<number>;
|
|
61
|
+
protected readonly showError: import("@angular/core").Signal<boolean>;
|
|
62
|
+
protected readonly widthClass: import("@angular/core").Signal<string>;
|
|
63
|
+
protected readonly resizeClass: import("@angular/core").Signal<string>;
|
|
64
|
+
protected readonly textareaClasses: import("@angular/core").Signal<string>;
|
|
65
|
+
protected onInput(event: Event): void;
|
|
66
|
+
protected onBlur(): void;
|
|
67
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SignalTextareaComponent, never>;
|
|
68
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SignalTextareaComponent, "keepui-signal-textarea", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "textareaId": { "alias": "textareaId"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touched": "touchedChange"; }, never, never, true, never>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=signal-textarea.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-textarea.component.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/signal-textarea/signal-textarea.component.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;;AAEpF;;;;;;;;;;;;;;;;GAgBG;AACH,qBAoEa,uBAAuB;IAElC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,8CAAqB;IAEnC,yDAAyD;IACzD,QAAQ,CAAC,WAAW,8CAAqB;IAEzC,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,8CAAoB;IAEjC,mDAAmD;IACnD,QAAQ,CAAC,KAAK,2DAAsC;IAEpD,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,4DAAuC;IAEtD,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,+CAAyB;IAE1C,uEAAuE;IACvE,QAAQ,CAAC,YAAY,8CAAqB;IAE1C;;;OAGG;IACH,QAAQ,CAAC,MAAM,yDAAgC;IAE/C;;;OAGG;IACH,QAAQ,CAAC,UAAU,8CAEjB;IAEF,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,+CAAyB;IAE1C,gFAAgF;IAChF,QAAQ,CAAC,SAAS,0DAAwC;IAE1D;;;OAGG;IACH,QAAQ,CAAC,OAAO,+CAAyB;IAEzC,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,8CAAqB;IAEnC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,+CAAyB;IAEzC,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAAgD;IAC1E,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAAgD;IAE9E,SAAS,CAAC,QAAQ,CAAC,SAAS,yCAAuC;IAEnE,SAAS,CAAC,QAAQ,CAAC,SAAS,0CAI1B;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAO1B;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAQ3B;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,yCAK/B;IAEH,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAKrC,SAAS,CAAC,MAAM,IAAI,IAAI;yCAjGb,uBAAuB;2CAAvB,uBAAuB;CAoGnC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Layout width of the textarea wrapper. */
|
|
2
|
+
export type SignalTextareaWidth = 'full' | 'half' | 'auto';
|
|
3
|
+
/**
|
|
4
|
+
* CSS `resize` behaviour of the `<textarea>` element.
|
|
5
|
+
* - `none` → not resizable (default).
|
|
6
|
+
* - `vertical` → user can drag to resize vertically.
|
|
7
|
+
* - `horizontal` → user can drag to resize horizontally.
|
|
8
|
+
* - `both` → user can drag freely.
|
|
9
|
+
*/
|
|
10
|
+
export type SignalTextareaResize = 'none' | 'vertical' | 'horizontal' | 'both';
|
|
11
|
+
//# sourceMappingURL=signal-textarea.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signal-textarea.types.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/signal-textarea/signal-textarea.types.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { StepperOrientation, StepperSize, StepperStep } from './stepper.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Visual step-progress indicator with optional navigation.
|
|
5
|
+
*
|
|
6
|
+
* Renders a sequence of numbered step circles connected by a progress bar.
|
|
7
|
+
* Completed steps show a check-mark; the active step is highlighted; future
|
|
8
|
+
* steps are muted. Steps with an `icon` replace the number with the given SVG symbol.
|
|
9
|
+
*
|
|
10
|
+
* Accessibility: uses `role="list"` / `role="listitem"` with `aria-current="step"` on
|
|
11
|
+
* the active item. When steps are interactive (i.e. `stepChange` is listened to),
|
|
12
|
+
* completed and current steps render as `<button>` elements; future steps remain
|
|
13
|
+
* inert `<span>` elements.
|
|
14
|
+
*
|
|
15
|
+
* Works identically on **web** and **Angular + Capacitor**.
|
|
16
|
+
*
|
|
17
|
+
* ```html
|
|
18
|
+
* <!-- Read-only progress indicator -->
|
|
19
|
+
* <keepui-stepper [steps]="steps" [activeIndex]="1" />
|
|
20
|
+
*
|
|
21
|
+
* <!-- Interactive stepper (go back to a previous step) -->
|
|
22
|
+
* <keepui-stepper
|
|
23
|
+
* [steps]="steps"
|
|
24
|
+
* [activeIndex]="currentStep"
|
|
25
|
+
* (stepChange)="currentStep = $event"
|
|
26
|
+
* />
|
|
27
|
+
*
|
|
28
|
+
* <!-- Small variant -->
|
|
29
|
+
* <keepui-stepper [steps]="steps" [activeIndex]="0" size="sm" />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare class StepperComponent {
|
|
33
|
+
/** Steps to render. */
|
|
34
|
+
readonly steps: import("@angular/core").InputSignal<StepperStep[]>;
|
|
35
|
+
/** Zero-based index of the currently active step. @default 0 */
|
|
36
|
+
readonly activeIndex: import("@angular/core").InputSignal<number>;
|
|
37
|
+
/** Visual size of the step circles and connector bars. @default 'md' */
|
|
38
|
+
readonly size: import("@angular/core").InputSignal<StepperSize>;
|
|
39
|
+
/** Layout direction. @default 'horizontal' */
|
|
40
|
+
readonly orientation: import("@angular/core").InputSignal<StepperOrientation>;
|
|
41
|
+
/**
|
|
42
|
+
* Accessible label for the `<nav>` element.
|
|
43
|
+
* @default ''
|
|
44
|
+
*/
|
|
45
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
46
|
+
/**
|
|
47
|
+
* Emits the zero-based index of the step the user clicked.
|
|
48
|
+
* Only completed steps and the active step are clickable.
|
|
49
|
+
* When no subscriber is attached, the stepper is purely visual.
|
|
50
|
+
*/
|
|
51
|
+
readonly stepChange: import("@angular/core").OutputEmitterRef<number>;
|
|
52
|
+
protected readonly iconSize: import("@angular/core").Signal<12 | 16>;
|
|
53
|
+
protected isCompleted(index: number): boolean;
|
|
54
|
+
protected isActive(index: number): boolean;
|
|
55
|
+
protected isClickable(index: number, step: StepperStep): boolean;
|
|
56
|
+
protected onStepClick(index: number, step: StepperStep): void;
|
|
57
|
+
protected readonly wrapperClass: import("@angular/core").Signal<string>;
|
|
58
|
+
protected readonly listClass: import("@angular/core").Signal<"list-none m-0 p-0 flex flex-col gap-0" | "list-none m-0 p-0 flex flex-row items-start">;
|
|
59
|
+
protected readonly itemClass: import("@angular/core").Signal<"flex flex-row items-center flex-1" | "flex flex-col items-center flex-1">;
|
|
60
|
+
protected readonly stepColumnClass: import("@angular/core").Signal<"flex flex-row items-center gap-3" | "flex flex-col items-center gap-1.5">;
|
|
61
|
+
protected bubbleClass(index: number): string;
|
|
62
|
+
protected labelClass(index: number): string;
|
|
63
|
+
protected connectorClass(index: number): string;
|
|
64
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StepperComponent, never>;
|
|
65
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StepperComponent, "keepui-stepper", never, { "steps": { "alias": "steps"; "required": true; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "stepChange": "stepChange"; }, never, never, true, never>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=stepper.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepper.component.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/stepper/stepper.component.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAwEa,gBAAgB;IAC3B,uBAAuB;IACvB,QAAQ,CAAC,KAAK,qDAAmC;IAEjD,gEAAgE;IAChE,QAAQ,CAAC,WAAW,8CAAoB;IAExC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,mDAA4B;IAEzC,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,0DAA2C;IAE/D;;;OAGG;IACH,QAAQ,CAAC,SAAS,8CAAqB;IAEvC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,mDAAoB;IAEvC,SAAS,CAAC,QAAQ,CAAC,QAAQ,0CAAoD;IAE/E,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI1C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO;IAIhE,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAM7D,SAAS,CAAC,QAAQ,CAAC,YAAY,yCAA4B;IAE3D,SAAS,CAAC,QAAQ,CAAC,SAAS,0HAKzB;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,4GAKzB;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,4GAI/B;IAEH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAsB5C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAW3C,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;yCArGpC,gBAAgB;2CAAhB,gBAAgB;CAqH5B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** A single step in a stepper. */
|
|
2
|
+
export interface StepperStep {
|
|
3
|
+
/** Unique identifier for the step. */
|
|
4
|
+
readonly id: string;
|
|
5
|
+
/** Display label shown below the step indicator. */
|
|
6
|
+
readonly label: string;
|
|
7
|
+
/** Optional icon name (SVG symbol ID, without `#`) rendered inside the step circle. */
|
|
8
|
+
readonly icon?: string;
|
|
9
|
+
/** When `true` the step is not interactive. @default false */
|
|
10
|
+
readonly disabled?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** Visual size of the stepper. */
|
|
13
|
+
export type StepperSize = 'sm' | 'md';
|
|
14
|
+
/** Visual orientation of the stepper. */
|
|
15
|
+
export type StepperOrientation = 'horizontal' | 'vertical';
|
|
16
|
+
//# sourceMappingURL=stepper.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepper.types.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/stepper/stepper.types.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC,yCAAyC;AACzC,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Tab, TabGroupVariant } from './tab-group.types';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Accessible pill-style tab group with icon support and two visual variants.
|
|
5
|
+
*
|
|
6
|
+
* Implements the WAI-ARIA `tablist` pattern: keyboard navigation with arrow keys,
|
|
7
|
+
* `Home`, and `End`. Each tab carries `role="tab"` and `aria-selected`.
|
|
8
|
+
*
|
|
9
|
+
* Works identically on **web** and **Angular + Capacitor**.
|
|
10
|
+
*
|
|
11
|
+
* ```html
|
|
12
|
+
* <!-- Basic usage -->
|
|
13
|
+
* <keepui-tab-group
|
|
14
|
+
* [tabs]="tabs"
|
|
15
|
+
* [selectedTabId]="activeTab"
|
|
16
|
+
* (tabChange)="activeTab = $event"
|
|
17
|
+
* />
|
|
18
|
+
*
|
|
19
|
+
* <!-- Filled variant -->
|
|
20
|
+
* <keepui-tab-group
|
|
21
|
+
* variant="filled"
|
|
22
|
+
* [tabs]="tabs"
|
|
23
|
+
* [selectedTabId]="activeTab"
|
|
24
|
+
* (tabChange)="activeTab = $event"
|
|
25
|
+
* />
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare class TabGroupComponent {
|
|
29
|
+
/** List of tabs to render. */
|
|
30
|
+
readonly tabs: import("@angular/core").InputSignal<Tab[]>;
|
|
31
|
+
/** ID of the currently selected tab. */
|
|
32
|
+
readonly selectedTabId: import("@angular/core").InputSignal<string>;
|
|
33
|
+
/** Visual style variant. @default 'default' */
|
|
34
|
+
readonly variant: import("@angular/core").InputSignal<TabGroupVariant>;
|
|
35
|
+
/**
|
|
36
|
+
* Accessible label for the tablist container.
|
|
37
|
+
* Provide a meaningful description when multiple tab groups exist on the page.
|
|
38
|
+
*/
|
|
39
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
40
|
+
/** Emits the `id` of the tab the user has selected. */
|
|
41
|
+
readonly tabChange: import("@angular/core").OutputEmitterRef<string>;
|
|
42
|
+
private readonly tabButtons;
|
|
43
|
+
protected readonly containerClass: import("@angular/core").Signal<"bg-ku-action-primary/10 border-ku-action-primary/20" | "bg-ku-secondary border-ku-secondary-border">;
|
|
44
|
+
protected buttonClass(tabId: string): string;
|
|
45
|
+
protected iconClass(tabId: string): string;
|
|
46
|
+
protected onTabClick(tab: Tab): void;
|
|
47
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
48
|
+
private focusTab;
|
|
49
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TabGroupComponent, never>;
|
|
50
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TabGroupComponent, "keepui-tab-group", never, { "tabs": { "alias": "tabs"; "required": true; "isSignal": true; }; "selectedTabId": { "alias": "selectedTabId"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=tab-group.component.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-group.component.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/tab-group/tab-group.component.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBA8Ca,iBAAiB;IAC5B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,6CAA2B;IAExC,wCAAwC;IACxC,QAAQ,CAAC,aAAa,8CAA4B;IAElD,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,uDAAqC;IAErD;;;OAGG;IACH,QAAQ,CAAC,SAAS,8CAAqB;IAEvC,uDAAuD;IACvD,QAAQ,CAAC,SAAS,mDAAoB;IAEtC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4D;IAEvF,SAAS,CAAC,QAAQ,CAAC,cAAc,uIAI/B;IAEF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAY5C,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQ1C,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAMpC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAwB/C,OAAO,CAAC,QAAQ;yCA7EL,iBAAiB;2CAAjB,iBAAiB;CAmF7B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Visual style variant of the tab group. */
|
|
2
|
+
export type TabGroupVariant = 'default' | 'filled';
|
|
3
|
+
/** Represents a single tab entry. */
|
|
4
|
+
export interface Tab {
|
|
5
|
+
/** Unique identifier for the tab. */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Display label for the tab. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Optional icon name (SVG symbol ID, without `#`). */
|
|
10
|
+
icon?: string;
|
|
11
|
+
/** Whether the tab is disabled. @default false */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tab-group.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab-group.types.d.ts","sourceRoot":"","sources":["../../../../../projects/keep-ui/src/lib/components/tab-group/tab-group.types.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnD,qCAAqC;AACrC,MAAM,WAAW,GAAG;IAClB,qCAAqC;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -15,6 +15,10 @@ export interface KeepUiTranslationSchema {
|
|
|
15
15
|
previewAlt: string;
|
|
16
16
|
errorUnexpected: string;
|
|
17
17
|
};
|
|
18
|
+
signalTextInput: {
|
|
19
|
+
showPassword: string;
|
|
20
|
+
hidePassword: string;
|
|
21
|
+
};
|
|
18
22
|
}
|
|
19
23
|
/** Map from locale code to its translation object. */
|
|
20
24
|
export declare const KEEPUI_TRANSLATIONS: Record<KeepUiLanguage, KeepUiTranslationSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keep-ui-translations.d.ts","sourceRoot":"","sources":["../../../../projects/keep-ui/src/lib/i18n/keep-ui-translations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"keep-ui-translations.d.ts","sourceRoot":"","sources":["../../../../projects/keep-ui/src/lib/i18n/keep-ui-translations.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,eAAe,EAAE;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAyCD,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAI/E,CAAC"}
|
|
@@ -18,6 +18,10 @@ export declare const KEEPUI_TRANSLATION_KEYS: {
|
|
|
18
18
|
readonly PREVIEW_ALT: "imagePreview.previewAlt";
|
|
19
19
|
readonly ERROR_UNEXPECTED: "imagePreview.errorUnexpected";
|
|
20
20
|
};
|
|
21
|
+
readonly SIGNAL_TEXT_INPUT: {
|
|
22
|
+
readonly SHOW_PASSWORD: "signalTextInput.showPassword";
|
|
23
|
+
readonly HIDE_PASSWORD: "signalTextInput.hidePassword";
|
|
24
|
+
};
|
|
21
25
|
};
|
|
22
26
|
/** Union of all supported KeepUI locales. */
|
|
23
27
|
export type KeepUiLanguage = 'en' | 'es' | 'de';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation-keys.d.ts","sourceRoot":"","sources":["../../../../projects/keep-ui/src/lib/i18n/translation-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"translation-keys.d.ts","sourceRoot":"","sources":["../../../../projects/keep-ui/src/lib/i18n/translation-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;CAW1B,CAAC;AAEX,6CAA6C;AAC7C,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,EAAE,SAAS,cAAc,EAItD,CAAC"}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -10,6 +10,16 @@ export * from './lib/components/icon/icon.component';
|
|
|
10
10
|
export * from './lib/components/icon-action-button/icon-action-button.types';
|
|
11
11
|
export * from './lib/components/icon-action-button/icon-action-button.component';
|
|
12
12
|
export * from './lib/components/image-preview/image-preview.component';
|
|
13
|
+
export * from './lib/components/signal-dropdown/signal-dropdown.types';
|
|
14
|
+
export * from './lib/components/signal-dropdown/signal-dropdown.component';
|
|
15
|
+
export * from './lib/components/signal-text-input/signal-text-input.types';
|
|
16
|
+
export * from './lib/components/signal-text-input/signal-text-input.component';
|
|
17
|
+
export * from './lib/components/signal-textarea/signal-textarea.types';
|
|
18
|
+
export * from './lib/components/signal-textarea/signal-textarea.component';
|
|
19
|
+
export * from './lib/components/tab-group/tab-group.types';
|
|
20
|
+
export * from './lib/components/tab-group/tab-group.component';
|
|
21
|
+
export * from './lib/components/stepper/stepper.types';
|
|
22
|
+
export * from './lib/components/stepper/stepper.component';
|
|
13
23
|
export * from './lib/providers/provide-keep-ui';
|
|
14
24
|
export * from './lib/providers/keep-ui-i18n.provider';
|
|
15
25
|
export * from './lib/i18n/translation-keys';
|
package/public-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/keep-ui/src/public-api.ts"],"names":[],"mappings":"AAGA,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,kEAAkE,CAAC;AACjF,cAAc,wDAAwD,CAAC;
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../projects/keep-ui/src/public-api.ts"],"names":[],"mappings":"AAGA,cAAc,gCAAgC,CAAC;AAG/C,cAAc,uBAAuB,CAAC;AAGtC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,iCAAiC,CAAC;AAGhD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,kEAAkE,CAAC;AACjF,cAAc,wDAAwD,CAAC;AACvE,cAAc,wDAAwD,CAAC;AACvE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,wDAAwD,CAAC;AACvE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,yCAAyC,CAAC;AAGxD,cAAc,iCAAiC,CAAC"}
|
package/styles/index.css
CHANGED
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* @source inline() declares all Tailwind classes used by KeepUI components
|
|
58
58
|
* explicitly — the string must be on a SINGLE LINE (CSS string literal rule).
|
|
59
59
|
*/
|
|
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
|
|
60
|
+
@source inline("inline-flex items-center justify-center gap-2 min-h-[2.75rem] min-w-[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-ku-action-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed w-full w-1/2 w-auto h-10 px-4 w-40 px-6 rounded-full rounded-2xl rounded-lg rounded-xl 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 border-ku-secondary-border focus-visible:border-ku-action-primary 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 p-3 shadow-sm shadow shadow-lg flex flex-col gap-4 gap-1 gap-1.5 gap-2 gap-3 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 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-6 px-4 pt-4 relative absolute left-3 right-1 right-3 pointer-events-none pl-4 pl-9 pr-4 pr-10 pr-24 py-2.5 py-0.5 placeholder:text-ku-gray-text outline-none dark:[color-scheme:dark] hover:text-ku-primary-text truncate flex-1 flex-wrap justify-between min-w-0 text-[11px] text-xs px-2 z-[1000] max-h-64 shadow-lg hover:bg-ku-primary-hover focus-visible:bg-ku-primary-hover bg-ku-primary-hover rotate-180 resize-none resize-y resize-x resize aria-live-polite ml-auto gap-2 items-start justify-start opacity-70");
|
|
61
61
|
|
|
62
62
|
@theme inline {
|
|
63
63
|
|
package/styles/prebuilt.css
CHANGED
|
@@ -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;--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}
|
|
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-xs:20rem;--container-sm:24rem;--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{.pointer-events-none{pointer-events:none}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.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)}.right-1{right:calc(var(--spacing) * 1)}.right-3{right:calc(var(--spacing) * 3)}.left-0{left:calc(var(--spacing) * 0)}.left-3{left:calc(var(--spacing) * 3)}.z-30{z-index:30}.z-40{z-index:40}.z-\[1000\]{z-index:1000}.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}.my-1{margin-block:calc(var(--spacing) * 1)}.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)}.ml-auto{margin-left:auto}.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-0\.5{height:calc(var(--spacing) * .5)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.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}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[2\.75rem\]{min-height:2.75rem}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\/2{width:50%}.w-6{width:calc(var(--spacing) * 6)}.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-auto{width:auto}.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%}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.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)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-x{resize:horizontal}.resize-y{resize:vertical}.list-none{list-style-type:none}.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-row{flex-direction:row}.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-0{gap:calc(var(--spacing) * 0)}.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)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.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-2{border-style:var(--tw-border-style);border-width:2px}.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-ku-action-primary\/20{border-color:var(--ku-action-primary)}@supports (color:color-mix(in lab, red, red)){.border-ku-action-primary\/20{border-color:color-mix(in oklab, var(--ku-action-primary) 20%, transparent)}}.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-background{background-color:var(--ku-action-background)}.bg-ku-action-primary,.bg-ku-action-primary\/10{background-color:var(--ku-action-primary)}@supports (color:color-mix(in lab, red, red)){.bg-ku-action-primary\/10{background-color:color-mix(in oklab, var(--ku-action-primary) 10%, transparent)}}.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-ku-secondary-border{background-color:var(--ku-secondary-border)}.bg-transparent{background-color:#0000}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.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-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pr-24{padding-right:calc(var(--spacing) * 24)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-9{padding-left:calc(var(--spacing) * 9)}.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))}.text-\[11px\]{font-size:11px}.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}.opacity-70{opacity:.7}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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-sm{--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)}.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)}.ring-2{--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)}.ring-ku-action-primary{--tw-ring-color:var(--ku-action-primary)}.ring-offset-2{--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)}.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-opacity{transition-property:opacity;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)}.outline-none{--tw-outline-style:none;outline-style:none}.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)}}.placeholder\:text-ku-gray-text::placeholder{color:var(--ku-gray-text)}.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-action-primary\/10:hover{background-color:var(--ku-action-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ku-action-primary\/10:hover{background-color:color-mix(in oklab, var(--ku-action-primary) 10%, transparent)}}.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\:opacity-90:hover{opacity:.9}.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\:border-ku-action-primary:focus-visible{border-color:var(--ku-action-primary)}.focus-visible\:bg-ku-primary-hover:focus-visible{background-color:var(--ku-primary-hover)}.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-action-primary:focus-visible{--tw-ring-color:var(--ku-action-primary)}.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-40:disabled{opacity:.4}.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))}}@media (prefers-color-scheme:dark){.dark\:\[color-scheme\:dark\]{color-scheme:dark}}}: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}
|