@swis/genui-widgets 1.0.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/LICENSE.md +21 -0
- package/README.md +297 -0
- package/dist/compat/chatkit.d.ts +7 -0
- package/dist/composables/useActionDispatcher.d.ts +5 -0
- package/dist/composables/useTheme.d.ts +227 -0
- package/dist/genui-widgets.css +2 -0
- package/dist/genui-widgets.esm.js +8010 -0
- package/dist/genui-widgets.js +100 -0
- package/dist/index.d.ts +39 -0
- package/dist/injectionKeys.d.ts +3 -0
- package/dist/palette.d.ts +9 -0
- package/dist/render.d.ts +3 -0
- package/dist/styling/classes.d.ts +4 -0
- package/dist/styling/styles.d.ts +22 -0
- package/dist/styling/tailwind.d.ts +14 -0
- package/dist/styling/text.d.ts +7 -0
- package/dist/styling/tokens.d.ts +47 -0
- package/dist/template.d.ts +2 -0
- package/dist/theme.d.ts +8 -0
- package/dist/types/action.d.ts +7 -0
- package/dist/types/instance.d.ts +14 -0
- package/dist/types/tailwind.d.ts +277 -0
- package/dist/types/theme.d.ts +24 -0
- package/dist/types/widget.d.ts +25 -0
- package/dist/widgetFile.d.ts +9 -0
- package/package.json +83 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) swisnl <joris@swis.nl>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# `@swisnl/genui-widgets`
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
[](LICENSE.md)
|
|
5
|
+
[](https://plant.treeware.earth/swisnl/genui-widgets)
|
|
6
|
+
[](https://www.swis.nl)
|
|
7
|
+
|
|
8
|
+
Render OpenAI ChatKit widget JSON in any web page with a single function call.
|
|
9
|
+
|
|
10
|
+
Pass a ChatKit widget payload directly to `render()` and it displays. No ChatKit dependency, no framework lock-in.
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm install @swisnl/genui-widgets
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## IIFE bundle (no build step)
|
|
21
|
+
|
|
22
|
+
The standalone bundle includes Vue and injects CSS automatically.
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<div id="widget"></div>
|
|
26
|
+
<script src="/dist/genui-widgets.js"></script>
|
|
27
|
+
<script>
|
|
28
|
+
GenUIWidgets.render(
|
|
29
|
+
document.getElementById('widget'),
|
|
30
|
+
chatKitPayload,
|
|
31
|
+
{ format: 'chatkit' }
|
|
32
|
+
);
|
|
33
|
+
</script>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Render an OpenAI widget payload
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { render } from '@swisnl/genui-widgets';
|
|
40
|
+
import '@swisnl/genui-widgets/styles';
|
|
41
|
+
|
|
42
|
+
render(document.getElementById('widget'), chatKitPayload, {
|
|
43
|
+
format: 'chatkit',
|
|
44
|
+
actionHooks: [
|
|
45
|
+
async (action) => {
|
|
46
|
+
console.log('Action:', action);
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Jinja templates
|
|
53
|
+
|
|
54
|
+
Templates can be Jinja strings that resolve to widget JSON at render time:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
render(container, `{"type":"Card","children":[{"type":"Title","value":{{ title | tojson }}}]}`, {
|
|
58
|
+
templateContext: { title: 'Hello' },
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## `.widget` files
|
|
63
|
+
|
|
64
|
+
Extract the template from a `.widget` file and pass it directly to `render()`:
|
|
65
|
+
|
|
66
|
+
```ts
|
|
67
|
+
import { extractTemplateFromWidgetFile, render } from '@swisnl/genui-widgets';
|
|
68
|
+
|
|
69
|
+
const template = extractTemplateFromWidgetFile(await file.text());
|
|
70
|
+
render(container, template);
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
That's it. Pass the raw payload from the OpenAI response and the widget renders.
|
|
75
|
+
|
|
76
|
+
## Vue component
|
|
77
|
+
|
|
78
|
+
```vue
|
|
79
|
+
<script setup lang="ts">
|
|
80
|
+
import { provide } from 'vue';
|
|
81
|
+
import { ACTION_HOOKS_KEY, DynamicWidget, fromChatKit } from '@swisnl/genui-widgets';
|
|
82
|
+
import '@swisnl/genui-widgets/styles';
|
|
83
|
+
|
|
84
|
+
const template = fromChatKit(chatKitPayload);
|
|
85
|
+
|
|
86
|
+
provide(ACTION_HOOKS_KEY, [
|
|
87
|
+
async (action) => console.log('Action:', action),
|
|
88
|
+
]);
|
|
89
|
+
</script>
|
|
90
|
+
|
|
91
|
+
<template>
|
|
92
|
+
<DynamicWidget :template="template" />
|
|
93
|
+
</template>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Updating and destroying
|
|
97
|
+
|
|
98
|
+
`render()` returns an instance you can update or clean up:
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
const widget = render(container, chatKitPayload, { format: 'chatkit' });
|
|
102
|
+
|
|
103
|
+
// Swap in a new payload
|
|
104
|
+
widget.update(newPayload);
|
|
105
|
+
|
|
106
|
+
// Clean up
|
|
107
|
+
widget.destroy();
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Theming
|
|
111
|
+
|
|
112
|
+
Widgets are styled through `--genui-*` CSS custom properties, all scoped to the `.genui-widget-root` container element. The library ships two ready-made themes and exposes the full API for custom themes.
|
|
113
|
+
|
|
114
|
+
### Built-in themes
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
import { defaultTheme, darkTheme, render } from '@swisnl/genui-widgets';
|
|
118
|
+
|
|
119
|
+
// Light (default — applied automatically when no theme is passed)
|
|
120
|
+
render(container, payload, { theme: defaultTheme });
|
|
121
|
+
|
|
122
|
+
// Dark
|
|
123
|
+
render(container, payload, { theme: darkTheme });
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Overriding with CSS variables
|
|
127
|
+
|
|
128
|
+
Because all tokens are plain CSS custom properties on `.genui-widget-root`, you can override them directly in a stylesheet without touching JavaScript at all:
|
|
129
|
+
|
|
130
|
+
```css
|
|
131
|
+
/* Target all widget roots on the page */
|
|
132
|
+
.genui-widget-root {
|
|
133
|
+
--genui-surface: #f8f4ff;
|
|
134
|
+
--genui-background: #f8f4ff;
|
|
135
|
+
--genui-text-primary: #1a0040;
|
|
136
|
+
--genui-primary-60: #7c3aed;
|
|
137
|
+
--genui-primary-70: #6d28d9;
|
|
138
|
+
--genui-border-default: #e2e8f0;
|
|
139
|
+
--genui-base-size: 0.9rem;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Or scope overrides to a specific container */
|
|
143
|
+
#my-widget .genui-widget-root {
|
|
144
|
+
--genui-surface: #1e1e2e;
|
|
145
|
+
--genui-text-primary: #cdd6f4;
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Custom theme
|
|
150
|
+
|
|
151
|
+
Use `createTheme()` to merge overrides on top of a base theme:
|
|
152
|
+
|
|
153
|
+
```ts
|
|
154
|
+
import { createTheme, defaultTheme, render } from '@swisnl/genui-widgets';
|
|
155
|
+
|
|
156
|
+
render(container, payload, {
|
|
157
|
+
theme: createTheme(defaultTheme, {
|
|
158
|
+
surface: '#f8f4ff',
|
|
159
|
+
background: '#f8f4ff',
|
|
160
|
+
textPrimary: '#1a0040',
|
|
161
|
+
palettes: {
|
|
162
|
+
primary: { 60: '#7c3aed', 70: '#6d28d9' },
|
|
163
|
+
},
|
|
164
|
+
}),
|
|
165
|
+
});
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Semantic color palettes
|
|
169
|
+
|
|
170
|
+
Each semantic color (`primary`, `secondary`, `success`, `danger`, `warning`, `info`, `discovery`, `caution`) exposes ten lightness steps (`5` → `90`) as CSS variables:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
--genui-primary-60 /* hex value */
|
|
174
|
+
--genui-primary-60-rgb /* "R, G, B" for alpha compositing */
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Override individual steps without replacing the whole palette:
|
|
178
|
+
|
|
179
|
+
```ts
|
|
180
|
+
createTheme(defaultTheme, {
|
|
181
|
+
palettes: {
|
|
182
|
+
primary: { 60: '#2563eb', 70: '#1d4ed8' },
|
|
183
|
+
success: { 50: '#10b981' },
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Raw CSS variable overrides
|
|
189
|
+
|
|
190
|
+
Use the `overrides` escape hatch to set any `--genui-*` variable directly:
|
|
191
|
+
|
|
192
|
+
```ts
|
|
193
|
+
createTheme(defaultTheme, {
|
|
194
|
+
overrides: {
|
|
195
|
+
'base-size': '0.9rem',
|
|
196
|
+
'--genui-border-default': '#e2e8f0',
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Keys are automatically prefixed with `--genui-` when not already prefixed.
|
|
202
|
+
|
|
203
|
+
### Applying a theme in Vue with `useTheme`
|
|
204
|
+
|
|
205
|
+
```vue
|
|
206
|
+
<script setup lang="ts">
|
|
207
|
+
import { ref } from 'vue';
|
|
208
|
+
import { useTheme, darkTheme } from '@swisnl/genui-widgets';
|
|
209
|
+
|
|
210
|
+
const container = ref<HTMLElement | null>(null);
|
|
211
|
+
const { theme } = useTheme(container, darkTheme);
|
|
212
|
+
|
|
213
|
+
// Reactively update any token — the container updates automatically
|
|
214
|
+
theme.value = { ...theme.value, surface: '#1a1a2e' };
|
|
215
|
+
</script>
|
|
216
|
+
|
|
217
|
+
<template>
|
|
218
|
+
<div ref="container">
|
|
219
|
+
<DynamicWidget :template="widget" />
|
|
220
|
+
</div>
|
|
221
|
+
</template>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Applying a theme manually
|
|
225
|
+
|
|
226
|
+
```ts
|
|
227
|
+
import { applyTheme, createTheme, defaultTheme } from '@swisnl/genui-widgets';
|
|
228
|
+
|
|
229
|
+
applyTheme(document.getElementById('widget'), createTheme(defaultTheme, {
|
|
230
|
+
textPrimary: '#1a0040',
|
|
231
|
+
}));
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Updating the theme at runtime
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
const widget = render(container, payload, { format: 'chatkit' });
|
|
238
|
+
|
|
239
|
+
widget.setTheme(darkTheme);
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Widget types
|
|
243
|
+
|
|
244
|
+
`Box` `Card` `Button` `Text` `Title` `Markdown` `Image` `Form` `Input` `Textarea` `Select` `Checkbox` `RadioGroup` `DatePicker` `Badge` `ListView` `ListViewItem` `Divider` `Spacer` `Row` `Col` `Label` `Caption` `Icon`
|
|
245
|
+
|
|
246
|
+
## Development
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
npm install
|
|
250
|
+
npm run demo # run the demo
|
|
251
|
+
npm run build # build both outputs
|
|
252
|
+
npm run lint
|
|
253
|
+
npm run typecheck
|
|
254
|
+
npm test
|
|
255
|
+
npm run test:visual
|
|
256
|
+
npm run test:visual:update # refresh visual baselines
|
|
257
|
+
npm run test:visual:playwright-image
|
|
258
|
+
npm run test:visual:update:playwright-image # refresh Linux baselines in the CI image
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Visual baselines are stored per OS with prefixes like `macos-` and `linux-`. If you need to refresh the screenshots used by GitHub Actions, run the Playwright image update command so the baselines are regenerated inside `mcr.microsoft.com/playwright:v1.58.2-noble`.
|
|
262
|
+
|
|
263
|
+
## Build output
|
|
264
|
+
|
|
265
|
+
| File | Description |
|
|
266
|
+
|---|---|
|
|
267
|
+
| `dist/genui-widgets.esm.js` | ESM build for bundlers |
|
|
268
|
+
| `dist/genui-widgets.css` | Stylesheet for ESM consumers |
|
|
269
|
+
| `dist/genui-widgets.js` | Self-contained browser bundle with CSS injection |
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
## Changelog
|
|
273
|
+
|
|
274
|
+
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
|
|
275
|
+
|
|
276
|
+
## Contributing
|
|
277
|
+
|
|
278
|
+
Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details.
|
|
279
|
+
|
|
280
|
+
## Security Vulnerabilities
|
|
281
|
+
|
|
282
|
+
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
|
|
283
|
+
|
|
284
|
+
## Credits
|
|
285
|
+
|
|
286
|
+
- [Joris Meijer](https://github.com/jormeijer)
|
|
287
|
+
- [All Contributors](../../contributors)
|
|
288
|
+
|
|
289
|
+
## License
|
|
290
|
+
|
|
291
|
+
This package is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).
|
|
292
|
+
|
|
293
|
+
This package is [Treeware](https://treeware.earth). If you use it in production, then we ask that you [**buy the world a tree**](https://plant.treeware.earth/swisnl/mcp-client) to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.
|
|
294
|
+
|
|
295
|
+
## SWIS :heart: Open Source
|
|
296
|
+
|
|
297
|
+
[SWIS](https://www.swis.nl) is a web agency from Leiden, the Netherlands. We love working with open source software.
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { type Ref } from 'vue';
|
|
2
|
+
import type { ThemeConfig } from '../types/theme';
|
|
3
|
+
export declare function useTheme(containerRef: Ref<HTMLElement | null>, initialTheme?: ThemeConfig): {
|
|
4
|
+
theme: Ref<{
|
|
5
|
+
baseSize?: string | undefined;
|
|
6
|
+
palettes?: {
|
|
7
|
+
primary?: {
|
|
8
|
+
5?: string | undefined;
|
|
9
|
+
10?: string | undefined;
|
|
10
|
+
20?: string | undefined;
|
|
11
|
+
30?: string | undefined;
|
|
12
|
+
40?: string | undefined;
|
|
13
|
+
50?: string | undefined;
|
|
14
|
+
60?: string | undefined;
|
|
15
|
+
70?: string | undefined;
|
|
16
|
+
80?: string | undefined;
|
|
17
|
+
90?: string | undefined;
|
|
18
|
+
} | undefined;
|
|
19
|
+
secondary?: {
|
|
20
|
+
5?: string | undefined;
|
|
21
|
+
10?: string | undefined;
|
|
22
|
+
20?: string | undefined;
|
|
23
|
+
30?: string | undefined;
|
|
24
|
+
40?: string | undefined;
|
|
25
|
+
50?: string | undefined;
|
|
26
|
+
60?: string | undefined;
|
|
27
|
+
70?: string | undefined;
|
|
28
|
+
80?: string | undefined;
|
|
29
|
+
90?: string | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
success?: {
|
|
32
|
+
5?: string | undefined;
|
|
33
|
+
10?: string | undefined;
|
|
34
|
+
20?: string | undefined;
|
|
35
|
+
30?: string | undefined;
|
|
36
|
+
40?: string | undefined;
|
|
37
|
+
50?: string | undefined;
|
|
38
|
+
60?: string | undefined;
|
|
39
|
+
70?: string | undefined;
|
|
40
|
+
80?: string | undefined;
|
|
41
|
+
90?: string | undefined;
|
|
42
|
+
} | undefined;
|
|
43
|
+
danger?: {
|
|
44
|
+
5?: string | undefined;
|
|
45
|
+
10?: string | undefined;
|
|
46
|
+
20?: string | undefined;
|
|
47
|
+
30?: string | undefined;
|
|
48
|
+
40?: string | undefined;
|
|
49
|
+
50?: string | undefined;
|
|
50
|
+
60?: string | undefined;
|
|
51
|
+
70?: string | undefined;
|
|
52
|
+
80?: string | undefined;
|
|
53
|
+
90?: string | undefined;
|
|
54
|
+
} | undefined;
|
|
55
|
+
warning?: {
|
|
56
|
+
5?: string | undefined;
|
|
57
|
+
10?: string | undefined;
|
|
58
|
+
20?: string | undefined;
|
|
59
|
+
30?: string | undefined;
|
|
60
|
+
40?: string | undefined;
|
|
61
|
+
50?: string | undefined;
|
|
62
|
+
60?: string | undefined;
|
|
63
|
+
70?: string | undefined;
|
|
64
|
+
80?: string | undefined;
|
|
65
|
+
90?: string | undefined;
|
|
66
|
+
} | undefined;
|
|
67
|
+
info?: {
|
|
68
|
+
5?: string | undefined;
|
|
69
|
+
10?: string | undefined;
|
|
70
|
+
20?: string | undefined;
|
|
71
|
+
30?: string | undefined;
|
|
72
|
+
40?: string | undefined;
|
|
73
|
+
50?: string | undefined;
|
|
74
|
+
60?: string | undefined;
|
|
75
|
+
70?: string | undefined;
|
|
76
|
+
80?: string | undefined;
|
|
77
|
+
90?: string | undefined;
|
|
78
|
+
} | undefined;
|
|
79
|
+
discovery?: {
|
|
80
|
+
5?: string | undefined;
|
|
81
|
+
10?: string | undefined;
|
|
82
|
+
20?: string | undefined;
|
|
83
|
+
30?: string | undefined;
|
|
84
|
+
40?: string | undefined;
|
|
85
|
+
50?: string | undefined;
|
|
86
|
+
60?: string | undefined;
|
|
87
|
+
70?: string | undefined;
|
|
88
|
+
80?: string | undefined;
|
|
89
|
+
90?: string | undefined;
|
|
90
|
+
} | undefined;
|
|
91
|
+
caution?: {
|
|
92
|
+
5?: string | undefined;
|
|
93
|
+
10?: string | undefined;
|
|
94
|
+
20?: string | undefined;
|
|
95
|
+
30?: string | undefined;
|
|
96
|
+
40?: string | undefined;
|
|
97
|
+
50?: string | undefined;
|
|
98
|
+
60?: string | undefined;
|
|
99
|
+
70?: string | undefined;
|
|
100
|
+
80?: string | undefined;
|
|
101
|
+
90?: string | undefined;
|
|
102
|
+
} | undefined;
|
|
103
|
+
} | undefined;
|
|
104
|
+
surface?: string | undefined;
|
|
105
|
+
surfaceSecondary?: string | undefined;
|
|
106
|
+
surfaceTertiary?: string | undefined;
|
|
107
|
+
background?: string | undefined;
|
|
108
|
+
textPrimary?: string | undefined;
|
|
109
|
+
textSecondary?: string | undefined;
|
|
110
|
+
textTertiary?: string | undefined;
|
|
111
|
+
borderDefault?: string | undefined;
|
|
112
|
+
disabledBg?: string | undefined;
|
|
113
|
+
disabledText?: string | undefined;
|
|
114
|
+
overrides?: Record<string, string> | undefined;
|
|
115
|
+
}, ThemeConfig | {
|
|
116
|
+
baseSize?: string | undefined;
|
|
117
|
+
palettes?: {
|
|
118
|
+
primary?: {
|
|
119
|
+
5?: string | undefined;
|
|
120
|
+
10?: string | undefined;
|
|
121
|
+
20?: string | undefined;
|
|
122
|
+
30?: string | undefined;
|
|
123
|
+
40?: string | undefined;
|
|
124
|
+
50?: string | undefined;
|
|
125
|
+
60?: string | undefined;
|
|
126
|
+
70?: string | undefined;
|
|
127
|
+
80?: string | undefined;
|
|
128
|
+
90?: string | undefined;
|
|
129
|
+
} | undefined;
|
|
130
|
+
secondary?: {
|
|
131
|
+
5?: string | undefined;
|
|
132
|
+
10?: string | undefined;
|
|
133
|
+
20?: string | undefined;
|
|
134
|
+
30?: string | undefined;
|
|
135
|
+
40?: string | undefined;
|
|
136
|
+
50?: string | undefined;
|
|
137
|
+
60?: string | undefined;
|
|
138
|
+
70?: string | undefined;
|
|
139
|
+
80?: string | undefined;
|
|
140
|
+
90?: string | undefined;
|
|
141
|
+
} | undefined;
|
|
142
|
+
success?: {
|
|
143
|
+
5?: string | undefined;
|
|
144
|
+
10?: string | undefined;
|
|
145
|
+
20?: string | undefined;
|
|
146
|
+
30?: string | undefined;
|
|
147
|
+
40?: string | undefined;
|
|
148
|
+
50?: string | undefined;
|
|
149
|
+
60?: string | undefined;
|
|
150
|
+
70?: string | undefined;
|
|
151
|
+
80?: string | undefined;
|
|
152
|
+
90?: string | undefined;
|
|
153
|
+
} | undefined;
|
|
154
|
+
danger?: {
|
|
155
|
+
5?: string | undefined;
|
|
156
|
+
10?: string | undefined;
|
|
157
|
+
20?: string | undefined;
|
|
158
|
+
30?: string | undefined;
|
|
159
|
+
40?: string | undefined;
|
|
160
|
+
50?: string | undefined;
|
|
161
|
+
60?: string | undefined;
|
|
162
|
+
70?: string | undefined;
|
|
163
|
+
80?: string | undefined;
|
|
164
|
+
90?: string | undefined;
|
|
165
|
+
} | undefined;
|
|
166
|
+
warning?: {
|
|
167
|
+
5?: string | undefined;
|
|
168
|
+
10?: string | undefined;
|
|
169
|
+
20?: string | undefined;
|
|
170
|
+
30?: string | undefined;
|
|
171
|
+
40?: string | undefined;
|
|
172
|
+
50?: string | undefined;
|
|
173
|
+
60?: string | undefined;
|
|
174
|
+
70?: string | undefined;
|
|
175
|
+
80?: string | undefined;
|
|
176
|
+
90?: string | undefined;
|
|
177
|
+
} | undefined;
|
|
178
|
+
info?: {
|
|
179
|
+
5?: string | undefined;
|
|
180
|
+
10?: string | undefined;
|
|
181
|
+
20?: string | undefined;
|
|
182
|
+
30?: string | undefined;
|
|
183
|
+
40?: string | undefined;
|
|
184
|
+
50?: string | undefined;
|
|
185
|
+
60?: string | undefined;
|
|
186
|
+
70?: string | undefined;
|
|
187
|
+
80?: string | undefined;
|
|
188
|
+
90?: string | undefined;
|
|
189
|
+
} | undefined;
|
|
190
|
+
discovery?: {
|
|
191
|
+
5?: string | undefined;
|
|
192
|
+
10?: string | undefined;
|
|
193
|
+
20?: string | undefined;
|
|
194
|
+
30?: string | undefined;
|
|
195
|
+
40?: string | undefined;
|
|
196
|
+
50?: string | undefined;
|
|
197
|
+
60?: string | undefined;
|
|
198
|
+
70?: string | undefined;
|
|
199
|
+
80?: string | undefined;
|
|
200
|
+
90?: string | undefined;
|
|
201
|
+
} | undefined;
|
|
202
|
+
caution?: {
|
|
203
|
+
5?: string | undefined;
|
|
204
|
+
10?: string | undefined;
|
|
205
|
+
20?: string | undefined;
|
|
206
|
+
30?: string | undefined;
|
|
207
|
+
40?: string | undefined;
|
|
208
|
+
50?: string | undefined;
|
|
209
|
+
60?: string | undefined;
|
|
210
|
+
70?: string | undefined;
|
|
211
|
+
80?: string | undefined;
|
|
212
|
+
90?: string | undefined;
|
|
213
|
+
} | undefined;
|
|
214
|
+
} | undefined;
|
|
215
|
+
surface?: string | undefined;
|
|
216
|
+
surfaceSecondary?: string | undefined;
|
|
217
|
+
surfaceTertiary?: string | undefined;
|
|
218
|
+
background?: string | undefined;
|
|
219
|
+
textPrimary?: string | undefined;
|
|
220
|
+
textSecondary?: string | undefined;
|
|
221
|
+
textTertiary?: string | undefined;
|
|
222
|
+
borderDefault?: string | undefined;
|
|
223
|
+
disabledBg?: string | undefined;
|
|
224
|
+
disabledText?: string | undefined;
|
|
225
|
+
overrides?: Record<string, string> | undefined;
|
|
226
|
+
}>;
|
|
227
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.genui-badge{white-space:nowrap;border:1px solid #0000;align-items:center;margin-inline-start:calc(var(--genui-base-size) * .375);font-weight:500;line-height:1;display:inline-flex}.genui-badge--pill{border-radius:9999px}.genui-badge:not(.genui-badge--pill){border-radius:calc(var(--genui-base-size) * .25)}.genui-badge--size-sm{font-size:calc(var(--genui-base-size) * .75);padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .5);height:1.25rem}.genui-badge--size-md{font-size:calc(var(--genui-base-size) * .875);padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .625);height:1.5rem}.genui-badge--size-lg{font-size:calc(var(--genui-base-size) * .875);padding:calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .75);height:1.75rem}.genui-badge--color-primary.genui-badge--variant-solid{background-color:var(--genui-primary-60);color:var(--genui-primary-5)}.genui-badge--color-primary.genui-badge--variant-soft{background-color:rgba(var(--genui-primary-60-rgb), .1);color:var(--genui-primary-60)}.genui-badge--color-primary.genui-badge--variant-outline{border-color:var(--genui-primary-30);color:var(--genui-primary-60);background-color:#0000}.genui-badge--color-secondary.genui-badge--variant-solid{background-color:var(--genui-secondary-60);color:var(--genui-secondary-5)}.genui-badge--color-secondary.genui-badge--variant-soft{background-color:rgba(var(--genui-secondary-60-rgb), .1);color:var(--genui-secondary-60)}.genui-badge--color-secondary.genui-badge--variant-outline{border-color:var(--genui-secondary-30);color:var(--genui-secondary-60);background-color:#0000}.genui-badge--color-success.genui-badge--variant-solid{background-color:var(--genui-success-60);color:var(--genui-success-5)}.genui-badge--color-success.genui-badge--variant-soft{background-color:rgba(var(--genui-success-60-rgb), .1);color:var(--genui-success-60)}.genui-badge--color-success.genui-badge--variant-outline{border-color:var(--genui-success-30);color:var(--genui-success-60);background-color:#0000}.genui-badge--color-danger.genui-badge--variant-solid{background-color:var(--genui-danger-60);color:var(--genui-danger-5)}.genui-badge--color-danger.genui-badge--variant-soft{background-color:rgba(var(--genui-danger-60-rgb), .1);color:var(--genui-danger-60)}.genui-badge--color-danger.genui-badge--variant-outline{border-color:var(--genui-danger-30);color:var(--genui-danger-60);background-color:#0000}.genui-badge--color-warning.genui-badge--variant-solid{background-color:var(--genui-warning-60);color:var(--genui-warning-5)}.genui-badge--color-warning.genui-badge--variant-soft{background-color:rgba(var(--genui-warning-60-rgb), .1);color:var(--genui-warning-60)}.genui-badge--color-warning.genui-badge--variant-outline{border-color:var(--genui-warning-30);color:var(--genui-warning-60);background-color:#0000}.genui-badge--color-info.genui-badge--variant-solid{background-color:var(--genui-info-60);color:var(--genui-info-5)}.genui-badge--color-info.genui-badge--variant-soft{background-color:rgba(var(--genui-info-60-rgb), .1);color:var(--genui-info-60)}.genui-badge--color-info.genui-badge--variant-outline{border-color:var(--genui-info-30);color:var(--genui-info-60);background-color:#0000}.genui-badge--color-discovery.genui-badge--variant-solid{background-color:var(--genui-discovery-60);color:var(--genui-discovery-5)}.genui-badge--color-discovery.genui-badge--variant-soft{background-color:rgba(var(--genui-discovery-60-rgb), .1);color:var(--genui-discovery-60)}.genui-badge--color-discovery.genui-badge--variant-outline{border-color:var(--genui-discovery-30);color:var(--genui-discovery-60);background-color:#0000}.genui-badge--color-caution.genui-badge--variant-solid{background-color:var(--genui-caution-60);color:var(--genui-caution-5)}.genui-badge--color-caution.genui-badge--variant-soft{background-color:rgba(var(--genui-caution-60-rgb), .1);color:var(--genui-caution-60)}.genui-badge--color-caution.genui-badge--variant-outline{border-color:var(--genui-caution-30);color:var(--genui-caution-60);background-color:#0000}.genui-loader{margin:calc(var(--genui-base-size) * .125);width:var(--genui-base-size);height:var(--genui-base-size);border:calc(var(--genui-base-size) * .125) solid color-mix(in srgb, currentColor 50%, transparent);box-sizing:border-box;border-bottom-color:currentColor;border-radius:50%;animation:1s linear infinite genui-rotation;display:inline-block}@keyframes genui-rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.genui-box{box-sizing:border-box;min-width:0}.genui-box--border{border:1px solid var(--genui-border-default)}.genui-box--flex{display:flex}.genui-box--action{cursor:pointer;outline:transparent solid calc(var(--genui-base-size) * .5);border-radius:calc(var(--genui-base-size) * .25)}.genui-box--action:hover{background-color:var(--genui-surface-tertiary);outline-color:var(--genui-surface-tertiary);transition:outline-width .2s}.genui-box--action:active{outline-width:calc(var(--genui-base-size) * .375);transition:outline-width .2s}.genui-box--action:focus-visible{outline-color:var(--genui-primary-60);outline-offset:2px;outline-width:1px}.genui-box--row.genui-box--gap .genui-badge,.genui-box--row.genui-box--gap .genui-button,.genui-box--row :first-child{margin-inline-start:0}.genui-image--flush+.genui-box{margin-top:var(--genui-base-size)}.genui-icon{color:currentColor;vertical-align:text-bottom;flex-shrink:0;display:inline-block}.genui-icon--size-xs{width:calc(var(--genui-base-size) * .75);height:calc(var(--genui-base-size) * .75)}.genui-icon--size-sm{width:calc(var(--genui-base-size) * .875);height:calc(var(--genui-base-size) * .875)}.genui-icon--size-md{width:var(--genui-base-size);height:var(--genui-base-size)}.genui-icon--size-lg{width:calc(var(--genui-base-size) * 1.125);height:calc(var(--genui-base-size) * 1.125)}.genui-icon--size-xl{width:calc(var(--genui-base-size) * 1.25);height:calc(var(--genui-base-size) * 1.25)}.genui-icon--size-2xl{width:calc(var(--genui-base-size) * 1.5);height:calc(var(--genui-base-size) * 1.5)}.genui-icon--size-3xl{width:calc(var(--genui-base-size) * 1.875);height:calc(var(--genui-base-size) * 1.875)}.genui-button{all:unset;box-sizing:border-box;margin:0;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;margin-inline-start:calc(var(--genui-base-size) * .375);font-weight:400;line-height:1;transition:all .2s;display:inline-flex}.genui-button:disabled{opacity:.5;cursor:not-allowed}.genui-button:focus-visible{outline:var(--genui-primary-50) solid 1px;outline-offset:2px;transition:none}.genui-button--size-3xs{height:22px;font-size:calc(var(--genui-base-size) * .625);padding:0 calc(var(--genui-base-size) * .25);gap:calc(var(--genui-base-size) * .25)}.genui-button--size-2xs{height:24px;font-size:calc(var(--genui-base-size) * .625);padding:0 calc(var(--genui-base-size) * .375);gap:calc(var(--genui-base-size) * .25)}.genui-button--size-xs{height:26px;font-size:calc(var(--genui-base-size) * .75);padding:0 calc(var(--genui-base-size) * .5);gap:calc(var(--genui-base-size) * .375)}.genui-button--size-sm{height:28px;font-size:calc(var(--genui-base-size) * .75);padding:0 calc(var(--genui-base-size) * .625);gap:calc(var(--genui-base-size) * .375)}.genui-button--size-md{height:32px;font-size:calc(var(--genui-base-size) * .875);padding:0 calc(var(--genui-base-size) * .75);gap:calc(var(--genui-base-size) * .5)}.genui-button--size-lg{height:36px;font-size:calc(var(--genui-base-size) * .875);padding:0 var(--genui-base-size);gap:calc(var(--genui-base-size) * .5)}.genui-button--size-xl{height:40px;font-size:var(--genui-base-size);padding:0 calc(var(--genui-base-size) * 1.25);gap:calc(var(--genui-base-size) * .625)}.genui-button--size-2xl{height:44px;font-size:calc(var(--genui-base-size) * 1.125);padding:0 calc(var(--genui-base-size) * 1.5);gap:calc(var(--genui-base-size) * .75)}.genui-button--size-3xl{height:48px;font-size:calc(var(--genui-base-size) * 1.25);padding:0 calc(var(--genui-base-size) * 1.75);gap:calc(var(--genui-base-size) * .875)}.genui-button--pill{border-radius:9999px}.genui-button:not(.genui-button--pill){border-radius:calc(var(--genui-base-size) * .375)}.genui-button--block{width:100%;display:flex}.genui-button--uniform{padding:0}.genui-button--uniform.genui-button--size-3xs{width:22px}.genui-button--uniform.genui-button--size-2xs{width:24px}.genui-button--uniform.genui-button--size-xs{width:26px}.genui-button--uniform.genui-button--size-sm{width:28px}.genui-button--uniform.genui-button--size-md{width:32px}.genui-button--uniform.genui-button--size-lg{width:36px}.genui-button--uniform.genui-button--size-xl{width:40px}.genui-button--uniform.genui-button--size-2xl{width:44px}.genui-button--uniform.genui-button--size-3xl{width:48px}.genui-button--color-primary.genui-button--variant-solid{background-color:var(--genui-primary-60);color:var(--genui-primary-5);border-color:#0000}.genui-button--color-primary.genui-button--variant-outline{color:var(--genui-primary-60);border-color:var(--genui-primary-30);background-color:#0000}.genui-button--color-primary.genui-button--variant-ghost{color:var(--genui-primary-60);background-color:#0000;border-color:#0000}.genui-button--color-secondary.genui-button--variant-solid{background-color:var(--genui-secondary-60);color:var(--genui-secondary-5);border-color:#0000}.genui-button--color-secondary.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-secondary-70)}.genui-button--color-secondary.genui-button--variant-outline{color:var(--genui-secondary-60);border-color:var(--genui-secondary-30);background-color:#0000}.genui-button--color-secondary.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-secondary-40);background-color:rgba(var(--genui-secondary-60-rgb), .06)}.genui-button--color-secondary.genui-button--variant-soft{background-color:rgba(var(--genui-secondary-60-rgb), .1);color:var(--genui-secondary-60);border-color:#0000}.genui-button--color-secondary.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-secondary-60-rgb), .15)}.genui-button--color-secondary.genui-button--variant-ghost{color:var(--genui-secondary-60);background-color:#0000;border-color:#0000}.genui-button--color-secondary.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-secondary-60-rgb), .08)}.genui-button--color-success.genui-button--variant-solid{background-color:var(--genui-success-60);color:var(--genui-success-5);border-color:#0000}.genui-button--color-success.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-success-70)}.genui-button--color-success.genui-button--variant-outline{color:var(--genui-success-60);border-color:var(--genui-success-30);background-color:#0000}.genui-button--color-success.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-success-40);background-color:rgba(var(--genui-success-60-rgb), .06)}.genui-button--color-success.genui-button--variant-soft{background-color:rgba(var(--genui-success-60-rgb), .1);color:var(--genui-success-60);border-color:#0000}.genui-button--color-success.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-success-60-rgb), .15)}.genui-button--color-success.genui-button--variant-ghost{color:var(--genui-success-60);background-color:#0000;border-color:#0000}.genui-button--color-success.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-success-60-rgb), .08)}.genui-button--color-danger.genui-button--variant-solid{background-color:var(--genui-danger-60);color:var(--genui-danger-5);border-color:#0000}.genui-button--color-danger.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-danger-70)}.genui-button--color-danger.genui-button--variant-outline{color:var(--genui-danger-60);border-color:var(--genui-danger-30);background-color:#0000}.genui-button--color-danger.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-danger-40);background-color:rgba(var(--genui-danger-60-rgb), .06)}.genui-button--color-danger.genui-button--variant-soft{background-color:rgba(var(--genui-danger-60-rgb), .1);color:var(--genui-danger-60);border-color:#0000}.genui-button--color-danger.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-danger-60-rgb), .15)}.genui-button--color-danger.genui-button--variant-ghost{color:var(--genui-danger-60);background-color:#0000;border-color:#0000}.genui-button--color-danger.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-danger-60-rgb), .08)}.genui-button--color-warning.genui-button--variant-solid{background-color:var(--genui-warning-60);color:var(--genui-warning-5);border-color:#0000}.genui-button--color-warning.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-warning-70)}.genui-button--color-warning.genui-button--variant-outline{color:var(--genui-warning-60);border-color:var(--genui-warning-30);background-color:#0000}.genui-button--color-warning.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-warning-40);background-color:rgba(var(--genui-warning-60-rgb), .06)}.genui-button--color-warning.genui-button--variant-soft{background-color:rgba(var(--genui-warning-60-rgb), .1);color:var(--genui-warning-60);border-color:#0000}.genui-button--color-warning.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-warning-60-rgb), .15)}.genui-button--color-warning.genui-button--variant-ghost{color:var(--genui-warning-60);background-color:#0000;border-color:#0000}.genui-button--color-warning.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-warning-60-rgb), .08)}.genui-button--color-info.genui-button--variant-solid{background-color:var(--genui-info-60);color:var(--genui-info-5);border-color:#0000}.genui-button--color-info.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-info-70)}.genui-button--color-info.genui-button--variant-outline{color:var(--genui-info-60);border-color:var(--genui-info-30);background-color:#0000}.genui-button--color-info.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-info-40);background-color:rgba(var(--genui-info-60-rgb), .06)}.genui-button--color-info.genui-button--variant-soft{background-color:rgba(var(--genui-info-60-rgb), .1);color:var(--genui-info-60);border-color:#0000}.genui-button--color-info.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-info-60-rgb), .15)}.genui-button--color-info.genui-button--variant-ghost{color:var(--genui-info-60);background-color:#0000;border-color:#0000}.genui-button--color-info.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-info-60-rgb), .08)}.genui-button--color-discovery.genui-button--variant-solid{background-color:var(--genui-discovery-60);color:var(--genui-discovery-5);border-color:#0000}.genui-button--color-discovery.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-discovery-70)}.genui-button--color-discovery.genui-button--variant-outline{color:var(--genui-discovery-60);border-color:var(--genui-discovery-30);background-color:#0000}.genui-button--color-discovery.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-discovery-40);background-color:rgba(var(--genui-discovery-60-rgb), .06)}.genui-button--color-discovery.genui-button--variant-soft{background-color:rgba(var(--genui-discovery-60-rgb), .1);color:var(--genui-discovery-60);border-color:#0000}.genui-button--color-discovery.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-discovery-60-rgb), .15)}.genui-button--color-discovery.genui-button--variant-ghost{color:var(--genui-discovery-60);background-color:#0000;border-color:#0000}.genui-button--color-discovery.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-discovery-60-rgb), .08)}.genui-button--color-caution.genui-button--variant-solid{background-color:var(--genui-caution-60);color:var(--genui-caution-5);border-color:#0000}.genui-button--color-caution.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-caution-70)}.genui-button--color-caution.genui-button--variant-outline{color:var(--genui-caution-60);border-color:var(--genui-caution-30);background-color:#0000}.genui-button--color-caution.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-caution-40);background-color:rgba(var(--genui-caution-60-rgb), .06)}.genui-button--color-caution.genui-button--variant-soft{background-color:rgba(var(--genui-caution-60-rgb), .1);color:var(--genui-caution-60);border-color:#0000}.genui-button--color-caution.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-caution-60-rgb), .15)}.genui-button--color-caution.genui-button--variant-ghost{color:var(--genui-caution-60);background-color:#0000;border-color:#0000}.genui-button--color-caution.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-caution-60-rgb), .08)}.genui-button--color-primary.genui-button--variant-solid{background-color:var(--genui-primary-90)}.genui-button--color-primary.genui-button--variant-solid:hover:not(:disabled){background-color:var(--genui-primary-80)}.genui-button--color-primary.genui-button--variant-outline{color:var(--genui-primary-90);border-color:var(--genui-primary-40)}.genui-button--color-primary.genui-button--variant-outline:hover:not(:disabled){border-color:var(--genui-primary-50);background-color:rgba(var(--genui-primary-90-rgb), .06)}.genui-button--color-primary.genui-button--variant-soft{background-color:rgba(var(--genui-primary-90-rgb), .1);color:var(--genui-primary-90);border-color:#0000}.genui-button--color-primary.genui-button--variant-soft:hover:not(:disabled){background-color:rgba(var(--genui-primary-90-rgb), .15)}.genui-button--color-primary.genui-button--variant-ghost{color:var(--genui-primary-90)}.genui-button--color-primary.genui-button--variant-ghost:hover:not(:disabled){background-color:rgba(var(--genui-primary-90-rgb), .08)}.genui-button--block{margin-inline-start:0}.genui-caption{color:var(--genui-text-secondary);margin:0;line-height:1.5}.genui-caption--truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.genui-caption--align-start{text-align:start}.genui-caption--align-center{text-align:center}.genui-caption--align-end{text-align:end}.genui-caption--weight-normal{font-weight:400}.genui-caption--weight-medium{font-weight:500}.genui-caption--weight-semibold{font-weight:600}.genui-caption--weight-bold{font-weight:700}.genui-caption--size-sm{font-size:calc(var(--genui-base-size) * .625)}.genui-caption--size-md{font-size:calc(var(--genui-base-size) * .75)}.genui-caption--size-lg{font-size:calc(var(--genui-base-size) * .875)}.genui-card-wrapper{gap:var(--genui-base-size);flex-direction:column;align-items:flex-start;display:flex}.genui-card{width:100%;box-shadow:0 calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .5) 0 #0000001a;overflow:hidden}.genui-card>:not(:first-child){margin-block-start:var(--genui-base-size)}.genui-card-wrapper__actions{display:flex}.genui-card.genui-card--xs{width:calc(var(--genui-base-size) * 16)}.genui-card.genui-card--sm{width:calc(var(--genui-base-size) * 22.5)}.genui-card.genui-card--md{width:calc(var(--genui-base-size) * 26.25)}.genui-card.genui-card--lg{width:calc(var(--genui-base-size) * 32)}.genui-card.genui-card--xl{width:calc(var(--genui-base-size) * 40)}.genui-checkbox{align-items:center;gap:calc(var(--genui-base-size) * .5);cursor:pointer;font-size:calc(var(--genui-base-size) * .875);color:var(--genui-text-primary);-webkit-user-select:none;user-select:none;display:inline-flex}.genui-checkbox--disabled{opacity:.6;cursor:not-allowed;color:var(--genui-disabled-text)}.genui-checkbox--disabled .genui-checkbox__control{background:var(--genui-disabled-bg)}.genui-checkbox__input{opacity:0;width:0;height:0;position:absolute}.genui-checkbox__input:checked+.genui-checkbox__control{background:var(--genui-primary-60);border-color:var(--genui-primary-60)}.genui-checkbox__input:checked+.genui-checkbox__control .genui-checkbox__icon{opacity:1;transform:scale(1)}.genui-checkbox__input:focus-visible+.genui-checkbox__control{border-color:var(--genui-primary-60);box-shadow:0 0 0 2px #0000001a}.genui-checkbox__control{width:var(--genui-base-size);height:var(--genui-base-size);border:1px solid var(--genui-border-default);border-radius:calc(var(--genui-base-size) * .25);background:var(--genui-surface);justify-content:center;align-items:center;transition:all .2s;display:flex}.genui-checkbox__icon{width:calc(var(--genui-base-size) * .75);height:calc(var(--genui-base-size) * .75);color:var(--genui-surface);opacity:0;transition:all .2s;transform:scale(.5)}.genui-checkbox__label{line-height:1.25}.genui-datepicker-wrapper{box-sizing:border-box;border-radius:calc(var(--genui-base-size) * .375);align-items:center;width:100%;transition:all .2s;display:inline-flex;overflow:hidden}.genui-datepicker{all:unset;width:100%;color:var(--genui-text-primary);cursor:text;background:0 0;font-family:inherit}.genui-datepicker::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:all .2s}.genui-datepicker::-webkit-calendar-picker-indicator:hover{opacity:1}.genui-datepicker-wrapper--outline{border:1px solid var(--genui-border-default);background:var(--genui-surface)}.genui-datepicker-wrapper--outline:focus-within{border-color:var(--genui-primary-60);box-shadow:0 0 0 2px #0000001a}.genui-datepicker-wrapper--soft{background:var(--genui-surface-secondary);border:none}.genui-datepicker-wrapper--soft:focus-within{background:var(--genui-surface-tertiary)}.genui-datepicker-wrapper--ghost{background:0 0;border:none}.genui-datepicker-wrapper--ghost:hover{background:var(--genui-surface-secondary)}.genui-datepicker-wrapper--solid{background:var(--genui-primary-60);color:var(--genui-surface)}.genui-datepicker-wrapper--solid .genui-datepicker{color:var(--genui-surface)}.genui-datepicker-wrapper--disabled{opacity:.6;background-color:var(--genui-disabled-bg);cursor:not-allowed}.genui-datepicker-wrapper--disabled .genui-datepicker{cursor:not-allowed;color:var(--genui-disabled-text)}.genui-datepicker-wrapper--3xs{padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .25);font-size:calc(var(--genui-base-size) * .625)}.genui-datepicker-wrapper--2xs{padding:calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .375);font-size:calc(var(--genui-base-size) * .75)}.genui-datepicker-wrapper--xs{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .5);font-size:calc(var(--genui-base-size) * .75)}.genui-datepicker-wrapper--sm{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .625);font-size:calc(var(--genui-base-size) * .875)}.genui-datepicker-wrapper--md{padding:calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * .75);font-size:calc(var(--genui-base-size) * .875)}.genui-datepicker-wrapper--lg{padding:calc(var(--genui-base-size) * .625) calc(var(--genui-base-size) * .875);font-size:var(--genui-base-size)}.genui-datepicker-wrapper--xl{padding:calc(var(--genui-base-size) * .75) var(--genui-base-size);font-size:calc(var(--genui-base-size) * 1.125)}.genui-datepicker-wrapper--2xl{padding:var(--genui-base-size) calc(var(--genui-base-size) * 1.25);font-size:calc(var(--genui-base-size) * 1.25)}.genui-datepicker-wrapper--3xl{padding:calc(var(--genui-base-size) * 1.25) calc(var(--genui-base-size) * 1.5);font-size:calc(var(--genui-base-size) * 1.5)}.genui-divider{margin:var(--genui-base-size) 0;border:none;width:100%}.genui-divider--color-default{background-color:var(--genui-border-default)}.genui-divider--color-subtle{background-color:var(--genui-secondary-10)}.genui-divider--color-strong{background-color:var(--genui-secondary-40)}.genui-divider--flush{margin-left:calc(var(--genui-base-size) * -1);margin-right:calc(var(--genui-base-size) * -1);width:calc(var(--genui-base-size) * 102%)}.genui-form{width:100%}.genui-image{border-radius:calc(var(--genui-base-size) * .375);max-width:100%;display:block}.genui-image--frame{padding:calc(var(--genui-base-size) * .25);background-color:#fff;border:1px solid #e4e4e7}.genui-image--flush{border-radius:0;width:calc(100% + 3rem);max-width:calc(100% + 3rem);margin:0 -1.5rem}.genui-image--flush:first-child{margin-top:-1.5rem}.genui-image--flush:last-child{margin-bottom:-1.5rem}.genui-input-wrapper{box-sizing:border-box;border-radius:calc(var(--genui-base-size) * .375);align-items:center;width:100%;transition:all .2s;display:flex;overflow:hidden}.genui-input{all:unset;width:100%;color:var(--genui-text-primary);background:0 0;font-family:inherit}.genui-input::placeholder{color:var(--genui-text-tertiary)}.genui-input-wrapper--outline{border:1px solid var(--genui-border-default);background:var(--genui-surface)}.genui-input-wrapper--outline:focus-within{border-color:var(--genui-primary-60);box-shadow:0 0 0 2px #0000001a}.genui-input-wrapper--soft{background:var(--genui-surface-secondary);border:none}.genui-input-wrapper--soft:focus-within{background:var(--genui-surface-tertiary)}.genui-input-wrapper--error{border-color:var(--genui-danger-60)}.genui-input-wrapper--disabled{opacity:.6;background-color:var(--genui-disabled-bg);cursor:not-allowed}.genui-input-wrapper--disabled .genui-input{cursor:not-allowed;color:var(--genui-disabled-text)}.genui-input-wrapper--3xs{padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .25);font-size:calc(var(--genui-base-size) * .625)}.genui-input-wrapper--2xs{padding:calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .375);font-size:calc(var(--genui-base-size) * .75)}.genui-input-wrapper--xs{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .5);font-size:calc(var(--genui-base-size) * .75)}.genui-input-wrapper--sm{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .625);font-size:calc(var(--genui-base-size) * .875)}.genui-input-wrapper--md{padding:calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * .75);font-size:calc(var(--genui-base-size) * .875)}.genui-input-wrapper--lg{padding:calc(var(--genui-base-size) * .625) calc(var(--genui-base-size) * .875);font-size:var(--genui-base-size)}.genui-input-wrapper--xl{padding:calc(var(--genui-base-size) * .75) var(--genui-base-size);font-size:calc(var(--genui-base-size) * 1.125)}.genui-input-wrapper--2xl{padding:var(--genui-base-size) calc(var(--genui-base-size) * 1.25);font-size:calc(var(--genui-base-size) * 1.25)}.genui-input-wrapper--3xl{padding:calc(var(--genui-base-size) * 1.25) calc(var(--genui-base-size) * 1.5);font-size:calc(var(--genui-base-size) * 1.5)}.genui-label{margin-bottom:calc(var(--genui-base-size) * .25);color:var(--genui-text-secondary);line-height:1.25;display:block}.genui-label--align-start{text-align:start}.genui-label--align-center{text-align:center}.genui-label--align-end{text-align:end}.genui-label--weight-normal{font-weight:400}.genui-label--weight-medium{font-weight:500}.genui-label--weight-semibold{font-weight:600}.genui-label--weight-bold{font-weight:700}.genui-label--size-xs{font-size:calc(var(--genui-base-size) * .75)}.genui-label--size-sm{font-size:calc(var(--genui-base-size) * .875)}.genui-label--size-md{font-size:var(--genui-base-size)}.genui-label--size-lg{font-size:calc(var(--genui-base-size) * 1.125)}.genui-label--size-xl{font-size:calc(var(--genui-base-size) * 1.25)}.genui-list,.genui-list-item{width:100%}.genui-markdown ul,.genui-markdown ol,.genui-markdown table,.genui-markdown blockquote,.genui-markdown pre,.genui-markdown p{color:var(--genui-text-primary);font-size:var(--genui-base-size);margin:0 0 var(--genui-base-size);padding:0;line-height:1.625}.genui-markdown ul:last-child,.genui-markdown ol:last-child,.genui-markdown table:last-child,.genui-markdown blockquote:last-child,.genui-markdown pre:last-child,.genui-markdown p:last-child{margin-bottom:0}.genui-markdown ul{padding-left:calc(var(--genui-base-size) * 1.5);list-style:outside}.genui-markdown ol{padding-left:calc(var(--genui-base-size) * 1.25);list-style:auto}.genui-markdown table{border-spacing:0;border-radius:calc(var(--genui-base-size) * .5);border:1px solid var(--genui-border-default);width:100%;overflow:hidden}.genui-markdown table th,.genui-markdown table td{font-size:var(--genui-base-size);text-align:left;vertical-align:middle;color:var(--genui-text-primary);border:0;border-bottom:1px solid var(--genui-border-default);padding:calc(var(--genui-base-size) * .45) calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * .25);line-height:1.625}.genui-markdown table th{background-color:var(--genui-surface-secondary);color:var(--genui-text-primary);font-weight:700}.genui-markdown blockquote{padding:calc(var(--genui-base-size) * .25) var(--genui-base-size);margin-left:calc(var(--genui-base-size) * .125);border-left:calc(var(--genui-base-size) * .25) solid var(--genui-border-default);color:var(--genui-text-secondary);font-style:italic}.genui-markdown pre,.genui-markdown code{padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .25);font-size:var(--genui-base-size);font-variant-numeric:tabular-nums lining-nums slashed-zero;font-feature-settings:"tnum", "zero";unicode-bidi:isolate;font-family:monospace}.genui-markdown code{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:var(--genui-surface-secondary);border-radius:calc(var(--genui-base-size) * .125);white-space:pre-wrap;margin:0}.genui-markdown pre{background:var(--genui-surface-tertiary);border-radius:calc(var(--genui-base-size) * .5);padding:calc(var(--genui-base-size) * .5) var(--genui-base-size);tab-size:4;box-shadow:inset 0 calc(var(--genui-base-size) * .625) calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * -.625) var(--genui-border-default), inset 0 calc(var(--genui-base-size) * -.625) calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * -.625) var(--genui-border-default);overflow-x:auto}.genui-markdown pre code{all:unset}.genui-markdown strong{font-weight:600}.genui-markdown a:not([class]){color:inherit;font-weight:600;text-decoration:underline}.genui-radio-group{gap:var(--genui-base-size);display:flex}.genui-radio-group--col{gap:calc(var(--genui-base-size) * .5);flex-direction:column}.genui-radio{align-items:center;gap:calc(var(--genui-base-size) * .5);cursor:pointer;font-size:calc(var(--genui-base-size) * .875);color:var(--genui-text-primary);-webkit-user-select:none;user-select:none;display:inline-flex}.genui-radio--disabled{opacity:.6;cursor:not-allowed;color:var(--genui-disabled-text)}.genui-radio--disabled .genui-radio__control{background:var(--genui-disabled-bg)}.genui-radio__input{opacity:0;width:0;height:0;position:absolute}.genui-radio__input:checked+.genui-radio__control{border-color:var(--genui-primary-60)}.genui-radio__input:checked+.genui-radio__control:after{transform:scale(1)}.genui-radio__input:focus-visible+.genui-radio__control{box-shadow:0 0 0 2px #0000001a}.genui-radio__control{width:var(--genui-base-size);height:var(--genui-base-size);border:1px solid var(--genui-border-default);background:var(--genui-surface);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:relative}.genui-radio__control:after{content:"";width:calc(var(--genui-base-size) * .5);height:calc(var(--genui-base-size) * .5);background:var(--genui-primary-60);border-radius:50%;transition:transform .2s;transform:scale(0)}.genui-radio__label{line-height:1.25}.genui-row{align-items:center}.genui-select-wrapper{box-sizing:border-box;border-radius:calc(var(--genui-base-size) * .375);background:var(--genui-surface);align-items:center;transition:all .2s;display:inline-flex;position:relative}.genui-select-wrapper--block{width:100%;display:flex}.genui-select-wrapper--pill{border-radius:calc(var(--genui-base-size) * 999)}.genui-select{all:unset;box-sizing:border-box;width:100%;color:var(--genui-text-primary);appearance:none;padding-right:calc(var(--genui-base-size) * 2);cursor:pointer;background:0 0;font-family:inherit}.genui-select::placeholder{color:var(--genui-text-secondary)}.genui-select-arrow{right:calc(var(--genui-base-size) * .75);pointer-events:none;color:var(--genui-text-secondary);align-items:center;display:flex;position:absolute}.genui-select-wrapper--outline{border:1px solid var(--genui-border-default);background:var(--genui-surface)}.genui-select-wrapper--outline:focus-within{border-color:var(--genui-primary-60);box-shadow:0 0 0 2px #0000001a}.genui-select-wrapper--soft{background:var(--genui-surface-secondary);border:none}.genui-select-wrapper--soft:focus-within{background:var(--genui-surface-tertiary)}.genui-select-wrapper--ghost{background:0 0;border:none}.genui-select-wrapper--ghost:hover{background:var(--genui-surface-secondary)}.genui-select-wrapper--solid{background:var(--genui-primary-60);color:var(--genui-surface)}.genui-select-wrapper--solid .genui-select{color:var(--genui-surface)}.genui-select-wrapper--solid .genui-select-arrow{color:var(--genui-surface-secondary)}.genui-select-wrapper--disabled{opacity:.6;background-color:var(--genui-disabled-bg);cursor:not-allowed}.genui-select-wrapper--disabled .genui-select{cursor:not-allowed;color:var(--genui-disabled-text)}.genui-select-wrapper--disabled .genui-select-arrow{color:var(--genui-disabled-text)}.genui-select option{background:var(--genui-surface);color:var(--genui-text-primary)}.genui-select-wrapper--3xs .genui-select{padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .25);font-size:calc(var(--genui-base-size) * .625)}.genui-select-wrapper--2xs .genui-select{padding:calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .375);font-size:calc(var(--genui-base-size) * .75)}.genui-select-wrapper--xs .genui-select{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .5);font-size:calc(var(--genui-base-size) * .75)}.genui-select-wrapper--sm .genui-select{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .625);font-size:calc(var(--genui-base-size) * .875)}.genui-select-wrapper--md .genui-select{padding:calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * .75);font-size:calc(var(--genui-base-size) * .875)}.genui-select-wrapper--lg .genui-select{padding:calc(var(--genui-base-size) * .625) calc(var(--genui-base-size) * .875);font-size:var(--genui-base-size)}.genui-select-wrapper--xl .genui-select{padding:calc(var(--genui-base-size) * .75) var(--genui-base-size);font-size:calc(var(--genui-base-size) * 1.125)}.genui-select-wrapper--2xl .genui-select{padding:var(--genui-base-size) calc(var(--genui-base-size) * 1.25);font-size:calc(var(--genui-base-size) * 1.25)}.genui-select-wrapper--3xl .genui-select{padding:calc(var(--genui-base-size) * 1.25) calc(var(--genui-base-size) * 1.5);font-size:calc(var(--genui-base-size) * 1.5)}.genui-spacer{place-self:stretch stretch;display:block}.genui-text{color:var(--genui-text-primary);margin:0;line-height:1.5}.genui-text--truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.genui-text--align-start{text-align:start}.genui-text--align-center{text-align:center}.genui-text--align-end{text-align:end}.genui-text--align-justify{text-align:justify}.genui-text--weight-normal{font-weight:400}.genui-text--weight-medium{font-weight:500}.genui-text--weight-semibold{font-weight:600}.genui-text--weight-bold{font-weight:700}.genui-text--size-xs{font-size:calc(var(--genui-base-size) * .75)}.genui-text--size-sm{font-size:calc(var(--genui-base-size) * .875)}.genui-text--size-md{font-size:var(--genui-base-size)}.genui-text--size-lg{font-size:calc(var(--genui-base-size) * 1.125)}.genui-text--size-xl{font-size:calc(var(--genui-base-size) * 1.25)}.genui-textarea-wrapper{box-sizing:border-box;border-radius:calc(var(--genui-base-size) * .375);width:100%;transition:all .2s;display:flex}.genui-textarea{all:unset;width:100%;color:var(--genui-text-primary);resize:vertical;background:0 0;font-family:inherit;line-height:1.5}.genui-textarea::placeholder{color:var(--genui-text-secondary)}.genui-textarea-wrapper--outline{border:1px solid var(--genui-border-default);background:var(--genui-surface)}.genui-textarea-wrapper--outline:focus-within{border-color:var(--genui-primary-60);box-shadow:0 0 0 2px #0000001a}.genui-textarea-wrapper--soft{background:var(--genui-surface-secondary);border:none}.genui-textarea-wrapper--soft:focus-within{background:var(--genui-surface-tertiary)}.genui-textarea-wrapper--disabled{opacity:.6;background-color:var(--genui-disabled-bg);cursor:not-allowed}.genui-textarea-wrapper--disabled .genui-textarea{cursor:not-allowed;color:var(--genui-disabled-text)}.genui-textarea-wrapper--3xs{padding:calc(var(--genui-base-size) * .125) calc(var(--genui-base-size) * .25);font-size:calc(var(--genui-base-size) * .625)}.genui-textarea-wrapper--2xs{padding:calc(var(--genui-base-size) * .25) calc(var(--genui-base-size) * .375);font-size:calc(var(--genui-base-size) * .75)}.genui-textarea-wrapper--xs{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .5);font-size:calc(var(--genui-base-size) * .75)}.genui-textarea-wrapper--sm{padding:calc(var(--genui-base-size) * .375) calc(var(--genui-base-size) * .625);font-size:calc(var(--genui-base-size) * .875)}.genui-textarea-wrapper--md{padding:calc(var(--genui-base-size) * .5) calc(var(--genui-base-size) * .75);font-size:calc(var(--genui-base-size) * .875)}.genui-textarea-wrapper--lg{padding:calc(var(--genui-base-size) * .625) calc(var(--genui-base-size) * .875);font-size:var(--genui-base-size)}.genui-textarea-wrapper--xl{padding:calc(var(--genui-base-size) * .75) var(--genui-base-size);font-size:calc(var(--genui-base-size) * 1.125)}.genui-textarea-wrapper--2xl{padding:var(--genui-base-size) calc(var(--genui-base-size) * 1.25);font-size:calc(var(--genui-base-size) * 1.25)}.genui-textarea-wrapper--3xl{padding:calc(var(--genui-base-size) * 1.25) calc(var(--genui-base-size) * 1.5);font-size:calc(var(--genui-base-size) * 1.5)}.genui-title{color:var(--genui-text-primary);margin:0;line-height:1.25}.genui-title--truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.genui-title--align-start{text-align:start}.genui-title--align-center{text-align:center}.genui-title--align-end{text-align:end}.genui-title--align-justify{text-align:justify}.genui-title--weight-normal{font-weight:400}.genui-title--weight-medium{font-weight:500}.genui-title--weight-semibold{font-weight:600}.genui-title--weight-bold{font-weight:700}.genui-title--size-sm{font-size:calc(var(--genui-base-size) * 1.125)}.genui-title--size-md{font-size:calc(var(--genui-base-size) * 1.25)}.genui-title--size-lg{font-size:calc(var(--genui-base-size) * 1.5)}.genui-title--size-xl{font-size:calc(var(--genui-base-size) * 1.875)}.genui-title--size-2xl{font-size:calc(var(--genui-base-size) * 2.25)}.genui-title--size-3xl{font-size:calc(var(--genui-base-size) * 3)}.genui-title--size-4xl{font-size:calc(var(--genui-base-size) * 4)}.genui-title--size-5xl{font-size:calc(var(--genui-base-size) * 5)}.genui-widget-root{--genui-base-size:1rem;font-size:var(--genui-base-size);line-height:1;position:relative}.genui-fade-enter-active,.genui-fade-leave-active{transition:opacity .3s}.genui-fade-enter-from,.genui-fade-leave-to{opacity:0}.genui-slide-enter-active,.genui-slide-leave-active{max-height:var(--mh);transition:max-height .3s,padding .3s,opacity .3s}.genui-slide-enter-from,.genui-slide-leave-to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}.genui-fly-enter-active,.genui-fly-leave-active{transition:all .3s}.genui-fly-enter-from,.genui-fly-leave-to{opacity:0;transform:translateX(calc(var(--genui-base-size) * -1))}.genui-fly-staggered-leave-active{transition:opacity .3s linear,transform .3s;transition-delay:calc(.1s * (var(--total) - var(--i)))}.genui-fly-staggered-enter-active{transition:opacity .3s linear,transform .3s;transition-delay:calc(.1s * var(--i))}.genui-fly-staggered-enter-from{transform:translateX(calc(var(--genui-base-size) * -1));opacity:0}.genui-fly-staggered-enter-to,.genui-fly-staggered-leave-from{opacity:1;transform:translate(0)}.genui-fly-staggered-leave-to{transform:translateX(var(--genui-base-size));opacity:0}.genui-rise-enter-active,.genui-rise-leave-active{transition:opacity .3s linear,transform .3s}.genui-rise-leave-active{position:absolute}.genui-rise-enter-from{transform:translateY(var(--genui-base-size));opacity:0}.genui-rise-enter-to,.genui-rise-leave-from{opacity:1;transform:translateY(0)}.genui-rise-leave-to{transform:translateY(calc(var(--genui-base-size) * -1));opacity:0}
|
|
2
|
+
/*$vite$:1*/
|