@masmarino/gabarit 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -291,92 +291,133 @@ keep their source order); with `compare`, `desc` reverses the ascending result.
291
291
 
292
292
  ## Styles
293
293
 
294
- Import the tokens in the application's `styles.scss`:
294
+ Gabarit carries the look of the Ferris family: white paper and near-black ink in the light theme, a
295
+ cool graphite in the dark one, IBM Plex throughout, hairlines and square-ish corners. Neutrals carry
296
+ the screens; the crab's rust is kept for the marks that are the brand's own (focus, the current page),
297
+ patina green says success. Every text token reaches 7:1 on the page and on a panel, in both themes
298
+ (`contrast.spec.ts`).
299
+
300
+ Import the tokens, and the fonts, in the application's `styles.scss`:
295
301
 
296
302
  ```scss
297
- @use 'gabarit/tokens' as *;
303
+ @use '@masmarino/gabarit/fonts' with ($path: '/fonts/ibm-plex/');
304
+ @use '@masmarino/gabarit/tokens';
305
+
306
+ // Optional: body, h1–h3, code and selection in the family's type.
307
+ @include tokens.document-base;
298
308
  ```
299
309
 
300
- Gabarit declares **no** `@font-face` rule. The tokens expose
301
- `--font-family: 'Inter', sans-serif`, but serving and declaring the font
302
- is the application's responsibility.
310
+ The fonts entry declares IBM Plex Sans (400, 500, 600), Sans Condensed (600) and Mono (400, 500),
311
+ subset to Latin-1 (OFL licence beside the files). The application serves the files at `$path`, for
312
+ instance with an Angular asset:
313
+
314
+ ```json
315
+ { "glob": "*.woff2", "input": "node_modules/@masmarino/gabarit/fonts", "output": "fonts/ibm-plex" }
316
+ ```
317
+
318
+ Without them the stacks fall back to the system's sans and monospace.
319
+
320
+ ### The graphite frame
321
+
322
+ `gbt-app-shell` draws its rail and its bar as one graphite frame, the same in both themes, with the
323
+ page set into it as a sheet whose corner is rounded. The auth pages (`gbt-auth-panel`) open on the
324
+ same graphite, their panel keeping the page's theme. An application can lay its own parts on the
325
+ frame with the `frame-tokens` mixin, which sets the dark tokens on a deeper ground:
326
+
327
+ ```scss
328
+ .public-header {
329
+ @include tokens.frame-tokens;
330
+ background: var(--bg-panel);
331
+ }
332
+ ```
303
333
 
304
334
  ### Color tokens
305
335
 
306
- Every component exclusively reads the custom properties below, set on
307
- `:root` by `_semantic.scss`. **These, and only these, are what an
308
- application should override to re-theme itself** — the raw palette
309
- (`--brand-*`, `--grey-*`, `--red-*`…) is an internal detail, never
310
- referenced outside `_semantic.scss` (enforced by `token-usage.spec.ts`).
311
-
312
- | Category | Token | Role |
313
- | ----------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------- |
314
- | Brand | `--primary` / `--primary-hover` | Action color (buttons, active links, focus) and its hover state |
315
- | Backgrounds | `--bg-principal` | Page and surface background (cards, panels) |
316
- | | `--bg-panel` | Background of persistent navigation areas (nav, header) |
317
- | | `--bg-hover` | Hover state of an interactive element on a neutral background |
318
- | | `--bg-track` | Track of a segmented control, visible on the page and on a panel |
319
- | Border | `--border-color` | All borders |
320
- | | `--gbt-hairline` / `--gbt-card-border` | Quiet separators and card edges, derived from `--border-color` |
321
- | Text | `--text-primary` / `--text-secondary` / `--text-discret` | From most to least emphasized |
322
- | | `--text-on-primary` / `--text-on-error` / `--text-on-color` | Text set on a `--primary` fill, an error fill, or a solid color |
323
- | Success | `--color-success-base` / `-hover` / `-text` / `-bg` / `-bg-text` | Fill, hover, text, light background, text on that background |
324
- | Warning | `--color-warning-base` / `-hover` / `-text` / `-bg` / `-bg-text` | Same |
325
- | Error | `--color-error-base` / `-fill` / `-hover` / `-text` / `-bg` / `-bg-text` | Same (`-fill`: solid fill, e.g. an icon) |
326
- | Dataviz | `--chart-series-1-base`, `-2-base`, `-3-base` | The three chart series, in order |
327
- | | `--chart-grid` | Chart grid and axes |
328
-
329
- Other tokens live on `:root` without being colors — border radii
330
- (`--site-border-radius*`), shadows (`--site-shadow-*`), transition
331
- durations (`--site-transition-*`), the monospace stack `--gbt-font-mono` — overridable the same way.
336
+ Every component reads only the custom properties below, set on `:root` from the `light-tokens` and
337
+ `dark-tokens` mixins (`_themes.scss`). **These are what an application overrides to re-theme
338
+ itself**; the raw palette (`--slate-*`, `--graphite-*`, `--rust-*`…) is never referenced by a
339
+ component (enforced by `token-usage.spec.ts`).
340
+
341
+ | Category | Token | Role |
342
+ | ----------- | ------------------------------------------------------------------------ | ----------------------------------------------------------------- |
343
+ | Brand | `--primary` / `--primary-hover` | Action colour (buttons, selected states): the ink |
344
+ | | `--accent` / `--accent-text` | The rust, for marks; its text shade |
345
+ | | `--focus-ring` | Every focus outline |
346
+ | Backgrounds | `--bg-principal` | Surfaces: cards, panels, fields |
347
+ | | `--bg-panel` | The page's ground |
348
+ | | `--bg-hover` | Hover state of an interactive element on a neutral background |
349
+ | | `--bg-track` | Track of a segmented control, visible on the page and on a panel |
350
+ | | `--frame` | The graphite of the shell and the auth pages, in both themes |
351
+ | Border | `--border-color` | The edge of a field or a control (3:1) |
352
+ | | `--gbt-hairline` / `--gbt-card-border` | Quiet separators and card edges |
353
+ | Text | `--text-primary` / `--text-secondary` / `--text-discret` | From most to least emphasized |
354
+ | | `--text-on-primary` / `--text-on-error` / `--text-on-color` | Text set on a `--primary` fill, an error fill, or a solid colour |
355
+ | Success | `--color-success-base` / `-hover` / `-text` / `-bg` / `-bg-text` | Fill, hover, text, light background, text on that background |
356
+ | Warning | `--color-warning-base` / `-hover` / `-text` / `-bg` / `-bg-text` | Same |
357
+ | Error | `--color-error-base` / `-fill` / `-hover` / `-text` / `-bg` / `-bg-text` | Same (`-fill`: a solid fill, the danger button) |
358
+ | Info | `--color-info-bg` / `-bg-text` / `-vivid-base` | Light background, text on it, the mark |
359
+ | Dataviz | `--chart-series-1-base` … `-6-base` | The chart series, in order |
360
+ | | `--chart-grid` | Chart grid and axes |
361
+
362
+ Other tokens live on `:root` without being colours: border radii (`--site-border-radius*`, 3 to
363
+ 6px), shadows (`--site-shadow-*`, rings rather than drops), transitions (`--site-transition-*`) and
364
+ the type stacks (`--font-family`, `--font-display`, `--gbt-font-mono`).
332
365
 
333
366
  ### Theming hooks
334
367
 
335
- A few more tokens are not set on `:root`: each component falls back to the
336
- value in the last column, resolved where it is used, so an app that leaves
337
- them alone looks the same. Set one to take that part of the look in hand.
338
-
339
- | Token | Used by | Fallback |
340
- | ----------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------- |
341
- | `--gbt-focus-ring` | Every focus outline | `var(--primary)` |
342
- | `--gbt-font-display` | Page titles, stat tile values, empty state, auth panel and modal headings | `inherit` |
343
- | `--gbt-radius-badge` | Badges, card and tab counts | `999px` (a pill) |
344
- | `--gbt-radius-chip` | Mono badges, inline code in a list row, search bar keys | `6px` |
345
- | `--gbt-radius-menu` | Select and autocomplete panels, menu items, search results | `8px` |
346
- | `--gbt-radius-tile` | Icon marker tiles, job graph nodes, avatar group overflow, TOTP QR code | `8px` (`12px` for the QR) |
347
- | `--gbt-radius-search` | The search bar field | `16px` |
348
- | `--gbt-nav-active-bg` / `--gbt-nav-active-text` | The current page in the app shell navigation | `--primary` / its text |
349
- | `--gbt-nav-active-mark` | A 2px rule on the start edge of the current page link | `transparent` |
350
- | `--gbt-shell-border` | The app shell's navigation and header edges | `var(--border-color)` |
351
- | `--gbt-shell-header-bg` | The app shell's header | `transparent` |
352
- | `--gbt-shell-content-padding` | The app shell's main content area | `1rem` |
353
- | `--gbt-auth-panel-backdrop` | The page behind the auth panels (login, register…) | a soft `--primary` glow on `--bg-panel` |
354
- | `--gbt-auth-panel-radius` | The auth panel card | `12px` |
368
+ A few more tokens are not set on `:root`: each component falls back to the value in the last column,
369
+ so an app that leaves them alone gets the family's look. Set one to take that part in hand.
370
+
371
+ | Token | Used by | Fallback |
372
+ | ----------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------ |
373
+ | `--gbt-focus-ring` | Every focus outline | `var(--focus-ring)` |
374
+ | `--gbt-font-display` | Page, card, panel, modal and drawer titles, stat tile values, empty state | `var(--font-display)` |
375
+ | `--gbt-radius-badge` | Badges, card and tab counts | `3px` |
376
+ | `--gbt-radius-chip` | Mono badges, inline code in a list row, search bar keys | `2px` |
377
+ | `--gbt-radius-menu` | Select and autocomplete panels, menu items, search results | `4px` |
378
+ | `--gbt-radius-tile` | Icon marker tiles, job graph nodes, avatar group overflow, TOTP QR code | `4px` |
379
+ | `--gbt-radius-search` | The search bar field | `3px` |
380
+ | `--gbt-nav-active-bg` / `--gbt-nav-active-text` | The current page in the app shell navigation | a 9% ink tint / `--text-primary` |
381
+ | `--gbt-nav-active-mark` | A 2px rule on the start edge of the current page link | `var(--accent)` |
382
+ | `--gbt-shell-bar` | The height of the app shell's bar and of the logo's corner | `4rem` |
383
+ | `--gbt-shell-border` | The app shell's navigation and header edges | `transparent` |
384
+ | `--gbt-shell-header-bg` | The app shell's header | the frame |
385
+ | `--gbt-shell-content-padding` | The app shell's bar and main content area | `clamp(1rem, 0.25rem + 2vw, 2rem)` |
386
+ | `--gbt-auth-panel-backdrop` | The page behind the auth panels (login, register…) | `var(--frame)` |
387
+ | `--gbt-auth-panel-radius` | The auth panel card | `var(--site-border-radius-lg)` |
355
388
 
356
389
  Overriding a token after the import:
357
390
 
358
391
  ```scss
359
- @use 'gabarit/tokens' as *;
392
+ @use '@masmarino/gabarit/tokens';
360
393
 
361
394
  :root {
362
- --primary: #7c3aed;
395
+ --accent: #7c3aed;
363
396
  }
364
397
  ```
365
398
 
366
- **Dark mode activates via `prefers-color-scheme` or `[data-theme='dark']`
367
- on `<html>`, and reapplies to the same tokens.** An override set on a bare
368
- `:root` applies to both themes indifferently; for a value specific to
369
- dark mode, redeclare it under the same conditions as Gabarit, after its
370
- import:
399
+ **Dark mode activates via `prefers-color-scheme` or `[data-theme='dark']` on `<html>`, and
400
+ reapplies to the same tokens.** An override set on a bare `:root` applies to both themes; for a value
401
+ specific to dark mode, redeclare it under the same conditions as Gabarit, after its import:
371
402
 
372
403
  ```scss
373
404
  @media (prefers-color-scheme: dark) {
374
405
  :root {
375
- --primary: #a78bfa;
406
+ --accent: #a78bfa;
376
407
  }
377
408
  }
378
409
  ```
379
410
 
411
+ ### Upgrading from 1.x
412
+
413
+ - The default look is the Ferris family's (palette, IBM Plex, radii, the graphite shell and auth
414
+ pages). An application that themed 1.x by mapping its own tokens onto Gabarit's can drop that map.
415
+ - The raw palette is new (`--slate-*`, `--graphite-*`, `--rust-*`, `--patina-*`, `--amber-*`,
416
+ `--red-*`, `--indigo-*`); `--brand-*`, `--grey-*`, `--green-*` and `--emerald-*` are gone.
417
+ - New tokens: `--accent`, `--accent-text`, `--focus-ring`, `--frame`, `--font-display`; new mixins:
418
+ `light-tokens`, `dark-tokens`, `frame-tokens`, `document-base`, `visually-hidden`, `focus-ring`.
419
+ - `@masmarino/gabarit/fonts` replaces the font an application served for `'Inter'`.
420
+
380
421
  ## Internationalization
381
422
 
382
423
  Gabarit ships no translation mechanism. Every visible string is a
@@ -366,7 +366,7 @@ var MarkdownView = class MarkdownView {
366
366
  (click)="onClick($event)"
367
367
  ></div>`,
368
368
  isInline: true,
369
- styles: ["gbt-markdown-view{display:block}.gbt-markdown-view{color:var(--text-primary);font-size:.9375rem;line-height:1.65;overflow-wrap:break-word}.gbt-markdown-view>:first-child{margin-top:0}.gbt-markdown-view>:last-child{margin-bottom:0}.gbt-markdown-view :where(h1,h2,h3,h4,h5,h6){margin:1.75rem 0 .75rem;color:var(--text-primary);font-family:var(--gbt-font-display, inherit);font-weight:600;line-height:1.3}.gbt-markdown-view :where(h1){padding-bottom:.375rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.625rem;letter-spacing:-.01em}.gbt-markdown-view :where(h2){padding-bottom:.3rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.3125rem}.gbt-markdown-view :where(h3){font-size:1.0625rem}.gbt-markdown-view :where(h4,h5,h6){font-size:.9375rem}.gbt-markdown-view :where(p,ul,ol,blockquote,pre,table){margin:0 0 1rem}.gbt-markdown-view :where(ul,ol){padding-left:1.5rem}.gbt-markdown-view :where(li+li){margin-top:.25rem}.gbt-markdown-view :where(li:has(>input[type=checkbox]),li:has(>p:first-child>input[type=checkbox])){list-style:none}.gbt-markdown-view :where(li>input[type=checkbox],li>p:first-child>input[type=checkbox]){margin:0 .2em .2em -1.4em;vertical-align:middle}.gbt-markdown-view :where(a){color:var(--primary);text-underline-offset:2px}.gbt-markdown-view :where(strong){font-weight:600}.gbt-markdown-view :where(code){padding:.125rem .375rem;border-radius:var(--site-border-radius-sm);background:var(--bg-hover);font-family:var(--gbt-font-mono, ui-monospace, monospace);font-size:.8125em}.gbt-markdown-view :where(pre){padding:.875rem 1rem;overflow-x:auto;border:1px solid var(--gbt-hairline, var(--border-color));border-radius:var(--site-border-radius-sm);background:var(--bg-panel);line-height:1.5}.gbt-markdown-view :where(pre code){padding:0;background:none;font-size:.8125rem}.gbt-markdown-view :where(blockquote){padding:0 0 0 1rem;border-left:3px solid var(--gbt-card-border, var(--border-color));color:var(--text-secondary)}.gbt-markdown-view :where(hr){height:0;margin:1.5rem 0;border:0;border-top:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-view :where(img){max-width:100%;height:auto}.gbt-markdown-view :where(table){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}.gbt-markdown-view :where(th,td){padding:.375rem .75rem;border:1px solid var(--gbt-card-border, var(--border-color));text-align:left}.gbt-markdown-view :where(th){background:var(--bg-hover);font-weight:600}.gbt-markdown-view :where(pre,table):focus-visible{outline:2px solid var(--gbt-focus-ring, var(--primary));outline-offset:2px}\n"],
369
+ styles: ["gbt-markdown-view{display:block}.gbt-markdown-view{color:var(--text-primary);font-size:.9375rem;line-height:1.65;overflow-wrap:break-word}.gbt-markdown-view>:first-child{margin-top:0}.gbt-markdown-view>:last-child{margin-bottom:0}.gbt-markdown-view :where(h1,h2,h3,h4,h5,h6){margin:1.75rem 0 .75rem;color:var(--text-primary);font-family:var(--gbt-font-display, var(--font-display));font-weight:600;line-height:1.3}.gbt-markdown-view :where(h1){padding-bottom:.375rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.625rem;letter-spacing:-.01em}.gbt-markdown-view :where(h2){padding-bottom:.3rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.3125rem}.gbt-markdown-view :where(h3){font-size:1.0625rem}.gbt-markdown-view :where(h4,h5,h6){font-size:.9375rem}.gbt-markdown-view :where(p,ul,ol,blockquote,pre,table){margin:0 0 1rem}.gbt-markdown-view :where(ul,ol){padding-left:1.5rem}.gbt-markdown-view :where(li+li){margin-top:.25rem}.gbt-markdown-view :where(li:has(>input[type=checkbox]),li:has(>p:first-child>input[type=checkbox])){list-style:none}.gbt-markdown-view :where(li>input[type=checkbox],li>p:first-child>input[type=checkbox]){margin:0 .2em .2em -1.4em;vertical-align:middle}.gbt-markdown-view :where(a){color:var(--primary);text-underline-offset:2px}.gbt-markdown-view :where(strong){font-weight:600}.gbt-markdown-view :where(code){padding:.125rem .375rem;border-radius:var(--site-border-radius-sm);background:var(--bg-hover);font-family:var(--gbt-font-mono, ui-monospace, monospace);font-size:.8125em}.gbt-markdown-view :where(pre){padding:.875rem 1rem;overflow-x:auto;border:1px solid var(--gbt-hairline, var(--border-color));border-radius:var(--site-border-radius-sm);background:var(--bg-panel);line-height:1.5}.gbt-markdown-view :where(pre code){padding:0;background:none;font-size:.8125rem}.gbt-markdown-view :where(blockquote){padding:0 0 0 1rem;border-left:3px solid var(--gbt-card-border, var(--border-color));color:var(--text-secondary)}.gbt-markdown-view :where(hr){height:0;margin:1.5rem 0;border:0;border-top:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-view :where(img){max-width:100%;height:auto}.gbt-markdown-view :where(table){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}.gbt-markdown-view :where(th,td){padding:.375rem .75rem;border:1px solid var(--gbt-card-border, var(--border-color));text-align:left}.gbt-markdown-view :where(th){background:var(--bg-hover);font-weight:600}.gbt-markdown-view :where(pre,table):focus-visible{outline:2px solid var(--gbt-focus-ring, var(--focus-ring));outline-offset:2px}\n"],
370
370
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
371
371
  encapsulation: i0.ViewEncapsulation.None
372
372
  });
@@ -390,7 +390,7 @@ i0.ɵɵngDeclareClassMetadata({
390
390
  ></div>`,
391
391
  encapsulation: ViewEncapsulation.None,
392
392
  changeDetection: ChangeDetectionStrategy.OnPush,
393
- styles: ["gbt-markdown-view{display:block}.gbt-markdown-view{color:var(--text-primary);font-size:.9375rem;line-height:1.65;overflow-wrap:break-word}.gbt-markdown-view>:first-child{margin-top:0}.gbt-markdown-view>:last-child{margin-bottom:0}.gbt-markdown-view :where(h1,h2,h3,h4,h5,h6){margin:1.75rem 0 .75rem;color:var(--text-primary);font-family:var(--gbt-font-display, inherit);font-weight:600;line-height:1.3}.gbt-markdown-view :where(h1){padding-bottom:.375rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.625rem;letter-spacing:-.01em}.gbt-markdown-view :where(h2){padding-bottom:.3rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.3125rem}.gbt-markdown-view :where(h3){font-size:1.0625rem}.gbt-markdown-view :where(h4,h5,h6){font-size:.9375rem}.gbt-markdown-view :where(p,ul,ol,blockquote,pre,table){margin:0 0 1rem}.gbt-markdown-view :where(ul,ol){padding-left:1.5rem}.gbt-markdown-view :where(li+li){margin-top:.25rem}.gbt-markdown-view :where(li:has(>input[type=checkbox]),li:has(>p:first-child>input[type=checkbox])){list-style:none}.gbt-markdown-view :where(li>input[type=checkbox],li>p:first-child>input[type=checkbox]){margin:0 .2em .2em -1.4em;vertical-align:middle}.gbt-markdown-view :where(a){color:var(--primary);text-underline-offset:2px}.gbt-markdown-view :where(strong){font-weight:600}.gbt-markdown-view :where(code){padding:.125rem .375rem;border-radius:var(--site-border-radius-sm);background:var(--bg-hover);font-family:var(--gbt-font-mono, ui-monospace, monospace);font-size:.8125em}.gbt-markdown-view :where(pre){padding:.875rem 1rem;overflow-x:auto;border:1px solid var(--gbt-hairline, var(--border-color));border-radius:var(--site-border-radius-sm);background:var(--bg-panel);line-height:1.5}.gbt-markdown-view :where(pre code){padding:0;background:none;font-size:.8125rem}.gbt-markdown-view :where(blockquote){padding:0 0 0 1rem;border-left:3px solid var(--gbt-card-border, var(--border-color));color:var(--text-secondary)}.gbt-markdown-view :where(hr){height:0;margin:1.5rem 0;border:0;border-top:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-view :where(img){max-width:100%;height:auto}.gbt-markdown-view :where(table){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}.gbt-markdown-view :where(th,td){padding:.375rem .75rem;border:1px solid var(--gbt-card-border, var(--border-color));text-align:left}.gbt-markdown-view :where(th){background:var(--bg-hover);font-weight:600}.gbt-markdown-view :where(pre,table):focus-visible{outline:2px solid var(--gbt-focus-ring, var(--primary));outline-offset:2px}\n"]
393
+ styles: ["gbt-markdown-view{display:block}.gbt-markdown-view{color:var(--text-primary);font-size:.9375rem;line-height:1.65;overflow-wrap:break-word}.gbt-markdown-view>:first-child{margin-top:0}.gbt-markdown-view>:last-child{margin-bottom:0}.gbt-markdown-view :where(h1,h2,h3,h4,h5,h6){margin:1.75rem 0 .75rem;color:var(--text-primary);font-family:var(--gbt-font-display, var(--font-display));font-weight:600;line-height:1.3}.gbt-markdown-view :where(h1){padding-bottom:.375rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.625rem;letter-spacing:-.01em}.gbt-markdown-view :where(h2){padding-bottom:.3rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color));font-size:1.3125rem}.gbt-markdown-view :where(h3){font-size:1.0625rem}.gbt-markdown-view :where(h4,h5,h6){font-size:.9375rem}.gbt-markdown-view :where(p,ul,ol,blockquote,pre,table){margin:0 0 1rem}.gbt-markdown-view :where(ul,ol){padding-left:1.5rem}.gbt-markdown-view :where(li+li){margin-top:.25rem}.gbt-markdown-view :where(li:has(>input[type=checkbox]),li:has(>p:first-child>input[type=checkbox])){list-style:none}.gbt-markdown-view :where(li>input[type=checkbox],li>p:first-child>input[type=checkbox]){margin:0 .2em .2em -1.4em;vertical-align:middle}.gbt-markdown-view :where(a){color:var(--primary);text-underline-offset:2px}.gbt-markdown-view :where(strong){font-weight:600}.gbt-markdown-view :where(code){padding:.125rem .375rem;border-radius:var(--site-border-radius-sm);background:var(--bg-hover);font-family:var(--gbt-font-mono, ui-monospace, monospace);font-size:.8125em}.gbt-markdown-view :where(pre){padding:.875rem 1rem;overflow-x:auto;border:1px solid var(--gbt-hairline, var(--border-color));border-radius:var(--site-border-radius-sm);background:var(--bg-panel);line-height:1.5}.gbt-markdown-view :where(pre code){padding:0;background:none;font-size:.8125rem}.gbt-markdown-view :where(blockquote){padding:0 0 0 1rem;border-left:3px solid var(--gbt-card-border, var(--border-color));color:var(--text-secondary)}.gbt-markdown-view :where(hr){height:0;margin:1.5rem 0;border:0;border-top:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-view :where(img){max-width:100%;height:auto}.gbt-markdown-view :where(table){display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.875rem}.gbt-markdown-view :where(th,td){padding:.375rem .75rem;border:1px solid var(--gbt-card-border, var(--border-color));text-align:left}.gbt-markdown-view :where(th){background:var(--bg-hover);font-weight:600}.gbt-markdown-view :where(pre,table):focus-visible{outline:2px solid var(--gbt-focus-ring, var(--focus-ring));outline-offset:2px}\n"]
394
394
  }]
395
395
  }],
396
396
  ctorParameters: () => [],
@@ -701,7 +701,7 @@ var DocsSearch = class DocsSearch {
701
701
  }],
702
702
  ngImport: i0,
703
703
  template: "<gbt-autocomplete\n class=\"gbt-docs-search\"\n [label]=\"labels().searchLabel\"\n [placeholder]=\"labels().searchPlaceholder\"\n [search]=\"search\"\n [displayFn]=\"label\"\n [itemTemplate]=\"result\"\n [debounceMs]=\"150\"\n [minLength]=\"2\"\n [loadingMessage]=\"labels().searching\"\n [noResultsMessage]=\"labels().noResults\"\n [searchErrorMessage]=\"labels().searchFailed\"\n [resultsAnnouncement]=\"announce\"\n (focusin)=\"prepare()\"\n (itemSelected)=\"open($event)\"\n/>\n\n<ng-template #result let-hit>\n <span class=\"gbt-docs-search__result\">\n <span class=\"gbt-docs-search__where\">{{ hit.sectionTitle }}</span>\n <span class=\"gbt-docs-search__title\">\n {{ hit.pageTitle }}\n @if (hit.heading) {\n <span class=\"gbt-docs-search__heading\">› {{ hit.heading }}</span>\n }\n </span>\n @if (hit.excerpt.before || hit.excerpt.match) {\n <span class=\"gbt-docs-search__excerpt\"\n >{{ hit.excerpt.before }}<mark>{{ hit.excerpt.match }}</mark\n >{{ hit.excerpt.after }}</span\n >\n }\n </span>\n</ng-template>\n",
704
- styles: [":host{display:block}.gbt-docs-search ::ng-deep .gbt-autocomplete__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gbt-docs-search__result{display:flex;flex-direction:column;gap:.125rem;min-width:0;text-align:left}.gbt-docs-search__where{color:var(--text-secondary);font-size:.75rem;font-weight:500}.gbt-docs-search__title{color:var(--text-primary);font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.gbt-docs-search__heading{color:var(--text-secondary);font-weight:500}.gbt-docs-search__excerpt{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.gbt-docs-search__excerpt mark{padding:0 .0625rem;border-radius:2px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--text-primary)}\n"],
704
+ styles: [":host{display:block}.gbt-docs-search ::ng-deep .gbt-autocomplete__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gbt-docs-search__result{display:flex;flex-direction:column;gap:.125rem;min-width:0;text-align:left}.gbt-docs-search__where{color:var(--text-secondary);font-size:.75rem;font-weight:500}.gbt-docs-search__title{color:var(--text-primary);font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.gbt-docs-search__heading{color:var(--text-secondary);font-weight:500}.gbt-docs-search__excerpt{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.gbt-docs-search__excerpt mark{padding:0 .0625rem;border-radius:2px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--text-primary)}\n"],
705
705
  dependencies: [{
706
706
  kind: "component",
707
707
  type: Autocomplete,
@@ -741,7 +741,7 @@ i0.ɵɵngDeclareClassMetadata({
741
741
  imports: [Autocomplete],
742
742
  changeDetection: ChangeDetectionStrategy.OnPush,
743
743
  template: "<gbt-autocomplete\n class=\"gbt-docs-search\"\n [label]=\"labels().searchLabel\"\n [placeholder]=\"labels().searchPlaceholder\"\n [search]=\"search\"\n [displayFn]=\"label\"\n [itemTemplate]=\"result\"\n [debounceMs]=\"150\"\n [minLength]=\"2\"\n [loadingMessage]=\"labels().searching\"\n [noResultsMessage]=\"labels().noResults\"\n [searchErrorMessage]=\"labels().searchFailed\"\n [resultsAnnouncement]=\"announce\"\n (focusin)=\"prepare()\"\n (itemSelected)=\"open($event)\"\n/>\n\n<ng-template #result let-hit>\n <span class=\"gbt-docs-search__result\">\n <span class=\"gbt-docs-search__where\">{{ hit.sectionTitle }}</span>\n <span class=\"gbt-docs-search__title\">\n {{ hit.pageTitle }}\n @if (hit.heading) {\n <span class=\"gbt-docs-search__heading\">› {{ hit.heading }}</span>\n }\n </span>\n @if (hit.excerpt.before || hit.excerpt.match) {\n <span class=\"gbt-docs-search__excerpt\"\n >{{ hit.excerpt.before }}<mark>{{ hit.excerpt.match }}</mark\n >{{ hit.excerpt.after }}</span\n >\n }\n </span>\n</ng-template>\n",
744
- styles: [":host{display:block}.gbt-docs-search ::ng-deep .gbt-autocomplete__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gbt-docs-search__result{display:flex;flex-direction:column;gap:.125rem;min-width:0;text-align:left}.gbt-docs-search__where{color:var(--text-secondary);font-size:.75rem;font-weight:500}.gbt-docs-search__title{color:var(--text-primary);font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.gbt-docs-search__heading{color:var(--text-secondary);font-weight:500}.gbt-docs-search__excerpt{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.gbt-docs-search__excerpt mark{padding:0 .0625rem;border-radius:2px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--text-primary)}\n"]
744
+ styles: [":host{display:block}.gbt-docs-search ::ng-deep .gbt-autocomplete__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gbt-docs-search__result{display:flex;flex-direction:column;gap:.125rem;min-width:0;text-align:left}.gbt-docs-search__where{color:var(--text-secondary);font-size:.75rem;font-weight:500}.gbt-docs-search__title{color:var(--text-primary);font-size:.875rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.gbt-docs-search__heading{color:var(--text-secondary);font-weight:500}.gbt-docs-search__excerpt{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:.75rem;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.gbt-docs-search__excerpt mark{padding:0 .0625rem;border-radius:2px;background:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--text-primary)}\n"]
745
745
  }]
746
746
  }],
747
747
  propDecorators: {
@@ -831,7 +831,7 @@ var DocsNav = class DocsNav {
831
831
  },
832
832
  ngImport: i0,
833
833
  template: "<div class=\"gbt-docs-nav\" [class.gbt-docs-nav--open]=\"navOpen()\">\n <div class=\"gbt-docs-nav__header\">\n <h2 class=\"gbt-docs-nav__heading\">{{ labels().documentation }}</h2>\n <gbt-button\n class=\"gbt-docs-nav__toggle\"\n variant=\"secondary\"\n size=\"small\"\n iconName=\"list\"\n [text]=\"navOpen() ? labels().hideContents : labels().showContents\"\n [ariaExpanded]=\"navOpen()\"\n [ariaControls]=\"bodyId\"\n (clicked)=\"navOpen.set(!navOpen())\"\n />\n </div>\n\n <gbt-docs-search class=\"gbt-docs-nav__search\" (opened)=\"close()\" />\n\n <div class=\"gbt-docs-nav__body\" [id]=\"bodyId\">\n @for (section of sections(); track section.slug) {\n <gbt-disclosure\n class=\"gbt-docs-nav__section\"\n appearance=\"plain\"\n [headingLevel]=\"3\"\n [label]=\"section.title\"\n [open]=\"section.open\"\n (openChange)=\"setOpen(section.slug, $event)\"\n >\n <gbt-nav-tabs orientation=\"vertical\" [landmark]=\"false\">\n @for (page of section.pages; track page.slug) {\n <a gbtNavTab [routerLink]=\"page.commands\" [active]=\"page.current\" (click)=\"close()\">{{\n page.title\n }}</a>\n }\n </gbt-nav-tabs>\n </gbt-disclosure>\n }\n </div>\n</div>\n",
834
- styles: [":host{display:block}.gbt-docs-nav__header{display:flex;align-items:center;gap:.5rem;min-height:2.25rem;margin-bottom:.5rem}.gbt-docs-nav__heading{flex:1;min-width:0;margin:0;color:var(--text-secondary);font-size:.8125rem;font-weight:600;line-height:1.4}.gbt-docs-nav__toggle{display:none}.gbt-docs-nav__search{margin-bottom:.75rem}.gbt-docs-nav__body{display:flex;flex-direction:column;gap:.25rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__toggle{width:100%;padding-inline:.75rem .5rem;color:var(--text-primary);font-size:.8125rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__content{padding:.125rem 0 .5rem .5rem}@container gbt-page-layout (min-width: 769px){.gbt-docs-nav__body{max-height:calc(100vh - 8rem);margin-inline:-.25rem;padding-inline:.25rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}@container gbt-page-layout (max-width: 768px){.gbt-docs-nav{padding-bottom:.75rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color))}.gbt-docs-nav__heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gbt-docs-nav__toggle{display:block;flex:0 1 auto;min-width:0;margin-right:auto}.gbt-docs-nav__search{margin-bottom:0}.gbt-docs-nav__body{display:none;margin-top:.75rem}.gbt-docs-nav--open .gbt-docs-nav__body{display:flex}.gbt-docs-nav__section ::ng-deep .gbt-nav-tabs[data-orientation=vertical] div.gbt-nav-tabs__list{flex-direction:column;gap:2px;overflow:visible;box-shadow:none;-webkit-mask-image:none;mask-image:none}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]{padding:.4375rem .75rem;border-bottom:0;border-radius:var(--site-border-radius-sm);font-weight:400;white-space:normal}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]:hover{background:var(--bg-hover)}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]{background:color-mix(in srgb,var(--primary) 10%,transparent);font-weight:600}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]:before{content:\"\"}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label{flex:1;overflow-wrap:anywhere}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label:after{content:none}}\n"],
834
+ styles: [":host{display:block}.gbt-docs-nav__header{display:flex;align-items:center;gap:.5rem;min-height:2.25rem;margin-bottom:.5rem}.gbt-docs-nav__heading{flex:1;min-width:0;margin:0;color:var(--text-secondary);font-size:.8125rem;font-weight:600;line-height:1.4}.gbt-docs-nav__toggle{display:none}.gbt-docs-nav__search{margin-bottom:.75rem}.gbt-docs-nav__body{display:flex;flex-direction:column;gap:.25rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__toggle{width:100%;padding-inline:.75rem .5rem;color:var(--text-primary);font-size:.8125rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__content{padding:.125rem 0 .5rem .5rem}@container gbt-page-layout (min-width: 769px){.gbt-docs-nav__body{max-height:calc(100vh - 8rem);margin-inline:-.25rem;padding-inline:.25rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}@container gbt-page-layout (max-width: 768px){.gbt-docs-nav{padding-bottom:.75rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color))}.gbt-docs-nav__heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gbt-docs-nav__toggle{display:block;flex:0 1 auto;min-width:0;margin-right:auto}.gbt-docs-nav__search{margin-bottom:0}.gbt-docs-nav__body{display:none;margin-top:.75rem}.gbt-docs-nav--open .gbt-docs-nav__body{display:flex}.gbt-docs-nav__section ::ng-deep .gbt-nav-tabs[data-orientation=vertical] div.gbt-nav-tabs__list{flex-direction:column;gap:2px;overflow:visible;box-shadow:none;-webkit-mask-image:none;mask-image:none}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]{padding:.4375rem .75rem;border-bottom:0;border-radius:var(--site-border-radius-sm);font-weight:400;white-space:normal}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]:hover{background:var(--bg-hover)}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]{background:color-mix(in srgb,var(--primary) 10%,transparent);font-weight:600}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]:before{content:\"\"}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label{flex:1;overflow-wrap:anywhere}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label:after{content:none}}\n"],
835
835
  dependencies: [
836
836
  {
837
837
  kind: "directive",
@@ -938,7 +938,7 @@ i0.ɵɵngDeclareClassMetadata({
938
938
  ],
939
939
  changeDetection: ChangeDetectionStrategy.OnPush,
940
940
  template: "<div class=\"gbt-docs-nav\" [class.gbt-docs-nav--open]=\"navOpen()\">\n <div class=\"gbt-docs-nav__header\">\n <h2 class=\"gbt-docs-nav__heading\">{{ labels().documentation }}</h2>\n <gbt-button\n class=\"gbt-docs-nav__toggle\"\n variant=\"secondary\"\n size=\"small\"\n iconName=\"list\"\n [text]=\"navOpen() ? labels().hideContents : labels().showContents\"\n [ariaExpanded]=\"navOpen()\"\n [ariaControls]=\"bodyId\"\n (clicked)=\"navOpen.set(!navOpen())\"\n />\n </div>\n\n <gbt-docs-search class=\"gbt-docs-nav__search\" (opened)=\"close()\" />\n\n <div class=\"gbt-docs-nav__body\" [id]=\"bodyId\">\n @for (section of sections(); track section.slug) {\n <gbt-disclosure\n class=\"gbt-docs-nav__section\"\n appearance=\"plain\"\n [headingLevel]=\"3\"\n [label]=\"section.title\"\n [open]=\"section.open\"\n (openChange)=\"setOpen(section.slug, $event)\"\n >\n <gbt-nav-tabs orientation=\"vertical\" [landmark]=\"false\">\n @for (page of section.pages; track page.slug) {\n <a gbtNavTab [routerLink]=\"page.commands\" [active]=\"page.current\" (click)=\"close()\">{{\n page.title\n }}</a>\n }\n </gbt-nav-tabs>\n </gbt-disclosure>\n }\n </div>\n</div>\n",
941
- styles: [":host{display:block}.gbt-docs-nav__header{display:flex;align-items:center;gap:.5rem;min-height:2.25rem;margin-bottom:.5rem}.gbt-docs-nav__heading{flex:1;min-width:0;margin:0;color:var(--text-secondary);font-size:.8125rem;font-weight:600;line-height:1.4}.gbt-docs-nav__toggle{display:none}.gbt-docs-nav__search{margin-bottom:.75rem}.gbt-docs-nav__body{display:flex;flex-direction:column;gap:.25rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__toggle{width:100%;padding-inline:.75rem .5rem;color:var(--text-primary);font-size:.8125rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__content{padding:.125rem 0 .5rem .5rem}@container gbt-page-layout (min-width: 769px){.gbt-docs-nav__body{max-height:calc(100vh - 8rem);margin-inline:-.25rem;padding-inline:.25rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}@container gbt-page-layout (max-width: 768px){.gbt-docs-nav{padding-bottom:.75rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color))}.gbt-docs-nav__heading{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gbt-docs-nav__toggle{display:block;flex:0 1 auto;min-width:0;margin-right:auto}.gbt-docs-nav__search{margin-bottom:0}.gbt-docs-nav__body{display:none;margin-top:.75rem}.gbt-docs-nav--open .gbt-docs-nav__body{display:flex}.gbt-docs-nav__section ::ng-deep .gbt-nav-tabs[data-orientation=vertical] div.gbt-nav-tabs__list{flex-direction:column;gap:2px;overflow:visible;box-shadow:none;-webkit-mask-image:none;mask-image:none}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]{padding:.4375rem .75rem;border-bottom:0;border-radius:var(--site-border-radius-sm);font-weight:400;white-space:normal}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]:hover{background:var(--bg-hover)}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]{background:color-mix(in srgb,var(--primary) 10%,transparent);font-weight:600}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]:before{content:\"\"}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label{flex:1;overflow-wrap:anywhere}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label:after{content:none}}\n"]
941
+ styles: [":host{display:block}.gbt-docs-nav__header{display:flex;align-items:center;gap:.5rem;min-height:2.25rem;margin-bottom:.5rem}.gbt-docs-nav__heading{flex:1;min-width:0;margin:0;color:var(--text-secondary);font-size:.8125rem;font-weight:600;line-height:1.4}.gbt-docs-nav__toggle{display:none}.gbt-docs-nav__search{margin-bottom:.75rem}.gbt-docs-nav__body{display:flex;flex-direction:column;gap:.25rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__toggle{width:100%;padding-inline:.75rem .5rem;color:var(--text-primary);font-size:.8125rem}.gbt-docs-nav__section ::ng-deep .gbt-disclosure__content{padding:.125rem 0 .5rem .5rem}@container gbt-page-layout (min-width: 769px){.gbt-docs-nav__body{max-height:calc(100vh - 8rem);margin-inline:-.25rem;padding-inline:.25rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}@container gbt-page-layout (max-width: 768px){.gbt-docs-nav{padding-bottom:.75rem;border-bottom:1px solid var(--gbt-hairline, var(--border-color))}.gbt-docs-nav__heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.gbt-docs-nav__toggle{display:block;flex:0 1 auto;min-width:0;margin-right:auto}.gbt-docs-nav__search{margin-bottom:0}.gbt-docs-nav__body{display:none;margin-top:.75rem}.gbt-docs-nav--open .gbt-docs-nav__body{display:flex}.gbt-docs-nav__section ::ng-deep .gbt-nav-tabs[data-orientation=vertical] div.gbt-nav-tabs__list{flex-direction:column;gap:2px;overflow:visible;box-shadow:none;-webkit-mask-image:none;mask-image:none}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]{padding:.4375rem .75rem;border-bottom:0;border-radius:var(--site-border-radius-sm);font-weight:400;white-space:normal}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical]:hover{background:var(--bg-hover)}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]{background:color-mix(in srgb,var(--primary) 10%,transparent);font-weight:600}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical][data-active]:before{content:\"\"}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label{flex:1;overflow-wrap:anywhere}.gbt-docs-nav__section ::ng-deep a.gbt-nav-tab[data-orientation=vertical] .gbt-nav-tab__label:after{content:none}}\n"]
942
942
  }]
943
943
  }],
944
944
  propDecorators: {
@@ -1019,7 +1019,7 @@ var MarkdownOutline = class MarkdownOutline {
1019
1019
  },
1020
1020
  ngImport: i0,
1021
1021
  template: "<gbt-panel [heading]=\"labels().onThisPage\" [headingLevel]=\"headingLevel()\">\n <ul class=\"gbt-markdown-outline__list\">\n @for (entry of entries(); track entry.id) {\n <li class=\"gbt-markdown-outline__item\" [attr.data-level]=\"entry.level\">\n <a\n class=\"gbt-markdown-outline__link\"\n [routerLink]=\"here\"\n [fragment]=\"entry.id\"\n [title]=\"entry.text\"\n (click)=\"goTo(entry.id)\"\n >{{ entry.text }}</a\n >\n </li>\n }\n </ul>\n</gbt-panel>\n",
1022
- styles: [":host{display:block}.gbt-markdown-outline__list{margin:0;padding:0;list-style:none;border-left:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-outline__link{display:block;margin-left:-1px;padding:.25rem .5rem .25rem .75rem;border-left:2px solid transparent;color:var(--text-secondary);font-size:.8125rem;line-height:1.45;text-decoration:none;overflow-wrap:anywhere;transition:border-color var(--site-transition-fast),color var(--site-transition-fast)}.gbt-markdown-outline__link:hover{border-left-color:var(--primary);color:var(--text-primary)}.gbt-markdown-outline__link:focus-visible{border-radius:var(--site-border-radius-sm);outline:2px solid var(--gbt-focus-ring, var(--primary));outline-offset:-2px}.gbt-markdown-outline__item[data-level=\"2\"] .gbt-markdown-outline__link{color:var(--text-primary)}.gbt-markdown-outline__item[data-level=\"3\"] .gbt-markdown-outline__link{padding-left:1.5rem}.gbt-markdown-outline__item[data-level=\"4\"] .gbt-markdown-outline__link{padding-left:2.25rem}@media(prefers-reduced-motion:reduce){.gbt-markdown-outline__link{transition:none}}\n"],
1022
+ styles: [":host{display:block}.gbt-markdown-outline__list{margin:0;padding:0;list-style:none;border-left:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-outline__link{display:block;margin-left:-1px;padding:.25rem .5rem .25rem .75rem;border-left:2px solid transparent;color:var(--text-secondary);font-size:.8125rem;line-height:1.45;text-decoration:none;overflow-wrap:anywhere;transition:border-color var(--site-transition-fast),color var(--site-transition-fast)}.gbt-markdown-outline__link:hover{border-left-color:var(--primary);color:var(--text-primary)}.gbt-markdown-outline__link:focus-visible{border-radius:var(--site-border-radius-sm);outline:2px solid var(--gbt-focus-ring, var(--focus-ring));outline-offset:-2px}.gbt-markdown-outline__item[data-level=\"2\"] .gbt-markdown-outline__link{color:var(--text-primary)}.gbt-markdown-outline__item[data-level=\"3\"] .gbt-markdown-outline__link{padding-left:1.5rem}.gbt-markdown-outline__item[data-level=\"4\"] .gbt-markdown-outline__link{padding-left:2.25rem}@media(prefers-reduced-motion:reduce){.gbt-markdown-outline__link{transition:none}}\n"],
1023
1023
  dependencies: [{
1024
1024
  kind: "directive",
1025
1025
  type: RouterLink,
@@ -1060,7 +1060,7 @@ i0.ɵɵngDeclareClassMetadata({
1060
1060
  imports: [RouterLink, Panel],
1061
1061
  changeDetection: ChangeDetectionStrategy.OnPush,
1062
1062
  template: "<gbt-panel [heading]=\"labels().onThisPage\" [headingLevel]=\"headingLevel()\">\n <ul class=\"gbt-markdown-outline__list\">\n @for (entry of entries(); track entry.id) {\n <li class=\"gbt-markdown-outline__item\" [attr.data-level]=\"entry.level\">\n <a\n class=\"gbt-markdown-outline__link\"\n [routerLink]=\"here\"\n [fragment]=\"entry.id\"\n [title]=\"entry.text\"\n (click)=\"goTo(entry.id)\"\n >{{ entry.text }}</a\n >\n </li>\n }\n </ul>\n</gbt-panel>\n",
1063
- styles: [":host{display:block}.gbt-markdown-outline__list{margin:0;padding:0;list-style:none;border-left:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-outline__link{display:block;margin-left:-1px;padding:.25rem .5rem .25rem .75rem;border-left:2px solid transparent;color:var(--text-secondary);font-size:.8125rem;line-height:1.45;text-decoration:none;overflow-wrap:anywhere;transition:border-color var(--site-transition-fast),color var(--site-transition-fast)}.gbt-markdown-outline__link:hover{border-left-color:var(--primary);color:var(--text-primary)}.gbt-markdown-outline__link:focus-visible{border-radius:var(--site-border-radius-sm);outline:2px solid var(--gbt-focus-ring, var(--primary));outline-offset:-2px}.gbt-markdown-outline__item[data-level=\"2\"] .gbt-markdown-outline__link{color:var(--text-primary)}.gbt-markdown-outline__item[data-level=\"3\"] .gbt-markdown-outline__link{padding-left:1.5rem}.gbt-markdown-outline__item[data-level=\"4\"] .gbt-markdown-outline__link{padding-left:2.25rem}@media(prefers-reduced-motion:reduce){.gbt-markdown-outline__link{transition:none}}\n"]
1063
+ styles: [":host{display:block}.gbt-markdown-outline__list{margin:0;padding:0;list-style:none;border-left:1px solid var(--gbt-hairline, var(--border-color))}.gbt-markdown-outline__link{display:block;margin-left:-1px;padding:.25rem .5rem .25rem .75rem;border-left:2px solid transparent;color:var(--text-secondary);font-size:.8125rem;line-height:1.45;text-decoration:none;overflow-wrap:anywhere;transition:border-color var(--site-transition-fast),color var(--site-transition-fast)}.gbt-markdown-outline__link:hover{border-left-color:var(--primary);color:var(--text-primary)}.gbt-markdown-outline__link:focus-visible{border-radius:var(--site-border-radius-sm);outline:2px solid var(--gbt-focus-ring, var(--focus-ring));outline-offset:-2px}.gbt-markdown-outline__item[data-level=\"2\"] .gbt-markdown-outline__link{color:var(--text-primary)}.gbt-markdown-outline__item[data-level=\"3\"] .gbt-markdown-outline__link{padding-left:1.5rem}.gbt-markdown-outline__item[data-level=\"4\"] .gbt-markdown-outline__link{padding-left:2.25rem}@media(prefers-reduced-motion:reduce){.gbt-markdown-outline__link{transition:none}}\n"]
1064
1064
  }]
1065
1065
  }],
1066
1066
  propDecorators: {
@@ -1217,7 +1217,7 @@ var DocsPage = class DocsPage {
1217
1217
  selector: "gbt-docs-page",
1218
1218
  ngImport: i0,
1219
1219
  template: "<gbt-page-layout\n width=\"wide\"\n asideWidth=\"sm\"\n [navLabel]=\"labels().documentation\"\n [asideLabel]=\"labels().onThisPage\"\n stickyNav\n>\n <!-- One root per projected block: a control-flow block only gets projected into a named slot that way. -->\n @if (index(); as index) {\n <gbt-docs-nav page-nav [index]=\"index\" [section]=\"sectionSlug()\" [page]=\"pageSlug()\" />\n }\n\n <div class=\"gbt-docs-page\">\n @if (page(); as page) {\n <gbt-breadcrumb class=\"gbt-docs-page__breadcrumb\" [ariaLabel]=\"labels().breadcrumb\">\n <li breadcrumb-ancestor>\n <a class=\"gbt-breadcrumb__item\" [routerLink]=\"root\">{{ labels().documentation }}</a>\n </li>\n <li breadcrumb-ancestor>\n <a class=\"gbt-breadcrumb__item\" [routerLink]=\"sectionLink(page.location)\">{{\n page.location.section.title\n }}</a>\n </li>\n {{ page.location.page.title }}\n </gbt-breadcrumb>\n\n <article class=\"gbt-docs-page__article\">\n <gbt-card variant=\"outlined\" [flush]=\"true\">\n <div class=\"gbt-docs-page__body\">\n <gbt-markdown-view\n class=\"gbt-docs-page__content\"\n [content]=\"page.content\"\n [routedLinkPrefix]=\"root\"\n (outline)=\"onRendered($event)\"\n />\n </div>\n </gbt-card>\n </article>\n\n @if (page.location.previous || page.location.next) {\n <nav class=\"gbt-docs-page__pager\" [attr.aria-label]=\"labels().neighbours\">\n @if (page.location.previous; as previous) {\n <gbt-card class=\"gbt-docs-page__neighbour\" variant=\"outlined\" hoverable>\n <span class=\"gbt-docs-page__neighbour-label\"\n >{{ labels().previous }} · {{ previous.sectionTitle }}</span\n >\n <a\n gbtCardLink\n class=\"gbt-docs-page__neighbour-link\"\n [routerLink]=\"previous.commands\"\n >{{ previous.title }}</a\n >\n </gbt-card>\n }\n @if (page.location.next; as next) {\n <gbt-card\n class=\"gbt-docs-page__neighbour gbt-docs-page__neighbour--next\"\n variant=\"outlined\"\n hoverable\n >\n <span class=\"gbt-docs-page__neighbour-label\"\n >{{ labels().next }} · {{ next.sectionTitle }}</span\n >\n <a gbtCardLink class=\"gbt-docs-page__neighbour-link\" [routerLink]=\"next.commands\">{{\n next.title\n }}</a>\n </gbt-card>\n }\n </nav>\n }\n } @else if (notFound(); as notFound) {\n <gbt-card class=\"gbt-docs-page__not-found\" variant=\"outlined\">\n <gbt-empty-state\n illustration=\"book\"\n [headingLevel]=\"1\"\n [heading]=\"labels().notFoundHeading\"\n [message]=\"labels().notFoundMessage\"\n >\n @if (notFound.firstPage; as firstPage) {\n <a gbtButton variant=\"primary\" [routerLink]=\"firstPage\">{{ labels().toStart }}</a>\n }\n </gbt-empty-state>\n </gbt-card>\n } @else if (view().kind === 'failed') {\n <gbt-alert class=\"gbt-docs-page__failed\" variant=\"error\" appearance=\"subtle\">\n {{ labels().loadFailed }}\n <gbt-button\n alert-actions\n variant=\"secondary\"\n size=\"small\"\n iconName=\"refresh-cw\"\n [text]=\"labels().retry\"\n (clicked)=\"retry()\"\n />\n </gbt-alert>\n } @else {\n <div class=\"gbt-docs-page__loading\" aria-busy=\"true\">\n <span class=\"gbt-docs-page__status\" role=\"status\">{{ labels().loading }}</span>\n <gbt-card variant=\"outlined\" [flush]=\"true\" aria-hidden=\"true\">\n <div class=\"gbt-docs-page__loading-card\">\n @for (width of skeletonRows; track $index) {\n <gbt-skeleton [width]=\"width\" [height]=\"$first ? '1.75rem' : '0.875rem'\" />\n }\n </div>\n </gbt-card>\n </div>\n }\n </div>\n\n @if (showOutline()) {\n <div page-aside class=\"gbt-docs-page__aside\">\n <gbt-markdown-outline [entries]=\"outline()\" />\n </div>\n }\n</gbt-page-layout>\n",
1220
- styles: [":host{display:block}gbt-page-layout[data-width]{max-width:none}@container gbt-page-layout (max-width: 1100px){:host ::ng-deep .gbt-page-layout__aside{display:none}}.gbt-docs-page{display:flex;flex-direction:column;gap:1rem;min-width:0}.gbt-docs-page__breadcrumb{display:block;min-width:0}.gbt-docs-page__article{container:docs-article/inline-size;min-width:0}gbt-card ::ng-deep .gbt-card{color:inherit;font-size:inherit;line-height:inherit}.gbt-docs-page__body{padding:1.75rem 2.25rem 2rem}.gbt-docs-page__body ::ng-deep .gbt-markdown-view{font-size:1rem;line-height:1.7}.gbt-docs-page__body ::ng-deep h1,.gbt-docs-page__body ::ng-deep h2,.gbt-docs-page__body ::ng-deep h3,.gbt-docs-page__body ::ng-deep h4{scroll-margin-top:1rem}.gbt-docs-page__body ::ng-deep [tabindex=\"-1\"]:focus{outline:none}.gbt-docs-page__body ::ng-deep pre{font-size:.875rem}.gbt-docs-page__body ::ng-deep table{width:max-content;min-width:100%}.gbt-docs-page__body ::ng-deep th{background:var(--bg-panel);font-weight:600}.gbt-docs-page__body ::ng-deep td code,.gbt-docs-page__body ::ng-deep th code{white-space:nowrap}.gbt-docs-page__body ::ng-deep blockquote[data-callout]{padding:.75rem 1rem;border:1px solid transparent;border-left-width:4px;border-radius:var(--site-border-radius-sm);color:var(--text-primary)}.gbt-docs-page__body ::ng-deep blockquote[data-callout]>:last-child{margin-bottom:0}.gbt-docs-page__body ::ng-deep blockquote[data-callout=note]{border-color:color-mix(in srgb,var(--color-info-bg-text) 25%,transparent);border-left-color:var(--color-info-bg-text);background:color-mix(in srgb,var(--color-info-bg) 55%,var(--bg-principal))}.gbt-docs-page__body ::ng-deep blockquote[data-callout=warning]{border-color:color-mix(in srgb,var(--color-warning-bg-text) 25%,transparent);border-left-color:var(--color-warning-bg-text);background:color-mix(in srgb,var(--color-warning-bg) 55%,var(--bg-principal))}@container docs-article (max-width: 559px){.gbt-docs-page__body{padding:1.125rem 1rem 1.25rem}}.gbt-docs-page__pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gbt-docs-page__neighbour--next{grid-column:2;text-align:right}.gbt-docs-page__neighbour-label{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.75rem}.gbt-docs-page__neighbour-link{color:var(--primary);font-weight:600;overflow-wrap:anywhere}@container gbt-page-layout (max-width: 559px){.gbt-docs-page__pager{grid-template-columns:minmax(0,1fr)}.gbt-docs-page__neighbour--next{grid-column:auto}}.gbt-docs-page__not-found{display:block}.gbt-docs-page__loading-card{display:flex;flex-direction:column;gap:.875rem;padding:1.75rem 2.25rem}.gbt-docs-page__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"],
1220
+ styles: [":host{display:block}gbt-page-layout[data-width]{max-width:none}@container gbt-page-layout (max-width: 1100px){:host ::ng-deep .gbt-page-layout__aside{display:none}}.gbt-docs-page{display:flex;flex-direction:column;gap:1rem;min-width:0}.gbt-docs-page__breadcrumb{display:block;min-width:0}.gbt-docs-page__article{container:docs-article/inline-size;min-width:0}gbt-card ::ng-deep .gbt-card{color:inherit;font-size:inherit;line-height:inherit}.gbt-docs-page__body{padding:1.75rem 2.25rem 2rem}.gbt-docs-page__body ::ng-deep .gbt-markdown-view{font-size:1rem;line-height:1.7}.gbt-docs-page__body ::ng-deep h1,.gbt-docs-page__body ::ng-deep h2,.gbt-docs-page__body ::ng-deep h3,.gbt-docs-page__body ::ng-deep h4{scroll-margin-top:1rem}.gbt-docs-page__body ::ng-deep [tabindex=\"-1\"]:focus{outline:none}.gbt-docs-page__body ::ng-deep pre{font-size:.875rem}.gbt-docs-page__body ::ng-deep table{width:max-content;min-width:100%}.gbt-docs-page__body ::ng-deep th{background:var(--bg-panel);font-weight:600}.gbt-docs-page__body ::ng-deep td code,.gbt-docs-page__body ::ng-deep th code{white-space:nowrap}.gbt-docs-page__body ::ng-deep blockquote[data-callout]{padding:.75rem 1rem;border:1px solid transparent;border-left-width:4px;border-radius:var(--site-border-radius-sm);color:var(--text-primary)}.gbt-docs-page__body ::ng-deep blockquote[data-callout]>:last-child{margin-bottom:0}.gbt-docs-page__body ::ng-deep blockquote[data-callout=note]{border-color:color-mix(in srgb,var(--color-info-bg-text) 25%,transparent);border-left-color:var(--color-info-bg-text);background:color-mix(in srgb,var(--color-info-bg) 55%,var(--bg-principal))}.gbt-docs-page__body ::ng-deep blockquote[data-callout=warning]{border-color:color-mix(in srgb,var(--color-warning-bg-text) 25%,transparent);border-left-color:var(--color-warning-bg-text);background:color-mix(in srgb,var(--color-warning-bg) 55%,var(--bg-principal))}@container docs-article (max-width: 559px){.gbt-docs-page__body{padding:1.125rem 1rem 1.25rem}}.gbt-docs-page__pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gbt-docs-page__neighbour--next{grid-column:2;text-align:right}.gbt-docs-page__neighbour-label{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.75rem}.gbt-docs-page__neighbour-link{color:var(--primary);font-weight:600;overflow-wrap:anywhere}@container gbt-page-layout (max-width: 559px){.gbt-docs-page__pager{grid-template-columns:minmax(0,1fr)}.gbt-docs-page__neighbour--next{grid-column:auto}}.gbt-docs-page__not-found{display:block}.gbt-docs-page__loading-card{display:flex;flex-direction:column;gap:.875rem;padding:1.75rem 2.25rem}.gbt-docs-page__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}\n"],
1221
1221
  dependencies: [
1222
1222
  {
1223
1223
  kind: "directive",
@@ -1404,7 +1404,7 @@ i0.ɵɵngDeclareClassMetadata({
1404
1404
  ],
1405
1405
  changeDetection: ChangeDetectionStrategy.OnPush,
1406
1406
  template: "<gbt-page-layout\n width=\"wide\"\n asideWidth=\"sm\"\n [navLabel]=\"labels().documentation\"\n [asideLabel]=\"labels().onThisPage\"\n stickyNav\n>\n <!-- One root per projected block: a control-flow block only gets projected into a named slot that way. -->\n @if (index(); as index) {\n <gbt-docs-nav page-nav [index]=\"index\" [section]=\"sectionSlug()\" [page]=\"pageSlug()\" />\n }\n\n <div class=\"gbt-docs-page\">\n @if (page(); as page) {\n <gbt-breadcrumb class=\"gbt-docs-page__breadcrumb\" [ariaLabel]=\"labels().breadcrumb\">\n <li breadcrumb-ancestor>\n <a class=\"gbt-breadcrumb__item\" [routerLink]=\"root\">{{ labels().documentation }}</a>\n </li>\n <li breadcrumb-ancestor>\n <a class=\"gbt-breadcrumb__item\" [routerLink]=\"sectionLink(page.location)\">{{\n page.location.section.title\n }}</a>\n </li>\n {{ page.location.page.title }}\n </gbt-breadcrumb>\n\n <article class=\"gbt-docs-page__article\">\n <gbt-card variant=\"outlined\" [flush]=\"true\">\n <div class=\"gbt-docs-page__body\">\n <gbt-markdown-view\n class=\"gbt-docs-page__content\"\n [content]=\"page.content\"\n [routedLinkPrefix]=\"root\"\n (outline)=\"onRendered($event)\"\n />\n </div>\n </gbt-card>\n </article>\n\n @if (page.location.previous || page.location.next) {\n <nav class=\"gbt-docs-page__pager\" [attr.aria-label]=\"labels().neighbours\">\n @if (page.location.previous; as previous) {\n <gbt-card class=\"gbt-docs-page__neighbour\" variant=\"outlined\" hoverable>\n <span class=\"gbt-docs-page__neighbour-label\"\n >{{ labels().previous }} · {{ previous.sectionTitle }}</span\n >\n <a\n gbtCardLink\n class=\"gbt-docs-page__neighbour-link\"\n [routerLink]=\"previous.commands\"\n >{{ previous.title }}</a\n >\n </gbt-card>\n }\n @if (page.location.next; as next) {\n <gbt-card\n class=\"gbt-docs-page__neighbour gbt-docs-page__neighbour--next\"\n variant=\"outlined\"\n hoverable\n >\n <span class=\"gbt-docs-page__neighbour-label\"\n >{{ labels().next }} · {{ next.sectionTitle }}</span\n >\n <a gbtCardLink class=\"gbt-docs-page__neighbour-link\" [routerLink]=\"next.commands\">{{\n next.title\n }}</a>\n </gbt-card>\n }\n </nav>\n }\n } @else if (notFound(); as notFound) {\n <gbt-card class=\"gbt-docs-page__not-found\" variant=\"outlined\">\n <gbt-empty-state\n illustration=\"book\"\n [headingLevel]=\"1\"\n [heading]=\"labels().notFoundHeading\"\n [message]=\"labels().notFoundMessage\"\n >\n @if (notFound.firstPage; as firstPage) {\n <a gbtButton variant=\"primary\" [routerLink]=\"firstPage\">{{ labels().toStart }}</a>\n }\n </gbt-empty-state>\n </gbt-card>\n } @else if (view().kind === 'failed') {\n <gbt-alert class=\"gbt-docs-page__failed\" variant=\"error\" appearance=\"subtle\">\n {{ labels().loadFailed }}\n <gbt-button\n alert-actions\n variant=\"secondary\"\n size=\"small\"\n iconName=\"refresh-cw\"\n [text]=\"labels().retry\"\n (clicked)=\"retry()\"\n />\n </gbt-alert>\n } @else {\n <div class=\"gbt-docs-page__loading\" aria-busy=\"true\">\n <span class=\"gbt-docs-page__status\" role=\"status\">{{ labels().loading }}</span>\n <gbt-card variant=\"outlined\" [flush]=\"true\" aria-hidden=\"true\">\n <div class=\"gbt-docs-page__loading-card\">\n @for (width of skeletonRows; track $index) {\n <gbt-skeleton [width]=\"width\" [height]=\"$first ? '1.75rem' : '0.875rem'\" />\n }\n </div>\n </gbt-card>\n </div>\n }\n </div>\n\n @if (showOutline()) {\n <div page-aside class=\"gbt-docs-page__aside\">\n <gbt-markdown-outline [entries]=\"outline()\" />\n </div>\n }\n</gbt-page-layout>\n",
1407
- styles: [":host{display:block}gbt-page-layout[data-width]{max-width:none}@container gbt-page-layout (max-width: 1100px){:host ::ng-deep .gbt-page-layout__aside{display:none}}.gbt-docs-page{display:flex;flex-direction:column;gap:1rem;min-width:0}.gbt-docs-page__breadcrumb{display:block;min-width:0}.gbt-docs-page__article{container:docs-article/inline-size;min-width:0}gbt-card ::ng-deep .gbt-card{color:inherit;font-size:inherit;line-height:inherit}.gbt-docs-page__body{padding:1.75rem 2.25rem 2rem}.gbt-docs-page__body ::ng-deep .gbt-markdown-view{font-size:1rem;line-height:1.7}.gbt-docs-page__body ::ng-deep h1,.gbt-docs-page__body ::ng-deep h2,.gbt-docs-page__body ::ng-deep h3,.gbt-docs-page__body ::ng-deep h4{scroll-margin-top:1rem}.gbt-docs-page__body ::ng-deep [tabindex=\"-1\"]:focus{outline:none}.gbt-docs-page__body ::ng-deep pre{font-size:.875rem}.gbt-docs-page__body ::ng-deep table{width:max-content;min-width:100%}.gbt-docs-page__body ::ng-deep th{background:var(--bg-panel);font-weight:600}.gbt-docs-page__body ::ng-deep td code,.gbt-docs-page__body ::ng-deep th code{white-space:nowrap}.gbt-docs-page__body ::ng-deep blockquote[data-callout]{padding:.75rem 1rem;border:1px solid transparent;border-left-width:4px;border-radius:var(--site-border-radius-sm);color:var(--text-primary)}.gbt-docs-page__body ::ng-deep blockquote[data-callout]>:last-child{margin-bottom:0}.gbt-docs-page__body ::ng-deep blockquote[data-callout=note]{border-color:color-mix(in srgb,var(--color-info-bg-text) 25%,transparent);border-left-color:var(--color-info-bg-text);background:color-mix(in srgb,var(--color-info-bg) 55%,var(--bg-principal))}.gbt-docs-page__body ::ng-deep blockquote[data-callout=warning]{border-color:color-mix(in srgb,var(--color-warning-bg-text) 25%,transparent);border-left-color:var(--color-warning-bg-text);background:color-mix(in srgb,var(--color-warning-bg) 55%,var(--bg-principal))}@container docs-article (max-width: 559px){.gbt-docs-page__body{padding:1.125rem 1rem 1.25rem}}.gbt-docs-page__pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gbt-docs-page__neighbour--next{grid-column:2;text-align:right}.gbt-docs-page__neighbour-label{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.75rem}.gbt-docs-page__neighbour-link{color:var(--primary);font-weight:600;overflow-wrap:anywhere}@container gbt-page-layout (max-width: 559px){.gbt-docs-page__pager{grid-template-columns:minmax(0,1fr)}.gbt-docs-page__neighbour--next{grid-column:auto}}.gbt-docs-page__not-found{display:block}.gbt-docs-page__loading-card{display:flex;flex-direction:column;gap:.875rem;padding:1.75rem 2.25rem}.gbt-docs-page__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}\n"]
1407
+ styles: [":host{display:block}gbt-page-layout[data-width]{max-width:none}@container gbt-page-layout (max-width: 1100px){:host ::ng-deep .gbt-page-layout__aside{display:none}}.gbt-docs-page{display:flex;flex-direction:column;gap:1rem;min-width:0}.gbt-docs-page__breadcrumb{display:block;min-width:0}.gbt-docs-page__article{container:docs-article/inline-size;min-width:0}gbt-card ::ng-deep .gbt-card{color:inherit;font-size:inherit;line-height:inherit}.gbt-docs-page__body{padding:1.75rem 2.25rem 2rem}.gbt-docs-page__body ::ng-deep .gbt-markdown-view{font-size:1rem;line-height:1.7}.gbt-docs-page__body ::ng-deep h1,.gbt-docs-page__body ::ng-deep h2,.gbt-docs-page__body ::ng-deep h3,.gbt-docs-page__body ::ng-deep h4{scroll-margin-top:1rem}.gbt-docs-page__body ::ng-deep [tabindex=\"-1\"]:focus{outline:none}.gbt-docs-page__body ::ng-deep pre{font-size:.875rem}.gbt-docs-page__body ::ng-deep table{width:max-content;min-width:100%}.gbt-docs-page__body ::ng-deep th{background:var(--bg-panel);font-weight:600}.gbt-docs-page__body ::ng-deep td code,.gbt-docs-page__body ::ng-deep th code{white-space:nowrap}.gbt-docs-page__body ::ng-deep blockquote[data-callout]{padding:.75rem 1rem;border:1px solid transparent;border-left-width:4px;border-radius:var(--site-border-radius-sm);color:var(--text-primary)}.gbt-docs-page__body ::ng-deep blockquote[data-callout]>:last-child{margin-bottom:0}.gbt-docs-page__body ::ng-deep blockquote[data-callout=note]{border-color:color-mix(in srgb,var(--color-info-bg-text) 25%,transparent);border-left-color:var(--color-info-bg-text);background:color-mix(in srgb,var(--color-info-bg) 55%,var(--bg-principal))}.gbt-docs-page__body ::ng-deep blockquote[data-callout=warning]{border-color:color-mix(in srgb,var(--color-warning-bg-text) 25%,transparent);border-left-color:var(--color-warning-bg-text);background:color-mix(in srgb,var(--color-warning-bg) 55%,var(--bg-principal))}@container docs-article (max-width: 559px){.gbt-docs-page__body{padding:1.125rem 1rem 1.25rem}}.gbt-docs-page__pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.gbt-docs-page__neighbour--next{grid-column:2;text-align:right}.gbt-docs-page__neighbour-label{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.75rem}.gbt-docs-page__neighbour-link{color:var(--primary);font-weight:600;overflow-wrap:anywhere}@container gbt-page-layout (max-width: 559px){.gbt-docs-page__pager{grid-template-columns:minmax(0,1fr)}.gbt-docs-page__neighbour--next{grid-column:auto}}.gbt-docs-page__not-found{display:block}.gbt-docs-page__loading-card{display:flex;flex-direction:column;gap:.875rem;padding:1.75rem 2.25rem}.gbt-docs-page__status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}\n"]
1408
1408
  }]
1409
1409
  }],
1410
1410
  ctorParameters: () => []