@codemonster-ru/vueforge-core 1.6.0 → 1.7.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.
Files changed (35) hide show
  1. package/README.md +72 -1
  2. package/dist/components/heading/VfHeading.vue.d.ts +26 -0
  3. package/dist/components/heading/VfHeading.vue.d.ts.map +1 -0
  4. package/dist/components/heading/index.d.ts +2 -0
  5. package/dist/components/heading/index.d.ts.map +1 -0
  6. package/dist/components/index.d.ts +3 -0
  7. package/dist/components/index.d.ts.map +1 -1
  8. package/dist/components/prose/VfProse.vue.d.ts +23 -0
  9. package/dist/components/prose/VfProse.vue.d.ts.map +1 -0
  10. package/dist/components/prose/index.d.ts +2 -0
  11. package/dist/components/prose/index.d.ts.map +1 -0
  12. package/dist/components/switch/VfSwitch.vue.d.ts.map +1 -1
  13. package/dist/components/text/VfText.vue.d.ts +28 -0
  14. package/dist/components/text/VfText.vue.d.ts.map +1 -0
  15. package/dist/components/text/index.d.ts +2 -0
  16. package/dist/components/text/index.d.ts.map +1 -0
  17. package/dist/composables/useTheme.d.ts +1 -1
  18. package/dist/index.d.ts +2 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/styles.css +1 -1
  21. package/dist/theme/default-preset-source.d.ts +68 -0
  22. package/dist/theme/default-preset-source.d.ts.map +1 -1
  23. package/dist/theme/public.d.ts +1 -1
  24. package/dist/theme/public.d.ts.map +1 -1
  25. package/dist/theme/utils.d.ts +7 -2
  26. package/dist/theme/utils.d.ts.map +1 -1
  27. package/dist/theme-api.js +3 -232
  28. package/dist/tokens.css +85 -17
  29. package/dist/types/components.d.ts +3 -0
  30. package/dist/types/components.d.ts.map +1 -1
  31. package/dist/types/theme.d.ts +91 -2
  32. package/dist/types/theme.d.ts.map +1 -1
  33. package/dist/utils-T2JkaeUr.js +315 -0
  34. package/dist/vueforge-core.js +900 -843
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@ Stable foundation layer for the VueForge design system.
8
8
 
9
9
  ## Current scope
10
10
 
11
- Version `1.3.x` focuses on:
11
+ Version `1.7.x` focuses on:
12
12
 
13
13
  - Vue 3 library build with Vite
14
14
  - TypeScript declarations
@@ -16,6 +16,7 @@ Version `1.3.x` focuses on:
16
16
  - Theme provider and `useTheme`
17
17
  - CSS design tokens and theme variables
18
18
  - Built-in default theme preset powered by the shared `@codemonster-ru/vueforge-theme` engine
19
+ - Typography primitives and content-navigation patterns for documentation-style pages
19
20
 
20
21
  ## Installation
21
22
 
@@ -120,6 +121,75 @@ VueForge now has two theme layers:
120
121
 
121
122
  This means `vueforge-core` is still the easiest way to consume the default VueForge design language, while higher-level packages can share the same engine without depending on `core` runtime helpers.
122
123
 
124
+ ## Documentation Pattern
125
+
126
+ For long-form docs pages, the recommended pattern is:
127
+
128
+ - `VfProse` for content typography
129
+ - `VfTableOfContents` for section navigation
130
+ - `useTableOfContents()` for active-section tracking
131
+
132
+ ```vue
133
+ <script setup lang="ts">
134
+ import {
135
+ VfProse,
136
+ VfTableOfContents,
137
+ useTableOfContents,
138
+ } from "@codemonster-ru/vueforge-core";
139
+
140
+ const items = [
141
+ { id: "getting-started", label: "Getting started", level: 1 },
142
+ { id: "installation", label: "Installation", level: 2 },
143
+ { id: "theme-api", label: "Theme API", level: 2 },
144
+ ];
145
+
146
+ const { activeId } = useTableOfContents({
147
+ items,
148
+ offset: 96,
149
+ });
150
+ </script>
151
+
152
+ <template>
153
+ <aside>
154
+ <VfTableOfContents
155
+ label="On This Page"
156
+ aria-label="Page navigation"
157
+ :items="items"
158
+ :active-id="activeId"
159
+ />
160
+ </aside>
161
+
162
+ <VfProse>
163
+ <h2 id="getting-started">Getting started</h2>
164
+ <p>Intro copy.</p>
165
+
166
+ <h3 id="installation">Installation</h3>
167
+ <p>Install the package.</p>
168
+
169
+ <h3 id="theme-api">Theme API</h3>
170
+ <p>Customize tokens and theme mode behavior.</p>
171
+ </VfProse>
172
+ </template>
173
+ ```
174
+
175
+ ## Typography Usage
176
+
177
+ Use the typography layers by content shape:
178
+
179
+ - `VfHeading` for short-form UI headings such as page titles, section headers, and table headers
180
+ - `VfText` for short supporting copy, labels, and captions
181
+ - `VfProse` for long-form content such as documentation, guides, and rich text
182
+
183
+ ```vue
184
+ <VfHeading as="h1" size="xl">Page Title</VfHeading>
185
+ <VfText tone="muted">Short supporting copy.</VfText>
186
+
187
+ <VfProse>
188
+ <h2>Getting started</h2>
189
+ <p>Long-form content goes here.</p>
190
+ </VfProse>
191
+ ```
192
+
123
193
  ## Foundation Usage
124
194
 
125
195
  Use the full package when you need VueForge components, styles, and theme runtime together.
@@ -168,6 +238,7 @@ npm run test
168
238
  ## Visual Baseline
169
239
 
170
240
  - [Visual Baseline 1.0](./docs/visual-baseline.md)
241
+ - [Typography API](./docs/typography-api.md)
171
242
  - [Theme API](./docs/theme-api.md)
172
243
  - [Foundation API](./docs/foundation-api.md)
173
244
  - [Overlay API](./docs/overlay-api.md)
@@ -0,0 +1,26 @@
1
+ import { VfHeadingSize } from '../../types/components';
2
+ interface VfHeadingProps {
3
+ as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div" | "span";
4
+ size?: VfHeadingSize;
5
+ }
6
+ declare function __VLS_template(): {
7
+ attrs: Partial<{}>;
8
+ slots: {
9
+ default?(_: {}): any;
10
+ };
11
+ refs: {};
12
+ rootEl: any;
13
+ };
14
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
15
+ declare const __VLS_component: import('vue').DefineComponent<VfHeadingProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<VfHeadingProps> & Readonly<{}>, {
16
+ size: VfHeadingSize;
17
+ as: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "div" | "span";
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
20
+ export default _default;
21
+ type __VLS_WithTemplateSlots<T, S> = T & {
22
+ new (): {
23
+ $slots: S;
24
+ };
25
+ };
26
+ //# sourceMappingURL=VfHeading.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VfHeading.vue.d.ts","sourceRoot":"","sources":["../../../src/components/heading/VfHeading.vue"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9D,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAiBD,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;UAnEZ,aAAa;QADf,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM;6EA2E7D,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as VfHeading } from './VfHeading.vue';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/heading/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -8,15 +8,18 @@ export { VfDrawer } from './drawer';
8
8
  export { VfDialog } from './dialog';
9
9
  export { VfDivider } from './divider';
10
10
  export { VfDropdown } from './dropdown';
11
+ export { VfHeading } from './heading';
11
12
  export { VfIconButton } from './icon-button';
12
13
  export { VfInput } from './input';
13
14
  export { VfLink } from './link';
14
15
  export { VfNavMenu } from './nav-menu';
15
16
  export { VfPanel } from './panel';
16
17
  export { VfPopover } from './popover';
18
+ export { VfProse } from './prose';
17
19
  export { VfRadio } from './radio';
18
20
  export { VfSwitch } from './switch';
19
21
  export { VfTableOfContents } from './table-of-contents';
22
+ export { VfText } from './text';
20
23
  export { VfThemeSwitch } from './theme-switch';
21
24
  export { VfTag } from './tag';
22
25
  export { VfTabs } from './tabs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ interface VfProseProps {
2
+ as?: string;
3
+ }
4
+ declare function __VLS_template(): {
5
+ attrs: Partial<{}>;
6
+ slots: {
7
+ default?(_: {}): any;
8
+ };
9
+ refs: {};
10
+ rootEl: any;
11
+ };
12
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
13
+ declare const __VLS_component: import('vue').DefineComponent<VfProseProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<VfProseProps> & Readonly<{}>, {
14
+ as: string;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
17
+ export default _default;
18
+ type __VLS_WithTemplateSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
23
+ //# sourceMappingURL=VfProse.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VfProse.vue.d.ts","sourceRoot":"","sources":["../../../src/components/prose/VfProse.vue"],"names":[],"mappings":"AAkCA,UAAU,YAAY;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAeD,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;QAjEd,MAAM;6EAwEX,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as VfProse } from './VfProse.vue';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/prose/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"VfSwitch.vue.d.ts","sourceRoot":"","sources":["../../../src/components/switch/VfSwitch.vue"],"names":[],"mappings":"AA+EA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAiDD,iBAAS,cAAc;WAmDT,OAAO,IAA6B;;;;YAXvB,GAAG;yBACD,GAAG;;;;EAe/B;AAcD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;WAzHX,MAAM;cADH,OAAO;UADX,aAAa;gBADP,OAAO;6EAoIpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"VfSwitch.vue.d.ts","sourceRoot":"","sources":["../../../src/components/switch/VfSwitch.vue"],"names":[],"mappings":"AA2HA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,UAAU,aAAa;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2ED,iBAAS,cAAc;WAmDT,OAAO,IAA6B;;;;YAXvB,GAAG;yBACD,GAAG;;;;EAe/B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;WApJX,MAAM;cADH,OAAO;UADX,aAAa;gBADP,OAAO;6EA+JpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { VfTextSize, VfTextTone } from '../../types/components';
2
+ interface VfTextProps {
3
+ as?: "p" | "span" | "div" | "label" | "small";
4
+ size?: VfTextSize;
5
+ tone?: VfTextTone;
6
+ }
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: {
10
+ default?(_: {}): any;
11
+ };
12
+ refs: {};
13
+ rootEl: any;
14
+ };
15
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
+ declare const __VLS_component: import('vue').DefineComponent<VfTextProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<VfTextProps> & Readonly<{}>, {
17
+ size: VfTextSize;
18
+ tone: VfTextTone;
19
+ as: "p" | "span" | "div" | "label" | "small";
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
+ export default _default;
23
+ type __VLS_WithTemplateSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
28
+ //# sourceMappingURL=VfText.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VfText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/text/VfText.vue"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMjE,UAAU,WAAW;IACnB,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAyBD,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;UA5EZ,UAAU;UACV,UAAU;QAFZ,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO;6EAoF7C,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default as VfText } from './VfText.vue';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/text/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC"}
@@ -1,7 +1,7 @@
1
1
  export declare function useTheme(): {
2
2
  theme: import('vue').Ref<import('@codemonster-ru/vueforge-theme').VfThemeMode, import('@codemonster-ru/vueforge-theme').VfThemeMode>;
3
3
  resolvedTheme: import('vue').Ref<import('@codemonster-ru/vueforge-theme').VfResolvedTheme, import('@codemonster-ru/vueforge-theme').VfResolvedTheme>;
4
- setTheme: (value: import('@codemonster-ru/vueforge-theme').VfThemeMode) => void;
4
+ setTheme: (value: import('..').VfThemeMode) => void;
5
5
  toggleTheme: () => void;
6
6
  };
7
7
  //# sourceMappingURL=useTheme.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export { default, VueForgeCore, createVueForgeCore } from './plugin';
2
2
  export { default as VfThemeProvider } from './providers/VfThemeProvider.vue';
3
- export { VfAccordion, VfAlert, VfBadge, VfButton, VfCard, VfCheckbox, VfDrawer, VfDialog, VfDivider, VfDropdown, VfIconButton, VfInput, VfLink, VfNavMenu, VfPanel, VfPopover, VfRadio, VfSwitch, VfTableOfContents, VfThemeSwitch, VfTag, VfTabs, VfTextarea, VfTooltip, } from './components';
3
+ export { VfAccordion, VfAlert, VfBadge, VfButton, VfCard, VfCheckbox, VfDrawer, VfDialog, VfDivider, VfDropdown, VfHeading, VfIconButton, VfInput, VfLink, VfNavMenu, VfPanel, VfPopover, VfProse, VfRadio, VfSwitch, VfTableOfContents, VfText, VfThemeSwitch, VfTag, VfTabs, VfTextarea, VfTooltip, } from './components';
4
4
  export { useClickOutside, useDisclosure, useEscapeKey, useFloating, useFocusTrap, useId, useTableOfContents, useTheme, } from './composables';
5
5
  export { vfBreakpoints, toMaxWidthQuery, toMinWidthQuery, useBreakpoint, useBreakpoints, useBreakpointValue, useScrollLock, } from './foundation';
6
6
  export { createThemePreset, defaultThemePreset } from './theme/public';
7
- export type { VfBadgeTone, VfButtonVariant, VfControlSize, VfDialogSize, VfDrawerPlacement, VfDividerOrientation, VfDropdownPlacement, VfFeedbackTone, VfNavMenuItem, VfTabItem, VfTableOfContentsItem, VfTooltipPlacement, VfLinkTone, } from './types/components';
7
+ export type { VfBadgeTone, VfButtonVariant, VfControlSize, VfDialogSize, VfDrawerPlacement, VfDividerOrientation, VfDropdownPlacement, VfFeedbackTone, VfHeadingSize, VfNavMenuItem, VfTabItem, VfTableOfContentsItem, VfTextSize, VfTextTone, VfTooltipPlacement, VfLinkTone, } from './types/components';
8
8
  export type { VfResolvedTheme, VfThemeConfig, VfThemeContext, VfThemeMode, VfThemePreset, VfThemePresetOptions, VfThemeProviderProps, VfThemeTokens, VfVueForgeOptions, } from './types/theme';
9
9
  export type { UseBreakpointOptions, UseScrollLockOptions, VfBreakpointName, VfBreakpointValue, VfBreakpointValues, } from './foundation';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,yBAAyB,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,KAAK,EACL,MAAM,EACN,UAAU,EACV,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,KAAK,EACL,kBAAkB,EAClB,QAAQ,GACT,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- :root{--vf-breakpoint-xs: 480px;--vf-breakpoint-sm: 640px;--vf-breakpoint-md: 768px;--vf-breakpoint-lg: 1024px;--vf-breakpoint-xl: 1280px;--vf-breakpoint-2xl: 1536px}:root{--vf-color-bg: #fcfcfd;--vf-color-surface: #ffffff;--vf-color-surface-muted: #f5f7fb;--vf-color-text: #172033;--vf-color-muted: #69738a;--vf-color-border: #d8e0ef;--vf-color-primary: #0b63f6;--vf-color-primary-contrast: #ffffff;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #16a34a;--vf-color-success-contrast: #ffffff;--vf-color-info: #0ea5e9;--vf-color-info-contrast: #ffffff;--vf-color-warn: #f59e0b;--vf-color-warn-contrast: #1f1300;--vf-color-help: #8b5cf6;--vf-color-help-contrast: #ffffff;--vf-color-danger: #dc2626;--vf-color-danger-contrast: #ffffff;--vf-color-contrast: #111827;--vf-color-contrast-contrast: #ffffff;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-radius: .75rem;--vf-radius-control: calc(var(--vf-radius) - .125rem);--vf-radius-control-tight: calc(var(--vf-radius) - .25rem);--vf-radius-surface: var(--vf-radius);--vf-radius-overlay: calc(var(--vf-radius) + .125rem);--vf-control-height-sm: 1.75rem;--vf-control-height-md: 2.25rem;--vf-control-height-lg: 2.5rem;--vf-control-font-size-sm: .875rem;--vf-control-font-size-md: .9375rem;--vf-control-font-size-lg: 1rem;--vf-button-padding-sm: .25rem .5rem;--vf-button-padding-md: .375rem .75rem;--vf-button-padding-lg: .5rem 1rem;--vf-button-gap: .5rem;--vf-field-padding-sm: .25rem .5rem;--vf-field-padding-md: .375rem .75rem;--vf-field-padding-lg: .5rem 1rem;--vf-checkbox-size-sm: 1rem;--vf-checkbox-size-md: 1.125rem;--vf-checkbox-size-lg: 1.25rem;--vf-selection-gap: .75rem;--vf-checkbox-mark-width: .25rem;--vf-checkbox-mark-height: .5rem;--vf-checkbox-mark-stroke-width: 2px;--vf-checkbox-mark-offset-y: -.0625rem;--vf-radio-dot-size: .5rem;--vf-switch-width-sm: 2rem;--vf-switch-width-md: 2.25rem;--vf-switch-width-lg: 2.5rem;--vf-switch-height-sm: 1.125rem;--vf-switch-height-md: 1.25rem;--vf-switch-height-lg: 1.375rem;--vf-switch-thumb-size-sm: .75rem;--vf-switch-thumb-size-md: .875rem;--vf-switch-thumb-size-lg: 1rem;--vf-switch-thumb-inset: .125rem;--vf-textarea-min-height-sm: 4.5rem;--vf-textarea-min-height-md: 6rem;--vf-textarea-min-height-lg: 7rem;--vf-overlay-padding: 1rem;--vf-overlay-gap: .75rem;--vf-overlay-viewport-padding: 1rem;--vf-menu-padding: .5rem;--vf-menu-gap: .25rem;--vf-menu-min-width: 12rem;--vf-surface-padding: 1rem;--vf-surface-gap: .75rem;--vf-surface-padding-compact: .75rem;--vf-surface-gap-compact: .5rem;--vf-section-padding: .75rem 1rem;--vf-section-gap: .75rem;--vf-tabs-gap: .75rem;--vf-tabs-list-gap: .25rem;--vf-tabs-list-padding: .25rem;--vf-tabs-tab-padding-inline: .75rem;--vf-tabs-panel-padding-top: .75rem;--vf-nav-menu-list-gap: .25rem;--vf-nav-menu-nested-gap: .25rem;--vf-nav-menu-collapse-offset-top: .25rem;--vf-nav-menu-collapse-inset-level-0-margin: .5rem;--vf-nav-menu-collapse-inset-level-0-padding: .5rem;--vf-nav-menu-collapse-inset-simple-level-0-margin: .5rem;--vf-nav-menu-collapse-inset-simple-level-0-padding: .5rem;--vf-nav-menu-collapse-inset-deep-margin: .5rem;--vf-nav-menu-collapse-inset-deep-padding: .5rem;--vf-nav-menu-collapse-inset-simple-deep-margin: .5rem;--vf-nav-menu-collapse-inset-simple-deep-padding: .5rem;--vf-nav-menu-node-group-spacing: .25rem;--vf-nav-menu-group-padding: .375rem .75rem;--vf-nav-menu-group-font-size: .875rem;--vf-nav-menu-item-padding: .375rem .75rem;--vf-nav-menu-item-gap: .5rem;--vf-nav-menu-leading-icon-size: 1rem;--vf-nav-menu-leading-icon-column-size: 1.25rem;--vf-table-of-contents-gap: .25rem;--vf-table-of-contents-list-gap: var(--vf-nav-menu-list-gap);--vf-table-of-contents-title-font-size: .75rem;--vf-table-of-contents-title-color: var(--vf-color-muted);--vf-table-of-contents-item-padding: var(--vf-nav-menu-item-padding);--vf-table-of-contents-level-step: .5rem;--vf-table-of-contents-color: var(--vf-color-text);--vf-table-of-contents-hover-color: var(--vf-color-primary);--vf-table-of-contents-hover-background: color-mix(in srgb, var(--vf-color-primary) 10%, var(--vf-color-surface));--vf-table-of-contents-active-color: var(--vf-color-primary);--vf-table-of-contents-active-background: color-mix(in srgb, var(--vf-color-primary) 14%, var(--vf-color-surface));--vf-badge-height: 1.5rem;--vf-badge-padding: .25rem .5rem;--vf-badge-gap: .25rem;--vf-badge-radius: 999px;--vf-badge-font-size: .8125rem;--vf-badge-line-height: 1.2;--vf-tag-height: 1.75rem;--vf-tag-padding: .25rem .5rem;--vf-tag-font-size: .8125rem;--vf-tag-line-height: 1.2;--vf-tooltip-padding: .5rem .75rem;--vf-tooltip-max-width: 16rem;--vf-tooltip-font-size: .8125rem;--vf-tooltip-line-height: 1.4;--vf-dialog-width-sm: 28rem;--vf-dialog-width-md: 36rem;--vf-dialog-width-lg: 48rem;--vf-dialog-max-height: min(85vh, 48rem);--vf-drawer-size-sm: 20rem;--vf-drawer-size-md: 26rem;--vf-drawer-size-lg: 32rem;--vf-drawer-offset-top: 0px;--vf-drawer-body-padding: var(--vf-overlay-padding);--vf-dialog-title-font-size: 1.125rem;--vf-dialog-header-gap: .75rem;--vf-dialog-actions-gap: .5rem;--vf-popover-width: min(100vw - 2rem, 22rem);--vf-floating-arrow-size: .625rem;--vf-overlay-backdrop: rgba(15, 23, 42, .56);--vf-alert-primary-soft: color-mix(in srgb, var(--vf-color-primary) 8%, var(--vf-color-surface));--vf-alert-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-alert-content-gap: .25rem;--vf-alert-title-font-size: .9375rem;--vf-card-title-font-size: 1rem;--vf-panel-title-font-size: .9375rem;--vf-text-line-height: 1.5;--vf-heading-line-height: 1.3;--vf-tabs-line-height: 1.2;--vf-motion-duration-fast: .22s;--vf-motion-duration-normal: .32s;--vf-motion-ease-standard: cubic-bezier(.16, 1, .3, 1);--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-spacing: 1rem;--vf-shadow: none}:root{color-scheme:light;background-color:var(--vf-color-bg);color:var(--vf-color-text)}:root[data-vf-theme=dark]{color-scheme:dark;--vf-color-bg: #0f172a;--vf-color-surface: #162033;--vf-color-surface-muted: #1b2840;--vf-color-text: #eff4ff;--vf-color-muted: #9fb0cf;--vf-color-border: #2d405f;--vf-color-primary: #6ea8fe;--vf-color-primary-contrast: #081120;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #4ade80;--vf-color-success-contrast: #081120;--vf-color-info: #38bdf8;--vf-color-info-contrast: #081120;--vf-color-warn: #fbbf24;--vf-color-warn-contrast: #1f1300;--vf-color-help: #a78bfa;--vf-color-help-contrast: #081120;--vf-color-danger: #f87171;--vf-color-danger-contrast: #081120;--vf-color-contrast: #f3f4f6;--vf-color-contrast-contrast: #111827;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-shadow: none}:root.vf-theme-transitioning,:root.vf-theme-transitioning body,:root.vf-theme-transitioning #app,:root.vf-theme-transitioning [class^=vf-],:root.vf-theme-transitioning [class*=" vf-"],:root.vf-theme-transitioning .demo-page,:root.vf-theme-transitioning .demo-container,:root.vf-theme-transitioning .demo-header,:root.vf-theme-transitioning .demo-block,:root.vf-theme-transitioning .demo-example,:root.vf-theme-transitioning .demo-item{transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),fill var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),stroke var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-button,.vf-link,.vf-input,.vf-card,.vf-textarea,.vf-panel,.vf-badge,.vf-divider,.vf-dialog,.vf-dialog__overlay,.vf-dialog__content,.vf-drawer,.vf-drawer__overlay,.vf-drawer__content,.vf-dropdown,.vf-dropdown__trigger,.vf-dropdown__menu,.vf-accordion,.vf-accordion__trigger,.vf-nav-menu,.vf-nav-menu__item,.vf-tooltip,.vf-tooltip__trigger,.vf-tooltip__content,.vf-tabs,.vf-tabs__list,.vf-tabs__tab,.vf-tabs__panel{box-sizing:border-box;font:inherit}.vf-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--vf-button-gap);min-height:var(--vf-control-height-md);padding:var(--vf-button-padding-md);border:1px solid transparent;border-radius:var(--vf-radius-control);background:var(--vf-color-primary);color:var(--vf-color-primary-contrast);cursor:pointer;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-control-height-md);height:var(--vf-control-height-md);padding:0;border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;color:var(--vf-color-text);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-button:focus-visible,.vf-icon-button:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-button:disabled,.vf-icon-button:disabled{opacity:.65;cursor:not-allowed}.vf-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--primary,.vf-icon-button--primary{background:var(--vf-color-primary);color:var(--vf-color-primary-contrast)}.vf-button--success,.vf-icon-button--success{background:var(--vf-color-success);color:var(--vf-color-success-contrast)}.vf-button--info,.vf-icon-button--info{background:var(--vf-color-info);color:var(--vf-color-info-contrast)}.vf-button--warn,.vf-icon-button--warn{background:var(--vf-color-warn);color:var(--vf-color-warn-contrast)}.vf-button--help,.vf-icon-button--help{background:var(--vf-color-help);color:var(--vf-color-help-contrast)}.vf-button--danger,.vf-icon-button--danger{background:var(--vf-color-danger);color:var(--vf-color-danger-contrast)}.vf-button--contrast,.vf-icon-button--contrast{background:var(--vf-color-contrast);color:var(--vf-color-contrast-contrast)}.vf-icon-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--ghost,.vf-icon-button--ghost{background:transparent;color:var(--vf-color-text)}.vf-button--secondary:hover:not(:disabled),.vf-icon-button--secondary:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);filter:brightness(.98)}.vf-button--ghost:hover:not(:disabled),.vf-icon-button--ghost:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:transparent}.vf-button--primary:hover:not(:disabled),.vf-button--success:hover:not(:disabled),.vf-button--info:hover:not(:disabled),.vf-button--warn:hover:not(:disabled),.vf-button--help:hover:not(:disabled),.vf-button--danger:hover:not(:disabled),.vf-button--contrast:hover:not(:disabled),.vf-icon-button--primary:hover:not(:disabled){filter:brightness(.96)}.vf-icon-button--success:hover:not(:disabled),.vf-icon-button--info:hover:not(:disabled),.vf-icon-button--warn:hover:not(:disabled),.vf-icon-button--help:hover:not(:disabled),.vf-icon-button--danger:hover:not(:disabled),.vf-icon-button--contrast:hover:not(:disabled){filter:brightness(.96)}.vf-button--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-button-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-icon-button--sm{width:var(--vf-control-height-sm);height:var(--vf-control-height-sm)}.vf-button--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-button-padding-lg);font-size:var(--vf-control-font-size-lg)}.vf-icon-button--lg{width:var(--vf-control-height-lg);height:var(--vf-control-height-lg)}.vf-button--block{width:100%}.vf-link{display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start;border:1px solid transparent;color:var(--vf-color-primary);text-decoration:none;text-underline-offset:.2em;transition:color .18s ease}.vf-link:hover{color:var(--vf-color-primary)}.vf-link:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-link--muted{color:var(--vf-color-muted)}.vf-link--underline{text-decoration:underline}.vf-link--underline:focus-visible{text-decoration:none}.vf-input,.vf-textarea{width:100%}.vf-checkbox,.vf-switch,.vf-radio{position:relative;display:inline-flex;align-items:center;gap:var(--vf-selection-gap);width:fit-content;min-width:0;color:var(--vf-color-text);cursor:pointer}.vf-input{min-height:var(--vf-control-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);transition:border-color .18s ease}.vf-input::placeholder{color:var(--vf-color-muted)}.vf-input:hover:not(:disabled):not(.vf-input--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:focus,.vf-input:focus-visible{border-color:var(--vf-color-primary)}.vf-input:focus-visible,.vf-textarea:focus-visible{outline:none;border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-input--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-input--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-field-padding-lg)}.vf-input--invalid{border-color:var(--vf-color-danger)}.vf-input--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea{min-height:var(--vf-textarea-min-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);resize:vertical;transition:border-color .18s ease}.vf-textarea::placeholder{color:var(--vf-color-muted)}.vf-textarea:hover:not(:disabled):not(.vf-textarea--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea:focus,.vf-textarea:focus-visible{border-color:var(--vf-color-primary)}.vf-textarea--sm{min-height:var(--vf-textarea-min-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-textarea--lg{min-height:var(--vf-textarea-min-height-lg);padding:var(--vf-field-padding-lg)}.vf-textarea--invalid{border-color:var(--vf-color-danger)}.vf-textarea--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:disabled,.vf-textarea:disabled{opacity:.65;cursor:not-allowed}.vf-checkbox--disabled,.vf-switch--disabled,.vf-radio--disabled{opacity:.65;cursor:not-allowed}.vf-checkbox__input,.vf-switch__input,.vf-radio__input{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}.vf-checkbox__control,.vf-switch__control,.vf-radio__control{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--vf-color-border);background:var(--vf-color-surface);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-checkbox__content,.vf-switch__content,.vf-radio__content{min-width:0;color:currentColor;line-height:var(--vf-text-line-height)}.vf-checkbox__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:calc(var(--vf-radius-control-tight) - .0625rem)}.vf-checkbox__mark{width:var(--vf-checkbox-mark-width);height:var(--vf-checkbox-mark-height);border-right:var(--vf-checkbox-mark-stroke-width) solid transparent;border-bottom:var(--vf-checkbox-mark-stroke-width) solid transparent;transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(.8);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-checkbox__input:checked+.vf-checkbox__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-checkbox__input:checked+.vf-checkbox__control .vf-checkbox__mark{border-right-color:var(--vf-color-primary-contrast);border-bottom-color:var(--vf-color-primary-contrast);transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(1);opacity:1}.vf-checkbox:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox__input:focus-visible+.vf-checkbox__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-checkbox--invalid .vf-checkbox__control{border-color:var(--vf-color-danger)}.vf-checkbox--invalid:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox--sm .vf-checkbox__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-checkbox--sm .vf-checkbox__content{font-size:var(--vf-control-font-size-sm)}.vf-checkbox--lg .vf-checkbox__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-radio__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-border) 12%,var(--vf-color-surface))}.vf-radio__dot{width:var(--vf-radio-dot-size);height:var(--vf-radio-dot-size);border-radius:999px;background:var(--vf-color-primary);transform:scale(.35);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-radio__input:checked+.vf-radio__control{border-color:var(--vf-color-primary)}.vf-radio__input:checked+.vf-radio__control .vf-radio__dot{transform:scale(1);opacity:1}.vf-radio:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio__input:focus-visible+.vf-radio__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-radio--invalid .vf-radio__control{border-color:var(--vf-color-danger)}.vf-radio--invalid:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-color-primary-border-soft)}.vf-radio--sm .vf-radio__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-radio--sm .vf-radio__content{font-size:var(--vf-control-font-size-sm)}.vf-radio--lg .vf-radio__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-switch__control{width:var(--vf-switch-width-md);height:var(--vf-switch-height-md);border-radius:999px;background:color-mix(in srgb,var(--vf-color-text) 10%,var(--vf-color-surface))}.vf-switch__thumb{position:absolute;left:var(--vf-switch-thumb-inset);display:inline-flex;align-items:center;justify-content:center;width:var(--vf-switch-thumb-size-md);height:var(--vf-switch-thumb-size-md);border-radius:999px;border:1px solid color-mix(in srgb,var(--vf-color-surface) 80%,var(--vf-color-border));background:color-mix(in srgb,var(--vf-color-surface) 88%,var(--vf-color-surface-muted));box-shadow:0 1px 2px color-mix(in srgb,var(--vf-color-text) 18%,transparent);color:color-mix(in srgb,var(--vf-color-text) 55%,transparent);line-height:1;transform:translate(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-switch__thumb>.vif-icon{width:.625rem;height:.625rem}.vf-switch__input:checked+.vf-switch__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-md) - var(--vf-switch-thumb-size-md) - (var(--vf-switch-thumb-inset) * 2)));border-color:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface));background:var(--vf-color-surface);box-shadow:0 1px 1.5px color-mix(in srgb,var(--vf-color-text) 12%,transparent)}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__control{background:color-mix(in srgb,var(--vf-color-text) 12%,var(--vf-color-surface))}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__input:checked+.vf-switch__control{background:color-mix(in srgb,var(--vf-color-primary) 92%,var(--vf-color-surface))}.vf-switch__input:focus-visible+.vf-switch__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-switch--sm .vf-switch__control{width:var(--vf-switch-width-sm);height:var(--vf-switch-height-sm)}.vf-switch--sm .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-sm);height:var(--vf-switch-thumb-size-sm)}.vf-switch--sm .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-sm) - var(--vf-switch-thumb-size-sm) - (var(--vf-switch-thumb-inset) * 2)))}.vf-switch--sm .vf-switch__content{font-size:var(--vf-control-font-size-sm)}.vf-switch--lg .vf-switch__control{width:var(--vf-switch-width-lg);height:var(--vf-switch-height-lg)}.vf-switch--lg .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-lg);height:var(--vf-switch-thumb-size-lg)}.vf-switch--lg .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-lg) - var(--vf-switch-thumb-size-lg) - (var(--vf-switch-thumb-inset) * 2)))}.vf-card{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-card--compact{padding:var(--vf-surface-padding-compact);gap:var(--vf-surface-gap-compact)}.vf-card__title{margin:0;font-size:var(--vf-card-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-card__body{color:var(--vf-color-muted)}.vf-panel{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-panel--subtle{background:transparent;box-shadow:none}.vf-panel__title{margin:0;font-size:var(--vf-panel-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-badge{display:inline-flex;align-items:center;gap:var(--vf-badge-gap);min-height:var(--vf-badge-height);padding:var(--vf-badge-padding);border-radius:var(--vf-badge-radius);font-size:var(--vf-badge-font-size);font-weight:600;line-height:var(--vf-badge-line-height);white-space:nowrap;background:var(--vf-color-surface-muted);border:1px solid var(--vf-color-border);color:var(--vf-color-text)}.vf-badge--primary{background:var(--vf-color-primary-soft);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-badge--success{background:var(--vf-color-success-soft);border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-badge--info{background:var(--vf-color-info-soft);border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-badge--warn{background:var(--vf-color-warn-soft);border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-badge--help{background:var(--vf-color-help-soft);border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-badge--danger{background:var(--vf-color-danger-soft);border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-badge--contrast{background:var(--vf-color-contrast-soft);border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-tag{display:inline-flex;align-items:center;min-height:var(--vf-tag-height);padding:var(--vf-tag-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-tag-font-size);line-height:var(--vf-tag-line-height);white-space:nowrap}.vf-tag--primary{border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-tag--success{border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-tag--info{border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-tag--warn{border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-tag--help{border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-tag--danger{border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-tag--contrast{border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-alert{display:grid;grid-template-columns:auto 1fr;gap:var(--vf-section-gap);padding:var(--vf-section-padding);border:1px solid var(--vf-alert-primary-border-soft);border-radius:var(--vf-radius-surface);background:var(--vf-alert-primary-soft);color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-alert--success{border-color:var(--vf-color-success-border-soft);background:var(--vf-color-success-soft)}.vf-alert--info{border-color:var(--vf-color-info-border-soft);background:var(--vf-color-info-soft)}.vf-alert--warn{border-color:var(--vf-color-warn-border-soft);background:var(--vf-color-warn-soft)}.vf-alert--help{border-color:var(--vf-color-help-border-soft);background:var(--vf-color-help-soft)}.vf-alert--danger{border-color:var(--vf-color-danger-border-soft);background:var(--vf-color-danger-soft)}.vf-alert--contrast{border-color:var(--vf-color-contrast-border-soft);background:var(--vf-color-contrast-soft)}.vf-alert__icon{display:inline-flex;align-items:center;justify-content:center;align-self:start;color:var(--vf-color-primary)}.vf-alert--success .vf-alert__icon{color:var(--vf-color-success)}.vf-alert--info .vf-alert__icon{color:var(--vf-color-info)}.vf-alert--warn .vf-alert__icon{color:var(--vf-color-warn)}.vf-alert--help .vf-alert__icon{color:var(--vf-color-help)}.vf-alert--danger .vf-alert__icon{color:var(--vf-color-danger)}.vf-alert--contrast .vf-alert__icon{color:var(--vf-color-contrast)}.vf-alert__content{display:grid;gap:var(--vf-alert-content-gap)}.vf-alert__title{margin:0;font-size:var(--vf-alert-title-font-size);font-weight:600;line-height:var(--vf-heading-line-height)}.vf-alert__body{color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-divider{margin:0;border:0;background:var(--vf-color-border);flex-shrink:0}.vf-divider--horizontal{width:100%;height:1px}.vf-divider--vertical{width:1px;align-self:stretch}.vf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--vf-overlay-viewport-padding)}.vf-drawer{position:fixed;inset-inline:0;inset-block-end:0;inset-block-start:var(--vf-drawer-offset-top);z-index:var(--vf-z-drawer);display:flex;--vf-drawer-offset-x: 0;--vf-drawer-offset-y: 0}.vf-drawer--left{justify-content:flex-start;--vf-drawer-offset-x: -100%}.vf-drawer--right{justify-content:flex-end;--vf-drawer-offset-x: 100%}.vf-drawer--top{align-items:flex-start;--vf-drawer-offset-y: -100%}.vf-drawer--bottom{align-items:flex-end;--vf-drawer-offset-y: 100%}.vf-dialog__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);width:min(100%,var(--vf-dialog-width-md));max-height:var(--vf-dialog-max-height);overflow:auto;padding:var(--vf-overlay-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0);transition:transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);overflow:hidden;padding:0;border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);transform:translateZ(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog-transition-enter-active,.vf-dialog-transition-leave-active{transition:none}.vf-dialog-transition-enter-from .vf-dialog__overlay,.vf-dialog-transition-leave-to .vf-dialog__overlay{opacity:0}.vf-dialog-transition-enter-from .vf-dialog__content,.vf-dialog-transition-leave-to .vf-dialog__content{opacity:0;transform:translate3d(0,.75rem,0)}.vf-drawer-transition-enter-active,.vf-drawer-transition-leave-active{transition:none}.vf-drawer-transition-enter-from .vf-drawer__overlay,.vf-drawer-transition-leave-to .vf-drawer__overlay{opacity:0}.vf-drawer-transition-enter-from .vf-drawer__content,.vf-drawer-transition-leave-to .vf-drawer__content{transform:translate3d(var(--vf-drawer-offset-x),var(--vf-drawer-offset-y),0)}.vf-dialog__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-drawer__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dialog__content--sm{width:min(100%,var(--vf-dialog-width-sm))}.vf-dialog__content--lg{width:min(100%,var(--vf-dialog-width-lg))}.vf-drawer__content--left,.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-md));height:100%}.vf-drawer__content--left{border-left:none;border-top:none;border-bottom:none;border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0)}.vf-drawer__content--right{border-right:none;border-top:none;border-bottom:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-top-right-radius:var(--vf-drawer-radius-top-right, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer__content--top,.vf-drawer__content--bottom{width:100dvw;min-height:min(100%,var(--vf-drawer-size-md));max-height:100%}.vf-drawer__content--top{border-top:none;border-left:none;border-right:none;border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-top-right-radius:var(--vf-drawer-radius-top-right, 0)}.vf-drawer__content--bottom{border-bottom:none;border-left:none;border-right:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer--offset-top.vf-drawer--left .vf-drawer__content--left,.vf-drawer--offset-top.vf-drawer--right .vf-drawer__content--right,.vf-drawer--offset-top.vf-drawer--top .vf-drawer__content--top{border-top:1px solid var(--vf-color-border)}.vf-drawer__content--sm.vf-drawer__content--left,.vf-drawer__content--sm.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--left,.vf-drawer__content--lg.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-lg))}.vf-drawer__content--sm.vf-drawer__content--top,.vf-drawer__content--sm.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--top,.vf-drawer__content--lg.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-lg))}.vf-dialog__header,.vf-dialog__footer,.vf-drawer__header,.vf-drawer__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-dialog-header-gap)}.vf-dialog__actions,.vf-drawer__actions{display:inline-flex;align-items:center;gap:var(--vf-dialog-actions-gap)}.vf-dialog__actions .vf-icon-button,.vf-drawer__actions .vf-icon-button{color:var(--vf-color-muted)}.vf-dialog__actions .vf-icon-button .vif-icon,.vf-drawer__actions .vf-icon-button .vif-icon{width:1rem;height:1rem}.vf-dialog__actions .vf-icon-button:hover:not(:disabled),.vf-drawer__actions .vf-icon-button:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-dialog__actions .vf-icon-button:active:not(:disabled),.vf-drawer__actions .vf-icon-button:active:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-dialog__title,.vf-drawer__title{margin:0;font-size:var(--vf-dialog-title-font-size);font-weight:700;line-height:var(--vf-heading-line-height)}.vf-dialog__description{margin:0;color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-dialog__body,.vf-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-drawer__header,.vf-drawer__footer{padding:var(--vf-overlay-padding)}.vf-drawer__body{padding:var(--vf-drawer-body-padding)}.vf-dropdown,.vf-popover{position:relative;display:inline-flex;flex-direction:column}.vf-dropdown__trigger,.vf-popover__trigger{width:fit-content;border:1px solid transparent;border-radius:var(--vf-radius-control)}.vf-dropdown__trigger:focus-visible,.vf-popover__trigger:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dropdown__menu{position:fixed;top:0;left:0;z-index:var(--vf-z-dropdown);display:flex;flex-direction:column;gap:var(--vf-menu-gap);min-width:var(--vf-menu-min-width);padding:var(--vf-menu-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-dropdown__arrow{position:absolute;z-index:0;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-dropdown__arrow--bottom{margin-top:-1px}.vf-dropdown__arrow--top{margin-top:1px}.vf-popover__content{position:fixed;left:0;top:0;z-index:var(--vf-z-popover);width:var(--vf-popover-width);padding:var(--vf-section-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-popover__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-popover__arrow--bottom{margin-top:-1px}.vf-popover__arrow--top{margin-top:1px}.vf-dropdown__item{position:relative;z-index:1;display:flex;align-items:center;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-text);text-align:left;cursor:pointer}.vf-dropdown__item:hover{background:transparent;color:var(--vf-color-primary)}.vf-dropdown__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring);background:transparent;color:var(--vf-color-primary)}.vf-tooltip{position:relative;display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start}.vf-tooltip__trigger{display:inline-flex;width:fit-content;max-width:100%}.vf-tooltip__content{position:fixed;left:0;top:0;z-index:var(--vf-z-tooltip);max-width:var(--vf-tooltip-max-width);padding:var(--vf-tooltip-padding);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-text);color:var(--vf-color-bg);font-size:var(--vf-tooltip-font-size);line-height:var(--vf-tooltip-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-floating-transition-enter-from.vf-dropdown__menu,.vf-floating-transition-leave-to.vf-dropdown__menu,.vf-floating-transition-enter-from.vf-popover__content,.vf-floating-transition-leave-to.vf-popover__content,.vf-floating-transition-enter-from.vf-tooltip__content,.vf-floating-transition-leave-to.vf-tooltip__content{opacity:0;transform:translate3d(0,.25rem,0) scale(.97)}.vf-tooltip__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-text);transform:rotate(45deg);pointer-events:none}.vf-accordion{border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text)}.vf-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-spacing);position:relative;z-index:1;width:100%;padding:var(--vf-section-padding);border:1px solid transparent;border-radius:inherit;background:transparent;color:inherit;cursor:pointer;text-align:left}.vf-accordion__trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.vf-accordion__trigger:hover:not(:disabled){background:transparent;color:var(--vf-color-primary)}.vf-accordion__trigger:focus-visible{z-index:2;outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-accordion__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-accordion__icon .vif-icon{width:1rem;height:1rem}.vf-accordion__icon--open{transform:rotate(180deg)}.vf-accordion__content{overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;background:var(--vf-color-surface)}.vf-accordion__content-inner{position:relative;z-index:1;border-top:1px solid var(--vf-color-border);padding:var(--vf-section-padding);color:var(--vf-color-muted);line-height:var(--vf-text-line-height)}.vf-tabs{display:flex;flex-direction:column;gap:var(--vf-tabs-gap)}.vf-tabs__list{display:inline-flex;align-items:center;gap:var(--vf-tabs-list-gap);width:fit-content;padding:var(--vf-tabs-list-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface-muted)}.vf-tabs__tab{display:inline-flex;align-items:center;justify-content:center;min-height:var(--vf-control-height-md);padding:0 var(--vf-tabs-tab-padding-inline);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-muted);cursor:pointer;white-space:nowrap;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-tabs__tab:hover:not(:disabled){color:var(--vf-color-primary);background:transparent}.vf-tabs__tab[aria-selected=true]{background:var(--vf-color-surface);color:var(--vf-color-primary);border:1px solid var(--vf-color-primary)}.vf-tabs__tab:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.vf-tabs__panel{border:1px solid transparent;border-radius:var(--vf-radius-control);padding:var(--vf-tabs-panel-padding-top) 0 0;color:var(--vf-color-text);line-height:var(--vf-text-line-height)}.vf-tabs__panel:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu{display:flex;flex-direction:column;width:100%;min-width:0}.vf-nav-menu__list{display:grid;gap:var(--vf-nav-menu-list-gap);margin:0;padding:0;list-style:none}.vf-nav-menu__list--nested{margin-top:0;gap:var(--vf-nav-menu-nested-gap);padding-top:0}.vf-nav-menu__collapse{overflow:hidden;margin-top:var(--vf-nav-menu-collapse-offset-top)}.vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-level-0-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-simple-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-level-0-padding)}.vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-deep-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-simple-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-deep-padding)}.vf-nav-menu__node{display:block}.vf-nav-menu__collapse>.vf-nav-menu__list--nested>.vf-nav-menu__node:first-child>.vf-nav-menu__group{padding-top:0}.vf-nav-menu__group{display:flex;align-items:center;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-group-padding);cursor:default}.vf-nav-menu__group-label{font-size:var(--vf-nav-menu-group-font-size);font-weight:400;letter-spacing:0;color:var(--vf-color-text)}.vf-nav-menu__item-content{display:inline-flex;align-items:center;gap:var(--vf-nav-menu-item-gap);min-width:0}.vf-nav-menu__leading-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-nav-menu-leading-icon-column-size);min-width:var(--vf-nav-menu-leading-icon-column-size);color:currentColor}.vf-nav-menu__leading-icon .vif-icon{width:var(--vf-nav-menu-leading-icon-size);height:var(--vf-nav-menu-leading-icon-size)}.vf-nav-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;font-size:1rem;color:var(--vf-color-text);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__item:hover:not(:disabled):not(.vf-nav-menu__item--active){color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface))}.vf-nav-menu__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu__item--active{color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 16%,var(--vf-color-surface))}.vf-nav-menu__item--disabled{cursor:not-allowed;opacity:.5}.vf-nav-menu__item--branch{font-weight:400;color:var(--vf-color-text)}.vf-nav-menu__label{min-width:0;overflow-wrap:anywhere}.vf-nav-menu__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__icon .vif-icon{width:1rem;height:1rem}.vf-nav-menu__icon--open{transform:rotate(180deg)}.vf-table-of-contents{display:flex;flex-direction:column;gap:var(--vf-table-of-contents-gap);width:100%;min-width:0}.vf-table-of-contents__title{margin:0;font-size:var(--vf-table-of-contents-title-font-size);font-weight:400;text-transform:uppercase;letter-spacing:.04em;color:var(--vf-table-of-contents-title-color)}.vf-table-of-contents__list{display:grid;gap:var(--vf-table-of-contents-list-gap);margin:0;padding:0;list-style:none}.vf-table-of-contents__item{min-width:0;padding-left:calc((var(--vf-toc-level, 1) - 1) * var(--vf-table-of-contents-level-step))}.vf-table-of-contents__link{display:flex;align-items:center;min-width:0;padding:var(--vf-table-of-contents-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);font-size:1rem;color:var(--vf-table-of-contents-color);text-decoration:none;overflow-wrap:anywhere;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-table-of-contents__link:hover{color:var(--vf-table-of-contents-hover-color);background:var(--vf-table-of-contents-hover-background)}.vf-table-of-contents__link:focus-visible{outline:none;color:var(--vf-table-of-contents-hover-color);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-table-of-contents__link--active{color:var(--vf-table-of-contents-active-color);background:var(--vf-table-of-contents-active-background)}
1
+ :root{--vf-breakpoint-xs: 480px;--vf-breakpoint-sm: 640px;--vf-breakpoint-md: 768px;--vf-breakpoint-lg: 1024px;--vf-breakpoint-xl: 1280px;--vf-breakpoint-2xl: 1536px}:root{--vf-font-family-base: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--vf-font-family-heading: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--vf-font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--vf-font-weight-regular: 400;--vf-font-weight-medium: 500;--vf-font-weight-semibold: 600;--vf-font-weight-bold: 700;--vf-font-size-xs: .75rem;--vf-font-size-sm: .8125rem;--vf-font-size-md: .875rem;--vf-font-size-lg: .9375rem;--vf-font-size-xl: 1rem;--vf-font-size-2xl: 1.125rem;--vf-font-size-3xl: 1.25rem;--vf-line-height-tight: 1.2;--vf-line-height-normal: 1.5;--vf-line-height-relaxed: 1.65;--vf-text-body-font-size: var(--vf-font-size-xl);--vf-text-body-line-height: var(--vf-line-height-normal);--vf-text-body-font-weight: var(--vf-font-weight-regular);--vf-text-caption-font-size: var(--vf-font-size-sm);--vf-text-caption-line-height: var(--vf-line-height-normal);--vf-text-caption-font-weight: var(--vf-font-weight-medium);--vf-text-label-font-size: var(--vf-font-size-md);--vf-text-label-line-height: var(--vf-line-height-tight);--vf-text-label-font-weight: var(--vf-font-weight-medium);--vf-heading-font-size-sm: var(--vf-font-size-lg);--vf-heading-font-size-md: var(--vf-font-size-xl);--vf-heading-font-size-lg: var(--vf-font-size-2xl);--vf-heading-font-size-xl: var(--vf-font-size-3xl);--vf-heading-font-weight: var(--vf-font-weight-semibold);--vf-button-secondary-hover-background: color-mix(in srgb, var(--vf-color-surface-muted) 92%, var(--vf-color-text));--vf-button-secondary-hover-border-color: var(--vf-color-border);--vf-button-ghost-hover-background: var(--vf-color-surface-muted);--vf-button-ghost-hover-border-color: transparent;--vf-button-primary-hover-filter: brightness(.96);--vf-button-success-hover-filter: brightness(.96);--vf-button-info-hover-filter: brightness(.96);--vf-button-warn-hover-filter: brightness(.96);--vf-button-help-hover-filter: brightness(.96);--vf-button-danger-hover-filter: brightness(.96);--vf-button-contrast-hover-filter: brightness(.96);--vf-radio-control-background: color-mix(in srgb, var(--vf-color-border) 12%, var(--vf-color-surface));--vf-radio-hover-border-color: var(--vf-color-primary-border-soft);--vf-switch-track-background: color-mix(in srgb, var(--vf-color-text) 10%, var(--vf-color-surface));--vf-switch-track-hover-background: color-mix(in srgb, var(--vf-color-text) 12%, var(--vf-color-surface));--vf-switch-track-checked-background: var(--vf-color-primary);--vf-switch-track-checked-hover-background: color-mix(in srgb, var(--vf-color-primary) 92%, var(--vf-color-surface));--vf-switch-thumb-background: color-mix(in srgb, var(--vf-color-surface) 88%, var(--vf-color-surface-muted));--vf-switch-thumb-border-color: color-mix(in srgb, var(--vf-color-surface) 80%, var(--vf-color-border));--vf-switch-thumb-shadow: 0 1px 2px color-mix(in srgb, var(--vf-color-text) 18%, transparent);--vf-switch-thumb-color: color-mix(in srgb, var(--vf-color-text) 55%, transparent);--vf-switch-thumb-icon-size: .625rem;--vf-switch-thumb-checked-background: var(--vf-color-surface);--vf-switch-thumb-checked-border-color: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-switch-thumb-checked-shadow: 0 1px 1.5px color-mix(in srgb, var(--vf-color-text) 12%, transparent);--vf-prose-heading-margin: 1.5em;--vf-prose-heading-gap: .5em;--vf-prose-block-spacing: 1em;--vf-prose-list-padding-inline-start: 1.5em;--vf-prose-list-item-spacing: .375em;--vf-prose-link-hover-color: color-mix(in srgb, var(--vf-color-primary) 82%, var(--vf-color-text));--vf-prose-blockquote-padding-inline-start: 1rem;--vf-prose-blockquote-border-width: 3px;--vf-prose-inline-code-font-size: .95em;--vf-prose-inline-code-padding: .125rem .375rem;--vf-prose-code-block-padding: .75rem 1rem;--vf-prose-hr-margin: 1.5rem;--vf-color-bg: #fcfcfd;--vf-color-surface: #ffffff;--vf-color-surface-muted: #f5f7fb;--vf-color-text: #172033;--vf-color-muted: #69738a;--vf-color-border: #d8e0ef;--vf-color-primary: #0b63f6;--vf-color-primary-contrast: #ffffff;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #16a34a;--vf-color-success-contrast: #ffffff;--vf-color-info: #0ea5e9;--vf-color-info-contrast: #ffffff;--vf-color-warn: #f59e0b;--vf-color-warn-contrast: #1f1300;--vf-color-help: #8b5cf6;--vf-color-help-contrast: #ffffff;--vf-color-danger: #dc2626;--vf-color-danger-contrast: #ffffff;--vf-color-contrast: #111827;--vf-color-contrast-contrast: #ffffff;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-radius: .75rem;--vf-radius-control: calc(var(--vf-radius) - .125rem);--vf-radius-control-tight: calc(var(--vf-radius) - .25rem);--vf-radius-surface: var(--vf-radius);--vf-radius-overlay: calc(var(--vf-radius) + .125rem);--vf-control-height-sm: 1.75rem;--vf-control-height-md: 2.25rem;--vf-control-height-lg: 2.5rem;--vf-control-font-size-sm: var(--vf-font-size-md);--vf-control-font-size-md: var(--vf-font-size-lg);--vf-control-font-size-lg: var(--vf-font-size-xl);--vf-button-padding-sm: .25rem .5rem;--vf-button-padding-md: .375rem .75rem;--vf-button-padding-lg: .5rem 1rem;--vf-button-gap: .5rem;--vf-field-padding-sm: .25rem .5rem;--vf-field-padding-md: .375rem .75rem;--vf-field-padding-lg: .5rem 1rem;--vf-checkbox-size-sm: 1rem;--vf-checkbox-size-md: 1.125rem;--vf-checkbox-size-lg: 1.25rem;--vf-selection-gap: .75rem;--vf-checkbox-mark-width: .25rem;--vf-checkbox-mark-height: .5rem;--vf-checkbox-mark-stroke-width: 2px;--vf-checkbox-mark-offset-y: -.0625rem;--vf-radio-dot-size: .5rem;--vf-switch-width-sm: 2rem;--vf-switch-width-md: 2.25rem;--vf-switch-width-lg: 2.5rem;--vf-switch-height-sm: 1.125rem;--vf-switch-height-md: 1.25rem;--vf-switch-height-lg: 1.375rem;--vf-switch-thumb-size-sm: .75rem;--vf-switch-thumb-size-md: .875rem;--vf-switch-thumb-size-lg: 1rem;--vf-switch-thumb-inset: .125rem;--vf-textarea-min-height-sm: 4.5rem;--vf-textarea-min-height-md: 6rem;--vf-textarea-min-height-lg: 7rem;--vf-overlay-padding: 1rem;--vf-overlay-gap: .75rem;--vf-overlay-viewport-padding: 1rem;--vf-menu-padding: .5rem;--vf-menu-gap: .25rem;--vf-menu-min-width: 12rem;--vf-surface-padding: 1rem;--vf-surface-gap: .75rem;--vf-surface-padding-compact: .75rem;--vf-surface-gap-compact: .5rem;--vf-section-padding: .75rem 1rem;--vf-section-gap: .75rem;--vf-tabs-gap: .75rem;--vf-tabs-list-gap: .25rem;--vf-tabs-list-padding: .25rem;--vf-tabs-tab-padding-inline: .75rem;--vf-tabs-panel-padding-top: .75rem;--vf-nav-menu-list-gap: .25rem;--vf-nav-menu-nested-gap: .25rem;--vf-nav-menu-collapse-offset-top: .25rem;--vf-nav-menu-collapse-inset-level-0-margin: .5rem;--vf-nav-menu-collapse-inset-level-0-padding: .5rem;--vf-nav-menu-collapse-inset-simple-level-0-margin: .5rem;--vf-nav-menu-collapse-inset-simple-level-0-padding: .5rem;--vf-nav-menu-collapse-inset-deep-margin: .5rem;--vf-nav-menu-collapse-inset-deep-padding: .5rem;--vf-nav-menu-collapse-inset-simple-deep-margin: .5rem;--vf-nav-menu-collapse-inset-simple-deep-padding: .5rem;--vf-nav-menu-node-group-spacing: .25rem;--vf-nav-menu-group-padding: .375rem .75rem;--vf-nav-menu-group-font-size: var(--vf-text-label-font-size);--vf-nav-menu-item-padding: .375rem .75rem;--vf-nav-menu-item-gap: .5rem;--vf-nav-menu-leading-icon-size: 1rem;--vf-nav-menu-leading-icon-column-size: 1.25rem;--vf-table-of-contents-gap: .25rem;--vf-table-of-contents-list-gap: var(--vf-nav-menu-list-gap);--vf-table-of-contents-title-font-size: var(--vf-text-caption-font-size);--vf-table-of-contents-title-color: var(--vf-color-muted);--vf-table-of-contents-item-padding: var(--vf-nav-menu-item-padding);--vf-table-of-contents-level-step: .5rem;--vf-table-of-contents-color: var(--vf-color-text);--vf-table-of-contents-hover-color: var(--vf-color-primary);--vf-table-of-contents-hover-background: color-mix(in srgb, var(--vf-color-primary) 10%, var(--vf-color-surface));--vf-table-of-contents-active-color: var(--vf-color-primary);--vf-table-of-contents-active-background: color-mix(in srgb, var(--vf-color-primary) 14%, var(--vf-color-surface));--vf-badge-height: 1.5rem;--vf-badge-padding: .25rem .5rem;--vf-badge-gap: .25rem;--vf-badge-radius: 999px;--vf-badge-font-size: var(--vf-text-caption-font-size);--vf-badge-line-height: var(--vf-text-caption-line-height);--vf-tag-height: 1.75rem;--vf-tag-padding: .25rem .5rem;--vf-tag-font-size: var(--vf-text-caption-font-size);--vf-tag-line-height: var(--vf-text-caption-line-height);--vf-tooltip-padding: .5rem .75rem;--vf-tooltip-max-width: 16rem;--vf-tooltip-font-size: var(--vf-text-caption-font-size);--vf-tooltip-line-height: var(--vf-text-caption-line-height);--vf-dialog-width-sm: 28rem;--vf-dialog-width-md: 36rem;--vf-dialog-width-lg: 48rem;--vf-dialog-max-height: min(85vh, 48rem);--vf-drawer-size-sm: 20rem;--vf-drawer-size-md: 26rem;--vf-drawer-size-lg: 32rem;--vf-drawer-offset-top: 0px;--vf-drawer-body-padding: var(--vf-overlay-padding);--vf-dialog-title-font-size: var(--vf-heading-font-size-lg);--vf-dialog-header-gap: .75rem;--vf-dialog-actions-gap: .5rem;--vf-popover-width: min(100vw - 2rem, 22rem);--vf-floating-arrow-size: .625rem;--vf-overlay-backdrop: rgba(15, 23, 42, .56);--vf-alert-primary-soft: color-mix(in srgb, var(--vf-color-primary) 8%, var(--vf-color-surface));--vf-alert-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-alert-content-gap: .25rem;--vf-alert-title-font-size: var(--vf-heading-font-size-sm);--vf-card-title-font-size: var(--vf-heading-font-size-md);--vf-panel-title-font-size: var(--vf-heading-font-size-sm);--vf-text-line-height: var(--vf-text-body-line-height);--vf-heading-line-height: var(--vf-line-height-tight);--vf-tabs-line-height: 1.2;--vf-motion-duration-fast: .22s;--vf-motion-duration-normal: .32s;--vf-motion-ease-standard: cubic-bezier(.16, 1, .3, 1);--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-spacing: 1rem;--vf-shadow: none}:root{color-scheme:light;background-color:var(--vf-color-bg);color:var(--vf-color-text)}:root[data-vf-theme=dark]{color-scheme:dark;--vf-color-bg: #0f172a;--vf-color-surface: #162033;--vf-color-surface-muted: #1b2840;--vf-color-text: #eff4ff;--vf-color-muted: #9fb0cf;--vf-color-border: #2d405f;--vf-color-primary: #6ea8fe;--vf-color-primary-contrast: #081120;--vf-color-primary-soft: color-mix(in srgb, var(--vf-color-primary) 12%, var(--vf-color-surface));--vf-color-primary-border-soft: color-mix(in srgb, var(--vf-color-primary) 22%, var(--vf-color-border));--vf-color-focus-ring: color-mix(in srgb, var(--vf-color-primary) 32%, var(--vf-color-surface));--vf-color-success: #4ade80;--vf-color-success-contrast: #081120;--vf-color-info: #38bdf8;--vf-color-info-contrast: #081120;--vf-color-warn: #fbbf24;--vf-color-warn-contrast: #1f1300;--vf-color-help: #a78bfa;--vf-color-help-contrast: #081120;--vf-color-danger: #f87171;--vf-color-danger-contrast: #081120;--vf-color-contrast: #f3f4f6;--vf-color-contrast-contrast: #111827;--vf-color-success-soft: color-mix(in srgb, var(--vf-color-success) 12%, var(--vf-color-surface));--vf-color-info-soft: color-mix(in srgb, var(--vf-color-info) 12%, var(--vf-color-surface));--vf-color-warn-soft: color-mix(in srgb, var(--vf-color-warn) 12%, var(--vf-color-surface));--vf-color-help-soft: color-mix(in srgb, var(--vf-color-help) 12%, var(--vf-color-surface));--vf-color-danger-soft: color-mix(in srgb, var(--vf-color-danger) 12%, var(--vf-color-surface));--vf-color-contrast-soft: color-mix(in srgb, var(--vf-color-contrast) 10%, var(--vf-color-surface));--vf-color-success-border-soft: color-mix(in srgb, var(--vf-color-success) 24%, var(--vf-color-border));--vf-color-info-border-soft: color-mix(in srgb, var(--vf-color-info) 24%, var(--vf-color-border));--vf-color-warn-border-soft: color-mix(in srgb, var(--vf-color-warn) 24%, var(--vf-color-border));--vf-color-help-border-soft: color-mix(in srgb, var(--vf-color-help) 24%, var(--vf-color-border));--vf-color-danger-border-soft: color-mix(in srgb, var(--vf-color-danger) 24%, var(--vf-color-border));--vf-color-contrast-border-soft: color-mix(in srgb, var(--vf-color-contrast) 24%, var(--vf-color-border));--vf-focus-ring-width: 3px;--vf-z-overlay: 1000;--vf-z-drawer: 1000;--vf-z-dropdown: 900;--vf-z-popover: 925;--vf-z-tooltip: 950;--vf-shadow: none}:root.vf-theme-transitioning,:root.vf-theme-transitioning body,:root.vf-theme-transitioning #app,:root.vf-theme-transitioning [class^=vf-],:root.vf-theme-transitioning [class*=" vf-"],:root.vf-theme-transitioning .demo-page,:root.vf-theme-transitioning .demo-container,:root.vf-theme-transitioning .demo-header,:root.vf-theme-transitioning .demo-block,:root.vf-theme-transitioning .demo-example,:root.vf-theme-transitioning .demo-item{transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),fill var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),stroke var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-button,.vf-link,.vf-input,.vf-card,.vf-textarea,.vf-panel,.vf-badge,.vf-divider,.vf-dialog,.vf-dialog__overlay,.vf-dialog__content,.vf-drawer,.vf-drawer__overlay,.vf-drawer__content,.vf-dropdown,.vf-dropdown__trigger,.vf-dropdown__menu,.vf-accordion,.vf-accordion__trigger,.vf-nav-menu,.vf-nav-menu__item,.vf-tooltip,.vf-tooltip__trigger,.vf-tooltip__content,.vf-tabs,.vf-tabs__list,.vf-tabs__tab,.vf-tabs__panel{box-sizing:border-box;font-family:var(--vf-font-family-base);font-size:inherit;font-weight:inherit;line-height:inherit}.vf-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--vf-button-gap);min-height:var(--vf-control-height-md);padding:var(--vf-button-padding-md);border:1px solid transparent;border-radius:var(--vf-radius-control);background:var(--vf-color-primary);color:var(--vf-color-primary-contrast);font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height);cursor:pointer;text-decoration:none;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-control-height-md);height:var(--vf-control-height-md);padding:0;border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;color:var(--vf-color-text);cursor:pointer;transition:background-color .18s ease,border-color .18s ease,color .18s ease}.vf-button:focus-visible,.vf-icon-button:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-button:disabled,.vf-icon-button:disabled{opacity:.65;cursor:not-allowed}.vf-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--primary,.vf-icon-button--primary{background:var(--vf-color-primary);color:var(--vf-color-primary-contrast)}.vf-button--success,.vf-icon-button--success{background:var(--vf-color-success);color:var(--vf-color-success-contrast)}.vf-button--info,.vf-icon-button--info{background:var(--vf-color-info);color:var(--vf-color-info-contrast)}.vf-button--warn,.vf-icon-button--warn{background:var(--vf-color-warn);color:var(--vf-color-warn-contrast)}.vf-button--help,.vf-icon-button--help{background:var(--vf-color-help);color:var(--vf-color-help-contrast)}.vf-button--danger,.vf-icon-button--danger{background:var(--vf-color-danger);color:var(--vf-color-danger-contrast)}.vf-button--contrast,.vf-icon-button--contrast{background:var(--vf-color-contrast);color:var(--vf-color-contrast-contrast)}.vf-icon-button--secondary{background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-button--ghost,.vf-icon-button--ghost{background:transparent;color:var(--vf-color-text)}.vf-button--secondary:hover:not(:disabled),.vf-icon-button--secondary:hover:not(:disabled){background:var(--vf-button-secondary-hover-background);border-color:var(--vf-button-secondary-hover-border-color)}.vf-button--ghost:hover:not(:disabled),.vf-icon-button--ghost:hover:not(:disabled){background:var(--vf-button-ghost-hover-background);border-color:var(--vf-button-ghost-hover-border-color)}.vf-button--primary:hover:not(:disabled),.vf-icon-button--primary:hover:not(:disabled){filter:var(--vf-button-primary-hover-filter)}.vf-button--success:hover:not(:disabled),.vf-icon-button--success:hover:not(:disabled){filter:var(--vf-button-success-hover-filter)}.vf-button--info:hover:not(:disabled),.vf-icon-button--info:hover:not(:disabled){filter:var(--vf-button-info-hover-filter)}.vf-button--warn:hover:not(:disabled),.vf-icon-button--warn:hover:not(:disabled){filter:var(--vf-button-warn-hover-filter)}.vf-button--help:hover:not(:disabled),.vf-icon-button--help:hover:not(:disabled){filter:var(--vf-button-help-hover-filter)}.vf-button--danger:hover:not(:disabled),.vf-icon-button--danger:hover:not(:disabled){filter:var(--vf-button-danger-hover-filter)}.vf-button--contrast:hover:not(:disabled),.vf-icon-button--contrast:hover:not(:disabled){filter:var(--vf-button-contrast-hover-filter)}.vf-button--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-button-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-icon-button--sm{width:var(--vf-control-height-sm);height:var(--vf-control-height-sm)}.vf-button--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-button-padding-lg);font-size:var(--vf-control-font-size-lg)}.vf-icon-button--lg{width:var(--vf-control-height-lg);height:var(--vf-control-height-lg)}.vf-button--block{width:100%}.vf-link{display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start;border:1px solid transparent;color:var(--vf-color-primary);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height);text-decoration:none;text-underline-offset:.2em;transition:color .18s ease}.vf-link:hover{color:var(--vf-color-primary)}.vf-link:focus-visible{outline:none;border-color:var(--vf-color-primary);border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-link--muted{color:var(--vf-color-muted)}.vf-link--underline{text-decoration:underline}.vf-link--underline:focus-visible{text-decoration:none}.vf-input,.vf-textarea{width:100%}.vf-checkbox,.vf-switch,.vf-radio{position:relative;display:inline-flex;align-items:center;gap:var(--vf-selection-gap);width:fit-content;min-width:0;color:var(--vf-color-text);cursor:pointer}.vf-input{min-height:var(--vf-control-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height);transition:border-color .18s ease}.vf-input::placeholder{color:var(--vf-color-muted)}.vf-input:hover:not(:disabled):not(.vf-input--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:focus,.vf-input:focus-visible{border-color:var(--vf-color-primary)}.vf-input:focus-visible,.vf-textarea:focus-visible{outline:none;border-radius:var(--vf-radius-control);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-input--sm{min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-input--lg{min-height:var(--vf-control-height-lg);padding:var(--vf-field-padding-lg)}.vf-input--invalid{border-color:var(--vf-color-danger)}.vf-input--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea{min-height:var(--vf-textarea-min-height-md);padding:var(--vf-field-padding-md);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height);resize:vertical;transition:border-color .18s ease}.vf-textarea::placeholder{color:var(--vf-color-muted)}.vf-textarea:hover:not(:disabled):not(.vf-textarea--invalid):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-textarea:focus,.vf-textarea:focus-visible{border-color:var(--vf-color-primary)}.vf-textarea--sm{min-height:var(--vf-textarea-min-height-sm);padding:var(--vf-field-padding-sm);font-size:var(--vf-control-font-size-sm)}.vf-textarea--lg{min-height:var(--vf-textarea-min-height-lg);padding:var(--vf-field-padding-lg)}.vf-textarea--invalid{border-color:var(--vf-color-danger)}.vf-textarea--invalid:hover:not(:disabled):not(:focus):not(:focus-visible){border-color:var(--vf-color-primary-border-soft)}.vf-input:disabled,.vf-textarea:disabled{opacity:.65;cursor:not-allowed}.vf-checkbox--disabled,.vf-switch--disabled,.vf-radio--disabled{opacity:.65;cursor:not-allowed}.vf-checkbox__input,.vf-switch__input,.vf-radio__input{position:absolute;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;opacity:0}.vf-checkbox__control,.vf-switch__control,.vf-radio__control{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--vf-color-border);background:var(--vf-color-surface);transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-checkbox__content,.vf-switch__content,.vf-radio__content{min-width:0;color:currentColor;font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height)}.vf-checkbox__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:calc(var(--vf-radius-control-tight) - .0625rem)}.vf-checkbox__mark{width:var(--vf-checkbox-mark-width);height:var(--vf-checkbox-mark-height);border-right:var(--vf-checkbox-mark-stroke-width) solid transparent;border-bottom:var(--vf-checkbox-mark-stroke-width) solid transparent;transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(.8);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-checkbox__input:checked+.vf-checkbox__control{border-color:var(--vf-color-primary);background:var(--vf-color-primary)}.vf-checkbox__input:checked+.vf-checkbox__control .vf-checkbox__mark{border-right-color:var(--vf-color-primary-contrast);border-bottom-color:var(--vf-color-primary-contrast);transform:translateY(var(--vf-checkbox-mark-offset-y)) rotate(45deg) scale(1);opacity:1}.vf-checkbox:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox__input:focus-visible+.vf-checkbox__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-checkbox--invalid .vf-checkbox__control{border-color:var(--vf-color-danger)}.vf-checkbox--invalid:hover:not(.vf-checkbox--disabled) .vf-checkbox__input:not(:checked)+.vf-checkbox__control{border-color:var(--vf-color-primary-border-soft)}.vf-checkbox--sm .vf-checkbox__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-checkbox--sm .vf-checkbox__content{font-size:var(--vf-control-font-size-sm)}.vf-checkbox--lg .vf-checkbox__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-radio__control{width:var(--vf-checkbox-size-md);height:var(--vf-checkbox-size-md);border-radius:999px;background:var(--vf-radio-control-background)}.vf-radio__dot{width:var(--vf-radio-dot-size);height:var(--vf-radio-dot-size);border-radius:999px;background:var(--vf-color-primary);transform:scale(.35);opacity:0;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-radio__input:checked+.vf-radio__control{border-color:var(--vf-color-primary)}.vf-radio__input:checked+.vf-radio__control .vf-radio__dot{transform:scale(1);opacity:1}.vf-radio:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-radio-hover-border-color)}.vf-radio__input:focus-visible+.vf-radio__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-radio--invalid .vf-radio__control{border-color:var(--vf-color-danger)}.vf-radio--invalid:hover:not(.vf-radio--disabled) .vf-radio__input:not(:checked)+.vf-radio__control{border-color:var(--vf-radio-hover-border-color)}.vf-radio--sm .vf-radio__control{width:var(--vf-checkbox-size-sm);height:var(--vf-checkbox-size-sm)}.vf-radio--sm .vf-radio__content{font-size:var(--vf-control-font-size-sm)}.vf-radio--lg .vf-radio__control{width:var(--vf-checkbox-size-lg);height:var(--vf-checkbox-size-lg)}.vf-switch__control{width:var(--vf-switch-width-md);height:var(--vf-switch-height-md);border-radius:999px;background:var(--vf-switch-track-background)}.vf-switch__thumb{position:absolute;left:var(--vf-switch-thumb-inset);display:inline-flex;align-items:center;justify-content:center;width:var(--vf-switch-thumb-size-md);height:var(--vf-switch-thumb-size-md);border-radius:999px;border:1px solid var(--vf-switch-thumb-border-color);background:var(--vf-switch-thumb-background);box-shadow:var(--vf-switch-thumb-shadow);color:var(--vf-switch-thumb-color);line-height:1;transform:translate(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-switch__thumb>.vif-icon{width:var(--vf-switch-thumb-icon-size);height:var(--vf-switch-thumb-icon-size)}.vf-switch__input:checked+.vf-switch__control{border-color:var(--vf-color-primary);background:var(--vf-switch-track-checked-background)}.vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-md) - var(--vf-switch-thumb-size-md) - (var(--vf-switch-thumb-inset) * 2)));border-color:var(--vf-switch-thumb-checked-border-color);background:var(--vf-switch-thumb-checked-background);box-shadow:var(--vf-switch-thumb-checked-shadow)}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__control{background:var(--vf-switch-track-hover-background)}.vf-switch:hover:not(.vf-switch--disabled) .vf-switch__input:checked+.vf-switch__control{background:var(--vf-switch-track-checked-hover-background)}.vf-switch__input:focus-visible+.vf-switch__control{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-switch--sm .vf-switch__control{width:var(--vf-switch-width-sm);height:var(--vf-switch-height-sm)}.vf-switch--sm .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-sm);height:var(--vf-switch-thumb-size-sm)}.vf-switch--sm .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-sm) - var(--vf-switch-thumb-size-sm) - (var(--vf-switch-thumb-inset) * 2)))}.vf-switch--sm .vf-switch__content{font-size:var(--vf-control-font-size-sm)}.vf-switch--lg .vf-switch__control{width:var(--vf-switch-width-lg);height:var(--vf-switch-height-lg)}.vf-switch--lg .vf-switch__thumb{left:var(--vf-switch-thumb-inset);width:var(--vf-switch-thumb-size-lg);height:var(--vf-switch-thumb-size-lg)}.vf-switch--lg .vf-switch__input:checked+.vf-switch__control .vf-switch__thumb{transform:translate(calc(var(--vf-switch-width-lg) - var(--vf-switch-thumb-size-lg) - (var(--vf-switch-thumb-inset) * 2)))}.vf-card{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-body-line-height)}.vf-card--compact{padding:var(--vf-surface-padding-compact);gap:var(--vf-surface-gap-compact)}.vf-card__title{margin:0;font-size:var(--vf-card-title-font-size);font-family:var(--vf-font-family-heading);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight)}.vf-card__body{color:var(--vf-color-muted)}.vf-panel{display:flex;flex-direction:column;gap:var(--vf-surface-gap);padding:var(--vf-surface-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-body-line-height)}.vf-panel--subtle{background:transparent;box-shadow:none}.vf-panel__title{margin:0;font-size:var(--vf-panel-title-font-size);font-family:var(--vf-font-family-heading);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight)}.vf-badge{display:inline-flex;align-items:center;gap:var(--vf-badge-gap);min-height:var(--vf-badge-height);padding:var(--vf-badge-padding);border-radius:var(--vf-badge-radius);font-size:var(--vf-badge-font-size);font-weight:var(--vf-text-caption-font-weight);line-height:var(--vf-badge-line-height);white-space:nowrap;background:var(--vf-color-surface-muted);border:1px solid var(--vf-color-border);color:var(--vf-color-text)}.vf-badge--primary{background:var(--vf-color-primary-soft);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-badge--success{background:var(--vf-color-success-soft);border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-badge--info{background:var(--vf-color-info-soft);border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-badge--warn{background:var(--vf-color-warn-soft);border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-badge--help{background:var(--vf-color-help-soft);border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-badge--danger{background:var(--vf-color-danger-soft);border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-badge--contrast{background:var(--vf-color-contrast-soft);border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-tag{display:inline-flex;align-items:center;min-height:var(--vf-tag-height);padding:var(--vf-tag-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-tag-font-size);font-weight:var(--vf-text-caption-font-weight);line-height:var(--vf-tag-line-height);white-space:nowrap}.vf-tag--primary{border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-tag--success{border-color:var(--vf-color-success);color:var(--vf-color-success)}.vf-tag--info{border-color:var(--vf-color-info);color:var(--vf-color-info)}.vf-tag--warn{border-color:var(--vf-color-warn);color:var(--vf-color-warn)}.vf-tag--help{border-color:var(--vf-color-help);color:var(--vf-color-help)}.vf-tag--danger{border-color:var(--vf-color-danger);color:var(--vf-color-danger)}.vf-tag--contrast{border-color:var(--vf-color-contrast);color:var(--vf-color-contrast)}.vf-alert{display:grid;grid-template-columns:auto 1fr;gap:var(--vf-section-gap);padding:var(--vf-section-padding);border:1px solid var(--vf-alert-primary-border-soft);border-radius:var(--vf-radius-surface);background:var(--vf-alert-primary-soft);color:var(--vf-color-text);line-height:var(--vf-text-body-line-height)}.vf-alert--success{border-color:var(--vf-color-success-border-soft);background:var(--vf-color-success-soft)}.vf-alert--info{border-color:var(--vf-color-info-border-soft);background:var(--vf-color-info-soft)}.vf-alert--warn{border-color:var(--vf-color-warn-border-soft);background:var(--vf-color-warn-soft)}.vf-alert--help{border-color:var(--vf-color-help-border-soft);background:var(--vf-color-help-soft)}.vf-alert--danger{border-color:var(--vf-color-danger-border-soft);background:var(--vf-color-danger-soft)}.vf-alert--contrast{border-color:var(--vf-color-contrast-border-soft);background:var(--vf-color-contrast-soft)}.vf-alert__icon{display:inline-flex;align-items:center;justify-content:center;align-self:start;color:var(--vf-color-primary)}.vf-alert--success .vf-alert__icon{color:var(--vf-color-success)}.vf-alert--info .vf-alert__icon{color:var(--vf-color-info)}.vf-alert--warn .vf-alert__icon{color:var(--vf-color-warn)}.vf-alert--help .vf-alert__icon{color:var(--vf-color-help)}.vf-alert--danger .vf-alert__icon{color:var(--vf-color-danger)}.vf-alert--contrast .vf-alert__icon{color:var(--vf-color-contrast)}.vf-alert__content{display:grid;gap:var(--vf-alert-content-gap)}.vf-alert__title{margin:0;font-size:var(--vf-alert-title-font-size);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight)}.vf-alert__body{color:var(--vf-color-muted);line-height:var(--vf-text-body-line-height)}.vf-divider{margin:0;border:0;background:var(--vf-color-border);flex-shrink:0}.vf-divider--horizontal{width:100%;height:1px}.vf-divider--vertical{width:1px;align-self:stretch}.vf-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vf-z-overlay);display:flex;align-items:center;justify-content:center;padding:var(--vf-overlay-viewport-padding)}.vf-drawer{position:fixed;inset-inline:0;inset-block-end:0;inset-block-start:var(--vf-drawer-offset-top);z-index:var(--vf-z-drawer);display:flex;--vf-drawer-offset-x: 0;--vf-drawer-offset-y: 0}.vf-drawer--left{justify-content:flex-start;--vf-drawer-offset-x: -100%}.vf-drawer--right{justify-content:flex-end;--vf-drawer-offset-x: 100%}.vf-drawer--top{align-items:flex-start;--vf-drawer-offset-y: -100%}.vf-drawer--bottom{align-items:flex-end;--vf-drawer-offset-y: 100%}.vf-dialog__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vf-overlay-backdrop);opacity:1;transition:opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);width:min(100%,var(--vf-dialog-width-md));max-height:var(--vf-dialog-max-height);overflow:auto;padding:var(--vf-overlay-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-body-line-height);opacity:1;transform:translateZ(0);transition:transform var(--vf-motion-duration-fast) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-fast) var(--vf-motion-ease-standard)}.vf-drawer__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--vf-overlay-gap);overflow:hidden;padding:0;border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface);color:var(--vf-color-text);line-height:var(--vf-text-body-line-height);transform:translateZ(0);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-dialog-transition-enter-active,.vf-dialog-transition-leave-active{transition:none}.vf-dialog-transition-enter-from .vf-dialog__overlay,.vf-dialog-transition-leave-to .vf-dialog__overlay{opacity:0}.vf-dialog-transition-enter-from .vf-dialog__content,.vf-dialog-transition-leave-to .vf-dialog__content{opacity:0;transform:translate3d(0,.75rem,0)}.vf-drawer-transition-enter-active,.vf-drawer-transition-leave-active{transition:none}.vf-drawer-transition-enter-from .vf-drawer__overlay,.vf-drawer-transition-leave-to .vf-drawer__overlay{opacity:0}.vf-drawer-transition-enter-from .vf-drawer__content,.vf-drawer-transition-leave-to .vf-drawer__content{transform:translate3d(var(--vf-drawer-offset-x),var(--vf-drawer-offset-y),0)}.vf-dialog__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-drawer__content:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dialog__content--sm{width:min(100%,var(--vf-dialog-width-sm))}.vf-dialog__content--lg{width:min(100%,var(--vf-dialog-width-lg))}.vf-drawer__content--left,.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-md));height:100%}.vf-drawer__content--left{border-left:none;border-top:none;border-bottom:none;border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0)}.vf-drawer__content--right{border-right:none;border-top:none;border-bottom:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-top-right-radius:var(--vf-drawer-radius-top-right, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer__content--top,.vf-drawer__content--bottom{width:100dvw;min-height:min(100%,var(--vf-drawer-size-md));max-height:100%}.vf-drawer__content--top{border-top:none;border-left:none;border-right:none;border-bottom-left-radius:var( --vf-drawer-radius-bottom-left, var(--vf-radius-overlay) );border-bottom-right-radius:var( --vf-drawer-radius-bottom-right, var(--vf-radius-overlay) );border-top-left-radius:var(--vf-drawer-radius-top-left, 0);border-top-right-radius:var(--vf-drawer-radius-top-right, 0)}.vf-drawer__content--bottom{border-bottom:none;border-left:none;border-right:none;border-top-left-radius:var( --vf-drawer-radius-top-left, var(--vf-radius-overlay) );border-top-right-radius:var( --vf-drawer-radius-top-right, var(--vf-radius-overlay) );border-bottom-left-radius:var(--vf-drawer-radius-bottom-left, 0);border-bottom-right-radius:var(--vf-drawer-radius-bottom-right, 0)}.vf-drawer--offset-top.vf-drawer--left .vf-drawer__content--left,.vf-drawer--offset-top.vf-drawer--right .vf-drawer__content--right,.vf-drawer--offset-top.vf-drawer--top .vf-drawer__content--top{border-top:1px solid var(--vf-color-border)}.vf-drawer__content--sm.vf-drawer__content--left,.vf-drawer__content--sm.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--left,.vf-drawer__content--lg.vf-drawer__content--right{width:min(100dvw,var(--vf-drawer-size-lg))}.vf-drawer__content--sm.vf-drawer__content--top,.vf-drawer__content--sm.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-sm))}.vf-drawer__content--lg.vf-drawer__content--top,.vf-drawer__content--lg.vf-drawer__content--bottom{min-height:min(100dvh,var(--vf-drawer-size-lg))}.vf-dialog__header,.vf-dialog__footer,.vf-drawer__header,.vf-drawer__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-dialog-header-gap)}.vf-dialog__actions,.vf-drawer__actions{display:inline-flex;align-items:center;gap:var(--vf-dialog-actions-gap)}.vf-dialog__actions .vf-icon-button,.vf-drawer__actions .vf-icon-button{color:var(--vf-color-muted)}.vf-dialog__actions .vf-icon-button .vif-icon,.vf-drawer__actions .vf-icon-button .vif-icon{width:1rem;height:1rem}.vf-dialog__actions .vf-icon-button:hover:not(:disabled),.vf-drawer__actions .vf-icon-button:hover:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-border);color:var(--vf-color-text)}.vf-dialog__actions .vf-icon-button:active:not(:disabled),.vf-drawer__actions .vf-icon-button:active:not(:disabled){background:var(--vf-color-surface-muted);border-color:var(--vf-color-primary);color:var(--vf-color-primary)}.vf-dialog__title,.vf-drawer__title{margin:0;font-size:var(--vf-dialog-title-font-size);font-family:var(--vf-font-family-heading);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight)}.vf-dialog__description{margin:0;color:var(--vf-color-muted);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-dialog__body,.vf-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-drawer__header,.vf-drawer__footer{padding:var(--vf-overlay-padding)}.vf-drawer__body{padding:var(--vf-drawer-body-padding)}.vf-dropdown,.vf-popover{position:relative;display:inline-flex;flex-direction:column}.vf-dropdown__trigger,.vf-popover__trigger{width:fit-content;border:1px solid transparent;border-radius:var(--vf-radius-control)}.vf-dropdown__trigger:focus-visible,.vf-popover__trigger:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-dropdown__menu{position:fixed;top:0;left:0;z-index:var(--vf-z-dropdown);display:flex;flex-direction:column;gap:var(--vf-menu-gap);min-width:var(--vf-menu-min-width);padding:var(--vf-menu-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control);background:var(--vf-color-surface);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-dropdown__arrow{position:absolute;z-index:0;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-dropdown__arrow--bottom{margin-top:-1px}.vf-dropdown__arrow--top{margin-top:1px}.vf-popover__content{position:fixed;left:0;top:0;z-index:var(--vf-z-popover);width:var(--vf-popover-width);padding:var(--vf-section-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-popover__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-surface);border-left:1px solid var(--vf-color-border);border-top:1px solid var(--vf-color-border);transform:rotate(45deg);pointer-events:none}.vf-popover__arrow--bottom{margin-top:-1px}.vf-popover__arrow--top{margin-top:1px}.vf-dropdown__item{position:relative;z-index:1;display:flex;align-items:center;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-field-padding-sm);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-text);font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height);text-align:left;cursor:pointer}.vf-dropdown__item:hover{background:transparent;color:var(--vf-color-primary)}.vf-dropdown__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring);background:transparent;color:var(--vf-color-primary)}.vf-tooltip{position:relative;display:inline-flex;width:fit-content;max-width:100%;align-self:flex-start}.vf-tooltip__trigger{display:inline-flex;width:fit-content;max-width:100%}.vf-tooltip__content{position:fixed;left:0;top:0;z-index:var(--vf-z-tooltip);max-width:var(--vf-tooltip-max-width);padding:var(--vf-tooltip-padding);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-text);color:var(--vf-color-bg);font-size:var(--vf-tooltip-font-size);line-height:var(--vf-tooltip-line-height);opacity:1;transform:translateZ(0) scale(1);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),opacity var(--vf-motion-duration-normal) var(--vf-motion-ease-standard);will-change:left,top}.vf-floating-transition-enter-from.vf-dropdown__menu,.vf-floating-transition-leave-to.vf-dropdown__menu,.vf-floating-transition-enter-from.vf-popover__content,.vf-floating-transition-leave-to.vf-popover__content,.vf-floating-transition-enter-from.vf-tooltip__content,.vf-floating-transition-leave-to.vf-tooltip__content{opacity:0;transform:translate3d(0,.25rem,0) scale(.97)}.vf-tooltip__arrow{position:absolute;width:var(--vf-floating-arrow-size);height:var(--vf-floating-arrow-size);background:var(--vf-color-text);transform:rotate(45deg);pointer-events:none}.vf-accordion{border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface);color:var(--vf-color-text)}.vf-accordion__trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--vf-spacing);position:relative;z-index:1;width:100%;padding:var(--vf-section-padding);border:1px solid transparent;border-radius:inherit;background:transparent;color:inherit;font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height);cursor:pointer;text-align:left}.vf-accordion__trigger[aria-expanded=true]{border-bottom-left-radius:0;border-bottom-right-radius:0}.vf-accordion__trigger:hover:not(:disabled){background:transparent;color:var(--vf-color-primary)}.vf-accordion__trigger:focus-visible{z-index:2;outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-accordion__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-accordion__icon .vif-icon{width:1rem;height:1rem}.vf-accordion__icon--open{transform:rotate(180deg)}.vf-accordion__content{overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;background:var(--vf-color-surface)}.vf-accordion__content-inner{position:relative;z-index:1;border-top:1px solid var(--vf-color-border);padding:var(--vf-section-padding);color:var(--vf-color-muted);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-tabs{display:flex;flex-direction:column;gap:var(--vf-tabs-gap)}.vf-tabs__list{display:inline-flex;align-items:center;gap:var(--vf-tabs-list-gap);width:fit-content;padding:var(--vf-tabs-list-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-overlay);background:var(--vf-color-surface-muted)}.vf-tabs__tab{display:inline-flex;align-items:center;justify-content:center;min-height:var(--vf-control-height-md);padding:0 var(--vf-tabs-tab-padding-inline);border:1px solid transparent;border-radius:var(--vf-radius-control-tight);background:transparent;color:var(--vf-color-muted);font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height);cursor:pointer;white-space:nowrap;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-tabs__tab:hover:not(:disabled){color:var(--vf-color-primary);background:transparent}.vf-tabs__tab[aria-selected=true]{background:var(--vf-color-surface);color:var(--vf-color-primary);border:1px solid var(--vf-color-primary)}.vf-tabs__tab:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-tabs__tab:disabled{cursor:not-allowed;opacity:.5}.vf-tabs__panel{border:1px solid transparent;border-radius:var(--vf-radius-control);padding:var(--vf-tabs-panel-padding-top) 0 0;color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-tabs__panel:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu{display:flex;flex-direction:column;width:100%;min-width:0}.vf-nav-menu__list{display:grid;gap:var(--vf-nav-menu-list-gap);margin:0;padding:0;list-style:none}.vf-nav-menu__list--nested{margin-top:0;gap:var(--vf-nav-menu-nested-gap);padding-top:0}.vf-nav-menu__collapse{overflow:hidden;margin-top:var(--vf-nav-menu-collapse-offset-top)}.vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-level-0-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse--level-0{margin-left:var(--vf-nav-menu-collapse-inset-simple-level-0-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-level-0-padding)}.vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-deep-padding)}.vf-nav-menu--simple .vf-nav-menu__collapse:not(.vf-nav-menu__collapse--level-0){margin-left:var(--vf-nav-menu-collapse-inset-simple-deep-margin);padding-left:var(--vf-nav-menu-collapse-inset-simple-deep-padding)}.vf-nav-menu__node{display:block}.vf-nav-menu__collapse>.vf-nav-menu__list--nested>.vf-nav-menu__node:first-child>.vf-nav-menu__group{padding-top:0}.vf-nav-menu__group{display:flex;align-items:center;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-group-padding);cursor:default}.vf-nav-menu__group-label{font-size:var(--vf-nav-menu-group-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height);letter-spacing:0;color:var(--vf-color-text)}.vf-nav-menu__item-content{display:inline-flex;align-items:center;gap:var(--vf-nav-menu-item-gap);min-width:0}.vf-nav-menu__leading-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--vf-nav-menu-leading-icon-column-size);min-width:var(--vf-nav-menu-leading-icon-column-size);color:currentColor}.vf-nav-menu__leading-icon .vif-icon{width:var(--vf-nav-menu-leading-icon-size);height:var(--vf-nav-menu-leading-icon-size)}.vf-nav-menu__item{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--vf-control-height-sm);padding:var(--vf-nav-menu-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);background:transparent;font-size:var(--vf-text-body-font-size);line-height:var(--vf-text-body-line-height);color:var(--vf-color-text);text-align:left;text-decoration:none;cursor:pointer;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),border-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),box-shadow var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__item:hover:not(:disabled):not(.vf-nav-menu__item--active){color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 12%,var(--vf-color-surface))}.vf-nav-menu__item:focus-visible{outline:none;border-color:var(--vf-color-primary);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-nav-menu__item--active{color:var(--vf-color-primary);background:color-mix(in srgb,var(--vf-color-primary) 16%,var(--vf-color-surface))}.vf-nav-menu__item--disabled{cursor:not-allowed;opacity:.5}.vf-nav-menu__item--branch{font-weight:var(--vf-text-label-font-weight);color:var(--vf-color-text)}.vf-nav-menu__label{min-width:0;overflow-wrap:anywhere}.vf-nav-menu__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1rem;height:1rem;line-height:1;color:var(--vf-color-muted);transition:transform var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-nav-menu__icon .vif-icon{width:1rem;height:1rem}.vf-nav-menu__icon--open{transform:rotate(180deg)}.vf-table-of-contents{display:flex;flex-direction:column;gap:var(--vf-table-of-contents-gap);width:100%;min-width:0}.vf-table-of-contents__title{margin:0;font-size:var(--vf-table-of-contents-title-font-size);font-weight:var(--vf-text-caption-font-weight);line-height:var(--vf-text-caption-line-height);text-transform:uppercase;letter-spacing:.04em;color:var(--vf-table-of-contents-title-color)}.vf-table-of-contents__list{display:grid;gap:var(--vf-table-of-contents-list-gap);margin:0;padding:0;list-style:none}.vf-table-of-contents__item{min-width:0;padding-left:calc((var(--vf-toc-level, 1) - 1) * var(--vf-table-of-contents-level-step))}.vf-table-of-contents__link{display:flex;align-items:center;min-width:0;padding:var(--vf-table-of-contents-item-padding);border:1px solid transparent;border-radius:var(--vf-radius-control);font-size:var(--vf-text-body-font-size);line-height:var(--vf-text-body-line-height);color:var(--vf-table-of-contents-color);text-decoration:none;overflow-wrap:anywhere;transition:background-color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard),color var(--vf-motion-duration-normal) var(--vf-motion-ease-standard)}.vf-table-of-contents__link:hover{color:var(--vf-table-of-contents-hover-color);background:var(--vf-table-of-contents-hover-background)}.vf-table-of-contents__link:focus-visible{outline:none;color:var(--vf-table-of-contents-hover-color);box-shadow:0 0 0 var(--vf-focus-ring-width) var(--vf-color-focus-ring)}.vf-table-of-contents__link--active{color:var(--vf-table-of-contents-active-color);background:var(--vf-table-of-contents-active-background)}.vf-heading,.vf-text{box-sizing:border-box;min-width:0;margin:0}.vf-heading{color:var(--vf-color-text);font-family:var(--vf-font-family-heading);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight)}.vf-heading--sm{font-size:var(--vf-heading-font-size-sm)}.vf-heading--md{font-size:var(--vf-heading-font-size-md)}.vf-heading--lg{font-size:var(--vf-heading-font-size-lg)}.vf-heading--xl{font-size:var(--vf-heading-font-size-xl)}.vf-text{color:var(--vf-color-text)}.vf-text--body{font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-text--label{font-size:var(--vf-text-label-font-size);font-weight:var(--vf-text-label-font-weight);line-height:var(--vf-text-label-line-height)}.vf-text--caption{font-size:var(--vf-text-caption-font-size);font-weight:var(--vf-text-caption-font-weight);line-height:var(--vf-text-caption-line-height)}.vf-text--muted{color:var(--vf-color-muted)}.vf-prose{color:var(--vf-color-text);font-size:var(--vf-text-body-font-size);font-weight:var(--vf-text-body-font-weight);line-height:var(--vf-text-body-line-height)}.vf-prose>:first-child{margin-top:0}.vf-prose>:last-child{margin-bottom:0}.vf-prose :where(h1,h2,h3,h4,h5,h6){margin:var(--vf-prose-heading-margin) 0 var(--vf-prose-heading-gap);color:var(--vf-color-text);font-family:var(--vf-font-family-heading);font-weight:var(--vf-heading-font-weight);line-height:var(--vf-line-height-tight);text-wrap:balance}.vf-prose :where(h1){font-size:var(--vf-heading-font-size-xl)}.vf-prose :where(h2){font-size:var(--vf-heading-font-size-lg)}.vf-prose :where(h3){font-size:var(--vf-heading-font-size-md)}.vf-prose :where(h4,h5,h6){font-size:var(--vf-heading-font-size-sm)}.vf-prose :where(p,ul,ol,blockquote,pre,table){margin:0 0 var(--vf-prose-block-spacing)}.vf-prose :where(ul,ol){padding-left:var(--vf-prose-list-padding-inline-start)}.vf-prose :where(li+li){margin-top:var(--vf-prose-list-item-spacing)}.vf-prose :where(strong,b){font-weight:var(--vf-font-weight-semibold)}.vf-prose :where(small){font-size:var(--vf-text-caption-font-size);line-height:var(--vf-text-caption-line-height)}.vf-prose :where(a){color:var(--vf-color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em}.vf-prose :where(a:hover){color:var(--vf-prose-link-hover-color)}.vf-prose :where(blockquote){padding-left:var(--vf-prose-blockquote-padding-inline-start);border-left:var(--vf-prose-blockquote-border-width) solid var(--vf-color-border);color:var(--vf-color-muted)}.vf-prose :where(code,kbd,samp){font-family:var(--vf-font-family-mono);font-size:var(--vf-prose-inline-code-font-size)}.vf-prose :where(:not(pre)>code,:not(pre)>kbd,:not(pre)>samp){padding:var(--vf-prose-inline-code-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-control-tight);background:var(--vf-color-surface-muted)}.vf-prose :where(pre){overflow-x:auto;padding:var(--vf-prose-code-block-padding);border:1px solid var(--vf-color-border);border-radius:var(--vf-radius-surface);background:var(--vf-color-surface-muted)}.vf-prose :where(pre code){font-size:var(--vf-text-caption-font-size);line-height:var(--vf-text-caption-line-height)}.vf-prose :where(hr){margin:var(--vf-prose-hr-margin) 0;border:0;border-top:1px solid var(--vf-color-border)}
@@ -144,6 +144,74 @@ export declare const defaultThemePresetSource: {
144
144
  breakpointLg: string;
145
145
  breakpointXl: string;
146
146
  breakpoint2xl: string;
147
+ fontFamilyBase: string;
148
+ fontFamilyHeading: string;
149
+ fontFamilyMono: string;
150
+ fontWeightRegular: string;
151
+ fontWeightMedium: string;
152
+ fontWeightSemibold: string;
153
+ fontWeightBold: string;
154
+ fontSizeXs: string;
155
+ fontSizeSm: string;
156
+ fontSizeMd: string;
157
+ fontSizeLg: string;
158
+ fontSizeXl: string;
159
+ fontSize2xl: string;
160
+ fontSize3xl: string;
161
+ lineHeightTight: string;
162
+ lineHeightNormal: string;
163
+ lineHeightRelaxed: string;
164
+ textBodyFontSize: string;
165
+ textBodyLineHeight: string;
166
+ textBodyFontWeight: string;
167
+ textCaptionFontSize: string;
168
+ textCaptionLineHeight: string;
169
+ textCaptionFontWeight: string;
170
+ textLabelFontSize: string;
171
+ textLabelLineHeight: string;
172
+ textLabelFontWeight: string;
173
+ headingFontSizeSm: string;
174
+ headingFontSizeMd: string;
175
+ headingFontSizeLg: string;
176
+ headingFontSizeXl: string;
177
+ headingFontWeight: string;
178
+ buttonSecondaryHoverBackground: string;
179
+ buttonSecondaryHoverBorderColor: string;
180
+ buttonGhostHoverBackground: string;
181
+ buttonGhostHoverBorderColor: string;
182
+ buttonPrimaryHoverFilter: string;
183
+ buttonSuccessHoverFilter: string;
184
+ buttonInfoHoverFilter: string;
185
+ buttonWarnHoverFilter: string;
186
+ buttonHelpHoverFilter: string;
187
+ buttonDangerHoverFilter: string;
188
+ buttonContrastHoverFilter: string;
189
+ radioControlBackground: string;
190
+ radioHoverBorderColor: string;
191
+ switchTrackBackground: string;
192
+ switchTrackHoverBackground: string;
193
+ switchTrackCheckedBackground: string;
194
+ switchTrackCheckedHoverBackground: string;
195
+ switchThumbBackground: string;
196
+ switchThumbBorderColor: string;
197
+ switchThumbShadow: string;
198
+ switchThumbColor: string;
199
+ switchThumbIconSize: string;
200
+ switchThumbCheckedBackground: string;
201
+ switchThumbCheckedBorderColor: string;
202
+ switchThumbCheckedShadow: string;
203
+ proseHeadingMargin: string;
204
+ proseHeadingGap: string;
205
+ proseBlockSpacing: string;
206
+ proseListPaddingInlineStart: string;
207
+ proseListItemSpacing: string;
208
+ proseLinkHoverColor: string;
209
+ proseBlockquotePaddingInlineStart: string;
210
+ proseBlockquoteBorderWidth: string;
211
+ proseInlineCodeFontSize: string;
212
+ proseInlineCodePadding: string;
213
+ proseCodeBlockPadding: string;
214
+ proseHrMargin: string;
147
215
  colorBg: string;
148
216
  colorSurface: string;
149
217
  colorSurfaceMuted: string;