@teacss/preset-official 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ # MIT License
2
+
3
+ Copyright (c) 2021-PRESENT Anthony Fu <https://github.com/antfu>
4
+ Copyright (c) 2026-PRESENT Billgo <hi@billgo.me>
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,582 @@
1
+ # @teacss/preset-official
2
+
3
+ An optional catalogue of structural component shortcuts. It lets applications
4
+ reuse semantic class names without repeating long utility strings.
5
+ It also installs Design semantic color defaults. Enable Standard for the palette
6
+ and theme preflight. Use `bg-color:$color-neutral` directly.
7
+ Neutral defaults to gray; alternatives
8
+ are mauve, slate, sage, olive and sand. Existing radius/spacing/shadow scales
9
+ are reused. Colors can be customized through `@custom`/theme.
10
+ Official adds no global size, focus or motion variables; shared non-color scales
11
+ belong to Standard. Existing component geometry and behavior are unchanged.
12
+ Disabling preflights disables variable defaults; on-demand mode emits used dependencies.
13
+
14
+ ## Usage
15
+
16
+ Select Standard and Official explicitly:
17
+
18
+ ```css
19
+ @preset "standard";
20
+ @preset "official";
21
+ @source "./src/**/*.{ts,tsx,html}";
22
+ @teacss;
23
+ ```
24
+
25
+ Official does not enable Standard. Unused classes emit no CSS.
26
+ `tab`, `listbox-option`, `fab`, `step-marker`, `file-input`, `rating`, `toggle`
27
+ and `pagination-ellipsis` do not suppress text selection. `dropzone-content`
28
+ also permits selection while its native input retains pointer ownership. Native controls may
29
+ still limit selection themselves. If an
30
+ application adds dragging, scope any `user-select:none` to that interaction.
31
+ Swap only excludes inactive faces from selection; the visible face remains
32
+ selectable. Its decorative faces still need `aria-hidden` and a named control.
33
+ Swap fades for 150ms by default; explicit `swap--rotate` and `swap--scale`
34
+ retain 300ms motion. Reduced motion disables all three transitions.
35
+
36
+ Checkbox marks use an undelayed 100ms opacity transition, disabled under
37
+ reduced motion. Checked and mixed shapes change without a drawing animation.
38
+ Filter options use 150ms opacity/visibility feedback without scale animation; keyboard
39
+ focus and reduced motion disable the transition.
40
+
41
+ For Skeleton, put sizing text inside a child and mark the decorative container
42
+ `aria-hidden="true"`; transparent direct text can reappear in forced colors.
43
+ Keep a visible loading explanation outside it. Supply a static background for
44
+ reduced motion and an outline in forced colors; do not put focusable controls
45
+ inside the placeholder or rely on CSS to hide sensitive content.
46
+
47
+ Programmatic consumers import `presetOfficial` from
48
+ `@teacss/preset-official` or `teacss/preset-official`. The direct package
49
+ also exports `shortcuts` and `CustomShortcut`:
50
+
51
+ ```ts
52
+ import type { CustomShortcut } from "@teacss/preset-official";
53
+
54
+ export const applicationShortcuts: CustomShortcut[] = [
55
+ ["surface", ["p:4", "rd:2x"]],
56
+ ];
57
+ ```
58
+
59
+ Use the complete `presetOfficial()` when installing the catalogue. If replacing
60
+ its `shortcuts` array programmatically, preserve the returned preset's other
61
+ fields: prose uses a private rule to keep descendant scope and ordering intact.
62
+
63
+ ## Naming
64
+
65
+ ### Reusable focus, disclosure and field fragments
66
+
67
+ `field-row` wraps long label words beside fixed controls (`overflow-wrap:anywhere`).
68
+ Override the wrapping utility when a different label policy is needed.
69
+
70
+ `calendar` supplies month geometry with `calendar-header`, `calendar-grid`,
71
+ `calendar-weekday`, `calendar-cell` and `calendar-day`. At default spacing,
72
+ days are 36px below `sm` and 32px above it. Use a native table with column
73
+ headers; navigation can reuse `btn` and its heading `text-label`. Do not
74
+ compose `calendar-grid` with `table`, whose cell spacing is for data tables.
75
+ Date calculations, localization, selected/today colors, limits, form values
76
+ and keyboard behavior belong to the consumer. The shortcuts add no ARIA or
77
+ JavaScript; use `role="grid"` only with a complete grid keyboard model.
78
+ Native disabled and focus remain available; `aria-disabled` requires handlers
79
+ to block activation. Day borders and all other colors are consumer-owned.
80
+
81
+ `choice-marker` reserves a 16px in-flow icon slot at default spacing, revealed
82
+ only by its direct parent's `aria-current="true"`. It includes a reduced-motion
83
+ safe opacity transition, not selection logic or a palette. Supply an icon and
84
+ `aria-hidden="true"` on the decorative marker. Unlike `menu-indicator`, it is
85
+ not absolutely positioned and does not read `aria-checked`.
86
+
87
+ `color-input` styles native `input[type="color"]`: a 36px square below `sm`,
88
+ 32px above it at the default spacing, with 4px padding and rounded engine
89
+ swatches. It retains native appearance, focus, picker and disabled behavior;
90
+ applications supply labels, value handling, border/background colors and a text
91
+ value when needed. Dimensions can be overridden, including the `sm` rules.
92
+ It is not a JavaScript color picker or a replacement for `input`.
93
+
94
+ `focus-ring` preserves a native keyboard-focus outline with a 2px width and
95
+ offset. Use `focus-ring focus-ring--flat` for zero offset or
96
+ `focus-ring focus-ring--inset` for -2px. No palette is supplied; custom outline
97
+ colors/styles remain consumer-owned and must be checked against adjacent colors
98
+ and forced-colors mode. These classes do not suppress native focus.
99
+
100
+ `collapse-marker-reset` removes summary markers without adding spacing.
101
+ `collapse-chevron` adds a CSS chevron to the summary, reading only its direct
102
+ `details[open]` owner. `collapse-motion` belongs on native `details`: it animates
103
+ `::details-content` only with height-interpolation support and no reduced-motion
104
+ preference. Keep bodies in ordinary native flow. Do not combine it with the
105
+ grid-based `collapse` or the immediate `collapse-folds` hiding contract.
106
+
107
+ `input-shell input-shell--grid` holds exactly one direct native input or
108
+ textarea in its centre. Direct `input-affix` children require one of
109
+ `input-affix--inline-start`, `input-affix--inline-end`,
110
+ `input-affix--block-start`, or `input-affix--block-end`. Inline edges follow RTL;
111
+ block addons span the shell. Keep DOM order consistent with reading/tab order,
112
+ provide an accessible name for the field, and retain native focus. Use a div
113
+ wrapper when addons contain buttons, not a wrapping label. Supply colors and
114
+ validation presentation. Addon controls are not disabled by CSS; implement
115
+ their behavior in the application. Existing inline shells are unchanged.
116
+
117
+ Grid modifiers use compound direct-owner selectors. For example, override root
118
+ padding with `p:2@[.input-shell&]`; override an affix edge with a matching
119
+ `.input-shell.input-shell--grid > .input-affix` condition.
120
+
121
+ ### Trees and native select enhancement
122
+
123
+ `tree` is a plain nested list, not a JavaScript or ARIA tree widget. Compose
124
+ `tree > tree-item > tree-disclosure > tree-summary + tree-branch` using
125
+ `ul > li > details > summary + ul`. Use `role="list"` on the lists to preserve
126
+ list semantics when markers are removed. `tree-summary` includes row geometry,
127
+ marker reset and native focus. `tree-chevron` takes a right-pointing icon and
128
+ reads only its direct `details > summary.tree-summary` owner; closed arrows
129
+ mirror in RTL and motion runs only when motion-safe. `tree-spacer` aligns leaf
130
+ rows with sibling directories, `tree-icon` sizes decorative icons, and
131
+ `tree-label` allows long names to wrap. Supply branch border colors and emphasis;
132
+ use links for navigation and do not add `role="tree"` without its keyboard model.
133
+
134
+ `select select--customizable` opts a native single-row select into
135
+ `appearance:base-select` for the control and `::picker(select)`. It only applies
136
+ when supported, outside forced-colors mode, and without `multiple` or any
137
+ `size` attribute. The original `select` and platform picker remain the fallback.
138
+ The browser retains focus, selection marks, keyboard handling, validation and
139
+ form submission/reset. Applications supply colors; picker height is capped at
140
+ 20rem and the available anchor-positioning area minus 1rem, so native placement
141
+ can fit above or below the control. Options wrap. No scripted combobox or form
142
+ proxy is added.
143
+ The optional first-child `button > selectedcontent` gets a shrinking,
144
+ single-line label layout; keep that button inert and free of nested controls.
145
+ Prefer ordinary options without that optional button when form reset is needed:
146
+ the tested browser restored the native value but left `selectedcontent` text
147
+ stale, also on a platform-only page without TeaCSS. Verify this optional markup
148
+ in target browsers; the preset does not patch native DOM synchronization.
149
+ Always label the select and give options explicit values. Customize gated
150
+ rules with matching `select.select&:not([multiple]):not([size])` conditions.
151
+ Supporting browsers use an in-page picker instead of the mobile OS picker;
152
+ this is why the enhancement is opt-in. See the
153
+ [platform design](https://developer.chrome.com/blog/a-customizable-select).
154
+
155
+ ### Avatar parts and groups
156
+
157
+ `avatar-image` explicitly supplies image fill, cover cropping, foreground layering,
158
+ inherited radius and `data-avatar-hidden` presentation. Existing `avatar img`
159
+ styling remains supported. Image loading/error detection and accessible names
160
+ belong to the consumer; `avatar-fallback` uses the same hiding attribute. For
161
+ one outer `role="img"` label, use empty image alt text and hide fallback text
162
+ from assistive technology to avoid duplicate names.
163
+
164
+ `avatar-group avatar-group--ring` replaces borders on direct `.avatar` children with a
165
+ 2px decorative outer shadow ring, preserving image area. Supply
166
+ `shadow-outline-color:$color-background@[&_>_.avatar]` on the group. Hidden avatar-group
167
+ are removed and skipped for overlap; inline overlap mirrors in RTL. The ring
168
+ is decorative and may disappear in forced colors; it is not a focus indicator.
169
+ Existing `avatar-group` retains its border geometry. A trailing `+3` reuses `avatar`
170
+ with a meaningful accessible label; there is no separate count alias or size API.
171
+ Match the `.avatar-group` condition when overriding the modifier's child rules.
172
+
173
+ ### Toolbar structure
174
+
175
+ `toolbar` is a bordered, padded horizontal flex container with local horizontal
176
+ scrolling. `toolbar-group` keeps related controls together without shrinking.
177
+ Verify focus scrolling in target browsers: partially visible controls may need
178
+ consumer-owned `scrollIntoView({ block: "nearest", inline: "nearest" })`, as the
179
+ specimen demonstrates. Root scroll padding matches its padding to leave space
180
+ for native focus outlines; keep both aligned when customizing spacing.
181
+ Put `toolbar-separator` directly inside its owning toolbar and supply its border
182
+ color. `toolbar toolbar--vertical` stacks groups and rotates only its direct
183
+ separators to horizontal rules; nested toolbars keep their own orientation.
184
+ Groups remain horizontal in either orientation. Vertical layout does not impose
185
+ scrolling or height limits; consumers must accommodate wide groups on small screens.
186
+
187
+ These classes do not create ARIA roles, roving focus, arrow-key navigation or
188
+ selection state. Use a named fieldset for ordinary controls with native Tab order,
189
+ as the specimen does. Only add `role="toolbar"` when the application implements
190
+ the corresponding keyboard model and orientation semantics. Decorative separators
191
+ use `aria-hidden="true"`; colors and control sizes remain consumer-owned.
192
+
193
+ ### Convention
194
+
195
+ `reset-fieldset` removes margins, padding, border width and minimum inline size.
196
+ Keep a native `fieldset` and `legend`: group naming, disabled inheritance and form
197
+ behavior remain native. This is a visual reset, not a form-value reset; style the
198
+ legend and spacing between controls separately.
199
+
200
+ `icon-crossfade` supplies a non-shrinking, non-interactive icon layer with 300ms
201
+ opacity/filter/scale transitions only under `motion-safe`. Consumers supply icon size,
202
+ stacking and state values; gate scale poses with `@motion-safe` too. Put accessible
203
+ names/state on the controlling button and hide decorative icon stacks from AT.
204
+ It does not read copied/error/theme attributes or replace the existing `swap` API.
205
+
206
+ `dropdown-panel dropdown-panel--popover` is a native `popover` surface: hidden
207
+ until `:popover-open`, fixed position, zero margin and automatic insets. Supply
208
+ placement/anchoring yourself, matching `.dropdown-panel` specificity for utility
209
+ overrides. `dropdown-panel dropdown-panel--floating` uses `[hidden]` instead and
210
+ does not impose position. Do not combine the modes or put them on
211
+ `dropdown-content`. Neither supplies an ARIA menu or its keyboard model.
212
+ Runtime-mode consumers own dismissal and focus return; native mode uses the
213
+ Popover API. The base `dropdown-panel` remains independent of both modes.
214
+
215
+ `sheet-motion` is a standalone `[open]` transition fragment, already included by
216
+ `sheet`. It does not impose display, placement, slide direction, focus or backdrop.
217
+ Use native dialog state; setting opacity does not make closed content inert.
218
+ `sheet sheet--safe-area` opts into physical four-edge `max(2rem, env(...))`
219
+ padding. It preserves logical placement and requires the base on the same element.
220
+ Override its padding with matching `.sheet` specificity if needed.
221
+
222
+ ```txt
223
+ block card
224
+ block-part card-header
225
+ block--modifier card--side
226
+ ```
227
+
228
+ Use `-` for an owned part and `--` for a structural variation on the same
229
+ element. A modifier is always used with its base or part.
230
+
231
+ Use a singular base for each component family and `-group` for collections:
232
+ `avatar-group`, `stat-group`, `kbd-group`, `tab-group`, `step-group`.
233
+ Existing part names such as `hero-actions` and `tab-list` remain unchanged.
234
+
235
+ Component modifiers use complete, descriptive words such as
236
+ `carousel--vertical`, `sheet--block-start`, and
237
+ `popover-content--block-start-inline-end`. Standard's compact direction values
238
+ belong to atomic utilities; they are not abbreviations for component names.
239
+
240
+ Popover placement modifiers try the requested side, its axis flip, then
241
+ `span-all` when neither side fits. The final fallback uses the full anchor grid
242
+ while preserving viewport caps and scrolling; it may overlap the trigger.
243
+
244
+ `modal` bounds its grid column and wraps long text. Padding is `p:4` below sm,
245
+ `p:8` from sm; the sticky footer matches these insets. Supply its background
246
+ and allow long action labels to wrap so scrolled text does not show through.
247
+
248
+ `carousel` contains scrolling on the horizontal axis; `carousel--vertical`
249
+ reuses `scroll-y` to contain vertical scrolling and allow block-axis shrinking.
250
+
251
+ `textarea--autosize` disables manual resizing only when `field-sizing:content`
252
+ is supported; otherwise the base textarea retains vertical manual resizing.
253
+
254
+ `step-content` wraps long unbroken text within its column without widening
255
+ the progress sequence. Consumers can override `overflow-wrap` when needed.
256
+
257
+ Tooltip placements are `tooltip-content--top`, `tooltip-content--bottom`,
258
+ `tooltip-content--inline-start`, and `tooltip-content--inline-end`. These follow the
259
+ logical inline axis and mirror in RTL.
260
+
261
+ The preset owns structure: layout, sizing, geometry, type metrics, interaction
262
+ mechanics, and color-independent motion. Applications own palette, tone,
263
+ emphasis, and alternate sizes.
264
+
265
+ Ordinary utilities emit after shortcuts and override declarations with equal
266
+ specificity. Repeat a shortcut's condition when overriding a conditional rule:
267
+
268
+ ```html
269
+ <input class="input opacity:100@disabled" disabled />
270
+ ```
271
+
272
+ Some modifiers use a compound selector to win over their base. For example,
273
+ `card--side` sets direction through `.card.card--side`; an unconditional
274
+ `flex-direction:column` cannot override it. Match the base condition instead:
275
+
276
+ ```html
277
+ <div class="card card--side flex-direction:column@[.card&]">...</div>
278
+ ```
279
+
280
+ Keep `dropdown-content` directly inside its `dropdown` root. Likewise,
281
+ `collapse-title` belongs directly inside `collapse`, and `collapse-icon`
282
+ directly inside that title. These ownership boundaries keep outer modifiers
283
+ and open states from affecting nested components.
284
+
285
+ The same direct ownership applies to `chat` media/bubbles, `swap` inputs/faces,
286
+ and `card--side` media. Keep the paths `step-group > step > step-row` and
287
+ `timeline > timeline-item`; connectors, markers, and content belong directly
288
+ inside their step row, while timeline parts and connecting `hr` elements
289
+ belong directly inside their item. Nested components retain their own layout
290
+ and state.
291
+
292
+ Vertical step connectors share the marker's grid center in LTR and RTL;
293
+ only their block-axis translation connects them to the preceding marker.
294
+
295
+ `list-content` grows from a `12ch` flex basis and permits word breaking, so
296
+ narrow rows can move the content below adjacent media instead of clipping it.
297
+ Override its `flex:` or `overflow-wrap:` utilities for consumer-specific layouts.
298
+
299
+ `filter` reads selection and keyboard focus only from its direct options.
300
+ Wrapped rows use spacing step 2, matching the inline option spacing; override
301
+ the row spacing with `gap-row:` utilities when a different density is needed.
302
+ The keyboard-focused option skips its entrance transition so its ring appears immediately.
303
+ Place `filter-reset` directly inside that filter; wrapped inputs and nested
304
+ filters do not drive its collapsing or reset visibility. Checkboxes (or
305
+ `data-mode="multiple"`) keep multi-select choices visible. Keep
306
+ `menu-indicator` directly inside its `menu-action`; only that action's
307
+ `aria-checked="true"` reveals the marker, not another ancestor's state.
308
+
309
+ Table pinning follows `table > thead/tbody/tfoot > tr > cell` ownership.
310
+ `table-row` draws borders on its direct cells; nested tables keep their own
311
+ pinning and row separators. Base table typography still flows into content.
312
+
313
+ `toggle` supports width and height utility overrides using an inline-size
314
+ query container and a fixed `0.125rem` thumb gap. Keep a definite width and
315
+ height, zero track padding, and the container type when resizing it. Applications
316
+ still supply the thumb fill, for example `bg-color:current@::before`. In forced
317
+ colors, native inputs recover their native appearance; non-native switches keep
318
+ an outlined thumb. Applications remain responsible for labels and interaction.
319
+
320
+ Non-native `checkbox` / `radio` marks also need consumer-owned forced-color
321
+ fills: pair `Canvas` on the control with `CanvasText` for its border and mark.
322
+ For a custom Checkbox, add:
323
+
324
+ ```text
325
+ bg-color:Canvas@forced-colors@[&:not(input)]
326
+ border-color:CanvasText@forced-colors@[&:not(input)]
327
+ bg-color:CanvasText@forced-colors@[&:not(input)]@::after
328
+ ```
329
+
330
+ Use `::before` for Radio. Keep `forced-color-adjust:auto`; normal-theme colors
331
+ remain application-owned, and native inputs retain their browser fallback.
332
+
333
+ Directional decorations and motion resolve RTL from the element's own
334
+ direction, including a self `dir` attribute and nested direction overrides.
335
+
336
+ `focus-proxy` gives a wrapper a native-style outline when a directly owned
337
+ `input`, `textarea`, or `select` matches `:focus-visible`. Use it when the native
338
+ control is visually hidden; `dropzone`, `swap`, and `toggle` include it. It does not hide
339
+ the input, provide a label, or forward focus from a nested component. A wrapping
340
+ toggle label keeps its native input directly inside the track so keyboard
341
+ focus outlines the visible control rather than the zero-sized input. Its checked
342
+ appearance also reads only a direct input, never a nested component's selection.
343
+
344
+ `overlay-bounds` shares viewport width/height limits and contained scrolling
345
+ across dropdown, popover, and tooltip surfaces. Positioning, collision
346
+ avoidance, focus management, and palette remain application-owned.
347
+
348
+ `floating-label` keeps its label visible at rest, when filled, and when
349
+ disabled. It moves without shrinking the label; the placeholder is hidden
350
+ until focus to avoid overlapping the label. Supply an associated label and
351
+ an opaque label background that matches the input surface.
352
+
353
+ `rating` keeps unselected choices at 80% opacity and focused choices at full
354
+ opacity. Native inputs restore native appearance in forced colors. Shape a
355
+ decorative pseudo-element instead of clipping the input itself, and hide that
356
+ decoration in forced colors. Supply an additional score cue (text or outlined
357
+ versus filled glyphs) and verify contrast with the application's palette.
358
+
359
+ `transition-*` helpers stop transitions under reduced motion. Prefer a
360
+ property-specific helper over `transition-all`. `prose` restores unordered and
361
+ ordered list markers and link underlines after Standard's preflight.
362
+
363
+ ## Site layout
364
+
365
+ The `site` family shares a page frame across headers, sections and footers.
366
+ `site` has a `100svh` minimum height; a direct `site-main` child grows to keep
367
+ the footer at the bottom of short pages. Use semantic elements as appropriate.
368
+
369
+ Keep `site-content` directly inside `site-section`. Five tracks provide an
370
+ edge gutter, flexible side space, bounded content, flexible space, and an end
371
+ gutter. Each section owns its full-width bottom rule. Non-interactive pseudo-
372
+ elements draw the gutter and content edges without consuming content width.
373
+ Keep the content wrapper unpadded; pad its children to preserve aligned edges.
374
+
375
+ Consumers can set inherited CSS variables on a shared ancestor:
376
+
377
+ | Variable | Default |
378
+ | --- | --- |
379
+ | `--site-content-width` | `80rem` |
380
+ | `--site-gutter` | `clamp(1rem, calc(18.75vw - 6rem), 3rem)` |
381
+
382
+ The gutter is capped at 25% of each section's width for narrow containers.
383
+ Nested scopes can override either variable. For example,
384
+ `$site-content-width:[60rem] $site-gutter:1rem` changes the frame locally.
385
+
386
+ `site-intro` centres its content with gap 5, a 48-unit minimum height (192px
387
+ at the default spacing), and padding 6 → 12 at `md` (24px → 48px). It grows
388
+ with content. `site-rule` is an empty, full-width separator band: minimum
389
+ height 3 (12px) and one bottom border. Use `aria-hidden="true"` for decoration
390
+ or an `hr` for a thematic break; height utilities can override either minimum.
391
+
392
+ `site-grid > site-cell` starts with one column; ordinary grid utilities choose
393
+ columns and breakpoints. The grid owns top/start borders; cells own bottom/end
394
+ borders. Keep it gapless with unspanned cells for continuous one-pixel seams.
395
+ A first grid directly in `site-section > site-content` omits its top border;
396
+ a last grid overlaps the section's bottom rule by one pixel. Standalone grids
397
+ keep their top border and have no negative margin. Use one grid per content
398
+ wrapper when it should meet section edges.
399
+
400
+ ```html
401
+ <section class="site-section border-color:$color-border border-color:$color-border@::before border-color:$color-border@::after">
402
+ <div class="site-content border-color:$color-border@::before border-color:$color-border@::after">
403
+ <div class="site-intro">Content grows beyond the minimum height.</div>
404
+ <div class="site-grid grid-columns:[repeat(2,minmax(0,1fr))]@md border-color:$color-border">
405
+ <div class="site-cell border-color:$color-border">First</div>
406
+ <div class="site-cell border-color:$color-border">Second</div>
407
+ </div>
408
+ </div>
409
+ </section>
410
+ ```
411
+
412
+ Colors, typography, word-breaking and column counts remain consumer-owned.
413
+ Color pseudo-element borders explicitly; borders do not inherit color.
414
+ Avoid clipping focus outlines. Existing `hero`, `navbar`, `footer`, and `frame`
415
+ remain independent compositions. No decorative hatch, node or ruler is included.
416
+
417
+ ## Code mockups
418
+
419
+ Use `mockup-code > mockup-code-header + mockup-code-body` to keep metadata
420
+ stationary while code scrolls. Titles wrap rather than truncate; the header
421
+ follows the surrounding direction and the code body remains LTR. Put each
422
+ `pre > code` directly inside the body. Rows share the longest line's width,
423
+ including highlights, and reserve a 3ch prefix column even without `data-prefix`.
424
+ The compact header has a 10-spacing-unit minimum height and grows with content.
425
+
426
+ Give a scrollable body `tabindex="0"`, `role="region"`, and an accessible name
427
+ using `aria-labelledby` or `aria-label`. Preserve its visible focus outline.
428
+ Applications supply colors, optional line highlights, and working actions.
429
+ Allow long action labels to wrap with consumer sizing and whitespace utilities.
430
+ Prefixes are presentation, not a substitute for meaningful code or status text.
431
+ Legacy `mockup-code > pre` markup still scrolls at the root; adopt the body
432
+ part for aligned gutters and a stationary header.
433
+
434
+ ## Long-form prose
435
+
436
+ `prose` covers headings h1–h6, paragraphs, links, quotations, rules, lists and
437
+ description lists, inline/block code, figures, media and tables. It supplies a
438
+ 16px root type at the default theme scale, a 65ch logical reading measure and
439
+ inline centering. Ordinary utilities can change these defaults.
440
+ Headings use unitless 1.4 line height across all three Prose variants.
441
+ Only headings opt into balanced wrapping; body text does not impose `pretty`.
442
+ Use `text-wrap:pretty` explicitly for short descriptions when desired.
443
+
444
+ `prose-hans` and `prose-hant` are standalone script-specific compositions, not
445
+ owned parts or `--` modifiers. Each includes the semantic baseline and adds a
446
+ matching SC/TC font stack, simplified/traditional glyph selection, Han spacing,
447
+ strict line breaking, justification, ruby placement and a 36em inline measure.
448
+ Like the base, they use `overflow-wrap:anywhere` so mixed Latin tokens do not
449
+ force narrow tables wider when text is enlarged.
450
+ Set `lang` on the content; font preferences do not convert text between scripts.
451
+
452
+ ```html
453
+ <article lang="zh-Hans" class="prose-hans">...</article>
454
+ <article lang="zh-Hant" class="prose-hant writing-mode:vertical-rl">...</article>
455
+ ```
456
+
457
+ Writing direction remains an ordinary utility. Code blocks stay horizontal
458
+ with margins that separate them in either flow; wrap the vertical article in
459
+ an application-owned scroll container. Digit combining requires explicit
460
+ inline wrappers with `text-combine-upright:all`.
461
+
462
+ Semantic descendant defaults have zero specificity. Conditions such as
463
+ `prose@hover`, `prose@dark` and `prose@md` apply to the scope, and pseudo-element
464
+ scopes emit no CSS. Targeted normal utilities override the defaults. Preserve
465
+ `data-teacss-article-exclude` on embedded UI: the whole subtree is excluded from
466
+ descendant rules, including nested prose scopes, but root typography inherits.
467
+
468
+ Prose owns no colors. Supply code backgrounds, border colors, link colors and
469
+ muted captions separately. No `not-prose`, size, color or invert variants exist.
470
+
471
+ ## Catalogue
472
+
473
+ `dock` has a safe-area-aware minimum height, not a fixed height; long labels
474
+ wrap and increase it. Reserve its actual rendered height in page content to
475
+ keep the final content reachable. The preset supplies no measurement runtime.
476
+
477
+ `hero` bounds its shared grid column; `hero-content` shrinks and wraps long
478
+ text. Compose wrapping media rows and bounded multiline actions when needed;
479
+ direction and palette remain consumer-owned.
480
+
481
+ `stat-group` columns retain their content width to prevent adjacent metrics from
482
+ overlapping. Constrain the group to enable scrolling; supply an accessible name,
483
+ `tabindex="0"` and `focus-ring` for keyboard access. Colors and responsive text
484
+ or direction changes remain consumer-owned.
485
+
486
+ Commons:
487
+
488
+ ```txt
489
+ accessibility sr-only sr-visible focus-proxy focus-ring focus-ring--flat focus-ring--inset
490
+ chevron chevron-up chevron-down chevron-left chevron-right
491
+ control choice-marker control-icon control-disabled field-disabled checkable-base control-base field-base press-scale
492
+ layout hstack inline-hstack vstack centered inline-centered scroll-x scroll-y
493
+ overlay overlay-bounds
494
+ reset reset-fieldset reset-heading reset-list reset-button reset-select reset-textarea reset-input reset-checkbox reset-radio
495
+ skeleton skeleton
496
+ transition icon-crossfade transition-none transition-all transition-colors transition-opacity transition-shadow transition-transform
497
+ typography text-control text-label text-dense text-body text-description text-caption text-balance text-pretty text-eyebrow text-field plain-list heading-inherit truncate
498
+ ```
499
+
500
+ Components:
501
+
502
+ `range` retains native thumb, track and keyboard behavior, with a 2px solid
503
+ keyboard-focus outline offset by 2px. The browser supplies its outline color
504
+ (falling back to current text color); the preset sets no outline color, and
505
+ consumers must keep the full perimeter visible and contrasting with adjacent
506
+ surfaces. Keyboard focus restores full opacity, including focusable
507
+ ARIA-disabled inputs. Native vertical Home/End behavior can differ between browsers.
508
+
509
+ `divider--block` restores automatic height for vertical native `<hr>` elements.
510
+ Long divider labels can opt into `white-space:normal overflow-wrap:anywhere`.
511
+
512
+ ```txt
513
+ alert alert alert-title alert-description
514
+ avatar avatar avatar-image avatar-fallback avatar-group avatar-group--ring
515
+ badge badge badge--link
516
+ breadcrumb breadcrumb breadcrumb-list breadcrumb-item breadcrumb-link breadcrumb-current
517
+ btn btn
518
+ calendar calendar calendar-header calendar-grid calendar-weekday calendar-cell calendar-day
519
+ card card card-header card-body card-footer card-title card-description card-action card-media card-overlay card--side
520
+ carousel carousel-root carousel carousel--vertical carousel-item carousel-control carousel-control--start carousel-control--end carousel-control--top carousel-control--bottom
521
+ chat chat chat--start chat--end chat-media chat-header chat-footer chat-bubble
522
+ checkbox checkbox checkbox-control checkbox-indicator checkbox-indicator-mixed
523
+ collapse collapse collapse-title collapse-icon collapse-content collapse-folds collapse-marker-reset collapse-chevron collapse-motion
524
+ divider divider divider--block
525
+ dock dock dock-item dock-label
526
+ dropdown dropdown dropdown-panel dropdown-panel--popover dropdown-panel--floating dropdown-content dropdown--end dropdown--top
527
+ dropzone dropzone dropzone-input dropzone-content dropzone-selection
528
+ empty empty empty-header empty-media empty-title empty-description empty-content
529
+ fab fab
530
+ color-input color-input
531
+ field field field-label field-hint input textarea field-group field-legend field-row field-error input-shell input-shell--grid input-affix input-affix--inline-start input-affix--inline-end input-affix--block-start input-affix--block-end floating-label textarea--autosize
532
+ file-input file-input
533
+ filter filter filter-reset
534
+ footer footer footer--center footer-title
535
+ frame frame frame-side frame-main
536
+ hero hero hero-content hero-actions hero-decoration
537
+ indicator indicator indicator-item indicator-item--start indicator-item--center indicator-item--end indicator-item--top indicator-item--middle indicator-item--bottom
538
+ join join join--block join-separator join-text
539
+ kbd kbd kbd-group
540
+ list list list-row list-content list-media list-media--icon list-media--image list-title list-description list-col-wrap
541
+ listbox listbox listbox-option listbox-group listbox-empty
542
+ loading loading-shell loading
543
+ menu menu menu--horizontal menu-item menu-action menu-indicator menu-label menu-submenu menu-separator menu-shortcut
544
+ meter meter meter-header meter-value meter-track meter-indicator
545
+ mockup mockup-code mockup-code-header mockup-code-title mockup-code-language mockup-code-actions mockup-code-body mockup-phone mockup-phone-camera mockup-phone-display
546
+ modal modal modal-header modal-title modal-body modal-footer modal--motion modal--backdrop-motion
547
+ popover popover popover-content popover-header popover-title popover-description popover-content--block-start popover-content--block-start-inline-start popover-content--block-start-inline-end popover-content--inline-end popover-content--inline-end-block-start popover-content--inline-end-block-end popover-content--block-end popover-content--block-end-inline-start popover-content--block-end-inline-end popover-content--inline-start popover-content--inline-start-block-start popover-content--inline-start-block-end
548
+ navbar navbar navbar-brand navbar-start navbar-center navbar-end
549
+ otp otp otp-slot otp-separator
550
+ pagination pagination pagination-list pagination-item pagination-link pagination-ellipsis pagination-ellipsis-label
551
+ prose prose prose-hans prose-hant
552
+ progress progress progress-indicator progress-indicator--indeterminate
553
+ radio radio
554
+ range range range--vertical
555
+ rating rating
556
+ select select select--customizable
557
+ sheet sheet sheet-motion sheet--safe-area sheet--block-start sheet--inline-end sheet--block-end sheet--inline-start
558
+ site site site-main site-section site-content site-intro site-grid site-cell site-rule
559
+ stat stat-group stat-group--vertical stat-group--horizontal stat stat-title stat-value stat-desc stat-figure stat-actions
560
+ status status
561
+ steps step-group step-group--vertical step step-row step-title step-content step-marker step-connector
562
+ swap swap swap-on swap-off swap-indeterminate swap--active swap--rotate swap--scale
563
+ table table-scroll table table-row table-body table-footer table-numeric table-caption table--pin-rows table--pin-cols
564
+ tabs tab-group tab-list tab-list--vertical tab tab-content
565
+ timeline timeline timeline--vertical timeline-item timeline-start timeline-middle timeline-end timeline-box
566
+ toast toast toast-list toast-motion toast--top toast--middle toast--bottom
567
+ toggle toggle
568
+ toolbar toolbar toolbar-group toolbar-separator toolbar--vertical
569
+ tooltip tooltip tooltip-content tooltip-content--top tooltip-content--bottom tooltip-content--inline-start tooltip-content--inline-end tooltip-content--motion
570
+ tree tree tree-item tree-disclosure tree-summary tree-branch tree-row tree-chevron tree-spacer tree-icon tree-label
571
+ ```
572
+
573
+ The former `rail`, `rail-side`, `rail-main`, and `--rail-offset` names are now
574
+ `frame`, `frame-side`, `frame-main`, and `--frame-offset`, respectively; there
575
+ are no old-name aliases. Layout behavior is unchanged. The Storybook ID is
576
+ `official-components--frame`.
577
+
578
+ The TypeScript authoring sources live in `src/commons` and `src/components`.
579
+ Typography helpers are in `typography.ts`. Every class has a Storybook specimen
580
+ under `official/commons/*` or `official/components/*`.
581
+
582
+ Pre-1.0. The generated TypeScript preset is the supported runtime contract.
@@ -0,0 +1,10 @@
1
+ import { DynamicShortcut, Preset, StaticShortcut } from "@teacss/core";
2
+ import { Theme } from "@teacss/preset-standard";
3
+ //#region src/types.d.ts
4
+ type CustomShortcut = StaticShortcut | DynamicShortcut<Theme>;
5
+ //#endregion
6
+ //#region src/index.d.ts
7
+ export declare const shortcuts: CustomShortcut[];
8
+ export declare function presetOfficial(): Preset<Theme>;
9
+ //#endregion
10
+ export { type CustomShortcut, presetOfficial as default };
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ import{symbols as e}from"@teacss/core";const t=[[`sr-only`,[`pos:absolute`,`w:1px`,`h:1px`,`p:0`,`m:-1px`,`overflow:hidden`,`clip-path:[inset(50%)]`,`white-space:nowrap`,`border-width:0`]],[`sr-visible`,[`pos:static`,`w:auto`,`h:auto`,`p:0`,`m:0`,`overflow:visible`,`clip-path:none`,`white-space:normal`]],[`focus-proxy`,[`outline-style:auto@[&:has(>:is(input,textarea,select):focus-visible)]`,`outline-offset:2@[&:has(>:is(input,textarea,select):focus-visible)]`]],[`focus-ring`,[`outline-style:auto@focus-visible`,`outline-width:2@focus-visible`,`outline-offset:2@focus-visible`]],[`focus-ring--flat`,[`outline-offset:0@[.focus-ring&]@focus-visible`]],[`focus-ring--inset`,[`outline-offset:-2@[.focus-ring&]@focus-visible`]]],n=[[`chevron-up`,[`content:empty@::after`,`d:inline-block@::after`,`flex-shrink:0@::after`,`w:2@::after`,`h:2@::after`,`transition-property:transform@::after`,`transition-duration:200@::after`,`transition:none@motion-reduce@::after`,`border-style:solid@::after`,`border-t-width:0@::after`,`border-l-width:0@::after`,`border-r-width:2@::after`,`border-b-width:2@::after`,`border-color:current@::after`,`rotate:225@::after`]],[`chevron-down`,[`content:empty@::after`,`d:inline-block@::after`,`flex-shrink:0@::after`,`w:2@::after`,`h:2@::after`,`transition-property:transform@::after`,`transition-duration:200@::after`,`transition:none@motion-reduce@::after`,`border-style:solid@::after`,`border-t-width:0@::after`,`border-l-width:0@::after`,`border-r-width:2@::after`,`border-b-width:2@::after`,`border-color:current@::after`,`rotate:45@::after`]],[`chevron-left`,[`content:empty@::after`,`d:inline-block@::after`,`flex-shrink:0@::after`,`w:2@::after`,`h:2@::after`,`transition-property:transform@::after`,`transition-duration:200@::after`,`transition:none@motion-reduce@::after`,`border-style:solid@::after`,`border-t-width:0@::after`,`border-l-width:0@::after`,`border-r-width:2@::after`,`border-b-width:2@::after`,`border-color:current@::after`,`rotate:135@::after`]],[`chevron-right`,[`content:empty@::after`,`d:inline-block@::after`,`flex-shrink:0@::after`,`w:2@::after`,`h:2@::after`,`transition-property:transform@::after`,`transition-duration:200@::after`,`transition:none@motion-reduce@::after`,`border-style:solid@::after`,`border-t-width:0@::after`,`border-l-width:0@::after`,`border-r-width:2@::after`,`border-b-width:2@::after`,`border-color:current@::after`,`rotate:315@::after`]]],r=[[`choice-marker`,[`inline-centered`,`transition-opacity`,`flex-shrink:0`,`w:4`,`h:4`,`opacity:0`,`pointer-events:none`,`opacity:100@[:where([aria-current=true])_>_&]`]],[`control-icon`,[`w:4.5@[:where(&)_:where(svg)]`,`h:4.5@[:where(&)_:where(svg)]`,`flex-shrink:0@[:where(&)_svg]`,`pointer-events:none@[:where(&)_svg]`,`w:4@[:where(&)_:where(svg)]@sm`,`h:4@[:where(&)_:where(svg)]@sm`]],[`control-disabled`,[`pointer-events:none@disabled`,`opacity:64@disabled`,`opacity:64@aria-disabled`]],[`field-disabled`,[`opacity:64@disabled`,`cursor:not-allowed@disabled`,`opacity:64@aria-disabled`,`cursor:not-allowed@aria-disabled`]],[`checkable-base`,[`field-disabled`,`appearance:none`,`box-sizing:border-box`,`d:inline-block`,`pos:relative`,`vertical-align:middle`,`flex-shrink:0`,`cursor:pointer`]],[`control-base`,[`inline-centered`,`control-icon`,`control-disabled`,`text-control`,`d:none@[[hidden]]`,`flex-shrink:0`,`gap:2`,`white-space:nowrap`,`rd:4x`,`border-width:1`,`font-weight:5x`,`cursor:pointer`]],[`field-base`,[`text-field`,`field-disabled`,`w:100%`,`min-inline-size:0`,`rd:4x`,`border-width:1`,`p-x:3`,`h:9`,`h:8@sm`]],[`press-scale`,[`transition-property:[scale]`,`transition-duration:150`,`transition-timing:ease-out`,`scale:96@active`,`transition:none@motion-reduce`,`scale:none@motion-reduce@active`]]],i=[[`hstack`,[`d:flex`,`flex-direction:row`,`align-items:center`]],[`inline-hstack`,[`d:inline-flex`,`flex-direction:row`,`align-items:center`]],[`vstack`,[`d:flex`,`flex-direction:column`]],[`centered`,[`d:flex`,`align-items:center`,`justify-content:center`]],[`inline-centered`,[`d:inline-flex`,`align-items:center`,`justify-content:center`]],[`scroll-x`,[`min-inline-size:0`,`overflow-x:auto`,`overscroll-behavior-x:contain`]],[`scroll-y`,[`min-block-size:0`,`overflow-y:auto`,`overscroll-behavior-y:contain`]]],a=[[`overlay-bounds`,[`min-inline-size:0`,`max-w:[calc(100vw_-_2rem)]`,`max-h:[calc(100dvh_-_2rem)]`,`overflow:auto`,`overscroll-behavior:contain`]]],o=[[`reset-fieldset`,[`m:0`,`min-inline-size:0`,`p:0`,`border-width:0`]],[`reset-heading`,[`font-family:unset`,`font-size:unset`,`font-style:unset`,`font-weight:unset`,`font-stretch:unset`,`line-height:unset`]],[`reset-list`,[`list-style-type:none`,`list-style-position:outside`,`list-style-image:none`]],[`reset-button`,[`appearance:none`,`d:inline-block`,`rd:none`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`,`font-family:inherit`,`font-size:inherit`,`font-stretch:inherit`,`line-height:inherit`,`font-weight:normal`,`font-style:normal`,`letter-spacing:inherit`,`text-align:inherit`,`text-indent:initial`]],[`reset-select`,[`appearance:none`,`d:inline-block`,`rd:none`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`,`font-family:inherit`,`font-size:inherit`,`font-stretch:inherit`,`line-height:inherit`,`font-weight:normal`,`font-style:normal`,`letter-spacing:inherit`,`text-align:start`,`text-indent:initial`]],[`reset-textarea`,[`appearance:none`,`d:block`,`rd:none`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`,`font-family:inherit`,`font-size:inherit`,`font-stretch:inherit`,`line-height:inherit`,`font-weight:normal`,`font-style:normal`,`letter-spacing:inherit`,`text-align:start`,`text-indent:initial`,`cursor:text`,`white-space:pre-wrap`]],[`reset-input`,[`appearance:none`,`d:block`,`rd:none`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`,`font-family:inherit`,`font-size:inherit`,`font-stretch:inherit`,`line-height:inherit`,`font-weight:normal`,`font-style:normal`,`letter-spacing:inherit`,`text-align:start`,`text-indent:initial`,`cursor:text`]],[`reset-checkbox`,[`appearance:none`,`d:inline-block`,`rd:none`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`]],[`reset-radio`,[`appearance:none`,`d:inline-block`,`rd:50%`,`bg-image:none`,`bg-color:transparent`,`text-color:inherit`]]],ee=[[`skeleton`,[`rd:1x`,`border-style:none!`,`bg-image:none!`,`bg-clip:border-box!`,`shadow:none!`,`box-decoration-break:clone!`,`text-color:transparent!`,`user-select:none!`,`pointer-events:none!`,`cursor:default!`,`animation:skeleton!`,`animation:none!@motion-reduce`,`vis:hidden!@::after`,`vis:hidden!@::before`,`vis:hidden!@>*`,`d:block@empty`,`h:3x@empty`,`rd-l:inherit@[:where(:first-child)]`,`rd-r:inherit@[:where(:nth-last-child(2))]`,`line-height:1@[:where([data-inline-skeleton])]`,`font-family:sans@[:where([data-inline-skeleton])]`]]],te=[[`icon-crossfade`,[`d:flex`,`flex-shrink:0`,`pointer-events:none`,`transition-property:[opacity,filter,scale]@motion-safe`,`transition-duration:300@motion-safe`,`transition-timing:[cubic-bezier(0.2,0,0,1)]@motion-safe`]],[`transition-none`,[`transition-property:none`,`transition-timing:ease`,`transition-duration:150`]],[`transition-all`,[`transition-property:all`,`transition-timing:ease`,`transition-duration:150`,`transition:none@motion-reduce`]],[`transition-colors`,[`transition-property:colors`,`transition-timing:ease`,`transition-duration:150`,`transition:none@motion-reduce`]],[`transition-opacity`,[`transition-property:opacity`,`transition-timing:ease`,`transition-duration:150`,`transition:none@motion-reduce`]],[`transition-shadow`,[`transition-property:shadow`,`transition-timing:ease`,`transition-duration:150`,`transition:none@motion-reduce`]],[`transition-transform`,[`transition-property:transform`,`transition-timing:ease`,`transition-duration:150`,`transition:none@motion-reduce`]]],ne=[[`text-control`,[`font-size:3x`,`line-height:3x`,`font-size:2x@sm`,`line-height:2x@sm`]],[`text-label`,[`text-control`,`font-weight:5x`]],[`text-dense`,[`font-size:2x`,`line-height:2x`,`font-size:1x@sm`,`line-height:1x@sm`]],[`text-body`,[`font-size:3x`,`line-height:4x`,`font-size:2x@sm`,`line-height:3x@sm`]],[`text-description`,[`text-body`,`m:0`]],[`text-caption`,[`font-size:1x`,`line-height:2x`]],[`text-balance`,[`text-wrap:balance`,`overflow-wrap:anywhere`]],[`text-pretty`,[`text-wrap:pretty`,`overflow-wrap:anywhere`]],[`text-eyebrow`,[`font-size:1x`,`line-height:2x`,`letter-spacing:0.12em`,`text-transform:uppercase`]],[`text-field`,[`text-control`,`font-family:inherit`]],[`plain-list`,[`list-style-type:none`,`m:0`,`p:0`]],[`heading-inherit`,[`font-size:inherit@[:where(&)_:is(h1,h2,h3,h4,h5,h6)]`,`font-weight:inherit@[:where(&)_:is(h1,h2,h3,h4,h5,h6)]`,`line-height:inherit@[:where(&)_:is(h1,h2,h3,h4,h5,h6)]`]],[`truncate`,[`overflow:hidden`,`text-overflow:ellipsis`,`white-space:nowrap`]]],re=[...t,...n,...r,...i,...a,...o,...ee,...te,...ne],ie=[[`alert`,[`d:grid`,`align-items:start`,`min-inline-size:0`,`w:100%`,`p:4`,`rd:5x`,`border-width:1`,`font-size:2x`,`line-height:3x`,`gap-row:1`,`gap-column:3`,`grid-columns:[minmax(0,1fr)]`,`grid-columns:[max-content_minmax(0,1fr)]@[&:has(>svg)]`,`grid-columns:[minmax(0,1fr)_auto]@[&:has(>:is(button,a))]`,`grid-columns:[max-content_minmax(0,1fr)_auto]@[&:has(>svg):has(>:is(button,a))]`,`align-self:center@[:where(&)>:is(button,a)]`,`w:4@[:where(&)>svg]`,`h:4@[:where(&)>svg]`,`m-u:1@[:where(&)>svg]`,`flex-shrink:0@[:where(&)>svg]`]],[`alert-title`,[`hstack`,`heading-inherit`,`text-balance`,`gap:2`,`m:0`,`font-size:2x`,`line-height:3x`,`font-weight:5x`,`w:4@[:where(&)_svg]`,`h:4@[:where(&)_svg]`,`flex-shrink:0@[:where(&)_svg]`,`pointer-events:none@[:where(&)_svg]`]],[`alert-description`,[`m:0`,`font-size:2x`,`line-height:3x`,`text-wrap:pretty`,`overflow-wrap:break-word`]]],ae=[[`avatar`,[`inline-centered`,`pos:relative`,`flex-shrink:0`,`align-self:center`,`aspect-ratio:square`,`font-size:1x`,`font-weight:5x`,`w:8`,`w:7@sm`,`overflow:hidden`,`rd:50%`,`d:block@[:where(&)_img]`,`w:100%@[:where(&)_img]`,`h:100%@[:where(&)_img]`,`object-fit:cover@[:where(&)_img]`,`pos:relative@[:where(&)_img]`,`z-index:1@[:where(&)_img]`,`d:none@[:where(&)_img[data-avatar-hidden]]`]],[`avatar-image`,[`pos:relative`,`z-index:1`,`d:block`,`w:100%`,`h:100%`,`rd:inherit`,`object-fit:cover`,`d:none@data-avatar-hidden`]],[`avatar-fallback`,[`centered`,`pos:absolute`,`i:0`,`rd:50%`,`font-weight:5x`,`line-height:1`,`d:none@data-avatar-hidden`]],[`avatar-group`,[`inline-hstack`,`border-width:2@[&_>_*]`,`m-s:-2@[&_>_*_+_*]`]],[`avatar-group--ring`,[`border-width:0@[.avatar-group&_>_.avatar]`,`shadow-outline-width:2@[.avatar-group&_>_.avatar]`,`d:none@[.avatar-group&_>_.avatar[hidden]]`,`m-s:0@[.avatar-group&_>_.avatar]`,`m-s:-2@[.avatar-group&_>_.avatar:not([hidden])_~_.avatar:not([hidden])]`]]],oe=[[`badge`,[`inline-centered`,`text-dense`,`flex-shrink:0`,`gap:1`,`h:5.5`,`h:4.5@sm`,`min-w:5.5`,`min-w:4.5@sm`,`p-x:1`,`rd:3x`,`border-width:1`,`font-weight:5x`,`white-space:nowrap`,`w:3.5@[:where(&)_svg]`,`h:3.5@[:where(&)_svg]`,`flex-shrink:0@[:where(&)_svg]`,`pointer-events:none@[:where(&)_svg]`,`w:3@[:where(&)_svg]@sm`,`h:3@[:where(&)_svg]@sm`]],[`badge--link`,[`pos:relative`,`min-h:6`,`content:empty@::before`,`pos:absolute@::before`,`i-s:50%@::before`,`i-t:50%@::before`,`translate-x:-50%@::before`,`translate-y:-50%@::before`,`translate-x:50%@[:where(:dir(rtl))]@::before`,`w:100%@::before`,`h:100%@::before`,`min-w:6@::before`,`min-h:6@::before`]]],se=[[`breadcrumb`,[`min-inline-size:0`,`max-w:100%`]],[`breadcrumb-list`,[`plain-list`,`hstack`,`flex-wrap:wrap`,`gap:1.5`,`gap:2.5@sm`,`font-size:2x`,`line-height:3x`,`overflow-wrap:anywhere`,`min-h:min`]],[`breadcrumb-item`,[`hstack`,`min-inline-size:0`,`gap:1.5`,`gap:2.5@sm`,`content:empty@::after`,`d:block@::after`,`flex-shrink:0@::after`,`w:1.5@::after`,`h:1.5@::after`,`border-style:solid@::after`,`border-width:0@::after`,`border-t-width:1.5@::after`,`border-e-width:1.5@::after`,`rotate:45@::after`,`rotate:-45@[:where(:dir(rtl))]@::after`,`d:none@last-of-type@::after`]],[`breadcrumb-link`,[`inline-centered`,`gap:2`,`min-inline-size:0`,`rd:1x`,`cursor:pointer`,`decoration-line:none`,`underline-offset:4`,`decoration-line:underline@hover`,`decoration-line:none@aria-[current=page]`,`font-weight:5x@aria-[current=page]`]],[`breadcrumb-current`,[`font-weight:5x`,`overflow-wrap:anywhere`]]],ce=[[`btn`,[`control-base`,`h:9`,`h:8@sm`,`p-x:3`,`decoration-line:none`]]],le=[[`calendar`,[`d:inline-flex`,`flex-direction:column`,`gap:3`,`p:3`,`rd:6x`,`border-width:1`]],[`calendar-header`,[`hstack`,`justify-content:space-between`,`gap:2`]],[`calendar-grid`,[`border-collapse:collapse`,`table-layout:fixed`]],[`calendar-weekday`,[`text-caption`,`w:9`,`h:8`,`w:8@sm`,`h:7@sm`,`p:0`,`font-weight:5x`,`text-align:center`]],[`calendar-cell`,[`p:0`,`text-align:center`]],[`calendar-day`,[`reset-button@[:where(&)]`,`inline-centered`,`focus-ring`,`field-disabled`,`text-dense`,`w:9`,`h:9`,`w:8@sm`,`h:8@sm`,`p:0`,`rd:4x`,`border-width:1`,`font-variant-numeric:tabular-nums`,`cursor:pointer`]]],ue=[[`card`,[`vstack`,`min-inline-size:0`,`rd:6x`,`border-width:1`,`overflow:hidden`]],[`card-header`,[`d:grid`,`grid-columns:[minmax(0,1fr)_auto]`,`gap:1.5`,`p-x:6`,`p-t:6`]],[`card-body`,[`vstack`,`gap:2`,`p:6`,`min-inline-size:0`]],[`card-footer`,[`hstack`,`flex-wrap:wrap`,`gap:2`,`p-x:6`,`p-b:6`]],[`card-title`,[`heading-inherit`,`m:0`,`grid-column-start:1`,`font-size:4x`,`line-height:4x`,`font-weight:6x`,`overflow-wrap:anywhere`]],[`card-description`,[`m:0`,`grid-column-start:1`,`overflow-wrap:anywhere`]],[`card-action`,[`grid-column-start:2`,`grid-row-start:1`,`grid-row-end:[span_2]`,`align-self:start`,`justify-self:end`]],[`card-media`,[`pos:relative`,`d:block`,`m:0`,`min-inline-size:0`,`overflow:hidden`,`flex-shrink:0`,`d:block@[:where(&)_:is(img,video,picture,svg)]`,`w:100%@[:where(&)_:is(img,video,picture,svg)]`,`h:auto@[:where(&)_:is(img,video,picture,svg)]`,`object-fit:cover@[:where(&)_:is(img,video,picture,svg)]`]],[`card-overlay`,[`pos:absolute`,`i:0`,`vstack`,`justify-content:end`,`gap:1.5`,`p:4`]],[`card--side`,[`flex-direction:row@[.card&]`,`align-items:stretch`,`w:100%@[:where(&)>_.card-media_img]`,`h:100%@[:where(&)>_.card-media_img]`]]],de=[[`carousel-root`,[`pos:relative`,`w:100%`,`min-inline-size:0`]],[`carousel`,[`scroll-x`,`d:flex`,`overflow-y:hidden`,`scroll-snap-type:x-mandatory`,`scrollbar-width:none`,`scroll-behavior:smooth`,`scroll-behavior:auto@motion-reduce`,`d:none@[&::-webkit-scrollbar]`,`p-y:1`,`m-y:-1`]],[`carousel--vertical`,[`flex-direction:column@[.carousel&]`,`scroll-y@[.carousel&]`,`overflow-x:hidden@[.carousel&]`,`scroll-snap-type:y-mandatory@[.carousel&]`,`p-y:0@[.carousel&]`,`m-y:0@[.carousel&]`,`p-x:1@[.carousel&]`,`m-x:-1@[.carousel&]`]],[`carousel-item`,[`d:flex`,`flex:none`,`min-inline-size:0`,`scroll-snap-align:start`,`scroll-snap-stop:always`]],[`carousel-control`,[`pos:absolute`,`d:none@[[hidden]]`]],[`carousel-control--start`,[`i-y:0`,`m-y:auto`,`i-s:1`,`i-s:-12@md`]],[`carousel-control--end`,[`i-y:0`,`m-y:auto`,`i-e:1`,`i-e:-12@md`]],[`carousel-control--top`,[`i-x:0`,`m-x:auto`,`i-t:-12`]],[`carousel-control--bottom`,[`i-x:0`,`m-x:auto`,`i-b:-12`]]],s=[[`chat`,[`d:grid`,`grid-auto-rows:[min-content]`,`p-y:1`,`gap-column:3@[:has(>.chat-media)]`]],[`chat--start`,[`grid-columns:[minmax(0,1fr)]`,`place-items:start`,`grid-columns:[auto_minmax(0,1fr)]@[:has(>.chat-media)]`,`grid-column-start:1@[:where(&)>.chat-media]`,`grid-column-start:2@[:where(&):has(>.chat-media)>*:not(.chat-media)]`,`rd-es:0@[:where(&)>.chat-bubble]`]],[`chat--end`,[`grid-columns:[minmax(0,1fr)]`,`place-items:end`,`grid-columns:[minmax(0,1fr)_auto]@[:has(>.chat-media)]`,`grid-column-start:2@[:where(&)>.chat-media]`,`grid-column-start:1@[:where(&):has(>.chat-media)>*:not(.chat-media)]`,`rd-ee:0@[:where(&)>.chat-bubble]`]],[`chat-media`,[`grid-row-span:2`,`align-self:end`,`align-self:end@[.avatar&]`]],[`chat-header`,[`text-caption`,`grid-row-start:1`,`hstack`,`gap:1`]],[`chat-footer`,[`text-caption`,`grid-row-start:3`,`hstack`,`gap:1`]],[`chat-bubble`,[`grid-row-end:3`,`d:block`,`pos:relative`,`w:fit`,`min-w:10`,`max-w:90%`,`min-h:8`,`p-y:2`,`p-x:4`,`rd:4x`,`overflow-wrap:anywhere`]]],c=[[`checkbox`,`checkable-base w:4.5 h:4.5 w:4@sm h:4@sm p:0.5 rd:2x border-width:1 content:empty@::before pos:absolute@::before i:-1@::before content:empty@::after d:block@::after w:100%@::after h:100%@::after rotate:45@::after opacity:0@::after clip-path:[polygon(20%_100%,20%_80%,50%_80%,50%_80%,70%_80%,70%_100%)]@::after opacity:100@[&:is(:checked,[aria-checked=true])]@::after clip-path:[polygon(20%_100%,20%_80%,50%_80%,50%_0%,70%_0%,70%_100%)]@[&:is(:checked,[aria-checked=true])]@::after opacity:100@[&:is(:indeterminate,[aria-checked=mixed])]@::after rotate:0@[&:is(:indeterminate,[aria-checked=mixed])]@::after translate:[0_-35%]@[&:is(:indeterminate,[aria-checked=mixed])]@::after clip-path:[polygon(20%_100%,20%_80%,50%_80%,50%_80%,80%_80%,80%_100%)]@[&:is(:indeterminate,[aria-checked=mixed])]@::after transition:[opacity_100ms_ease-out]@::after transition:none@motion-reduce@::after appearance:auto@forced-colors@[&:is(input)] d:none@forced-colors@[&:is(input)]@::after`.split(` `)],[`checkbox-control`,[`pos:relative`,`d:inline-flex`,`flex-shrink:0`]],[`checkbox-indicator`,[`pos:absolute`,`i:0`,`m:auto`,`w:3.5`,`h:3.5`,`w:3@sm`,`h:3@sm`,`pointer-events:none`,`opacity:0`,`transition-opacity`,`transition:none@motion-reduce`,`d:none@forced-colors`,`opacity:100@peer-checked`,`d:none@peer-indeterminate`]],[`checkbox-indicator-mixed`,[`pos:absolute`,`i:0`,`m:auto`,`w:3.5`,`h:3.5`,`w:3@sm`,`h:3@sm`,`pointer-events:none`,`opacity:0`,`transition-opacity`,`transition:none@motion-reduce`,`d:none@forced-colors`,`opacity:100@peer-indeterminate`]]],l=[[`collapse`,[`d:grid`,`grid-columns:[minmax(0,1fr)]`,`grid-rows:[max-content_0fr]`,`w:100%`,`min-inline-size:0`,`pos:relative`,`isolation:isolate`,`rd:5x`,`transition:[grid-template-rows_200ms_ease-out]`,`transition:none@motion-reduce`,`grid-rows:[max-content_1fr]@open`,`grid-rows:[max-content_1fr]@data-open`,`overflow:hidden@[&::details-content]`,`transition:[content-visibility_200ms_allow-discrete]@[&::details-content]`,`transition:none@motion-reduce@[&::details-content]`]],[`collapse-title`,[`hstack`,`collapse-marker-reset`,`gap:2`,`w:100%`,`min-inline-size:0`,`min-h:[1lh]`,`grid-row-start:1`,`grid-column-start:1`,`p:4`,`p-e:12`,`pos:relative`,`text-align:start`,`cursor:pointer`]],[`collapse-marker-reset`,[`list-style-type:none`,`d:none@[&::-webkit-details-marker]`]],[`collapse-chevron`,[`chevron-down`,`rotate:225@[details[open]_>_summary&]@::after`]],[`collapse-motion`,[`interpolate-size:allow-keywords@[details&]@supports(interpolate-size:allow-keywords)@motion-safe`,`h:0@[details&::details-content]@supports(interpolate-size:allow-keywords)@motion-safe`,`overflow:hidden@[details&::details-content]@supports(interpolate-size:allow-keywords)@motion-safe`,`transition:[height_200ms_ease-out,content-visibility_200ms_allow-discrete]@[details&::details-content]@supports(interpolate-size:allow-keywords)@motion-safe`,`h:auto@[details&[open]::details-content]@supports(interpolate-size:allow-keywords)@motion-safe`]],[`collapse-icon`,[`pos:absolute`,`i-e:4`,`inline-centered`,`w:4`,`h:4`,`flex-shrink:0`,`pointer-events:none`,`transition-transform`,`transition:none@motion-reduce`,`rotate:180@[.collapse[open]_>_.collapse-title_>_&]`,`rotate:180@[.collapse[data-open]_>_.collapse-title_>_&]`]],[`collapse-folds`,[`d:none@[&:not([open])_>_*:not(summary)]`]],[`collapse-content`,[`grid-row-start:2`,`grid-column-start:1`,`min-h:0`,`min-inline-size:0`,`overflow:hidden`,`vis:hidden`,`p-x:4`,`p-b:0`,`vis:visible@[[open]_>_&]`,`vis:visible@[[data-open]_>_&]`,`p-b:4@[[open]_>_&]`,`p-b:4@[[data-open]_>_&]`,`transition:[padding_150ms_ease-out,visibility_200ms_ease-out]`,`transition:none@motion-reduce`]]],u=[[`color-input`,[`field-disabled`,`appearance:auto`,`box-sizing:border-box`,`d:inline-block`,`d:none@[[hidden]]`,`flex-shrink:0`,`min-inline-size:0`,`w:9`,`h:9`,`w:8@sm`,`h:8@sm`,`p:1`,`rd:4x`,`border-width:1`,`vertical-align:middle`,`cursor:pointer`,`p:0@[&::-webkit-color-swatch-wrapper]`,`rd:2x@[&::-webkit-color-swatch]`,`rd:2x@[&::-moz-color-swatch]`]]],d=[[`divider`,[`hstack`,`align-self:stretch`,`flex-shrink:0`,`white-space:nowrap`,`border-width:0`,`content:empty@::before`,`content:empty@::after`,`flex-grow:1@::before`,`flex-grow:1@::after`,`border-style:solid@::before`,`border-style:solid@::after`,`border-width:0@[:where(&)]@::before`,`border-width:0@[:where(&)]@::after`,`border-t-width:1@[:where(&)]@::before`,`border-t-width:1@[:where(&)]@::after`,`min-h:4@[:where(&):has(>*)]`,`gap:4@[:where(&):has(>*)]`]],[`divider--block`,[`flex-direction:column`,`h:auto`,`min-h:0`,`w:4`,`border-t-width:0@::before`,`border-t-width:0@::after`,`border-s-width:1@::before`,`border-s-width:1@::after`]]],f=[[`dock`,[`pos:fixed`,`i-b:0`,`i-s:0`,`i-e:0`,`z-index:1`,`hstack`,`align-items:stretch`,`justify-content:space-around`,`gap:1`,`w:100%`,`min-h:[calc(4rem_+_env(safe-area-inset-bottom))]`,`p:2`,`p-b:[max(0.5rem,env(safe-area-inset-bottom))]`,`border-t-width:1`]],[`dock-item`,[`control-disabled`,`vstack`,`align-items:center`,`justify-content:start`,`gap:1px`,`pos:relative`,`flex-shrink:1`,`flex-basis:100%`,`max-w:32`,`min-inline-size:0`,`m-b:2`,`rd:4x`,`cursor:pointer`,`appearance:none`,`decoration-line:none`,`font-family:inherit`,`text-indent:initial`,`w:5@[:where(&)>svg]`,`h:5@[:where(&)>svg]`,`flex-shrink:0@[:where(&)>svg]`,`font-weight:5x@aria-[current=page]`]],[`dock-label`,[`text-caption`,`max-w:100%`,`overflow-wrap:anywhere`,`text-align:center`]]],p=[[`dropdown`,[`pos:relative`,`d:inline-grid`]],[`dropdown-panel`,[`overlay-bounds`,`w:max`,`min-w:32`,`rd:4x`,`border-width:1`,`p:1`]],[`dropdown-panel--popover`,[`d:none@[.dropdown-panel&]`,`d:grid@[.dropdown-panel&:popover-open]`,`pos:fixed@[.dropdown-panel&]`,`i:auto@[.dropdown-panel&]`,`m:0@[.dropdown-panel&]`]],[`dropdown-panel--floating`,[`d:grid@[.dropdown-panel&]`,`d:none@[.dropdown-panel&[hidden]]`]],[`dropdown-content`,[`dropdown-panel`,`pos:absolute`,`z-index:50`,`i-t:100%`,`i-s:0`,`m-t:1`,`d:grid`,`d:none@[[hidden]]`]],[`dropdown--end`,[`i-s:auto@[&_>_.dropdown-content]`,`i-e:0@[&_>_.dropdown-content]`]],[`dropdown--top`,[`i-t:auto@[&_>_.dropdown-content]`,`i-b:100%@[&_>_.dropdown-content]`,`m-t:0@[&_>_.dropdown-content]`,`m-b:1@[&_>_.dropdown-content]`]]],m=[[`empty`,[`vstack`,`text-balance`,`align-items:center`,`justify-content:center`,`min-inline-size:0`,`flex:1`,`gap:6`,`p-x:6`,`p-y:12`,`p-y:20@md`,`text-align:center`]],[`empty-header`,[`vstack`,`align-items:center`,`max-w:24rem`,`gap:1`,`text-align:center`]],[`empty-media`,[`centered`,`pos:relative`,`flex-shrink:0`]],[`empty-title`,[`heading-inherit`,`m:0`,`font-size:5x`,`line-height:5x`,`font-size:4x@sm`,`line-height:4x@sm`,`font-weight:6x`]],[`empty-description`,[`text-description`,`text-pretty`]],[`empty-content`,[`vstack`,`text-body`,`align-items:center`,`w:100%`,`min-inline-size:0`,`max-w:24rem`,`gap:4`]]],h=[[`fab`,[`pos:fixed`,`i-b:[max(1rem,env(safe-area-inset-bottom))]`,`i-e:4`,`z-index:40`,`d:flex`,`d:none@[[hidden]]`,`flex-direction:column-reverse`,`align-items:end`,`gap:2`,`pointer-events:none`,`pointer-events:auto@[:where(&)_>_*]`]]],g=[[`field`,[`vstack`,`align-items:start`,`gap:2`,`min-inline-size:0`]],[`field-label`,[`text-label`]],[`field-hint`,[`text-dense`,`line-height:3x`,`line-height:2x@sm`,`m:0`]],[`input`,[`field-base`]],[`textarea`,[`field-base`,`h:auto`,`h:auto@sm`,`min-h:20`,`p-y:1.5`,`line-height:4x`,`line-height:3x@sm`,`resize:vertical@[:where(&)]`]],[`field-group`,[`d:grid`,`gap:4`,`min-inline-size:0`,`m:0`,`p:0`,`border-width:0`]],[`field-legend`,[`text-control`,`font-weight:6x`,`hstack`,`gap:2`,`m-e:auto`,`p-x:0`,`p-b:2`]],[`field-row`,[`hstack`,`gap:2`,`min-inline-size:0`,`min-h:9`,`min-h:8@sm`,`text-control`,`overflow-wrap:anywhere`,`cursor:pointer@[&:has(input)]`]],[`field-error`,[`text-dense`,`line-height:3x`,`line-height:2x@sm`,`m:0`,`vis:hidden`,`vis:visible@[:is(:user-invalid,:has(:user-invalid),[aria-invalid]:not([aria-invalid=false]),:has([aria-invalid]:not([aria-invalid=false])))_~_&]`]],[`input-shell`,[`field-base`,`inline-hstack`,`gap:2`,`cursor:text`,`appearance:none@[:where(&)_>_:is(input,textarea)]`,`flex:1@[:where(&)_>_:is(input,textarea)]`,`w:100%@[:where(&)_>_:is(input,textarea)]`,`min-inline-size:0@[:where(&)_>_:is(input,textarea)]`,`h:100%@[:where(&)_>_input]`,`border-width:0@[:where(&)_>_:is(input,textarea)]`,`p:0@[:where(&)_>_:is(input,textarea)]`,`font-family:inherit@[:where(&)_>_:is(input,textarea)]`,`font-size:inherit@[:where(&)_>_:is(input,textarea)]`,`line-height:inherit@[:where(&)_>_:is(input,textarea)]`,`opacity:64@[&:has(>input:disabled,>textarea:disabled)]`,`cursor:not-allowed@[&:has(>input:disabled,>textarea:disabled)]`]],[`input-affix`,[`hstack`,`flex-shrink:0`,`white-space:nowrap`,`h:[calc(100%_-_0.5rem)]`,`p-x:3`,`font-size:inherit`,`line-height:inherit`,`m-s:-3@[&:first-child]`,`m-e:3@[&:first-child]`,`border-e-width:1@[&:first-child]`,`m-s:3@[&:last-child]`,`m-e:-3@[&:last-child]`,`border-s-width:1@[&:last-child]`]],[`input-shell--grid`,[`d:grid@[.input-shell&]`,`grid-columns:[auto_minmax(0,1fr)_auto]@[.input-shell&]`,`grid-rows:[auto_auto_auto]@[.input-shell&]`,`align-items:stretch@[.input-shell&]`,`gap:0@[.input-shell&]`,`p:0@[.input-shell&]`,`h:auto@[.input-shell&]`,`min-h:9@[.input-shell&]`,`min-h:8@[.input-shell&]@sm`,`grid-column-start:2@[.input-shell&_>_:is(input,textarea)]`,`grid-row-start:2@[.input-shell&_>_:is(input,textarea)]`,`h:auto@[.input-shell&_>_:is(input,textarea)]`,`rd:0@[.input-shell&_>_:is(input,textarea)]`,`p-x:3@[.input-shell&_>_:is(input,textarea)]`,`p-y:1.5@[.input-shell&_>_:is(input,textarea)]`,`min-h:[calc(var(--spacing)*9_-_2px)]@[.input-shell&_>_input]`,`min-h:[calc(var(--spacing)*8_-_2px)]@[.input-shell&_>_input]@sm`,`min-inline-size:0@[.input-shell&_>_.input-affix]`,`h:auto@[.input-shell&_>_.input-affix]`,`m:0@[.input-shell&_>_.input-affix]`,`border-width:0@[.input-shell&_>_.input-affix]`,`p-y:1.5@[.input-shell&_>_.input-affix]`]],[`input-affix--inline-start`,[`grid-column-start:1@[.input-shell.input-shell--grid_>_.input-affix&]`,`grid-row-start:2@[.input-shell.input-shell--grid_>_.input-affix&]`,`border-e-width:1@[.input-shell.input-shell--grid_>_.input-affix&]`]],[`input-affix--inline-end`,[`grid-column-start:3@[.input-shell.input-shell--grid_>_.input-affix&]`,`grid-row-start:2@[.input-shell.input-shell--grid_>_.input-affix&]`,`border-s-width:1@[.input-shell.input-shell--grid_>_.input-affix&]`]],[`input-affix--block-start`,[`grid-column:[1/-1]@[.input-shell.input-shell--grid_>_.input-affix&]`,`grid-row-start:1@[.input-shell.input-shell--grid_>_.input-affix&]`,`border-n-width:1@[.input-shell.input-shell--grid_>_.input-affix&]`]],[`input-affix--block-end`,[`grid-column:[1/-1]@[.input-shell.input-shell--grid_>_.input-affix&]`,`grid-row-start:3@[.input-shell.input-shell--grid_>_.input-affix&]`,`border-u-width:1@[.input-shell.input-shell--grid_>_.input-affix&]`]],[`floating-label`,[`d:flex`,`pos:relative`,`min-inline-size:0`,`pos:absolute@[:where(&)_>_span]`,`z-index:1@[:where(&)_>_span]`,`i-s:3@[:where(&)_>_span]`,`i-t:0@[:where(&)_>_span]`,`translate:[0_calc(1.125rem_-_50%)]@[:where(&)_>_span]`,`translate:[0_calc(1rem_-_50%)]@[:where(&)_>_span]@sm`,`p-x:1@[:where(&)_>_span]`,`line-height:1@[:where(&)_>_span]`,`pointer-events:none@[:where(&)_>_span]`,`opacity:100@[:where(&)_>_span]`,`opacity:0@[:where(&)>input]@::placeholder`,`opacity:100@[&:focus-within>input]@::placeholder`,`transition:[translate_100ms_ease-out]@[:where(&)_>_span]`,`transition:none@motion-reduce@[:where(&)_>_span]`,`translate:[0_calc(-50%_-_0.125em)]@[&:is(:focus-within,:not(:has(>input:placeholder-shown)))_>_span]`]],[`textarea--autosize`,[`field-sizing:content`,`resize:none@supports(field-sizing:content)`,`max-h:50dvh`,`overflow-y:auto`]]],_=[[`file-input`,`text-field.field-disabled.box-sizing:border-box.inline-hstack.w:100%.min-inline-size:0.h:9.h:8@sm.rd:4x.border-width:1.p-s:0.p-e:3.cursor:pointer.h:100%@[&::file-selector-button].m-e:3@[&::file-selector-button].p-x:4@[&::file-selector-button].border-style:solid@[&::file-selector-button].border-t-width:0@[&::file-selector-button].border-b-width:0@[&::file-selector-button].border-s-width:0@[&::file-selector-button].border-e-width:1@[&::file-selector-button].cursor:pointer@[&::file-selector-button].cursor:not-allowed@disabled@[&::file-selector-button].cursor:not-allowed@aria-disabled@[&::file-selector-button].font-family:inherit@[&::file-selector-button].font-size:inherit@[&::file-selector-button].font-weight:5x@[&::file-selector-button]`.split(`.`)],[`dropzone`,[`focus-proxy`,`pos:relative`,`d:grid`,`place-items:center`,`w:100%`,`min-h:32`,`overflow:hidden`,`rd:5x`,`border-width:1`,`border-style:dashed`,`p:6`,`text-align:center`,`cursor:pointer`,`border-style:solid@data-dragover`,`opacity:64@[&:has(>input:disabled)]`,`cursor:not-allowed@[&:has(>input:disabled)]`]],[`dropzone-input`,[`pos:absolute`,`i:0`,`z-index:1`,`w:100%`,`h:100%`,`opacity:0`,`cursor:pointer`,`cursor:not-allowed@disabled`,`cursor:pointer@[&::file-selector-button]`,`cursor:not-allowed@disabled@[&::file-selector-button]`]],[`dropzone-content`,[`vstack`,`text-body`,`align-items:center`,`gap:2`,`font-weight:5x`,`pointer-events:none`]],[`dropzone-selection`,[`max-w:100%`,`pointer-events:none`,`overflow-wrap:anywhere`,`font-size:2x`,`line-height:3x`,`font-size:1x@sm`,`line-height:2x@sm`]]],v=[[`filter`,[`hstack`,`flex-wrap:wrap`,`gap-row:2`,`min-inline-size:0`,`m-e:2@[:where(&)_>_*:not([hidden]):where(:has(~*:not([hidden])))]`,`overflow:hidden@[:where(&)_>_*]`,`transition:[opacity_150ms_ease-out,visibility_150ms_ease-out]@[:where(&)_>_*]`,`transition:none@motion-reduce@[:where(&)_>_*]`,`transition:none@[:where(&)_>_*:focus-visible]`,`pos:relative@[:where(&)_>_*:focus-visible]`,`z-index:1@[:where(&)_>_*:focus-visible]`,`opacity:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`,`scale:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`,`w:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`,`border-width:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`,`m-e:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`,`p-x:0@[&:not([data-mode=multiple]):not(:has(>:focus-visible)):has(>:is(:checked,[aria-pressed=true]):not(.filter-reset,[type=checkbox]))_>_:is(input,button):not(:checked,[aria-pressed=true],.filter-reset,[type=reset])]`]],[`filter-reset`,[`aspect-ratio:square`,`vis:hidden@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`opacity:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`scale:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`w:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`border-width:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`m-e:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`,`p-x:0@[.filter:not(:has(>:is(:checked,[aria-pressed=true]):not(.filter-reset)))_>_&:not(:focus-visible)]`]]],y=[[`footer`,[`d:grid`,`w:100%`,`grid-auto-flow:row`,`place-items:start`,`gap-row:10`,`gap-column:4`,`d:grid@[:where(&)_>_:not(script,style,template)]`,`place-items:start@[:where(&)_>_:not(script,style,template)]`,`gap:2@[:where(&)_>_:not(script,style,template)]`]],[`footer--center`,[`text-align:center@[&:not(:root)]`,`place-items:center@[&:not(:root)]`,`place-items:center@[&:not(:root)_>_:not(script,style,template)]`]],[`footer-title`,[`text-balance`,`m:0`,`max-w:100%`,`font-size:3x`,`line-height:3x`,`font-weight:5x`]]],b=[[`frame`,[`d:flex`,`w:100%`,`min-inline-size:0`]],[`frame-side`,[`flex-shrink:0`,`pos:sticky`,`i-t:[var(--frame-offset,0px)]`,`h:[calc(100dvh_-_var(--frame-offset,0px))]`,`overflow-y:auto`,`overscroll-behavior:contain`]],[`frame-main`,[`flex:1`,`min-inline-size:0`]]],x=[[`hero`,[`d:grid`,`grid-columns:[minmax(0,1fr)]`,`pos:relative`,`grid-area:[1/1]@[&_>_*]`,`place-items:center`,`w:100%`,`h:100%`,`min-h:448px`]],[`hero-content`,[`centered`,`isolation:isolate`,`min-inline-size:0`,`overflow-wrap:anywhere`,`gap:4`,`w:100%`,`max-w:9c`,`p:4`,`gap:8@md`,`p:8@md`]],[`hero-actions`,[`vstack`,`align-items:stretch`,`gap:2`,`flex-direction:row@sm`,`flex-wrap:wrap@sm`,`align-items:center@sm`]],[`hero-decoration`,[`pos:absolute`,`i:0`,`m:auto`,`pointer-events:none`,`max-w:68vw`,`max-h:68vw`]]],S=[[`indicator`,[`pos:relative`,`d:inline-flex`,`w:fit`,`max-w:100%`]],[`indicator-item`,[`pos:absolute`,`z-index:1`,`white-space:nowrap`,`i-t:0@[:where(&)]`,`i-b:auto@[:where(&)]`,`i-s:auto@[:where(&)]`,`i-e:0@[:where(&)]`,`translate-x:50%@[:where(&)]`,`translate-y:-50%@[:where(&)]`,`translate-x:-50%@[:where(&:dir(rtl))]`]],[`indicator-item--start`,[`i-s:0`,`i-e:auto`,`translate-x:-50%`,`translate-x:50%@[&:where(:dir(rtl))]`]],[`indicator-item--center`,[`i-s:50%`,`i-e:auto`,`translate-x:-50%`,`translate-x:50%@[&:where(:dir(rtl))]`]],[`indicator-item--end`,[`i-s:auto`,`i-e:0`,`translate-x:50%`,`translate-x:-50%@[&:where(:dir(rtl))]`]],[`indicator-item--top`,[`i-t:0`,`i-b:auto`,`translate-y:-50%`]],[`indicator-item--middle`,[`i-t:50%`,`i-b:auto`,`translate-y:-50%`]],[`indicator-item--bottom`,[`i-t:auto`,`i-b:0`,`translate-y:50%`]]],C=[[`join`,[`d:inline-flex`,`w:fit`,`flex-direction:row`,`align-items:stretch`,`z-index:1@[&_>_*:focus-within]`,`rd-s:4x@[&_>_*:not([hidden])]`,`rd-e:0@[&_>_*:not([hidden])]`,`rd-s:0@[&_>_*:not([hidden])_~_*:not([hidden])]`,`rd-e:4x@[&_>_*:not([hidden]):not(:has(~*:not([hidden])))]`,`m-s:-1px@[&_>_*:not([hidden])_~_*:not([hidden])]`]],[`join--block`,[`flex-direction:column@[&:not(:root)]`,`rd-u:4x@[&:not(:root)_>_*:not([hidden])]`,`rd-n:0@[&:not(:root)_>_*:not([hidden])]`,`rd-u:0@[&:not(:root)_>_*:not([hidden])_~_*:not([hidden])]`,`rd-n:4x@[&:not(:root)_>_*:not([hidden]):not(:has(~*:not([hidden])))]`,`m-s:0@[&:not(:root)_>_*:not([hidden])_~_*:not([hidden])]`,`m-u:-1px@[&:not(:root)_>_*:not([hidden])_~_*:not([hidden])]`]],[`join-separator`,[`flex-shrink:0`,`flex-grow:0`,`flex-basis:px`,`align-self:stretch`,`pointer-events:none`,`z-index:2`,`border-width:0`]],[`join-text`,[`text-control`,`control-icon`,`inline-hstack`,`gap:2`,`white-space:nowrap`,`rd:4x`,`border-width:1`,`p-x:3`]]],w=[[`kbd`,[`inline-centered`,`flex-shrink:0`,`gap:1`,`h:6`,`h:5@sm`,`min-w:6`,`min-w:5@sm`,`p-x:1.5`,`rd:2x`,`font-size:1x`,`line-height:1x`,`font-weight:5x`,`vertical-align:middle`,`white-space:nowrap`,`w:3@[:where(&)_svg]`,`h:3@[:where(&)_svg]`]],[`kbd-group`,[`inline-hstack`,`gap:1`]]],T=[[`list`,[`plain-list`,`text-body`,`vstack`,`min-inline-size:0`]],[`list-row`,[`hstack`,`flex-wrap:wrap`,`gap:4`,`min-inline-size:0`,`p:4`,`rd:4x`,`pos:relative`]],[`list-content`,[`vstack`,`flex:[1_1_12ch]`,`min-inline-size:0`,`overflow-wrap:anywhere`,`gap:1.5`]],[`list-media`,[`centered`,`flex-shrink:0`,`gap:2`]],[`list-media--icon`,[`w:8`,`h:8`,`rd:3x`,`border-width:1`,`w:4@[:where(&)_svg]`,`h:4@[:where(&)_svg]`,`pointer-events:none@[:where(&)_svg]`]],[`list-media--image`,[`w:10`,`h:10`,`rd:3x`,`overflow:hidden`,`w:100%@[:where(&)_img]`,`h:100%@[:where(&)_img]`,`object-fit:cover@[:where(&)_img]`]],[`list-title`,[`hstack`,`heading-inherit`,`gap:2`,`font-weight:5x`,`line-height:4x`,`line-height:3x@sm`]],[`list-description`,[`m:0`,`line-height:4x`,`line-height:3x@sm`,`text-wrap:pretty`]],[`list-col-wrap`,[`flex-basis:100%`,`min-inline-size:0`]]],E=[[`listbox`,[`plain-list`,`vstack`,`scroll-y`,`p:1`,`scroll-p-y:1`]],[`listbox-option`,[`control-icon`,`control-disabled`,`text-control`,`pos:relative`,`hstack`,`d:none@[[hidden]]`,`w:100%`,`min-h:8`,`min-h:7@sm`,`gap:2`,`rd:2x`,`p-x:2`,`p-y:1`,`text-align:start`,`cursor:default`]],[`listbox-group`,[`vstack`,`d:none@[[hidden]]`]],[`listbox-empty`,[`text-control`,`p:2`,`text-align:center`]]],D=[[`loading-shell`,[`d:inline-flex`,`vertical-align:middle`,`flex-shrink:0`]],[`loading`,[`d:inline-block`,`flex-shrink:0`,`aspect-ratio:square`,`h:auto`,`pointer-events:none`,`vertical-align:middle`,`animation:spin`,`animation-timing:linear`,`animation:none@motion-reduce`,`w:4.5@[:where(&)]`,`w:4@[:where(&)]@sm`]]],O=[[`menu`,[`plain-list`,`text-control`,`vstack`,`flex-wrap:wrap`,`w:fit`,`p:2`]],[`menu--horizontal`,[`d:inline-flex@[.menu&]`,`flex-direction:row@[.menu&]`,`flex-wrap:wrap@[.menu&]`,`align-items:start@[.menu&]`]],[`menu-item`,[`vstack`,`align-items:stretch`,`flex-shrink:0`,`min-inline-size:0`,`pos:relative`]],[`menu-action`,[`control-icon`,`control-disabled`,`text-control`,`pos:relative`,`hstack`,`gap:2`,`w:100%`,`min-inline-size:0`,`min-h:8`,`min-h:7@sm`,`rd:2x`,`p-x:2`,`p-y:1`,`text-align:start`,`white-space:nowrap`,`decoration-line:none`,`cursor:pointer`,`appearance:none`,`font-family:inherit`,`font-style:normal`,`font-weight:4x`,`letter-spacing:inherit`,`text-indent:initial`]],[`menu-indicator`,[`inline-centered`,`pos:absolute`,`i-s:1.5`,`w:4`,`h:4`,`opacity:0`,`pointer-events:none`,`transition-opacity`,`transition:none@motion-reduce`,`opacity:100@[:where(.menu-action[aria-checked=true])_>_&]`,`w:4@[:where(&)_svg]`,`h:4@[:where(&)_svg]`]],[`menu-label`,[`text-caption`,`font-weight:5x`,`p-x:2`,`p-y:1.5`]],[`menu-submenu`,[`plain-list`,`vstack`,`pos:relative`,`white-space:nowrap`,`m-s:4`,`p-s:2`,`border-s-width:1`]],[`menu-separator`,[`list-style-type:none`,`h:0`,`m-c:1`,`m-a:-1`,`border-width:0`,`border-t-width:1`]],[`menu-shortcut`,[`text-caption`,`m-s:auto`,`flex-shrink:0`,`font-weight:5x`,`letter-spacing:0.1em`,`pointer-events:none`]]],k=[[`meter`,[`vstack`,`gap:2`,`w:100%`]],[`meter-header`,[`hstack`,`justify-content:space-between`,`gap:2`]],[`meter-value`,[`text-control`,`font-variant-numeric:tabular-nums`]],[`meter-track`,[`d:block`,`w:100%`,`h:2`,`overflow:hidden`,`rd:9999px`]],[`meter-indicator`,[`d:block`,`h:100%`,`max-w:100%`,`rd:9999px`,`transition-property:[width]`,`transition-duration:500`,`transition:none@motion-reduce`]]],A=[[`mockup-code`,[`scroll-x`,`pos:relative`,`w:100%`,`overflow-y:hidden`,`rd:5x`,`border-width:1`,`p-y:5`,`direction:ltr`,`font-size:2x`,`line-height:3x`,`p-y:0@[:where(:has(>.mockup-code-body))]`,`overflow:hidden@[:where(:has(>.mockup-code-body))]`,`direction:inherit@[:where(:has(>.mockup-code-body):dir(ltr))]`,`direction:rtl@[:where(:has(>.mockup-code-body):dir(rtl))]`,`w:max@[:where(&)_>_pre]`,`min-w:100%@[:where(&)_>_pre]`,`p-e:5@[:where(&)_>_pre]`,`content:empty@[:where(&)_>_pre]@::before`,`m-e:2ch@[:where(&)_>_pre]@::before`,`content:[attr(data-prefix)]@[:where(&)_>_pre[data-prefix]]@::before`,`d:inline-block@[:where(&)_>_pre[data-prefix]]@::before`,`w:8@[:where(&)_>_pre[data-prefix]]@::before`,`text-align:end@[:where(&)_>_pre[data-prefix]]@::before`]],[`mockup-code-header`,[`hstack`,`flex-wrap:wrap`,`gap:2`,`justify-content:space-between`,`flex-shrink:0`,`min-inline-size:0`,`min-h:10`,`border-b-width:1`,`p-x:4`,`p-y:1.5`]],[`mockup-code-title`,[`font-size:2x`,`line-height:1.5`,`flex:[1_1_12ch]`,`min-inline-size:0`,`overflow-wrap:anywhere`,`font-weight:5x`]],[`mockup-code-language`,[`text-caption`,`font-family:mono`,`flex-shrink:0`,`max-w:100%`,`overflow-wrap:anywhere`,`rd:2x`,`p-x:1.5`]],[`mockup-code-actions`,[`hstack`,`flex-wrap:wrap`,`gap:1`,`flex-shrink:0`,`max-w:100%`,`m-s:auto`]],[`mockup-code-body`,[`scroll-x`,`d:grid`,`grid-columns:[minmax(max-content,1fr)]`,`p-y:4`,`direction:ltr`,`font-family:mono`,`font-size:2x`,`line-height:1.75`,`tab-size:2`,`font-variant-ligatures:none`,`outline-offset:-4@focus-visible`,`d:grid@[:where(&)_>_pre]`,`grid-columns:[3ch_1fr]@[:where(&)_>_pre]`,`min-w:max@[:where(&)_>_pre]`,`gap-column:2ch@[:where(&)_>_pre]`,`p-x:4@[:where(&)_>_pre]`,`m:0@[:where(&)_>_pre]`,`content:empty@[:where(&)_>_pre]@::before`,`content:[attr(data-prefix)]@[:where(&)_>_pre[data-prefix]]@::before`,`text-align:end@[:where(&)_>_pre]@::before`]],[`mockup-phone`,[`d:inline-grid`,`justify-items:center`,`w:100%`,`max-w:462px`,`aspect-ratio:[462/978]`,`p:1.5`,`rd:65px`,`border-width:5`,`overflow:hidden`]],[`mockup-phone-camera`,[`grid-area:[1/1]`,`z-index:1`,`w:28%`,`h:3.7%`,`m-t:3%`,`rd:17px`]],[`mockup-phone-display`,[`grid-area:[1/1]`,`w:100%`,`h:100%`,`overflow:hidden`,`rd:54px`,`object-fit:cover@[:where(&)_>_img]`,`w:100%@[:where(&)_>_img]`,`h:100%@[:where(&)_>_img]`]]],j=[[`modal`,[`d:none`,`d:grid@open`,`grid-columns:[minmax(0,1fr)]`,`overflow-wrap:anywhere`,`pos:fixed`,`i:0`,`m:auto`,`w:[calc(100%_-_2rem)]`,`max-w:3c`,`max-h:[calc(100dvh_-_2rem)]`,`gap:8`,`overflow-y:auto`,`overscroll-behavior:contain`,`rd:6x`,`border-width:1`,`p:4`,`p:8@sm`]],[`modal-header`,[`d:grid`,`gap:2`,`text-align:start`]],[`modal-title`,[`heading-inherit`,`m:0`,`font-size:5x`,`line-height:5x`,`font-size:4x@sm`,`line-height:4x@sm`,`font-weight:6x`]],[`modal-body`,[`vstack`,`gap:3`,`min-inline-size:0`]],[`modal-footer`,[`vstack`,`flex-wrap:wrap`,`align-items:stretch`,`gap:2`,`pos:sticky`,`i-n:-1rem`,`m-n:-1rem`,`p-n:4`,`i-n:-2rem@sm`,`m-n:-2rem@sm`,`p-n:8@sm`,`flex-direction:row@sm`,`justify-content:end@sm`,`align-items:center@sm`]],[`modal--backdrop-motion`,[`opacity:0@::backdrop`,`opacity:100@open@::backdrop`,`opacity:0@open@starting@::backdrop`,`transition:[opacity_150ms_ease-out]@::backdrop`,`transition:none@motion-reduce@::backdrop`]],[`modal--motion`,[`opacity:0`,`translate-y:2`,`opacity:100@open`,`translate:none@open`,`opacity:0@open@starting`,`translate-y:2@open@starting`,`transition:[opacity_150ms_ease-out,translate_150ms_ease-out,display_150ms_allow-discrete,overlay_150ms_allow-discrete]`,`transition-duration:200@open`,`transition:none@motion-reduce`]]],M=[[`navbar`,[`hstack`,`pos:relative`,`w:100%`,`min-h:15`,`min-h:14@sm`,`gap:2.5`,`p-x:4`,`p-y:3`,`p-x:6@md`]],[`navbar-brand`,[`hstack`,`gap:2`,`press-scale`,`text-control`,`h:9`,`h:8@sm`,`rd:3x`,`p-x:1.5`,`font-weight:6x`,`decoration-line:none`]],[`navbar-start`,[`inline-hstack`,`justify-content:start`,`w:50%`,`min-inline-size:0`]],[`navbar-center`,[`inline-hstack`,`flex-shrink:0`,`min-inline-size:0`]],[`navbar-end`,[`inline-hstack`,`justify-content:end`,`w:50%`,`min-inline-size:0`]]],N=[[`otp`,[`inline-hstack`,`pos:relative`,`max-w:100%`,`gap:2`,`direction:ltr`]],[`otp-slot`,[`inline-centered`,`box-sizing:border-box`,`flex-shrink:0`,`pos:relative`,`w:9`,`h:9`,`w:8@sm`,`h:8@sm`,`rd:4x`,`border-width:1`,`font-size:4x`,`font-size:3x@sm`,`line-height:3x`,`text-align:center`,`font-variant-numeric:tabular-nums`,`z-index:1@data-active`]],[`otp-separator`,[`inline-centered`,`flex-shrink:0`,`w:4`,`h:9`,`h:8@sm`]]],P=[[`pagination`,[`d:flex`,`min-inline-size:0`,`w:100%`,`justify-content:center`]],[`pagination-list`,[`plain-list`,`hstack`,`max-w:100%`,`min-inline-size:0`,`flex-wrap:wrap`,`justify-content:center`,`gap:1`]],[`pagination-item`,[`d:flex`,`min-inline-size:0`,`text-align:unset`]],[`pagination-link`,[`inline-centered`,`control-disabled`,`text-label`,`press-scale`,`h:9`,`min-w:9`,`h:8@sm`,`min-w:8@sm`,`p-x:2.5`,`rd:4x`,`border-width:1`,`font-variant-numeric:tabular-nums`,`decoration-line:none`,`white-space:nowrap`,`cursor:pointer`]],[`pagination-ellipsis`,[`inline-centered`,`h:9`,`min-w:9`,`h:8@sm`,`min-w:8@sm`,`p-x:2.5`]],[`pagination-ellipsis-label`,[`sr-only`]]],F=[[`popover`,[`d:contents`]],[`popover-content`,[`overlay-bounds`,`d:none`,`d:flex@[:popover-open]`,`pos:fixed`,`i:auto`,`m:2`,`w:[min(20rem,calc(100vw_-_2rem))]`,`flex-direction:column`,`gap:4`,`rd:4x`,`border-width:1`,`p:4`]],[`popover-header`,[`vstack`,`gap:2`,`text-align:start`]],[`popover-title`,[`heading-inherit`,`m:0`,`font-size:4x`,`line-height:4x`,`font-size:3x@sm`,`line-height:3x@sm`,`font-weight:6x`]],[`popover-description`,[`text-description`]],[`popover-content--block-start`,[`position-area:block-start`,`position-try:[flip-block,_span-all]`]],[`popover-content--block-start-inline-start`,[`position-area:[block-start_span-inline-end]`,`position-try:[flip-block,_span-all]`]],[`popover-content--block-start-inline-end`,[`position-area:[block-start_span-inline-start]`,`position-try:[flip-block,_span-all]`]],[`popover-content--inline-end`,[`position-area:inline-end`,`position-try:[flip-inline,_span-all]`]],[`popover-content--inline-end-block-start`,[`position-area:[inline-end_span-block-end]`,`position-try:[flip-inline,_span-all]`]],[`popover-content--inline-end-block-end`,[`position-area:[inline-end_span-block-start]`,`position-try:[flip-inline,_span-all]`]],[`popover-content--block-end`,[`position-area:block-end`,`position-try:[flip-block,_span-all]`]],[`popover-content--block-end-inline-start`,[`position-area:[block-end_span-inline-end]`,`position-try:[flip-block,_span-all]`]],[`popover-content--block-end-inline-end`,[`position-area:[block-end_span-inline-start]`,`position-try:[flip-block,_span-all]`]],[`popover-content--inline-start`,[`position-area:inline-start`,`position-try:[flip-inline,_span-all]`]],[`popover-content--inline-start-block-start`,[`position-area:[inline-start_span-block-end]`,`position-try:[flip-inline,_span-all]`]],[`popover-content--inline-start-block-end`,[`position-area:[inline-start_span-block-start]`,`position-try:[flip-inline,_span-all]`]]],I=[[`progress`,[`appearance:none`,`d:block`,`pos:relative`,`w:100%`,`h:1.5`,`min-inline-size:0`,`rd:9999px`,`border-width:0`,`overflow:hidden`,`rd:9999px@[&::-webkit-progress-bar]`,`rd:9999px@[&::-webkit-progress-value]`,`rd:9999px@[&::-moz-progress-bar]`,`transition-property:[inline-size]@[&::-webkit-progress-value]`,`transition-duration:300@[&::-webkit-progress-value]`,`transition-timing:ease-out@[&::-webkit-progress-value]`,`transition-property:[inline-size]@[&::-moz-progress-bar]`,`transition-duration:300@[&::-moz-progress-bar]`,`transition-timing:ease-out@[&::-moz-progress-bar]`,`transition:none@motion-reduce@[&::-webkit-progress-value]`,`transition:none@motion-reduce@[&::-moz-progress-bar]`]],[`progress-indicator`,[`d:block`,`h:100%`,`max-w:100%`,`rd:9999px`,`transition-property:[width]`,`transition-duration:300`,`transition-timing:ease-out`,`transition:none@motion-reduce`]],[`progress-indicator--indeterminate`,[`w:1/3`,`w:100%@motion-reduce`]]],L=[[`prose`,`prose-content:base`],[`prose-hans`,`prose-content:hans`],[`prose-hant`,`prose-content:hant`]],R=[[`radio`,`checkable-base w:4.5 h:4.5 w:4@sm h:4@sm p:1 p:0.875@sm rd:9999px border-width:1 content:empty@::before d:block@::before pos:absolute@::before i-t:50%@::before i-s:50%@::before translate:[-50%_-50%]@::before translate:[50%_-50%]@[:where(:dir(rtl))]@::before w:[calc(100%_-_var(--spacing)*2)]@::before h:[calc(100%_-_var(--spacing)*2)]@::before w:[calc(100%_-_var(--spacing)*1.75)]@sm@::before h:[calc(100%_-_var(--spacing)*1.75)]@sm@::before rd:9999px@::before scale:0@::before scale:100@[&:is(:checked,[aria-checked=true])]@::before transition:[scale_150ms_ease-out]@::before transition:none@motion-reduce@::before appearance:auto@forced-colors@[&:is(input)] d:none@forced-colors@[&:is(input)]@::before`.split(` `)]],z=[[`range`,[`field-disabled`,`focus-ring`,`outline-style:solid@focus-visible`,`opacity:100@focus-visible`,`appearance:auto`,`d:block`,`cursor:pointer`,`w:100%`,`h:11`,`p:0`,`border-width:0`]],[`range--vertical`,[`w:11@[.range&]`,`h:40@[.range&]`,`writing-mode:vertical-lr`,`direction:rtl`]]],B=[[`rating`,[`inline-hstack`,`vertical-align:middle`,`gap:0.5`,`appearance:none@[:where(&)_>_input]`,`appearance:auto@forced-colors@[:where(&)_>_input]`,`cursor:pointer@[:where(&)_>_input]`,`w:6@[:where(&)_>_*]`,`h:6@[:where(&)_>_*]`,`flex-shrink:0@[:where(&)_>_*]`,`opacity:80@[&_>_*]`,`transition-property:opacity@[:where(&)_>_*]`,`transition-duration:150@[:where(&)_>_*]`,`transition-timing:ease-out@[:where(&)_>_*]`,`transition:none@motion-reduce@[:where(&)_>_*]`,`opacity:100@[:where(&)_>_:is(:checked,[aria-checked=true],[aria-current=true])]`,`opacity:100@[:where(&)_>_:has(~:checked,~[aria-checked=true],~[aria-current=true])]`,`opacity:100@[:where(&)_>_:focus-visible]`,`opacity:100@forced-colors@[&_>_*]`]]],V=`@[select.select&:not([multiple]):not([size])]@supports(appearance:base-select)@!forced-colors`,H=[[`select`,`text-field field-disabled box-sizing:border-box d:block w:100% min-inline-size:0 min-h:9 min-h:8@sm rd:4x border-width:1 p-s:3 p-e:10 p-y:1 appearance:none cursor:pointer white-space:nowrap text-overflow:ellipsis font-style:inherit font-weight:inherit letter-spacing:inherit text-align:start bg-image:[linear-gradient(45deg,transparent_50%,currentColor_50%),linear-gradient(135deg,currentColor_50%,transparent_50%)] bg-size:[4px_4px,4px_4px] bg-position:[calc(100%_-_1.125rem)_50%,calc(100%_-_0.875rem)_50%] bg-position:[1.125rem_50%,0.875rem_50%]@[:where(:dir(rtl))] bg-repeat:no-repeat appearance:auto@forced-colors bg-image:none@forced-colors p-e:3@forced-colors appearance:auto@[[multiple]] bg-image:none@[[multiple]] p-e:3@[[multiple]] appearance:auto@[[size]] bg-image:none@[[size]] p-e:3@[[size]]`.split(` `)],[`select--customizable`,[`appearance:[base-select]${V}`,`appearance:[base-select]${V}@::picker(select)`,`bg-image:none${V}`,`p-e:3${V}`,`d:flex${V}`,`align-items:center${V}`,`gap:2${V}`,`d:flex${V}@>button`,`flex:1${V}@>button`,`min-inline-size:0${V}@>button`,`align-items:center${V}@>button`,`justify-content:space-between${V}@>button`,`gap:2${V}@>button`,`p:0${V}@>button`,`border-width:0${V}@>button`,`font-family:inherit${V}@>button`,`font-size:inherit${V}@>button`,`font-weight:inherit${V}@>button`,`line-height:inherit${V}@>button`,`text-align:inherit${V}@>button`,`d:block${V}@[&_>_button_>_selectedcontent]`,`min-inline-size:0${V}@[&_>_button_>_selectedcontent]`,`overflow:hidden${V}@[&_>_button_>_selectedcontent]`,`text-overflow:ellipsis${V}@[&_>_button_>_selectedcontent]`,`white-space:nowrap${V}@[&_>_button_>_selectedcontent]`,`border-width:1${V}@::picker(select)`,`rd:4x${V}@::picker(select)`,`p:1${V}@::picker(select)`,`max-h:[min(20rem,calc(100%_-_1rem))]${V}@::picker(select)`,`max-w:[calc(100vw_-_2rem)]${V}@::picker(select)`,`overflow:auto${V}@::picker(select)`,`overscroll-behavior:contain${V}@::picker(select)`,`d:flex${V}@>option`,`min-inline-size:0${V}@>option`,`min-h:8${V}@>option`,`align-items:center${V}@>option`,`gap:2${V}@>option`,`p-x:2${V}@>option`,`p-y:1${V}@>option`,`rd:2x${V}@>option`,`font-family:inherit${V}@>option`,`font-size:3x${V}@>option`,`line-height:3x${V}@>option`,`white-space:normal${V}@>option`,`overflow-wrap:anywhere${V}@>option`,`cursor:pointer${V}@>option`,`d:flex${V}@[&_>_optgroup_>_option]`,`min-inline-size:0${V}@[&_>_optgroup_>_option]`,`min-h:8${V}@[&_>_optgroup_>_option]`,`align-items:center${V}@[&_>_optgroup_>_option]`,`gap:2${V}@[&_>_optgroup_>_option]`,`p-x:2${V}@[&_>_optgroup_>_option]`,`p-y:1${V}@[&_>_optgroup_>_option]`,`rd:2x${V}@[&_>_optgroup_>_option]`,`font-family:inherit${V}@[&_>_optgroup_>_option]`,`font-size:3x${V}@[&_>_optgroup_>_option]`,`line-height:3x${V}@[&_>_optgroup_>_option]`,`white-space:normal${V}@[&_>_optgroup_>_option]`,`overflow-wrap:anywhere${V}@[&_>_optgroup_>_option]`,`cursor:pointer${V}@[&_>_optgroup_>_option]`,`min-h:7${V}@>option@sm`,`font-size:2x${V}@>option@sm`,`line-height:2x${V}@>option@sm`,`min-h:7${V}@[&_>_optgroup_>_option]@sm`,`font-size:2x${V}@[&_>_optgroup_>_option]@sm`,`line-height:2x${V}@[&_>_optgroup_>_option]@sm`,`cursor:not-allowed${V}@>option:disabled`,`opacity:64${V}@>option:disabled`,`cursor:not-allowed${V}@[&_>_optgroup_>_option:disabled]`,`opacity:64${V}@[&_>_optgroup_>_option:disabled]`]]],fe=[[`sheet`,[`d:none`,`d:flex@open`,`pos:fixed`,`m:0`,`max-w:none`,`max-h:none`,`flex-direction:column`,`gap:8`,`scroll-y`,`border-width:1`,`p:8`,`sheet-motion`]],[`sheet-motion`,[`opacity:0`,`opacity:100@open`,`opacity:0@open@starting`,`transition:[opacity_150ms_ease-out,translate_150ms_ease-out,display_150ms_allow-discrete,overlay_150ms_allow-discrete]`,`transition-duration:200@open`,`transition:none@motion-reduce`]],[`sheet--safe-area`,[`p-t:[max(2rem,env(safe-area-inset-top))]@[.sheet&]`,`p-r:[max(2rem,env(safe-area-inset-right))]@[.sheet&]`,`p-b:[max(2rem,env(safe-area-inset-bottom))]@[.sheet&]`,`p-l:[max(2rem,env(safe-area-inset-left))]@[.sheet&]`]],[`sheet--block-start`,[`i-u:0`,`i-e:0`,`i-n:auto`,`i-s:0`,`w:100%`,`h:auto`,`max-h:85dvh`,`border-u-width:0`,`border-e-width:0`,`border-n-width:1`,`border-s-width:0`,`translate-y:-100%`,`translate-y:0@open`,`translate-y:-100%@open@starting`,`p-u:[max(2rem,env(safe-area-inset-top))]`]],[`sheet--inline-end`,[`i-u:0`,`i-e:0`,`i-n:0`,`i-s:auto`,`w:[min(24rem,90vw)]`,`h:dvh`,`border-u-width:0`,`border-e-width:0`,`border-n-width:0`,`border-s-width:1`,`translate-x:100%`,`translate-x:-100%@[&:where(:dir(rtl))]`,`translate-x:0@open`,`translate-x:100%@open@starting`,`translate-x:-100%@open@starting@[&:where(:dir(rtl))]`,`p-u:[max(2rem,env(safe-area-inset-top))]`,`p-n:[max(2rem,env(safe-area-inset-bottom))]`]],[`sheet--block-end`,[`i-u:auto`,`i-e:0`,`i-n:0`,`i-s:0`,`w:100%`,`h:auto`,`max-h:85dvh`,`border-u-width:1`,`border-e-width:0`,`border-n-width:0`,`border-s-width:0`,`translate-y:100%`,`translate-y:0@open`,`translate-y:100%@open@starting`,`p-n:[max(2rem,env(safe-area-inset-bottom))]`]],[`sheet--inline-start`,[`i-u:0`,`i-e:auto`,`i-n:0`,`i-s:0`,`w:[min(24rem,90vw)]`,`h:dvh`,`border-u-width:0`,`border-e-width:1`,`border-n-width:0`,`border-s-width:0`,`translate-x:-100%`,`translate-x:100%@[&:where(:dir(rtl))]`,`translate-x:0@open`,`translate-x:-100%@open@starting`,`translate-x:100%@open@starting@[&:where(:dir(rtl))]`,`p-u:[max(2rem,env(safe-area-inset-top))]`,`p-n:[max(2rem,env(safe-area-inset-bottom))]`]]],U=`min(25%,var(--site-gutter,clamp(1rem,calc(18.75vw_-_6rem),3rem)))`,pe=[[`site`,[`vstack`,`min-h:100svh`,`min-inline-size:0`]],[`site-main`,[`flex:1`,`min-inline-size:0`]],[`site-section`,[`pos:relative`,`d:grid`,`min-inline-size:0`,`grid-columns:[${U}_minmax(0,1fr)_minmax(0,var(--site-content-width,80rem))_minmax(0,1fr)_${U}]`,`border-b-width:1`,`content:empty@::before`,`pos:absolute@::before`,`i-t:0@::before`,`i-b:0@::before`,`i-s:[${U}]@::before`,`border-s-width:1@::before`,`pointer-events:none@::before`,`content:empty@::after`,`pos:absolute@::after`,`i-t:0@::after`,`i-b:0@::after`,`i-e:[${U}]@::after`,`border-e-width:1@::after`,`pointer-events:none@::after`]],[`site-content`,[`pos:relative`,`grid-column:3`,`min-inline-size:0`,`content:empty@::before`,`pos:absolute@::before`,`i-t:0@::before`,`i-b:0@::before`,`i-s:0@::before`,`border-s-width:1@::before`,`pointer-events:none@::before`,`content:empty@::after`,`pos:absolute@::after`,`i-t:0@::after`,`i-b:0@::after`,`i-e:0@::after`,`border-e-width:1@::after`,`pointer-events:none@::after`]],[`site-intro`,[`vstack`,`align-items:center`,`justify-content:center`,`text-align:center`,`min-inline-size:0`,`min-h:48`,`gap:5`,`p:6`,`p:12@md`]],[`site-grid`,[`d:grid`,`min-inline-size:0`,`grid-columns:[minmax(0,1fr)]`,`border-t-width:1`,`border-s-width:1`,`border-t-width:0@[:where(.site-section>.site-content)>&:first-child]`,`m-b:-1px@[:where(.site-section>.site-content)>&:last-child]`]],[`site-cell`,[`vstack`,`min-inline-size:0`,`gap:2`,`p:6`,`p-x:12@md`,`border-e-width:1`,`border-b-width:1`]],[`site-rule`,[`d:block`,`m:0`,`w:100%`,`min-h:3`,`flex-shrink:0`,`border-width:0`,`border-b-width:1`]]],me=[[`stat-group`,[`d:inline-grid`,`grid-auto-flow:column`,`grid-auto-columns:[minmax(max-content,1fr)]`,`pos:relative`,`overflow-x:auto`,`rd:6x`,`border-width:1`]],[`stat-group--vertical`,[`grid-auto-flow:row@[.stat-group&]`,`overflow-y:auto@[.stat-group&]`]],[`stat-group--horizontal`,[`grid-auto-flow:column@[.stat-group&]`,`overflow-x:auto@[.stat-group&]`]],[`stat`,[`d:inline-grid`,`w:100%`,`min-inline-size:0`,`grid-columns:[1fr]`,`gap-column:4`,`p-y:4`,`p-x:6`]],[`stat-title`,[`text-caption`,`white-space:nowrap`,`grid-column-start:1`]],[`stat-value`,[`font-size:8x`,`line-height:8x`,`font-size:7x@sm`,`line-height:7x@sm`,`font-weight:6x`,`font-variant-numeric:tabular-nums`,`white-space:nowrap`,`grid-column-start:1`]],[`stat-desc`,[`stat-title`]],[`stat-figure`,[`grid-row:[1/span_3]`,`grid-column-start:2`,`place-self:[center_end]`]],[`stat-actions`,[`hstack`,`gap:2`,`grid-column-start:1`,`white-space:nowrap`]]],he=[[`status`,[`d:inline-block`,`w:2`,`h:2`,`rd:9999px`,`flex-shrink:0`,`vertical-align:middle`]]],ge=[[`step-group`,[`plain-list`,`d:inline-grid`,`grid-auto-flow:column`,`grid-auto-columns:[1fr]`,`overflow-x:auto`,`overflow-y:hidden`]],[`step-group--vertical`,[`grid-auto-flow:row@[.step-group&]`,`grid-auto-rows:[1fr]@[.step-group&]`]],[`step`,[`pos:relative`,`min-w:16`,`text-align:center`,`min-h:16@[:where(.step-group--vertical)>&]`]],[`step-row`,[`d:grid`,`h:100%`,`place-items:center`,`grid-rows:[2.5rem_1fr]`,`grid-columns:[auto]`,`grid-rows:[auto]@[:where(.step-group--vertical>.step)>&]`,`grid-columns:[2.5rem_minmax(0,1fr)]@[:where(.step-group--vertical>.step)>&]`,`justify-items:start@[:where(.step-group--vertical>.step)>&]`,`gap:2@[:where(.step-group--vertical>.step)>&]`]],[`step-title`,[`font-size:2x`,`line-height:3x`,`font-weight:6x`]],[`step-content`,[`min-inline-size:0`,`overflow-wrap:anywhere`,`m:0@[:where(&)_>_:first-child]`,`m-b:0@[:where(&)_>_:last-child]`]],[`step-marker`,[`inline-centered`,`pos:relative`,`z-index:1`,`grid-row:1`,`grid-column:1`,`place-self:center`,`flex-shrink:0`,`w:8`,`h:8`,`rd:50%`,`border-width:1`,`font-variant-numeric:tabular-nums`]],[`step-connector`,[`grid-row:1`,`grid-column:1`,`pointer-events:none`,`w:100%`,`h:0`,`m-s:-100%`,`border-t-width:2`,`d:none@[:where(.step:first-child>.step-row)>&]`,`w:0@[:where(.step-group--vertical>.step>.step-row)>&]`,`h:100%@[:where(.step-group--vertical>.step>.step-row)>&]`,`m-s:0@[:where(.step-group--vertical>.step>.step-row)>&]`,`place-self:center@[:where(.step-group--vertical>.step>.step-row)>&]`,`translate:[0px_-50%]@[:where(.step-group--vertical>.step>.step-row)>&]`,`border-t-width:0@[:where(.step-group--vertical>.step>.step-row)>&]`,`border-s-width:2@[:where(.step-group--vertical>.step>.step-row)>&]`]]],_e=[[`swap`,[`focus-proxy`,`pos:relative`,`d:inline-grid`,`place-content:center`,`vertical-align:middle`,`flex-shrink:0`,`cursor:pointer`,`grid-column-start:1@[:where(&)_>_*]`,`grid-row-start:1@[:where(&)_>_*]`,`transition-property:[opacity,rotate,scale]@[:where(&)_>_*]`,`transition-duration:150@[:where(&)_>_*]`,`transition-timing:[cubic-bezier(0.2,0,0,1)]@[:where(&)_>_*]`,`transition:none@motion-reduce@[:where(&)_>_*]`,`appearance:none@[:where(&)_>_input]`,`w:0@[:where(&)_>_input]`,`h:0@[:where(&)_>_input]`,`m:0@[:where(&)_>_input]`,`p:0@[:where(&)_>_input]`,`border-width:0@[:where(&)_>_input]`]],[`swap-on`,[`opacity:0`,`user-select:none`,`pointer-events:none`,`opacity:100@[.swap>input:checked_~_&]`,`user-select:auto@[.swap>input:checked_~_&]`,`opacity:0@[.swap>input:indeterminate_~_&]`,`user-select:none@[.swap>input:indeterminate_~_&]`]],[`swap-off`,[`opacity:100`,`pointer-events:none`,`opacity:0@[.swap>input:checked_~_&]`,`user-select:none@[.swap>input:checked_~_&]`,`opacity:0@[.swap>input:indeterminate_~_&]`,`user-select:none@[.swap>input:indeterminate_~_&]`]],[`swap-indeterminate`,[`opacity:0`,`user-select:none`,`pointer-events:none`,`opacity:100@[.swap>input:indeterminate_~_&]`,`user-select:auto@[.swap>input:indeterminate_~_&]`]],[`swap--active`,[`opacity:100@[&>_.swap-on]`,`user-select:auto@[&>_.swap-on]`,`opacity:0@[&>_.swap-off]`,`user-select:none@[&>_.swap-off]`]],[`swap--rotate`,[`transition-duration:300@motion-safe@[&>_*]`,`rotate:45@[&>_.swap-on]`,`rotate:0@[&>input:is(:checked,:indeterminate)_~_.swap-on]`,`rotate:-45@[&>input:is(:checked,:indeterminate)_~_.swap-off]`,`rotate:0@[&.swap--active>_.swap-on]`,`rotate:-45@[&.swap--active>_.swap-off]`,`rotate:none@motion-reduce@[&>_.swap-on]`,`rotate:none@motion-reduce@[&>input:is(:checked,:indeterminate)_~_.swap-off]`,`rotate:none@motion-reduce@[&.swap--active>_.swap-off]`]],[`swap--scale`,[`transition-duration:300@motion-safe@[&>_*]`,`scale:25@[&>_.swap-on]`,`scale:100@[&>input:is(:checked,:indeterminate)_~_.swap-on]`,`scale:25@[&>input:is(:checked,:indeterminate)_~_.swap-off]`,`scale:100@[&.swap--active>_.swap-on]`,`scale:25@[&.swap--active>_.swap-off]`,`scale:none@motion-reduce@[&>_.swap-on]`,`scale:none@motion-reduce@[&>input:is(:checked,:indeterminate)_~_.swap-off]`,`scale:none@motion-reduce@[&.swap--active>_.swap-off]`]]],ve=[[`table-scroll`,[`scroll-x`,`w:100%`]],[`table`,[`font-size:2x`,`line-height:3x`,`font-variant-numeric:tabular-nums`,`w:100%`,`border-collapse:separate`,`border-spacing:0`,`text-align:start`,`vertical-align:middle@[:where(&)_:is(th,td)]`,`p-y:3@[:where(&)_:is(th,td)]`,`p-x:4@[:where(&)_:is(th,td)]`,`text-align:start@[:where(&)_:is(th,td)]`,`white-space:nowrap@[:where(&)_th]`,`font-weight:5x@[:where(&)_th]`,`font-weight:5x@[:where(&)_tfoot]`]],[`table-row`,[`border-n-width:1@[:where(&)_>_:is(th,td)]`]],[`table-body`,[`border-n-width:0@[:where(&)>tr:last-child>:is(th,td)]`]],[`table-footer`,[`border-u-width:1@[:where(&)>tr:first-child>:is(th,td)]`,`border-n-width:0@[:where(&)>tr:last-child>:is(th,td)]`]],[`table-numeric`,[`white-space:nowrap`,`text-align:end`]],[`table-caption`,[`caption-side:bottom`,`m-u:4`,`text-align:start`,`font-size:2x`,`line-height:3x`]],[`table--pin-rows`,[`pos:sticky@[:where(&)_>_thead]`,`i-t:0@[:where(&)_>_thead]`,`z-index:1@[:where(&)_>_thead]`,`pos:sticky@[:where(&)_>_tfoot]`,`i-b:0@[:where(&)_>_tfoot]`,`z-index:1@[:where(&)_>_tfoot]`]],[`table--pin-cols`,[`pos:sticky@[:where(&)_>_tbody_>_tr_>_th]`,`i-s:0@[:where(&)_>_tbody_>_tr_>_th]`,`z-index:1@[:where(&)_>_tbody_>_tr_>_th]`,`pos:sticky@[:where(&)_>_:is(thead,tfoot)_>_tr_>_:first-child]`,`i-s:0@[:where(&)_>_:is(thead,tfoot)_>_tr_>_:first-child]`,`z-index:2@[:where(&)_>_:is(thead,tfoot)_>_tr_>_:first-child]`]]],ye=[[`tab-group`,[`d:grid`,`min-inline-size:0`,`gap:2`]],[`tab-list`,[`inline-hstack`,`max-w:100%`,`w:fit`,`justify-content:start`,`gap:0.5`,`rd:4x`,`p:0.5`,`overflow-x:auto`,`scrollbar-width:thin`]],[`tab-list--vertical`,[`flex-direction:column@[.tab-list&]`,`align-items:stretch@[.tab-list&]`,`overflow-x:visible@[.tab-list&]`]],[`tab`,[`control-icon`,`control-disabled`,`text-label`,`inline-centered`,`pos:relative`,`flex:[1_0_auto]`,`min-h:9`,`min-h:8@sm`,`min-w:9`,`gap:1.5`,`rd:3x`,`border-width:1`,`p-x:2.5`,`p-y:1`,`text-align:center`,`white-space:nowrap`,`appearance:none`,`cursor:pointer`]],[`tab-content`,[`w:100%`,`min-inline-size:0`,`rd:3x`,`p:4`]]],be=[[`timeline`,[`plain-list`,`d:flex`,`pos:relative`,`min-inline-size:0`]],[`timeline--vertical`,[`flex-direction:column`]],[`timeline-item`,[`d:grid`,`pos:relative`,`flex-shrink:0`,`align-items:center`,`grid-rows:[minmax(0,1fr)_auto_minmax(0,1fr)]`,`grid-columns:[minmax(0,1fr)_auto_minmax(0,1fr)]`,`border-width:0@[:where(&)>hr]`,`w:100%@[:where(&)>hr]`,`h:1px@[:where(&)>hr]`,`grid-row-start:2@[:where(&)>hr:first-child]`,`grid-column-start:1@[:where(&)>hr:first-child]`,`grid-row-start:2@[:where(&)>hr:last-child]`,`grid-column-start:3@[:where(&)>hr:last-child]`,`justify-items:center@[:where(.timeline--vertical)>&]`,`w:1px@[:where(.timeline--vertical)>&>hr]`,`h:100%@[:where(.timeline--vertical)>&>hr]`,`grid-row-start:1@[:where(.timeline--vertical)>&>hr:first-child]`,`grid-column-start:2@[:where(.timeline--vertical)>&>hr:first-child]`,`grid-row-start:3@[:where(.timeline--vertical)>&>hr:last-child]`,`grid-column-start:2@[:where(.timeline--vertical)>&>hr:last-child]`]],[`timeline-start`,[`grid-area:[1/1/2/4]`,`place-self:[end_center]`,`m:1`,`min-inline-size:0`,`grid-area:[1/1/4/2]@[:where(.timeline--vertical>.timeline-item)>&]`,`place-self:[center_end]@[:where(.timeline--vertical>.timeline-item)>&]`]],[`timeline-middle`,[`centered`,`grid-row-start:2`,`grid-column-start:2`]],[`timeline-end`,[`grid-area:[3/1/4/4]`,`place-self:[start_center]`,`m:1`,`min-inline-size:0`,`grid-area:[1/3/4/4]@[:where(.timeline--vertical>.timeline-item)>&]`,`place-self:[center_start]@[:where(.timeline--vertical>.timeline-item)>&]`]],[`timeline-box`,[`d:block`,`min-inline-size:0`,`rd:6x`,`border-width:1`,`p-y:2`,`p-x:4`]]],xe=[[`toast`,[`pos:fixed`,`vstack`,`gap:2`,`i-s:4`,`i-e:4`,`z-index:50`,`pointer-events:none`,`pointer-events:auto@[&>*]`,`d:none@[[hidden]]`,`m:0@[:where(&)]`,`p:0@[:where(&)]`,`w:auto@[:where(&)]`,`border-width:0@[:where(&)]`,`overflow:visible@[:where(&)]`,`align-items:end@[:where(&)]`,`i-t:auto@[:where(&)]`,`i-b:[max(1rem,env(safe-area-inset-bottom))]@[:where(&)]`]],[`toast-list`,[`plain-list`,`vstack`,`gap:3`,`w:100%`,`max-w:[min(22.5rem,calc(100vw_-_2rem))]`,`max-h:[calc(100dvh_-_4rem)]`,`overflow-y:auto`,`overscroll-behavior:contain`,`pointer-events:auto`]],[`toast-motion`,[`vis:hidden`,`opacity:0`,`translate-y:2`,`pointer-events:none`,`vis:visible@data-[state=open]`,`opacity:100@data-[state=open]`,`translate:none@data-[state=open]`,`pointer-events:auto@data-[state=open]`,`opacity:0@data-[state=open]@starting`,`translate-y:2@data-[state=open]@starting`,`transition:[opacity_150ms_ease-out,translate_150ms_ease-out,visibility_150ms_ease-out]`,`transition:none@motion-reduce`]],[`toast--top`,[`i-t:[max(1rem,env(safe-area-inset-top))]`,`i-b:auto`]],[`toast--middle`,[`i-t:0`,`i-b:0`,`justify-content:center`]],[`toast--bottom`,[`i-t:auto`,`i-b:[max(1rem,env(safe-area-inset-bottom))]`]]],Se=[[`toggle`,[`checkable-base`,`focus-proxy`,`w:10.5`,`h:6`,`p:0`,`container-type:inline-size`,`rd:9999px`,`border-width:1`,`content:empty@::before`,`d:block@::before`,`pos:absolute@::before`,`i-t:0.125rem@::before`,`i-s:0.125rem@::before`,`translate:[0_0]@::before`,`h:[calc(100%_-_0.25rem)]@::before`,`aspect-ratio:square@::before`,`rd:9999px@::before`,`translate:[calc(100cqw_-_100%_-_0.25rem)_0]@[&:is(:checked,[aria-checked=true],:has(>input:checked))]@::before`,`translate:[calc(-100cqw_+_100%_+_0.25rem)_0]@[&:is(:checked,[aria-checked=true],:has(>input:checked)):dir(rtl)]@::before`,`transition:[translate_150ms_ease-out]@::before`,`transition:none@motion-reduce@::before`,`border-width:1@forced-colors@::before`,`border-style:solid@forced-colors@::before`,`appearance:auto@forced-colors@[&:is(input)]`,`d:none@forced-colors@[&:is(input)]@::before`]]],Ce=[[`toolbar`,[`hstack`,`pos:relative`,`min-inline-size:0`,`gap:2`,`p:1`,`scroll-p:1`,`rd:5x`,`border-width:1`,`overflow-x:auto`]],[`toolbar-group`,[`hstack`,`flex-shrink:0`,`gap:1`]],[`toolbar--vertical`,[`flex-direction:column@[.toolbar&]`,`align-items:stretch@[.toolbar&]`,`overflow-x:visible@[.toolbar&]`]],[`toolbar-separator`,[`flex-shrink:0`,`flex-grow:0`,`flex-basis:px`,`align-self:stretch`,`pointer-events:none`,`border-width:0`,`border-s-width:1`,`m-y:1.5`,`border-s-width:0@[.toolbar.toolbar--vertical_>_&]`,`border-u-width:1@[.toolbar.toolbar--vertical_>_&]`,`m-y:0@[.toolbar.toolbar--vertical_>_&]`,`m-x:1.5@[.toolbar.toolbar--vertical_>_&]`]]],we=[[`tooltip`,[`d:inline-block`,`pos:relative`]],[`tooltip-content`,[`overlay-bounds`,`text-caption`,`text-balance`,`font-weight:4x`,`d:block`,`d:none@[[hidden]]`,`pos:absolute`,`z-index:2`,`w:max`,`max-w:[min(16rem,calc(100vw_-_2rem))]`,`p-y:1`,`p-x:2`,`rd:4x`,`border-width:1`,`white-space:normal`]],[`tooltip-content--top`,[`i-b:[calc(100%_+_0.5rem)]`,`i-t:auto`,`i-s:50%`,`i-e:auto`,`translate-x:-50%`,`translate-y:[0]`,`translate-x:50%@[:where(:dir(rtl))]`]],[`tooltip-content--bottom`,[`i-t:[calc(100%_+_0.5rem)]`,`i-b:auto`,`i-s:50%`,`i-e:auto`,`translate-x:-50%`,`translate-y:[0]`,`translate-x:50%@[:where(:dir(rtl))]`]],[`tooltip-content--inline-start`,[`i-e:[calc(100%_+_0.5rem)]`,`i-s:auto`,`i-t:50%`,`i-b:auto`,`translate-y:-50%`,`translate-x:[0]`]],[`tooltip-content--inline-end`,[`i-s:[calc(100%_+_0.5rem)]`,`i-e:auto`,`i-t:50%`,`i-b:auto`,`translate-y:-50%`,`translate-x:[0]`]],[`tooltip-content--motion`,[`vis:hidden`,`opacity:0`,`pointer-events:none`,`vis:visible@open`,`opacity:100@open`,`pointer-events:auto@open`,`vis:visible@[[data-open]]`,`opacity:100@[[data-open]]`,`pointer-events:auto@[[data-open]]`,`transition:[opacity_150ms_ease-out,visibility_150ms_ease-out]`,`transition:none@motion-reduce`]]],Te=[[`tree`,[`vstack`,`plain-list`,`w:100%`,`min-inline-size:0`,`gap:0`]],[`tree-branch`,[`vstack`,`plain-list`,`gap:0`,`min-inline-size:0`,`m-s:2`,`border-s-width:1`,`p-s:3`]],[`tree-item`,[`vstack`,`gap:0`,`min-inline-size:0`]],[`tree-row`,[`hstack`,`align-items:center`,`gap:2`,`min-inline-size:0`,`min-h:6`,`rd:3x`,`p-x:1.5`,`p-y:0.5`]],[`tree-disclosure`,[`collapse-folds`,`min-inline-size:0`]],[`tree-summary`,[`tree-row`,`collapse-marker-reset`,`focus-ring`,`cursor:pointer`]],[`tree-spacer`,[`flex-shrink:0`,`w:3.5`]],[`tree-chevron`,[`flex-shrink:0`,`w:3.5`,`h:3.5`,`pointer-events:none`,`transition-transform@motion-safe`,`rotate:180@[details:not([open])_>_summary.tree-summary_>_&:dir(rtl)]`,`rotate:90@[details[open]_>_summary.tree-summary_>_&]`]],[`tree-icon`,[`flex-shrink:0`,`w:4`,`h:4`,`pointer-events:none`]],[`tree-label`,[`min-inline-size:0`,`overflow-wrap:anywhere`]]],Ee=[...ie,...ae,...oe,...se,...ce,...le,...ue,...de,...s,...c,...l,...u,...d,...f,...p,...m,...h,...g,..._,...v,...y,...b,...x,...S,...C,...w,...T,...E,...D,...O,...k,...A,...j,...M,...N,...P,...F,...I,...L,...R,...z,...B,...H,...fe,...pe,...me,...he,...ge,..._e,...ve,...ye,...be,...xe,...Se,...Ce,...we,...Te],De={primary:`var(--color-teal-900)`,"primary-foreground":`var(--color-background)`,card:`var(--color-background)`,"card-foreground":`var(--color-foreground)`,popover:`var(--color-background)`,"popover-foreground":`var(--color-foreground)`,muted:`var(--color-gray-200)`,"muted-foreground":`var(--color-gray-900)`,accent:`var(--color-teal-100)`,"accent-foreground":`var(--color-foreground)`,neutral:`var(--color-gray-300)`,"neutral-foreground":`var(--color-gray-950)`,input:`var(--color-gray-800)`,ring:`var(--color-primary)`,destructive:`var(--color-red-900)`,"destructive-foreground":`var(--color-red-950)`,success:`var(--color-jade-900)`,warning:`var(--color-amber-900)`,"warning-foreground":`var(--color-amber-950)`,info:`var(--color-blue-900)`,hover:`var(--color-gray-200)`,"hover-foreground":`var(--color-foreground)`,selected:`var(--color-gray-300)`,"selected-foreground":`var(--color-foreground)`,placeholder:`var(--color-muted-foreground)`,readonly:`var(--color-muted)`,invalid:`var(--color-red-900)`,"border-strong":`var(--color-gray-600)`,backdrop:`rgb(0 0 0 / 0.32)`,"info-background":`var(--color-blue-150)`,"info-border":`var(--color-blue-500)`,"info-foreground":`var(--color-blue-950)`,"success-background":`var(--color-jade-150)`,"success-border":`var(--color-jade-500)`,"success-foreground":`var(--color-jade-950)`,"warning-background":`var(--color-amber-150)`,"warning-border":`var(--color-amber-500)`,"destructive-background":`var(--color-red-150)`,"destructive-border":`var(--color-red-500)`},W=[{order:10,target:`:is(h1, h2, h3, h4, h5, h6)`,declarations:{"margin-block":`1.5em 0.5em`,"font-weight":`700`,"line-height":`1.4`,"text-wrap":`balance`}},{order:11,target:`h1`,declarations:{"font-size":`2em`}},{order:12,target:`h2`,declarations:{"font-size":`1.5em`}},{order:13,target:`h3`,declarations:{"font-size":`1.25em`}},{order:14,target:`h4`,declarations:{"font-size":`1.125em`}},{order:15,target:`h5`,declarations:{"font-size":`1em`}},{order:16,target:`h6`,declarations:{"font-size":`0.875em`}},{order:20,target:`p`,declarations:{"margin-block":`1em`,"line-height":`1.75`}},{order:21,target:`a`,declarations:{"text-decoration-line":`underline`,"text-underline-offset":`calc(var(--spacing) * 2)`,"text-decoration-thickness":`from-font`}},{order:22,target:`blockquote`,declarations:{"margin-block":`1.5em`,"margin-inline":`0`,"padding-inline-start":`1em`,"border-inline-start-width":`0.25em`,"border-inline-start-style":`solid`,"line-height":`1.75`}},{order:23,target:`hr`,declarations:{"margin-block":`2em`,"border-width":`0`,"border-block-start-width":`0.0625em`,"border-block-start-style":`solid`}},{order:30,target:`:is(ol, ul)`,declarations:{"margin-block":`1em`,"padding-inline-start":`2em`,"list-style-position":`outside`,"line-height":`1.75`}},{order:31,target:`ol`,declarations:{"list-style-type":`decimal`}},{order:32,target:`ul`,declarations:{"list-style-type":`disc`}},{order:33,target:`li`,declarations:{"margin-block":`0.25em`}},{order:34,target:`dl`,declarations:{"margin-block":`1em`,"line-height":`1.75`}},{order:35,target:`dt`,declarations:{"margin-block-start":`1em`,"font-weight":`700`}},{order:36,target:`dd`,declarations:{"margin-inline-start":`2em`}},{order:40,target:`:is(code, pre)`,declarations:{"font-family":`ui-monospace, monospace`}},{order:41,target:`code:not(:where(pre code))`,declarations:{"font-size":`0.875em`}},{order:42,target:`pre`,declarations:{"margin-block":`1.5em`,"padding-block":`1em`,"padding-inline":`1em`,"overflow-x":`auto`,"font-size":`0.875em`,"line-height":`1.6`}},{order:43,target:`figure`,declarations:{"margin-block":`1.5em`,"margin-inline":`0`}},{order:44,target:`figcaption`,declarations:{"margin-block-start":`0.5em`,"font-size":`0.875em`,"line-height":`1.5`}},{order:45,target:`:is(img, video)`,declarations:{"max-inline-size":`100%`,"block-size":`auto`}},{order:50,target:`table`,declarations:{"margin-block":`1.5em`,"border-collapse":`collapse`,"line-height":`1.5`}},{order:51,target:`caption`,declarations:{"margin-block-end":`0.5em`,"font-size":`0.875em`,"line-height":`1.5`,"text-align":`start`}},{order:52,target:`:is(th, td)`,declarations:{"padding-block":`0.5em`,"padding-inline":`0.75em`,"border-block-end-width":`0.0625em`,"border-block-end-style":`solid`,"text-align":`start`,"vertical-align":`top`}},{order:53,target:`th`,declarations:{"font-weight":`700`}},{order:100,target:`> :first-child`,declarations:{"margin-block-start":`0`}},{order:101,target:`> :last-child`,declarations:{"margin-block-end":`0`}}],Oe=[{order:60,target:`:is(p, li, dd, dt, blockquote, figcaption, caption, th, td)`,declarations:{"text-autospace":`normal`,"text-spacing-trim":`space-first`,"line-height":`1.8`,"line-break":`strict`,"word-break":`normal`,"overflow-wrap":`anywhere`}},{order:62,target:`:is(h1, h2, h3, h4, h5, h6)`,declarations:{"text-autospace":`normal`,"text-spacing-trim":`space-first`,"line-break":`strict`}},{order:63,target:`a`,declarations:{"text-underline-offset":`0.15em`}},{order:64,target:`ruby`,declarations:{"ruby-position":`over`}},{order:70,target:`:is(p, li, dd, blockquote)`,declarations:{"text-align":`justify`,"text-justify":`inter-character`}},{order:71,target:`pre`,declarations:{"writing-mode":`horizontal-tb`,"text-autospace":`no-autospace`,margin:`1.5em`}}];function G(e){return e!=null&&/[\da-f]/i.test(e)}function ke(e){return e!=null&&(e===`-`||e===`_`||/[a-z\d]/i.test(e)||e.charCodeAt(0)>=128)}function K(e,t){let n=t+1;if(n>=e.length||e[n]===`
2
+ `||e[n]===`\r`||e[n]===`\f`)return;if(!G(e[n]))return{decoded:e[n],end:n+1};let r=n;for(;n<e.length&&n-r<6&&G(e[n]);)n++;let i=Number.parseInt(e.slice(r,n),16),a=i===0||i>1114111||i>=55296&&i<=57343?`�`:String.fromCodePoint(i);return e[n]===`\r`&&e[n+1]===`
3
+ `?n+=2:(e[n]===` `||e[n]===` `||e[n]===`
4
+ `||e[n]===`\r`||e[n]===`\f`)&&n++,{decoded:a,end:n}}function Ae(e,t){let n=t,r=``;for(;n<e.length;){if(ke(e[n])){r+=e[n],n++;continue}if(e[n]!==`\\`)break;let t=K(e,n);if(t==null)break;r+=t.decoded,n=t.end}return{decoded:r,end:n}}function je(e){let t;for(let n=0;n<e.length;n++){let r=e[n];if(t!=null){r===`\\`?n=(K(e,n)?.end??n+2)-1:r===t&&(t=void 0);continue}if(r===`"`||r===`'`){t=r;continue}if(r===`\\`){n=(K(e,n)?.end??n+2)-1;continue}if(r===`/`&&e[n+1]===`*`){let t=e.indexOf(`*/`,n+2);if(t===-1)return!1;n=t+1;continue}if(r!==`:`)continue;if(e[n+1]===`:`)return!0;let i=n+1;for(;e[i]===`/`&&e[i+1]===`*`;){let t=e.indexOf(`*/`,i+2);if(t===-1)return!1;i=t+2}let a=Ae(e,i);if([`before`,`after`,`first-line`,`first-letter`].includes(a.decoded.toLowerCase()))return!0;n=a.end-1}return!1}function Me(e,t){return`:where(${e} ${t}):not(:where([data-teacss-article-exclude],[data-teacss-article-exclude] *))`}function Ne(e){return{order:-1/0,handle(t,n){let r=n(t);return r.pseudo||je(`${r.prefix}${r.selector}`)?{...r,entries:[]}:e?{...r,prefix:``,selector:Me(`${r.prefix}${r.selector}`,e),pseudo:``}:r}}}function q(t){return{...t.declarations,[e.variants]:e=>[Ne(t.target),...e],[e.sort]:t.order}}const J={"max-inline-size":`36em`},Pe={"font-family":`"PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif`,"font-variant-east-asian":`simplified`},Y={"font-family":`"PingFang TC", "Hiragino Sans CNS", "Source Han Sans TC", "Noto Sans CJK TC", "Microsoft JhengHei", sans-serif`,"font-variant-east-asian":`traditional`},X=[...W,...Oe],Z={base:{styles:W},hans:{styles:X,scope:{...Pe,...J}},hant:{styles:X,scope:{...Y,...J}}},Fe=Object.keys(Z),Ie=[RegExp(`^prose-content:(${Fe.join(`|`)})$`),([,e])=>{let t=Z[e];if(!t)return;let n=t.styles.map(q);return n.unshift(q({order:-1/0,target:``,declarations:{"overflow-wrap":`anywhere`,"inline-size":`100%`,"max-inline-size":`65ch`,"margin-inline":`auto`,"font-size":`var(--font-size-3x)`,"line-height":`var(--line-height-4x)`}})),t.scope&&n.push(q({order:1,target:``,declarations:t.scope})),n},{internal:!0,noMerge:!0}],Q=[...re,...Ee];function $(){return{name:`@teacss/preset-official`,rules:[Ie],shortcuts:Q,theme:{semanticColors:De}}}export{$ as default,$ as presetOfficial,Q as shortcuts};
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@teacss/preset-official",
3
+ "version": "0.5.1",
4
+ "description": "TeaCSS official structural component preset.",
5
+ "homepage": "https://css.teasim.com",
6
+ "license": "MIT",
7
+ "author": "Billgo <hi@billgo.me>",
8
+ "sideEffects": false,
9
+ "type": "module",
10
+ "exports": {
11
+ ".": "./dist/index.js",
12
+ "./package.json": "./package.json"
13
+ },
14
+ "types": "./dist/index.d.ts",
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "scripts": {
21
+ "build": "bunx rimraf dist && bunx tsdown --config tsdown.config.mts",
22
+ "dev": "tsdown --watch --config tsdown.config.mts",
23
+ "prepack": "bun run build"
24
+ },
25
+ "dependencies": {
26
+ "@teacss/core": "0.5.1",
27
+ "@teacss/preset-standard": "0.5.1"
28
+ },
29
+ "engines": {
30
+ "node": ">=22.12.0"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }