@handamade/psi-react 0.26.0 → 0.28.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.
@@ -231,6 +231,118 @@
231
231
  }
232
232
  ]
233
233
  },
234
+ {
235
+ "name": "Stack",
236
+ "description": "A column with a gap from the space scale (D109): Toolbar's vertical counterpart, minus the wrap. A plain <div> with no role. It gives a pattern tree a layout context, which Panel and the psi-gap-* utilities do not.",
237
+ "slots": [
238
+ {
239
+ "name": "body",
240
+ "accepts": {},
241
+ "cardinality": "0..*",
242
+ "order": 1
243
+ }
244
+ ],
245
+ "props": [
246
+ {
247
+ "name": "children",
248
+ "type": "ReactNode",
249
+ "required": false,
250
+ "default": null,
251
+ "description": "Stack contents, laid out top to bottom."
252
+ },
253
+ {
254
+ "name": "gap",
255
+ "type": "4 | 8 | 12 | 16 | 24 | 32",
256
+ "required": false,
257
+ "default": 16,
258
+ "description": "Space between children in px, from the space scale."
259
+ },
260
+ {
261
+ "name": "align",
262
+ "type": "\"stretch\" | \"start\" | \"center\" | \"end\"",
263
+ "required": false,
264
+ "default": "stretch",
265
+ "description": "Cross-axis alignment. `stretch` (the default) makes each child full\nwidth; `start` keeps a Button or a short line at its own width."
266
+ },
267
+ {
268
+ "name": "ref",
269
+ "type": "Ref<HTMLDivElement>",
270
+ "required": false,
271
+ "default": null,
272
+ "description": "Forwarded ref to the root element."
273
+ },
274
+ {
275
+ "name": "className",
276
+ "type": "string",
277
+ "required": false,
278
+ "default": null,
279
+ "description": "Additional CSS class name(s) merged onto the component's root element."
280
+ }
281
+ ]
282
+ },
283
+ {
284
+ "name": "Text",
285
+ "description": "A line or paragraph of text at one of Psi's text styles (D109). It gives a pattern tree an element per line, so a headline and its explanation do not run together. Margin 0: a Stack's gap does the spacing.",
286
+ "slots": [
287
+ {
288
+ "name": "body",
289
+ "accepts": {},
290
+ "cardinality": "0..*",
291
+ "order": 1
292
+ }
293
+ ],
294
+ "props": [
295
+ {
296
+ "name": "children",
297
+ "type": "ReactNode",
298
+ "required": false,
299
+ "default": null,
300
+ "description": "The text."
301
+ },
302
+ {
303
+ "name": "as",
304
+ "type": "\"p\" | \"span\" | \"div\" | \"h2\" | \"h3\" | \"h4\"",
305
+ "required": false,
306
+ "default": "p",
307
+ "description": "The element. A heading's level follows the document outline, its size\nthe design, so `as` and `size` are separate."
308
+ },
309
+ {
310
+ "name": "size",
311
+ "type": "12 | 14 | 16 | 18",
312
+ "required": false,
313
+ "default": 14,
314
+ "description": "Font size in px; each size carries its own line height."
315
+ },
316
+ {
317
+ "name": "weight",
318
+ "type": "\"regular\" | \"medium\"",
319
+ "required": false,
320
+ "default": "regular",
321
+ "description": ""
322
+ },
323
+ {
324
+ "name": "tone",
325
+ "type": "\"primary\" | \"secondary\"",
326
+ "required": false,
327
+ "default": "primary",
328
+ "description": "`secondary` for supporting text."
329
+ },
330
+ {
331
+ "name": "ref",
332
+ "type": "Ref<HTMLElement>",
333
+ "required": false,
334
+ "default": null,
335
+ "description": "Forwarded ref to the element."
336
+ },
337
+ {
338
+ "name": "className",
339
+ "type": "string",
340
+ "required": false,
341
+ "default": null,
342
+ "description": "Additional CSS class name(s) merged onto the component's root element."
343
+ }
344
+ ]
345
+ },
234
346
  {
235
347
  "name": "DescriptionList",
236
348
  "description": "Key/value display (D70): a `<dl>` of term/value pairs, the body `detail-drawer` has always described and never had a component for. No `size` prop — this is type, and the type scale is already expressed by --psi-text-*. Consumers restyle via the token family, not a prop.",
@@ -643,7 +755,7 @@
643
755
  },
644
756
  {
645
757
  "name": "Checkbox",
646
- "description": "Native checkbox with a built-in label; for independent binary choices.",
758
+ "description": "Native checkbox with a built-in label; for independent binary choices. In an invalid group Field it is aria-invalid, and an unchecked box marked aria-invalid outlines in the error colour (D108).",
647
759
  "slots": [],
648
760
  "props": [
649
761
  {
@@ -1026,7 +1138,7 @@
1026
1138
  "type": "ReactElement<Record<string, unknown>, string | JSXElementConstructor<any>>",
1027
1139
  "required": true,
1028
1140
  "default": null,
1029
- "description": "The trigger element (must accept ref, onMouseEnter/Leave, onFocus/Blur)."
1141
+ "description": "The trigger element (must accept onFocus/Blur)."
1030
1142
  },
1031
1143
  {
1032
1144
  "name": "placement",
@@ -1039,7 +1151,7 @@
1039
1151
  },
1040
1152
  {
1041
1153
  "name": "NavBar",
1042
- "description": "Top navigation bar with brand, nav-link, and trailing-action slots.",
1154
+ "description": "Top navigation bar with brand, nav-link, and trailing-action slots. Plain text in a slot takes `--psi-navbar-fg`, the foreground of the theme on the bar, so `data-psi-theme` on the `NavBar` reaches it (D111).",
1043
1155
  "slots": [
1044
1156
  {
1045
1157
  "name": "brand",
@@ -1280,7 +1392,7 @@
1280
1392
  },
1281
1393
  {
1282
1394
  "name": "AppShell",
1283
- "description": "The frame of an application (D88): a header row over a sidebar and a `<main>` that each scroll on their own, filling the viewport (`100dvh`). Because the header has a row of its own and `main` is its own scroller, nothing scrolls under the header, so a focused element is never obscured by it (WCAG 2.2 *Focus Not Obscured*) without `scroll-padding`. `main` carries `id={mainId}` and `tabIndex={-1}`: the target of a `SkipLink`, not a tab stop; focused by the skip link it draws the shared focus ring inside its box. A closed sidebar is `hidden`, not narrowed to icons; there is no responsive drawer and no stored open state, so this is a desktop frame. A page whose document must scroll as a whole does not use `AppShell`. Mount it at the root of the page with no margin or padding around it: it is `100dvh` tall, so anything around it makes the document scroll and slides the frame. Do not place a `ToastRegion` at `top-start` in an app with a skip link: the native top layer paints over the focused link.",
1395
+ "description": "The frame of an application (D88): a header row over a sidebar and a `<main>` that each scroll on their own, filling the viewport (`100dvh`). Because the header has a row of its own and `main` is its own scroller, nothing scrolls under the header, so a focused element is never obscured by it (WCAG 2.2 *Focus Not Obscured*) without `scroll-padding`. `main` carries `id={mainId}` and `tabIndex={-1}`: the target of a `SkipLink`, not a tab stop; focused by the skip link it draws the shared focus ring inside its box. A closed sidebar is `hidden`, not narrowed to icons; there is no responsive drawer and no stored open state, so this is a desktop frame. A page whose document must scroll as a whole does not use `AppShell`. Mount it at the root of the page with no margin or padding around it: it is `100dvh` tall, so anything around it makes the document scroll and slides the frame. Do not place a `ToastRegion` at `top-start` in an app with a skip link: the native top layer paints over the focused link. A theme can make `main` a surface beside a one-colour header and sidebar, with no CSS of the consumer's (D110): `--psi-app-shell-bg`, which must equal the canvas of the theme on the header and the sidebar, `--psi-app-shell-main-bg` and `--psi-app-shell-main-radius`. All three paint nothing by default. The corner is square unless a header and a sidebar both meet `main`. Put the header under that theme with `data-psi-theme` on the `NavBar`, whose rest props land on its `<header>`, and remove its line with `--psi-navbar-border-width: 0`.",
1284
1396
  "slots": [
1285
1397
  {
1286
1398
  "name": "skipLink",
@@ -846,14 +846,39 @@
846
846
  },
847
847
  "slots": {
848
848
  "body": [
849
- "{content:headline}",
850
- "{content:explanation}",
851
849
  {
852
- "component": "Button",
850
+ "component": "Stack",
853
851
  "props": {
854
- "variant": "neutral"
852
+ "gap": 8,
853
+ "align": "start"
855
854
  },
856
- "content": "reset-label"
855
+ "slots": {
856
+ "body": [
857
+ {
858
+ "component": "Text",
859
+ "props": {
860
+ "as": "h3",
861
+ "size": 16,
862
+ "weight": "medium"
863
+ },
864
+ "content": "headline"
865
+ },
866
+ {
867
+ "component": "Text",
868
+ "props": {
869
+ "tone": "secondary"
870
+ },
871
+ "content": "explanation"
872
+ },
873
+ {
874
+ "component": "Button",
875
+ "props": {
876
+ "variant": "neutral"
877
+ },
878
+ "content": "reset-label"
879
+ }
880
+ ]
881
+ }
857
882
  }
858
883
  ]
859
884
  }
@@ -866,7 +891,7 @@
866
891
  },
867
892
  "gaps": [],
868
893
  "blocked": false,
869
- "preset": "<Panel\n padding={24}\n>\n [nothing matches these filters]\n [say whether the dataset is empty or the filters are too narrow]\n <Button variant=\"neutral\">Clear filters</Button>\n</Panel>\n"
894
+ "preset": "<Panel\n padding={24}\n>\n <Stack\n align=\"start\"\n gap={8}\n >\n <Text as=\"h3\" size={16} weight=\"medium\">[nothing matches these filters]</Text>\n <Text tone=\"secondary\">[say whether the dataset is empty or the filters are too narrow]</Text>\n <Button variant=\"neutral\">Clear filters</Button>\n </Stack>\n</Panel>\n"
870
895
  },
871
896
  {
872
897
  "id": "feedback-form",
@@ -886,75 +911,92 @@
886
911
  "slots": {
887
912
  "body": [
888
913
  {
889
- "component": "Field",
914
+ "component": "Stack",
890
915
  "props": {
891
- "group": true,
892
- "required": true,
893
- "requiredText": "(Required)"
916
+ "gap": 24
894
917
  },
895
918
  "slots": {
896
- "label": [
897
- "{content:category-label}"
898
- ],
899
919
  "body": [
900
920
  {
901
- "component": "RadioGroup",
921
+ "component": "Field",
922
+ "props": {
923
+ "group": true,
924
+ "required": true,
925
+ "requiredText": "(Required)"
926
+ },
902
927
  "slots": {
928
+ "label": [
929
+ "{content:category-label}"
930
+ ],
903
931
  "body": [
904
932
  {
905
- "component": "Radio",
906
- "props": {
907
- "value": "problem"
908
- },
909
- "content": "first-option"
910
- },
933
+ "component": "RadioGroup",
934
+ "slots": {
935
+ "body": [
936
+ {
937
+ "component": "Radio",
938
+ "props": {
939
+ "value": "problem"
940
+ },
941
+ "content": "first-option"
942
+ },
943
+ {
944
+ "component": "Radio",
945
+ "props": {
946
+ "value": "idea"
947
+ },
948
+ "content": "second-option"
949
+ },
950
+ {
951
+ "component": "Radio",
952
+ "props": {
953
+ "value": "other"
954
+ },
955
+ "content": "third-option"
956
+ }
957
+ ]
958
+ }
959
+ }
960
+ ]
961
+ }
962
+ },
963
+ {
964
+ "component": "Field",
965
+ "slots": {
966
+ "label": [
967
+ "{content:description-label}"
968
+ ],
969
+ "body": [
911
970
  {
912
- "component": "Radio",
971
+ "component": "Textarea",
913
972
  "props": {
914
- "value": "idea"
915
- },
916
- "content": "second-option"
917
- },
973
+ "maxLength": 500,
974
+ "rows": 4
975
+ }
976
+ }
977
+ ],
978
+ "description": [
979
+ "{content:description-help}"
980
+ ]
981
+ }
982
+ },
983
+ {
984
+ "component": "Toolbar",
985
+ "slots": {
986
+ "body": [
918
987
  {
919
- "component": "Radio",
988
+ "component": "Button",
920
989
  "props": {
921
- "value": "other"
990
+ "type": "submit",
991
+ "variant": "accent"
922
992
  },
923
- "content": "third-option"
993
+ "content": "submit-label"
924
994
  }
925
995
  ]
926
996
  }
927
997
  }
928
998
  ]
929
999
  }
930
- },
931
- {
932
- "component": "Field",
933
- "slots": {
934
- "label": [
935
- "{content:description-label}"
936
- ],
937
- "body": [
938
- {
939
- "component": "Textarea",
940
- "props": {
941
- "maxLength": 500,
942
- "rows": 4
943
- }
944
- }
945
- ],
946
- "description": [
947
- "{content:description-help}"
948
- ]
949
- }
950
- },
951
- {
952
- "component": "Button",
953
- "props": {
954
- "type": "submit",
955
- "variant": "accent"
956
- },
957
- "content": "submit-label"
958
1000
  }
959
1001
  ]
960
1002
  }
@@ -971,7 +1013,7 @@
971
1013
  },
972
1014
  "gaps": [],
973
1015
  "blocked": false,
974
- "preset": "<Panel\n padding={24}\n>\n <Field\n group={true}\n label=\"Category\"\n required={true}\n requiredText=\"(Required)\"\n >\n <RadioGroup>\n <Radio value=\"problem\">Something is broken</Radio>\n <Radio value=\"idea\">An idea</Radio>\n <Radio value=\"other\">Something else</Radio>\n </RadioGroup>\n </Field>\n <Field\n description=\"[what happened, and what you expected]\"\n label=\"Description\"\n >\n <Textarea maxLength={500} rows={4} />\n </Field>\n <Button type=\"submit\" variant=\"accent\">Send</Button>\n</Panel>\n"
1016
+ "preset": "<Panel\n padding={24}\n>\n <Stack\n gap={24}\n >\n <Field\n group={true}\n label=\"Category\"\n required={true}\n requiredText=\"(Required)\"\n >\n <RadioGroup>\n <Radio value=\"problem\">Something is broken</Radio>\n <Radio value=\"idea\">An idea</Radio>\n <Radio value=\"other\">Something else</Radio>\n </RadioGroup>\n </Field>\n <Field\n description=\"[what happened, and what you expected]\"\n label=\"Description\"\n >\n <Textarea maxLength={500} rows={4} />\n </Field>\n <Toolbar>\n <Button type=\"submit\" variant=\"accent\">Send</Button>\n </Toolbar>\n </Stack>\n</Panel>\n"
975
1017
  },
976
1018
  {
977
1019
  "id": "filter-form",
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- @layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._button_1rxq8_3{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--psi-button-radius);cursor:pointer;font-family:var(--psi-font-sans);white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none;transition:background-color var(--psi-duration-150) var(--psi-ease-standard),color var(--psi-duration-150) var(--psi-ease-standard)}._button_1rxq8_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-button-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._button_1rxq8_3:disabled{opacity:.4;cursor:not-allowed}._button_1rxq8_3>span{max-inline-size:var(--psi-button-label-max-width);overflow:hidden;text-overflow:ellipsis;flex:none}._button_1rxq8_3._disabled_1rxq8_45{opacity:.4;cursor:not-allowed;pointer-events:none}._size24_1rxq8_70{height:var(--psi-button-24-height);padding-inline:var(--psi-button-24-padding-inline);gap:var(--psi-button-24-gap);font:var(--psi-button-font, var(--psi-button-24-font))}._size24_1rxq8_70:has(>svg:first-child){padding-inline-start:var(--psi-button-24-padding-inline-icon)}._size24_1rxq8_70:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-24-padding-inline-icon)}._size24_1rxq8_70>svg{inline-size:var(--psi-button-24-icon-size);block-size:var(--psi-button-24-icon-size);flex:none}._size32_1rxq8_88{height:var(--psi-button-32-height);padding-inline:var(--psi-button-32-padding-inline);gap:var(--psi-button-32-gap);font:var(--psi-button-font, var(--psi-button-32-font))}._size32_1rxq8_88:has(>svg:first-child){padding-inline-start:var(--psi-button-32-padding-inline-icon)}._size32_1rxq8_88:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-32-padding-inline-icon)}._size32_1rxq8_88>svg{inline-size:var(--psi-button-32-icon-size);block-size:var(--psi-button-32-icon-size);flex:none}._size40_1rxq8_106{height:var(--psi-button-40-height);padding-inline:var(--psi-button-40-padding-inline);gap:var(--psi-button-40-gap);font:var(--psi-button-font, var(--psi-button-40-font))}._size40_1rxq8_106:has(>svg:first-child){padding-inline-start:var(--psi-button-40-padding-inline-icon)}._size40_1rxq8_106:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-40-padding-inline-icon)}._size40_1rxq8_106>svg{inline-size:var(--psi-button-40-icon-size);block-size:var(--psi-button-40-icon-size);flex:none}._size48_1rxq8_124{height:var(--psi-button-48-height);padding-inline:var(--psi-button-48-padding-inline);gap:var(--psi-button-48-gap);font:var(--psi-button-font, var(--psi-button-48-font))}._size48_1rxq8_124:has(>svg:first-child){padding-inline-start:var(--psi-button-48-padding-inline-icon)}._size48_1rxq8_124:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-48-padding-inline-icon)}._size48_1rxq8_124>svg{inline-size:var(--psi-button-48-icon-size);block-size:var(--psi-button-48-icon-size);flex:none}._accent_1rxq8_145{background:var(--psi-button-accent-bg);color:var(--psi-button-accent-fg)}._accent_1rxq8_145:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-bg-hover)}._accent_1rxq8_145:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-bg-active)}._accentSubtle_1rxq8_157{background:var(--psi-button-accent-subtle-bg);color:var(--psi-button-accent-subtle-fg)}._accentSubtle_1rxq8_157:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-subtle-bg-hover)}._accentSubtle_1rxq8_157:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-subtle-bg-active)}._neutral_1rxq8_169{background:var(--psi-button-neutral-bg);color:var(--psi-button-neutral-fg)}._neutral_1rxq8_169:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-bg-hover)}._neutral_1rxq8_169:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-bg-active)}._neutralSubtle_1rxq8_181{background:var(--psi-button-neutral-subtle-bg);color:var(--psi-button-neutral-subtle-fg)}._neutralSubtle_1rxq8_181:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-subtle-bg-hover)}._neutralSubtle_1rxq8_181:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-subtle-bg-active)}._ghost_1rxq8_193{background:var(--psi-button-ghost-bg);color:var(--psi-button-ghost-fg)}._ghost_1rxq8_193:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-ghost-bg-hover)}._ghost_1rxq8_193:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-ghost-bg-active)}._danger_1rxq8_205{background:var(--psi-button-danger-bg);color:var(--psi-button-danger-fg)}._danger_1rxq8_205:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-bg-hover)}._danger_1rxq8_205:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-bg-active)}._dangerSubtle_1rxq8_217{background:var(--psi-button-danger-subtle-bg);color:var(--psi-button-danger-subtle-fg)}._dangerSubtle_1rxq8_217:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-subtle-bg-hover)}._dangerSubtle_1rxq8_217:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-subtle-bg-active)}._outline_1rxq8_229{background:var(--psi-button-outline-bg);color:var(--psi-button-outline-fg);border:1px solid var(--psi-button-outline-border)}._outline_1rxq8_229:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-outline-bg-hover);color:var(--psi-button-outline-fg-hover);border-color:transparent}._outline_1rxq8_229:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-outline-bg-active)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._iconButton_1q4hx_3{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--psi-button-radius);cursor:pointer;padding:0;text-decoration:none;-webkit-user-select:none;user-select:none;transition:background-color var(--psi-duration-150) var(--psi-ease-standard),color var(--psi-duration-150) var(--psi-ease-standard)}._iconButton_1q4hx_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-button-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._iconButton_1q4hx_3:disabled{opacity:.4;cursor:not-allowed}._iconButton_1q4hx_3._disabled_1q4hx_29{opacity:.4;cursor:not-allowed;pointer-events:none}._size24_1q4hx_37{width:var(--psi-button-24-height);height:var(--psi-button-24-height)}._size32_1q4hx_42{width:var(--psi-button-32-height);height:var(--psi-button-32-height)}._size40_1q4hx_47{width:var(--psi-button-40-height);height:var(--psi-button-40-height)}._size48_1q4hx_52{width:var(--psi-button-48-height);height:var(--psi-button-48-height)}._accent_1q4hx_60{background:var(--psi-button-accent-bg);color:var(--psi-button-accent-fg)}._accent_1q4hx_60:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-accent-bg-hover)}._accent_1q4hx_60:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-accent-bg-active)}._neutral_1q4hx_72{background:var(--psi-button-neutral-bg);color:var(--psi-button-neutral-fg)}._neutral_1q4hx_72:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-neutral-bg-hover)}._neutral_1q4hx_72:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-neutral-bg-active)}._ghost_1q4hx_84{background:var(--psi-button-ghost-bg);color:var(--psi-button-ghost-fg)}._ghost_1q4hx_84:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-ghost-bg-hover)}._ghost_1q4hx_84:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-ghost-bg-active)}._danger_1q4hx_96{background:var(--psi-button-danger-bg);color:var(--psi-button-danger-fg)}._danger_1q4hx_96:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-danger-bg-hover)}._danger_1q4hx_96:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-danger-bg-active)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._card_1btb3_1{background:var(--psi-card-bg);border:1px solid var(--psi-card-border);border-radius:var(--psi-card-radius);overflow:hidden}._stacked_1btb3_8{display:flex;flex-direction:column;gap:var(--psi-card-gap)}._featured_1btb3_10{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--psi-card-gap);align-items:start}@media(max-width:960px){._featured_1btb3_10{grid-template-columns:1fr}}._media_1btb3_22{min-width:0}._body_1btb3_23{min-width:0;display:flex;flex-direction:column;gap:var(--psi-card-gap);padding:var(--psi-card-gap)}._hoverLift_1btb3_31{transition:transform var(--psi-duration-350) var(--psi-ease-standard)}._hoverLift_1btb3_31:hover{transform:translateY(-6px)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._panel_jn8w4_1{background:var(--psi-panel-bg);border:1px solid var(--psi-panel-border);border-radius:var(--psi-panel-radius);padding:var(--psi-panel-padding)}._padding16_jn8w4_8{padding:var(--psi-space-16)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._list_1lh3q_8{display:flex;flex-direction:column;gap:var(--psi-space-12);margin:var(--psi-space-0)}._list_1lh3q_8[data-gap="8"]{gap:var(--psi-space-8)}._list_1lh3q_8[data-gap="16"]{gap:var(--psi-space-16)}._item_1lh3q_26{display:flex;flex-direction:column;gap:var(--psi-space-4);min-width:0}._list_1lh3q_8[data-layout=inline] ._item_1lh3q_26{display:grid;grid-template-columns:auto 1fr;column-gap:var(--psi-space-16);row-gap:var(--psi-space-0);align-items:start}._term_1lh3q_44{color:var(--psi-description-list-term-fg);font:var(--psi-text-14-20-medium);min-width:0}._value_1lh3q_50{color:var(--psi-description-list-value-fg);font:var(--psi-text-14-20-regular);margin:var(--psi-space-0);min-width:0;overflow-wrap:anywhere}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._navbar_1w24e_1{font:var(--psi-text-14-20-medium);position:sticky;top:0;z-index:var(--psi-z-nav);background:var(--psi-navbar-bg);backdrop-filter:blur(var(--psi-navbar-blur));-webkit-backdrop-filter:blur(var(--psi-navbar-blur));border-bottom:1px solid var(--psi-navbar-border)}._inner_1w24e_12{display:flex;align-items:center;gap:var(--psi-space-24);height:var(--psi-navbar-height)}._fluid_1w24e_20{padding-inline:var(--psi-navbar-gutter)}._brand_1w24e_22{display:flex;align-items:center}._links_1w24e_23{display:flex;align-items:center;gap:var(--psi-space-20);margin-inline-start:auto}._links_1w24e_23 a,._brand_1w24e_22 a{text-decoration:none;transition:color var(--psi-duration-150) var(--psi-ease-soft)}._links_1w24e_23 a{color:var(--psi-navbar-link-fg)}._links_1w24e_23 a:hover,._brand_1w24e_22 a{color:var(--psi-navbar-link-fg-hover)}._links_1w24e_23 a:focus-visible,._brand_1w24e_22 a:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-navbar-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._actions_1w24e_53{display:flex;align-items:center;gap:var(--psi-space-8)}._brand_1w24e_22+._actions_1w24e_53,._actions_1w24e_53:first-child{margin-inline-start:auto}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._skipLink_1fn0y_4{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}._skipLink_1fn0y_4:focus-visible{position:fixed;inset-block-start:0;inset-inline-start:0;margin:var(--psi-space-8);z-index:var(--psi-z-overlay);display:inline-flex;align-items:center;box-sizing:border-box;width:auto;height:var(--psi-size-32);padding-inline:var(--psi-space-12);overflow:visible;clip:auto;clip-path:none;background:var(--psi-skip-link-bg);color:var(--psi-skip-link-fg);border:1px solid var(--psi-skip-link-border);border-radius:var(--psi-skip-link-radius);font:var(--psi-text-14-20-medium);text-decoration:none;outline:var(--psi-focus-ring-width) solid var(--psi-skip-link-focus-ring);outline-offset:var(--psi-focus-ring-offset)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._navTree_1ktoe_7{display:block}._list_1ktoe_11,._groupList_1ktoe_12{display:flex;flex-direction:column;gap:var(--psi-space-2);margin:0;padding:0;list-style:none}._item_1ktoe_23 a{position:relative;display:flex;align-items:center;box-sizing:border-box;min-height:var(--psi-size-32);padding-block:var(--psi-space-4);padding-inline:var(--psi-space-12);border-radius:var(--psi-nav-tree-radius);color:var(--psi-nav-tree-item-fg);font:var(--psi-text-14-20-regular);text-decoration:none}._item_1ktoe_23 a:hover{background:var(--psi-nav-tree-item-bg-hover)}._item_1ktoe_23 a:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-nav-tree-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._item_1ktoe_23 a[aria-current=page]{background:var(--psi-nav-tree-item-bg-current);color:var(--psi-nav-tree-item-fg-current);font:var(--psi-text-14-20-medium)}._item_1ktoe_23 a[aria-current=page]:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;border-radius:var(--psi-nav-tree-radius);background:var(--psi-nav-tree-indicator)}._item_1ktoe_23 a[aria-current=true]{color:var(--psi-nav-tree-item-fg-current);font:var(--psi-text-14-20-medium)}._groupButton_1ktoe_79{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:space-between;gap:var(--psi-space-8);box-sizing:border-box;width:100%;min-height:var(--psi-size-32);padding-block:var(--psi-space-4);padding-inline:var(--psi-space-12);border:0;border-radius:var(--psi-nav-tree-radius);background:none;color:var(--psi-nav-tree-group-fg);font:var(--psi-text-14-20-medium);text-align:start;cursor:pointer}._groupButton_1ktoe_79:hover{background:var(--psi-nav-tree-item-bg-hover)}._groupButton_1ktoe_79:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-nav-tree-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._groupLabel_1ktoe_108{min-width:0}._chevron_1ktoe_112{flex:none;transition:transform var(--psi-duration-150) var(--psi-ease-standard)}._groupButton_1ktoe_79[aria-expanded=true] ._chevron_1ktoe_112{transform:rotate(180deg)}._groupList_1ktoe_12{padding-inline-start:var(--psi-space-12);margin-block-start:var(--psi-space-2)}._groupList_1ktoe_12[hidden]{display:none}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._appShell_i1tds_10{display:grid;grid-template-rows:auto 1fr;grid-template-columns:var(--psi-app-shell-sidebar-width) minmax(0,1fr);height:100dvh}._sidebarClosed_i1tds_18{grid-template-columns:minmax(0,1fr)}._header_i1tds_22{grid-row:1;grid-column:1 / -1;min-width:0}._sidebar_i1tds_18{grid-row:2;min-height:0;overflow:auto;padding:var(--psi-space-8);background:var(--psi-app-shell-sidebar-bg);color:var(--psi-app-shell-sidebar-fg)}._sidebar_i1tds_18[hidden]{display:none}._main_i1tds_45{grid-row:2;min-width:0;min-height:0;overflow:auto}._main_i1tds_45:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-app-shell-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._frame_et4fc_1{overflow:hidden}._frame_et4fc_1>img,._frame_et4fc_1>video{width:100%;height:100%;object-fit:cover;display:block}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._field_x989o_1{display:grid;gap:var(--psi-field-gap);border:0;margin:0;padding:0;min-width:0}._label_x989o_10{font:var(--psi-text-14-20-medium);color:var(--psi-field-label-fg);padding:0;min-block-size:var(--psi-field-label-height)}._marker_x989o_19{color:var(--psi-field-marker-fg)}._requiredText_x989o_25{font:var(--psi-text-14-20-regular);color:var(--psi-field-required-text-fg)}._message_x989o_30{margin:0;font:var(--psi-text-12-16-regular);color:var(--psi-field-message-fg)}._invalid_x989o_36 ._message_x989o_30{color:var(--psi-field-error-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._dialog_qg38y_2{padding:0;border:1px solid var(--psi-dialog-border);border-radius:var(--psi-dialog-radius);background:var(--psi-dialog-bg);color:var(--psi-dialog-fg);max-width:calc(100vw - var(--psi-space-32))}._dialog_qg38y_2::backdrop{background:var(--psi-dialog-backdrop)}._dialog_qg38y_2:focus-visible,._panel_qg38y_20:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-dialog-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._dialog_qg38y_2[open]::backdrop{animation:_backdrop-enter_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _backdrop-enter_qg38y_1{0%{opacity:0}}._center_qg38y_42[open]{animation:_dialog-enter_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _dialog-enter_qg38y_1{0%{opacity:0;transform:scale(.97)}}._inlineStart_qg38y_50,._inlineEnd_qg38y_51{box-sizing:border-box;margin-block:0;height:100dvh;max-height:100dvh;max-width:100vw;border-radius:0}._inlineEnd_qg38y_51{margin-inline-start:auto;margin-inline-end:0;border-start-start-radius:var(--psi-dialog-radius);border-end-start-radius:var(--psi-dialog-radius)}._inlineStart_qg38y_50{margin-inline-start:0;margin-inline-end:auto;border-start-end-radius:var(--psi-dialog-radius);border-end-end-radius:var(--psi-dialog-radius)}._inlineEnd_qg38y_51[open]{animation:_drawer-enter-end_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}._inlineStart_qg38y_50[open]{animation:_drawer-enter-start_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _drawer-enter-end_qg38y_1{0%{transform:translate(100%)}}@keyframes _drawer-enter-start_qg38y_1{0%{transform:translate(-100%)}}._w400_qg38y_100{width:400px}._w560_qg38y_101{width:560px}._w720_qg38y_102{width:720px}._panel_qg38y_20{display:grid;gap:var(--psi-space-16);padding:var(--psi-space-24)}._inlineStart_qg38y_50 ._panel_qg38y_20,._inlineEnd_qg38y_51 ._panel_qg38y_20{height:100%;overflow-y:auto;align-content:start}._header_qg38y_124{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--psi-space-12)}._title_qg38y_131{margin:0;font:var(--psi-text-18-28-medium);color:var(--psi-dialog-title-fg)}._footer_qg38y_137{display:flex;justify-content:flex-end;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._input_pmr7w_3{display:block;box-sizing:border-box;width:100%;border:1px solid var(--psi-input-border);border-radius:var(--psi-input-radius);background:var(--psi-input-bg);color:var(--psi-input-fg);font-family:var(--psi-font-sans);transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._input_pmr7w_3::placeholder{color:var(--psi-input-placeholder)}._input_pmr7w_3:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-input-border-hover)}._input_pmr7w_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-input-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._input_pmr7w_3:disabled{opacity:.4;cursor:not-allowed}._size24_pmr7w_43{height:var(--psi-input-24-height);padding-inline:var(--psi-input-24-padding-inline);font:var(--psi-input-24-font)}._size32_pmr7w_49{height:var(--psi-input-32-height);padding-inline:var(--psi-input-32-padding-inline);font:var(--psi-input-32-font)}._size40_pmr7w_55{height:var(--psi-input-40-height);padding-inline:var(--psi-input-40-padding-inline);font:var(--psi-input-40-font)}._size48_pmr7w_61{height:var(--psi-input-48-height);padding-inline:var(--psi-input-48-padding-inline);font:var(--psi-input-48-font)}._error_pmr7w_69{border-color:var(--psi-input-border-error)}._error_pmr7w_69:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-input-border-error)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._select_1eqz1_3{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--psi-select-border);border-radius:var(--psi-select-radius);background-color:var(--psi-select-bg);background-image:linear-gradient(45deg,transparent calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% + .75px),transparent calc(50% + .75px)),linear-gradient(135deg,transparent calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% + .75px),transparent calc(50% + .75px));background-size:4px 4px;background-repeat:no-repeat;color:var(--psi-select-fg);font-family:var(--psi-font-sans);cursor:pointer;transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._select_1eqz1_3:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-select-border-hover)}._select_1eqz1_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-select-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._select_1eqz1_3:disabled{opacity:.4;cursor:not-allowed}._size24_1eqz1_57{height:var(--psi-select-24-height);padding-inline-start:var(--psi-select-24-padding-inline);padding-inline-end:var(--psi-select-24-padding-inline-end);background-position:right calc(var(--psi-select-24-chevron-offset) + 6px) center,right calc(var(--psi-select-24-chevron-offset) + 2px) center;font:var(--psi-select-24-font)}._size32_1eqz1_67{height:var(--psi-select-32-height);padding-inline-start:var(--psi-select-32-padding-inline);padding-inline-end:var(--psi-select-32-padding-inline-end);background-position:right calc(var(--psi-select-32-chevron-offset) + 6px) center,right calc(var(--psi-select-32-chevron-offset) + 2px) center;font:var(--psi-select-32-font)}._size40_1eqz1_77{height:var(--psi-select-40-height);padding-inline-start:var(--psi-select-40-padding-inline);padding-inline-end:var(--psi-select-40-padding-inline-end);background-position:right calc(var(--psi-select-40-chevron-offset) + 6px) center,right calc(var(--psi-select-40-chevron-offset) + 2px) center;font:var(--psi-select-40-font)}._size48_1eqz1_87{height:var(--psi-select-48-height);padding-inline-start:var(--psi-select-48-padding-inline);padding-inline-end:var(--psi-select-48-padding-inline-end);background-position:right calc(var(--psi-select-48-chevron-offset) + 6px) center,right calc(var(--psi-select-48-chevron-offset) + 2px) center;font:var(--psi-select-48-font)}._error_1eqz1_99{border-color:var(--psi-select-border-error)}._error_1eqz1_99:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-select-border-error)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._label_eo049_3{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-checkbox-fg)}._disabled_eo049_13{opacity:.4;cursor:not-allowed}._indicator_eo049_26{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;border:1px solid var(--psi-checkbox-box-border);border-radius:var(--psi-checkbox-box-radius);background:var(--psi-checkbox-box-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard),border-color var(--psi-duration-150) var(--psi-ease-standard)}._input_eo049_42:checked+._indicator_eo049_26{background:var(--psi-checkbox-box-bg-checked);border-color:var(--psi-checkbox-box-border-checked)}._input_eo049_42:checked+._indicator_eo049_26:after{content:"";display:block;width:4px;height:8px;color:var(--psi-checkbox-check-fg);border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-.5px,-.5px)}._input_eo049_42:indeterminate+._indicator_eo049_26{background:var(--psi-checkbox-box-bg-checked);border-color:var(--psi-checkbox-box-border-checked)}._input_eo049_42:indeterminate+._indicator_eo049_26:after{content:"";display:block;width:8px;height:2px;border:0;border-radius:1px;color:var(--psi-checkbox-check-fg);background:currentColor;transform:none}._input_eo049_42:focus-visible+._indicator_eo049_26{outline:var(--psi-focus-ring-width) solid var(--psi-checkbox-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._text_eo049_90{color:var(--psi-checkbox-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._label_yv464_3{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-switch-fg)}._disabled_yv464_13{opacity:.4;cursor:not-allowed}._track_yv464_26{position:relative;display:inline-flex;align-items:center;width:36px;height:20px;flex-shrink:0;border-radius:var(--psi-radius-full);background:var(--psi-switch-track-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard)}._input_yv464_38:checked+._track_yv464_26{background:var(--psi-switch-track-bg-checked)}._input_yv464_38:focus-visible+._track_yv464_26{outline:var(--psi-focus-ring-width) solid var(--psi-switch-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._thumb_yv464_50{position:absolute;width:16px;height:16px;border-radius:var(--psi-radius-full);background:var(--psi-switch-thumb-bg);left:2px;transition:left var(--psi-duration-150) var(--psi-ease-standard);box-shadow:0 1px 2px #00000029}._input_yv464_38:checked+._track_yv464_26 ._thumb_yv464_50{left:18px}._text_yv464_67{color:var(--psi-switch-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._wrap_1twws_6{display:grid;gap:var(--psi-space-4)}._textarea_1twws_11{display:block;box-sizing:border-box;width:100%;min-width:0;padding-block:var(--psi-space-6);padding-inline:var(--psi-textarea-padding-inline);border:1px solid var(--psi-textarea-border);border-radius:var(--psi-textarea-radius);background:var(--psi-textarea-bg);color:var(--psi-textarea-fg);font:var(--psi-textarea-font);font-family:var(--psi-font-sans);resize:vertical;transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._textarea_1twws_11::placeholder{color:var(--psi-textarea-placeholder)}._textarea_1twws_11:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-textarea-border-hover)}._textarea_1twws_11:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-textarea-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._textarea_1twws_11:disabled{opacity:.4;cursor:not-allowed}._error_1twws_49,._error_1twws_49:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-textarea-border-error)}._counter_1twws_55{justify-self:end;font:var(--psi-text-12-16-regular);font-variant-numeric:tabular-nums;color:var(--psi-textarea-counter-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._group_1bv98_5{display:flex;flex-direction:column;align-items:flex-start;gap:var(--psi-space-8)}._horizontal_1bv98_12{flex-direction:row;flex-wrap:wrap;gap:var(--psi-space-16)}._label_1bv98_18{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-radio-group-fg)}._disabled_1bv98_28{opacity:.4;cursor:not-allowed}._circle_1bv98_35{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:16px;height:16px;flex-shrink:0;border:1px solid var(--psi-radio-group-circle-border);border-radius:var(--psi-radius-full);background:var(--psi-radio-group-circle-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard),border-color var(--psi-duration-150) var(--psi-ease-standard)}._input_1bv98_51:checked+._circle_1bv98_35{background:var(--psi-radio-group-circle-bg-checked);border-color:var(--psi-radio-group-circle-border-checked)}._input_1bv98_51:checked+._circle_1bv98_35:after{content:"";display:block;width:6px;height:6px;border-radius:var(--psi-radius-full);color:var(--psi-radio-group-dot-fg);background:currentColor}._input_1bv98_51:focus-visible+._circle_1bv98_35{outline:var(--psi-focus-ring-width) solid var(--psi-radio-group-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._text_1bv98_73{color:var(--psi-radio-group-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._tag_1r2xw_3{display:inline-flex;align-items:center;gap:var(--psi-space-4);height:24px;padding-inline:var(--psi-space-8);border-radius:var(--psi-radius-full);font:var(--psi-text-12-16-medium);white-space:nowrap;-webkit-user-select:none;user-select:none}._dismiss_1r2xw_17{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;opacity:.7;margin-inline-start:var(--psi-space-2);margin-inline-end:calc(-1 * var(--psi-space-4));border-radius:var(--psi-radius-full)}._dismiss_1r2xw_17:hover{opacity:1}._dismiss_1r2xw_17:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tag-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._neutral_1r2xw_43{background:var(--psi-tag-neutral-bg);color:var(--psi-tag-neutral-fg)}._accent_1r2xw_48{background:var(--psi-tag-accent-bg);color:var(--psi-tag-accent-fg)}._success_1r2xw_53{background:var(--psi-tag-success-bg);color:var(--psi-tag-success-fg)}._warning_1r2xw_58{background:var(--psi-tag-warning-bg);color:var(--psi-tag-warning-fg)}._danger_1r2xw_63{background:var(--psi-tag-danger-bg);color:var(--psi-tag-danger-fg)}._neutralSubtle_1r2xw_70{background:var(--psi-tag-neutral-subtle-bg);color:var(--psi-tag-neutral-subtle-fg)}._accentSubtle_1r2xw_75{background:var(--psi-tag-accent-subtle-bg);color:var(--psi-tag-accent-subtle-fg)}._successSubtle_1r2xw_80{background:var(--psi-tag-success-subtle-bg);color:var(--psi-tag-success-subtle-fg)}._warningSubtle_1r2xw_85{background:var(--psi-tag-warning-subtle-bg);color:var(--psi-tag-warning-subtle-fg)}._dangerSubtle_1r2xw_90{background:var(--psi-tag-danger-subtle-bg);color:var(--psi-tag-danger-subtle-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._wrapper_1eu6z_3{position:relative;display:inline-flex}._tooltip_1eu6z_10{position:absolute;z-index:var(--psi-z-tooltip);padding:var(--psi-space-4) var(--psi-space-8);border-radius:var(--psi-tooltip-radius);background:var(--psi-tooltip-bg);color:var(--psi-tooltip-fg);font:var(--psi-text-12-16-regular);white-space:nowrap;pointer-events:none}._top_1eu6z_24{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:var(--psi-space-4)}._bottom_1eu6z_31{top:100%;left:50%;transform:translate(-50%);margin-top:var(--psi-space-4)}._left_1eu6z_38{right:100%;top:50%;transform:translateY(-50%);margin-right:var(--psi-space-4)}._right_1eu6z_45{left:100%;top:50%;transform:translateY(-50%);margin-left:var(--psi-space-4)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._toolbar_8bwkv_1{display:flex;flex-wrap:wrap;align-items:center}._gap8_8bwkv_7{gap:var(--psi-space-8)}._gap12_8bwkv_8{gap:var(--psi-space-12)}._gap16_8bwkv_9{gap:var(--psi-space-16)}._alignEnd_8bwkv_13{align-items:flex-end}._alignStart_8bwkv_19{align-items:flex-start}._alignStart_8bwkv_19>:is(button,a){margin-block-start:var(--psi-toolbar-action-offset)}._toolbar_8bwkv_1>input,._toolbar_8bwkv_1>select{width:var(--psi-toolbar-control-width)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._trigger_pivae_4{display:inline-flex;width:fit-content}._menu_pivae_16{min-width:180px;margin:var(--psi-space-4);padding:var(--psi-space-4);border:1px solid var(--psi-menu-border);border-radius:var(--psi-menu-radius);background:var(--psi-menu-bg);color:var(--psi-menu-fg);font:var(--psi-text-14-20-regular)}._menu_pivae_16:not([data-open]):not(:popover-open){display:none}._item_pivae_37{display:flex;width:100%;align-items:center;padding:var(--psi-space-8) var(--psi-space-12);border:0;border-radius:var(--psi-radius-6);background:var(--psi-menu-item-bg);color:var(--psi-menu-item-fg);font:inherit;text-align:start;cursor:pointer}._item_pivae_37:hover{background:var(--psi-menu-item-bg-hover)}._item_pivae_37:active{background:var(--psi-menu-item-bg-active)}._item_pivae_37:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-menu-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._item_pivae_37[data-variant=danger]{color:var(--psi-menu-item-fg-danger)}._item_pivae_37[aria-disabled=true]{color:var(--psi-menu-item-fg-disabled);cursor:default}._item_pivae_37[aria-disabled=true]:hover{background:var(--psi-menu-item-bg)}._text_pivae_85{padding:var(--psi-space-8) var(--psi-space-12);color:var(--psi-menu-text-fg);cursor:default}._separator_pivae_93{height:0;margin:var(--psi-space-4) 0;border-top:1px solid var(--psi-menu-separator-border)}@supports (anchor-name: --x){._menu_pivae_16{position:fixed;margin:var(--psi-space-4);position-try-fallbacks:flip-block,flip-inline,flip-block flip-inline}._menu_pivae_16[data-placement=bottom-start]{position-area:block-end span-inline-end}._menu_pivae_16[data-placement=bottom-end]{position-area:block-end span-inline-start}._menu_pivae_16[data-placement=top-start]{position-area:block-start span-inline-end}._menu_pivae_16[data-placement=top-end]{position-area:block-start span-inline-start}}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._table_1maek_3{width:100%;border-collapse:collapse;background:var(--psi-table-bg);color:var(--psi-table-fg);font:var(--psi-text-14-20-regular);border:1px solid var(--psi-table-border);border-radius:var(--psi-table-radius)}._caption_1maek_19{caption-side:top;text-align:start;padding-block:var(--psi-space-8);color:var(--psi-table-fg);font:var(--psi-text-14-20-medium)}._captionDetail_1maek_27{display:block;color:var(--psi-table-header-fg);font:var(--psi-text-12-16-regular)}._caption_1maek_19:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-table-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._headerCell_1maek_38{color:var(--psi-table-header-fg);font:var(--psi-text-14-20-medium);text-align:start}._cell_1maek_44,._headerCell_1maek_38{border-bottom:1px solid var(--psi-table-cell-border)}._rowHeader_1maek_51{font:var(--psi-text-14-20-medium);text-align:start}._cell_1maek_44[data-numeric],._headerCell_1maek_38[data-numeric]{text-align:end;font-variant-numeric:var(--psi-font-variant-numeric)}._sortButton_1maek_62{display:inline-flex;align-items:center;gap:var(--psi-space-4);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}._sortButton_1maek_62:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-table-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._sortIndicator_1maek_79{color:var(--psi-table-sort-indicator-fg)}._table_1maek_3[data-size="32"] ._cell_1maek_44,._table_1maek_3[data-size="32"] ._headerCell_1maek_38{height:var(--psi-table-32-row-height);padding-inline:var(--psi-table-32-cell-padding-x)}._table_1maek_3[data-size="32"] ._caption_1maek_19{padding-inline:var(--psi-table-32-cell-padding-x)}._table_1maek_3[data-size="40"] ._cell_1maek_44,._table_1maek_3[data-size="40"] ._headerCell_1maek_38{height:var(--psi-table-40-row-height);padding-inline:var(--psi-table-40-cell-padding-x)}._table_1maek_3[data-size="40"] ._caption_1maek_19{padding-inline:var(--psi-table-40-cell-padding-x)}._table_1maek_3[data-size="48"] ._cell_1maek_44,._table_1maek_3[data-size="48"] ._headerCell_1maek_38{height:var(--psi-table-48-row-height);padding-inline:var(--psi-table-48-cell-padding-x)}._table_1maek_3[data-size="48"] ._caption_1maek_19{padding-inline:var(--psi-table-48-cell-padding-x)}._table_1maek_3[data-size] ._selectCell_1maek_123{width:1%;padding-inline-end:0}._body_1maek_130 ._row_1maek_51:hover{background:var(--psi-table-row-bg-hover)}._body_1maek_130 ._row_1maek_51[data-selected]:hover,._row_1maek_51[data-selected]{background:var(--psi-table-row-bg-selected)}._row_1maek_51{background:var(--psi-table-row-bg)}._sticky_1maek_155 ._headerCell_1maek_38{position:sticky;inset-block-start:0;z-index:var(--psi-z-sticky);background:var(--psi-table-bg);box-shadow:inset 0 -1px 0 var(--psi-table-cell-border)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._nav_166vs_6{display:flex;align-items:center;gap:var(--psi-space-4)}._ellipsis_166vs_12{padding-inline:var(--psi-space-4)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._nav_jbhk1_5{display:inline-flex;align-items:center;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._toast_1gxg8_10{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--psi-space-12);min-width:280px;max-width:420px;padding:var(--psi-space-12) var(--psi-space-16);border:1px solid var(--psi-toast-border);border-radius:var(--psi-toast-radius);background:var(--psi-toast-bg);color:var(--psi-toast-fg);font:var(--psi-text-14-20-regular);animation:_toast-enter_1gxg8_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _toast-enter_1gxg8_1{0%{opacity:0;transform:translateY(8px)}}._icon_1gxg8_39{display:inline-flex;align-items:center}._iconNeutral_1gxg8_44{color:var(--psi-toast-icon-fg-neutral)}._iconSuccess_1gxg8_45{color:var(--psi-toast-icon-fg-success)}._iconWarning_1gxg8_46{color:var(--psi-toast-icon-fg-warning)}._iconDanger_1gxg8_47{color:var(--psi-toast-icon-fg-danger)}._body_1gxg8_51{min-width:0}._action_1gxg8_55{display:inline-flex}._region_1gxg8_61{position:fixed;inset:auto;margin:0;padding:var(--psi-space-16);border:0;background:none;overflow:visible;pointer-events:none;display:flex;flex-direction:column;gap:var(--psi-space-8);width:max-content;max-width:100%}._region_1gxg8_61[data-placement=top-start]{top:0;left:0;align-items:flex-start}._region_1gxg8_61[data-placement=top-end]{top:0;right:0;align-items:flex-end}._region_1gxg8_61[data-placement=bottom-start]{bottom:0;left:0;align-items:flex-start}._region_1gxg8_61[data-placement=bottom-end]{bottom:0;right:0;align-items:flex-end}._region_1gxg8_61[data-placement^=bottom] ._live_1gxg8_91{flex-direction:column-reverse}._live_1gxg8_91{display:flex;flex-direction:column;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._banner_15y1f_7{display:grid;grid-template-columns:auto 1fr auto auto;align-items:start;gap:var(--psi-space-12);width:100%;box-sizing:border-box;padding:var(--psi-space-12) var(--psi-space-16);color:var(--psi-banner-fg);font:var(--psi-text-14-20-regular)}._banner_15y1f_7[data-variant=neutral]{background:var(--psi-banner-bg-neutral)}._banner_15y1f_7[data-variant=success]{background:var(--psi-banner-bg-success)}._banner_15y1f_7[data-variant=warning]{background:var(--psi-banner-bg-warning)}._banner_15y1f_7[data-variant=danger]{background:var(--psi-banner-bg-danger)}._icon_15y1f_26{display:inline-flex;align-items:center}._iconNeutral_15y1f_31{color:var(--psi-banner-icon-fg-neutral)}._iconSuccess_15y1f_32{color:var(--psi-banner-icon-fg-success)}._iconWarning_15y1f_33{color:var(--psi-banner-icon-fg-warning)}._iconDanger_15y1f_34{color:var(--psi-banner-icon-fg-danger)}._body_15y1f_36{min-width:0}._body_15y1f_36>p{margin-block:0}._body_15y1f_36>p+p{margin-block-start:var(--psi-space-8)}._title_15y1f_50{display:block;font:var(--psi-text-14-20-medium)}._action_15y1f_55{display:inline-flex}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._inlineAlert_16390_7{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--psi-space-12);box-sizing:border-box;padding:var(--psi-space-12) var(--psi-space-16);border-radius:var(--psi-inline-alert-radius);color:var(--psi-inline-alert-fg);font:var(--psi-text-14-20-regular)}._inlineAlert_16390_7[data-variant=neutral]{background:var(--psi-inline-alert-bg-neutral);border:1px solid var(--psi-inline-alert-border-neutral)}._inlineAlert_16390_7[data-variant=success]{background:var(--psi-inline-alert-bg-success);border:1px solid var(--psi-inline-alert-border-success)}._inlineAlert_16390_7[data-variant=warning]{background:var(--psi-inline-alert-bg-warning);border:1px solid var(--psi-inline-alert-border-warning)}._inlineAlert_16390_7[data-variant=danger]{background:var(--psi-inline-alert-bg-danger);border:1px solid var(--psi-inline-alert-border-danger)}._icon_16390_38{display:inline-flex;align-items:center}._iconNeutral_16390_43{color:var(--psi-inline-alert-icon-fg-neutral)}._iconSuccess_16390_44{color:var(--psi-inline-alert-icon-fg-success)}._iconWarning_16390_45{color:var(--psi-inline-alert-icon-fg-warning)}._iconDanger_16390_46{color:var(--psi-inline-alert-icon-fg-danger)}._body_16390_48{min-width:0}._body_16390_48>p{margin-block:0}._body_16390_48>p+p{margin-block-start:var(--psi-space-8)}._title_16390_62{display:block;font:var(--psi-text-14-20-medium)}._action_16390_67{display:inline-flex}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{@keyframes _skeleton-pulse_1yo7t_1{0%{opacity:1}to{opacity:.45}}._skeleton_1yo7t_12{width:100%;box-sizing:border-box;animation:_skeleton-pulse_1yo7t_1 var(--psi-duration-600) var(--psi-ease-in-out) infinite alternate}._skeleton_1yo7t_12[data-variant=block]{border-radius:var(--psi-skeleton-radius);background:var(--psi-skeleton-bg)}._skeleton_1yo7t_12[data-size="24"]{height:var(--psi-size-24)}._skeleton_1yo7t_12[data-size="32"]{height:var(--psi-size-32)}._skeleton_1yo7t_12[data-size="40"]{height:var(--psi-size-40)}._skeleton_1yo7t_12[data-size="48"]{height:var(--psi-size-48)}._line_1yo7t_28{display:block;padding-block:var(--psi-space-6);margin-block:var(--psi-space-4);border-radius:var(--psi-skeleton-radius);background:var(--psi-skeleton-bg)}._line_1yo7t_28:last-child:not(:first-child){width:60%}@media(prefers-reduced-motion:reduce){._skeleton_1yo7t_12{animation:none}}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._tabs_1x9om_8{display:flex;flex-direction:column;gap:var(--psi-space-16)}._tabs_1x9om_8[data-orientation=vertical]{flex-direction:row;gap:var(--psi-space-24)}._list_1x9om_21{display:flex;flex-wrap:wrap;gap:var(--psi-space-4);border-bottom:1px solid var(--psi-tabs-list-border)}._tabs_1x9om_8[data-orientation=vertical] ._list_1x9om_21{flex-direction:column;flex-wrap:nowrap;border-bottom:none;border-inline-start:1px solid var(--psi-tabs-list-border)}._tab_1x9om_8{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;cursor:pointer;height:var(--psi-tabs-40-height);padding-inline:var(--psi-tabs-40-padding-x);font:var(--psi-text-14-20-medium);color:var(--psi-tabs-fg);transition:color var(--psi-duration-150) var(--psi-ease-standard)}._tab_1x9om_8:hover:not([aria-disabled=true]){background:var(--psi-tabs-bg-hover)}._tab_1x9om_8:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tabs-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._tab_1x9om_8[aria-disabled=true]{color:var(--psi-tabs-fg-disabled);cursor:default}._tab_1x9om_8[aria-selected=true]{color:var(--psi-tabs-fg-selected)}._tab_1x9om_8[aria-selected=true]:after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--psi-tabs-indicator)}._tabs_1x9om_8[data-orientation=vertical] ._tab_1x9om_8{text-align:start}._tabs_1x9om_8[data-orientation=vertical] ._tab_1x9om_8[aria-selected=true]:after{inset-inline:auto;inset-block:0;inset-inline-start:-1px;width:2px;height:auto}._panel_1x9om_99{min-width:0}._panel_1x9om_99:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tabs-focus-ring);outline-offset:var(--psi-focus-ring-offset)}}
1
+ @layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._button_1rxq8_3{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--psi-button-radius);cursor:pointer;font-family:var(--psi-font-sans);white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none;transition:background-color var(--psi-duration-150) var(--psi-ease-standard),color var(--psi-duration-150) var(--psi-ease-standard)}._button_1rxq8_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-button-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._button_1rxq8_3:disabled{opacity:.4;cursor:not-allowed}._button_1rxq8_3>span{max-inline-size:var(--psi-button-label-max-width);overflow:hidden;text-overflow:ellipsis;flex:none}._button_1rxq8_3._disabled_1rxq8_45{opacity:.4;cursor:not-allowed;pointer-events:none}._size24_1rxq8_70{height:var(--psi-button-24-height);padding-inline:var(--psi-button-24-padding-inline);gap:var(--psi-button-24-gap);font:var(--psi-button-font, var(--psi-button-24-font))}._size24_1rxq8_70:has(>svg:first-child){padding-inline-start:var(--psi-button-24-padding-inline-icon)}._size24_1rxq8_70:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-24-padding-inline-icon)}._size24_1rxq8_70>svg{inline-size:var(--psi-button-24-icon-size);block-size:var(--psi-button-24-icon-size);flex:none}._size32_1rxq8_88{height:var(--psi-button-32-height);padding-inline:var(--psi-button-32-padding-inline);gap:var(--psi-button-32-gap);font:var(--psi-button-font, var(--psi-button-32-font))}._size32_1rxq8_88:has(>svg:first-child){padding-inline-start:var(--psi-button-32-padding-inline-icon)}._size32_1rxq8_88:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-32-padding-inline-icon)}._size32_1rxq8_88>svg{inline-size:var(--psi-button-32-icon-size);block-size:var(--psi-button-32-icon-size);flex:none}._size40_1rxq8_106{height:var(--psi-button-40-height);padding-inline:var(--psi-button-40-padding-inline);gap:var(--psi-button-40-gap);font:var(--psi-button-font, var(--psi-button-40-font))}._size40_1rxq8_106:has(>svg:first-child){padding-inline-start:var(--psi-button-40-padding-inline-icon)}._size40_1rxq8_106:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-40-padding-inline-icon)}._size40_1rxq8_106>svg{inline-size:var(--psi-button-40-icon-size);block-size:var(--psi-button-40-icon-size);flex:none}._size48_1rxq8_124{height:var(--psi-button-48-height);padding-inline:var(--psi-button-48-padding-inline);gap:var(--psi-button-48-gap);font:var(--psi-button-font, var(--psi-button-48-font))}._size48_1rxq8_124:has(>svg:first-child){padding-inline-start:var(--psi-button-48-padding-inline-icon)}._size48_1rxq8_124:has(>svg:last-child:not(:first-child)){padding-inline-end:var(--psi-button-48-padding-inline-icon)}._size48_1rxq8_124>svg{inline-size:var(--psi-button-48-icon-size);block-size:var(--psi-button-48-icon-size);flex:none}._accent_1rxq8_145{background:var(--psi-button-accent-bg);color:var(--psi-button-accent-fg)}._accent_1rxq8_145:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-bg-hover)}._accent_1rxq8_145:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-bg-active)}._accentSubtle_1rxq8_157{background:var(--psi-button-accent-subtle-bg);color:var(--psi-button-accent-subtle-fg)}._accentSubtle_1rxq8_157:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-subtle-bg-hover)}._accentSubtle_1rxq8_157:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-accent-subtle-bg-active)}._neutral_1rxq8_169{background:var(--psi-button-neutral-bg);color:var(--psi-button-neutral-fg)}._neutral_1rxq8_169:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-bg-hover)}._neutral_1rxq8_169:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-bg-active)}._neutralSubtle_1rxq8_181{background:var(--psi-button-neutral-subtle-bg);color:var(--psi-button-neutral-subtle-fg)}._neutralSubtle_1rxq8_181:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-subtle-bg-hover)}._neutralSubtle_1rxq8_181:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-neutral-subtle-bg-active)}._ghost_1rxq8_193{background:var(--psi-button-ghost-bg);color:var(--psi-button-ghost-fg)}._ghost_1rxq8_193:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-ghost-bg-hover)}._ghost_1rxq8_193:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-ghost-bg-active)}._danger_1rxq8_205{background:var(--psi-button-danger-bg);color:var(--psi-button-danger-fg)}._danger_1rxq8_205:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-bg-hover)}._danger_1rxq8_205:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-bg-active)}._dangerSubtle_1rxq8_217{background:var(--psi-button-danger-subtle-bg);color:var(--psi-button-danger-subtle-fg)}._dangerSubtle_1rxq8_217:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-subtle-bg-hover)}._dangerSubtle_1rxq8_217:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-danger-subtle-bg-active)}._outline_1rxq8_229{background:var(--psi-button-outline-bg);color:var(--psi-button-outline-fg);border:1px solid var(--psi-button-outline-border)}._outline_1rxq8_229:hover:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-outline-bg-hover);color:var(--psi-button-outline-fg-hover);border-color:transparent}._outline_1rxq8_229:active:not(:disabled):not(._disabled_1rxq8_45){background:var(--psi-button-outline-bg-active)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._iconButton_1q4hx_3{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--psi-button-radius);cursor:pointer;padding:0;text-decoration:none;-webkit-user-select:none;user-select:none;transition:background-color var(--psi-duration-150) var(--psi-ease-standard),color var(--psi-duration-150) var(--psi-ease-standard)}._iconButton_1q4hx_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-button-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._iconButton_1q4hx_3:disabled{opacity:.4;cursor:not-allowed}._iconButton_1q4hx_3._disabled_1q4hx_29{opacity:.4;cursor:not-allowed;pointer-events:none}._size24_1q4hx_37{width:var(--psi-button-24-height);height:var(--psi-button-24-height)}._size32_1q4hx_42{width:var(--psi-button-32-height);height:var(--psi-button-32-height)}._size40_1q4hx_47{width:var(--psi-button-40-height);height:var(--psi-button-40-height)}._size48_1q4hx_52{width:var(--psi-button-48-height);height:var(--psi-button-48-height)}._accent_1q4hx_60{background:var(--psi-button-accent-bg);color:var(--psi-button-accent-fg)}._accent_1q4hx_60:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-accent-bg-hover)}._accent_1q4hx_60:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-accent-bg-active)}._neutral_1q4hx_72{background:var(--psi-button-neutral-bg);color:var(--psi-button-neutral-fg)}._neutral_1q4hx_72:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-neutral-bg-hover)}._neutral_1q4hx_72:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-neutral-bg-active)}._ghost_1q4hx_84{background:var(--psi-button-ghost-bg);color:var(--psi-button-ghost-fg)}._ghost_1q4hx_84:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-ghost-bg-hover)}._ghost_1q4hx_84:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-ghost-bg-active)}._danger_1q4hx_96{background:var(--psi-button-danger-bg);color:var(--psi-button-danger-fg)}._danger_1q4hx_96:hover:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-danger-bg-hover)}._danger_1q4hx_96:active:not(:disabled):not(._disabled_1q4hx_29){background:var(--psi-button-danger-bg-active)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._card_1btb3_1{background:var(--psi-card-bg);border:1px solid var(--psi-card-border);border-radius:var(--psi-card-radius);overflow:hidden}._stacked_1btb3_8{display:flex;flex-direction:column;gap:var(--psi-card-gap)}._featured_1btb3_10{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--psi-card-gap);align-items:start}@media(max-width:960px){._featured_1btb3_10{grid-template-columns:1fr}}._media_1btb3_22{min-width:0}._body_1btb3_23{min-width:0;display:flex;flex-direction:column;gap:var(--psi-card-gap);padding:var(--psi-card-gap)}._hoverLift_1btb3_31{transition:transform var(--psi-duration-350) var(--psi-ease-standard)}._hoverLift_1btb3_31:hover{transform:translateY(-6px)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._panel_jn8w4_1{background:var(--psi-panel-bg);border:1px solid var(--psi-panel-border);border-radius:var(--psi-panel-radius);padding:var(--psi-panel-padding)}._padding16_jn8w4_8{padding:var(--psi-space-16)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._list_1lh3q_8{display:flex;flex-direction:column;gap:var(--psi-space-12);margin:var(--psi-space-0)}._list_1lh3q_8[data-gap="8"]{gap:var(--psi-space-8)}._list_1lh3q_8[data-gap="16"]{gap:var(--psi-space-16)}._item_1lh3q_26{display:flex;flex-direction:column;gap:var(--psi-space-4);min-width:0}._list_1lh3q_8[data-layout=inline] ._item_1lh3q_26{display:grid;grid-template-columns:auto 1fr;column-gap:var(--psi-space-16);row-gap:var(--psi-space-0);align-items:start}._term_1lh3q_44{color:var(--psi-description-list-term-fg);font:var(--psi-text-14-20-medium);min-width:0}._value_1lh3q_50{color:var(--psi-description-list-value-fg);font:var(--psi-text-14-20-regular);margin:var(--psi-space-0);min-width:0;overflow-wrap:anywhere}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._navbar_1eh60_1{font:var(--psi-text-14-20-medium);color:var(--psi-navbar-fg);position:sticky;top:0;z-index:var(--psi-z-nav);background:var(--psi-navbar-bg);backdrop-filter:blur(var(--psi-navbar-blur));-webkit-backdrop-filter:blur(var(--psi-navbar-blur));border-bottom:var(--psi-navbar-border-width) solid var(--psi-navbar-border)}._inner_1eh60_15{display:flex;align-items:center;gap:var(--psi-space-24);height:var(--psi-navbar-height)}._fluid_1eh60_23{padding-inline:var(--psi-navbar-gutter)}._brand_1eh60_25{display:flex;align-items:center}._links_1eh60_26{display:flex;align-items:center;gap:var(--psi-space-20);margin-inline-start:auto}._links_1eh60_26 a,._brand_1eh60_25 a{text-decoration:none;transition:color var(--psi-duration-150) var(--psi-ease-soft)}._links_1eh60_26 a{color:var(--psi-navbar-link-fg)}._links_1eh60_26 a:hover,._brand_1eh60_25 a{color:var(--psi-navbar-link-fg-hover)}._links_1eh60_26 a:focus-visible,._brand_1eh60_25 a:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-navbar-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._actions_1eh60_56{display:flex;align-items:center;gap:var(--psi-space-8)}._brand_1eh60_25+._actions_1eh60_56,._actions_1eh60_56:first-child{margin-inline-start:auto}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._skipLink_1fn0y_4{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}._skipLink_1fn0y_4:focus-visible{position:fixed;inset-block-start:0;inset-inline-start:0;margin:var(--psi-space-8);z-index:var(--psi-z-overlay);display:inline-flex;align-items:center;box-sizing:border-box;width:auto;height:var(--psi-size-32);padding-inline:var(--psi-space-12);overflow:visible;clip:auto;clip-path:none;background:var(--psi-skip-link-bg);color:var(--psi-skip-link-fg);border:1px solid var(--psi-skip-link-border);border-radius:var(--psi-skip-link-radius);font:var(--psi-text-14-20-medium);text-decoration:none;outline:var(--psi-focus-ring-width) solid var(--psi-skip-link-focus-ring);outline-offset:var(--psi-focus-ring-offset)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._navTree_1ktoe_7{display:block}._list_1ktoe_11,._groupList_1ktoe_12{display:flex;flex-direction:column;gap:var(--psi-space-2);margin:0;padding:0;list-style:none}._item_1ktoe_23 a{position:relative;display:flex;align-items:center;box-sizing:border-box;min-height:var(--psi-size-32);padding-block:var(--psi-space-4);padding-inline:var(--psi-space-12);border-radius:var(--psi-nav-tree-radius);color:var(--psi-nav-tree-item-fg);font:var(--psi-text-14-20-regular);text-decoration:none}._item_1ktoe_23 a:hover{background:var(--psi-nav-tree-item-bg-hover)}._item_1ktoe_23 a:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-nav-tree-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._item_1ktoe_23 a[aria-current=page]{background:var(--psi-nav-tree-item-bg-current);color:var(--psi-nav-tree-item-fg-current);font:var(--psi-text-14-20-medium)}._item_1ktoe_23 a[aria-current=page]:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:3px;border-radius:var(--psi-nav-tree-radius);background:var(--psi-nav-tree-indicator)}._item_1ktoe_23 a[aria-current=true]{color:var(--psi-nav-tree-item-fg-current);font:var(--psi-text-14-20-medium)}._groupButton_1ktoe_79{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:space-between;gap:var(--psi-space-8);box-sizing:border-box;width:100%;min-height:var(--psi-size-32);padding-block:var(--psi-space-4);padding-inline:var(--psi-space-12);border:0;border-radius:var(--psi-nav-tree-radius);background:none;color:var(--psi-nav-tree-group-fg);font:var(--psi-text-14-20-medium);text-align:start;cursor:pointer}._groupButton_1ktoe_79:hover{background:var(--psi-nav-tree-item-bg-hover)}._groupButton_1ktoe_79:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-nav-tree-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._groupLabel_1ktoe_108{min-width:0}._chevron_1ktoe_112{flex:none;transition:transform var(--psi-duration-150) var(--psi-ease-standard)}._groupButton_1ktoe_79[aria-expanded=true] ._chevron_1ktoe_112{transform:rotate(180deg)}._groupList_1ktoe_12{padding-inline-start:var(--psi-space-12);margin-block-start:var(--psi-space-2)}._groupList_1ktoe_12[hidden]{display:none}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._appShell_4veby_10{display:grid;grid-template-rows:auto 1fr;grid-template-columns:var(--psi-app-shell-sidebar-width) minmax(0,1fr);height:100dvh;background:var(--psi-app-shell-bg)}._sidebarClosed_4veby_20{grid-template-columns:minmax(0,1fr)}._header_4veby_24{grid-row:1;grid-column:1 / -1;min-width:0}._sidebar_4veby_20{grid-row:2;min-height:0;overflow:auto;padding:var(--psi-space-8);background:var(--psi-app-shell-sidebar-bg);color:var(--psi-app-shell-sidebar-fg)}._sidebar_4veby_20[hidden]{display:none}._main_4veby_47{grid-row:2;min-width:0;min-height:0;overflow:auto;background:var(--psi-app-shell-main-bg);border-start-start-radius:var(--psi-app-shell-main-radius)}._mainSquare_4veby_60{border-start-start-radius:0}._main_4veby_47:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-app-shell-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._frame_et4fc_1{overflow:hidden}._frame_et4fc_1>img,._frame_et4fc_1>video{width:100%;height:100%;object-fit:cover;display:block}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._field_x989o_1{display:grid;gap:var(--psi-field-gap);border:0;margin:0;padding:0;min-width:0}._label_x989o_10{font:var(--psi-text-14-20-medium);color:var(--psi-field-label-fg);padding:0;min-block-size:var(--psi-field-label-height)}._marker_x989o_19{color:var(--psi-field-marker-fg)}._requiredText_x989o_25{font:var(--psi-text-14-20-regular);color:var(--psi-field-required-text-fg)}._message_x989o_30{margin:0;font:var(--psi-text-12-16-regular);color:var(--psi-field-message-fg)}._invalid_x989o_36 ._message_x989o_30{color:var(--psi-field-error-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._dialog_qg38y_2{padding:0;border:1px solid var(--psi-dialog-border);border-radius:var(--psi-dialog-radius);background:var(--psi-dialog-bg);color:var(--psi-dialog-fg);max-width:calc(100vw - var(--psi-space-32))}._dialog_qg38y_2::backdrop{background:var(--psi-dialog-backdrop)}._dialog_qg38y_2:focus-visible,._panel_qg38y_20:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-dialog-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._dialog_qg38y_2[open]::backdrop{animation:_backdrop-enter_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _backdrop-enter_qg38y_1{0%{opacity:0}}._center_qg38y_42[open]{animation:_dialog-enter_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _dialog-enter_qg38y_1{0%{opacity:0;transform:scale(.97)}}._inlineStart_qg38y_50,._inlineEnd_qg38y_51{box-sizing:border-box;margin-block:0;height:100dvh;max-height:100dvh;max-width:100vw;border-radius:0}._inlineEnd_qg38y_51{margin-inline-start:auto;margin-inline-end:0;border-start-start-radius:var(--psi-dialog-radius);border-end-start-radius:var(--psi-dialog-radius)}._inlineStart_qg38y_50{margin-inline-start:0;margin-inline-end:auto;border-start-end-radius:var(--psi-dialog-radius);border-end-end-radius:var(--psi-dialog-radius)}._inlineEnd_qg38y_51[open]{animation:_drawer-enter-end_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}._inlineStart_qg38y_50[open]{animation:_drawer-enter-start_qg38y_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _drawer-enter-end_qg38y_1{0%{transform:translate(100%)}}@keyframes _drawer-enter-start_qg38y_1{0%{transform:translate(-100%)}}._w400_qg38y_100{width:400px}._w560_qg38y_101{width:560px}._w720_qg38y_102{width:720px}._panel_qg38y_20{display:grid;gap:var(--psi-space-16);padding:var(--psi-space-24)}._inlineStart_qg38y_50 ._panel_qg38y_20,._inlineEnd_qg38y_51 ._panel_qg38y_20{height:100%;overflow-y:auto;align-content:start}._header_qg38y_124{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--psi-space-12)}._title_qg38y_131{margin:0;font:var(--psi-text-18-28-medium);color:var(--psi-dialog-title-fg)}._footer_qg38y_137{display:flex;justify-content:flex-end;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._input_pmr7w_3{display:block;box-sizing:border-box;width:100%;border:1px solid var(--psi-input-border);border-radius:var(--psi-input-radius);background:var(--psi-input-bg);color:var(--psi-input-fg);font-family:var(--psi-font-sans);transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._input_pmr7w_3::placeholder{color:var(--psi-input-placeholder)}._input_pmr7w_3:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-input-border-hover)}._input_pmr7w_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-input-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._input_pmr7w_3:disabled{opacity:.4;cursor:not-allowed}._size24_pmr7w_43{height:var(--psi-input-24-height);padding-inline:var(--psi-input-24-padding-inline);font:var(--psi-input-24-font)}._size32_pmr7w_49{height:var(--psi-input-32-height);padding-inline:var(--psi-input-32-padding-inline);font:var(--psi-input-32-font)}._size40_pmr7w_55{height:var(--psi-input-40-height);padding-inline:var(--psi-input-40-padding-inline);font:var(--psi-input-40-font)}._size48_pmr7w_61{height:var(--psi-input-48-height);padding-inline:var(--psi-input-48-padding-inline);font:var(--psi-input-48-font)}._error_pmr7w_69{border-color:var(--psi-input-border-error)}._error_pmr7w_69:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-input-border-error)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._select_1eqz1_3{display:block;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--psi-select-border);border-radius:var(--psi-select-radius);background-color:var(--psi-select-bg);background-image:linear-gradient(45deg,transparent calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% + .75px),transparent calc(50% + .75px)),linear-gradient(135deg,transparent calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% - .75px),var(--psi-select-chevron-fg) calc(50% + .75px),transparent calc(50% + .75px));background-size:4px 4px;background-repeat:no-repeat;color:var(--psi-select-fg);font-family:var(--psi-font-sans);cursor:pointer;transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._select_1eqz1_3:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-select-border-hover)}._select_1eqz1_3:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-select-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._select_1eqz1_3:disabled{opacity:.4;cursor:not-allowed}._size24_1eqz1_57{height:var(--psi-select-24-height);padding-inline-start:var(--psi-select-24-padding-inline);padding-inline-end:var(--psi-select-24-padding-inline-end);background-position:right calc(var(--psi-select-24-chevron-offset) + 6px) center,right calc(var(--psi-select-24-chevron-offset) + 2px) center;font:var(--psi-select-24-font)}._size32_1eqz1_67{height:var(--psi-select-32-height);padding-inline-start:var(--psi-select-32-padding-inline);padding-inline-end:var(--psi-select-32-padding-inline-end);background-position:right calc(var(--psi-select-32-chevron-offset) + 6px) center,right calc(var(--psi-select-32-chevron-offset) + 2px) center;font:var(--psi-select-32-font)}._size40_1eqz1_77{height:var(--psi-select-40-height);padding-inline-start:var(--psi-select-40-padding-inline);padding-inline-end:var(--psi-select-40-padding-inline-end);background-position:right calc(var(--psi-select-40-chevron-offset) + 6px) center,right calc(var(--psi-select-40-chevron-offset) + 2px) center;font:var(--psi-select-40-font)}._size48_1eqz1_87{height:var(--psi-select-48-height);padding-inline-start:var(--psi-select-48-padding-inline);padding-inline-end:var(--psi-select-48-padding-inline-end);background-position:right calc(var(--psi-select-48-chevron-offset) + 6px) center,right calc(var(--psi-select-48-chevron-offset) + 2px) center;font:var(--psi-select-48-font)}._error_1eqz1_99{border-color:var(--psi-select-border-error)}._error_1eqz1_99:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-select-border-error)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._label_10kne_3{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-checkbox-fg)}._disabled_10kne_13{opacity:.4;cursor:not-allowed}._indicator_10kne_26{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;border:1px solid var(--psi-checkbox-box-border);border-radius:var(--psi-checkbox-box-radius);background:var(--psi-checkbox-box-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard),border-color var(--psi-duration-150) var(--psi-ease-standard)}._input_10kne_42:checked+._indicator_10kne_26{background:var(--psi-checkbox-box-bg-checked);border-color:var(--psi-checkbox-box-border-checked)}._input_10kne_42:checked+._indicator_10kne_26:after{content:"";display:block;width:4px;height:8px;color:var(--psi-checkbox-check-fg);border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-.5px,-.5px)}._input_10kne_42:indeterminate+._indicator_10kne_26{background:var(--psi-checkbox-box-bg-checked);border-color:var(--psi-checkbox-box-border-checked)}._input_10kne_42:indeterminate+._indicator_10kne_26:after{content:"";display:block;width:8px;height:2px;border:0;border-radius:1px;color:var(--psi-checkbox-check-fg);background:currentColor;transform:none}._input_10kne_42[aria-invalid=true]:not(:checked):not(:indeterminate)+._indicator_10kne_26{border-color:var(--psi-checkbox-box-border-error)}._input_10kne_42:focus-visible+._indicator_10kne_26{outline:var(--psi-focus-ring-width) solid var(--psi-checkbox-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._text_10kne_97{color:var(--psi-checkbox-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._label_yv464_3{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-switch-fg)}._disabled_yv464_13{opacity:.4;cursor:not-allowed}._track_yv464_26{position:relative;display:inline-flex;align-items:center;width:36px;height:20px;flex-shrink:0;border-radius:var(--psi-radius-full);background:var(--psi-switch-track-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard)}._input_yv464_38:checked+._track_yv464_26{background:var(--psi-switch-track-bg-checked)}._input_yv464_38:focus-visible+._track_yv464_26{outline:var(--psi-focus-ring-width) solid var(--psi-switch-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._thumb_yv464_50{position:absolute;width:16px;height:16px;border-radius:var(--psi-radius-full);background:var(--psi-switch-thumb-bg);left:2px;transition:left var(--psi-duration-150) var(--psi-ease-standard);box-shadow:0 1px 2px #00000029}._input_yv464_38:checked+._track_yv464_26 ._thumb_yv464_50{left:18px}._text_yv464_67{color:var(--psi-switch-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._stack_49uys_4{display:flex;flex-direction:column}._gap4_49uys_9{gap:var(--psi-space-4)}._gap8_49uys_10{gap:var(--psi-space-8)}._gap12_49uys_11{gap:var(--psi-space-12)}._gap16_49uys_12{gap:var(--psi-space-16)}._gap24_49uys_13{gap:var(--psi-space-24)}._gap32_49uys_14{gap:var(--psi-space-32)}._alignStart_49uys_16{align-items:flex-start}._alignCenter_49uys_17{align-items:center}._alignEnd_49uys_18{align-items:flex-end}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._text_14u60_4{margin:0;color:var(--psi-text-fg)}._s12Regular_14u60_9{font:var(--psi-text-12-16-regular)}._s12Medium_14u60_10{font:var(--psi-text-12-16-medium)}._s14Regular_14u60_11{font:var(--psi-text-14-20-regular)}._s14Medium_14u60_12{font:var(--psi-text-14-20-medium)}._s16Regular_14u60_13{font:var(--psi-text-16-24-regular)}._s16Medium_14u60_14{font:var(--psi-text-16-24-medium)}._s18Regular_14u60_15{font:var(--psi-text-18-28-regular)}._s18Medium_14u60_16{font:var(--psi-text-18-28-medium)}._secondary_14u60_18{color:var(--psi-text-fg-secondary)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._wrap_1twws_6{display:grid;gap:var(--psi-space-4)}._textarea_1twws_11{display:block;box-sizing:border-box;width:100%;min-width:0;padding-block:var(--psi-space-6);padding-inline:var(--psi-textarea-padding-inline);border:1px solid var(--psi-textarea-border);border-radius:var(--psi-textarea-radius);background:var(--psi-textarea-bg);color:var(--psi-textarea-fg);font:var(--psi-textarea-font);font-family:var(--psi-font-sans);resize:vertical;transition:border-color var(--psi-duration-150) var(--psi-ease-standard),outline var(--psi-duration-150) var(--psi-ease-standard)}._textarea_1twws_11::placeholder{color:var(--psi-textarea-placeholder)}._textarea_1twws_11:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-textarea-border-hover)}._textarea_1twws_11:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-textarea-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset);border-color:transparent}._textarea_1twws_11:disabled{opacity:.4;cursor:not-allowed}._error_1twws_49,._error_1twws_49:hover:not(:disabled):not(:focus-visible){border-color:var(--psi-textarea-border-error)}._counter_1twws_55{justify-self:end;font:var(--psi-text-12-16-regular);font-variant-numeric:tabular-nums;color:var(--psi-textarea-counter-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._group_wwg2k_5{display:flex;flex-direction:column;align-items:flex-start;gap:var(--psi-space-8)}._horizontal_wwg2k_12{flex-direction:row;flex-wrap:wrap;gap:var(--psi-space-16)}._label_wwg2k_18{display:inline-flex;align-items:center;gap:var(--psi-space-8);cursor:pointer;-webkit-user-select:none;user-select:none;font:var(--psi-text-14-20-regular);color:var(--psi-radio-group-fg)}._disabled_wwg2k_28{opacity:.4;cursor:not-allowed}._circle_wwg2k_35{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:16px;height:16px;flex-shrink:0;border:1px solid var(--psi-radio-group-circle-border);border-radius:var(--psi-radius-full);background:var(--psi-radio-group-circle-bg);transition:background-color var(--psi-duration-150) var(--psi-ease-standard),border-color var(--psi-duration-150) var(--psi-ease-standard)}._input_wwg2k_51:checked+._circle_wwg2k_35{background:var(--psi-radio-group-circle-bg-checked);border-color:var(--psi-radio-group-circle-border-checked)}._input_wwg2k_51:checked+._circle_wwg2k_35:after{content:"";display:block;width:6px;height:6px;border-radius:var(--psi-radius-full);color:var(--psi-radio-group-dot-fg);background:currentColor}._input_wwg2k_51[aria-invalid=true]:not(:checked)+._circle_wwg2k_35{border-color:var(--psi-radio-group-circle-border-error)}._input_wwg2k_51:focus-visible+._circle_wwg2k_35{outline:var(--psi-focus-ring-width) solid var(--psi-radio-group-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._text_wwg2k_79{color:var(--psi-radio-group-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._tag_1r2xw_3{display:inline-flex;align-items:center;gap:var(--psi-space-4);height:24px;padding-inline:var(--psi-space-8);border-radius:var(--psi-radius-full);font:var(--psi-text-12-16-medium);white-space:nowrap;-webkit-user-select:none;user-select:none}._dismiss_1r2xw_17{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:inherit;cursor:pointer;opacity:.7;margin-inline-start:var(--psi-space-2);margin-inline-end:calc(-1 * var(--psi-space-4));border-radius:var(--psi-radius-full)}._dismiss_1r2xw_17:hover{opacity:1}._dismiss_1r2xw_17:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tag-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._neutral_1r2xw_43{background:var(--psi-tag-neutral-bg);color:var(--psi-tag-neutral-fg)}._accent_1r2xw_48{background:var(--psi-tag-accent-bg);color:var(--psi-tag-accent-fg)}._success_1r2xw_53{background:var(--psi-tag-success-bg);color:var(--psi-tag-success-fg)}._warning_1r2xw_58{background:var(--psi-tag-warning-bg);color:var(--psi-tag-warning-fg)}._danger_1r2xw_63{background:var(--psi-tag-danger-bg);color:var(--psi-tag-danger-fg)}._neutralSubtle_1r2xw_70{background:var(--psi-tag-neutral-subtle-bg);color:var(--psi-tag-neutral-subtle-fg)}._accentSubtle_1r2xw_75{background:var(--psi-tag-accent-subtle-bg);color:var(--psi-tag-accent-subtle-fg)}._successSubtle_1r2xw_80{background:var(--psi-tag-success-subtle-bg);color:var(--psi-tag-success-subtle-fg)}._warningSubtle_1r2xw_85{background:var(--psi-tag-warning-subtle-bg);color:var(--psi-tag-warning-subtle-fg)}._dangerSubtle_1r2xw_90{background:var(--psi-tag-danger-subtle-bg);color:var(--psi-tag-danger-subtle-fg)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._wrapper_15o1w_3{position:relative;display:inline-flex}._tooltip_15o1w_10{position:absolute;z-index:var(--psi-z-tooltip);padding:var(--psi-space-4) var(--psi-space-8);border-radius:var(--psi-tooltip-radius);background:var(--psi-tooltip-bg);color:var(--psi-tooltip-fg);font:var(--psi-text-12-16-regular);white-space:nowrap}._tooltip_15o1w_10:before{content:"";position:absolute}._top_15o1w_32{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:var(--psi-space-4)}._top_15o1w_32:before{inset-inline:0;top:100%;bottom:calc(var(--psi-space-4) * -1)}._bottom_15o1w_45{top:100%;left:50%;transform:translate(-50%);margin-top:var(--psi-space-4)}._bottom_15o1w_45:before{inset-inline:0;bottom:100%;top:calc(var(--psi-space-4) * -1)}._left_15o1w_58{right:100%;top:50%;transform:translateY(-50%);margin-right:var(--psi-space-4)}._left_15o1w_58:before{inset-block:0;left:100%;right:calc(var(--psi-space-4) * -1)}._right_15o1w_71{left:100%;top:50%;transform:translateY(-50%);margin-left:var(--psi-space-4)}._right_15o1w_71:before{inset-block:0;right:100%;left:calc(var(--psi-space-4) * -1)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._toolbar_8bwkv_1{display:flex;flex-wrap:wrap;align-items:center}._gap8_8bwkv_7{gap:var(--psi-space-8)}._gap12_8bwkv_8{gap:var(--psi-space-12)}._gap16_8bwkv_9{gap:var(--psi-space-16)}._alignEnd_8bwkv_13{align-items:flex-end}._alignStart_8bwkv_19{align-items:flex-start}._alignStart_8bwkv_19>:is(button,a){margin-block-start:var(--psi-toolbar-action-offset)}._toolbar_8bwkv_1>input,._toolbar_8bwkv_1>select{width:var(--psi-toolbar-control-width)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._trigger_pivae_4{display:inline-flex;width:fit-content}._menu_pivae_16{min-width:180px;margin:var(--psi-space-4);padding:var(--psi-space-4);border:1px solid var(--psi-menu-border);border-radius:var(--psi-menu-radius);background:var(--psi-menu-bg);color:var(--psi-menu-fg);font:var(--psi-text-14-20-regular)}._menu_pivae_16:not([data-open]):not(:popover-open){display:none}._item_pivae_37{display:flex;width:100%;align-items:center;padding:var(--psi-space-8) var(--psi-space-12);border:0;border-radius:var(--psi-radius-6);background:var(--psi-menu-item-bg);color:var(--psi-menu-item-fg);font:inherit;text-align:start;cursor:pointer}._item_pivae_37:hover{background:var(--psi-menu-item-bg-hover)}._item_pivae_37:active{background:var(--psi-menu-item-bg-active)}._item_pivae_37:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-menu-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._item_pivae_37[data-variant=danger]{color:var(--psi-menu-item-fg-danger)}._item_pivae_37[aria-disabled=true]{color:var(--psi-menu-item-fg-disabled);cursor:default}._item_pivae_37[aria-disabled=true]:hover{background:var(--psi-menu-item-bg)}._text_pivae_85{padding:var(--psi-space-8) var(--psi-space-12);color:var(--psi-menu-text-fg);cursor:default}._separator_pivae_93{height:0;margin:var(--psi-space-4) 0;border-top:1px solid var(--psi-menu-separator-border)}@supports (anchor-name: --x){._menu_pivae_16{position:fixed;margin:var(--psi-space-4);position-try-fallbacks:flip-block,flip-inline,flip-block flip-inline}._menu_pivae_16[data-placement=bottom-start]{position-area:block-end span-inline-end}._menu_pivae_16[data-placement=bottom-end]{position-area:block-end span-inline-start}._menu_pivae_16[data-placement=top-start]{position-area:block-start span-inline-end}._menu_pivae_16[data-placement=top-end]{position-area:block-start span-inline-start}}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._table_1maek_3{width:100%;border-collapse:collapse;background:var(--psi-table-bg);color:var(--psi-table-fg);font:var(--psi-text-14-20-regular);border:1px solid var(--psi-table-border);border-radius:var(--psi-table-radius)}._caption_1maek_19{caption-side:top;text-align:start;padding-block:var(--psi-space-8);color:var(--psi-table-fg);font:var(--psi-text-14-20-medium)}._captionDetail_1maek_27{display:block;color:var(--psi-table-header-fg);font:var(--psi-text-12-16-regular)}._caption_1maek_19:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-table-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._headerCell_1maek_38{color:var(--psi-table-header-fg);font:var(--psi-text-14-20-medium);text-align:start}._cell_1maek_44,._headerCell_1maek_38{border-bottom:1px solid var(--psi-table-cell-border)}._rowHeader_1maek_51{font:var(--psi-text-14-20-medium);text-align:start}._cell_1maek_44[data-numeric],._headerCell_1maek_38[data-numeric]{text-align:end;font-variant-numeric:var(--psi-font-variant-numeric)}._sortButton_1maek_62{display:inline-flex;align-items:center;gap:var(--psi-space-4);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}._sortButton_1maek_62:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-table-focus-ring);outline-offset:var(--psi-focus-ring-offset)}._sortIndicator_1maek_79{color:var(--psi-table-sort-indicator-fg)}._table_1maek_3[data-size="32"] ._cell_1maek_44,._table_1maek_3[data-size="32"] ._headerCell_1maek_38{height:var(--psi-table-32-row-height);padding-inline:var(--psi-table-32-cell-padding-x)}._table_1maek_3[data-size="32"] ._caption_1maek_19{padding-inline:var(--psi-table-32-cell-padding-x)}._table_1maek_3[data-size="40"] ._cell_1maek_44,._table_1maek_3[data-size="40"] ._headerCell_1maek_38{height:var(--psi-table-40-row-height);padding-inline:var(--psi-table-40-cell-padding-x)}._table_1maek_3[data-size="40"] ._caption_1maek_19{padding-inline:var(--psi-table-40-cell-padding-x)}._table_1maek_3[data-size="48"] ._cell_1maek_44,._table_1maek_3[data-size="48"] ._headerCell_1maek_38{height:var(--psi-table-48-row-height);padding-inline:var(--psi-table-48-cell-padding-x)}._table_1maek_3[data-size="48"] ._caption_1maek_19{padding-inline:var(--psi-table-48-cell-padding-x)}._table_1maek_3[data-size] ._selectCell_1maek_123{width:1%;padding-inline-end:0}._body_1maek_130 ._row_1maek_51:hover{background:var(--psi-table-row-bg-hover)}._body_1maek_130 ._row_1maek_51[data-selected]:hover,._row_1maek_51[data-selected]{background:var(--psi-table-row-bg-selected)}._row_1maek_51{background:var(--psi-table-row-bg)}._sticky_1maek_155 ._headerCell_1maek_38{position:sticky;inset-block-start:0;z-index:var(--psi-z-sticky);background:var(--psi-table-bg);box-shadow:inset 0 -1px 0 var(--psi-table-cell-border)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._nav_166vs_6{display:flex;align-items:center;gap:var(--psi-space-4)}._ellipsis_166vs_12{padding-inline:var(--psi-space-4)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._nav_jbhk1_5{display:inline-flex;align-items:center;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._toast_1gxg8_10{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--psi-space-12);min-width:280px;max-width:420px;padding:var(--psi-space-12) var(--psi-space-16);border:1px solid var(--psi-toast-border);border-radius:var(--psi-toast-radius);background:var(--psi-toast-bg);color:var(--psi-toast-fg);font:var(--psi-text-14-20-regular);animation:_toast-enter_1gxg8_1 var(--psi-duration-200) var(--psi-ease-soft)}@keyframes _toast-enter_1gxg8_1{0%{opacity:0;transform:translateY(8px)}}._icon_1gxg8_39{display:inline-flex;align-items:center}._iconNeutral_1gxg8_44{color:var(--psi-toast-icon-fg-neutral)}._iconSuccess_1gxg8_45{color:var(--psi-toast-icon-fg-success)}._iconWarning_1gxg8_46{color:var(--psi-toast-icon-fg-warning)}._iconDanger_1gxg8_47{color:var(--psi-toast-icon-fg-danger)}._body_1gxg8_51{min-width:0}._action_1gxg8_55{display:inline-flex}._region_1gxg8_61{position:fixed;inset:auto;margin:0;padding:var(--psi-space-16);border:0;background:none;overflow:visible;pointer-events:none;display:flex;flex-direction:column;gap:var(--psi-space-8);width:max-content;max-width:100%}._region_1gxg8_61[data-placement=top-start]{top:0;left:0;align-items:flex-start}._region_1gxg8_61[data-placement=top-end]{top:0;right:0;align-items:flex-end}._region_1gxg8_61[data-placement=bottom-start]{bottom:0;left:0;align-items:flex-start}._region_1gxg8_61[data-placement=bottom-end]{bottom:0;right:0;align-items:flex-end}._region_1gxg8_61[data-placement^=bottom] ._live_1gxg8_91{flex-direction:column-reverse}._live_1gxg8_91{display:flex;flex-direction:column;gap:var(--psi-space-8)}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._banner_15y1f_7{display:grid;grid-template-columns:auto 1fr auto auto;align-items:start;gap:var(--psi-space-12);width:100%;box-sizing:border-box;padding:var(--psi-space-12) var(--psi-space-16);color:var(--psi-banner-fg);font:var(--psi-text-14-20-regular)}._banner_15y1f_7[data-variant=neutral]{background:var(--psi-banner-bg-neutral)}._banner_15y1f_7[data-variant=success]{background:var(--psi-banner-bg-success)}._banner_15y1f_7[data-variant=warning]{background:var(--psi-banner-bg-warning)}._banner_15y1f_7[data-variant=danger]{background:var(--psi-banner-bg-danger)}._icon_15y1f_26{display:inline-flex;align-items:center}._iconNeutral_15y1f_31{color:var(--psi-banner-icon-fg-neutral)}._iconSuccess_15y1f_32{color:var(--psi-banner-icon-fg-success)}._iconWarning_15y1f_33{color:var(--psi-banner-icon-fg-warning)}._iconDanger_15y1f_34{color:var(--psi-banner-icon-fg-danger)}._body_15y1f_36{min-width:0}._body_15y1f_36>p{margin-block:0}._body_15y1f_36>p+p{margin-block-start:var(--psi-space-8)}._title_15y1f_50{display:block;font:var(--psi-text-14-20-medium)}._action_15y1f_55{display:inline-flex}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._inlineAlert_16390_7{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--psi-space-12);box-sizing:border-box;padding:var(--psi-space-12) var(--psi-space-16);border-radius:var(--psi-inline-alert-radius);color:var(--psi-inline-alert-fg);font:var(--psi-text-14-20-regular)}._inlineAlert_16390_7[data-variant=neutral]{background:var(--psi-inline-alert-bg-neutral);border:1px solid var(--psi-inline-alert-border-neutral)}._inlineAlert_16390_7[data-variant=success]{background:var(--psi-inline-alert-bg-success);border:1px solid var(--psi-inline-alert-border-success)}._inlineAlert_16390_7[data-variant=warning]{background:var(--psi-inline-alert-bg-warning);border:1px solid var(--psi-inline-alert-border-warning)}._inlineAlert_16390_7[data-variant=danger]{background:var(--psi-inline-alert-bg-danger);border:1px solid var(--psi-inline-alert-border-danger)}._icon_16390_38{display:inline-flex;align-items:center}._iconNeutral_16390_43{color:var(--psi-inline-alert-icon-fg-neutral)}._iconSuccess_16390_44{color:var(--psi-inline-alert-icon-fg-success)}._iconWarning_16390_45{color:var(--psi-inline-alert-icon-fg-warning)}._iconDanger_16390_46{color:var(--psi-inline-alert-icon-fg-danger)}._body_16390_48{min-width:0}._body_16390_48>p{margin-block:0}._body_16390_48>p+p{margin-block-start:var(--psi-space-8)}._title_16390_62{display:block;font:var(--psi-text-14-20-medium)}._action_16390_67{display:inline-flex}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{@keyframes _skeleton-pulse_1yo7t_1{0%{opacity:1}to{opacity:.45}}._skeleton_1yo7t_12{width:100%;box-sizing:border-box;animation:_skeleton-pulse_1yo7t_1 var(--psi-duration-600) var(--psi-ease-in-out) infinite alternate}._skeleton_1yo7t_12[data-variant=block]{border-radius:var(--psi-skeleton-radius);background:var(--psi-skeleton-bg)}._skeleton_1yo7t_12[data-size="24"]{height:var(--psi-size-24)}._skeleton_1yo7t_12[data-size="32"]{height:var(--psi-size-32)}._skeleton_1yo7t_12[data-size="40"]{height:var(--psi-size-40)}._skeleton_1yo7t_12[data-size="48"]{height:var(--psi-size-48)}._line_1yo7t_28{display:block;padding-block:var(--psi-space-6);margin-block:var(--psi-space-4);border-radius:var(--psi-skeleton-radius);background:var(--psi-skeleton-bg)}._line_1yo7t_28:last-child:not(:first-child){width:60%}@media(prefers-reduced-motion:reduce){._skeleton_1yo7t_12{animation:none}}}@layer psi.base,psi.theme,psi.components,psi.utilities;@layer psi.components{._tabs_1x9om_8{display:flex;flex-direction:column;gap:var(--psi-space-16)}._tabs_1x9om_8[data-orientation=vertical]{flex-direction:row;gap:var(--psi-space-24)}._list_1x9om_21{display:flex;flex-wrap:wrap;gap:var(--psi-space-4);border-bottom:1px solid var(--psi-tabs-list-border)}._tabs_1x9om_8[data-orientation=vertical] ._list_1x9om_21{flex-direction:column;flex-wrap:nowrap;border-bottom:none;border-inline-start:1px solid var(--psi-tabs-list-border)}._tab_1x9om_8{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;cursor:pointer;height:var(--psi-tabs-40-height);padding-inline:var(--psi-tabs-40-padding-x);font:var(--psi-text-14-20-medium);color:var(--psi-tabs-fg);transition:color var(--psi-duration-150) var(--psi-ease-standard)}._tab_1x9om_8:hover:not([aria-disabled=true]){background:var(--psi-tabs-bg-hover)}._tab_1x9om_8:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tabs-focus-ring);outline-offset:var(--psi-focus-ring-offset-inset)}._tab_1x9om_8[aria-disabled=true]{color:var(--psi-tabs-fg-disabled);cursor:default}._tab_1x9om_8[aria-selected=true]{color:var(--psi-tabs-fg-selected)}._tab_1x9om_8[aria-selected=true]:after{content:"";position:absolute;inset-inline:0;bottom:-1px;height:2px;background:var(--psi-tabs-indicator)}._tabs_1x9om_8[data-orientation=vertical] ._tab_1x9om_8{text-align:start}._tabs_1x9om_8[data-orientation=vertical] ._tab_1x9om_8[aria-selected=true]:after{inset-inline:auto;inset-block:0;inset-inline-start:-1px;width:2px;height:auto}._panel_1x9om_99{min-width:0}._panel_1x9om_99:focus-visible{outline:var(--psi-focus-ring-width) solid var(--psi-tabs-focus-ring);outline-offset:var(--psi-focus-ring-offset)}}
package/docs/AppShell.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- Generated by emit-docs.ts — do not edit. -->
2
2
  # AppShell
3
3
 
4
- The frame of an application (D88): a header row over a sidebar and a `<main>` that each scroll on their own, filling the viewport (`100dvh`). Because the header has a row of its own and `main` is its own scroller, nothing scrolls under the header, so a focused element is never obscured by it (WCAG 2.2 *Focus Not Obscured*) without `scroll-padding`. `main` carries `id={mainId}` and `tabIndex={-1}`: the target of a `SkipLink`, not a tab stop; focused by the skip link it draws the shared focus ring inside its box. A closed sidebar is `hidden`, not narrowed to icons; there is no responsive drawer and no stored open state, so this is a desktop frame. A page whose document must scroll as a whole does not use `AppShell`. Mount it at the root of the page with no margin or padding around it: it is `100dvh` tall, so anything around it makes the document scroll and slides the frame. Do not place a `ToastRegion` at `top-start` in an app with a skip link: the native top layer paints over the focused link.
4
+ The frame of an application (D88): a header row over a sidebar and a `<main>` that each scroll on their own, filling the viewport (`100dvh`). Because the header has a row of its own and `main` is its own scroller, nothing scrolls under the header, so a focused element is never obscured by it (WCAG 2.2 *Focus Not Obscured*) without `scroll-padding`. `main` carries `id={mainId}` and `tabIndex={-1}`: the target of a `SkipLink`, not a tab stop; focused by the skip link it draws the shared focus ring inside its box. A closed sidebar is `hidden`, not narrowed to icons; there is no responsive drawer and no stored open state, so this is a desktop frame. A page whose document must scroll as a whole does not use `AppShell`. Mount it at the root of the page with no margin or padding around it: it is `100dvh` tall, so anything around it makes the document scroll and slides the frame. Do not place a `ToastRegion` at `top-start` in an app with a skip link: the native top layer paints over the focused link. A theme can make `main` a surface beside a one-colour header and sidebar, with no CSS of the consumer's (D110): `--psi-app-shell-bg`, which must equal the canvas of the theme on the header and the sidebar, `--psi-app-shell-main-bg` and `--psi-app-shell-main-radius`. All three paint nothing by default. The corner is square unless a header and a sidebar both meet `main`. Put the header under that theme with `data-psi-theme` on the `NavBar`, whose rest props land on its `<header>`, and remove its line with `--psi-navbar-border-width: 0`.
5
5
 
6
6
  ## Props
7
7
 
@@ -25,7 +25,7 @@ The frame of an application (D88): a header row over a sidebar and a `<main>` th
25
25
  | Tab | The first stop is the skip link (when given), then the header, the sidebar's links and buttons, and the links of main, in document order. The shell adds no stop of its own: main has tabIndex={-1}. |
26
26
  | Enter (on the skip link) | Follows the fragment href: focus moves to main, drawing the shared focus ring inside its box, and the next Tab continues from main's first link. |
27
27
 
28
- A grid filling the viewport: the header sits in a row of its own and main is its own scroller, so nothing scrolls under the header and a focused element is never obscured by it (WCAG 2.2 Focus Not Obscured) without scroll-padding, which does nothing on a main that is not the document's scroller (D88). main carries id={mainId} and tabIndex={-1}, the skip link's target. A closed sidebar is `hidden`, so it leaves the layout and the accessibility tree while its id stays in the DOM for a toggle's aria-controls; the toggle's aria-expanded and sidebarOpen are wired by the consumer, since the shell is controlled and stores nothing. The sidebar is a div, not an aside: the NavTree inside is already the navigation landmark. sidebarTheme sets data-psi-theme on the sidebar alone, so its tokens re-resolve under that theme in a page that keeps its own; the sidebar paints --psi-bg-primary itself. Desktop frame only: no responsive drawer. Do not place a ToastRegion at top-start in an app with a skip link.
28
+ A grid filling the viewport: the header sits in a row of its own and main is its own scroller, so nothing scrolls under the header and a focused element is never obscured by it (WCAG 2.2 Focus Not Obscured) without scroll-padding, which does nothing on a main that is not the document's scroller (D88). main carries id={mainId} and tabIndex={-1}, the skip link's target. A closed sidebar is `hidden`, so it leaves the layout and the accessibility tree while its id stays in the DOM for a toggle's aria-controls; the toggle's aria-expanded and sidebarOpen are wired by the consumer, since the shell is controlled and stores nothing. The sidebar is a div, not an aside: the NavTree inside is already the navigation landmark. sidebarTheme sets data-psi-theme on the sidebar alone, so its tokens re-resolve under that theme in a page that keeps its own; the sidebar paints --psi-bg-primary itself. Desktop frame only: no responsive drawer. Do not place a ToastRegion at top-start in an app with a skip link. main's rounded corner (--psi-app-shell-main-radius, D110) keeps the skip link's ring: the inset outline follows the curve, measured in Chromium in LTR and RTL.
29
29
 
30
30
  ## Theming
31
31
 
package/docs/Checkbox.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- Generated by emit-docs.ts — do not edit. -->
2
2
  # Checkbox
3
3
 
4
- Native checkbox with a built-in label; for independent binary choices.
4
+ Native checkbox with a built-in label; for independent binary choices. In an invalid group Field it is aria-invalid, and an unchecked box marked aria-invalid outlines in the error colour (D108).
5
5
 
6
6
  ## Props
7
7
 
package/docs/NavBar.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- Generated by emit-docs.ts — do not edit. -->
2
2
  # NavBar
3
3
 
4
- Top navigation bar with brand, nav-link, and trailing-action slots.
4
+ Top navigation bar with brand, nav-link, and trailing-action slots. Plain text in a slot takes `--psi-navbar-fg`, the foreground of the theme on the bar, so `data-psi-theme` on the `NavBar` reaches it (D111).
5
5
 
6
6
  ## Props
7
7