@sakuzu/maplibre-gl-draw-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,211 @@
1
+ /** The words of the interface */
2
+ export interface Messages {
3
+ /** The name of the toolbar, read by assistive technology */
4
+ toolbar: string;
5
+ /** The names of the built-in tools */
6
+ select: string;
7
+ point: string;
8
+ line: string;
9
+ polygon: string;
10
+ circle: string;
11
+ freehand: string;
12
+ image: string;
13
+ /** The delete button of the toolbar */
14
+ delete: string;
15
+ /** The snapping switch of the toolbar */
16
+ snapping: string;
17
+ /** In the list of the keyboard shortcuts: the heading of the tools and of the editing keys */
18
+ toolsGroup: string;
19
+ editGroup: string;
20
+ /** In the list of the keyboard shortcuts: what Delete and Backspace do */
21
+ deleteSelection: string;
22
+ /** The trigger of the menu that holds the tools that do not fit */
23
+ more: string;
24
+ /** The title of the list of the keyboard shortcuts */
25
+ keyboardShortcuts: string;
26
+ /** The close and back buttons of a dialog */
27
+ close: string;
28
+ back: string;
29
+ /** The scrim that closes the panels floating over the map */
30
+ closePanes: string;
31
+ /** The handles that resize a dock and a sheet */
32
+ dockHeight: string;
33
+ sheetHeight: string;
34
+ /** The tab of the layer panel, and the name of its tree */
35
+ layers: string;
36
+ /** The tab of the legend */
37
+ legend: string;
38
+ /** The items of the add menu of the layer panel */
39
+ newLayer: string;
40
+ newGroup: string;
41
+ /** The mark of the layer that drawn features go into */
42
+ activeLayer: string;
43
+ /** In the list of the keyboard shortcuts: the heading of the panels, and the key of the left one */
44
+ panelsGroup: string;
45
+ toggleLayers: string;
46
+ /** The names of the types that have no tool, for a feature without a name */
47
+ multiPoint: string;
48
+ multiLine: string;
49
+ multiPolygon: string;
50
+ /**
51
+ * The labels of the legend that are not values of the data: every feature, the features the
52
+ * rule does not resolve, and the classes of a graduated rule, with `{lower}` and `{upper}` for
53
+ * their bounds
54
+ */
55
+ legendAll: string;
56
+ legendOther: string;
57
+ legendBelow: string;
58
+ legendAtLeast: string;
59
+ legendRange: string;
60
+ /** What the legend shows when no layer has a style rule */
61
+ noLegend: string;
62
+ /** In the layer tree of kata: the eye, the lock, the name's input, the add button and the chevron */
63
+ hide: string;
64
+ show: string;
65
+ lock: string;
66
+ unlock: string;
67
+ rename: string;
68
+ add: string;
69
+ expand: string;
70
+ collapse: string;
71
+ /** The inspector: its name, read by assistive technology, and what it says with nothing selected */
72
+ inspector: string;
73
+ nothingSelected: string;
74
+ nothingSelectedNote: string;
75
+ /** The language tag the numbers of the inspector are written in (Intl.NumberFormat) */
76
+ numberLocale: string;
77
+ /** The tabs of the inspector of a feature; the first is also the title of the style's section */
78
+ styleTab: string;
79
+ attributesTab: string;
80
+ /** The row of the description of a feature, and its action while it is empty */
81
+ description: string;
82
+ addDescription: string;
83
+ /** The button that removes the style of the features, back to the layer rule and the defaults */
84
+ resetStyle: string;
85
+ /** The names of the fields of the style */
86
+ styleFillColor: string;
87
+ styleFillOpacity: string;
88
+ styleStrokeColor: string;
89
+ styleStrokeWidth: string;
90
+ styleStrokeOpacity: string;
91
+ styleLineStyle: string;
92
+ stylePointColor: string;
93
+ stylePointRadius: string;
94
+ stylePointShape: string;
95
+ stylePointOpacity: string;
96
+ stylePointStrokeColor: string;
97
+ stylePointStrokeWidth: string;
98
+ styleImageOpacity: string;
99
+ /** The choices of the line style and of the shape of a point */
100
+ lineSolid: string;
101
+ lineDashed: string;
102
+ lineDotted: string;
103
+ shapeCircle: string;
104
+ shapeSquare: string;
105
+ shapeTriangle: string;
106
+ shapeStar: string;
107
+ /** The names of the measurements */
108
+ measureLongitude: string;
109
+ measureLatitude: string;
110
+ measureLength: string;
111
+ measureArea: string;
112
+ measurePerimeter: string;
113
+ measureRadius: string;
114
+ measurePoints: string;
115
+ /** The names of a layer and of a group */
116
+ typeLayer: string;
117
+ typeGroup: string;
118
+ /** What the inspector says of a feature this client hides */
119
+ hiddenState: string;
120
+ /** The title of a selection of several things; {count} is their number */
121
+ selectedCount: string;
122
+ /** The actions on a selection */
123
+ groupAction: string;
124
+ ungroupAction: string;
125
+ /** The operations on features, and the title of their section */
126
+ operations: string;
127
+ opUnion: string;
128
+ opIntersection: string;
129
+ opDifference: string;
130
+ opSplit: string;
131
+ opBuffer: string;
132
+ /** The dialog of the buffer */
133
+ bufferDescription: string;
134
+ bufferDistance: string;
135
+ bufferUnit: string;
136
+ bufferSegments: string;
137
+ bufferSegmentsHint: string;
138
+ bufferRun: string;
139
+ bufferFailed: string;
140
+ /** The fields of a layer and of a group */
141
+ opacityField: string;
142
+ visibleField: string;
143
+ lockedField: string;
144
+ /** The section of the style rule of a layer, which is only read */
145
+ styleRule: string;
146
+ ruleKind: string;
147
+ ruleProperty: string;
148
+ ruleNone: string;
149
+ ruleSingle: string;
150
+ ruleCategorical: string;
151
+ ruleGraduated: string;
152
+ ruleContinuous: string;
153
+ ruleHint: string;
154
+ deleteLayer: string;
155
+ /**
156
+ * Words kata's components of the inspector show: the action of an empty name, a field whose
157
+ * values differ, the list of attributes and the color picker. `removeAttribute` has {key} for
158
+ * the name of the attribute, and `saturationValueText` {s} and {v} for the two percentages
159
+ */
160
+ addName: string;
161
+ mixed: string;
162
+ cancelLabel: string;
163
+ noAttributes: string;
164
+ attributeName: string;
165
+ attributeValue: string;
166
+ addValue: string;
167
+ addAttribute: string;
168
+ removeAttribute: string;
169
+ locked: string;
170
+ color: string;
171
+ colorRed: string;
172
+ colorOrange: string;
173
+ colorGold: string;
174
+ colorGreen: string;
175
+ colorBlue: string;
176
+ colorPurple: string;
177
+ colorBlack: string;
178
+ colorBrown: string;
179
+ colorWhite: string;
180
+ colorCode: string;
181
+ eyedropper: string;
182
+ hue: string;
183
+ saturation: string;
184
+ lightness: string;
185
+ saturationValue: string;
186
+ saturationValueText: string;
187
+ running: string;
188
+ /** The button that switches the theme: what pressing it does, to the light and to the dark */
189
+ toLight: string;
190
+ toDark: string;
191
+ }
192
+ /** A locale: one of the sets that come with the interface, or words laid over English */
193
+ export type Locale = 'en' | 'ja' | Partial<Messages>;
194
+ /** The words of the components of kata, taken from the set */
195
+ declare const KATA_KEYS: readonly ["more", "keyboardShortcuts", "close", "back", "closePanes", "dockHeight", "sheetHeight", "hide", "show", "lock", "unlock", "rename", "add", "expand", "collapse"];
196
+ /** The full set of words for a locale */
197
+ export declare function resolveMessages(locale?: Locale): Messages;
198
+ /** The language of a locale, for the lang attribute of the root element, when it is known */
199
+ export declare function localeLanguage(locale?: Locale): string | null;
200
+ /** The words of the set that kata shows */
201
+ export declare function kataMessages(messages: Messages): Pick<Messages, (typeof KATA_KEYS)[number]>;
202
+ /** Passes the words that kata shows on to kata (for the whole page) */
203
+ export declare function applyKataMessages(messages: Messages): void;
204
+ /** Fills the {name} places of a word with values */
205
+ export declare function fillWord(word: string, values: Record<string, string | number>): string;
206
+ /**
207
+ * The words of the set that kata's components of the inspector show, by kata's keys, as kata
208
+ * takes them (a word with values as a function of them)
209
+ */
210
+ export declare function inspectorKataMessages(messages: Messages): Record<string, unknown>;
211
+ export {};
@@ -0,0 +1,33 @@
1
+ /** The padding of a map in px, as maplibre-gl has it */
2
+ export interface PaddingOptions {
3
+ top?: number;
4
+ bottom?: number;
5
+ left?: number;
6
+ right?: number;
7
+ }
8
+ /** The members of the map the padding uses */
9
+ export interface PaddingMap {
10
+ getContainer(): HTMLElement;
11
+ getPadding(): PaddingOptions;
12
+ setPadding(padding: PaddingOptions): unknown;
13
+ }
14
+ /** Which side regions stand beside the stage now, open */
15
+ export interface Beside {
16
+ left: boolean;
17
+ right: boolean;
18
+ }
19
+ /** The padding of a map, kept to the regions of the interface */
20
+ export interface MapPadding {
21
+ /** Measures the regions again after the layout changed, and follows their sizes */
22
+ update(beside: Beside): void;
23
+ /** Stops following and gives the map back the padding it had before */
24
+ destroy(): void;
25
+ }
26
+ /**
27
+ * Keeps the padding of a map to the regions of the interface in `root`: the width of a side region
28
+ * beside the stage on its side, and the height of the toolbar with its gap at the bottom.
29
+ *
30
+ * Every call to the map is guarded: once the map is removed, or its container leaves the page,
31
+ * nothing is done.
32
+ */
33
+ export declare function mapPadding(map: PaddingMap, root: HTMLElement): MapPadding;
@@ -0,0 +1,7 @@
1
+ import type { Shortcut } from '@sakuzu/kata/svelte';
2
+ import type { Messages } from './messages.js';
3
+ import type { DrawUIDraw, ToolSpec } from './types.js';
4
+ /** Whether a key event comes from the map's canvas, where core has handled it already */
5
+ export declare function fromMapCanvas(draw: Pick<DrawUIDraw, 'getMap'>, e: KeyboardEvent): boolean;
6
+ /** The shortcuts of the tools and of the delete button */
7
+ export declare function toolbarShortcuts(draw: DrawUIDraw, specs: readonly ToolSpec[], messages: Messages, deletable: boolean): Shortcut[];
@@ -0,0 +1,21 @@
1
+ import type { Draw, DrawEvents } from '@sakuzu/maplibre-gl-draw';
2
+ /** The members of a draw instance that subscribing needs */
3
+ export type DrawEventSource = Pick<Draw, 'on'>;
4
+ /**
5
+ * A value of the draw instance that the components follow. Read inside a component (or an
6
+ * effect), it is read again after each of the events; elsewhere it is a plain read.
7
+ *
8
+ * `refresh` reads it again without an event, for a value that core changes without one.
9
+ */
10
+ export declare function follow<T>(draw: DrawEventSource, events: readonly (keyof DrawEvents)[], read: () => T): {
11
+ get(): T;
12
+ refresh(): void;
13
+ };
14
+ /** A setting of the interface that the components follow */
15
+ export declare class Box<T> {
16
+ #private;
17
+ constructor(value: T);
18
+ /** The value; inside a component it is followed */
19
+ get(): T;
20
+ set(value: T): void;
21
+ }
package/dist/style.css ADDED
@@ -0,0 +1,3 @@
1
+ /*! @sakuzu/kata 1.2.0 | Apache-2.0 | Copyright 2026 Kasika, Inc. */
2
+ .mgd-ui{--kata-step-whole:1.618;--kata-step-half:1.272;--kata-step-quarter:1.128;--kata-size-2xs:.236083em;--kata-size-xs:.381982em;--kata-size-sm:.618047em;--kata-size-md:1em;--kata-size-lg:1.618em;--kata-size-xl:2.61792em;--kata-size-2xl:4.2358em;--kata-size-2xs-rem:.236083rem;--kata-size-xs-rem:.381982rem;--kata-size-sm-rem:.618047rem;--kata-size-md-rem:1rem;--kata-size-lg-rem:1.618rem;--kata-size-xl-rem:2.61792rem;--kata-size-2xl-rem:4.2358rem;--kata-fs-display2:2.61792rem;--kata-lh-display2:1.272;--kata-ls-display2:-.022em;--kata-offset-display2:2.0581rem;--kata-fs-title1:2.0581rem;--kata-lh-title1:1.272;--kata-ls-title1:-.022em;--kata-offset-title1:1.61798rem;--kata-fs-title2:1.618rem;--kata-lh-title2:1.272;--kata-ls-title2:-.02em;--kata-offset-title2:1.272rem;--kata-fs-title3:1.272rem;--kata-lh-title3:1.272;--kata-ls-title3:-.017em;--kata-offset-title3:.99999rem;--kata-fs-heading:1.128rem;--kata-lh-heading:1.272;--kata-ls-heading:-.014em;--kata-offset-heading:.886784rem;--kata-fs-subheading:.886525rem;--kata-lh-subheading:1.272;--kata-ls-subheading:-.007em;--kata-offset-subheading:.696947rem;--kata-fs-body:1rem;--kata-lh-body:1.618;--kata-ls-body:-.011em;--kata-offset-body:.618047rem;--kata-fs-capline:.786164rem;--kata-lh-capline:1.272;--kata-ls-capline:.0618em;--kata-offset-capline:.618047rem;--kata-cap:.698;--kata-cjk-ascent:.837;--kata-cjk-descent:.079;--kata-ink-over:0;--kata-ink-under:0;--kata-ink:calc(var(--kata-cap) + var(--kata-ink-over) + var(--kata-ink-under));--kata-edge-top:calc(var(--kata-ink-over) * 1em);--kata-edge-bottom:calc(var(--kata-ink-under) * 1em);--kata-text-size-num:var(--kata-fs-display2);--kata-text-leading-num:var(--kata-lh-display2);--kata-text-tracking-num:var(--kata-ls-display2);--kata-text-size-title:var(--kata-fs-title1);--kata-text-leading-title:var(--kata-lh-title1);--kata-text-tracking-title:var(--kata-ls-title1);--kata-text-size-h1:var(--kata-fs-title2);--kata-text-leading-h1:var(--kata-lh-title2);--kata-text-tracking-h1:var(--kata-ls-title2);--kata-text-size-h2:var(--kata-fs-title3);--kata-text-leading-h2:var(--kata-lh-title3);--kata-text-tracking-h2:var(--kata-ls-title3);--kata-text-size-prose:var(--kata-fs-heading);--kata-text-leading-prose:var(--kata-lh-body);--kata-text-tracking-prose:var(--kata-ls-heading);--kata-text-size-body:var(--kata-fs-body);--kata-text-leading-body:var(--kata-lh-body);--kata-text-tracking-body:var(--kata-ls-body);--kata-text-size-caption:var(--kata-fs-subheading);--kata-text-leading-caption:var(--kata-lh-body);--kata-text-tracking-caption:var(--kata-ls-subheading);--kata-text-size-label:var(--kata-text-size-body);--kata-text-leading-label:var(--kata-step-half);--kata-text-tracking-label:var(--kata-text-tracking-body);--kata-text-size-glyph:var(--kata-fs-capline);--kata-text-leading-glyph:var(--kata-lh-capline);--kata-text-tracking-glyph:var(--kata-ls-capline);--kata-text-offset-num:var(--kata-offset-display2);--kata-text-offset-title:var(--kata-offset-title1);--kata-text-offset-h1:var(--kata-offset-title2);--kata-text-offset-h2:var(--kata-offset-title3);--kata-text-offset-prose:var(--kata-offset-heading);--kata-text-offset-caption:var(--kata-offset-subheading);--kata-text-offset-label:var(--kata-offset-body);--kata-pad-2xs:var(--kata-size-2xs);--kata-pad-xs:var(--kata-size-xs);--kata-pad-sm:var(--kata-size-sm);--kata-pad-md:var(--kata-size-md);--kata-pad-lg:var(--kata-size-lg);--kata-pad-xl:var(--kata-size-xl);--kata-pad-2xl:var(--kata-size-2xl);--kata-gap-2xs:var(--kata-size-2xs-rem);--kata-gap-xs:var(--kata-size-xs-rem);--kata-gap-sm:var(--kata-size-sm-rem);--kata-gap-md:var(--kata-size-md-rem);--kata-gap-lg:var(--kata-size-lg-rem);--kata-gap-xl:var(--kata-size-xl-rem);--kata-gap-2xl:var(--kata-size-2xl-rem);--kata-border-width:1px;--kata-radius-pill:999px;--kata-height-button:calc(var(--kata-text-size-body) * (var(--kata-ink) + 2) + var(--kata-border-width) * 2);--kata-height-button-sm:calc(var(--kata-text-size-body) * (var(--kata-ink) + 2 / var(--kata-step-whole)) + var(--kata-border-width) * 2);--kata-height-icon-button:var(--kata-height-button-sm);--kata-height-list-item:calc(var(--kata-text-size-body) * (var(--kata-ink) + 2));--kata-height-list-item-two:calc(var(--kata-height-list-item) + var(--kata-size-sm-rem) + var(--kata-text-size-caption) * var(--kata-ink));--kata-height-badge:calc(var(--kata-text-size-caption) * (var(--kata-ink) + 2 / var(--kata-step-whole) / var(--kata-step-whole)) + var(--kata-border-width) * 2);--kata-height-list-item-lg:calc(var(--kata-height-button-sm) + var(--kata-text-size-body) * 2);--kata-height-list-item-mark:calc(var(--kata-height-badge) + var(--kata-text-size-body) * 2);--kata-height-thumbnail-row:calc(var(--kata-height-thumbnail) + var(--kata-text-size-body) * 2);--kata-height-toolbar:var(--kata-height-list-item-lg);--kata-height-footer:calc(var(--kata-height-button) + var(--kata-text-size-body) * 2);--kata-height-icon:var(--kata-size-md-rem);--kata-height-thumbnail:2rem;--kata-width-rail:14.5rem;--kata-width-panel:22.5rem;--kata-width-drawer:17.5rem;--kata-width-modal-sm:25rem;--kata-width-modal-md:35rem;--kata-width-modal-lg:45rem;--kata-width-modal-xl:60rem;--kata-width-popover:18rem;--kata-width-toast:22rem;--kata-width-prose:46rem;--kata-width-settings:51.25rem;--kata-opacity-dim:.64;--kata-z-floating:10;--kata-z-sheet:20;--kata-z-menu:30;--kata-z-modal:40;--kata-z-toast:50;--kata-font-sans:"IBM Plex Sans", "IBM Plex Sans JP", "Noto Sans SC", "Noto Sans TC", system-ui, sans-serif;--kata-font-mono:"IBM Plex Mono", ui-monospace, monospace;--kata-color-ground:#202021;--kata-color-panel:#2b2b2d;--kata-color-raise:#f5f5f812;--kata-color-raise-2:#f5f5f824;--kata-color-fill:#46464a;--kata-color-solid:#204ec3;--kata-color-solid-hover:#123eb2;--kata-color-solid-active:#062da1;--kata-color-on-solid:#fff;--kata-color-text:#f5f5f8;--kata-color-muted:#f5f5f8eb;--kata-color-faint:#f5f5f87a;--kata-color-line:#f5f5f82b;--kata-color-line-strong:#f5f5f852;--kata-color-blue-ink:#b0d0ff;--kata-color-blue-fill:#204ec3;--kata-color-on-blue:#fff;--kata-color-yellow-ink:#ffe45c;--kata-color-yellow-fill:#f8cd09;--kata-color-on-yellow:#1d1f20;--kata-color-red-ink:#ffbbad;--kata-color-red-fill:#a82514;--kata-color-red-fill-hover:#951303;--kata-color-red-fill-active:#7e0f02;--kata-color-red-wash:#ffbbad1f;--kata-color-on-red:#fff;--kata-color-green-ink:#5cff9d;--kata-color-green-fill:#51bf68;--kata-color-on-green:#1d1f20;--kata-color-focus:var(--kata-color-blue-ink);--kata-color-scrim:#00000080;--kata-color-selection:#0033ff59}.mgd-ui:lang(ja),:lang(ja) .mgd-ui,:where(.mgd-ui) :lang(ja),.mgd-ui:lang(zh),:lang(zh) .mgd-ui,:where(.mgd-ui) :lang(zh){--kata-text-tracking-num:0;--kata-text-tracking-title:0;--kata-text-tracking-h1:0;--kata-text-tracking-h2:0;--kata-text-tracking-body:0;--kata-text-tracking-prose:0;--kata-text-tracking-caption:0;--kata-text-tracking-label:0;--kata-text-tracking-glyph:0}.mgd-ui[data-color-mode=light],[data-color-mode=light] .mgd-ui,:where(.mgd-ui) [data-color-mode=light]{--kata-color-ground:#f2f2f3;--kata-color-panel:#fff;--kata-color-raise:#1d1f200f;--kata-color-raise-2:#1d1f201f;--kata-color-fill:#e4e4e5;--kata-color-text:#1d1f20;--kata-color-muted:#1d1f20f0;--kata-color-faint:#1d1f2080;--kata-color-line:#1d1f2029;--kata-color-line-strong:#1d1f2052;--kata-color-blue-ink:#0029b8;--kata-color-blue-fill:#204ec3;--kata-color-on-blue:#fff;--kata-color-yellow-ink:#664a00;--kata-color-yellow-fill:#f8cd09;--kata-color-on-yellow:#1d1f20;--kata-color-red-ink:#950010;--kata-color-red-fill:#a82514;--kata-color-red-fill-hover:#951303;--kata-color-red-fill-active:#7e0f02;--kata-color-red-wash:#95001014;--kata-color-on-red:#fff;--kata-color-green-ink:#0a5623;--kata-color-green-fill:#51bf68;--kata-color-on-green:#1d1f20;--kata-color-focus:#03f}.mgd-ui:lang(ja),.mgd-ui:lang(zh),.mgd-ui:lang(ko){--kata-ink-over:calc(var(--kata-cjk-ascent) - var(--kata-cap));--kata-ink-under:var(--kata-cjk-descent)}.mgd-ui{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--kata-color-text);font-family:var(--kata-font-sans);font-size:var(--kata-text-size-body);font-style:normal;font-weight:400;line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);text-align:start;text-transform:none;-webkit-font-smoothing:antialiased}.mgd-ui[data-color-mode=light],[data-color-mode=light] .mgd-ui{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.mgd-ui[data-overlay]{pointer-events:none;position:absolute;inset:0}.mgd-ui[data-overlay]>[data-role=drawbar],.mgd-ui[data-overlay]>[data-role=reopen],.mgd-ui[data-overlay]>[data-role=theme]{pointer-events:auto}[data-mgd-ui-lift]>.maplibregl-control-container>.maplibregl-ctrl-bottom-left{transform:translateY(calc(-1 * var(--mgd-ui-lift-left,0px)))}[data-mgd-ui-lift]>.maplibregl-control-container>.maplibregl-ctrl-bottom-right{transform:translateY(calc(-1 * var(--mgd-ui-lift-right,0px)))}.mgd-ui[data-panel]{height:100%;display:flex}:where(.mgd-ui),:where(.mgd-ui) *,:where(.mgd-ui) :before,:where(.mgd-ui) :after{box-sizing:border-box}:where(.mgd-ui) :is(button,input,select,textarea){font:inherit;letter-spacing:inherit;color:inherit;border:0;margin:0;padding:0}:where(.mgd-ui) :focus{outline:none}:where(.mgd-ui) :focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:2px}:where(.mgd-ui) ::selection{background:var(--kata-color-selection)}:where(.mgd-ui) :where(:not(:first-child)){--kata-at-start:0}:where(.mgd-ui) :where(:not(:last-child)){--kata-at-end:0}:where(.mgd-ui) :where([data-role]:not([data-role=stack]):not([data-pass]):not([data-edge-pass])){--kata-at-start:0;--kata-at-end:0}:where(.mgd-ui) [data-role=rule]+:where([data-role=stack],[data-pass],[data-edge-pass],:not([data-role])){--kata-at-start:1}:where(.mgd-ui) :where([data-role=stack],[data-pass],[data-edge-pass],:not([data-role])):has(+[data-role=rule]){--kata-at-end:1}:where(.mgd-ui) :where([data-h]){--kata-in-control:1}:where(.mgd-ui) :where([data-inset]){--kata-in-control:0}@container style(--kata-at-start:1){:where(.mgd-ui) :where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):first-child,:where(.mgd-ui) [data-edge-pass]>:where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label){text-box:trim-start cap alphabetic;padding-top:var(--kata-edge-top)}}@container style(--kata-at-end:1){:where(.mgd-ui) :where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):last-child,:where(.mgd-ui) [data-edge-pass]>:where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label){text-box:trim-end cap alphabetic;padding-bottom:var(--kata-edge-bottom)}}:where(.mgd-ui) [data-role=rule]+:where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label){text-box:trim-start cap alphabetic;padding-top:var(--kata-edge-top)}:where(.mgd-ui) :where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):has(+[data-role=rule]){text-box:trim-end cap alphabetic;padding-bottom:var(--kata-edge-bottom)}@container style(--kata-at-end:1){:where(.mgd-ui) [data-role=rule]+:where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):last-child{text-box-trim:trim-both}}@container style(--kata-at-start:1){:where(.mgd-ui) :where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):first-child:has(+[data-role=rule]){text-box-trim:trim-both}}@container style(--kata-at-start:1) and style(--kata-at-end:1){:where(.mgd-ui) :where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label):first-child:last-child,:where(.mgd-ui) [data-edge-pass]>:where(.kata-text,[data-role=caption],[data-role=p],[data-role=prose],[data-role=value],[data-role=stat],[data-role=field]>label){text-box-trim:trim-both}}.actions.svelte-194yfhv{justify-content:flex-end;align-items:center;gap:var(--kata-gap-sm);flex-wrap:wrap;min-width:0;display:flex}.lead.svelte-194yfhv{align-items:center;min-width:0;margin-right:auto;display:flex}.counter.svelte-d8wvs6{min-width:var(--kata-height-icon);height:var(--kata-height-icon);padding-inline:var(--kata-pad-2xs);background:var(--kata-color-solid);font-size:var(--kata-text-size-glyph);line-height:var(--kata-text-leading-glyph);letter-spacing:var(--kata-text-tracking-glyph);color:var(--kata-color-on-solid);font-variant-numeric:tabular-nums;box-shadow:0 0 0 calc(var(--kata-border-width) * 2) var(--kata-color-panel);flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.t.svelte-d8wvs6{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}svg.kata-icon{width:var(--kata-height-icon);height:var(--kata-height-icon);stroke-width:1.5px;flex:none;display:block}svg.kata-icon.tone-blue{color:var(--kata-color-blue-ink)}svg.kata-icon.tone-yellow{color:var(--kata-color-yellow-ink)}svg.kata-icon.tone-red{color:var(--kata-color-red-ink)}svg.kata-icon.tone-green{color:var(--kata-color-green-ink)}svg.kata-icon.tone-muted{color:var(--kata-color-muted)}.seat.svelte-k7f5ef{align-items:center;min-width:0;display:inline-flex}.tip.svelte-k7f5ef{z-index:var(--kata-z-menu);pointer-events:none;align-items:center;gap:var(--kata-gap-sm);width:max-content;height:var(--kata-height-button-sm);padding:0 var(--kata-pad-sm);background:var(--kata-color-text);font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-ground);white-space:nowrap;flex:none;display:inline-flex;position:fixed}.pair.svelte-k7f5ef{align-items:center;gap:var(--kata-gap-sm);max-width:100%;display:inline-flex}.tip.inline.svelte-k7f5ef{position:static}.t.svelte-k7f5ef{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.kbd.svelte-k7f5ef{height:var(--kata-height-badge);padding:0 var(--kata-pad-2xs);border:var(--kata-border-width) solid color-mix(in srgb, var(--kata-color-ground) 40%, transparent);color:inherit;font-family:var(--kata-font-mono);white-space:nowrap;align-items:center;display:inline-flex}.kbd.svelte-k7f5ef>.t:where(.svelte-k7f5ef){font-family:inherit}.btn.svelte-tzqgdm{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:pointer;background:0 0;border-radius:0;flex:0 auto;max-width:100%;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex;position:relative}.btn.svelte-tzqgdm:hover{background:var(--kata-color-raise);text-decoration:none}.btn.svelte-tzqgdm:active{background:var(--kata-color-raise-2);transition:none}.btn.svelte-tzqgdm:disabled{opacity:var(--kata-opacity-dim);cursor:default}.btn.svelte-tzqgdm>svg{flex:none}.btn.svelte-tzqgdm .t:where(.svelte-tzqgdm){text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;display:block;overflow:clip}.btn.svelte-tzqgdm .t.mono:where(.svelte-tzqgdm){font-family:var(--kata-font-mono)}.btn.svelte-tzqgdm .kbd:where(.svelte-tzqgdm){font-family:var(--kata-font-mono);font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-muted);flex:none}.unread.svelte-tzqgdm{left:calc(50% + var(--kata-pad-2xs));bottom:calc(50% + var(--kata-pad-2xs));pointer-events:none;line-height:0;position:absolute}.primary.svelte-tzqgdm{background:var(--kata-color-solid);border-color:var(--kata-color-solid);color:var(--kata-color-on-solid)}.primary.svelte-tzqgdm:hover{background:var(--kata-color-solid-hover);border-color:var(--kata-color-solid-hover)}.primary.svelte-tzqgdm:active{background:var(--kata-color-solid-active);border-color:var(--kata-color-solid-active)}.btn.primary.svelte-tzqgdm .kbd:where(.svelte-tzqgdm){color:var(--kata-color-on-solid)}.ghost.svelte-tzqgdm{background:0 0;border-color:#0000}.danger.svelte-tzqgdm{color:var(--kata-color-red-ink);border-color:var(--kata-color-red-ink)}.danger.svelte-tzqgdm:hover{background:var(--kata-color-red-wash)}.danger-fill.svelte-tzqgdm{background:var(--kata-color-red-fill);border-color:var(--kata-color-red-fill);color:var(--kata-color-on-red)}.danger-fill.svelte-tzqgdm:hover{background:var(--kata-color-red-fill-hover);border-color:var(--kata-color-red-fill-hover)}.danger-fill.svelte-tzqgdm:active{background:var(--kata-color-red-fill-active);border-color:var(--kata-color-red-fill-active)}.icon.svelte-tzqgdm{width:var(--kata-height-icon-button);height:var(--kata-height-icon-button);justify-content:center;padding:0}.block.svelte-tzqgdm{justify-content:center;width:100%}.spread.svelte-tzqgdm{justify-content:space-between}.spread.svelte-tzqgdm .t:where(.svelte-tzqgdm){text-align:start;flex:auto}.busy.svelte-tzqgdm{opacity:var(--kata-opacity-dim);cursor:progress}.on.svelte-tzqgdm{background:var(--kata-color-raise-2)}.on.icon.svelte-tzqgdm>svg{color:var(--kata-color-blue-ink)}.ghost[data-tone=danger].svelte-tzqgdm:hover:not(:disabled){color:var(--kata-color-red-ink)}.btn[aria-expanded=true][aria-haspopup].svelte-tzqgdm{background:var(--kata-color-raise)}.anchor.svelte-1moa1f7{min-width:0;max-width:100%;display:inline-flex}.anchor.svelte-1moa1f7:not(.block){flex:none}.anchor.block.svelte-1moa1f7{width:100%;display:flex}.anchor.block.svelte-1moa1f7>*{flex:auto;min-width:0}.seat.svelte-1moa1f7{color:inherit;visibility:hidden;background:0 0;border:0;margin:0;padding:0;position:fixed;inset:auto;overflow:auto}.seat.svelte-1moa1f7:popover-open{flex-direction:column;display:flex}.seat.placed.svelte-1moa1f7{visibility:visible}.menu.svelte-1moa1f7{background:var(--kata-color-panel);color:var(--kata-color-text);border:var(--kata-border-width) solid var(--kata-color-line-strong);min-width:min(12rem, 100vw - var(--kata-gap-md) * 2);max-width:calc(100vw - var(--kata-gap-md) * 2)}.menu.svelte-11a9wyx{background:var(--kata-color-panel);color:var(--kata-color-text);border:var(--kata-border-width) solid var(--kata-color-line-strong);min-width:min(12rem, 100vw - var(--kata-gap-md) * 2);max-width:calc(100vw - var(--kata-gap-md) * 2);flex-direction:column;display:flex}.menu[data-rows=mark].svelte-11a9wyx{--kata-list-item-height:var(--kata-height-list-item-mark)}.menu[data-rows=box].svelte-11a9wyx{--kata-list-item-height:var(--kata-height-list-item-lg)}.menu[data-rows=thumb].svelte-11a9wyx{--kata-list-item-height:var(--kata-height-thumbnail-row)}.menu[data-rows=two].svelte-11a9wyx{--kata-list-item-height:var(--kata-height-list-item-two)}.sep.svelte-1v24bwy{height:var(--kata-border-width);background:var(--kata-color-line);flex:none}.head.svelte-1jq2ulr{min-height:var(--kata-height-list-item);padding-inline:var(--kata-pad-md);min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button-sm);flex:none;align-items:center;display:flex}.label.svelte-1jq2ulr{min-width:0;font-size:var(--kata-text-size-label);line-height:var(--kata-text-leading-label);letter-spacing:var(--kata-text-tracking-label);text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:clip}.item.svelte-1i6m27a{align-items:center;gap:var(--kata-gap-sm);width:100%;min-height:var(--kata-list-item-height,var(--kata-height-list-item));padding-inline:var(--kata-pad-md);color:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);text-align:start;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:none;display:flex}.item.svelte-1i6m27a:hover{background:var(--kata-color-raise);text-decoration:none}.item.svelte-1i6m27a:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.item.svelte-1i6m27a>svg{flex:none}.item.svelte-1i6m27a [data-role=mark][data-h]:not([data-h=icon]),.item.svelte-1i6m27a [data-role=mark][data-kata-tall],.item.svelte-1i6m27a [data-role=box][data-h]:not(.ghost),.item.svelte-1i6m27a input:not([type=checkbox]):not([type=radio]),.item.svelte-1i6m27a select,.item.svelte-1i6m27a textarea{margin-block:var(--kata-text-size-body)}.item.svelte-1i6m27a [data-role=stack]{padding-block:var(--kata-text-size-body)}.item.svelte-1i6m27a [data-role=stack] [data-role=stack]{padding-block:0}.item.svelte-1i6m27a [data-role=stack] [data-role=mark][data-h]:not([data-h=icon]),.item.svelte-1i6m27a [data-role=stack] [data-role=mark][data-kata-tall],.item.svelte-1i6m27a [data-role=stack] [data-role=box][data-h]:not(.ghost),.item.svelte-1i6m27a [data-role=stack] input:not([type=checkbox]):not([type=radio]),.item.svelte-1i6m27a [data-role=stack] select,.item.svelte-1i6m27a [data-role=stack] textarea,.item.svelte-1i6m27a [data-role=box] input:not([type=checkbox]):not([type=radio]),.item.svelte-1i6m27a [data-role=box] select,.item.svelte-1i6m27a [data-role=box] textarea{margin-block:0}.t.svelte-1i6m27a{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.on.svelte-1i6m27a{background:var(--kata-color-raise)}.danger.svelte-1i6m27a{color:var(--kata-color-red-ink)}.disabled.svelte-1i6m27a{opacity:var(--kata-opacity-dim);cursor:default}.disabled.svelte-1i6m27a:hover{background:0 0}.grow.svelte-1i6m27a{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;flex:1;min-width:0;overflow:clip}.chk.svelte-1i6m27a{width:var(--kata-height-icon);flex:none;display:flex}.kbd.svelte-1i6m27a,.sub.svelte-1i6m27a{color:var(--kata-color-muted);flex:none;margin-left:auto}.kbd.svelte-1i6m27a{font-family:var(--kata-font-mono);font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);white-space:nowrap}.sub.svelte-1i6m27a{display:flex}.level.svelte-w8ye0t{flex-direction:column;min-width:0;display:flex}.sub.svelte-w8ye0t{z-index:var(--kata-z-menu);position:fixed}.block.svelte-yani0l{padding:var(--kata-pad-md);--kata-inset:0px;--kata-at-start:1;--kata-at-end:1;flex:none;min-width:0}.ie.svelte-1ddq43z{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));border:var(--kata-border-width) solid transparent;max-width:100%;color:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);text-align:start;cursor:text;background:0 0;min-width:0;padding:0;display:inline-flex}.title.svelte-1ddq43z{font-size:var(--kata-text-size-h2);line-height:var(--kata-text-leading-h2);letter-spacing:var(--kata-text-tracking-h2);font-weight:600}.t.svelte-1ddq43z{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.clamp.svelte-1ddq43z{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;overflow:clip}button.ie.svelte-1ddq43z{cursor:pointer}button.ie.svelte-1ddq43z:hover{background:var(--kata-color-raise)}button.ie.svelte-1ddq43z:hover .pen:where(.svelte-1ddq43z){color:var(--kata-color-muted)}.pen.svelte-1ddq43z{color:var(--kata-color-faint);flex:none;display:flex}.read.svelte-1ddq43z{cursor:default}.editing.svelte-1ddq43z{border-color:var(--kata-color-blue-ink);padding-inline:var(--kata-pad-sm)}.ie.svelte-1ddq43z input:where(.svelte-1ddq43z),.ie.svelte-1ddq43z textarea:where(.svelte-1ddq43z){min-width:0;color:inherit;font:inherit;appearance:none;background:0 0;border:0;outline:none;margin:0;padding:0}.ie.svelte-1ddq43z input:where(.svelte-1ddq43z):focus-visible,.ie.svelte-1ddq43z textarea:where(.svelte-1ddq43z):focus-visible{outline:none}.ie.svelte-1ddq43z input:where(.svelte-1ddq43z),.ie.svelte-1ddq43z textarea:where(.svelte-1ddq43z){flex:1;align-self:stretch;width:100%}.multi.svelte-1ddq43z{--kata-inline-edit-pad:calc((var(--kata-box,var(--kata-height-button)) - var(--kata-border-width) * 2 - var(--kata-text-size-body) * var(--kata-text-leading-body)) / 2);height:auto;min-height:var(--kata-box,var(--kata-height-button));white-space:normal;align-items:flex-start}.multi.svelte-1ddq43z .clamp:where(.svelte-1ddq43z){text-box:none;white-space:pre-wrap;text-overflow:clip;padding-top:0;padding-bottom:0;padding-block:var(--kata-inline-edit-pad);overflow:visible}.multi.svelte-1ddq43z:not(.editing){display:block}.multi.svelte-1ddq43z:not(.editing) .clamp:where(.svelte-1ddq43z){display:inline}.multi.svelte-1ddq43z:not(.editing) .pen:where(.svelte-1ddq43z){vertical-align:middle;margin-left:var(--kata-pad-sm);display:inline-flex}.ie.svelte-1ddq43z textarea:where(.svelte-1ddq43z){resize:none;field-sizing:content;line-height:var(--kata-text-leading-body);padding-block:var(--kata-inline-edit-pad)}.add.svelte-1ddq43z{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));color:var(--kata-color-blue-ink);font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:pointer;background:0 0;border:0;padding:0;display:inline-flex}.add.svelte-1ddq43z:hover{text-decoration:underline}.pair.svelte-nct6tm{--kata-pair-name:7.5rem;grid-template-columns:var(--kata-pair-cols,var(--kata-pair-name) minmax(0, 1fr));align-items:center;column-gap:var(--kata-gap-sm);min-width:0;height:var(--kata-box,var(--kata-height-button));padding-inline:var(--kata-inset,0px);font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);flex:none;grid-column:1/-1;display:grid}.read.svelte-nct6tm{align-items:baseline;height:auto}.tight.svelte-nct6tm{grid-template-columns:var(--kata-pair-cols,max-content minmax(0, 1fr))}.k.svelte-nct6tm{color:var(--kata-color-muted);text-box:trim-both cap alphabetic;padding-inline-start:calc(var(--kata-pair-depth,0) * var(--kata-pad-md));padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;display:block;overflow:clip}.k.link.svelte-nct6tm{color:var(--kata-color-blue-ink);text-decoration:none}.k.link.svelte-nct6tm:hover{text-decoration:underline}.row.svelte-nct6tm{align-items:center;min-width:0;display:flex}.row.svelte-nct6tm>*{flex:auto;min-width:0}.v.svelte-nct6tm{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.v.muted.svelte-nct6tm{color:var(--kata-color-muted)}.mono.svelte-nct6tm{font-family:var(--kata-font-mono)}.v.clamp.svelte-nct6tm{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;overflow-wrap:normal;min-width:0;overflow:clip}.note.svelte-nct6tm{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);grid-column:2}.top.svelte-nct6tm{align-items:start;height:auto}.top.svelte-nct6tm .k:where(.svelte-nct6tm){padding-top:calc((var(--kata-box,var(--kata-height-button)) - 1em * var(--kata-ink)) / 2 + var(--kata-ink-over) * 1em)}.noted.svelte-nct6tm{row-gap:var(--kata-gap-xs);height:auto}@container app (width<24rem){.pair.svelte-nct6tm{align-items:start;row-gap:var(--kata-gap-xs);grid-template-columns:minmax(0,1fr);height:auto}.note.svelte-nct6tm{grid-column:1}}.kv.svelte-9wn7eb{--kata-pair-name:7.5rem;--kata-pair-cols:subgrid;grid-template-columns:var(--kata-pair-name) minmax(0, 1fr);row-gap:var(--kata-gap-sm);column-gap:var(--kata-gap-sm);min-width:0;display:grid}.tight.svelte-9wn7eb{grid-template-columns:max-content minmax(0,1fr)}@container app (width<24rem){.kv.svelte-9wn7eb,.tight.svelte-9wn7eb{grid-template-columns:minmax(0,1fr)}}.link.svelte-4zbnt0{align-items:center;gap:var(--kata-gap-sm);color:var(--kata-color-blue-ink);font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);text-align:start;cursor:pointer;background:0 0;border:0;flex:none;padding:0;text-decoration:none;display:inline-flex;position:relative}.link.svelte-4zbnt0:hover{text-decoration:underline}.link.svelte-4zbnt0:after{content:"";inset-inline:0;height:var(--kata-height-icon-button);position:absolute;top:50%;translate:0 -50%}.link.svelte-4zbnt0:disabled{color:var(--kata-color-text);opacity:var(--kata-opacity-dim);cursor:default;text-decoration:none}.link.svelte-4zbnt0>svg{flex:none}.t.svelte-4zbnt0{min-width:0;display:block}[data-h] .t.svelte-4zbnt0{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em)}.kata-text.svelte-a1one5{min-width:0;margin:0;display:block}@container style(--kata-in-control:1){.kata-text.svelte-a1one5{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em)}.kata-text.svelte-a1one5:not(.clamp2):not(.wrap){white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;overflow:clip}}td .kata-text.svelte-a1one5,th .kata-text.svelte-a1one5{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em)}.num.svelte-a1one5{font-size:var(--kata-text-size-num);line-height:var(--kata-text-leading-num);letter-spacing:var(--kata-text-tracking-num);font-variant-numeric:tabular-nums;font-weight:600}.title.svelte-a1one5{font-size:var(--kata-text-size-title);line-height:var(--kata-text-leading-title);letter-spacing:var(--kata-text-tracking-title);font-weight:600}.h1.svelte-a1one5{font-size:var(--kata-text-size-h1);line-height:var(--kata-text-leading-h1);letter-spacing:var(--kata-text-tracking-h1);font-weight:600}.h2.svelte-a1one5{font-size:var(--kata-text-size-h2);line-height:var(--kata-text-leading-h2);letter-spacing:var(--kata-text-tracking-h2);font-weight:600}.body.svelte-a1one5{font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body)}.prose.svelte-a1one5{font-size:var(--kata-text-size-prose);line-height:var(--kata-text-leading-prose);letter-spacing:var(--kata-text-tracking-prose)}.caption.svelte-a1one5{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption)}.label.svelte-a1one5{font-size:var(--kata-text-size-label);line-height:var(--kata-text-leading-label);letter-spacing:var(--kata-text-tracking-label);font-weight:600}.glyph.svelte-a1one5{font-size:var(--kata-text-size-glyph);line-height:var(--kata-text-leading-glyph);letter-spacing:var(--kata-text-tracking-glyph);font-weight:600}.kata-text.mono.svelte-a1one5{font-family:var(--kata-font-mono);font-variant-numeric:tabular-nums}a.kata-text.svelte-a1one5{color:inherit;text-decoration:none}a.kata-text.svelte-a1one5:hover{text-decoration:underline}.tabular.svelte-a1one5{font-variant-numeric:tabular-nums}.muted.svelte-a1one5{color:var(--kata-color-muted)}.clamp.svelte-a1one5{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;overflow:clip}.wrap.svelte-a1one5{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.kata-text.clamp2.svelte-a1one5{text-box:none;padding-top:0;padding-bottom:0}.clamp2.svelte-a1one5{-webkit-line-clamp:2;line-clamp:2;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.input.svelte-1bu71rh{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:text;background:0 0;border-radius:0;justify-content:flex-start;width:100%;min-width:0;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.input.svelte-1bu71rh:focus-within{border-color:var(--kata-color-blue-ink)}.input.svelte-1bu71rh input:where(.svelte-1bu71rh){min-width:0;color:inherit;font:inherit;appearance:none;background:0 0;border:0;outline:none;margin:0;padding:0}.input.svelte-1bu71rh input:where(.svelte-1bu71rh):focus-visible{outline:none}.input.svelte-1bu71rh input:where(.svelte-1bu71rh){flex:1;align-self:stretch}.input.svelte-1bu71rh input:where(.svelte-1bu71rh)::placeholder{color:var(--kata-color-faint)}.unit.svelte-1bu71rh{color:var(--kata-color-muted);text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);flex:none}.title.svelte-1bu71rh{font-size:var(--kata-text-size-h2);line-height:var(--kata-text-leading-h2);letter-spacing:var(--kata-text-tracking-h2);font-weight:600}.input.svelte-1bu71rh input.mono:where(.svelte-1bu71rh){font-family:var(--kata-font-mono);font-variant-numeric:tabular-nums}.err.svelte-1bu71rh{border-color:var(--kata-color-red-ink)}.disabled.svelte-1bu71rh{opacity:var(--kata-opacity-dim);cursor:default}.disabled.svelte-1bu71rh .unit:where(.svelte-1bu71rh){color:inherit}.attributes.svelte-ohuajy{flex-direction:column;min-width:0;display:flex}.row.svelte-ohuajy{align-items:center;column-gap:var(--kata-gap-sm);min-width:0;height:var(--kata-box,var(--kata-height-button));padding-inline:var(--kata-inset,0px);flex:none;grid-template-columns:7.5rem minmax(0,1fr) auto;display:grid}.k.svelte-ohuajy,.v.svelte-ohuajy,.end.svelte-ohuajy{align-items:center;min-width:0;display:flex}.k.svelte-ohuajy>*,.v.svelte-ohuajy>*{flex:auto;min-width:0}.draft.svelte-ohuajy{height:var(--kata-height-button);--kata-box:var(--kata-height-button-sm)}.lock.svelte-ohuajy{display:flex}@container app (width<24rem){.row.svelte-ohuajy{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"k end""v v";height:auto}.k.svelte-ohuajy{grid-area:k}.v.svelte-ohuajy{grid-area:v}.end.svelte-ohuajy{grid-area:end}}.banner.svelte-1v3qr1c{border:var(--kata-border-width) solid var(--kata-color-line-strong);padding:var(--kata-pad-md);--kata-inset:0px;--kata-at-start:1;--kata-at-end:1;align-items:flex-start;gap:var(--kata-gap-sm);color:var(--kata-color-text);min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button);flex-wrap:wrap;display:flex}.floating.svelte-1v3qr1c{background:var(--kata-color-panel)}.line.svelte-1v3qr1c{align-items:flex-start;gap:var(--kata-gap-sm);flex:12em;min-width:0;display:flex}.mark.svelte-1v3qr1c{height:calc(var(--kata-text-size-body) * var(--kata-text-leading-body));flex:none;align-items:center;display:flex}.text.svelte-1v3qr1c{flex:auto;min-width:0}.act.svelte-1v3qr1c{align-items:center;gap:var(--kata-gap-sm);flex-wrap:wrap;flex:0 auto;min-width:0;max-width:100%;margin-left:auto;display:flex}.act.svelte-1v3qr1c>*{flex:0 auto;min-width:0;max-width:100%}.info.svelte-1v3qr1c{border-color:var(--kata-color-blue-ink)}.info.svelte-1v3qr1c .mark:where(.svelte-1v3qr1c){color:var(--kata-color-blue-ink)}.warn.svelte-1v3qr1c{border-color:var(--kata-color-yellow-ink)}.warn.svelte-1v3qr1c .mark:where(.svelte-1v3qr1c){color:var(--kata-color-yellow-ink)}.error.svelte-1v3qr1c{border-color:var(--kata-color-red-ink)}.error.svelte-1v3qr1c .mark:where(.svelte-1v3qr1c){color:var(--kata-color-red-ink)}.ok.svelte-1v3qr1c{border-color:var(--kata-color-green-ink)}.ok.svelte-1v3qr1c .mark:where(.svelte-1v3qr1c){color:var(--kata-color-green-ink)}.stack.svelte-6tymim{flex-direction:column;gap:0;min-width:0;display:flex}.stack[data-align=start].svelte-6tymim{align-items:flex-start}.stack[data-gap="2xs"].svelte-6tymim{gap:var(--kata-gap-2xs)}.stack[data-gap=xs].svelte-6tymim{gap:var(--kata-gap-xs)}.stack[data-gap=sm].svelte-6tymim{gap:var(--kata-gap-sm)}.stack[data-gap=md].svelte-6tymim{gap:var(--kata-gap-md)}.stack[data-gap=lg].svelte-6tymim{gap:var(--kata-gap-lg)}.stack[data-gap=xl].svelte-6tymim{gap:var(--kata-gap-xl)}.stack[data-gap="2xl"].svelte-6tymim{gap:var(--kata-gap-2xl)}.grid.svelte-cravdb{grid-template-columns:repeat(var(--kata-color-grid-columns), minmax(0, 1fr));gap:var(--kata-gap-2xs);min-width:0;display:grid}.cell.svelte-cravdb{aspect-ratio:1;background:var(--kata-color-grid-color);width:100%;box-shadow:inset 0 0 0 var(--kata-border-width) var(--kata-color-line);cursor:pointer;border:0;padding:0}.cell.on.svelte-cravdb{box-shadow:inset 0 0 0 calc(var(--kata-border-width) * 2) var(--kata-color-focus), inset 0 0 0 calc(var(--kata-border-width) * 3) var(--kata-color-panel)}.input.svelte-1nlre0b{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:text;background:0 0;border-radius:0;justify-content:flex-start;width:100%;min-width:0;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.input.svelte-1nlre0b:focus-within{border-color:var(--kata-color-blue-ink)}.input.svelte-1nlre0b input:where(.svelte-1nlre0b){min-width:0;color:inherit;font:inherit;appearance:none;background:0 0;border:0;outline:none;margin:0;padding:0}.input.svelte-1nlre0b input:where(.svelte-1nlre0b):focus-visible{outline:none}.input.svelte-1nlre0b input:where(.svelte-1nlre0b){text-align:end;font-variant-numeric:tabular-nums;flex:1;align-self:stretch}.input.svelte-1nlre0b input:where(.svelte-1nlre0b)::placeholder{color:var(--kata-color-faint)}.unit.svelte-1nlre0b{color:var(--kata-color-muted);text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);flex:none}.err.svelte-1nlre0b{border-color:var(--kata-color-red-ink)}.disabled.svelte-1nlre0b{opacity:var(--kata-opacity-dim);cursor:default}.disabled.svelte-1nlre0b .unit:where(.svelte-1nlre0b){color:inherit}.row.svelte-1acpv56{align-items:center;gap:var(--kata-gap-sm);min-width:0;display:flex}.row[data-gap="0"].svelte-1acpv56{gap:0}.row[data-gap="2xs"].svelte-1acpv56{gap:var(--kata-gap-2xs)}.row[data-gap=md].svelte-1acpv56{gap:var(--kata-gap-md)}.row[data-gap=lg].svelte-1acpv56{gap:var(--kata-gap-lg)}.row[data-align=start].svelte-1acpv56{align-items:flex-start}.row[data-align=end].svelte-1acpv56{align-items:flex-end}.row[data-align=stretch].svelte-1acpv56{align-items:stretch;min-height:0}.row[data-justify=end].svelte-1acpv56{justify-content:flex-end}.between.svelte-1acpv56{justify-content:space-between}.row.svelte-1acpv56>[data-role=mark]{flex:none}.wrap.svelte-1acpv56{flex-wrap:wrap}.wrap.svelte-1acpv56>*{flex-shrink:0;max-width:100%}.row.svelte-1acpv56:not(.between)>[data-role=caption]:last-child,.row.svelte-1acpv56:not(.between)>[data-role=p]:last-child{flex:auto;min-width:0}.trigger.svelte-6dk8e2{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:pointer;background:0 0;border-radius:0;justify-content:space-between;width:100%;min-width:0;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.trigger[aria-expanded=true].svelte-6dk8e2{border-color:var(--kata-color-blue-ink)}.v.svelte-6dk8e2{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;display:block;overflow:clip}.ph.svelte-6dk8e2{color:var(--kata-color-faint)}.trigger.svelte-6dk8e2 svg{flex:none}.err.svelte-6dk8e2{border-color:var(--kata-color-red-ink)}.disabled.svelte-6dk8e2{opacity:var(--kata-opacity-dim);cursor:default}.list.svelte-6dk8e2{background:var(--kata-color-panel);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);min-width:min(12rem, 100vw - var(--kata-gap-md) * 2);max-width:calc(100vw - var(--kata-gap-md) * 2);visibility:hidden;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;inset:auto;overflow:auto}.list.placed.svelte-6dk8e2{visibility:visible}.option.svelte-6dk8e2{align-items:center;gap:var(--kata-gap-sm);width:100%;min-height:var(--kata-height-list-item);padding-inline:var(--kata-pad-md);color:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);text-align:start;cursor:pointer;background:0 0;border:0;flex:none;display:flex}.option.svelte-6dk8e2:hover{background:var(--kata-color-raise)}.option.svelte-6dk8e2:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.option.two.svelte-6dk8e2{padding-block:var(--kata-pad-md)}.chk.svelte-6dk8e2{width:var(--kata-height-icon);flex:none;display:flex}.text.svelte-6dk8e2{gap:var(--kata-gap-xs);flex-direction:column;min-width:0;display:flex}.t.svelte-6dk8e2{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.label.svelte-6dk8e2{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;flex:1;min-width:0;overflow:clip}.desc.svelte-6dk8e2{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption)}.cp.svelte-1ssyxlp{pointer-events:auto;background:var(--kata-color-panel);border:var(--kata-border-width) solid var(--kata-color-line-strong);width:15rem;max-width:100%;padding:var(--kata-pad-md);--kata-inset:0px;--kata-at-start:1;--kata-at-end:1;--kata-box:var(--kata-height-button);flex:none;min-width:0}.cp.bare.svelte-1ssyxlp{background:0 0;border:0}.sv.svelte-1ssyxlp{background-image:linear-gradient(to top, #000, transparent), linear-gradient(to right, #fff, var(--kata-color-picker-hue,#03f));height:7.5rem;position:relative}.hue.svelte-1ssyxlp{background-image:linear-gradient(90deg,red,#ff0,#0f0,#0ff,#00f,#f0f,red);flex:auto;min-width:0;height:.5rem;position:relative}.knob.svelte-1ssyxlp{width:var(--kata-height-icon);height:var(--kata-height-icon);border:calc(var(--kata-border-width) * 2) solid var(--kata-color-panel);box-shadow:0 0 0 var(--kata-border-width) var(--kata-color-text);position:absolute;transform:translate(-50%,-50%)}.fmt.svelte-1ssyxlp{flex:none}.seat.svelte-ms9ed5{align-items:center;gap:var(--kata-gap-sm);min-width:0;display:inline-flex}.dots.svelte-ms9ed5{align-items:center;gap:var(--kata-gap-2xs);display:inline-flex}.dots.svelte-ms9ed5 i:where(.svelte-ms9ed5){width:var(--kata-size-xs-rem);height:var(--kata-size-xs-rem);background:var(--kata-color-muted);animation:1.2s ease-in-out infinite svelte-ms9ed5-pulse;display:inline-block}.dots.svelte-ms9ed5 i:where(.svelte-ms9ed5):nth-child(2){opacity:.6;animation-delay:.15s}.dots.svelte-ms9ed5 i:where(.svelte-ms9ed5):nth-child(3){opacity:.3;animation-delay:.3s}@keyframes svelte-ms9ed5-pulse{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.dots.svelte-ms9ed5 i:where(.svelte-ms9ed5){animation:none}}.state.svelte-1dth4nt{color:var(--kata-color-muted);--kata-box:var(--kata-height-button);min-width:0}.t.svelte-1dth4nt{color:var(--kata-color-text);min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);margin:0;display:block}.t.error.svelte-1dth4nt{color:var(--kata-color-red-ink)}.note.svelte-1dth4nt{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-muted);display:block}.footer.svelte-1l56ikx{justify-content:flex-end;align-items:center;gap:var(--kata-gap-sm);min-height:var(--kata-height-footer);padding:var(--kata-pad-md);border-top:var(--kata-border-width) solid var(--kata-color-line);font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button);flex-wrap:wrap;flex:none;display:flex}.lead.svelte-1l56ikx{flex:auto;align-items:center;min-width:0;margin-right:auto;display:flex}.actions.svelte-1l56ikx{justify-content:flex-end;align-items:center;gap:var(--kata-gap-sm);flex:none;max-width:100%;margin-left:auto;display:flex}@container app (width<48rem){.footer.svelte-1l56ikx{flex-direction:column;align-items:stretch}.actions.svelte-1l56ikx{flex-direction:column-reverse;align-items:stretch;margin-left:0}.lead.svelte-1l56ikx{order:1;margin-right:0}}.bar.svelte-1ur882v{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-height-toolbar);padding-inline:var(--kata-pad-md);min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button-sm);flex:none;display:flex}.bar.svelte-1ur882v>*{white-space:nowrap}.tail.svelte-1ur882v{padding-inline-end:var(--kata-pad-sm)}.two.svelte-1ur882v{height:auto;min-height:var(--kata-height-toolbar);padding-block:var(--kata-pad-md);align-items:flex-start}.two.svelte-1ur882v .title:where(.svelte-1ur882v){white-space:normal}.rule.svelte-1ur882v{border-bottom:var(--kata-border-width) solid var(--kata-color-line)}.title.svelte-1ur882v{font-size:var(--kata-text-size-h2);line-height:var(--kata-text-leading-h2);letter-spacing:var(--kata-text-tracking-h2);text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-weight:600;overflow:clip}.end.svelte-1ur882v{flex:none;align-items:center;gap:0;margin-left:auto;display:flex}.modal.svelte-1h44hk9{max-width:none;max-height:calc(100% - var(--kata-gap-lg) * 2);color:var(--kata-color-text);background:var(--kata-color-panel);border:var(--kata-border-width) solid var(--kata-color-line-strong);width:min(var(--kata-modal-width), 100% - var(--kata-gap-lg) * 2);--kata-box:var(--kata-height-button);flex-direction:column;margin:auto;padding:0;display:flex}.modal.svelte-1h44hk9:not([open]):not([data-inline]){display:none}.modal.svelte-1h44hk9::backdrop{background:var(--kata-color-scrim)}.sm.svelte-1h44hk9{--kata-modal-width:var(--kata-width-modal-sm)}.md.svelte-1h44hk9{--kata-modal-width:var(--kata-width-modal-md)}.lg.svelte-1h44hk9{--kata-modal-width:var(--kata-width-modal-lg)}.xl.svelte-1h44hk9{--kata-modal-width:var(--kata-width-modal-xl)}.modal.confirm.svelte-1h44hk9{width:min(var(--kata-width-modal-sm), 100% - var(--kata-gap-md) * 2)}.modal.full.svelte-1h44hk9{border:0;width:100%;max-width:100%;height:100%;max-height:100%}.modal[data-inline].svelte-1h44hk9{max-height:none;width:min(var(--kata-modal-width), 100%);margin:0}.sub.svelte-1h44hk9{padding:var(--kata-pad-sm) var(--kata-pad-md);border-bottom:var(--kata-border-width) solid var(--kata-color-line);flex:none}.body.svelte-1h44hk9{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:auto}.body.svelte-1h44hk9>*{flex:none}.body.svelte-1h44hk9:not(.flush){padding:var(--kata-pad-md);--kata-inset:0px;--kata-at-start:1;--kata-at-end:1}.body.flush.svelte-1h44hk9{--kata-inset:var(--kata-pad-md);--kata-at-start:0;--kata-at-end:0;padding:0}.drawbar.svelte-1iaoqhv{z-index:var(--kata-z-floating);align-items:center;gap:var(--kata-gap-md);padding:var(--kata-pad-sm);background:var(--kata-color-panel);color:var(--kata-color-text);border:var(--kata-border-width) solid var(--kata-color-line-strong);max-width:calc(100% - var(--kata-gap-md) * 2);--kata-box:var(--kata-height-button);display:flex;position:absolute;left:50%;overflow-x:auto;transform:translate(-50%)}.drawbar.svelte-1iaoqhv>*{flex:none}.group.svelte-1iaoqhv{align-items:center;gap:var(--kata-gap-2xs);display:flex}.inspector-row.svelte-mnvpz5{flex-direction:column;flex:none;min-width:0;display:flex}.small.svelte-mnvpz5{--kata-box:var(--kata-height-button-sm)}.end.svelte-mnvpz5{justify-content:flex-end;align-items:center;min-width:0;display:flex}.trigger.svelte-25hu01{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:pointer;background:0 0;border-radius:0;justify-content:space-between;width:100%;min-width:0;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.trigger.svelte-25hu01:focus-within{border-color:var(--kata-color-blue-ink)}.trigger.svelte-25hu01 select:where(.svelte-25hu01){min-width:0;color:inherit;font:inherit;appearance:none;background:0 0;border:0;outline:none;margin:0;padding:0}.trigger.svelte-25hu01 select:where(.svelte-25hu01):focus-visible{outline:none}.trigger.svelte-25hu01 select:where(.svelte-25hu01){cursor:pointer;flex:1;align-self:stretch}.trigger.svelte-25hu01 select:where(.svelte-25hu01):invalid{color:var(--kata-color-faint)}.trigger.svelte-25hu01 select:where(.svelte-25hu01) option:where(.svelte-25hu01){background:var(--kata-color-panel);color:var(--kata-color-text)}.trigger.svelte-25hu01 svg{flex:none}.err.svelte-25hu01{border-color:var(--kata-color-red-ink)}.disabled.svelte-25hu01{opacity:var(--kata-opacity-dim);cursor:default}.disabled.svelte-25hu01 select:where(.svelte-25hu01){cursor:default}.v.svelte-1t5kqdh{min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);display:block}@container style(--kata-in-control:1){.v.svelte-1t5kqdh{text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em)}}.mono.svelte-1t5kqdh{font-family:var(--kata-font-mono);font-variant-numeric:tabular-nums}.muted.svelte-1t5kqdh{color:var(--kata-color-muted)}.clamp.svelte-1t5kqdh{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;overflow:clip}.seg.svelte-1cta4cu{scrollbar-width:none;flex:none;max-width:100%;display:inline-flex;overflow-x:auto}.seg.svelte-1cta4cu::-webkit-scrollbar{display:none}.opt.svelte-1cta4cu{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-box,var(--kata-height-button));padding-block:0;padding-inline:var(--kata-pad-md);border:var(--kata-border-width) solid var(--kata-color-line-strong);color:var(--kata-color-text);white-space:nowrap;font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);cursor:pointer;background:0 0;border-radius:0;flex:none;min-width:0;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.opt.svelte-1cta4cu:hover:not(.on):not(:disabled){background:var(--kata-color-raise)}.opt.svelte-1cta4cu:active:not(:disabled){background:var(--kata-color-raise-2);transition:none}.opt.svelte-1cta4cu:disabled{opacity:var(--kata-opacity-dim);cursor:default}.opt.svelte-1cta4cu+.opt:where(.svelte-1cta4cu){border-left-width:0}.opt.svelte-1cta4cu>svg{flex:none}.opt.svelte-1cta4cu .t:where(.svelte-1cta4cu){text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.on.svelte-1cta4cu{background:var(--kata-color-solid);color:var(--kata-color-on-solid)}.icon.svelte-1cta4cu{width:var(--kata-box,var(--kata-height-button));justify-content:center;padding:0}.opt.svelte-1cta4cu:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.slider.svelte-excj0r{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-height-button-sm);min-width:0;display:flex}input.svelte-excj0r{appearance:none;min-width:0;height:var(--kata-height-button-sm);cursor:pointer;background:0 0;border:0;flex:1;margin:0;padding:0}input.svelte-excj0r::-webkit-slider-runnable-track{height:var(--kata-height-icon);background:linear-gradient(to right, var(--kata-color-solid) 0 var(--kata-slider-fill), var(--kata-color-line-strong) var(--kata-slider-fill) 100%) center/100% calc(var(--kata-border-width) * 2) no-repeat}input.svelte-excj0r::-moz-range-track{height:var(--kata-height-icon);background:linear-gradient(to right, var(--kata-color-solid) 0 var(--kata-slider-fill), var(--kata-color-line-strong) var(--kata-slider-fill) 100%) center/100% calc(var(--kata-border-width) * 2) no-repeat}input.svelte-excj0r::-webkit-slider-thumb{appearance:none;width:var(--kata-height-icon);height:var(--kata-height-icon);background:var(--kata-color-text);border:0;border-radius:0}input.svelte-excj0r::-moz-range-thumb{appearance:none;width:var(--kata-height-icon);height:var(--kata-height-icon);background:var(--kata-color-text);border:0;border-radius:0}input.svelte-excj0r:disabled{cursor:default}.val.svelte-excj0r{text-align:end;width:3.5rem;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);font-variant-numeric:tabular-nums;text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);flex:none}.disabled.svelte-excj0r{opacity:var(--kata-opacity-dim)}.swatch.svelte-m4u3ru{width:var(--kata-height-icon);height:var(--kata-height-icon);background:var(--kata-swatch-color);box-shadow:inset 0 0 0 var(--kata-border-width) var(--kata-color-line);flex:none;display:inline-block}.swatch[data-shape=dot].svelte-m4u3ru{border-radius:50%;width:.5rem;height:.5rem}.swatch[data-shape=line].svelte-m4u3ru{width:.875rem;height:calc(var(--kata-border-width) * 2);box-shadow:none}.swatch[data-shape=area].svelte-m4u3ru{width:.625rem;height:.625rem;box-shadow:inset 0 0 0 var(--kata-border-width) var(--kata-color-line-strong)}.swatch[data-shape=icon].svelte-m4u3ru{box-shadow:none;background:0 0;position:relative}.halo.svelte-m4u3ru,.ink.svelte-m4u3ru{display:flex;position:absolute;inset:0}.halo.svelte-m4u3ru{color:var(--kata-color-line-strong)}.halo.svelte-m4u3ru svg.kata-icon{stroke-width:3.5px}.swatch[data-shape=ramp].svelte-m4u3ru{width:3rem;height:.5rem;box-shadow:none}.swatch.fill.svelte-m4u3ru{width:100%}.ctl.svelte-1mse84q{align-items:center;gap:var(--kata-gap-sm);height:var(--kata-height-button-sm);padding-inline:var(--kata-inset,0px);cursor:pointer;min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);display:flex}.between.svelte-1mse84q{justify-content:space-between}.indent.svelte-1mse84q{padding-left:var(--kata-pad-md)}.t.svelte-1mse84q{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;display:block;overflow:clip}.grow.svelte-1mse84q{flex:auto}.toggle.svelte-1mse84q{appearance:none;width:var(--kata-height-button);height:var(--kata-height-badge);border:var(--kata-border-width) solid var(--kata-color-line-strong);cursor:pointer;background-color:#0000;background-image:linear-gradient(var(--kata-color-muted) 0 0);background-repeat:no-repeat;background-size:calc(var(--kata-height-badge) - var(--kata-border-width) * 6) calc(var(--kata-height-badge) - var(--kata-border-width) * 6);background-position:left calc(var(--kata-border-width) * 2) center;border-radius:0;flex:none;margin:0;padding:0;transition:background-color .12s,border-color .12s}.toggle.svelte-1mse84q:checked{background-color:var(--kata-color-solid);background-image:linear-gradient(var(--kata-color-on-solid) 0 0);background-position:right calc(var(--kata-border-width) * 2) center;border-color:var(--kata-color-solid)}.disabled.svelte-1mse84q{opacity:var(--kata-opacity-dim);cursor:default}.disabled.svelte-1mse84q .toggle:where(.svelte-1mse84q){cursor:default}.floating.svelte-1e14x9s{z-index:var(--kata-z-floating);background:var(--kata-color-panel);color:var(--kata-color-text);border:var(--kata-border-width) solid var(--kata-color-line-strong);--kata-inset:var(--kata-pad-md);--kata-at-start:0;--kata-at-end:0;--kata-box:var(--kata-height-button);min-width:0;max-width:100%;padding:0;position:absolute}.flow.svelte-1e14x9s{flex:auto;min-height:0;display:flex;position:static}.panel.svelte-c5m1zo{background:var(--kata-color-panel);min-width:0;min-height:0;color:var(--kata-color-text);--kata-box:var(--kata-height-button);flex-direction:column;flex:none;display:flex}.panel.svelte-c5m1zo>*{flex:none}.panel.svelte-c5m1zo>.scroll:where(.svelte-c5m1zo){flex:auto}.grip.svelte-c5m1zo{position:relative}.handle.svelte-c5m1zo{height:var(--kata-pad-sm);z-index:1;cursor:ns-resize;touch-action:none;position:absolute;top:0;left:0;right:0}.handle.svelte-c5m1zo:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.fit.svelte-c5m1zo{align-self:flex-start;height:auto;max-height:100%}.panel[data-side=rail].svelte-c5m1zo{width:var(--kata-width-rail);max-width:100%}.panel[data-side=panel].svelte-c5m1zo{width:var(--kata-width-panel);max-width:100%}.panel[data-side=fill].svelte-c5m1zo{flex:auto;width:100%}.scroll.svelte-c5m1zo{--kata-inset:var(--kata-pad-md);--kata-at-start:0;--kata-at-end:0;min-width:0;min-height:0;padding:0;overflow:auto}.tabs.svelte-94ygyu{border-bottom:var(--kata-border-width) solid var(--kata-color-line);flex:none;min-width:0;display:flex;position:relative;overflow:clip}.tabs.bar.svelte-94ygyu{border-bottom:0;flex:auto}.tabs.bar.svelte-94ygyu .tab:where(.svelte-94ygyu){height:var(--kata-height-toolbar)}.tab.svelte-94ygyu{align-items:center;gap:var(--kata-gap-2xs);height:var(--kata-height-list-item);padding-inline:var(--kata-pad-md);color:var(--kata-color-muted);font:inherit;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:none;text-decoration:none;transition:color .12s;display:inline-flex}.tab.svelte-94ygyu:hover{color:var(--kata-color-text);background:var(--kata-color-raise);text-decoration:none}.tab.svelte-94ygyu:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.t.svelte-94ygyu{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.on.svelte-94ygyu{color:var(--kata-color-text);box-shadow:inset 0 calc(var(--kata-border-width) * -2) 0 var(--kata-color-blue-ink)}.measure.svelte-94ygyu{inset-inline-start:0;visibility:hidden;pointer-events:none;white-space:nowrap;display:flex;position:absolute;top:0}.name.svelte-i0coks{flex-direction:column;flex:auto;min-width:0;display:flex}.kata-section-header.svelte-ohv8ws{--kata-inset:var(--kata-pad-md);--kata-at-start:0;--kata-at-end:0;min-width:0;--kata-box:var(--kata-height-button);flex-direction:column;flex:none;padding:0;padding-block-start:var(--kata-pad-sm);display:flex}.kata-section-header.svelte-ohv8ws:first-child,[data-role=rule]+.kata-section-header.svelte-ohv8ws{padding-block-start:var(--kata-pad-lg)}.rule.svelte-ohv8ws{border-top:var(--kata-border-width) solid var(--kata-color-line);padding-block-start:var(--kata-pad-lg)}.kata-section-header:has(+.kata-section-header.rule)>.body.svelte-ohv8ws{padding-bottom:var(--kata-pad-lg)}.kata-section-header.flush:has(+.kata-section-header.rule)>.body.svelte-ohv8ws{padding-bottom:var(--kata-pad-sm)}.body.svelte-ohv8ws{padding:var(--kata-pad-md);--kata-inset:0px;min-width:0}.kata-section-header.svelte-ohv8ws:not(.flush)>.body:where(.svelte-ohv8ws){--kata-at-start:1;--kata-at-end:1}.flush.svelte-ohv8ws>.body:where(.svelte-ohv8ws){--kata-inset:var(--kata-pad-md);padding:0}.flush.svelte-ohv8ws>.body:where(.svelte-ohv8ws)>[data-role=list-item]:last-child{padding-bottom:var(--kata-pad-md)}.head.svelte-ohv8ws{align-items:center;gap:var(--kata-gap-sm);padding-inline:var(--kata-pad-md);min-width:0;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button-sm);display:flex}.label.svelte-ohv8ws{font-size:var(--kata-text-size-label);line-height:var(--kata-text-leading-label);letter-spacing:var(--kata-text-tracking-label);text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:clip}.side.svelte-ohv8ws{align-items:center;gap:var(--kata-gap-sm);height:0;margin-left:auto;display:flex;overflow:visible}.kbd.svelte-12dwgij{height:var(--kata-height-badge);padding-inline:var(--kata-pad-xs);border:var(--kata-border-width) solid var(--kata-color-line-strong);font-family:var(--kata-font-mono);font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);white-space:nowrap;flex:none;justify-content:center;align-items:center;display:inline-flex}.key.svelte-12dwgij{text-box:trim-both cap alphabetic;min-width:0;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);display:block}.bare.svelte-12dwgij{border:0;height:auto;padding:0}.markbox.svelte-1dtk7o4{width:var(--kata-height-icon);height:var(--kata-height-icon);flex:none;justify-content:center;align-items:center;display:inline-flex}.glyph.svelte-1dtk7o4{font-family:var(--kata-glyph-font,inherit)}.tree.svelte-1e58r0m{flex:none;min-width:0}.tree[data-rows=mark].svelte-1e58r0m{--kata-list-item-height:var(--kata-height-list-item-mark)}.tree[data-rows=box].svelte-1e58r0m{--kata-list-item-height:var(--kata-height-list-item-lg)}.tree[data-rows=thumb].svelte-1e58r0m{--kata-list-item-height:var(--kata-height-thumbnail-row)}.tree[data-rows=two].svelte-1e58r0m{--kata-list-item-height:var(--kata-height-list-item-two)}.row.svelte-1g8tp55{align-items:center;gap:var(--kata-gap-sm);min-height:var(--kata-list-item-height,var(--kata-height-list-item));padding-inline:var(--kata-inset,var(--kata-pad-md));width:100%;min-width:0;color:inherit;cursor:default;font-size:var(--kata-text-size-body);line-height:var(--kata-text-leading-body);letter-spacing:var(--kata-text-tracking-body);--kata-box:var(--kata-height-button-sm);flex:none;text-decoration:none;display:grid;position:relative}.row.svelte-1g8tp55 [data-role=mark][data-h]:not([data-h=icon]),.row.svelte-1g8tp55 [data-role=mark][data-kata-tall],.row.svelte-1g8tp55 [data-role=box][data-h]:not(.ghost),.row.svelte-1g8tp55 input:not([type=checkbox]):not([type=radio]),.row.svelte-1g8tp55 select,.row.svelte-1g8tp55 textarea{margin-block:var(--kata-text-size-body)}.row.svelte-1g8tp55 [data-role=stack]{padding-block:var(--kata-text-size-body)}.row.svelte-1g8tp55 [data-role=stack] [data-role=stack]{padding-block:0}.row.svelte-1g8tp55 [data-role=stack] [data-role=mark][data-h]:not([data-h=icon]),.row.svelte-1g8tp55 [data-role=stack] [data-role=mark][data-kata-tall],.row.svelte-1g8tp55 [data-role=stack] [data-role=box][data-h]:not(.ghost),.row.svelte-1g8tp55 [data-role=stack] input:not([type=checkbox]):not([type=radio]),.row.svelte-1g8tp55 [data-role=stack] select,.row.svelte-1g8tp55 [data-role=stack] textarea,.row.svelte-1g8tp55 [data-role=box] input:not([type=checkbox]):not([type=radio]),.row.svelte-1g8tp55 [data-role=box] select,.row.svelte-1g8tp55 [data-role=box] textarea{margin-block:0}.row.svelte-1g8tp55>*{min-width:0}.row.svelte-1g8tp55>:where(span,a,p):not([data-role]):not([data-h]){text-box:trim-both cap alphabetic;padding-top:calc(var(--kata-ink-over) * 1em);padding-bottom:calc(var(--kata-ink-under) * 1em);white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;overflow:clip}.row.svelte-1g8tp55:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.tail.svelte-1g8tp55{padding-inline-end:var(--kata-pad-sm)}.row[role=button].svelte-1g8tp55,a.row.svelte-1g8tp55{cursor:pointer}.row[role=button].svelte-1g8tp55:hover,a.row.svelte-1g8tp55:hover{background:var(--kata-color-raise)}.sel.svelte-1g8tp55{background:var(--kata-color-raise);box-shadow:inset 2px 0 0 var(--kata-color-blue-ink)}.rule.svelte-1g8tp55{border-bottom:var(--kata-border-width) solid var(--kata-color-line)}.rule.svelte-1g8tp55:last-child{border-bottom:0}.plain.svelte-1g8tp55,.plain.svelte-1g8tp55:hover{cursor:default;background:0 0}.sel.plain.svelte-1g8tp55{background:var(--kata-color-raise)}.tree-row.svelte-sy678e{flex:none;min-width:0}.tree-row.svelte-sy678e>[data-role=list-item]{padding-left:calc(var(--kata-pad-md) + var(--kata-tree-depth,0) * var(--kata-pad-md))}.seat.svelte-sy678e{width:var(--kata-height-icon-button);flex:none}.grip.svelte-sy678e{top:50%;left:calc(var(--kata-pad-md) + var(--kata-tree-depth,0) * var(--kata-pad-md) + var(--kata-height-icon-button) + var(--kata-pad-sm));translate:calc(-1 * (var(--kata-height-icon) + var(--kata-pad-2xs))) -50%;width:var(--kata-pad-md);height:var(--kata-height-icon-button);color:var(--kata-color-faint);cursor:grab;opacity:0;justify-content:center;align-items:center;transition:opacity .12s;display:inline-flex;position:absolute}.grip.beside.svelte-sy678e{left:calc(var(--kata-pad-md) + var(--kata-tree-depth,0) * var(--kata-pad-md))}.tree-row.svelte-sy678e:hover .grip:where(.svelte-sy678e),.tree-row.svelte-sy678e:focus-within .grip:where(.svelte-sy678e),.grip.show.svelte-sy678e{opacity:1}.chev.svelte-sy678e{width:var(--kata-height-icon-button);height:var(--kata-height-icon-button);color:var(--kata-color-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.chev.svelte-sy678e:hover{background:var(--kata-color-raise-2);color:var(--kata-color-text)}.chev.svelte-sy678e:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.main.svelte-sy678e{align-items:center;gap:var(--kata-gap-sm);display:flex}.main.svelte-sy678e>[data-role=stack]{white-space:normal;flex:auto;min-width:0}.end.svelte-sy678e{flex:none;align-items:center;gap:0;display:flex}.end.svelte-sy678e>:not([data-keep]){opacity:0}.tree-row.svelte-sy678e .end:where(.svelte-sy678e) [data-role=mark][data-h]{margin-block:0}@container app (width<24rem){.end.svelte-sy678e{right:var(--kata-pad-sm);position:absolute;top:50%;transform:translateY(-50%)}}.tree-row.svelte-sy678e:hover .end:where(.svelte-sy678e)>*,.tree-row.svelte-sy678e:focus-within .end:where(.svelte-sy678e)>*,.tree-row[data-open].svelte-sy678e .end:where(.svelte-sy678e)>*{opacity:1}.hidden.svelte-sy678e,.dimmed.svelte-sy678e,.dragging.svelte-sy678e{opacity:var(--kata-opacity-dim)}.sortghost>.tree-row.svelte-sy678e>[data-role=list-item],.tree-row.svelte-sy678e.sortghost>[data-role=list-item]{background:var(--kata-color-raise-2);box-shadow:inset 0 0 0 calc(var(--kata-border-width) * 2) var(--kata-color-blue-ink)}.sortchosen>.tree-row.svelte-sy678e>[data-role=list-item],.tree-row.svelte-sy678e.sortchosen>[data-role=list-item]{background:var(--kata-color-raise-2)}.layer-tree.svelte-h7so0d,.item.svelte-h7so0d,.zone.svelte-h7so0d{flex-direction:column;flex:none;min-width:0;display:flex}.rename.svelte-h7so0d{flex:auto;min-width:0;display:flex}.list.svelte-1p9xdg6{min-width:0}.list[data-rows=mark].svelte-1p9xdg6{--kata-list-item-height:var(--kata-height-list-item-mark)}.list[data-rows=box].svelte-1p9xdg6{--kata-list-item-height:var(--kata-height-list-item-lg)}.list[data-rows=thumb].svelte-1p9xdg6{--kata-list-item-height:var(--kata-height-thumbnail-row)}.list[data-rows=two].svelte-1p9xdg6{--kata-list-item-height:var(--kata-height-list-item-two)}.sheet.svelte-133xsmz{background:var(--kata-color-panel);min-width:0;max-height:100%;color:var(--kata-color-text);border-top:var(--kata-border-width) solid var(--kata-color-line-strong);z-index:var(--kata-z-sheet);--kata-box:var(--kata-height-button);flex-direction:column;transition:height .24s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;bottom:0;left:0;right:0}.sheet.svelte-133xsmz>*{flex:none}.sheet.svelte-133xsmz>.scroll:where(.svelte-133xsmz){flex:auto}aside.sheet[data-inline].svelte-133xsmz{flex:none;position:static}.sheet.dragging.svelte-133xsmz{transition:none}.sheet[data-stage=peek].svelte-133xsmz>.scroll:where(.svelte-133xsmz):not(.pane),.sheet[data-stage=peek].svelte-133xsmz>.scroll.pane:where(.svelte-133xsmz) .scroll{display:none}.sheet[data-stage=half].svelte-133xsmz{height:50%}.sheet[data-stage=full].svelte-133xsmz{height:100%}.scroll.svelte-133xsmz{--kata-inset:var(--kata-pad-md);--kata-at-start:0;--kata-at-end:0;min-width:0;min-height:0;padding:0;overflow:auto}.scroll.pane.svelte-133xsmz{display:flex;overflow:hidden}.scroll.pane.svelte-133xsmz>*{flex:auto;width:100%;max-width:none;min-height:0}.handle.svelte-133xsmz{height:var(--kata-gap-md);cursor:grab;touch-action:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.handle.svelte-133xsmz:active{cursor:grabbing}.handle.svelte-133xsmz:before{content:"";width:calc(var(--kata-gap-md) * 2);height:calc(var(--kata-border-width) * 2);background:var(--kata-color-line-strong)}.progress.svelte-ljnajx{height:var(--kata-gap-2xs);background:var(--kata-color-line);flex:none;min-width:0;position:relative;overflow:hidden}.fill.svelte-ljnajx{background:var(--kata-color-solid);height:100%;position:absolute;top:0;left:0}.indet.svelte-ljnajx .fill:where(.svelte-ljnajx){width:30%;animation:1.6s ease-in-out infinite svelte-ljnajx-flow;left:35%}@keyframes svelte-ljnajx-flow{0%{transform:translate(-135%)}to{transform:translate(135%)}}@media (prefers-reduced-motion:reduce){.indet.svelte-ljnajx .fill:where(.svelte-ljnajx){animation:none}}.kata-section.svelte-1owbyz{min-width:0;padding-bottom:var(--kata-gap-lg);--kata-box:var(--kata-height-button);flex-direction:column;display:flex}.kata-section.flush.svelte-1owbyz{padding-bottom:var(--kata-gap-sm)}.kata-section.svelte-1owbyz:last-child{padding-bottom:0}.kata-section.svelte-1owbyz:not(:first-child){padding-top:var(--kata-pad-lg)}.kata-section.svelte-1owbyz+.kata-section{border-top:var(--kata-border-width) solid var(--kata-color-line)}.title.svelte-1owbyz{font-size:var(--kata-text-size-h2);line-height:var(--kata-text-leading-h2);letter-spacing:var(--kata-text-tracking-h2);text-box:trim-start cap alphabetic;padding-top:var(--kata-edge-top);min-width:0;margin:0;font-weight:600}.body.svelte-1owbyz{--kata-inset:0px;--kata-at-start:1;--kata-at-end:1;min-width:0}.head.svelte-1owbyz{justify-content:space-between;align-items:center;gap:var(--kata-gap-sm);flex-wrap:wrap;min-width:0;display:flex}.status.svelte-1owbyz{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-muted)}.note.svelte-1owbyz{font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-muted);min-width:0;margin:0}.stat.svelte-8z7i8c{flex-direction:column;min-width:0;display:flex}.v.svelte-8z7i8c{font-size:var(--kata-text-size-num);line-height:var(--kata-text-leading-num);letter-spacing:var(--kata-text-tracking-num);font-variant-numeric:tabular-nums;font-variant-numeric:tabular-nums;font-weight:600}.k.svelte-8z7i8c{align-items:center;gap:var(--kata-gap-2xs);min-width:0;font-size:var(--kata-text-size-caption);line-height:var(--kata-text-leading-caption);letter-spacing:var(--kata-text-tracking-caption);color:var(--kata-color-muted);display:flex}.k.svelte-8z7i8c>svg{flex:none}.t.svelte-8z7i8c{white-space:nowrap;overflow-clip-margin:.382em;text-overflow:ellipsis;min-width:0;display:block;overflow:clip}.stats.svelte-198v5v7{gap:var(--kata-gap-sm) var(--kata-gap-lg);flex-wrap:wrap;min-width:0;display:flex}.veil.svelte-1xzvv0e{z-index:var(--kata-z-modal);background:var(--kata-color-ground);place-items:center;display:grid;position:absolute;inset:0}.shell.svelte-bn7tso{width:100%;min-width:0;height:100%;min-height:0;color:var(--kata-color-text);flex-direction:column;display:flex;position:relative;overflow:hidden;container:app/inline-size}.shell.svelte-bn7tso>.top:where(.svelte-bn7tso){flex:none;min-width:0}.body.svelte-bn7tso{flex:auto;min-width:0;min-height:0;display:flex}.side.svelte-bn7tso{flex:none;max-width:50%;min-height:0;display:flex}.side.svelte-bn7tso>*{flex:auto;min-height:0}.side.left.svelte-bn7tso{border-right:var(--kata-border-width) solid var(--kata-color-line-strong)}.side.right.svelte-bn7tso{border-left:var(--kata-border-width) solid var(--kata-color-line-strong)}.main.svelte-bn7tso{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.stage.svelte-bn7tso{flex:auto;min-height:0;position:relative;overflow:hidden}.surface.svelte-bn7tso{position:absolute;inset:0}.bottom.svelte-bn7tso{left:0;right:0;bottom:var(--kata-shell-lift,0px);height:0;position:absolute}.stage.svelte-bn7tso>[data-role=floating]{box-sizing:border-box;width:var(--kata-width-panel);max-width:calc(100% - var(--kata-gap-md) * 2);max-height:calc(100% - var(--kata-gap-md) * 2);flex-direction:column;display:flex}.stage.svelte-bn7tso .pane:where(.svelte-bn7tso){flex-direction:column;flex:0 auto;min-height:0;display:flex}.stage.svelte-bn7tso .pane:where(.svelte-bn7tso)>*{flex:0 auto;min-height:0}.sheet-seat.svelte-bn7tso{pointer-events:none;position:absolute;inset:0}.sheet-seat.svelte-bn7tso>*{pointer-events:auto}.dock.svelte-bn7tso{min-height:0;height:clamp(var(--kata-height-toolbar), var(--kata-shell-dock,38.2%), 100% - var(--kata-height-toolbar));border-top:var(--kata-border-width) solid var(--kata-color-line-strong);flex:none;display:flex;position:relative}.dock.svelte-bn7tso>*{flex:auto;min-height:0}.shell.overlay.svelte-bn7tso{pointer-events:none}.shell.overlay.svelte-bn7tso>.top:where(.svelte-bn7tso),.shell.overlay.svelte-bn7tso>.body:where(.svelte-bn7tso)>.side:where(.svelte-bn7tso),.shell.overlay.svelte-bn7tso>.body:where(.svelte-bn7tso)>.main:where(.svelte-bn7tso)>.dock:where(.svelte-bn7tso),.shell.overlay.svelte-bn7tso>.body:where(.svelte-bn7tso)>.main:where(.svelte-bn7tso)>.stage:where(.svelte-bn7tso)>.bottom:where(.svelte-bn7tso),.shell.overlay.svelte-bn7tso>.body:where(.svelte-bn7tso)>.main:where(.svelte-bn7tso)>.stage:where(.svelte-bn7tso)>[data-role=floating],.shell.overlay.svelte-bn7tso>.body:where(.svelte-bn7tso)>.main:where(.svelte-bn7tso)>.stage:where(.svelte-bn7tso)>[data-role=veil],.shell.overlay.svelte-bn7tso>dialog{pointer-events:auto}.grip.svelte-bn7tso{height:var(--kata-pad-sm);z-index:1;cursor:ns-resize;touch-action:none;flex:none;position:absolute;top:0;left:0;right:0}.grip.svelte-bn7tso:focus-visible{outline:2px solid var(--kata-color-focus);outline-offset:-2px}.markup.svelte-z8ueu3{width:var(--kata-height-icon);height:var(--kata-height-icon);flex:none;display:block}.markup.svelte-z8ueu3>svg{width:100%;height:100%;display:block}.inspector.svelte-17w6cpd{min-width:0;height:100%;min-height:0;max-height:100%;display:flex}.layer-panel.svelte-1kmcjp7{flex-direction:column;min-width:0;display:flex}.active.svelte-1kmcjp7{flex:none;display:inline-flex}.legend.svelte-pswzrf{flex-direction:column;min-width:0;display:flex}
3
+ /*$vite$:1*/
@@ -0,0 +1,23 @@
1
+ /** The theme of the interface: `light`, `dark`, or `auto` to follow the system */
2
+ export type Theme = 'light' | 'dark' | 'auto';
3
+ /** The query of the system's preference that `auto` follows */
4
+ export declare const LIGHT_QUERY = "(prefers-color-scheme: light)";
5
+ /** The theme of the options, `auto` when left out */
6
+ export declare function checkTheme(theme: Theme | undefined): Theme;
7
+ /** The theme of a root element, to change and to stop following the system */
8
+ export interface ThemeControl {
9
+ /** Changes the theme */
10
+ set(theme: Theme): void;
11
+ /** Stops following the system. A second call does nothing */
12
+ destroy(): void;
13
+ }
14
+ /**
15
+ * Keeps the theme of a root element. With `auto`, it follows the system's preference while it
16
+ * lasts; without `window.matchMedia`, `auto` is dark.
17
+ *
18
+ * `onlook` is called with the look applied (true for light) each time it is applied: at once,
19
+ * on each change of the theme and, with `auto`, on each change of the system's preference.
20
+ *
21
+ * @throws Error when the theme is not `light`, `dark` or `auto`
22
+ */
23
+ export declare function themeControl(root: HTMLElement, theme: Theme | undefined, onlook?: (light: boolean) => void): ThemeControl;
@@ -0,0 +1,56 @@
1
+ import { type DrawbarTool, type IconComponent, type IconSource } from '@sakuzu/kata/svelte';
2
+ import type { Mode } from '@sakuzu/maplibre-gl-draw';
3
+ import type { Messages } from './messages.js';
4
+ import type { ToolEntry, ToolId, ToolSpec } from './types.js';
5
+ /** The built-in tools, in the order of the toolbar */
6
+ export declare const TOOL_IDS: readonly ToolId[];
7
+ /** The mode, the key and the group of each built-in tool */
8
+ export declare const BUILTIN_TOOLS: Readonly<Record<ToolId, {
9
+ mode: Mode;
10
+ shortcut: string;
11
+ group: string;
12
+ }>>;
13
+ /** The IDs that the toolbar keeps for its own buttons */
14
+ export declare const DELETE_ID = "delete";
15
+ export declare const SNAPPING_ID = "snapping";
16
+ /** The built-in icons, by name: kata's icons where it has them, Lucide's for the rest */
17
+ export declare const BUILTIN_ICONS: Readonly<Record<string, IconSource>>;
18
+ /** Whether a name is the ID of a built-in tool */
19
+ export declare function isToolId(value: unknown): value is ToolId;
20
+ /**
21
+ * Checks a tool of the application
22
+ *
23
+ * @throws Error when a field is missing or has the wrong type, or the icon is neither markup
24
+ * nor the name of a built-in icon
25
+ */
26
+ export declare function checkSpec(spec: ToolSpec): void;
27
+ /**
28
+ * The tools of the options, checked
29
+ *
30
+ * @throws Error when a name is not a built-in tool, a tool is not valid, or two tools share an ID
31
+ */
32
+ export declare function normalizeTools(tools?: readonly ToolEntry[]): ToolEntry[];
33
+ /** The ID of a tool */
34
+ export declare function entryId(entry: ToolEntry): string;
35
+ /**
36
+ * The tools with one more: after the last tool of its group, or at the end when no tool is in
37
+ * its group
38
+ */
39
+ export declare function insertTool(entries: readonly ToolEntry[], spec: ToolSpec): ToolEntry[];
40
+ /** A tool as `tools.list()` returns it: a built-in tool with its words and the name of its icon */
41
+ export declare function toSpec(entry: ToolEntry, messages: Messages): ToolSpec;
42
+ /**
43
+ * An icon component that draws SVG markup, made once for each markup. It receives the class of
44
+ * kata's icons and passes it on, so the markup is sized like the built-in icons
45
+ */
46
+ export declare function markupIcon(svg: string): IconComponent;
47
+ /** The icon of a tool */
48
+ export declare function specIcon(spec: ToolSpec): IconSource;
49
+ /** The key of a shortcut as kata writes it: modifiers and keys in lowercase */
50
+ export declare function shortcutKey(shortcut: string): string;
51
+ /**
52
+ * The tools of the Drawbar of kata
53
+ *
54
+ * @param keys Whether the keys are shown in the tooltips (only when the shortcuts are on)
55
+ */
56
+ export declare function drawbarTools(specs: readonly ToolSpec[], keys: boolean): DrawbarTool[];