@loworbitstudio/visor 0.1.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -0
- package/dist/CHANGELOG.json +600 -0
- package/dist/index.js +2558 -449
- package/dist/registry.json +661 -24
- package/dist/visor-manifest.json +3910 -480
- package/package.json +10 -3
package/dist/visor-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
3
|
-
"generated_at": "2026-04-
|
|
2
|
+
"version": "0.4.0",
|
|
3
|
+
"generated_at": "2026-04-28T22:06:10.255Z",
|
|
4
4
|
"components": {
|
|
5
5
|
"accessibility-specimen": {
|
|
6
6
|
"category": "specimen",
|
|
@@ -220,13 +220,14 @@
|
|
|
220
220
|
"default",
|
|
221
221
|
"destructive",
|
|
222
222
|
"success",
|
|
223
|
-
"warning"
|
|
223
|
+
"warning",
|
|
224
|
+
"info"
|
|
224
225
|
]
|
|
225
226
|
},
|
|
226
227
|
"props": [
|
|
227
228
|
{
|
|
228
229
|
"name": "variant",
|
|
229
|
-
"type": "'default' | 'destructive' | 'success' | 'warning'",
|
|
230
|
+
"type": "'default' | 'destructive' | 'success' | 'warning' | 'info'",
|
|
230
231
|
"default": "default"
|
|
231
232
|
}
|
|
232
233
|
],
|
|
@@ -334,13 +335,20 @@
|
|
|
334
335
|
"default",
|
|
335
336
|
"secondary",
|
|
336
337
|
"outline",
|
|
337
|
-
"destructive"
|
|
338
|
+
"destructive",
|
|
339
|
+
"success",
|
|
340
|
+
"warning",
|
|
341
|
+
"info",
|
|
342
|
+
"filled-destructive",
|
|
343
|
+
"filled-success",
|
|
344
|
+
"filled-warning",
|
|
345
|
+
"filled-info"
|
|
338
346
|
]
|
|
339
347
|
},
|
|
340
348
|
"props": [
|
|
341
349
|
{
|
|
342
350
|
"name": "variant",
|
|
343
|
-
"type": "\"default\" | \"secondary\" | \"outline\" | \"destructive\"",
|
|
351
|
+
"type": "\"default\" | \"secondary\" | \"outline\" | \"destructive\" | \"success\" | \"warning\" | \"info\" | \"filled-destructive\" | \"filled-success\" | \"filled-warning\" | \"filled-info\"",
|
|
344
352
|
"default": "\"default\""
|
|
345
353
|
}
|
|
346
354
|
],
|
|
@@ -378,7 +386,7 @@
|
|
|
378
386
|
"--text-success",
|
|
379
387
|
"--text-warning"
|
|
380
388
|
],
|
|
381
|
-
"example": "<Badge variant=\"default\">Active</Badge>\n<Badge variant=\"secondary\">Draft</Badge>\n<Badge variant=\"outline\">v2.1.0</Badge>\n<Badge variant=\"destructive\">Error</Badge>\n"
|
|
389
|
+
"example": "<Badge variant=\"default\">Active</Badge>\n<Badge variant=\"secondary\">Draft</Badge>\n<Badge variant=\"outline\">v2.1.0</Badge>\n<Badge variant=\"destructive\">Error</Badge>\n<Badge variant=\"success\">Published</Badge>\n<Badge variant=\"warning\">Pending</Badge>\n<Badge variant=\"info\">Beta</Badge>\n<Badge variant=\"filled-destructive\">Critical</Badge>\n"
|
|
382
390
|
},
|
|
383
391
|
"banner": {
|
|
384
392
|
"category": "feedback",
|
|
@@ -1393,6 +1401,7 @@
|
|
|
1393
1401
|
"--surface-card",
|
|
1394
1402
|
"--surface-interactive-default",
|
|
1395
1403
|
"--surface-interactive-hover",
|
|
1404
|
+
"--surface-popover",
|
|
1396
1405
|
"--text-primary",
|
|
1397
1406
|
"--text-secondary"
|
|
1398
1407
|
],
|
|
@@ -1484,6 +1493,7 @@
|
|
|
1484
1493
|
"--spacing-6",
|
|
1485
1494
|
"--surface-card",
|
|
1486
1495
|
"--surface-interactive-hover",
|
|
1496
|
+
"--surface-popover",
|
|
1487
1497
|
"--text-primary",
|
|
1488
1498
|
"--text-secondary",
|
|
1489
1499
|
"--text-tertiary"
|
|
@@ -1736,6 +1746,7 @@
|
|
|
1736
1746
|
"--surface-card",
|
|
1737
1747
|
"--surface-error-subtle",
|
|
1738
1748
|
"--surface-interactive-hover",
|
|
1749
|
+
"--surface-popover",
|
|
1739
1750
|
"--text-error",
|
|
1740
1751
|
"--text-primary",
|
|
1741
1752
|
"--text-secondary"
|
|
@@ -1950,11 +1961,80 @@
|
|
|
1950
1961
|
"--spacing-2",
|
|
1951
1962
|
"--spacing-3",
|
|
1952
1963
|
"--surface-card",
|
|
1964
|
+
"--surface-popover",
|
|
1953
1965
|
"--text-primary",
|
|
1954
1966
|
"--text-tertiary"
|
|
1955
1967
|
],
|
|
1956
1968
|
"example": "<DatePicker\n value={selectedDate}\n onChange={setSelectedDate}\n placeholder=\"Select a date\"\n/>\n\n<DatePicker\n value={dueDate}\n onChange={setDueDate}\n dateFormat=\"MM/dd/yyyy\"\n disabled={isReadOnly}\n/>\n"
|
|
1957
1969
|
},
|
|
1970
|
+
"date-range-picker": {
|
|
1971
|
+
"category": "form",
|
|
1972
|
+
"description": "A date range picker combining a trigger button with a two-month popover Calendar for start–end date selection.",
|
|
1973
|
+
"when_to_use": [
|
|
1974
|
+
"Date range input in forms (check-in/check-out, travel dates, billing period)",
|
|
1975
|
+
"Any field where users need to select both a start and end date from a calendar popup",
|
|
1976
|
+
"Compact range selection that doesn't take up inline space"
|
|
1977
|
+
],
|
|
1978
|
+
"when_not_to_use": [
|
|
1979
|
+
"Single date selection (use DatePicker)",
|
|
1980
|
+
"Always-visible range calendar display (use Calendar with mode=\"range\" inline)",
|
|
1981
|
+
"Date and time together (use a dedicated datetime picker)",
|
|
1982
|
+
"Free-form date text entry (use Input with date validation)"
|
|
1983
|
+
],
|
|
1984
|
+
"props": [
|
|
1985
|
+
{
|
|
1986
|
+
"name": "value",
|
|
1987
|
+
"type": "DateRange | undefined",
|
|
1988
|
+
"description": "Currently selected date range ({ from, to })"
|
|
1989
|
+
},
|
|
1990
|
+
{
|
|
1991
|
+
"name": "onChange",
|
|
1992
|
+
"type": "(range: DateRange) => void",
|
|
1993
|
+
"description": "Called when the range changes"
|
|
1994
|
+
},
|
|
1995
|
+
{
|
|
1996
|
+
"name": "placeholder",
|
|
1997
|
+
"type": "string",
|
|
1998
|
+
"default": "\"Pick a date range\""
|
|
1999
|
+
},
|
|
2000
|
+
{
|
|
2001
|
+
"name": "dateFormat",
|
|
2002
|
+
"type": "string",
|
|
2003
|
+
"default": "\"PPP\"",
|
|
2004
|
+
"description": "date-fns format string for displaying both endpoints"
|
|
2005
|
+
},
|
|
2006
|
+
{
|
|
2007
|
+
"name": "disabled",
|
|
2008
|
+
"type": "boolean",
|
|
2009
|
+
"default": "false"
|
|
2010
|
+
}
|
|
2011
|
+
],
|
|
2012
|
+
"dependencies": [
|
|
2013
|
+
"@radix-ui/react-popover",
|
|
2014
|
+
"date-fns",
|
|
2015
|
+
"@phosphor-icons/react"
|
|
2016
|
+
],
|
|
2017
|
+
"tokens_used": [
|
|
2018
|
+
"--border-default",
|
|
2019
|
+
"--border-focus",
|
|
2020
|
+
"--border-strong",
|
|
2021
|
+
"--focus-ring-offset",
|
|
2022
|
+
"--focus-ring-width",
|
|
2023
|
+
"--font-size-sm",
|
|
2024
|
+
"--motion-duration-fast",
|
|
2025
|
+
"--motion-easing-default",
|
|
2026
|
+
"--radius-lg",
|
|
2027
|
+
"--radius-md",
|
|
2028
|
+
"--shadow-md",
|
|
2029
|
+
"--spacing-2",
|
|
2030
|
+
"--spacing-3",
|
|
2031
|
+
"--surface-card",
|
|
2032
|
+
"--surface-popover",
|
|
2033
|
+
"--text-primary",
|
|
2034
|
+
"--text-tertiary"
|
|
2035
|
+
],
|
|
2036
|
+
"example": "<DateRangePicker\n value={range}\n onChange={setRange}\n placeholder=\"Select date range\"\n/>\n\n<DateRangePicker\n value={travelDates}\n onChange={setTravelDates}\n dateFormat=\"MM/dd/yyyy\"\n disabled={isReadOnly}\n/>\n"
|
|
2037
|
+
},
|
|
1958
2038
|
"dialog": {
|
|
1959
2039
|
"category": "overlay",
|
|
1960
2040
|
"description": "Modal overlay that requires user attention before returning to the page.",
|
|
@@ -2182,6 +2262,7 @@
|
|
|
2182
2262
|
"--surface-card",
|
|
2183
2263
|
"--surface-error-subtle",
|
|
2184
2264
|
"--surface-interactive-hover",
|
|
2265
|
+
"--surface-popover",
|
|
2185
2266
|
"--text-error",
|
|
2186
2267
|
"--text-primary",
|
|
2187
2268
|
"--text-secondary"
|
|
@@ -2914,6 +2995,7 @@
|
|
|
2914
2995
|
"--shadow-lg",
|
|
2915
2996
|
"--spacing-4",
|
|
2916
2997
|
"--surface-card",
|
|
2998
|
+
"--surface-popover",
|
|
2917
2999
|
"--text-primary"
|
|
2918
3000
|
],
|
|
2919
3001
|
"example": "<HoverCard>\n <HoverCardTrigger asChild>\n <a href=\"/user/jane\">@jane</a>\n </HoverCardTrigger>\n <HoverCardContent>\n <p><strong>Jane Smith</strong></p>\n <p>Product designer at Acme Corp</p>\n </HoverCardContent>\n</HoverCard>\n"
|
|
@@ -3364,6 +3446,7 @@
|
|
|
3364
3446
|
"--surface-card",
|
|
3365
3447
|
"--surface-error-subtle",
|
|
3366
3448
|
"--surface-interactive-hover",
|
|
3449
|
+
"--surface-popover",
|
|
3367
3450
|
"--text-error",
|
|
3368
3451
|
"--text-primary",
|
|
3369
3452
|
"--text-secondary"
|
|
@@ -3999,6 +4082,7 @@
|
|
|
3999
4082
|
"--shadow-lg",
|
|
4000
4083
|
"--spacing-4",
|
|
4001
4084
|
"--surface-card",
|
|
4085
|
+
"--surface-popover",
|
|
4002
4086
|
"--text-primary"
|
|
4003
4087
|
],
|
|
4004
4088
|
"example": "<Popover>\n <PopoverTrigger asChild>\n <Button variant=\"outline\">Open settings</Button>\n </PopoverTrigger>\n <PopoverContent>\n <p>Popover content here</p>\n </PopoverContent>\n</Popover>\n"
|
|
@@ -4312,7 +4396,7 @@
|
|
|
4312
4396
|
"--surface-card",
|
|
4313
4397
|
"--surface-interactive-default",
|
|
4314
4398
|
"--surface-interactive-hover",
|
|
4315
|
-
"--surface-
|
|
4399
|
+
"--surface-popover",
|
|
4316
4400
|
"--text-primary",
|
|
4317
4401
|
"--text-secondary"
|
|
4318
4402
|
],
|
|
@@ -4724,7 +4808,8 @@
|
|
|
4724
4808
|
"--motion-easing-default",
|
|
4725
4809
|
"--shadow-sm",
|
|
4726
4810
|
"--surface-card",
|
|
4727
|
-
"--surface-interactive-default"
|
|
4811
|
+
"--surface-interactive-default",
|
|
4812
|
+
"--surface-popover"
|
|
4728
4813
|
],
|
|
4729
4814
|
"example": "<Slider defaultValue={[50]} max={100} step={1} />\n\n<Slider defaultValue={[25, 75]} max={100} step={5} />\n"
|
|
4730
4815
|
},
|
|
@@ -5702,6 +5787,7 @@
|
|
|
5702
5787
|
"--surface-card",
|
|
5703
5788
|
"--surface-error-subtle",
|
|
5704
5789
|
"--surface-info-subtle",
|
|
5790
|
+
"--surface-popover",
|
|
5705
5791
|
"--surface-success-subtle",
|
|
5706
5792
|
"--surface-warning-subtle",
|
|
5707
5793
|
"--text-primary",
|
|
@@ -5908,572 +5994,1785 @@
|
|
|
5908
5994
|
"--text-primary"
|
|
5909
5995
|
],
|
|
5910
5996
|
"example": "<TypeSpecimen token=\"--font-size-xl\" label=\"xl\" sizePx={20} sampleText=\"Subsection heading\" />\n"
|
|
5911
|
-
}
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
"category": "admin",
|
|
5916
|
-
"description": "Drop-in admin overview composition — PageHeader, responsive stat grid, optional secondary region, and ActivityFeed with empty-state fallback. Composes existing admin compounds, nothing to configure.",
|
|
5917
|
-
"components_used": [
|
|
5918
|
-
"page-header",
|
|
5919
|
-
"stat-card",
|
|
5920
|
-
"activity-feed",
|
|
5921
|
-
"empty-state"
|
|
5922
|
-
],
|
|
5997
|
+
},
|
|
5998
|
+
"deck-card-grid": {
|
|
5999
|
+
"category": "deck",
|
|
6000
|
+
"description": "CSS grid layout for decks that arranges card children in 2–5 columns with staggered entrance animations.",
|
|
5923
6001
|
"when_to_use": [
|
|
5924
|
-
"
|
|
5925
|
-
"
|
|
5926
|
-
"Any dashboard needing a title, metrics, and a recent-activity feed"
|
|
6002
|
+
"Content slides displaying a grid of feature cards, team members, or value props",
|
|
6003
|
+
"Any slide where multiple items should appear in equal-width columns with staggered animation"
|
|
5927
6004
|
],
|
|
5928
6005
|
"when_not_to_use": [
|
|
5929
|
-
"
|
|
5930
|
-
"
|
|
5931
|
-
"Settings forms (use admin-settings-page)"
|
|
5932
|
-
]
|
|
5933
|
-
},
|
|
5934
|
-
"admin-detail-drawer": {
|
|
5935
|
-
"category": "admin",
|
|
5936
|
-
"description": "Right-side slide-out panel for viewing or editing a single record. Composes Sheet with a sticky save/cancel footer, async save handler with pending state, an unsaved-changes guard powered by ConfirmDialog, and sm/md/lg/xl width variants.",
|
|
5937
|
-
"components_used": [
|
|
5938
|
-
"sheet",
|
|
5939
|
-
"button",
|
|
5940
|
-
"confirm-dialog"
|
|
6006
|
+
"Outside of a <Slide> (stagger animation timing won't be synchronized)",
|
|
6007
|
+
"Grids needing unequal column widths or complex alignment"
|
|
5941
6008
|
],
|
|
5942
|
-
"
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
6009
|
+
"props": [
|
|
6010
|
+
{
|
|
6011
|
+
"name": "columns",
|
|
6012
|
+
"type": "2 | 3 | 4 | 5",
|
|
6013
|
+
"default": 3,
|
|
6014
|
+
"description": "Number of equal-width columns"
|
|
6015
|
+
}
|
|
5946
6016
|
],
|
|
5947
|
-
"
|
|
5948
|
-
"
|
|
5949
|
-
"Multi-step forms (use admin-wizard)",
|
|
5950
|
-
"Simple confirmation prompts (use ConfirmDialog directly)"
|
|
5951
|
-
]
|
|
5952
|
-
},
|
|
5953
|
-
"admin-list-page": {
|
|
5954
|
-
"category": "admin",
|
|
5955
|
-
"description": "CRUD list archetype composing PageHeader, FilterBar, DataTable, BulkActionBar, and EmptyState into a single drop-in page. Generic over row data type, supports controlled and uncontrolled search/selection/sorting/pagination, exposes a bulk actions slot that appears only when rows are selected.",
|
|
5956
|
-
"components_used": [
|
|
5957
|
-
"page-header",
|
|
5958
|
-
"filter-bar",
|
|
5959
|
-
"data-table",
|
|
5960
|
-
"bulk-action-bar",
|
|
5961
|
-
"empty-state"
|
|
6017
|
+
"dependencies": [
|
|
6018
|
+
"@loworbitstudio/visor-core"
|
|
5962
6019
|
],
|
|
6020
|
+
"tokens_used": [],
|
|
6021
|
+
"example": "<CardGrid columns={3}>\n <FeatureCard title=\"Speed\" description=\"...\" />\n <FeatureCard title=\"Quality\" description=\"...\" />\n <FeatureCard title=\"Scale\" description=\"...\" />\n</CardGrid>\n"
|
|
6022
|
+
},
|
|
6023
|
+
"deck-carousel-gallery": {
|
|
6024
|
+
"category": "deck",
|
|
6025
|
+
"description": "Inline image gallery for slides that opens a full-screen lightbox on click. Renders images in an equal-width horizontal row.",
|
|
5963
6026
|
"when_to_use": [
|
|
5964
|
-
"
|
|
5965
|
-
"Any
|
|
5966
|
-
"Pages that need bulk actions (archive, delete, export) on selected rows"
|
|
6027
|
+
"Slides showcasing work samples, screenshots, or photos in a horizontal strip",
|
|
6028
|
+
"Any slide where clicking an image should open it full-screen for closer inspection"
|
|
5967
6029
|
],
|
|
5968
6030
|
"when_not_to_use": [
|
|
5969
|
-
"
|
|
5970
|
-
"
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
"
|
|
5981
|
-
"
|
|
5982
|
-
"button",
|
|
5983
|
-
"confirm-dialog"
|
|
6031
|
+
"Long image sets (more than ~5 images causes the row to become too narrow)",
|
|
6032
|
+
"Slides where images should be decorative only with no lightbox interaction"
|
|
6033
|
+
],
|
|
6034
|
+
"props": [
|
|
6035
|
+
{
|
|
6036
|
+
"name": "slides",
|
|
6037
|
+
"type": "GallerySlide[]",
|
|
6038
|
+
"description": "Array of { src, alt, caption? } objects"
|
|
6039
|
+
}
|
|
6040
|
+
],
|
|
6041
|
+
"dependencies": [
|
|
6042
|
+
"@loworbitstudio/visor-core",
|
|
6043
|
+
"lightbox"
|
|
5984
6044
|
],
|
|
6045
|
+
"tokens_used": [],
|
|
6046
|
+
"example": "<CarouselGallery\n slides={[\n { src: \"/work/a.jpg\", alt: \"Project Alpha\", caption: \"Alpha\" },\n { src: \"/work/b.jpg\", alt: \"Project Beta\", caption: \"Beta\" },\n { src: \"/work/c.jpg\", alt: \"Project Gamma\", caption: \"Gamma\" },\n ]}\n/>\n"
|
|
6047
|
+
},
|
|
6048
|
+
"deck-closing-slide": {
|
|
6049
|
+
"category": "deck",
|
|
6050
|
+
"description": "Dark closing slide with centered tagline, subtitle, divider, and optional body text. The standard last slide for presentations.",
|
|
5985
6051
|
"when_to_use": [
|
|
5986
|
-
"
|
|
5987
|
-
"
|
|
5988
|
-
"Pages where some sections commit independently (per-section mode) or where all edits commit together (global mode)"
|
|
6052
|
+
"Final slide of any deck (thank-you, call-to-action, or contact information)",
|
|
6053
|
+
"Any deck that needs a simple, impactful closing screen"
|
|
5989
6054
|
],
|
|
5990
6055
|
"when_not_to_use": [
|
|
5991
|
-
"
|
|
5992
|
-
"
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
|
|
6056
|
+
"Mid-deck transitions (use a standard dark Slide instead)",
|
|
6057
|
+
"Closing slides that require complex custom content (build from Slide directly)"
|
|
6058
|
+
],
|
|
6059
|
+
"props": [
|
|
6060
|
+
{
|
|
6061
|
+
"name": "id",
|
|
6062
|
+
"type": "string",
|
|
6063
|
+
"default": "s-close"
|
|
6064
|
+
},
|
|
6065
|
+
{
|
|
6066
|
+
"name": "tagline",
|
|
6067
|
+
"type": "string",
|
|
6068
|
+
"default": "Thank you."
|
|
6069
|
+
},
|
|
6070
|
+
{
|
|
6071
|
+
"name": "subtitle",
|
|
6072
|
+
"type": "string",
|
|
6073
|
+
"description": "Short line below the tagline"
|
|
6074
|
+
},
|
|
6075
|
+
{
|
|
6076
|
+
"name": "body",
|
|
6077
|
+
"type": "string",
|
|
6078
|
+
"description": "Paragraph below the divider"
|
|
6079
|
+
},
|
|
6080
|
+
{
|
|
6081
|
+
"name": "extra",
|
|
6082
|
+
"type": "ReactNode",
|
|
6083
|
+
"description": "Custom content rendered below body (CTAs, links, etc.)"
|
|
6084
|
+
}
|
|
6085
|
+
],
|
|
6086
|
+
"dependencies": [
|
|
6087
|
+
"@loworbitstudio/visor-core"
|
|
6003
6088
|
],
|
|
6089
|
+
"tokens_used": [],
|
|
6090
|
+
"example": "<ClosingSlide\n tagline=\"Let's build something.\"\n subtitle=\"We'd love to hear from you.\"\n body=\"hello@loworbit.studio\"\n/>\n"
|
|
6091
|
+
},
|
|
6092
|
+
"deck-concept-slide": {
|
|
6093
|
+
"category": "deck",
|
|
6094
|
+
"description": "Slide with a looping background video and overlay, for showcasing concepts, product demos, or motion design. Content is layered above the video.",
|
|
6004
6095
|
"when_to_use": [
|
|
6005
|
-
"
|
|
6006
|
-
"
|
|
6007
|
-
"
|
|
6008
|
-
"Any multi-page admin area requiring breadcrumbs and a user menu"
|
|
6096
|
+
"Slides where a video loop reinforces the concept being presented",
|
|
6097
|
+
"Product or feature showcases where motion adds context",
|
|
6098
|
+
"Visual storytelling slides where a static image would be insufficient"
|
|
6009
6099
|
],
|
|
6010
6100
|
"when_not_to_use": [
|
|
6011
|
-
"
|
|
6012
|
-
"
|
|
6013
|
-
|
|
6014
|
-
|
|
6015
|
-
|
|
6016
|
-
|
|
6017
|
-
|
|
6018
|
-
|
|
6019
|
-
|
|
6020
|
-
|
|
6021
|
-
|
|
6022
|
-
|
|
6023
|
-
|
|
6101
|
+
"Slides where the video is primary content (use Slide with an embedded player)",
|
|
6102
|
+
"Environments where autoplay may be blocked (the video is decorative, content still renders)"
|
|
6103
|
+
],
|
|
6104
|
+
"props": [
|
|
6105
|
+
{
|
|
6106
|
+
"name": "id",
|
|
6107
|
+
"type": "string",
|
|
6108
|
+
"description": "Unique slide identifier"
|
|
6109
|
+
},
|
|
6110
|
+
{
|
|
6111
|
+
"name": "theme",
|
|
6112
|
+
"type": "'light' | 'dark'",
|
|
6113
|
+
"default": "light"
|
|
6114
|
+
},
|
|
6115
|
+
{
|
|
6116
|
+
"name": "video",
|
|
6117
|
+
"type": "string",
|
|
6118
|
+
"description": "Video source URL (mp4)"
|
|
6119
|
+
},
|
|
6120
|
+
{
|
|
6121
|
+
"name": "poster",
|
|
6122
|
+
"type": "string",
|
|
6123
|
+
"description": "Poster image shown before video loads"
|
|
6124
|
+
}
|
|
6125
|
+
],
|
|
6126
|
+
"dependencies": [
|
|
6127
|
+
"@loworbitstudio/visor-core"
|
|
6024
6128
|
],
|
|
6129
|
+
"tokens_used": [],
|
|
6130
|
+
"example": "<ConceptSlide\n id=\"s-concept\"\n theme=\"dark\"\n video=\"/video/demo.mp4\"\n poster=\"/video/demo-poster.jpg\"\n>\n <SlideHeader subtitle=\"Concept\" title=\"Reimagined\" />\n</ConceptSlide>\n"
|
|
6131
|
+
},
|
|
6132
|
+
"deck-context": {
|
|
6133
|
+
"category": "deck",
|
|
6134
|
+
"description": "React context provider that exposes slide navigation methods (goTo, navigateTo) to all descendants within a deck.",
|
|
6025
6135
|
"when_to_use": [
|
|
6026
|
-
"
|
|
6027
|
-
"
|
|
6028
|
-
"Any
|
|
6136
|
+
"Building custom deck controls that need to programmatically navigate slides",
|
|
6137
|
+
"Creating slide-aware child components that respond to navigation events",
|
|
6138
|
+
"Any component inside <DeckLayout> that calls useDeck()"
|
|
6029
6139
|
],
|
|
6030
6140
|
"when_not_to_use": [
|
|
6031
|
-
"
|
|
6032
|
-
"
|
|
6033
|
-
|
|
6034
|
-
|
|
6035
|
-
|
|
6036
|
-
|
|
6037
|
-
|
|
6038
|
-
|
|
6039
|
-
|
|
6040
|
-
"page-header",
|
|
6041
|
-
"stepper",
|
|
6042
|
-
"button",
|
|
6043
|
-
"confirm-dialog"
|
|
6141
|
+
"Outside of a <DeckLayout> wrapper (useDeck() will throw)",
|
|
6142
|
+
"Direct consumers of deck state — prefer useDeck() hook instead of referencing the context directly"
|
|
6143
|
+
],
|
|
6144
|
+
"props": [
|
|
6145
|
+
{
|
|
6146
|
+
"name": "value",
|
|
6147
|
+
"type": "DeckContextValue",
|
|
6148
|
+
"description": "{ goTo: (index: number) => void; navigateTo: (id: string) => void }"
|
|
6149
|
+
}
|
|
6044
6150
|
],
|
|
6151
|
+
"dependencies": [
|
|
6152
|
+
"react",
|
|
6153
|
+
"@loworbitstudio/visor-core"
|
|
6154
|
+
],
|
|
6155
|
+
"tokens_used": [],
|
|
6156
|
+
"example": "// Consumed via useDeck() inside any child of <DeckLayout>\nfunction MyControl() {\n const { goTo, navigateTo } = useDeck()\n return <button onClick={() => navigateTo(\"s-intro\")}>Go to Intro</button>\n}\n"
|
|
6157
|
+
},
|
|
6158
|
+
"deck-footer": {
|
|
6159
|
+
"category": "deck",
|
|
6160
|
+
"description": "Dark closing footer slide with brand lockup, optional link columns, and a copyright bar. Appears as the last scrollable section in a deck.",
|
|
6045
6161
|
"when_to_use": [
|
|
6046
|
-
"
|
|
6047
|
-
"
|
|
6048
|
-
"
|
|
6162
|
+
"As the final section of a deck (after the last content slide or ClosingSlide)",
|
|
6163
|
+
"Decks that need categorized navigation links below the closing content",
|
|
6164
|
+
"Branded presentations requiring a footer with company identity and copyright"
|
|
6049
6165
|
],
|
|
6050
6166
|
"when_not_to_use": [
|
|
6051
|
-
"
|
|
6052
|
-
"
|
|
6053
|
-
"Single-record inline edits (use admin-detail-drawer)"
|
|
6054
|
-
]
|
|
6055
|
-
},
|
|
6056
|
-
"configuration-panel": {
|
|
6057
|
-
"category": "configuration",
|
|
6058
|
-
"description": "A floating, glassmorphic configuration panel for organizing controls into labeled sections. Supports collapse animation, positional anchoring, and responsive stacking. Composed from Visor form components.",
|
|
6059
|
-
"components_used": [
|
|
6060
|
-
"separator"
|
|
6167
|
+
"Decks built with DeckRenderer (showFooter=true handles this automatically)",
|
|
6168
|
+
"Short decks where a full branded footer would feel disproportionate"
|
|
6061
6169
|
],
|
|
6062
|
-
"
|
|
6063
|
-
|
|
6064
|
-
|
|
6065
|
-
|
|
6170
|
+
"props": [
|
|
6171
|
+
{
|
|
6172
|
+
"name": "description",
|
|
6173
|
+
"type": "string",
|
|
6174
|
+
"description": "Brand tagline or short company description"
|
|
6175
|
+
},
|
|
6176
|
+
{
|
|
6177
|
+
"name": "columns",
|
|
6178
|
+
"type": "DeckFooterColumn[]",
|
|
6179
|
+
"description": "Optional link columns — each { title, links: { label, slide?, href?, accent? }[] }"
|
|
6180
|
+
},
|
|
6181
|
+
{
|
|
6182
|
+
"name": "brandName",
|
|
6183
|
+
"type": "string",
|
|
6184
|
+
"default": "Low Orbit Studio"
|
|
6185
|
+
}
|
|
6066
6186
|
],
|
|
6067
|
-
"
|
|
6068
|
-
"
|
|
6069
|
-
"Simple single-control toggles (use individual form components)"
|
|
6070
|
-
]
|
|
6071
|
-
},
|
|
6072
|
-
"cta-section": {
|
|
6073
|
-
"category": "marketing",
|
|
6074
|
-
"description": "A centered call-to-action section composing Heading, Text, and Button.",
|
|
6075
|
-
"components_used": [
|
|
6076
|
-
"heading",
|
|
6077
|
-
"text",
|
|
6078
|
-
"button"
|
|
6187
|
+
"dependencies": [
|
|
6188
|
+
"@loworbitstudio/visor-core"
|
|
6079
6189
|
],
|
|
6080
|
-
"
|
|
6081
|
-
"
|
|
6082
|
-
"
|
|
6083
|
-
"
|
|
6190
|
+
"tokens_used": [
|
|
6191
|
+
"--color-accent",
|
|
6192
|
+
"--color-primary-900",
|
|
6193
|
+
"--motion-duration-fast",
|
|
6194
|
+
"--motion-easing-standard",
|
|
6195
|
+
"--spacing-1",
|
|
6196
|
+
"--spacing-12",
|
|
6197
|
+
"--spacing-4",
|
|
6198
|
+
"--spacing-6",
|
|
6199
|
+
"--spacing-8",
|
|
6200
|
+
"--text-on-dark",
|
|
6201
|
+
"--text-on-dark-secondary"
|
|
6084
6202
|
],
|
|
6085
|
-
"
|
|
6086
|
-
"Inline CTAs within content (use Button directly)"
|
|
6087
|
-
]
|
|
6203
|
+
"example": "<DeckFooter\n description=\"Design systems for the modern web.\"\n brandName=\"Low Orbit Studio\"\n columns={[\n {\n title: \"Sections\",\n links: [\n { label: \"Vision\", slide: \"s-vision\" },\n { label: \"Services\", slide: \"s-services\" },\n ],\n },\n ]}\n/>\n"
|
|
6088
6204
|
},
|
|
6089
|
-
"
|
|
6090
|
-
"category": "
|
|
6091
|
-
"description": "
|
|
6092
|
-
"components_used": [
|
|
6093
|
-
"alert",
|
|
6094
|
-
"badge",
|
|
6095
|
-
"button",
|
|
6096
|
-
"card",
|
|
6097
|
-
"checkbox",
|
|
6098
|
-
"deck-renderer",
|
|
6099
|
-
"heading",
|
|
6100
|
-
"input",
|
|
6101
|
-
"label",
|
|
6102
|
-
"progress",
|
|
6103
|
-
"radio-group",
|
|
6104
|
-
"select",
|
|
6105
|
-
"separator",
|
|
6106
|
-
"slide",
|
|
6107
|
-
"slide-header",
|
|
6108
|
-
"switch",
|
|
6109
|
-
"tabs",
|
|
6110
|
-
"text",
|
|
6111
|
-
"toggle-group"
|
|
6112
|
-
],
|
|
6205
|
+
"deck-layout": {
|
|
6206
|
+
"category": "deck",
|
|
6207
|
+
"description": "Full-viewport scroll-snapping container that orchestrates keyboard navigation, wheel navigation, intersection-based animation, and dot-nav rendering for a deck of slides.",
|
|
6113
6208
|
"when_to_use": [
|
|
6114
|
-
"
|
|
6115
|
-
"
|
|
6116
|
-
"Design system documentation and onboarding"
|
|
6209
|
+
"Wrapping all <Slide> and <DeckFooter> components in a presentation",
|
|
6210
|
+
"Building a custom deck layout without using DeckRenderer"
|
|
6117
6211
|
],
|
|
6118
6212
|
"when_not_to_use": [
|
|
6119
|
-
"
|
|
6120
|
-
"
|
|
6121
|
-
]
|
|
6122
|
-
},
|
|
6123
|
-
"design-system-specimen": {
|
|
6124
|
-
"category": "documentation",
|
|
6125
|
-
"description": "Live interactive showcase of the full Visor token system and component library. Responds dynamically to the active theme.",
|
|
6126
|
-
"components_used": [
|
|
6127
|
-
"alert",
|
|
6128
|
-
"badge",
|
|
6129
|
-
"button",
|
|
6130
|
-
"card",
|
|
6131
|
-
"checkbox",
|
|
6132
|
-
"heading",
|
|
6133
|
-
"input",
|
|
6134
|
-
"label",
|
|
6135
|
-
"progress",
|
|
6136
|
-
"radio-group",
|
|
6137
|
-
"select",
|
|
6138
|
-
"separator",
|
|
6139
|
-
"slider",
|
|
6140
|
-
"switch",
|
|
6141
|
-
"tabs",
|
|
6142
|
-
"text",
|
|
6143
|
-
"textarea",
|
|
6144
|
-
"toggle-group"
|
|
6213
|
+
"When DeckRenderer covers your needs (it wraps DeckLayout automatically)",
|
|
6214
|
+
"Standard page layouts — this component is presentation-only"
|
|
6145
6215
|
],
|
|
6146
|
-
"
|
|
6147
|
-
|
|
6148
|
-
|
|
6149
|
-
|
|
6216
|
+
"props": [
|
|
6217
|
+
{
|
|
6218
|
+
"name": "slideTitles",
|
|
6219
|
+
"type": "string[]",
|
|
6220
|
+
"description": "Slide titles passed to DotNav for tooltip labels"
|
|
6221
|
+
},
|
|
6222
|
+
{
|
|
6223
|
+
"name": "controls",
|
|
6224
|
+
"type": "(props: { containerRef, currentIndex, variant }) => ReactNode",
|
|
6225
|
+
"description": "Optional render prop for custom controls (e.g., export button)"
|
|
6226
|
+
}
|
|
6150
6227
|
],
|
|
6151
|
-
"
|
|
6152
|
-
"
|
|
6153
|
-
]
|
|
6154
|
-
},
|
|
6155
|
-
"features-grid": {
|
|
6156
|
-
"category": "marketing",
|
|
6157
|
-
"description": "A responsive grid of feature cards with icons, titles, and descriptions. Demonstrates Card + icon composition in a configurable grid layout.",
|
|
6158
|
-
"components_used": [
|
|
6159
|
-
"card",
|
|
6160
|
-
"heading",
|
|
6161
|
-
"text"
|
|
6228
|
+
"dependencies": [
|
|
6229
|
+
"@loworbitstudio/visor-core"
|
|
6162
6230
|
],
|
|
6231
|
+
"tokens_used": [],
|
|
6232
|
+
"example": "<DeckLayout slideTitles={[\"Intro\", \"Problem\", \"Solution\", \"Thank You\"]}>\n <Slide id=\"s-intro\" theme=\"dark\"><HeroSlide ... /></Slide>\n <Slide id=\"s-problem\" theme=\"light\"><SlideHeader ... /></Slide>\n <Slide id=\"s-solution\" theme=\"light\"><SlideHeader ... /></Slide>\n <ClosingSlide />\n <DeckFooter description=\"...\" />\n</DeckLayout>\n"
|
|
6233
|
+
},
|
|
6234
|
+
"deck-renderer": {
|
|
6235
|
+
"category": "deck",
|
|
6236
|
+
"description": "High-level declarative deck builder. Accepts a DeckRegistry configuration and renders the full slide stack with optional TOC slide, footer, and fullscreen mode.",
|
|
6163
6237
|
"when_to_use": [
|
|
6164
|
-
"
|
|
6165
|
-
"
|
|
6166
|
-
"
|
|
6238
|
+
"Building a complete presentation from a declarative registry config",
|
|
6239
|
+
"Decks that need auto-generated TOC slides or footer sections",
|
|
6240
|
+
"Presentations that should support fullscreen mode with a trigger button"
|
|
6167
6241
|
],
|
|
6168
6242
|
"when_not_to_use": [
|
|
6169
|
-
"
|
|
6170
|
-
"
|
|
6171
|
-
]
|
|
6172
|
-
},
|
|
6173
|
-
"footer-section": {
|
|
6174
|
-
"category": "marketing",
|
|
6175
|
-
"description": "A multi-column responsive footer with link groups, logo area, and copyright.",
|
|
6176
|
-
"components_used": [
|
|
6177
|
-
"heading",
|
|
6178
|
-
"text",
|
|
6179
|
-
"separator"
|
|
6243
|
+
"Decks that require fully custom slide ordering or non-registry components (use DeckLayout directly)",
|
|
6244
|
+
"When you need fine-grained control over every slide's position in the sequence"
|
|
6180
6245
|
],
|
|
6181
|
-
"
|
|
6182
|
-
|
|
6183
|
-
|
|
6184
|
-
|
|
6246
|
+
"props": [
|
|
6247
|
+
{
|
|
6248
|
+
"name": "registry",
|
|
6249
|
+
"type": "DeckRegistry",
|
|
6250
|
+
"description": "Declarative slide registry: { description, slides: SlideEntry[], sections: DeckSection[] }"
|
|
6251
|
+
},
|
|
6252
|
+
{
|
|
6253
|
+
"name": "showTOC",
|
|
6254
|
+
"type": "boolean",
|
|
6255
|
+
"default": false,
|
|
6256
|
+
"description": "Insert an auto-generated TOC slide after the first slide"
|
|
6257
|
+
},
|
|
6258
|
+
{
|
|
6259
|
+
"name": "tocImage",
|
|
6260
|
+
"type": "string",
|
|
6261
|
+
"description": "Optional background image for the TOC slide"
|
|
6262
|
+
},
|
|
6263
|
+
{
|
|
6264
|
+
"name": "showFooter",
|
|
6265
|
+
"type": "boolean",
|
|
6266
|
+
"default": true
|
|
6267
|
+
},
|
|
6268
|
+
{
|
|
6269
|
+
"name": "brandName",
|
|
6270
|
+
"type": "string",
|
|
6271
|
+
"description": "Brand name for the footer (default \"Low Orbit Studio\")"
|
|
6272
|
+
},
|
|
6273
|
+
{
|
|
6274
|
+
"name": "fullscreen",
|
|
6275
|
+
"type": "boolean",
|
|
6276
|
+
"default": false,
|
|
6277
|
+
"description": "Wrap the deck in a FullscreenOverlay with a trigger button"
|
|
6278
|
+
},
|
|
6279
|
+
{
|
|
6280
|
+
"name": "fullscreenLabel",
|
|
6281
|
+
"type": "string",
|
|
6282
|
+
"default": "Fullscreen"
|
|
6283
|
+
}
|
|
6185
6284
|
],
|
|
6186
|
-
"
|
|
6187
|
-
"
|
|
6188
|
-
"Presentation footers (use deck-footer)"
|
|
6189
|
-
]
|
|
6190
|
-
},
|
|
6191
|
-
"hero-section": {
|
|
6192
|
-
"category": "marketing",
|
|
6193
|
-
"description": "A full-width hero section with background media support, heading, subheading, and call-to-action button.",
|
|
6194
|
-
"components_used": [
|
|
6195
|
-
"heading",
|
|
6196
|
-
"text",
|
|
6197
|
-
"button"
|
|
6285
|
+
"dependencies": [
|
|
6286
|
+
"@loworbitstudio/visor-core"
|
|
6198
6287
|
],
|
|
6199
|
-
"
|
|
6200
|
-
"
|
|
6201
|
-
"
|
|
6202
|
-
"
|
|
6288
|
+
"tokens_used": [
|
|
6289
|
+
"--border-default",
|
|
6290
|
+
"--border-hover",
|
|
6291
|
+
"--focus-ring-color",
|
|
6292
|
+
"--focus-ring-offset",
|
|
6293
|
+
"--focus-ring-width",
|
|
6294
|
+
"--font-size-sm",
|
|
6295
|
+
"--motion-duration-fast",
|
|
6296
|
+
"--motion-easing-default",
|
|
6297
|
+
"--radius-md",
|
|
6298
|
+
"--spacing-2",
|
|
6299
|
+
"--spacing-4",
|
|
6300
|
+
"--surface-card",
|
|
6301
|
+
"--surface-card-hover",
|
|
6302
|
+
"--text-primary"
|
|
6203
6303
|
],
|
|
6204
|
-
"
|
|
6205
|
-
"Presentation slides (use deck hero-slide)",
|
|
6206
|
-
"Content sections without full-viewport height"
|
|
6207
|
-
]
|
|
6304
|
+
"example": "const registry: DeckRegistry = {\n description: \"Low Orbit Studio — 2026 Overview\",\n slides: [\n { id: \"s-hero\", title: \"Intro\", component: HeroSlide },\n { id: \"s-services\", title: \"Services\", component: ServicesSlide },\n ],\n sections: [],\n}\n\n<DeckRenderer registry={registry} showTOC showFooter fullscreen />\n"
|
|
6208
6305
|
},
|
|
6209
|
-
"
|
|
6210
|
-
"category": "
|
|
6211
|
-
"description": "
|
|
6212
|
-
"components_used": [
|
|
6213
|
-
"button",
|
|
6214
|
-
"input",
|
|
6215
|
-
"field",
|
|
6216
|
-
"card"
|
|
6217
|
-
],
|
|
6306
|
+
"deck-dot-nav": {
|
|
6307
|
+
"category": "deck",
|
|
6308
|
+
"description": "Fixed-position dot navigation indicator for decks. Shows one dot per slide with hover tooltips and keyboard-accessible click targets.",
|
|
6218
6309
|
"when_to_use": [
|
|
6219
|
-
"
|
|
6220
|
-
"
|
|
6221
|
-
"Demo login flows"
|
|
6310
|
+
"Inside <DeckLayout> as the primary slide position indicator",
|
|
6311
|
+
"Any deck that needs visible slide progress with tooltip labels"
|
|
6222
6312
|
],
|
|
6223
6313
|
"when_not_to_use": [
|
|
6224
|
-
"
|
|
6225
|
-
"
|
|
6226
|
-
]
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6314
|
+
"Outside of a deck (dots are meaningless without a scroll-snap container)",
|
|
6315
|
+
"Decks with more than ~12 slides (dots become visually crowded)"
|
|
6316
|
+
],
|
|
6317
|
+
"props": [
|
|
6318
|
+
{
|
|
6319
|
+
"name": "slideCount",
|
|
6320
|
+
"type": "number",
|
|
6321
|
+
"description": "Total number of slides"
|
|
6322
|
+
},
|
|
6323
|
+
{
|
|
6324
|
+
"name": "currentIndex",
|
|
6325
|
+
"type": "number",
|
|
6326
|
+
"description": "Zero-based index of the active slide"
|
|
6327
|
+
},
|
|
6328
|
+
{
|
|
6329
|
+
"name": "onDotClick",
|
|
6330
|
+
"type": "(index: number) => void",
|
|
6331
|
+
"description": "Callback when a dot is clicked"
|
|
6332
|
+
},
|
|
6333
|
+
{
|
|
6334
|
+
"name": "variant",
|
|
6335
|
+
"type": "'light' | 'dark'",
|
|
6336
|
+
"default": "light"
|
|
6337
|
+
},
|
|
6338
|
+
{
|
|
6339
|
+
"name": "titles",
|
|
6340
|
+
"type": "string[]",
|
|
6341
|
+
"description": "Optional slide titles shown as tooltips on hover"
|
|
6342
|
+
}
|
|
6343
|
+
],
|
|
6344
|
+
"dependencies": [
|
|
6345
|
+
"@loworbitstudio/visor-core"
|
|
6238
6346
|
],
|
|
6347
|
+
"tokens_used": [],
|
|
6348
|
+
"example": "<DotNav\n slideCount={5}\n currentIndex={0}\n onDotClick={(i) => goTo(i)}\n variant=\"dark\"\n titles={[\"Intro\", \"Problem\", \"Solution\", \"Roadmap\", \"Thank You\"]}\n/>\n"
|
|
6349
|
+
},
|
|
6350
|
+
"deck-hero-slide": {
|
|
6351
|
+
"category": "deck",
|
|
6352
|
+
"description": "Full-viewport opening slide with badge, animated title, subtitle, and divider. Supports hero image overlay and split logo layout.",
|
|
6239
6353
|
"when_to_use": [
|
|
6240
|
-
"
|
|
6241
|
-
"
|
|
6242
|
-
"
|
|
6354
|
+
"First slide of a presentation deck (title / opening)",
|
|
6355
|
+
"Any slide that functions as a visual cover with a large heading and minimal body text",
|
|
6356
|
+
"Brand presentations where a logo lockup is needed alongside text (split layout)"
|
|
6243
6357
|
],
|
|
6244
6358
|
"when_not_to_use": [
|
|
6245
|
-
"
|
|
6246
|
-
"
|
|
6247
|
-
]
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6359
|
+
"Mid-deck content slides (use Slide + SlideHeader instead)",
|
|
6360
|
+
"Slides with more than a short tagline and subtitle"
|
|
6361
|
+
],
|
|
6362
|
+
"props": [
|
|
6363
|
+
{
|
|
6364
|
+
"name": "id",
|
|
6365
|
+
"type": "string",
|
|
6366
|
+
"description": "Unique slide identifier"
|
|
6367
|
+
},
|
|
6368
|
+
{
|
|
6369
|
+
"name": "badge",
|
|
6370
|
+
"type": "string",
|
|
6371
|
+
"description": "Short label displayed above the title (e.g. company name or date)"
|
|
6372
|
+
},
|
|
6373
|
+
{
|
|
6374
|
+
"name": "title",
|
|
6375
|
+
"type": "string",
|
|
6376
|
+
"description": "Main heading (mutually exclusive with titleContent)"
|
|
6377
|
+
},
|
|
6378
|
+
{
|
|
6379
|
+
"name": "titleContent",
|
|
6380
|
+
"type": "ReactNode",
|
|
6381
|
+
"description": "Custom JSX heading (overrides title string)"
|
|
6382
|
+
},
|
|
6383
|
+
{
|
|
6384
|
+
"name": "subtitle",
|
|
6385
|
+
"type": "string",
|
|
6386
|
+
"description": "Tagline below the title"
|
|
6387
|
+
},
|
|
6388
|
+
{
|
|
6389
|
+
"name": "heroImage",
|
|
6390
|
+
"type": "string",
|
|
6391
|
+
"description": "URL for a full-bleed background image with overlay"
|
|
6392
|
+
},
|
|
6393
|
+
{
|
|
6394
|
+
"name": "logo",
|
|
6395
|
+
"type": "string",
|
|
6396
|
+
"description": "Logo image URL (activates split layout when heroImage is absent)"
|
|
6397
|
+
},
|
|
6398
|
+
{
|
|
6399
|
+
"name": "description",
|
|
6400
|
+
"type": "string",
|
|
6401
|
+
"description": "Optional short description paragraph"
|
|
6402
|
+
}
|
|
6403
|
+
],
|
|
6404
|
+
"dependencies": [
|
|
6405
|
+
"@loworbitstudio/visor-core"
|
|
6257
6406
|
],
|
|
6407
|
+
"tokens_used": [],
|
|
6408
|
+
"example": "<HeroSlide\n id=\"s-hero\"\n badge=\"Low Orbit Studio\"\n title=\"Building the Future\"\n subtitle=\"Design systems that scale.\"\n heroImage=\"/images/hero-bg.jpg\"\n/>\n"
|
|
6409
|
+
},
|
|
6410
|
+
"slide": {
|
|
6411
|
+
"category": "deck",
|
|
6412
|
+
"description": "Full-viewport slide section with theme, layout mode, hero image, and background image support. The fundamental building block of every deck.",
|
|
6258
6413
|
"when_to_use": [
|
|
6259
|
-
"
|
|
6260
|
-
"
|
|
6261
|
-
"
|
|
6414
|
+
"Every slide in a presentation deck",
|
|
6415
|
+
"Slides with dark or light themes requiring theme-scoped children",
|
|
6416
|
+
"Hero slides with a full-bleed background image and overlay",
|
|
6417
|
+
"Photo-mode slides with a full-bleed image behind content"
|
|
6262
6418
|
],
|
|
6263
6419
|
"when_not_to_use": [
|
|
6264
|
-
"
|
|
6265
|
-
"
|
|
6266
|
-
]
|
|
6267
|
-
|
|
6268
|
-
|
|
6269
|
-
|
|
6270
|
-
|
|
6271
|
-
|
|
6272
|
-
"
|
|
6273
|
-
|
|
6420
|
+
"Outside of a <DeckLayout> (keyboard navigation and scroll snapping won't function)",
|
|
6421
|
+
"Standalone page sections not part of a deck presentation"
|
|
6422
|
+
],
|
|
6423
|
+
"variants": {
|
|
6424
|
+
"theme": [
|
|
6425
|
+
"light",
|
|
6426
|
+
"dark"
|
|
6427
|
+
],
|
|
6428
|
+
"layout": [
|
|
6429
|
+
"default",
|
|
6430
|
+
"center",
|
|
6431
|
+
"flush",
|
|
6432
|
+
"hero",
|
|
6433
|
+
"photo",
|
|
6434
|
+
"bgImage"
|
|
6435
|
+
]
|
|
6436
|
+
},
|
|
6437
|
+
"props": [
|
|
6438
|
+
{
|
|
6439
|
+
"name": "id",
|
|
6440
|
+
"type": "string",
|
|
6441
|
+
"description": "Unique slide identifier used for navigateTo() deep-linking"
|
|
6442
|
+
},
|
|
6443
|
+
{
|
|
6444
|
+
"name": "theme",
|
|
6445
|
+
"type": "'light' | 'dark'",
|
|
6446
|
+
"default": "light"
|
|
6447
|
+
},
|
|
6448
|
+
{
|
|
6449
|
+
"name": "dotNavTheme",
|
|
6450
|
+
"type": "'light' | 'dark'",
|
|
6451
|
+
"description": "Overrides dot-nav color detection independently of slide theme"
|
|
6452
|
+
},
|
|
6453
|
+
{
|
|
6454
|
+
"name": "center",
|
|
6455
|
+
"type": "boolean",
|
|
6456
|
+
"default": false,
|
|
6457
|
+
"description": "Center all content vertically and horizontally"
|
|
6458
|
+
},
|
|
6459
|
+
{
|
|
6460
|
+
"name": "flush",
|
|
6461
|
+
"type": "boolean",
|
|
6462
|
+
"default": false,
|
|
6463
|
+
"description": "Remove default padding"
|
|
6464
|
+
},
|
|
6465
|
+
{
|
|
6466
|
+
"name": "hero",
|
|
6467
|
+
"type": "boolean",
|
|
6468
|
+
"default": false,
|
|
6469
|
+
"description": "Enable hero image mode with content layered above"
|
|
6470
|
+
},
|
|
6471
|
+
{
|
|
6472
|
+
"name": "heroImage",
|
|
6473
|
+
"type": "string",
|
|
6474
|
+
"description": "URL for the hero background image (requires hero=true)"
|
|
6475
|
+
},
|
|
6476
|
+
{
|
|
6477
|
+
"name": "bgImage",
|
|
6478
|
+
"type": "string",
|
|
6479
|
+
"description": "URL for a full-bleed background image"
|
|
6480
|
+
},
|
|
6481
|
+
{
|
|
6482
|
+
"name": "photo",
|
|
6483
|
+
"type": "boolean",
|
|
6484
|
+
"default": false,
|
|
6485
|
+
"description": "Full-bleed photo mode"
|
|
6486
|
+
}
|
|
6487
|
+
],
|
|
6488
|
+
"dependencies": [
|
|
6489
|
+
"@loworbitstudio/visor-core"
|
|
6274
6490
|
],
|
|
6491
|
+
"tokens_used": [
|
|
6492
|
+
"--color-primary-900",
|
|
6493
|
+
"--motion-duration-normal",
|
|
6494
|
+
"--motion-easing-standard",
|
|
6495
|
+
"--surface-page",
|
|
6496
|
+
"--text-on-dark",
|
|
6497
|
+
"--text-primary"
|
|
6498
|
+
],
|
|
6499
|
+
"example": "<Slide id=\"s-intro\" theme=\"dark\" hero heroImage=\"/hero.jpg\">\n <SlideHeader subtitle=\"Welcome\" title=\"Our Vision\" />\n</Slide>\n"
|
|
6500
|
+
},
|
|
6501
|
+
"deck-slide-header": {
|
|
6502
|
+
"category": "deck",
|
|
6503
|
+
"description": "Slide section header with animated subtitle, title, and optional description. Used at the top of content slides to establish section context.",
|
|
6275
6504
|
"when_to_use": [
|
|
6276
|
-
"
|
|
6277
|
-
"
|
|
6278
|
-
"Process explanations"
|
|
6505
|
+
"Opening content slides where a section title and subtitle are needed",
|
|
6506
|
+
"Any slide that requires a consistent heading hierarchy with staggered entrance animations"
|
|
6279
6507
|
],
|
|
6280
6508
|
"when_not_to_use": [
|
|
6281
|
-
"
|
|
6282
|
-
"
|
|
6283
|
-
]
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
|
|
6290
|
-
|
|
6291
|
-
|
|
6292
|
-
|
|
6293
|
-
|
|
6509
|
+
"Hero slides (use HeroSlide which has its own heading layout)",
|
|
6510
|
+
"Slides where the heading needs custom layout or typography"
|
|
6511
|
+
],
|
|
6512
|
+
"props": [
|
|
6513
|
+
{
|
|
6514
|
+
"name": "subtitle",
|
|
6515
|
+
"type": "string",
|
|
6516
|
+
"description": "Section label displayed above the title"
|
|
6517
|
+
},
|
|
6518
|
+
{
|
|
6519
|
+
"name": "title",
|
|
6520
|
+
"type": "string",
|
|
6521
|
+
"description": "Main heading text"
|
|
6522
|
+
},
|
|
6523
|
+
{
|
|
6524
|
+
"name": "description",
|
|
6525
|
+
"type": "string",
|
|
6526
|
+
"description": "Optional paragraph below the title"
|
|
6527
|
+
}
|
|
6294
6528
|
],
|
|
6529
|
+
"dependencies": [
|
|
6530
|
+
"@loworbitstudio/visor-core"
|
|
6531
|
+
],
|
|
6532
|
+
"tokens_used": [],
|
|
6533
|
+
"example": "<SlideHeader\n subtitle=\"Phase 1\"\n title=\"Discovery & Research\"\n description=\"Understanding the problem space before committing to solutions.\"\n/>\n"
|
|
6534
|
+
},
|
|
6535
|
+
"slide-theme-context": {
|
|
6536
|
+
"category": "deck",
|
|
6537
|
+
"description": "React context provider that propagates the active slide theme (\"light\" | \"dark\") to child components within a slide.",
|
|
6295
6538
|
"when_to_use": [
|
|
6296
|
-
"
|
|
6297
|
-
"
|
|
6298
|
-
"Review showcases"
|
|
6539
|
+
"Building slide sub-components that need to adapt styling to the parent slide's theme",
|
|
6540
|
+
"Any component inside a <Slide> that calls useSlideTheme()"
|
|
6299
6541
|
],
|
|
6300
6542
|
"when_not_to_use": [
|
|
6301
|
-
"
|
|
6302
|
-
"
|
|
6303
|
-
]
|
|
6304
|
-
|
|
6305
|
-
|
|
6306
|
-
|
|
6307
|
-
|
|
6308
|
-
|
|
6309
|
-
|
|
6310
|
-
|
|
6311
|
-
"
|
|
6312
|
-
|
|
6313
|
-
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6317
|
-
"description": "Detects user locale and returns currency symbol and price formatter for USD, EUR, and GBP."
|
|
6318
|
-
},
|
|
6319
|
-
"use-local-storage": {
|
|
6320
|
-
"description": "Persists state to localStorage with SSR safety, functional updates, and cross-tab synchronisation."
|
|
6321
|
-
},
|
|
6322
|
-
"use-intersection-observer": {
|
|
6323
|
-
"description": "Tracks whether an element is visible within the viewport using IntersectionObserver. Supports one-shot mode for lazy loading."
|
|
6324
|
-
},
|
|
6325
|
-
"use-keyboard-shortcut": {
|
|
6326
|
-
"description": "Fires a callback when a specific keyboard shortcut is pressed, with support for modifier keys (Meta, Ctrl, Shift, Alt)."
|
|
6327
|
-
},
|
|
6328
|
-
"use-focus-trap": {
|
|
6329
|
-
"description": "Traps keyboard focus within a container element. Used for accessible modals, drawers, and dialogs."
|
|
6330
|
-
},
|
|
6331
|
-
"use-previous": {
|
|
6332
|
-
"description": "Returns the previous value of a variable from the last render. Useful for comparing values across renders."
|
|
6333
|
-
},
|
|
6334
|
-
"use-boolean": {
|
|
6335
|
-
"description": "Manages a boolean state with stable toggle, setTrue, and setFalse helpers. Useful for open/close and show/hide patterns."
|
|
6336
|
-
},
|
|
6337
|
-
"use-intersection-animation": {
|
|
6338
|
-
"description": "Observes section visibility via IntersectionObserver and updates the active index for scroll-driven animations."
|
|
6339
|
-
},
|
|
6340
|
-
"use-keyboard-nav": {
|
|
6341
|
-
"description": "Handles Arrow Up/Down and Home/End keyboard navigation to move between indexed sections or slides."
|
|
6543
|
+
"Outside of a <Slide> wrapper (returns \"light\" as default, not an error, but context is meaningless)",
|
|
6544
|
+
"Choosing between light/dark themes — that is controlled by the slide's theme prop"
|
|
6545
|
+
],
|
|
6546
|
+
"props": [
|
|
6547
|
+
{
|
|
6548
|
+
"name": "theme",
|
|
6549
|
+
"type": "'light' | 'dark'",
|
|
6550
|
+
"description": "Theme variant propagated to all slide descendants"
|
|
6551
|
+
}
|
|
6552
|
+
],
|
|
6553
|
+
"dependencies": [
|
|
6554
|
+
"react",
|
|
6555
|
+
"@loworbitstudio/visor-core"
|
|
6556
|
+
],
|
|
6557
|
+
"tokens_used": [],
|
|
6558
|
+
"example": "// Consumed via useSlideTheme() inside any child of <Slide>\nfunction SlideCard() {\n const theme = useSlideTheme()\n return <div data-theme={theme}>...</div>\n}\n"
|
|
6342
6559
|
},
|
|
6343
|
-
"
|
|
6344
|
-
"
|
|
6560
|
+
"deck-toc-slide": {
|
|
6561
|
+
"category": "deck",
|
|
6562
|
+
"description": "Auto-generated table of contents slide with clickable section + item links for deep navigation. Rendered automatically by DeckRenderer when showTOC is true.",
|
|
6563
|
+
"when_to_use": [
|
|
6564
|
+
"Decks with 3+ sections where an upfront overview helps orientation",
|
|
6565
|
+
"Any deck where users need to jump non-linearly to specific slides"
|
|
6566
|
+
],
|
|
6567
|
+
"when_not_to_use": [
|
|
6568
|
+
"Short decks (under 6 slides) where a TOC adds noise",
|
|
6569
|
+
"Decks built with DeckRenderer (showTOC=true handles this automatically)"
|
|
6570
|
+
],
|
|
6571
|
+
"props": [
|
|
6572
|
+
{
|
|
6573
|
+
"name": "sections",
|
|
6574
|
+
"type": "TOCSection[]",
|
|
6575
|
+
"description": "Array of { section: string; items: { id: string; title: string }[] }"
|
|
6576
|
+
},
|
|
6577
|
+
{
|
|
6578
|
+
"name": "backgroundImage",
|
|
6579
|
+
"type": "string",
|
|
6580
|
+
"description": "Optional background image (activates dark theme on the slide)"
|
|
6581
|
+
},
|
|
6582
|
+
{
|
|
6583
|
+
"name": "id",
|
|
6584
|
+
"type": "string",
|
|
6585
|
+
"default": "s-toc"
|
|
6586
|
+
}
|
|
6587
|
+
],
|
|
6588
|
+
"dependencies": [
|
|
6589
|
+
"@loworbitstudio/visor-core"
|
|
6590
|
+
],
|
|
6591
|
+
"tokens_used": [],
|
|
6592
|
+
"example": "<TOCSlide\n sections={[\n {\n section: \"Strategy\",\n items: [\n { id: \"s-vision\", title: \"Vision\" },\n { id: \"s-goals\", title: \"Goals\" },\n ],\n },\n ]}\n/>\n"
|
|
6345
6593
|
},
|
|
6346
|
-
"
|
|
6347
|
-
"
|
|
6594
|
+
"sphere": {
|
|
6595
|
+
"category": "visual-elements",
|
|
6596
|
+
"description": "GPU-accelerated particle sphere visualization with 256K particles, custom GLSL shaders, 6 geometry modes, 5 color schemes, and think-mode animation effects.",
|
|
6597
|
+
"when_to_use": [
|
|
6598
|
+
"Ambient background visualization (hero sections, landing pages)",
|
|
6599
|
+
"AI thinking/processing indicator",
|
|
6600
|
+
"Decorative visual element on dark backgrounds",
|
|
6601
|
+
"Data visualization with particle-based aesthetics"
|
|
6602
|
+
],
|
|
6603
|
+
"when_not_to_use": [
|
|
6604
|
+
"Small UI components or icons (too heavy — requires Three.js)",
|
|
6605
|
+
"Pages where bundle size is critical (~150KB gzipped for Three.js)",
|
|
6606
|
+
"Content-heavy pages where animation would distract"
|
|
6607
|
+
],
|
|
6608
|
+
"props": [
|
|
6609
|
+
{
|
|
6610
|
+
"name": "mode",
|
|
6611
|
+
"type": "'sphere' | 'curl' | 'turing' | 'lorenz' | 'tendrils'",
|
|
6612
|
+
"default": "sphere",
|
|
6613
|
+
"description": "Geometry mode for particle distribution"
|
|
6614
|
+
},
|
|
6615
|
+
{
|
|
6616
|
+
"name": "colorScheme",
|
|
6617
|
+
"type": "'solar' | 'aqua' | 'ember' | 'aurora' | 'ghost'",
|
|
6618
|
+
"default": "solar",
|
|
6619
|
+
"description": "Named color scheme"
|
|
6620
|
+
},
|
|
6621
|
+
{
|
|
6622
|
+
"name": "colors",
|
|
6623
|
+
"type": "GradientColors",
|
|
6624
|
+
"description": "Custom 5-stop gradient (overrides colorScheme)"
|
|
6625
|
+
},
|
|
6626
|
+
{
|
|
6627
|
+
"name": "particleCount",
|
|
6628
|
+
"type": "number",
|
|
6629
|
+
"default": 256000
|
|
6630
|
+
},
|
|
6631
|
+
{
|
|
6632
|
+
"name": "speed",
|
|
6633
|
+
"type": "number",
|
|
6634
|
+
"default": 1,
|
|
6635
|
+
"description": "Animation speed multiplier"
|
|
6636
|
+
},
|
|
6637
|
+
{
|
|
6638
|
+
"name": "waves",
|
|
6639
|
+
"type": "number",
|
|
6640
|
+
"default": 1,
|
|
6641
|
+
"description": "Wave displacement multiplier"
|
|
6642
|
+
},
|
|
6643
|
+
{
|
|
6644
|
+
"name": "dotSize",
|
|
6645
|
+
"type": "number",
|
|
6646
|
+
"default": 1,
|
|
6647
|
+
"description": "Particle dot size multiplier"
|
|
6648
|
+
},
|
|
6649
|
+
{
|
|
6650
|
+
"name": "blur",
|
|
6651
|
+
"type": "number",
|
|
6652
|
+
"default": 0.5,
|
|
6653
|
+
"description": "Softness (0 = hard dots, 1 = full glow)"
|
|
6654
|
+
},
|
|
6655
|
+
{
|
|
6656
|
+
"name": "thinkIntensity",
|
|
6657
|
+
"type": "number",
|
|
6658
|
+
"default": 0,
|
|
6659
|
+
"description": "Think-mode intensity (0-1)"
|
|
6660
|
+
},
|
|
6661
|
+
{
|
|
6662
|
+
"name": "thinkEffects",
|
|
6663
|
+
"type": "SphereThinkEffects",
|
|
6664
|
+
"description": "Which think-mode effects are enabled"
|
|
6665
|
+
},
|
|
6666
|
+
{
|
|
6667
|
+
"name": "orbitControls",
|
|
6668
|
+
"type": "boolean",
|
|
6669
|
+
"default": true,
|
|
6670
|
+
"description": "Enable drag-to-rotate"
|
|
6671
|
+
},
|
|
6672
|
+
{
|
|
6673
|
+
"name": "autoRotate",
|
|
6674
|
+
"type": "boolean",
|
|
6675
|
+
"default": true
|
|
6676
|
+
}
|
|
6677
|
+
],
|
|
6678
|
+
"dependencies": [
|
|
6679
|
+
"three",
|
|
6680
|
+
"@loworbitstudio/visor-core"
|
|
6681
|
+
],
|
|
6682
|
+
"tokens_used": [],
|
|
6683
|
+
"example": "<Sphere\n mode=\"sphere\"\n colorScheme=\"solar\"\n speed={1}\n style={{ width: \"100%\", height: \"400px\" }}\n/>\n"
|
|
6348
6684
|
}
|
|
6349
6685
|
},
|
|
6350
|
-
"
|
|
6351
|
-
"
|
|
6352
|
-
"
|
|
6686
|
+
"blocks": {
|
|
6687
|
+
"admin-dashboard": {
|
|
6688
|
+
"category": "admin",
|
|
6689
|
+
"description": "Drop-in admin overview composition — PageHeader, responsive stat grid, optional secondary region, and ActivityFeed with empty-state fallback. Composes existing admin compounds, nothing to configure.",
|
|
6353
6690
|
"components_used": [
|
|
6354
|
-
"
|
|
6355
|
-
"
|
|
6356
|
-
"
|
|
6357
|
-
"
|
|
6358
|
-
"alert",
|
|
6359
|
-
"tabs"
|
|
6691
|
+
"page-header",
|
|
6692
|
+
"stat-card",
|
|
6693
|
+
"activity-feed",
|
|
6694
|
+
"empty-state"
|
|
6360
6695
|
],
|
|
6361
6696
|
"when_to_use": [
|
|
6362
|
-
"
|
|
6363
|
-
"
|
|
6364
|
-
"
|
|
6697
|
+
"Landing page for an admin or back-office app",
|
|
6698
|
+
"Overview-at-a-glance screens mixing KPIs and recent events",
|
|
6699
|
+
"Any dashboard needing a title, metrics, and a recent-activity feed"
|
|
6700
|
+
],
|
|
6701
|
+
"when_not_to_use": [
|
|
6702
|
+
"Data-heavy list or table pages (use admin-list-page)",
|
|
6703
|
+
"Detail / edit screens for a single record (use admin-detail-drawer)",
|
|
6704
|
+
"Settings forms (use admin-settings-page)"
|
|
6365
6705
|
]
|
|
6366
6706
|
},
|
|
6367
|
-
"
|
|
6368
|
-
"
|
|
6707
|
+
"admin-detail-drawer": {
|
|
6708
|
+
"category": "admin",
|
|
6709
|
+
"description": "Right-side slide-out panel for viewing or editing a single record. Composes Sheet with a sticky save/cancel footer, async save handler with pending state, an unsaved-changes guard powered by ConfirmDialog, and sm/md/lg/xl width variants.",
|
|
6369
6710
|
"components_used": [
|
|
6370
|
-
"
|
|
6711
|
+
"sheet",
|
|
6371
6712
|
"button",
|
|
6372
|
-
"
|
|
6373
|
-
"dialog",
|
|
6374
|
-
"alert",
|
|
6375
|
-
"pagination",
|
|
6376
|
-
"badge"
|
|
6713
|
+
"confirm-dialog"
|
|
6377
6714
|
],
|
|
6378
6715
|
"when_to_use": [
|
|
6379
|
-
"
|
|
6380
|
-
"
|
|
6381
|
-
"
|
|
6716
|
+
"Inline editing of a single record from a list or dashboard",
|
|
6717
|
+
"Click-a-row, edit-its-details-without-leaving-the-page patterns",
|
|
6718
|
+
"Detail panels where protecting against accidental close is important"
|
|
6719
|
+
],
|
|
6720
|
+
"when_not_to_use": [
|
|
6721
|
+
"Full-page single-record editors (use admin-tabbed-editor)",
|
|
6722
|
+
"Multi-step forms (use admin-wizard)",
|
|
6723
|
+
"Simple confirmation prompts (use ConfirmDialog directly)"
|
|
6382
6724
|
]
|
|
6383
6725
|
},
|
|
6384
|
-
"
|
|
6385
|
-
"
|
|
6726
|
+
"admin-list-page": {
|
|
6727
|
+
"category": "admin",
|
|
6728
|
+
"description": "CRUD list archetype composing PageHeader, FilterBar, DataTable, BulkActionBar, and EmptyState into a single drop-in page. Generic over row data type, supports controlled and uncontrolled search/selection/sorting/pagination, exposes a bulk actions slot that appears only when rows are selected.",
|
|
6386
6729
|
"components_used": [
|
|
6387
|
-
"
|
|
6388
|
-
"
|
|
6389
|
-
"
|
|
6390
|
-
"
|
|
6391
|
-
"
|
|
6392
|
-
"scroll-area"
|
|
6730
|
+
"page-header",
|
|
6731
|
+
"filter-bar",
|
|
6732
|
+
"data-table",
|
|
6733
|
+
"bulk-action-bar",
|
|
6734
|
+
"empty-state"
|
|
6393
6735
|
],
|
|
6394
6736
|
"when_to_use": [
|
|
6395
|
-
"
|
|
6396
|
-
"
|
|
6397
|
-
"
|
|
6737
|
+
"List-all pages for users, orders, invoices, or projects",
|
|
6738
|
+
"Any CRUD index view needing search, filters, and sortable/paginated rows",
|
|
6739
|
+
"Pages that need bulk actions (archive, delete, export) on selected rows"
|
|
6740
|
+
],
|
|
6741
|
+
"when_not_to_use": [
|
|
6742
|
+
"Overview dashboards with KPIs and activity feeds (use admin-dashboard)",
|
|
6743
|
+
"Single-record detail or edit screens (use admin-detail-drawer)",
|
|
6744
|
+
"Settings or preferences forms (use admin-settings-page)"
|
|
6398
6745
|
]
|
|
6399
6746
|
},
|
|
6400
|
-
"
|
|
6401
|
-
"
|
|
6747
|
+
"admin-settings-page": {
|
|
6748
|
+
"category": "admin",
|
|
6749
|
+
"description": "Long scrollable settings archetype with labeled sections and an optional sticky left-side nav that sync-scrolls via intersection observer. Supports two mutually-exclusive modes — a single global sticky save/cancel footer (default) or per-section save/revert footer rows. Composes PageHeader, Separator, Heading, Text, Button, and ConfirmDialog.",
|
|
6402
6750
|
"components_used": [
|
|
6403
|
-
"
|
|
6404
|
-
"
|
|
6405
|
-
"
|
|
6751
|
+
"page-header",
|
|
6752
|
+
"separator",
|
|
6753
|
+
"heading",
|
|
6754
|
+
"text",
|
|
6406
6755
|
"button",
|
|
6407
|
-
"
|
|
6756
|
+
"confirm-dialog"
|
|
6757
|
+
],
|
|
6758
|
+
"when_to_use": [
|
|
6759
|
+
"Application or workspace settings pages organized into labeled sections",
|
|
6760
|
+
"Profile pages, account pages, billing pages, team pages — anywhere long scrolling form content needs wayfinding",
|
|
6761
|
+
"Pages where some sections commit independently (per-section mode) or where all edits commit together (global mode)"
|
|
6762
|
+
],
|
|
6763
|
+
"when_not_to_use": [
|
|
6764
|
+
"Editors where each tab replaces the previous panel entirely (use admin-tabbed-editor)",
|
|
6765
|
+
"Inline single-record edits (use admin-detail-drawer)",
|
|
6766
|
+
"Multi-step flows with a linear progression (use admin-wizard)"
|
|
6767
|
+
]
|
|
6768
|
+
},
|
|
6769
|
+
"admin-shell": {
|
|
6770
|
+
"category": "admin",
|
|
6771
|
+
"description": "Foundational admin layout with sidebar, topbar, and main content area. Slot-driven for logo, navigation, breadcrumbs, user menu, and status indicators.",
|
|
6772
|
+
"components_used": [
|
|
6773
|
+
"breadcrumb",
|
|
6408
6774
|
"dropdown-menu",
|
|
6409
|
-
"
|
|
6775
|
+
"sidebar"
|
|
6410
6776
|
],
|
|
6411
6777
|
"when_to_use": [
|
|
6412
|
-
"
|
|
6413
|
-
"
|
|
6414
|
-
"
|
|
6778
|
+
"Internal admin tools and back-office apps",
|
|
6779
|
+
"Dashboards with persistent side navigation",
|
|
6780
|
+
"CRUD-heavy applications needing a consistent chrome",
|
|
6781
|
+
"Any multi-page admin area requiring breadcrumbs and a user menu"
|
|
6782
|
+
],
|
|
6783
|
+
"when_not_to_use": [
|
|
6784
|
+
"Public marketing pages (use hero-section, cta-section, footer-section)",
|
|
6785
|
+
"Authentication screens (use login-form)",
|
|
6786
|
+
"Full-bleed canvas experiences without chrome"
|
|
6415
6787
|
]
|
|
6416
6788
|
},
|
|
6417
|
-
"
|
|
6418
|
-
"
|
|
6789
|
+
"admin-tabbed-editor": {
|
|
6790
|
+
"category": "admin",
|
|
6791
|
+
"description": "Full-page editor with horizontal tabs, tab-scoped content panels, and a sticky save/cancel footer. Composes PageHeader, Tabs, Button, and ConfirmDialog. Tab switching and cancel are protected by an unsaved-changes guard, save supports async with pending state.",
|
|
6419
6792
|
"components_used": [
|
|
6420
|
-
"
|
|
6793
|
+
"page-header",
|
|
6794
|
+
"tabs",
|
|
6421
6795
|
"button",
|
|
6422
|
-
"
|
|
6423
|
-
"text"
|
|
6796
|
+
"confirm-dialog"
|
|
6424
6797
|
],
|
|
6425
6798
|
"when_to_use": [
|
|
6426
|
-
"
|
|
6427
|
-
"
|
|
6428
|
-
"
|
|
6429
|
-
|
|
6799
|
+
"Full-page record editors where settings span multiple logical sections",
|
|
6800
|
+
"Profile editors, settings pages, resource configuration pages",
|
|
6801
|
+
"Any editor that benefits from a single global save across multiple tab panels"
|
|
6802
|
+
],
|
|
6803
|
+
"when_not_to_use": [
|
|
6804
|
+
"Inline single-record edits (use admin-detail-drawer)",
|
|
6805
|
+
"Multi-step forms with a linear progression (use admin-wizard)",
|
|
6806
|
+
"Pages without meaningful grouping (use a plain form)"
|
|
6430
6807
|
]
|
|
6431
6808
|
},
|
|
6432
|
-
"
|
|
6433
|
-
"
|
|
6809
|
+
"admin-wizard": {
|
|
6810
|
+
"category": "admin",
|
|
6811
|
+
"description": "Guided multi-step flow composing PageHeader, Stepper, and Button into a drop-in wizard with per-step async validation, final submit handler, horizontal or vertical stepper orientation, optional click-to-jump stepper navigation to completed steps, and a cancel guard via ConfirmDialog. Only the active step's content is mounted.",
|
|
6434
6812
|
"components_used": [
|
|
6435
|
-
"
|
|
6436
|
-
"
|
|
6437
|
-
"label",
|
|
6438
|
-
"textarea",
|
|
6813
|
+
"page-header",
|
|
6814
|
+
"stepper",
|
|
6439
6815
|
"button",
|
|
6440
|
-
"
|
|
6816
|
+
"confirm-dialog"
|
|
6441
6817
|
],
|
|
6442
6818
|
"when_to_use": [
|
|
6443
|
-
"
|
|
6444
|
-
"
|
|
6445
|
-
"
|
|
6819
|
+
"Multi-step create flows — onboarding, account setup, content creation",
|
|
6820
|
+
"Guided configuration where each step depends on decisions made earlier",
|
|
6821
|
+
"Any linear progression where the user should see clear progress and can step back to revise earlier answers"
|
|
6822
|
+
],
|
|
6823
|
+
"when_not_to_use": [
|
|
6824
|
+
"Long scrollable settings pages (use admin-settings-page)",
|
|
6825
|
+
"Editors where each tab is an independent view of the same record (use admin-tabbed-editor)",
|
|
6826
|
+
"Single-record inline edits (use admin-detail-drawer)"
|
|
6446
6827
|
]
|
|
6447
6828
|
},
|
|
6448
|
-
"
|
|
6449
|
-
"
|
|
6829
|
+
"configuration-panel": {
|
|
6830
|
+
"category": "configuration",
|
|
6831
|
+
"description": "A floating, glassmorphic configuration panel for organizing controls into labeled sections. Supports collapse animation, positional anchoring, and responsive stacking. Composed from Visor form components.",
|
|
6832
|
+
"components_used": [
|
|
6833
|
+
"separator"
|
|
6834
|
+
],
|
|
6835
|
+
"when_to_use": [
|
|
6836
|
+
"Building control panels for interactive visualizations",
|
|
6837
|
+
"Settings or configuration UIs that float over content",
|
|
6838
|
+
"Any grouped-controls panel needing glassmorphic styling"
|
|
6839
|
+
],
|
|
6840
|
+
"when_not_to_use": [
|
|
6841
|
+
"Static forms that live inline in page flow (use Card instead)",
|
|
6842
|
+
"Simple single-control toggles (use individual form components)"
|
|
6843
|
+
]
|
|
6844
|
+
},
|
|
6845
|
+
"cta-section": {
|
|
6846
|
+
"category": "marketing",
|
|
6847
|
+
"description": "A centered call-to-action section composing Heading, Text, and Button.",
|
|
6848
|
+
"components_used": [
|
|
6849
|
+
"heading",
|
|
6850
|
+
"text",
|
|
6851
|
+
"button"
|
|
6852
|
+
],
|
|
6853
|
+
"when_to_use": [
|
|
6854
|
+
"Marketing landing pages",
|
|
6855
|
+
"Conversion sections",
|
|
6856
|
+
"Upgrade prompts"
|
|
6857
|
+
],
|
|
6858
|
+
"when_not_to_use": [
|
|
6859
|
+
"Inline CTAs within content (use Button directly)"
|
|
6860
|
+
]
|
|
6861
|
+
},
|
|
6862
|
+
"design-system-deck": {
|
|
6863
|
+
"category": "documentation",
|
|
6864
|
+
"description": "A complete, registry-driven design system presentation deck. Composes all slide components into a DeckRenderer with TOC, dot navigation, keyboard nav, and fullscreen support. Responds dynamically to the active theme.",
|
|
6450
6865
|
"components_used": [
|
|
6866
|
+
"alert",
|
|
6867
|
+
"badge",
|
|
6868
|
+
"button",
|
|
6451
6869
|
"card",
|
|
6870
|
+
"checkbox",
|
|
6871
|
+
"deck-renderer",
|
|
6872
|
+
"heading",
|
|
6452
6873
|
"input",
|
|
6453
|
-
"
|
|
6874
|
+
"label",
|
|
6875
|
+
"progress",
|
|
6876
|
+
"radio-group",
|
|
6454
6877
|
"select",
|
|
6878
|
+
"separator",
|
|
6879
|
+
"slide",
|
|
6880
|
+
"slide-header",
|
|
6455
6881
|
"switch",
|
|
6882
|
+
"tabs",
|
|
6883
|
+
"text",
|
|
6884
|
+
"toggle-group"
|
|
6885
|
+
],
|
|
6886
|
+
"when_to_use": [
|
|
6887
|
+
"Presenting a design system as a navigable deck",
|
|
6888
|
+
"Previewing a theme's full token coverage in slide format",
|
|
6889
|
+
"Design system documentation and onboarding"
|
|
6890
|
+
],
|
|
6891
|
+
"when_not_to_use": [
|
|
6892
|
+
"Production user-facing pages",
|
|
6893
|
+
"When a flat specimen view is preferred (use design-system-specimen instead)"
|
|
6894
|
+
]
|
|
6895
|
+
},
|
|
6896
|
+
"design-system-specimen": {
|
|
6897
|
+
"category": "documentation",
|
|
6898
|
+
"description": "Live interactive showcase of the full Visor token system and component library. Responds dynamically to the active theme.",
|
|
6899
|
+
"components_used": [
|
|
6900
|
+
"alert",
|
|
6901
|
+
"badge",
|
|
6456
6902
|
"button",
|
|
6457
|
-
"
|
|
6458
|
-
"
|
|
6903
|
+
"card",
|
|
6904
|
+
"checkbox",
|
|
6905
|
+
"heading",
|
|
6906
|
+
"input",
|
|
6907
|
+
"label",
|
|
6908
|
+
"progress",
|
|
6909
|
+
"radio-group",
|
|
6910
|
+
"select",
|
|
6459
6911
|
"separator",
|
|
6912
|
+
"slider",
|
|
6913
|
+
"switch",
|
|
6460
6914
|
"tabs",
|
|
6461
|
-
"
|
|
6915
|
+
"text",
|
|
6916
|
+
"textarea",
|
|
6917
|
+
"toggle-group"
|
|
6462
6918
|
],
|
|
6463
6919
|
"when_to_use": [
|
|
6464
|
-
"
|
|
6465
|
-
"
|
|
6466
|
-
"
|
|
6920
|
+
"Previewing a theme's full token coverage",
|
|
6921
|
+
"Validating design system consistency across components",
|
|
6922
|
+
"Design system documentation and onboarding"
|
|
6923
|
+
],
|
|
6924
|
+
"when_not_to_use": [
|
|
6925
|
+
"Production user-facing pages"
|
|
6467
6926
|
]
|
|
6468
|
-
}
|
|
6469
|
-
|
|
6470
|
-
|
|
6471
|
-
|
|
6472
|
-
"
|
|
6473
|
-
|
|
6474
|
-
|
|
6475
|
-
|
|
6476
|
-
|
|
6927
|
+
},
|
|
6928
|
+
"features-grid": {
|
|
6929
|
+
"category": "marketing",
|
|
6930
|
+
"description": "A responsive grid of feature cards with icons, titles, and descriptions. Demonstrates Card + icon composition in a configurable grid layout.",
|
|
6931
|
+
"components_used": [
|
|
6932
|
+
"card",
|
|
6933
|
+
"heading",
|
|
6934
|
+
"text"
|
|
6935
|
+
],
|
|
6936
|
+
"when_to_use": [
|
|
6937
|
+
"Product feature showcases",
|
|
6938
|
+
"Service offering grids",
|
|
6939
|
+
"Capability overviews"
|
|
6940
|
+
],
|
|
6941
|
+
"when_not_to_use": [
|
|
6942
|
+
"Icon-only grids without descriptions (use icon-grid specimen)",
|
|
6943
|
+
"Single feature highlights"
|
|
6944
|
+
]
|
|
6945
|
+
},
|
|
6946
|
+
"footer-section": {
|
|
6947
|
+
"category": "marketing",
|
|
6948
|
+
"description": "A multi-column responsive footer with link groups, logo area, and copyright.",
|
|
6949
|
+
"components_used": [
|
|
6950
|
+
"heading",
|
|
6951
|
+
"text",
|
|
6952
|
+
"separator"
|
|
6953
|
+
],
|
|
6954
|
+
"when_to_use": [
|
|
6955
|
+
"Website footers",
|
|
6956
|
+
"Landing page footers",
|
|
6957
|
+
"App marketing site footers"
|
|
6958
|
+
],
|
|
6959
|
+
"when_not_to_use": [
|
|
6960
|
+
"In-app footers (typically minimal)",
|
|
6961
|
+
"Presentation footers (use deck-footer)"
|
|
6962
|
+
]
|
|
6963
|
+
},
|
|
6964
|
+
"hero-section": {
|
|
6965
|
+
"category": "marketing",
|
|
6966
|
+
"description": "A full-width hero section with background media support, heading, subheading, and call-to-action button.",
|
|
6967
|
+
"components_used": [
|
|
6968
|
+
"heading",
|
|
6969
|
+
"text",
|
|
6970
|
+
"button"
|
|
6971
|
+
],
|
|
6972
|
+
"when_to_use": [
|
|
6973
|
+
"Marketing landing page hero",
|
|
6974
|
+
"Product launch pages",
|
|
6975
|
+
"App landing pages"
|
|
6976
|
+
],
|
|
6977
|
+
"when_not_to_use": [
|
|
6978
|
+
"Presentation slides (use deck hero-slide)",
|
|
6979
|
+
"Content sections without full-viewport height"
|
|
6980
|
+
]
|
|
6981
|
+
},
|
|
6982
|
+
"login-form": {
|
|
6983
|
+
"category": "authentication",
|
|
6984
|
+
"description": "A login form block using Visor form components (Button, Input, Label, Card).",
|
|
6985
|
+
"components_used": [
|
|
6986
|
+
"button",
|
|
6987
|
+
"input",
|
|
6988
|
+
"field",
|
|
6989
|
+
"card"
|
|
6990
|
+
],
|
|
6991
|
+
"when_to_use": [
|
|
6992
|
+
"Authentication pages",
|
|
6993
|
+
"Sign-in screens",
|
|
6994
|
+
"Demo login flows"
|
|
6995
|
+
],
|
|
6996
|
+
"when_not_to_use": [
|
|
6997
|
+
"Registration forms (extend with additional fields)",
|
|
6998
|
+
"OAuth-only flows with no email/password fields"
|
|
6999
|
+
]
|
|
7000
|
+
},
|
|
7001
|
+
"pricing-section": {
|
|
7002
|
+
"category": "marketing",
|
|
7003
|
+
"description": "A responsive pricing tier grid with feature lists, highlighted plan, and per-tier CTAs.",
|
|
7004
|
+
"components_used": [
|
|
7005
|
+
"card",
|
|
7006
|
+
"badge",
|
|
7007
|
+
"button",
|
|
7008
|
+
"separator",
|
|
7009
|
+
"heading",
|
|
7010
|
+
"text"
|
|
7011
|
+
],
|
|
7012
|
+
"when_to_use": [
|
|
7013
|
+
"SaaS pricing pages",
|
|
7014
|
+
"Product comparison grids",
|
|
7015
|
+
"Subscription tier displays"
|
|
7016
|
+
],
|
|
7017
|
+
"when_not_to_use": [
|
|
7018
|
+
"Single product pricing (use Card directly)",
|
|
7019
|
+
"Feature comparison tables without pricing"
|
|
7020
|
+
]
|
|
7021
|
+
},
|
|
7022
|
+
"sphere-playground": {
|
|
7023
|
+
"category": "visual-elements",
|
|
7024
|
+
"description": "An interactive demo composing the Sphere visualization with a Configuration Panel for real-time parameter control. The signature showcase for Visual Elements.",
|
|
7025
|
+
"components_used": [
|
|
7026
|
+
"sphere",
|
|
7027
|
+
"configuration-panel",
|
|
7028
|
+
"slider-control",
|
|
7029
|
+
"toggle-group"
|
|
7030
|
+
],
|
|
7031
|
+
"when_to_use": [
|
|
7032
|
+
"Showcasing the Sphere component with interactive controls",
|
|
7033
|
+
"Building immersive GPU-accelerated visual demos",
|
|
7034
|
+
"Demonstrating Visor's visual element capabilities"
|
|
7035
|
+
],
|
|
7036
|
+
"when_not_to_use": [
|
|
7037
|
+
"Embedding a sphere without controls — use the Sphere component directly",
|
|
7038
|
+
"Building a custom control panel — use ConfigurationPanel independently"
|
|
7039
|
+
]
|
|
7040
|
+
},
|
|
7041
|
+
"steps-section": {
|
|
7042
|
+
"category": "marketing",
|
|
7043
|
+
"description": "A numbered process section with auto-numbered steps and connector lines. Suitable for \"how it works\" sections and onboarding flows.",
|
|
7044
|
+
"components_used": [
|
|
7045
|
+
"heading",
|
|
7046
|
+
"text"
|
|
7047
|
+
],
|
|
7048
|
+
"when_to_use": [
|
|
7049
|
+
"How it works sections",
|
|
7050
|
+
"Onboarding flow overviews",
|
|
7051
|
+
"Process explanations"
|
|
7052
|
+
],
|
|
7053
|
+
"when_not_to_use": [
|
|
7054
|
+
"Detailed multi-step wizards (use stepper/form)",
|
|
7055
|
+
"Vertical timelines with dates (use timeline component)"
|
|
7056
|
+
]
|
|
7057
|
+
},
|
|
7058
|
+
"testimonial-section": {
|
|
7059
|
+
"category": "marketing",
|
|
7060
|
+
"description": "A social proof section with testimonial quotes, avatars, and attribution. Supports single centered layout or responsive grid for multiple testimonials.",
|
|
7061
|
+
"components_used": [
|
|
7062
|
+
"card",
|
|
7063
|
+
"avatar",
|
|
7064
|
+
"text",
|
|
7065
|
+
"heading",
|
|
7066
|
+
"separator"
|
|
7067
|
+
],
|
|
7068
|
+
"when_to_use": [
|
|
7069
|
+
"Customer testimonials",
|
|
7070
|
+
"Social proof sections",
|
|
7071
|
+
"Review showcases"
|
|
7072
|
+
],
|
|
7073
|
+
"when_not_to_use": [
|
|
7074
|
+
"Product reviews with ratings (extend with star component)",
|
|
7075
|
+
"User-generated content feeds"
|
|
7076
|
+
]
|
|
7077
|
+
}
|
|
7078
|
+
},
|
|
7079
|
+
"hooks": {
|
|
7080
|
+
"use-media-query": {
|
|
7081
|
+
"description": "SSR-safe hook that returns whether a CSS media query matches.",
|
|
7082
|
+
"params": [
|
|
7083
|
+
{
|
|
7084
|
+
"name": "query",
|
|
7085
|
+
"type": "string",
|
|
7086
|
+
"required": true,
|
|
7087
|
+
"description": "CSS media query string (e.g. \"(min-width: 768px)\")."
|
|
7088
|
+
}
|
|
7089
|
+
],
|
|
7090
|
+
"returns": [
|
|
7091
|
+
{
|
|
7092
|
+
"name": "matches",
|
|
7093
|
+
"type": "boolean",
|
|
7094
|
+
"description": "Whether the media query currently matches. SSR-safe (defaults to false)."
|
|
7095
|
+
}
|
|
7096
|
+
]
|
|
7097
|
+
},
|
|
7098
|
+
"use-debounce": {
|
|
7099
|
+
"description": "Debounces a value by delaying updates until after a specified delay. Useful for search inputs and high-frequency events.",
|
|
7100
|
+
"params": [
|
|
7101
|
+
{
|
|
7102
|
+
"name": "value",
|
|
7103
|
+
"type": "T",
|
|
7104
|
+
"required": true,
|
|
7105
|
+
"description": "The value to debounce."
|
|
7106
|
+
},
|
|
7107
|
+
{
|
|
7108
|
+
"name": "delay",
|
|
7109
|
+
"type": "number",
|
|
7110
|
+
"required": true,
|
|
7111
|
+
"description": "Delay in milliseconds before the debounced value updates."
|
|
7112
|
+
}
|
|
7113
|
+
],
|
|
7114
|
+
"returns": [
|
|
7115
|
+
{
|
|
7116
|
+
"name": "debouncedValue",
|
|
7117
|
+
"type": "T",
|
|
7118
|
+
"description": "The debounced value, updated only after the delay elapses with no new changes."
|
|
7119
|
+
}
|
|
7120
|
+
]
|
|
7121
|
+
},
|
|
7122
|
+
"use-click-outside": {
|
|
7123
|
+
"description": "Fires a callback when a click or touch event occurs outside the referenced element. Useful for closing dropdowns and popovers.",
|
|
7124
|
+
"params": [
|
|
7125
|
+
{
|
|
7126
|
+
"name": "ref",
|
|
7127
|
+
"type": "RefObject<T extends HTMLElement>",
|
|
7128
|
+
"required": true,
|
|
7129
|
+
"description": "Ref to the element that defines the \"inside\" boundary."
|
|
7130
|
+
},
|
|
7131
|
+
{
|
|
7132
|
+
"name": "handler",
|
|
7133
|
+
"type": "(event: MouseEvent | TouchEvent) => void",
|
|
7134
|
+
"required": true,
|
|
7135
|
+
"description": "Callback invoked when a click/touch lands outside the ref element."
|
|
7136
|
+
}
|
|
7137
|
+
]
|
|
7138
|
+
},
|
|
7139
|
+
"use-currency": {
|
|
7140
|
+
"description": "Detects user locale and returns currency symbol and price formatter for USD, EUR, and GBP.",
|
|
7141
|
+
"returns": [
|
|
7142
|
+
{
|
|
7143
|
+
"name": "currency",
|
|
7144
|
+
"type": "'usd' | 'eur' | 'gbp'",
|
|
7145
|
+
"description": "Detected currency code based on browser locale."
|
|
7146
|
+
},
|
|
7147
|
+
{
|
|
7148
|
+
"name": "symbol",
|
|
7149
|
+
"type": "string",
|
|
7150
|
+
"description": "Currency symbol ($, EUR, or GBP)."
|
|
7151
|
+
},
|
|
7152
|
+
{
|
|
7153
|
+
"name": "formatPrice",
|
|
7154
|
+
"type": "(prices: Record<Currency, number>) => string",
|
|
7155
|
+
"description": "Formats a price object into a localized string using the detected currency."
|
|
7156
|
+
}
|
|
7157
|
+
]
|
|
7158
|
+
},
|
|
7159
|
+
"use-local-storage": {
|
|
7160
|
+
"description": "Persists state to localStorage with SSR safety, functional updates, and cross-tab synchronisation.",
|
|
7161
|
+
"params": [
|
|
7162
|
+
{
|
|
7163
|
+
"name": "key",
|
|
7164
|
+
"type": "string",
|
|
7165
|
+
"required": true,
|
|
7166
|
+
"description": "The localStorage key to read from and write to."
|
|
7167
|
+
},
|
|
7168
|
+
{
|
|
7169
|
+
"name": "initialValue",
|
|
7170
|
+
"type": "T",
|
|
7171
|
+
"required": true,
|
|
7172
|
+
"description": "Default value used when no stored value exists or localStorage is unavailable."
|
|
7173
|
+
}
|
|
7174
|
+
],
|
|
7175
|
+
"returns": [
|
|
7176
|
+
{
|
|
7177
|
+
"name": "storedValue",
|
|
7178
|
+
"type": "T",
|
|
7179
|
+
"description": "Current value from localStorage (or the initial value as fallback)."
|
|
7180
|
+
},
|
|
7181
|
+
{
|
|
7182
|
+
"name": "setValue",
|
|
7183
|
+
"type": "(value: T | ((prev: T) => T)) => void",
|
|
7184
|
+
"description": "Updates the stored value. Accepts a direct value or an updater function."
|
|
7185
|
+
},
|
|
7186
|
+
{
|
|
7187
|
+
"name": "removeValue",
|
|
7188
|
+
"type": "() => void",
|
|
7189
|
+
"description": "Removes the key from localStorage and resets to the initial value."
|
|
7190
|
+
}
|
|
7191
|
+
]
|
|
7192
|
+
},
|
|
7193
|
+
"use-intersection-observer": {
|
|
7194
|
+
"description": "Tracks whether an element is visible within the viewport using IntersectionObserver. Supports one-shot mode for lazy loading.",
|
|
7195
|
+
"params": [
|
|
7196
|
+
{
|
|
7197
|
+
"name": "once",
|
|
7198
|
+
"type": "boolean",
|
|
7199
|
+
"required": false,
|
|
7200
|
+
"default": "false",
|
|
7201
|
+
"description": "If true, stops observing after the element first intersects."
|
|
7202
|
+
},
|
|
7203
|
+
{
|
|
7204
|
+
"name": "threshold",
|
|
7205
|
+
"type": "number | number[]",
|
|
7206
|
+
"required": false,
|
|
7207
|
+
"default": "0",
|
|
7208
|
+
"description": "IntersectionObserver visibility threshold."
|
|
7209
|
+
},
|
|
7210
|
+
{
|
|
7211
|
+
"name": "root",
|
|
7212
|
+
"type": "Element | null",
|
|
7213
|
+
"required": false,
|
|
7214
|
+
"default": "null",
|
|
7215
|
+
"description": "Scroll container to use as the intersection root."
|
|
7216
|
+
},
|
|
7217
|
+
{
|
|
7218
|
+
"name": "rootMargin",
|
|
7219
|
+
"type": "string",
|
|
7220
|
+
"required": false,
|
|
7221
|
+
"default": "\"0%\"",
|
|
7222
|
+
"description": "Margin around the root for expanding or shrinking the intersection area."
|
|
7223
|
+
}
|
|
7224
|
+
],
|
|
7225
|
+
"returns": [
|
|
7226
|
+
{
|
|
7227
|
+
"name": "ref",
|
|
7228
|
+
"type": "React.RefObject<Element | null>",
|
|
7229
|
+
"description": "Ref to attach to the element you want to observe."
|
|
7230
|
+
},
|
|
7231
|
+
{
|
|
7232
|
+
"name": "isIntersecting",
|
|
7233
|
+
"type": "boolean",
|
|
7234
|
+
"description": "Whether the observed element is currently intersecting."
|
|
7235
|
+
},
|
|
7236
|
+
{
|
|
7237
|
+
"name": "entry",
|
|
7238
|
+
"type": "IntersectionObserverEntry | null",
|
|
7239
|
+
"description": "The raw IntersectionObserverEntry, or null before first observation."
|
|
7240
|
+
}
|
|
7241
|
+
]
|
|
7242
|
+
},
|
|
7243
|
+
"use-keyboard-shortcut": {
|
|
7244
|
+
"description": "Fires a callback when a specific keyboard shortcut is pressed, with support for modifier keys (Meta, Ctrl, Shift, Alt).",
|
|
7245
|
+
"params": [
|
|
7246
|
+
{
|
|
7247
|
+
"name": "key",
|
|
7248
|
+
"type": "string",
|
|
7249
|
+
"required": true,
|
|
7250
|
+
"description": "The key to listen for (case-insensitive, e.g. \"k\", \"Escape\")."
|
|
7251
|
+
},
|
|
7252
|
+
{
|
|
7253
|
+
"name": "callback",
|
|
7254
|
+
"type": "(event: KeyboardEvent) => void",
|
|
7255
|
+
"required": true,
|
|
7256
|
+
"description": "Function invoked when the shortcut is triggered."
|
|
7257
|
+
},
|
|
7258
|
+
{
|
|
7259
|
+
"name": "options",
|
|
7260
|
+
"type": "KeyboardShortcutOptions",
|
|
7261
|
+
"required": false,
|
|
7262
|
+
"description": "Modifier and target configuration."
|
|
7263
|
+
},
|
|
7264
|
+
{
|
|
7265
|
+
"name": "options.meta",
|
|
7266
|
+
"type": "boolean",
|
|
7267
|
+
"required": false,
|
|
7268
|
+
"default": "false",
|
|
7269
|
+
"description": "Whether the Meta (Cmd/Win) key must be held."
|
|
7270
|
+
},
|
|
7271
|
+
{
|
|
7272
|
+
"name": "options.ctrl",
|
|
7273
|
+
"type": "boolean",
|
|
7274
|
+
"required": false,
|
|
7275
|
+
"default": "false",
|
|
7276
|
+
"description": "Whether the Ctrl key must be held."
|
|
7277
|
+
},
|
|
7278
|
+
{
|
|
7279
|
+
"name": "options.shift",
|
|
7280
|
+
"type": "boolean",
|
|
7281
|
+
"required": false,
|
|
7282
|
+
"default": "false",
|
|
7283
|
+
"description": "Whether the Shift key must be held."
|
|
7284
|
+
},
|
|
7285
|
+
{
|
|
7286
|
+
"name": "options.alt",
|
|
7287
|
+
"type": "boolean",
|
|
7288
|
+
"required": false,
|
|
7289
|
+
"default": "false",
|
|
7290
|
+
"description": "Whether the Alt/Option key must be held."
|
|
7291
|
+
},
|
|
7292
|
+
{
|
|
7293
|
+
"name": "options.target",
|
|
7294
|
+
"type": "EventTarget | null",
|
|
7295
|
+
"required": false,
|
|
7296
|
+
"default": "document",
|
|
7297
|
+
"description": "Element to attach the listener to."
|
|
7298
|
+
},
|
|
7299
|
+
{
|
|
7300
|
+
"name": "options.preventDefault",
|
|
7301
|
+
"type": "boolean",
|
|
7302
|
+
"required": false,
|
|
7303
|
+
"default": "false",
|
|
7304
|
+
"description": "Whether to prevent the default browser action."
|
|
7305
|
+
}
|
|
7306
|
+
]
|
|
7307
|
+
},
|
|
7308
|
+
"use-focus-trap": {
|
|
7309
|
+
"description": "Traps keyboard focus within a container element. Used for accessible modals, drawers, and dialogs.",
|
|
7310
|
+
"params": [
|
|
7311
|
+
{
|
|
7312
|
+
"name": "ref",
|
|
7313
|
+
"type": "RefObject<HTMLElement | null>",
|
|
7314
|
+
"required": true,
|
|
7315
|
+
"description": "Ref to the container element that traps focus."
|
|
7316
|
+
},
|
|
7317
|
+
{
|
|
7318
|
+
"name": "enabled",
|
|
7319
|
+
"type": "boolean",
|
|
7320
|
+
"required": false,
|
|
7321
|
+
"default": "true",
|
|
7322
|
+
"description": "Whether the focus trap is active."
|
|
7323
|
+
}
|
|
7324
|
+
]
|
|
7325
|
+
},
|
|
7326
|
+
"use-previous": {
|
|
7327
|
+
"description": "Returns the previous value of a variable from the last render. Useful for comparing values across renders.",
|
|
7328
|
+
"params": [
|
|
7329
|
+
{
|
|
7330
|
+
"name": "value",
|
|
7331
|
+
"type": "T",
|
|
7332
|
+
"required": true,
|
|
7333
|
+
"description": "The value to track across renders."
|
|
7334
|
+
}
|
|
7335
|
+
],
|
|
7336
|
+
"returns": [
|
|
7337
|
+
{
|
|
7338
|
+
"name": "previousValue",
|
|
7339
|
+
"type": "T | undefined",
|
|
7340
|
+
"description": "The value from the previous render, or undefined on the first render."
|
|
7341
|
+
}
|
|
7342
|
+
]
|
|
7343
|
+
},
|
|
7344
|
+
"use-boolean": {
|
|
7345
|
+
"description": "Manages a boolean state with stable toggle, setTrue, and setFalse helpers. Useful for open/close and show/hide patterns.",
|
|
7346
|
+
"params": [
|
|
7347
|
+
{
|
|
7348
|
+
"name": "initialValue",
|
|
7349
|
+
"type": "boolean",
|
|
7350
|
+
"required": false,
|
|
7351
|
+
"default": "false",
|
|
7352
|
+
"description": "Initial boolean state value."
|
|
7353
|
+
}
|
|
7354
|
+
],
|
|
7355
|
+
"returns": [
|
|
7356
|
+
{
|
|
7357
|
+
"name": "value",
|
|
7358
|
+
"type": "boolean",
|
|
7359
|
+
"description": "Current boolean state."
|
|
7360
|
+
},
|
|
7361
|
+
{
|
|
7362
|
+
"name": "setTrue",
|
|
7363
|
+
"type": "() => void",
|
|
7364
|
+
"description": "Sets state to true."
|
|
7365
|
+
},
|
|
7366
|
+
{
|
|
7367
|
+
"name": "setFalse",
|
|
7368
|
+
"type": "() => void",
|
|
7369
|
+
"description": "Sets state to false."
|
|
7370
|
+
},
|
|
7371
|
+
{
|
|
7372
|
+
"name": "toggle",
|
|
7373
|
+
"type": "() => void",
|
|
7374
|
+
"description": "Toggles state between true and false."
|
|
7375
|
+
},
|
|
7376
|
+
{
|
|
7377
|
+
"name": "setValue",
|
|
7378
|
+
"type": "(value: boolean) => void",
|
|
7379
|
+
"description": "Sets state to an explicit boolean value."
|
|
7380
|
+
}
|
|
7381
|
+
]
|
|
7382
|
+
},
|
|
7383
|
+
"use-intersection-animation": {
|
|
7384
|
+
"description": "Observes section visibility via IntersectionObserver and updates the active index for scroll-driven animations.",
|
|
7385
|
+
"params": [
|
|
7386
|
+
{
|
|
7387
|
+
"name": "sectionsRef",
|
|
7388
|
+
"type": "React.RefObject<HTMLElement[]>",
|
|
7389
|
+
"required": true,
|
|
7390
|
+
"description": "Ref to an array of section elements to observe."
|
|
7391
|
+
},
|
|
7392
|
+
{
|
|
7393
|
+
"name": "currentIndexRef",
|
|
7394
|
+
"type": "React.MutableRefObject<number>",
|
|
7395
|
+
"required": true,
|
|
7396
|
+
"description": "Mutable ref holding the current visible section index."
|
|
7397
|
+
},
|
|
7398
|
+
{
|
|
7399
|
+
"name": "setCurrentIndex",
|
|
7400
|
+
"type": "(index: number) => void",
|
|
7401
|
+
"required": true,
|
|
7402
|
+
"description": "State setter called when the visible section changes."
|
|
7403
|
+
},
|
|
7404
|
+
{
|
|
7405
|
+
"name": "isScrollingRef",
|
|
7406
|
+
"type": "React.MutableRefObject<boolean>",
|
|
7407
|
+
"required": false,
|
|
7408
|
+
"description": "Ref indicating programmatic scrolling is in progress; suppresses index updates when true."
|
|
7409
|
+
},
|
|
7410
|
+
{
|
|
7411
|
+
"name": "threshold",
|
|
7412
|
+
"type": "number",
|
|
7413
|
+
"required": false,
|
|
7414
|
+
"default": "0.4",
|
|
7415
|
+
"description": "IntersectionObserver visibility threshold (0 to 1)."
|
|
7416
|
+
}
|
|
7417
|
+
]
|
|
7418
|
+
},
|
|
7419
|
+
"use-keyboard-nav": {
|
|
7420
|
+
"description": "Handles Arrow Up/Down and Home/End keyboard navigation to move between indexed sections or slides.",
|
|
7421
|
+
"params": [
|
|
7422
|
+
{
|
|
7423
|
+
"name": "containerRef",
|
|
7424
|
+
"type": "React.RefObject<HTMLElement | null>",
|
|
7425
|
+
"required": false,
|
|
7426
|
+
"description": "Container element to listen on. Falls back to document if not provided."
|
|
7427
|
+
},
|
|
7428
|
+
{
|
|
7429
|
+
"name": "goTo",
|
|
7430
|
+
"type": "(index: number) => void",
|
|
7431
|
+
"required": true,
|
|
7432
|
+
"description": "Navigation function that scrolls to the given section index."
|
|
7433
|
+
},
|
|
7434
|
+
{
|
|
7435
|
+
"name": "currentIndexRef",
|
|
7436
|
+
"type": "React.MutableRefObject<number>",
|
|
7437
|
+
"required": true,
|
|
7438
|
+
"description": "Mutable ref holding the current section index."
|
|
7439
|
+
},
|
|
7440
|
+
{
|
|
7441
|
+
"name": "totalSectionsRef",
|
|
7442
|
+
"type": "React.MutableRefObject<number>",
|
|
7443
|
+
"required": true,
|
|
7444
|
+
"description": "Mutable ref holding the total number of sections."
|
|
7445
|
+
}
|
|
7446
|
+
]
|
|
7447
|
+
},
|
|
7448
|
+
"use-slide-engine": {
|
|
7449
|
+
"description": "Provides smooth programmatic scrolling between indexed sections with a scrolling-lock guard to prevent observer conflicts.",
|
|
7450
|
+
"params": [
|
|
7451
|
+
{
|
|
7452
|
+
"name": "containerRef",
|
|
7453
|
+
"type": "React.RefObject<HTMLElement | null>",
|
|
7454
|
+
"required": false,
|
|
7455
|
+
"description": "Container element that scrolls. Falls back to scrollIntoView if not provided."
|
|
7456
|
+
},
|
|
7457
|
+
{
|
|
7458
|
+
"name": "sectionsRef",
|
|
7459
|
+
"type": "React.RefObject<HTMLElement[]>",
|
|
7460
|
+
"required": true,
|
|
7461
|
+
"description": "Ref to an array of section elements that can be navigated."
|
|
7462
|
+
},
|
|
7463
|
+
{
|
|
7464
|
+
"name": "currentIndexRef",
|
|
7465
|
+
"type": "React.MutableRefObject<number>",
|
|
7466
|
+
"required": true,
|
|
7467
|
+
"description": "Mutable ref holding the current section index."
|
|
7468
|
+
},
|
|
7469
|
+
{
|
|
7470
|
+
"name": "setCurrentIndex",
|
|
7471
|
+
"type": "(index: number) => void",
|
|
7472
|
+
"required": false,
|
|
7473
|
+
"description": "State setter called when navigation occurs."
|
|
7474
|
+
}
|
|
7475
|
+
],
|
|
7476
|
+
"returns": [
|
|
7477
|
+
{
|
|
7478
|
+
"name": "goTo",
|
|
7479
|
+
"type": "(index: number) => void",
|
|
7480
|
+
"description": "Scrolls to the section at the given index with smooth animation."
|
|
7481
|
+
},
|
|
7482
|
+
{
|
|
7483
|
+
"name": "navigateTo",
|
|
7484
|
+
"type": "(id: string) => void",
|
|
7485
|
+
"description": "Scrolls to a section by its DOM element id."
|
|
7486
|
+
},
|
|
7487
|
+
{
|
|
7488
|
+
"name": "isScrollingRef",
|
|
7489
|
+
"type": "React.MutableRefObject<boolean>",
|
|
7490
|
+
"description": "Ref indicating whether a programmatic scroll is in progress."
|
|
7491
|
+
}
|
|
7492
|
+
]
|
|
7493
|
+
},
|
|
7494
|
+
"use-wheel-nav": {
|
|
7495
|
+
"description": "Converts vertical wheel events into discrete index-based navigation with debounced throttling.",
|
|
7496
|
+
"params": [
|
|
7497
|
+
{
|
|
7498
|
+
"name": "containerRef",
|
|
7499
|
+
"type": "React.RefObject<HTMLElement | null>",
|
|
7500
|
+
"required": false,
|
|
7501
|
+
"description": "Container element to listen on. Falls back to document if not provided."
|
|
7502
|
+
},
|
|
7503
|
+
{
|
|
7504
|
+
"name": "goTo",
|
|
7505
|
+
"type": "(index: number) => void",
|
|
7506
|
+
"required": true,
|
|
7507
|
+
"description": "Navigation function that scrolls to the given section index."
|
|
7508
|
+
},
|
|
7509
|
+
{
|
|
7510
|
+
"name": "currentIndexRef",
|
|
7511
|
+
"type": "React.MutableRefObject<number>",
|
|
7512
|
+
"required": true,
|
|
7513
|
+
"description": "Mutable ref holding the current section index."
|
|
7514
|
+
}
|
|
7515
|
+
]
|
|
7516
|
+
}
|
|
7517
|
+
},
|
|
7518
|
+
"patterns": {
|
|
7519
|
+
"auth-flow": {
|
|
7520
|
+
"description": "Login, registration, and password recovery pages sharing a centered card layout.",
|
|
7521
|
+
"components_used": [
|
|
7522
|
+
"card",
|
|
7523
|
+
"input",
|
|
7524
|
+
"button",
|
|
7525
|
+
"field",
|
|
7526
|
+
"alert",
|
|
7527
|
+
"tabs"
|
|
7528
|
+
],
|
|
7529
|
+
"when_to_use": [
|
|
7530
|
+
"Sign-in and sign-up pages",
|
|
7531
|
+
"Forgot password and reset password flows",
|
|
7532
|
+
"Invitation acceptance screens"
|
|
7533
|
+
]
|
|
7534
|
+
},
|
|
7535
|
+
"card-grid": {
|
|
7536
|
+
"description": "A responsive grid of content cards with skeleton loading states, status badges, action buttons, pagination, and an empty-state fallback.",
|
|
7537
|
+
"components_used": [
|
|
7538
|
+
"card",
|
|
7539
|
+
"badge",
|
|
7540
|
+
"button",
|
|
7541
|
+
"skeleton",
|
|
7542
|
+
"empty-state",
|
|
7543
|
+
"pagination"
|
|
7544
|
+
],
|
|
7545
|
+
"when_to_use": [
|
|
7546
|
+
"Displaying a collection of items as visual tiles (projects, products, team members)",
|
|
7547
|
+
"When a table layout is too data-dense and card previews are more scannable",
|
|
7548
|
+
"Catalog or gallery pages with paginated content"
|
|
7549
|
+
]
|
|
7550
|
+
},
|
|
7551
|
+
"crud-table": {
|
|
7552
|
+
"description": "Data table with row actions, confirmation dialog, and pagination for managing collections of records.",
|
|
7553
|
+
"components_used": [
|
|
7554
|
+
"table",
|
|
7555
|
+
"button",
|
|
7556
|
+
"dropdown-menu",
|
|
7557
|
+
"dialog",
|
|
7558
|
+
"alert",
|
|
7559
|
+
"pagination",
|
|
7560
|
+
"badge"
|
|
7561
|
+
],
|
|
7562
|
+
"when_to_use": [
|
|
7563
|
+
"Admin pages listing and managing resources (users, orders, products)",
|
|
7564
|
+
"Any collection view with create, read, update, delete operations",
|
|
7565
|
+
"Data tables needing row-level actions and bulk operations"
|
|
7566
|
+
]
|
|
7567
|
+
},
|
|
7568
|
+
"dashboard-layout": {
|
|
7569
|
+
"description": "App shell with collapsible sidebar navigation, top navbar, and content area with cards and tabs.",
|
|
7570
|
+
"components_used": [
|
|
7571
|
+
"sidebar",
|
|
7572
|
+
"navbar",
|
|
7573
|
+
"card",
|
|
7574
|
+
"tabs",
|
|
7575
|
+
"separator",
|
|
7576
|
+
"scroll-area"
|
|
7577
|
+
],
|
|
7578
|
+
"when_to_use": [
|
|
7579
|
+
"Admin dashboards and internal tools",
|
|
7580
|
+
"Multi-section apps with persistent navigation",
|
|
7581
|
+
"Content-heavy layouts needing sidebar + main area structure"
|
|
7582
|
+
]
|
|
7583
|
+
},
|
|
7584
|
+
"data-table-row-actions": {
|
|
7585
|
+
"description": "A data table with per-row action menus, bulk selection with a bulk action bar, confirmation dialogs, and toast feedback for destructive operations.",
|
|
7586
|
+
"components_used": [
|
|
7587
|
+
"data-table",
|
|
7588
|
+
"dropdown-menu",
|
|
7589
|
+
"dialog",
|
|
7590
|
+
"confirm-dialog",
|
|
7591
|
+
"toast",
|
|
7592
|
+
"bulk-action-bar"
|
|
7593
|
+
],
|
|
7594
|
+
"when_to_use": [
|
|
7595
|
+
"Admin lists where rows have contextual actions (edit, archive, delete)",
|
|
7596
|
+
"When supporting both single-row and bulk operations on the same table",
|
|
7597
|
+
"Any CRUD interface where destructive actions require confirmation"
|
|
7598
|
+
]
|
|
7599
|
+
},
|
|
7600
|
+
"data-table-with-filters": {
|
|
7601
|
+
"description": "Filterable data table with a toolbar for search, category filters, and column sorting.",
|
|
7602
|
+
"components_used": [
|
|
7603
|
+
"table",
|
|
7604
|
+
"input",
|
|
7605
|
+
"select",
|
|
7606
|
+
"button",
|
|
7607
|
+
"badge",
|
|
7608
|
+
"dropdown-menu",
|
|
7609
|
+
"pagination"
|
|
7610
|
+
],
|
|
7611
|
+
"when_to_use": [
|
|
7612
|
+
"Data-heavy pages where users need to find specific records",
|
|
7613
|
+
"Admin dashboards with sortable, filterable lists",
|
|
7614
|
+
"Search result pages with faceted filtering"
|
|
7615
|
+
]
|
|
7616
|
+
},
|
|
7617
|
+
"empty-state": {
|
|
7618
|
+
"description": "Placeholder shown when a page, list, or search has no content to display.",
|
|
7619
|
+
"components_used": [
|
|
7620
|
+
"card",
|
|
7621
|
+
"button",
|
|
7622
|
+
"heading",
|
|
7623
|
+
"text"
|
|
7624
|
+
],
|
|
7625
|
+
"when_to_use": [
|
|
7626
|
+
"Empty lists or tables (no data yet)",
|
|
7627
|
+
"Search results returning zero matches",
|
|
7628
|
+
"First-time user onboarding (no content created yet)",
|
|
7629
|
+
"Error states where content failed to load"
|
|
7630
|
+
]
|
|
7631
|
+
},
|
|
7632
|
+
"form-with-validation": {
|
|
7633
|
+
"description": "Standard form layout with field-level validation and submission handling.",
|
|
7634
|
+
"components_used": [
|
|
7635
|
+
"field",
|
|
7636
|
+
"input",
|
|
7637
|
+
"label",
|
|
7638
|
+
"textarea",
|
|
7639
|
+
"button",
|
|
7640
|
+
"alert"
|
|
7641
|
+
],
|
|
7642
|
+
"when_to_use": [
|
|
7643
|
+
"Any form collecting user input (settings, profile, onboarding)",
|
|
7644
|
+
"Forms needing inline validation feedback",
|
|
7645
|
+
"Multi-field forms with consistent spacing and error display"
|
|
7646
|
+
]
|
|
7647
|
+
},
|
|
7648
|
+
"modal-form": {
|
|
7649
|
+
"description": "A dialog-based form pattern for creating or editing entities inline without navigating away.",
|
|
7650
|
+
"components_used": [
|
|
7651
|
+
"dialog",
|
|
7652
|
+
"field",
|
|
7653
|
+
"input",
|
|
7654
|
+
"label",
|
|
7655
|
+
"textarea",
|
|
7656
|
+
"button",
|
|
7657
|
+
"alert"
|
|
7658
|
+
],
|
|
7659
|
+
"when_to_use": [
|
|
7660
|
+
"Creating or editing a record without leaving the current page",
|
|
7661
|
+
"Collecting a small set of inputs (fewer than 8 fields)",
|
|
7662
|
+
"When the action is contextual to the parent list or table"
|
|
7663
|
+
]
|
|
7664
|
+
},
|
|
7665
|
+
"notification-center": {
|
|
7666
|
+
"description": "A popover-based notification hub with a command palette for filtering and bulk-managing alerts, toasts, and system messages.",
|
|
7667
|
+
"components_used": [
|
|
7668
|
+
"toast",
|
|
7669
|
+
"command",
|
|
7670
|
+
"button",
|
|
7671
|
+
"badge",
|
|
7672
|
+
"scroll-area"
|
|
7673
|
+
],
|
|
7674
|
+
"when_to_use": [
|
|
7675
|
+
"Apps with persistent in-app notifications or activity alerts",
|
|
7676
|
+
"When users need to review, dismiss, or act on multiple notifications at once",
|
|
7677
|
+
"Combining real-time toast feedback with a browsable notification history"
|
|
7678
|
+
]
|
|
7679
|
+
},
|
|
7680
|
+
"onboarding-flow": {
|
|
7681
|
+
"description": "A step-by-step welcome flow that collects user preferences and setup choices using progress tracking, cards, and inline forms with checkbox selections.",
|
|
7682
|
+
"components_used": [
|
|
7683
|
+
"stepper",
|
|
7684
|
+
"progress",
|
|
7685
|
+
"card",
|
|
7686
|
+
"button",
|
|
7687
|
+
"field",
|
|
7688
|
+
"input",
|
|
7689
|
+
"checkbox",
|
|
7690
|
+
"alert"
|
|
7691
|
+
],
|
|
7692
|
+
"when_to_use": [
|
|
7693
|
+
"First-run experiences after account creation",
|
|
7694
|
+
"Feature setup flows where configuration choices shape the initial workspace",
|
|
7695
|
+
"Product tours that collect preferences before showing the main dashboard"
|
|
7696
|
+
]
|
|
7697
|
+
},
|
|
7698
|
+
"responsive-sidebar-layout": {
|
|
7699
|
+
"description": "A full-app shell that renders a persistent sidebar on desktop and a Sheet-based drawer on mobile, sharing the same navigation content.",
|
|
7700
|
+
"components_used": [
|
|
7701
|
+
"sidebar",
|
|
7702
|
+
"sheet",
|
|
7703
|
+
"navbar",
|
|
7704
|
+
"button",
|
|
7705
|
+
"separator",
|
|
7706
|
+
"scroll-area"
|
|
7707
|
+
],
|
|
7708
|
+
"when_to_use": [
|
|
7709
|
+
"Any multi-section app needing sidebar navigation that must work on mobile",
|
|
7710
|
+
"When the desktop sidebar should collapse to a drawer without duplicating nav markup",
|
|
7711
|
+
"Admin tools, dashboards, or SaaS apps requiring a responsive shell"
|
|
7712
|
+
]
|
|
7713
|
+
},
|
|
7714
|
+
"search-results": {
|
|
7715
|
+
"description": "A search UI combining a type-ahead input, command palette, and filterable result cards with empty-state fallback.",
|
|
7716
|
+
"components_used": [
|
|
7717
|
+
"search-input",
|
|
7718
|
+
"command",
|
|
7719
|
+
"combobox",
|
|
7720
|
+
"card",
|
|
7721
|
+
"badge",
|
|
7722
|
+
"empty-state"
|
|
7723
|
+
],
|
|
7724
|
+
"when_to_use": [
|
|
7725
|
+
"Search pages where users need to filter and browse a large dataset",
|
|
7726
|
+
"When combining free-text search with faceted category filters",
|
|
7727
|
+
"Directory, catalog, or discovery interfaces with card-based result display"
|
|
7728
|
+
]
|
|
7729
|
+
},
|
|
7730
|
+
"settings-page": {
|
|
7731
|
+
"description": "Multi-section settings page with sidebar navigation, grouped form fields, and save actions.",
|
|
7732
|
+
"components_used": [
|
|
7733
|
+
"card",
|
|
7734
|
+
"input",
|
|
7735
|
+
"textarea",
|
|
7736
|
+
"select",
|
|
7737
|
+
"switch",
|
|
7738
|
+
"button",
|
|
7739
|
+
"field",
|
|
7740
|
+
"fieldset",
|
|
7741
|
+
"separator",
|
|
7742
|
+
"tabs",
|
|
7743
|
+
"avatar"
|
|
7744
|
+
],
|
|
7745
|
+
"when_to_use": [
|
|
7746
|
+
"User profile and account settings",
|
|
7747
|
+
"Application preferences and configuration",
|
|
7748
|
+
"Team or organization settings"
|
|
7749
|
+
]
|
|
7750
|
+
},
|
|
7751
|
+
"wizard-flow": {
|
|
7752
|
+
"description": "A multi-step guided flow with per-step validation, progress tracking, and a linear navigation structure for complex data collection.",
|
|
7753
|
+
"components_used": [
|
|
7754
|
+
"stepper",
|
|
7755
|
+
"field",
|
|
7756
|
+
"input",
|
|
7757
|
+
"button",
|
|
7758
|
+
"alert",
|
|
7759
|
+
"progress",
|
|
7760
|
+
"separator"
|
|
7761
|
+
],
|
|
7762
|
+
"when_to_use": [
|
|
7763
|
+
"Onboarding flows, setup wizards, or checkout sequences",
|
|
7764
|
+
"When a single long form would overwhelm the user — break into logical steps",
|
|
7765
|
+
"Flows where earlier steps gate or inform later steps"
|
|
7766
|
+
]
|
|
7767
|
+
}
|
|
7768
|
+
},
|
|
7769
|
+
"categories": {
|
|
7770
|
+
"specimen": [
|
|
7771
|
+
"accessibility-specimen",
|
|
7772
|
+
"color-bar",
|
|
7773
|
+
"color-swatch",
|
|
7774
|
+
"elevation-card",
|
|
7775
|
+
"font-showcase",
|
|
6477
7776
|
"icon-grid",
|
|
6478
7777
|
"motion-specimen",
|
|
6479
7778
|
"opacity-bar",
|
|
@@ -6526,6 +7825,7 @@
|
|
|
6526
7825
|
"checkbox",
|
|
6527
7826
|
"combobox",
|
|
6528
7827
|
"date-picker",
|
|
7828
|
+
"date-range-picker",
|
|
6529
7829
|
"field",
|
|
6530
7830
|
"fieldset",
|
|
6531
7831
|
"file-upload",
|
|
@@ -6551,25 +7851,2155 @@
|
|
|
6551
7851
|
"image",
|
|
6552
7852
|
"lightbox"
|
|
6553
7853
|
],
|
|
6554
|
-
"typography": [
|
|
6555
|
-
"code-block",
|
|
6556
|
-
"heading",
|
|
6557
|
-
"text"
|
|
7854
|
+
"typography": [
|
|
7855
|
+
"code-block",
|
|
7856
|
+
"heading",
|
|
7857
|
+
"text"
|
|
7858
|
+
],
|
|
7859
|
+
"layout": [
|
|
7860
|
+
"collapsible",
|
|
7861
|
+
"scroll-area",
|
|
7862
|
+
"separator",
|
|
7863
|
+
"sidebar"
|
|
7864
|
+
],
|
|
7865
|
+
"overlay": [
|
|
7866
|
+
"context-menu",
|
|
7867
|
+
"dialog",
|
|
7868
|
+
"dropdown-menu",
|
|
7869
|
+
"fullscreen-overlay",
|
|
7870
|
+
"hover-card",
|
|
7871
|
+
"menubar",
|
|
7872
|
+
"sheet"
|
|
7873
|
+
],
|
|
7874
|
+
"deck": [
|
|
7875
|
+
"deck-card-grid",
|
|
7876
|
+
"deck-carousel-gallery",
|
|
7877
|
+
"deck-closing-slide",
|
|
7878
|
+
"deck-concept-slide",
|
|
7879
|
+
"deck-context",
|
|
7880
|
+
"deck-dot-nav",
|
|
7881
|
+
"deck-footer",
|
|
7882
|
+
"deck-hero-slide",
|
|
7883
|
+
"deck-layout",
|
|
7884
|
+
"deck-renderer",
|
|
7885
|
+
"deck-slide-header",
|
|
7886
|
+
"deck-toc-slide",
|
|
7887
|
+
"slide",
|
|
7888
|
+
"slide-theme-context"
|
|
7889
|
+
],
|
|
7890
|
+
"visual-elements": [
|
|
7891
|
+
"sphere"
|
|
7892
|
+
]
|
|
7893
|
+
},
|
|
7894
|
+
"tokens": {
|
|
7895
|
+
"primitives": [
|
|
7896
|
+
{
|
|
7897
|
+
"name": "--color-neutral-50",
|
|
7898
|
+
"tier": "primitive",
|
|
7899
|
+
"description": "Primitive color: neutral-50",
|
|
7900
|
+
"defaultLight": "#f9fafb",
|
|
7901
|
+
"defaultDark": "#f9fafb"
|
|
7902
|
+
},
|
|
7903
|
+
{
|
|
7904
|
+
"name": "--color-neutral-100",
|
|
7905
|
+
"tier": "primitive",
|
|
7906
|
+
"description": "Primitive color: neutral-100",
|
|
7907
|
+
"defaultLight": "#f3f4f6",
|
|
7908
|
+
"defaultDark": "#f3f4f6"
|
|
7909
|
+
},
|
|
7910
|
+
{
|
|
7911
|
+
"name": "--color-neutral-200",
|
|
7912
|
+
"tier": "primitive",
|
|
7913
|
+
"description": "Primitive color: neutral-200",
|
|
7914
|
+
"defaultLight": "#e5e7eb",
|
|
7915
|
+
"defaultDark": "#e5e7eb"
|
|
7916
|
+
},
|
|
7917
|
+
{
|
|
7918
|
+
"name": "--color-neutral-300",
|
|
7919
|
+
"tier": "primitive",
|
|
7920
|
+
"description": "Primitive color: neutral-300",
|
|
7921
|
+
"defaultLight": "#d1d5db",
|
|
7922
|
+
"defaultDark": "#d1d5db"
|
|
7923
|
+
},
|
|
7924
|
+
{
|
|
7925
|
+
"name": "--color-neutral-400",
|
|
7926
|
+
"tier": "primitive",
|
|
7927
|
+
"description": "Primitive color: neutral-400",
|
|
7928
|
+
"defaultLight": "#9ca3af",
|
|
7929
|
+
"defaultDark": "#9ca3af"
|
|
7930
|
+
},
|
|
7931
|
+
{
|
|
7932
|
+
"name": "--color-neutral-500",
|
|
7933
|
+
"tier": "primitive",
|
|
7934
|
+
"description": "Primitive color: neutral-500",
|
|
7935
|
+
"defaultLight": "#6b7280",
|
|
7936
|
+
"defaultDark": "#6b7280"
|
|
7937
|
+
},
|
|
7938
|
+
{
|
|
7939
|
+
"name": "--color-neutral-600",
|
|
7940
|
+
"tier": "primitive",
|
|
7941
|
+
"description": "Primitive color: neutral-600",
|
|
7942
|
+
"defaultLight": "#4b5563",
|
|
7943
|
+
"defaultDark": "#4b5563"
|
|
7944
|
+
},
|
|
7945
|
+
{
|
|
7946
|
+
"name": "--color-neutral-700",
|
|
7947
|
+
"tier": "primitive",
|
|
7948
|
+
"description": "Primitive color: neutral-700",
|
|
7949
|
+
"defaultLight": "#374151",
|
|
7950
|
+
"defaultDark": "#374151"
|
|
7951
|
+
},
|
|
7952
|
+
{
|
|
7953
|
+
"name": "--color-neutral-800",
|
|
7954
|
+
"tier": "primitive",
|
|
7955
|
+
"description": "Primitive color: neutral-800",
|
|
7956
|
+
"defaultLight": "#1f2937",
|
|
7957
|
+
"defaultDark": "#1f2937"
|
|
7958
|
+
},
|
|
7959
|
+
{
|
|
7960
|
+
"name": "--color-neutral-900",
|
|
7961
|
+
"tier": "primitive",
|
|
7962
|
+
"description": "Primitive color: neutral-900",
|
|
7963
|
+
"defaultLight": "#111827",
|
|
7964
|
+
"defaultDark": "#111827"
|
|
7965
|
+
},
|
|
7966
|
+
{
|
|
7967
|
+
"name": "--color-neutral-950",
|
|
7968
|
+
"tier": "primitive",
|
|
7969
|
+
"description": "Primitive color: neutral-950",
|
|
7970
|
+
"defaultLight": "#030712",
|
|
7971
|
+
"defaultDark": "#030712"
|
|
7972
|
+
},
|
|
7973
|
+
{
|
|
7974
|
+
"name": "--color-white",
|
|
7975
|
+
"tier": "primitive",
|
|
7976
|
+
"description": "Primitive color: white",
|
|
7977
|
+
"defaultLight": "#ffffff",
|
|
7978
|
+
"defaultDark": "#ffffff"
|
|
7979
|
+
},
|
|
7980
|
+
{
|
|
7981
|
+
"name": "--color-black",
|
|
7982
|
+
"tier": "primitive",
|
|
7983
|
+
"description": "Primitive color: black",
|
|
7984
|
+
"defaultLight": "#000000",
|
|
7985
|
+
"defaultDark": "#000000"
|
|
7986
|
+
},
|
|
7987
|
+
{
|
|
7988
|
+
"name": "--color-primary-50",
|
|
7989
|
+
"tier": "primitive",
|
|
7990
|
+
"description": "Primitive color: primary-50",
|
|
7991
|
+
"defaultLight": "#eff6ff",
|
|
7992
|
+
"defaultDark": "#eff6ff"
|
|
7993
|
+
},
|
|
7994
|
+
{
|
|
7995
|
+
"name": "--color-primary-100",
|
|
7996
|
+
"tier": "primitive",
|
|
7997
|
+
"description": "Primitive color: primary-100",
|
|
7998
|
+
"defaultLight": "#dbeafe",
|
|
7999
|
+
"defaultDark": "#dbeafe"
|
|
8000
|
+
},
|
|
8001
|
+
{
|
|
8002
|
+
"name": "--color-primary-200",
|
|
8003
|
+
"tier": "primitive",
|
|
8004
|
+
"description": "Primitive color: primary-200",
|
|
8005
|
+
"defaultLight": "#bfdbfe",
|
|
8006
|
+
"defaultDark": "#bfdbfe"
|
|
8007
|
+
},
|
|
8008
|
+
{
|
|
8009
|
+
"name": "--color-primary-300",
|
|
8010
|
+
"tier": "primitive",
|
|
8011
|
+
"description": "Primitive color: primary-300",
|
|
8012
|
+
"defaultLight": "#93c5fd",
|
|
8013
|
+
"defaultDark": "#93c5fd"
|
|
8014
|
+
},
|
|
8015
|
+
{
|
|
8016
|
+
"name": "--color-primary-400",
|
|
8017
|
+
"tier": "primitive",
|
|
8018
|
+
"description": "Primitive color: primary-400",
|
|
8019
|
+
"defaultLight": "#60a5fa",
|
|
8020
|
+
"defaultDark": "#60a5fa"
|
|
8021
|
+
},
|
|
8022
|
+
{
|
|
8023
|
+
"name": "--color-primary-500",
|
|
8024
|
+
"tier": "primitive",
|
|
8025
|
+
"description": "Primitive color: primary-500",
|
|
8026
|
+
"defaultLight": "#3b82f6",
|
|
8027
|
+
"defaultDark": "#3b82f6"
|
|
8028
|
+
},
|
|
8029
|
+
{
|
|
8030
|
+
"name": "--color-primary-600",
|
|
8031
|
+
"tier": "primitive",
|
|
8032
|
+
"description": "Primitive color: primary-600",
|
|
8033
|
+
"defaultLight": "#2563eb",
|
|
8034
|
+
"defaultDark": "#2563eb"
|
|
8035
|
+
},
|
|
8036
|
+
{
|
|
8037
|
+
"name": "--color-primary-700",
|
|
8038
|
+
"tier": "primitive",
|
|
8039
|
+
"description": "Primitive color: primary-700",
|
|
8040
|
+
"defaultLight": "#1d4ed8",
|
|
8041
|
+
"defaultDark": "#1d4ed8"
|
|
8042
|
+
},
|
|
8043
|
+
{
|
|
8044
|
+
"name": "--color-primary-800",
|
|
8045
|
+
"tier": "primitive",
|
|
8046
|
+
"description": "Primitive color: primary-800",
|
|
8047
|
+
"defaultLight": "#1e40af",
|
|
8048
|
+
"defaultDark": "#1e40af"
|
|
8049
|
+
},
|
|
8050
|
+
{
|
|
8051
|
+
"name": "--color-primary-900",
|
|
8052
|
+
"tier": "primitive",
|
|
8053
|
+
"description": "Primitive color: primary-900",
|
|
8054
|
+
"defaultLight": "#1e3a8a",
|
|
8055
|
+
"defaultDark": "#1e3a8a"
|
|
8056
|
+
},
|
|
8057
|
+
{
|
|
8058
|
+
"name": "--color-success-50",
|
|
8059
|
+
"tier": "primitive",
|
|
8060
|
+
"description": "Primitive color: success-50",
|
|
8061
|
+
"defaultLight": "#f0fdf4",
|
|
8062
|
+
"defaultDark": "#f0fdf4"
|
|
8063
|
+
},
|
|
8064
|
+
{
|
|
8065
|
+
"name": "--color-success-100",
|
|
8066
|
+
"tier": "primitive",
|
|
8067
|
+
"description": "Primitive color: success-100",
|
|
8068
|
+
"defaultLight": "#dcfce7",
|
|
8069
|
+
"defaultDark": "#dcfce7"
|
|
8070
|
+
},
|
|
8071
|
+
{
|
|
8072
|
+
"name": "--color-success-500",
|
|
8073
|
+
"tier": "primitive",
|
|
8074
|
+
"description": "Primitive color: success-500",
|
|
8075
|
+
"defaultLight": "#22c55e",
|
|
8076
|
+
"defaultDark": "#22c55e"
|
|
8077
|
+
},
|
|
8078
|
+
{
|
|
8079
|
+
"name": "--color-success-600",
|
|
8080
|
+
"tier": "primitive",
|
|
8081
|
+
"description": "Primitive color: success-600",
|
|
8082
|
+
"defaultLight": "#16a34a",
|
|
8083
|
+
"defaultDark": "#16a34a"
|
|
8084
|
+
},
|
|
8085
|
+
{
|
|
8086
|
+
"name": "--color-success-700",
|
|
8087
|
+
"tier": "primitive",
|
|
8088
|
+
"description": "Primitive color: success-700",
|
|
8089
|
+
"defaultLight": "#15803d",
|
|
8090
|
+
"defaultDark": "#15803d"
|
|
8091
|
+
},
|
|
8092
|
+
{
|
|
8093
|
+
"name": "--color-success-900",
|
|
8094
|
+
"tier": "primitive",
|
|
8095
|
+
"description": "Primitive color: success-900",
|
|
8096
|
+
"defaultLight": "#14532d",
|
|
8097
|
+
"defaultDark": "#14532d"
|
|
8098
|
+
},
|
|
8099
|
+
{
|
|
8100
|
+
"name": "--color-warning-50",
|
|
8101
|
+
"tier": "primitive",
|
|
8102
|
+
"description": "Primitive color: warning-50",
|
|
8103
|
+
"defaultLight": "#fffbeb",
|
|
8104
|
+
"defaultDark": "#fffbeb"
|
|
8105
|
+
},
|
|
8106
|
+
{
|
|
8107
|
+
"name": "--color-warning-100",
|
|
8108
|
+
"tier": "primitive",
|
|
8109
|
+
"description": "Primitive color: warning-100",
|
|
8110
|
+
"defaultLight": "#fef3c7",
|
|
8111
|
+
"defaultDark": "#fef3c7"
|
|
8112
|
+
},
|
|
8113
|
+
{
|
|
8114
|
+
"name": "--color-warning-500",
|
|
8115
|
+
"tier": "primitive",
|
|
8116
|
+
"description": "Primitive color: warning-500",
|
|
8117
|
+
"defaultLight": "#f59e0b",
|
|
8118
|
+
"defaultDark": "#f59e0b"
|
|
8119
|
+
},
|
|
8120
|
+
{
|
|
8121
|
+
"name": "--color-warning-600",
|
|
8122
|
+
"tier": "primitive",
|
|
8123
|
+
"description": "Primitive color: warning-600",
|
|
8124
|
+
"defaultLight": "#d97706",
|
|
8125
|
+
"defaultDark": "#d97706"
|
|
8126
|
+
},
|
|
8127
|
+
{
|
|
8128
|
+
"name": "--color-warning-700",
|
|
8129
|
+
"tier": "primitive",
|
|
8130
|
+
"description": "Primitive color: warning-700",
|
|
8131
|
+
"defaultLight": "#b45309",
|
|
8132
|
+
"defaultDark": "#b45309"
|
|
8133
|
+
},
|
|
8134
|
+
{
|
|
8135
|
+
"name": "--color-warning-900",
|
|
8136
|
+
"tier": "primitive",
|
|
8137
|
+
"description": "Primitive color: warning-900",
|
|
8138
|
+
"defaultLight": "#78350f",
|
|
8139
|
+
"defaultDark": "#78350f"
|
|
8140
|
+
},
|
|
8141
|
+
{
|
|
8142
|
+
"name": "--color-error-50",
|
|
8143
|
+
"tier": "primitive",
|
|
8144
|
+
"description": "Primitive color: error-50",
|
|
8145
|
+
"defaultLight": "#fef2f2",
|
|
8146
|
+
"defaultDark": "#fef2f2"
|
|
8147
|
+
},
|
|
8148
|
+
{
|
|
8149
|
+
"name": "--color-error-100",
|
|
8150
|
+
"tier": "primitive",
|
|
8151
|
+
"description": "Primitive color: error-100",
|
|
8152
|
+
"defaultLight": "#fee2e2",
|
|
8153
|
+
"defaultDark": "#fee2e2"
|
|
8154
|
+
},
|
|
8155
|
+
{
|
|
8156
|
+
"name": "--color-error-500",
|
|
8157
|
+
"tier": "primitive",
|
|
8158
|
+
"description": "Primitive color: error-500",
|
|
8159
|
+
"defaultLight": "#ef4444",
|
|
8160
|
+
"defaultDark": "#ef4444"
|
|
8161
|
+
},
|
|
8162
|
+
{
|
|
8163
|
+
"name": "--color-error-600",
|
|
8164
|
+
"tier": "primitive",
|
|
8165
|
+
"description": "Primitive color: error-600",
|
|
8166
|
+
"defaultLight": "#dc2626",
|
|
8167
|
+
"defaultDark": "#dc2626"
|
|
8168
|
+
},
|
|
8169
|
+
{
|
|
8170
|
+
"name": "--color-error-700",
|
|
8171
|
+
"tier": "primitive",
|
|
8172
|
+
"description": "Primitive color: error-700",
|
|
8173
|
+
"defaultLight": "#b91c1c",
|
|
8174
|
+
"defaultDark": "#b91c1c"
|
|
8175
|
+
},
|
|
8176
|
+
{
|
|
8177
|
+
"name": "--color-error-900",
|
|
8178
|
+
"tier": "primitive",
|
|
8179
|
+
"description": "Primitive color: error-900",
|
|
8180
|
+
"defaultLight": "#7f1d1d",
|
|
8181
|
+
"defaultDark": "#7f1d1d"
|
|
8182
|
+
},
|
|
8183
|
+
{
|
|
8184
|
+
"name": "--color-info-50",
|
|
8185
|
+
"tier": "primitive",
|
|
8186
|
+
"description": "Primitive color: info-50",
|
|
8187
|
+
"defaultLight": "#f0f9ff",
|
|
8188
|
+
"defaultDark": "#f0f9ff"
|
|
8189
|
+
},
|
|
8190
|
+
{
|
|
8191
|
+
"name": "--color-info-100",
|
|
8192
|
+
"tier": "primitive",
|
|
8193
|
+
"description": "Primitive color: info-100",
|
|
8194
|
+
"defaultLight": "#e0f2fe",
|
|
8195
|
+
"defaultDark": "#e0f2fe"
|
|
8196
|
+
},
|
|
8197
|
+
{
|
|
8198
|
+
"name": "--color-info-500",
|
|
8199
|
+
"tier": "primitive",
|
|
8200
|
+
"description": "Primitive color: info-500",
|
|
8201
|
+
"defaultLight": "#0ea5e9",
|
|
8202
|
+
"defaultDark": "#0ea5e9"
|
|
8203
|
+
},
|
|
8204
|
+
{
|
|
8205
|
+
"name": "--color-info-600",
|
|
8206
|
+
"tier": "primitive",
|
|
8207
|
+
"description": "Primitive color: info-600",
|
|
8208
|
+
"defaultLight": "#0284c7",
|
|
8209
|
+
"defaultDark": "#0284c7"
|
|
8210
|
+
},
|
|
8211
|
+
{
|
|
8212
|
+
"name": "--color-info-700",
|
|
8213
|
+
"tier": "primitive",
|
|
8214
|
+
"description": "Primitive color: info-700",
|
|
8215
|
+
"defaultLight": "#0369a1",
|
|
8216
|
+
"defaultDark": "#0369a1"
|
|
8217
|
+
},
|
|
8218
|
+
{
|
|
8219
|
+
"name": "--color-info-900",
|
|
8220
|
+
"tier": "primitive",
|
|
8221
|
+
"description": "Primitive color: info-900",
|
|
8222
|
+
"defaultLight": "#0c4a6e",
|
|
8223
|
+
"defaultDark": "#0c4a6e"
|
|
8224
|
+
},
|
|
8225
|
+
{
|
|
8226
|
+
"name": "--spacing-0",
|
|
8227
|
+
"tier": "primitive",
|
|
8228
|
+
"description": "Primitive spacing: 0px",
|
|
8229
|
+
"defaultLight": "0",
|
|
8230
|
+
"defaultDark": "0"
|
|
8231
|
+
},
|
|
8232
|
+
{
|
|
8233
|
+
"name": "--spacing-1",
|
|
8234
|
+
"tier": "primitive",
|
|
8235
|
+
"description": "Primitive spacing: 4px",
|
|
8236
|
+
"defaultLight": "0.25rem",
|
|
8237
|
+
"defaultDark": "0.25rem"
|
|
8238
|
+
},
|
|
8239
|
+
{
|
|
8240
|
+
"name": "--spacing-2",
|
|
8241
|
+
"tier": "primitive",
|
|
8242
|
+
"description": "Primitive spacing: 8px",
|
|
8243
|
+
"defaultLight": "0.5rem",
|
|
8244
|
+
"defaultDark": "0.5rem"
|
|
8245
|
+
},
|
|
8246
|
+
{
|
|
8247
|
+
"name": "--spacing-3",
|
|
8248
|
+
"tier": "primitive",
|
|
8249
|
+
"description": "Primitive spacing: 12px",
|
|
8250
|
+
"defaultLight": "0.75rem",
|
|
8251
|
+
"defaultDark": "0.75rem"
|
|
8252
|
+
},
|
|
8253
|
+
{
|
|
8254
|
+
"name": "--spacing-3_5",
|
|
8255
|
+
"tier": "primitive",
|
|
8256
|
+
"description": "Primitive spacing: 14px",
|
|
8257
|
+
"defaultLight": "0.875rem",
|
|
8258
|
+
"defaultDark": "0.875rem"
|
|
8259
|
+
},
|
|
8260
|
+
{
|
|
8261
|
+
"name": "--spacing-4",
|
|
8262
|
+
"tier": "primitive",
|
|
8263
|
+
"description": "Primitive spacing: 16px",
|
|
8264
|
+
"defaultLight": "1rem",
|
|
8265
|
+
"defaultDark": "1rem"
|
|
8266
|
+
},
|
|
8267
|
+
{
|
|
8268
|
+
"name": "--spacing-4_5",
|
|
8269
|
+
"tier": "primitive",
|
|
8270
|
+
"description": "Primitive spacing: 18px",
|
|
8271
|
+
"defaultLight": "1.125rem",
|
|
8272
|
+
"defaultDark": "1.125rem"
|
|
8273
|
+
},
|
|
8274
|
+
{
|
|
8275
|
+
"name": "--spacing-5",
|
|
8276
|
+
"tier": "primitive",
|
|
8277
|
+
"description": "Primitive spacing: 20px",
|
|
8278
|
+
"defaultLight": "1.25rem",
|
|
8279
|
+
"defaultDark": "1.25rem"
|
|
8280
|
+
},
|
|
8281
|
+
{
|
|
8282
|
+
"name": "--spacing-6",
|
|
8283
|
+
"tier": "primitive",
|
|
8284
|
+
"description": "Primitive spacing: 24px",
|
|
8285
|
+
"defaultLight": "1.5rem",
|
|
8286
|
+
"defaultDark": "1.5rem"
|
|
8287
|
+
},
|
|
8288
|
+
{
|
|
8289
|
+
"name": "--spacing-8",
|
|
8290
|
+
"tier": "primitive",
|
|
8291
|
+
"description": "Primitive spacing: 32px",
|
|
8292
|
+
"defaultLight": "2rem",
|
|
8293
|
+
"defaultDark": "2rem"
|
|
8294
|
+
},
|
|
8295
|
+
{
|
|
8296
|
+
"name": "--spacing-10",
|
|
8297
|
+
"tier": "primitive",
|
|
8298
|
+
"description": "Primitive spacing: 40px",
|
|
8299
|
+
"defaultLight": "2.5rem",
|
|
8300
|
+
"defaultDark": "2.5rem"
|
|
8301
|
+
},
|
|
8302
|
+
{
|
|
8303
|
+
"name": "--spacing-12",
|
|
8304
|
+
"tier": "primitive",
|
|
8305
|
+
"description": "Primitive spacing: 48px",
|
|
8306
|
+
"defaultLight": "3rem",
|
|
8307
|
+
"defaultDark": "3rem"
|
|
8308
|
+
},
|
|
8309
|
+
{
|
|
8310
|
+
"name": "--spacing-16",
|
|
8311
|
+
"tier": "primitive",
|
|
8312
|
+
"description": "Primitive spacing: 64px",
|
|
8313
|
+
"defaultLight": "4rem",
|
|
8314
|
+
"defaultDark": "4rem"
|
|
8315
|
+
},
|
|
8316
|
+
{
|
|
8317
|
+
"name": "--spacing-20",
|
|
8318
|
+
"tier": "primitive",
|
|
8319
|
+
"description": "Primitive spacing: 80px",
|
|
8320
|
+
"defaultLight": "5rem",
|
|
8321
|
+
"defaultDark": "5rem"
|
|
8322
|
+
},
|
|
8323
|
+
{
|
|
8324
|
+
"name": "--spacing-24",
|
|
8325
|
+
"tier": "primitive",
|
|
8326
|
+
"description": "Primitive spacing: 96px",
|
|
8327
|
+
"defaultLight": "6rem",
|
|
8328
|
+
"defaultDark": "6rem"
|
|
8329
|
+
},
|
|
8330
|
+
{
|
|
8331
|
+
"name": "--radius-none",
|
|
8332
|
+
"tier": "primitive",
|
|
8333
|
+
"description": "Primitive border radius: none",
|
|
8334
|
+
"defaultLight": "0",
|
|
8335
|
+
"defaultDark": "0"
|
|
8336
|
+
},
|
|
8337
|
+
{
|
|
8338
|
+
"name": "--radius-sm",
|
|
8339
|
+
"tier": "primitive",
|
|
8340
|
+
"description": "Primitive border radius: sm",
|
|
8341
|
+
"defaultLight": "0.125rem",
|
|
8342
|
+
"defaultDark": "0.125rem"
|
|
8343
|
+
},
|
|
8344
|
+
{
|
|
8345
|
+
"name": "--radius-md",
|
|
8346
|
+
"tier": "primitive",
|
|
8347
|
+
"description": "Primitive border radius: md",
|
|
8348
|
+
"defaultLight": "0.25rem",
|
|
8349
|
+
"defaultDark": "0.25rem"
|
|
8350
|
+
},
|
|
8351
|
+
{
|
|
8352
|
+
"name": "--radius-lg",
|
|
8353
|
+
"tier": "primitive",
|
|
8354
|
+
"description": "Primitive border radius: lg",
|
|
8355
|
+
"defaultLight": "0.5rem",
|
|
8356
|
+
"defaultDark": "0.5rem"
|
|
8357
|
+
},
|
|
8358
|
+
{
|
|
8359
|
+
"name": "--radius-xl",
|
|
8360
|
+
"tier": "primitive",
|
|
8361
|
+
"description": "Primitive border radius: xl",
|
|
8362
|
+
"defaultLight": "0.75rem",
|
|
8363
|
+
"defaultDark": "0.75rem"
|
|
8364
|
+
},
|
|
8365
|
+
{
|
|
8366
|
+
"name": "--radius-2xl",
|
|
8367
|
+
"tier": "primitive",
|
|
8368
|
+
"description": "Primitive border radius: 2xl",
|
|
8369
|
+
"defaultLight": "1rem",
|
|
8370
|
+
"defaultDark": "1rem"
|
|
8371
|
+
},
|
|
8372
|
+
{
|
|
8373
|
+
"name": "--radius-3xl",
|
|
8374
|
+
"tier": "primitive",
|
|
8375
|
+
"description": "Primitive border radius: 3xl",
|
|
8376
|
+
"defaultLight": "1.5rem",
|
|
8377
|
+
"defaultDark": "1.5rem"
|
|
8378
|
+
},
|
|
8379
|
+
{
|
|
8380
|
+
"name": "--radius-full",
|
|
8381
|
+
"tier": "primitive",
|
|
8382
|
+
"description": "Primitive border radius: full",
|
|
8383
|
+
"defaultLight": "9999px",
|
|
8384
|
+
"defaultDark": "9999px"
|
|
8385
|
+
},
|
|
8386
|
+
{
|
|
8387
|
+
"name": "--border-width-1",
|
|
8388
|
+
"tier": "primitive",
|
|
8389
|
+
"description": "Primitive border width: 1px",
|
|
8390
|
+
"defaultLight": "1px",
|
|
8391
|
+
"defaultDark": "1px"
|
|
8392
|
+
},
|
|
8393
|
+
{
|
|
8394
|
+
"name": "--border-width-2",
|
|
8395
|
+
"tier": "primitive",
|
|
8396
|
+
"description": "Primitive border width: 2px",
|
|
8397
|
+
"defaultLight": "2px",
|
|
8398
|
+
"defaultDark": "2px"
|
|
8399
|
+
},
|
|
8400
|
+
{
|
|
8401
|
+
"name": "--border-width-3",
|
|
8402
|
+
"tier": "primitive",
|
|
8403
|
+
"description": "Primitive border width: 3px",
|
|
8404
|
+
"defaultLight": "3px",
|
|
8405
|
+
"defaultDark": "3px"
|
|
8406
|
+
},
|
|
8407
|
+
{
|
|
8408
|
+
"name": "--border-width-4",
|
|
8409
|
+
"tier": "primitive",
|
|
8410
|
+
"description": "Primitive border width: 4px",
|
|
8411
|
+
"defaultLight": "4px",
|
|
8412
|
+
"defaultDark": "4px"
|
|
8413
|
+
},
|
|
8414
|
+
{
|
|
8415
|
+
"name": "--font-size-xs",
|
|
8416
|
+
"tier": "primitive",
|
|
8417
|
+
"description": "Primitive font size: 12px",
|
|
8418
|
+
"defaultLight": "0.75rem",
|
|
8419
|
+
"defaultDark": "0.75rem"
|
|
8420
|
+
},
|
|
8421
|
+
{
|
|
8422
|
+
"name": "--font-size-sm",
|
|
8423
|
+
"tier": "primitive",
|
|
8424
|
+
"description": "Primitive font size: 14px",
|
|
8425
|
+
"defaultLight": "0.875rem",
|
|
8426
|
+
"defaultDark": "0.875rem"
|
|
8427
|
+
},
|
|
8428
|
+
{
|
|
8429
|
+
"name": "--font-size-base",
|
|
8430
|
+
"tier": "primitive",
|
|
8431
|
+
"description": "Primitive font size: 16px",
|
|
8432
|
+
"defaultLight": "1rem",
|
|
8433
|
+
"defaultDark": "1rem"
|
|
8434
|
+
},
|
|
8435
|
+
{
|
|
8436
|
+
"name": "--font-size-lg",
|
|
8437
|
+
"tier": "primitive",
|
|
8438
|
+
"description": "Primitive font size: 18px",
|
|
8439
|
+
"defaultLight": "1.125rem",
|
|
8440
|
+
"defaultDark": "1.125rem"
|
|
8441
|
+
},
|
|
8442
|
+
{
|
|
8443
|
+
"name": "--font-size-xl",
|
|
8444
|
+
"tier": "primitive",
|
|
8445
|
+
"description": "Primitive font size: 20px",
|
|
8446
|
+
"defaultLight": "1.25rem",
|
|
8447
|
+
"defaultDark": "1.25rem"
|
|
8448
|
+
},
|
|
8449
|
+
{
|
|
8450
|
+
"name": "--font-size-2xl",
|
|
8451
|
+
"tier": "primitive",
|
|
8452
|
+
"description": "Primitive font size: 24px",
|
|
8453
|
+
"defaultLight": "1.5rem",
|
|
8454
|
+
"defaultDark": "1.5rem"
|
|
8455
|
+
},
|
|
8456
|
+
{
|
|
8457
|
+
"name": "--font-size-3xl",
|
|
8458
|
+
"tier": "primitive",
|
|
8459
|
+
"description": "Primitive font size: 30px",
|
|
8460
|
+
"defaultLight": "1.875rem",
|
|
8461
|
+
"defaultDark": "1.875rem"
|
|
8462
|
+
},
|
|
8463
|
+
{
|
|
8464
|
+
"name": "--font-size-4xl",
|
|
8465
|
+
"tier": "primitive",
|
|
8466
|
+
"description": "Primitive font size: 36px",
|
|
8467
|
+
"defaultLight": "2.25rem",
|
|
8468
|
+
"defaultDark": "2.25rem"
|
|
8469
|
+
},
|
|
8470
|
+
{
|
|
8471
|
+
"name": "--font-weight-normal",
|
|
8472
|
+
"tier": "primitive",
|
|
8473
|
+
"description": "Primitive font weight: 400",
|
|
8474
|
+
"defaultLight": "400",
|
|
8475
|
+
"defaultDark": "400"
|
|
8476
|
+
},
|
|
8477
|
+
{
|
|
8478
|
+
"name": "--font-weight-medium",
|
|
8479
|
+
"tier": "primitive",
|
|
8480
|
+
"description": "Primitive font weight: 500",
|
|
8481
|
+
"defaultLight": "500",
|
|
8482
|
+
"defaultDark": "500"
|
|
8483
|
+
},
|
|
8484
|
+
{
|
|
8485
|
+
"name": "--font-weight-semibold",
|
|
8486
|
+
"tier": "primitive",
|
|
8487
|
+
"description": "Primitive font weight: 600",
|
|
8488
|
+
"defaultLight": "600",
|
|
8489
|
+
"defaultDark": "600"
|
|
8490
|
+
},
|
|
8491
|
+
{
|
|
8492
|
+
"name": "--font-weight-bold",
|
|
8493
|
+
"tier": "primitive",
|
|
8494
|
+
"description": "Primitive font weight: 700",
|
|
8495
|
+
"defaultLight": "700",
|
|
8496
|
+
"defaultDark": "700"
|
|
8497
|
+
},
|
|
8498
|
+
{
|
|
8499
|
+
"name": "--line-height-none",
|
|
8500
|
+
"tier": "primitive",
|
|
8501
|
+
"description": "Primitive line height: 1",
|
|
8502
|
+
"defaultLight": "1",
|
|
8503
|
+
"defaultDark": "1"
|
|
8504
|
+
},
|
|
8505
|
+
{
|
|
8506
|
+
"name": "--line-height-tight",
|
|
8507
|
+
"tier": "primitive",
|
|
8508
|
+
"description": "Primitive line height: 1.25",
|
|
8509
|
+
"defaultLight": "1.25",
|
|
8510
|
+
"defaultDark": "1.25"
|
|
8511
|
+
},
|
|
8512
|
+
{
|
|
8513
|
+
"name": "--line-height-snug",
|
|
8514
|
+
"tier": "primitive",
|
|
8515
|
+
"description": "Primitive line height: 1.375",
|
|
8516
|
+
"defaultLight": "1.375",
|
|
8517
|
+
"defaultDark": "1.375"
|
|
8518
|
+
},
|
|
8519
|
+
{
|
|
8520
|
+
"name": "--line-height-normal",
|
|
8521
|
+
"tier": "primitive",
|
|
8522
|
+
"description": "Primitive line height: 1.5",
|
|
8523
|
+
"defaultLight": "1.5",
|
|
8524
|
+
"defaultDark": "1.5"
|
|
8525
|
+
},
|
|
8526
|
+
{
|
|
8527
|
+
"name": "--line-height-relaxed",
|
|
8528
|
+
"tier": "primitive",
|
|
8529
|
+
"description": "Primitive line height: 1.625",
|
|
8530
|
+
"defaultLight": "1.625",
|
|
8531
|
+
"defaultDark": "1.625"
|
|
8532
|
+
},
|
|
8533
|
+
{
|
|
8534
|
+
"name": "--line-height-loose",
|
|
8535
|
+
"tier": "primitive",
|
|
8536
|
+
"description": "Primitive line height: 2",
|
|
8537
|
+
"defaultLight": "2",
|
|
8538
|
+
"defaultDark": "2"
|
|
8539
|
+
},
|
|
8540
|
+
{
|
|
8541
|
+
"name": "--shadow-xs",
|
|
8542
|
+
"tier": "primitive",
|
|
8543
|
+
"description": "Primitive shadow: xs",
|
|
8544
|
+
"defaultLight": "inset 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
|
|
8545
|
+
"defaultDark": "inset 0 1px 2px 0 rgba(0, 0, 0, 0.15)"
|
|
8546
|
+
},
|
|
8547
|
+
{
|
|
8548
|
+
"name": "--shadow-sm",
|
|
8549
|
+
"tier": "primitive",
|
|
8550
|
+
"description": "Primitive shadow: sm",
|
|
8551
|
+
"defaultLight": "0 1px 2px 0 rgba(0, 0, 0, 0.05)",
|
|
8552
|
+
"defaultDark": "0 1px 2px 0 rgba(0, 0, 0, 0.25)"
|
|
8553
|
+
},
|
|
8554
|
+
{
|
|
8555
|
+
"name": "--shadow-md",
|
|
8556
|
+
"tier": "primitive",
|
|
8557
|
+
"description": "Primitive shadow: md",
|
|
8558
|
+
"defaultLight": "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)",
|
|
8559
|
+
"defaultDark": "0 4px 6px -1px rgba(0, 0, 0, 0.35), 0 2px 4px -2px rgba(0, 0, 0, 0.3)"
|
|
8560
|
+
},
|
|
8561
|
+
{
|
|
8562
|
+
"name": "--shadow-lg",
|
|
8563
|
+
"tier": "primitive",
|
|
8564
|
+
"description": "Primitive shadow: lg",
|
|
8565
|
+
"defaultLight": "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1)",
|
|
8566
|
+
"defaultDark": "0 10px 15px -3px rgba(0, 0, 0, 0.4), 0 4px 6px -4px rgba(0, 0, 0, 0.35)"
|
|
8567
|
+
},
|
|
8568
|
+
{
|
|
8569
|
+
"name": "--shadow-xl",
|
|
8570
|
+
"tier": "primitive",
|
|
8571
|
+
"description": "Primitive shadow: xl",
|
|
8572
|
+
"defaultLight": "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)",
|
|
8573
|
+
"defaultDark": "0 20px 25px -5px rgba(0, 0, 0, 0.45), 0 8px 10px -6px rgba(0, 0, 0, 0.4)"
|
|
8574
|
+
},
|
|
8575
|
+
{
|
|
8576
|
+
"name": "--z-base",
|
|
8577
|
+
"tier": "primitive",
|
|
8578
|
+
"description": "Primitive z-index: base",
|
|
8579
|
+
"defaultLight": "0",
|
|
8580
|
+
"defaultDark": "0"
|
|
8581
|
+
},
|
|
8582
|
+
{
|
|
8583
|
+
"name": "--z-raised",
|
|
8584
|
+
"tier": "primitive",
|
|
8585
|
+
"description": "Primitive z-index: raised",
|
|
8586
|
+
"defaultLight": "1",
|
|
8587
|
+
"defaultDark": "1"
|
|
8588
|
+
},
|
|
8589
|
+
{
|
|
8590
|
+
"name": "--z-dropdown",
|
|
8591
|
+
"tier": "primitive",
|
|
8592
|
+
"description": "Primitive z-index: dropdown",
|
|
8593
|
+
"defaultLight": "1000",
|
|
8594
|
+
"defaultDark": "1000"
|
|
8595
|
+
},
|
|
8596
|
+
{
|
|
8597
|
+
"name": "--z-sticky",
|
|
8598
|
+
"tier": "primitive",
|
|
8599
|
+
"description": "Primitive z-index: sticky",
|
|
8600
|
+
"defaultLight": "1100",
|
|
8601
|
+
"defaultDark": "1100"
|
|
8602
|
+
},
|
|
8603
|
+
{
|
|
8604
|
+
"name": "--z-modal",
|
|
8605
|
+
"tier": "primitive",
|
|
8606
|
+
"description": "Primitive z-index: modal",
|
|
8607
|
+
"defaultLight": "1300",
|
|
8608
|
+
"defaultDark": "1300"
|
|
8609
|
+
},
|
|
8610
|
+
{
|
|
8611
|
+
"name": "--z-popover",
|
|
8612
|
+
"tier": "primitive",
|
|
8613
|
+
"description": "Primitive z-index: popover",
|
|
8614
|
+
"defaultLight": "1400",
|
|
8615
|
+
"defaultDark": "1400"
|
|
8616
|
+
},
|
|
8617
|
+
{
|
|
8618
|
+
"name": "--z-toast",
|
|
8619
|
+
"tier": "primitive",
|
|
8620
|
+
"description": "Primitive z-index: toast",
|
|
8621
|
+
"defaultLight": "1500",
|
|
8622
|
+
"defaultDark": "1500"
|
|
8623
|
+
},
|
|
8624
|
+
{
|
|
8625
|
+
"name": "--font-sans",
|
|
8626
|
+
"tier": "primitive",
|
|
8627
|
+
"description": "Primitive font family: sans",
|
|
8628
|
+
"defaultLight": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif",
|
|
8629
|
+
"defaultDark": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif"
|
|
8630
|
+
},
|
|
8631
|
+
{
|
|
8632
|
+
"name": "--font-mono",
|
|
8633
|
+
"tier": "primitive",
|
|
8634
|
+
"description": "Primitive font family: mono",
|
|
8635
|
+
"defaultLight": "\"SF Mono\", \"Fira Code\", \"Fira Mono\", \"Roboto Mono\", monospace",
|
|
8636
|
+
"defaultDark": "\"SF Mono\", \"Fira Code\", \"Fira Mono\", \"Roboto Mono\", monospace"
|
|
8637
|
+
},
|
|
8638
|
+
{
|
|
8639
|
+
"name": "--overlay-bg",
|
|
8640
|
+
"tier": "primitive",
|
|
8641
|
+
"description": "Primitive overlay: bg",
|
|
8642
|
+
"defaultLight": "rgba(0, 0, 0, 0.5)",
|
|
8643
|
+
"defaultDark": "rgba(0, 0, 0, 0.5)"
|
|
8644
|
+
},
|
|
8645
|
+
{
|
|
8646
|
+
"name": "--focus-ring-width",
|
|
8647
|
+
"tier": "primitive",
|
|
8648
|
+
"description": "Primitive focus ring width",
|
|
8649
|
+
"defaultLight": "2px",
|
|
8650
|
+
"defaultDark": "2px"
|
|
8651
|
+
},
|
|
8652
|
+
{
|
|
8653
|
+
"name": "--focus-ring-offset",
|
|
8654
|
+
"tier": "primitive",
|
|
8655
|
+
"description": "Primitive focus ring offset",
|
|
8656
|
+
"defaultLight": "2px",
|
|
8657
|
+
"defaultDark": "2px"
|
|
8658
|
+
},
|
|
8659
|
+
{
|
|
8660
|
+
"name": "--motion-duration-100",
|
|
8661
|
+
"tier": "primitive",
|
|
8662
|
+
"description": "Primitive motion duration: 100ms",
|
|
8663
|
+
"defaultLight": "100ms",
|
|
8664
|
+
"defaultDark": "100ms"
|
|
8665
|
+
},
|
|
8666
|
+
{
|
|
8667
|
+
"name": "--motion-duration-150",
|
|
8668
|
+
"tier": "primitive",
|
|
8669
|
+
"description": "Primitive motion duration: 150ms",
|
|
8670
|
+
"defaultLight": "150ms",
|
|
8671
|
+
"defaultDark": "150ms"
|
|
8672
|
+
},
|
|
8673
|
+
{
|
|
8674
|
+
"name": "--motion-duration-200",
|
|
8675
|
+
"tier": "primitive",
|
|
8676
|
+
"description": "Primitive motion duration: 200ms",
|
|
8677
|
+
"defaultLight": "200ms",
|
|
8678
|
+
"defaultDark": "200ms"
|
|
8679
|
+
},
|
|
8680
|
+
{
|
|
8681
|
+
"name": "--motion-duration-300",
|
|
8682
|
+
"tier": "primitive",
|
|
8683
|
+
"description": "Primitive motion duration: 300ms",
|
|
8684
|
+
"defaultLight": "300ms",
|
|
8685
|
+
"defaultDark": "300ms"
|
|
8686
|
+
},
|
|
8687
|
+
{
|
|
8688
|
+
"name": "--motion-duration-500",
|
|
8689
|
+
"tier": "primitive",
|
|
8690
|
+
"description": "Primitive motion duration: 500ms",
|
|
8691
|
+
"defaultLight": "500ms",
|
|
8692
|
+
"defaultDark": "500ms"
|
|
8693
|
+
},
|
|
8694
|
+
{
|
|
8695
|
+
"name": "--motion-duration-800",
|
|
8696
|
+
"tier": "primitive",
|
|
8697
|
+
"description": "Primitive motion duration: 800ms",
|
|
8698
|
+
"defaultLight": "800ms",
|
|
8699
|
+
"defaultDark": "800ms"
|
|
8700
|
+
},
|
|
8701
|
+
{
|
|
8702
|
+
"name": "--motion-easing-linear",
|
|
8703
|
+
"tier": "primitive",
|
|
8704
|
+
"description": "Primitive motion easing: linear",
|
|
8705
|
+
"defaultLight": "linear",
|
|
8706
|
+
"defaultDark": "linear"
|
|
8707
|
+
},
|
|
8708
|
+
{
|
|
8709
|
+
"name": "--motion-easing-ease-in",
|
|
8710
|
+
"tier": "primitive",
|
|
8711
|
+
"description": "Primitive motion easing: ease-in",
|
|
8712
|
+
"defaultLight": "cubic-bezier(0.4, 0, 1, 1)",
|
|
8713
|
+
"defaultDark": "cubic-bezier(0.4, 0, 1, 1)"
|
|
8714
|
+
},
|
|
8715
|
+
{
|
|
8716
|
+
"name": "--motion-easing-ease-out",
|
|
8717
|
+
"tier": "primitive",
|
|
8718
|
+
"description": "Primitive motion easing: ease-out",
|
|
8719
|
+
"defaultLight": "cubic-bezier(0, 0, 0.2, 1)",
|
|
8720
|
+
"defaultDark": "cubic-bezier(0, 0, 0.2, 1)"
|
|
8721
|
+
},
|
|
8722
|
+
{
|
|
8723
|
+
"name": "--motion-easing-ease-in-out",
|
|
8724
|
+
"tier": "primitive",
|
|
8725
|
+
"description": "Primitive motion easing: ease-in-out",
|
|
8726
|
+
"defaultLight": "cubic-bezier(0.4, 0, 0.2, 1)",
|
|
8727
|
+
"defaultDark": "cubic-bezier(0.4, 0, 0.2, 1)"
|
|
8728
|
+
},
|
|
8729
|
+
{
|
|
8730
|
+
"name": "--motion-easing-spring",
|
|
8731
|
+
"tier": "primitive",
|
|
8732
|
+
"description": "Primitive motion easing: spring",
|
|
8733
|
+
"defaultLight": "cubic-bezier(0.34, 1.56, 0.64, 1)",
|
|
8734
|
+
"defaultDark": "cubic-bezier(0.34, 1.56, 0.64, 1)"
|
|
8735
|
+
}
|
|
8736
|
+
],
|
|
8737
|
+
"semantic": [
|
|
8738
|
+
{
|
|
8739
|
+
"name": "--text-primary",
|
|
8740
|
+
"tier": "semantic",
|
|
8741
|
+
"description": "Semantic text: primary",
|
|
8742
|
+
"defaultLight": "var(--color-neutral-900)",
|
|
8743
|
+
"defaultDark": "var(--color-neutral-900)"
|
|
8744
|
+
},
|
|
8745
|
+
{
|
|
8746
|
+
"name": "--text-secondary",
|
|
8747
|
+
"tier": "semantic",
|
|
8748
|
+
"description": "Semantic text: secondary",
|
|
8749
|
+
"defaultLight": "var(--color-neutral-600)",
|
|
8750
|
+
"defaultDark": "var(--color-neutral-600)"
|
|
8751
|
+
},
|
|
8752
|
+
{
|
|
8753
|
+
"name": "--text-tertiary",
|
|
8754
|
+
"tier": "semantic",
|
|
8755
|
+
"description": "Semantic text: tertiary",
|
|
8756
|
+
"defaultLight": "var(--color-neutral-400)",
|
|
8757
|
+
"defaultDark": "var(--color-neutral-400)"
|
|
8758
|
+
},
|
|
8759
|
+
{
|
|
8760
|
+
"name": "--text-disabled",
|
|
8761
|
+
"tier": "semantic",
|
|
8762
|
+
"description": "Semantic text: disabled",
|
|
8763
|
+
"defaultLight": "var(--color-neutral-300)",
|
|
8764
|
+
"defaultDark": "var(--color-neutral-300)"
|
|
8765
|
+
},
|
|
8766
|
+
{
|
|
8767
|
+
"name": "--text-inverse",
|
|
8768
|
+
"tier": "semantic",
|
|
8769
|
+
"description": "Semantic text: inverse",
|
|
8770
|
+
"defaultLight": "var(--color-white)",
|
|
8771
|
+
"defaultDark": "var(--color-white)"
|
|
8772
|
+
},
|
|
8773
|
+
{
|
|
8774
|
+
"name": "--text-inverse-secondary",
|
|
8775
|
+
"tier": "semantic",
|
|
8776
|
+
"description": "Semantic text: inverse-secondary",
|
|
8777
|
+
"defaultLight": "var(--color-neutral-200)",
|
|
8778
|
+
"defaultDark": "var(--color-neutral-200)"
|
|
8779
|
+
},
|
|
8780
|
+
{
|
|
8781
|
+
"name": "--text-link",
|
|
8782
|
+
"tier": "semantic",
|
|
8783
|
+
"description": "Semantic text: link",
|
|
8784
|
+
"defaultLight": "var(--color-primary-600)",
|
|
8785
|
+
"defaultDark": "var(--color-primary-600)"
|
|
8786
|
+
},
|
|
8787
|
+
{
|
|
8788
|
+
"name": "--text-link-hover",
|
|
8789
|
+
"tier": "semantic",
|
|
8790
|
+
"description": "Semantic text: link-hover",
|
|
8791
|
+
"defaultLight": "var(--color-primary-700)",
|
|
8792
|
+
"defaultDark": "var(--color-primary-700)"
|
|
8793
|
+
},
|
|
8794
|
+
{
|
|
8795
|
+
"name": "--text-success",
|
|
8796
|
+
"tier": "semantic",
|
|
8797
|
+
"description": "Semantic text: success",
|
|
8798
|
+
"defaultLight": "var(--color-success-700)",
|
|
8799
|
+
"defaultDark": "var(--color-success-700)"
|
|
8800
|
+
},
|
|
8801
|
+
{
|
|
8802
|
+
"name": "--text-warning",
|
|
8803
|
+
"tier": "semantic",
|
|
8804
|
+
"description": "Semantic text: warning",
|
|
8805
|
+
"defaultLight": "var(--color-warning-700)",
|
|
8806
|
+
"defaultDark": "var(--color-warning-700)"
|
|
8807
|
+
},
|
|
8808
|
+
{
|
|
8809
|
+
"name": "--text-error",
|
|
8810
|
+
"tier": "semantic",
|
|
8811
|
+
"description": "Semantic text: error",
|
|
8812
|
+
"defaultLight": "var(--color-error-700)",
|
|
8813
|
+
"defaultDark": "var(--color-error-700)"
|
|
8814
|
+
},
|
|
8815
|
+
{
|
|
8816
|
+
"name": "--text-info",
|
|
8817
|
+
"tier": "semantic",
|
|
8818
|
+
"description": "Semantic text: info",
|
|
8819
|
+
"defaultLight": "var(--color-info-700)",
|
|
8820
|
+
"defaultDark": "var(--color-info-700)"
|
|
8821
|
+
},
|
|
8822
|
+
{
|
|
8823
|
+
"name": "--surface-page",
|
|
8824
|
+
"tier": "semantic",
|
|
8825
|
+
"description": "Semantic surface: page",
|
|
8826
|
+
"defaultLight": "var(--color-white)",
|
|
8827
|
+
"defaultDark": "var(--color-white)"
|
|
8828
|
+
},
|
|
8829
|
+
{
|
|
8830
|
+
"name": "--surface-card",
|
|
8831
|
+
"tier": "semantic",
|
|
8832
|
+
"description": "Semantic surface: card",
|
|
8833
|
+
"defaultLight": "var(--color-white)",
|
|
8834
|
+
"defaultDark": "var(--color-white)"
|
|
8835
|
+
},
|
|
8836
|
+
{
|
|
8837
|
+
"name": "--surface-subtle",
|
|
8838
|
+
"tier": "semantic",
|
|
8839
|
+
"description": "Semantic surface: subtle",
|
|
8840
|
+
"defaultLight": "var(--color-neutral-50)",
|
|
8841
|
+
"defaultDark": "var(--color-neutral-50)"
|
|
8842
|
+
},
|
|
8843
|
+
{
|
|
8844
|
+
"name": "--surface-muted",
|
|
8845
|
+
"tier": "semantic",
|
|
8846
|
+
"description": "Semantic surface: muted",
|
|
8847
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
8848
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
8849
|
+
},
|
|
8850
|
+
{
|
|
8851
|
+
"name": "--surface-overlay",
|
|
8852
|
+
"tier": "semantic",
|
|
8853
|
+
"description": "Semantic surface: overlay",
|
|
8854
|
+
"defaultLight": "var(--color-neutral-900)",
|
|
8855
|
+
"defaultDark": "var(--color-neutral-900)"
|
|
8856
|
+
},
|
|
8857
|
+
{
|
|
8858
|
+
"name": "--surface-popover",
|
|
8859
|
+
"tier": "semantic",
|
|
8860
|
+
"description": "Semantic surface: popover",
|
|
8861
|
+
"defaultLight": "var(--color-white)",
|
|
8862
|
+
"defaultDark": "var(--color-white)"
|
|
8863
|
+
},
|
|
8864
|
+
{
|
|
8865
|
+
"name": "--surface-interactive-default",
|
|
8866
|
+
"tier": "semantic",
|
|
8867
|
+
"description": "Semantic surface: interactive-default",
|
|
8868
|
+
"defaultLight": "var(--color-white)",
|
|
8869
|
+
"defaultDark": "var(--color-white)"
|
|
8870
|
+
},
|
|
8871
|
+
{
|
|
8872
|
+
"name": "--surface-interactive-hover",
|
|
8873
|
+
"tier": "semantic",
|
|
8874
|
+
"description": "Semantic surface: interactive-hover",
|
|
8875
|
+
"defaultLight": "var(--color-neutral-50)",
|
|
8876
|
+
"defaultDark": "var(--color-neutral-50)"
|
|
8877
|
+
},
|
|
8878
|
+
{
|
|
8879
|
+
"name": "--surface-interactive-active",
|
|
8880
|
+
"tier": "semantic",
|
|
8881
|
+
"description": "Semantic surface: interactive-active",
|
|
8882
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
8883
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
8884
|
+
},
|
|
8885
|
+
{
|
|
8886
|
+
"name": "--surface-interactive-disabled",
|
|
8887
|
+
"tier": "semantic",
|
|
8888
|
+
"description": "Semantic surface: interactive-disabled",
|
|
8889
|
+
"defaultLight": "var(--color-neutral-50)",
|
|
8890
|
+
"defaultDark": "var(--color-neutral-50)"
|
|
8891
|
+
},
|
|
8892
|
+
{
|
|
8893
|
+
"name": "--surface-selected",
|
|
8894
|
+
"tier": "semantic",
|
|
8895
|
+
"description": "Semantic surface: selected",
|
|
8896
|
+
"defaultLight": "var(--color-primary-100)",
|
|
8897
|
+
"defaultDark": "var(--color-primary-100)"
|
|
8898
|
+
},
|
|
8899
|
+
{
|
|
8900
|
+
"name": "--surface-accent-subtle",
|
|
8901
|
+
"tier": "semantic",
|
|
8902
|
+
"description": "Semantic surface: accent-subtle",
|
|
8903
|
+
"defaultLight": "var(--color-primary-50)",
|
|
8904
|
+
"defaultDark": "var(--color-primary-50)"
|
|
8905
|
+
},
|
|
8906
|
+
{
|
|
8907
|
+
"name": "--surface-accent-default",
|
|
8908
|
+
"tier": "semantic",
|
|
8909
|
+
"description": "Semantic surface: accent-default",
|
|
8910
|
+
"defaultLight": "var(--color-primary-500)",
|
|
8911
|
+
"defaultDark": "var(--color-primary-500)"
|
|
8912
|
+
},
|
|
8913
|
+
{
|
|
8914
|
+
"name": "--surface-accent-strong",
|
|
8915
|
+
"tier": "semantic",
|
|
8916
|
+
"description": "Semantic surface: accent-strong",
|
|
8917
|
+
"defaultLight": "var(--color-primary-600)",
|
|
8918
|
+
"defaultDark": "var(--color-primary-600)"
|
|
8919
|
+
},
|
|
8920
|
+
{
|
|
8921
|
+
"name": "--surface-success-subtle",
|
|
8922
|
+
"tier": "semantic",
|
|
8923
|
+
"description": "Semantic surface: success-subtle",
|
|
8924
|
+
"defaultLight": "var(--color-success-50)",
|
|
8925
|
+
"defaultDark": "var(--color-success-50)"
|
|
8926
|
+
},
|
|
8927
|
+
{
|
|
8928
|
+
"name": "--surface-success-default",
|
|
8929
|
+
"tier": "semantic",
|
|
8930
|
+
"description": "Semantic surface: success-default",
|
|
8931
|
+
"defaultLight": "var(--color-success-500)",
|
|
8932
|
+
"defaultDark": "var(--color-success-500)"
|
|
8933
|
+
},
|
|
8934
|
+
{
|
|
8935
|
+
"name": "--surface-warning-subtle",
|
|
8936
|
+
"tier": "semantic",
|
|
8937
|
+
"description": "Semantic surface: warning-subtle",
|
|
8938
|
+
"defaultLight": "var(--color-warning-50)",
|
|
8939
|
+
"defaultDark": "var(--color-warning-50)"
|
|
8940
|
+
},
|
|
8941
|
+
{
|
|
8942
|
+
"name": "--surface-warning-default",
|
|
8943
|
+
"tier": "semantic",
|
|
8944
|
+
"description": "Semantic surface: warning-default",
|
|
8945
|
+
"defaultLight": "var(--color-warning-500)",
|
|
8946
|
+
"defaultDark": "var(--color-warning-500)"
|
|
8947
|
+
},
|
|
8948
|
+
{
|
|
8949
|
+
"name": "--surface-error-subtle",
|
|
8950
|
+
"tier": "semantic",
|
|
8951
|
+
"description": "Semantic surface: error-subtle",
|
|
8952
|
+
"defaultLight": "var(--color-error-50)",
|
|
8953
|
+
"defaultDark": "var(--color-error-50)"
|
|
8954
|
+
},
|
|
8955
|
+
{
|
|
8956
|
+
"name": "--surface-error-default",
|
|
8957
|
+
"tier": "semantic",
|
|
8958
|
+
"description": "Semantic surface: error-default",
|
|
8959
|
+
"defaultLight": "var(--color-error-500)",
|
|
8960
|
+
"defaultDark": "var(--color-error-500)"
|
|
8961
|
+
},
|
|
8962
|
+
{
|
|
8963
|
+
"name": "--surface-info-subtle",
|
|
8964
|
+
"tier": "semantic",
|
|
8965
|
+
"description": "Semantic surface: info-subtle",
|
|
8966
|
+
"defaultLight": "var(--color-info-50)",
|
|
8967
|
+
"defaultDark": "var(--color-info-50)"
|
|
8968
|
+
},
|
|
8969
|
+
{
|
|
8970
|
+
"name": "--surface-info-default",
|
|
8971
|
+
"tier": "semantic",
|
|
8972
|
+
"description": "Semantic surface: info-default",
|
|
8973
|
+
"defaultLight": "var(--color-info-500)",
|
|
8974
|
+
"defaultDark": "var(--color-info-500)"
|
|
8975
|
+
},
|
|
8976
|
+
{
|
|
8977
|
+
"name": "--border-default",
|
|
8978
|
+
"tier": "semantic",
|
|
8979
|
+
"description": "Semantic border: default",
|
|
8980
|
+
"defaultLight": "var(--color-neutral-200)",
|
|
8981
|
+
"defaultDark": "var(--color-neutral-200)"
|
|
8982
|
+
},
|
|
8983
|
+
{
|
|
8984
|
+
"name": "--border-muted",
|
|
8985
|
+
"tier": "semantic",
|
|
8986
|
+
"description": "Semantic border: muted",
|
|
8987
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
8988
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
8989
|
+
},
|
|
8990
|
+
{
|
|
8991
|
+
"name": "--border-strong",
|
|
8992
|
+
"tier": "semantic",
|
|
8993
|
+
"description": "Semantic border: strong",
|
|
8994
|
+
"defaultLight": "var(--color-neutral-300)",
|
|
8995
|
+
"defaultDark": "var(--color-neutral-300)"
|
|
8996
|
+
},
|
|
8997
|
+
{
|
|
8998
|
+
"name": "--border-focus",
|
|
8999
|
+
"tier": "semantic",
|
|
9000
|
+
"description": "Semantic border: focus",
|
|
9001
|
+
"defaultLight": "var(--color-primary-500)",
|
|
9002
|
+
"defaultDark": "var(--color-primary-500)"
|
|
9003
|
+
},
|
|
9004
|
+
{
|
|
9005
|
+
"name": "--border-disabled",
|
|
9006
|
+
"tier": "semantic",
|
|
9007
|
+
"description": "Semantic border: disabled",
|
|
9008
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
9009
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
9010
|
+
},
|
|
9011
|
+
{
|
|
9012
|
+
"name": "--border-input",
|
|
9013
|
+
"tier": "semantic",
|
|
9014
|
+
"description": "Semantic border: input",
|
|
9015
|
+
"defaultLight": "var(--color-neutral-200)",
|
|
9016
|
+
"defaultDark": "var(--color-neutral-200)"
|
|
9017
|
+
},
|
|
9018
|
+
{
|
|
9019
|
+
"name": "--border-success",
|
|
9020
|
+
"tier": "semantic",
|
|
9021
|
+
"description": "Semantic border: success",
|
|
9022
|
+
"defaultLight": "var(--color-success-500)",
|
|
9023
|
+
"defaultDark": "var(--color-success-500)"
|
|
9024
|
+
},
|
|
9025
|
+
{
|
|
9026
|
+
"name": "--border-warning",
|
|
9027
|
+
"tier": "semantic",
|
|
9028
|
+
"description": "Semantic border: warning",
|
|
9029
|
+
"defaultLight": "var(--color-warning-500)",
|
|
9030
|
+
"defaultDark": "var(--color-warning-500)"
|
|
9031
|
+
},
|
|
9032
|
+
{
|
|
9033
|
+
"name": "--border-error",
|
|
9034
|
+
"tier": "semantic",
|
|
9035
|
+
"description": "Semantic border: error",
|
|
9036
|
+
"defaultLight": "var(--color-error-500)",
|
|
9037
|
+
"defaultDark": "var(--color-error-500)"
|
|
9038
|
+
},
|
|
9039
|
+
{
|
|
9040
|
+
"name": "--border-info",
|
|
9041
|
+
"tier": "semantic",
|
|
9042
|
+
"description": "Semantic border: info",
|
|
9043
|
+
"defaultLight": "var(--color-info-500)",
|
|
9044
|
+
"defaultDark": "var(--color-info-500)"
|
|
9045
|
+
},
|
|
9046
|
+
{
|
|
9047
|
+
"name": "--interactive-primary-bg",
|
|
9048
|
+
"tier": "semantic",
|
|
9049
|
+
"description": "Semantic interactive: primary-bg",
|
|
9050
|
+
"defaultLight": "var(--color-primary-600)",
|
|
9051
|
+
"defaultDark": "var(--color-primary-600)"
|
|
9052
|
+
},
|
|
9053
|
+
{
|
|
9054
|
+
"name": "--interactive-primary-bg-hover",
|
|
9055
|
+
"tier": "semantic",
|
|
9056
|
+
"description": "Semantic interactive: primary-bg-hover",
|
|
9057
|
+
"defaultLight": "var(--color-primary-700)",
|
|
9058
|
+
"defaultDark": "var(--color-primary-700)"
|
|
9059
|
+
},
|
|
9060
|
+
{
|
|
9061
|
+
"name": "--interactive-primary-bg-active",
|
|
9062
|
+
"tier": "semantic",
|
|
9063
|
+
"description": "Semantic interactive: primary-bg-active",
|
|
9064
|
+
"defaultLight": "var(--color-primary-800)",
|
|
9065
|
+
"defaultDark": "var(--color-primary-800)"
|
|
9066
|
+
},
|
|
9067
|
+
{
|
|
9068
|
+
"name": "--interactive-primary-text",
|
|
9069
|
+
"tier": "semantic",
|
|
9070
|
+
"description": "Semantic interactive: primary-text",
|
|
9071
|
+
"defaultLight": "var(--color-white)",
|
|
9072
|
+
"defaultDark": "var(--color-white)"
|
|
9073
|
+
},
|
|
9074
|
+
{
|
|
9075
|
+
"name": "--interactive-secondary-bg",
|
|
9076
|
+
"tier": "semantic",
|
|
9077
|
+
"description": "Semantic interactive: secondary-bg",
|
|
9078
|
+
"defaultLight": "var(--color-white)",
|
|
9079
|
+
"defaultDark": "var(--color-white)"
|
|
9080
|
+
},
|
|
9081
|
+
{
|
|
9082
|
+
"name": "--interactive-secondary-bg-hover",
|
|
9083
|
+
"tier": "semantic",
|
|
9084
|
+
"description": "Semantic interactive: secondary-bg-hover",
|
|
9085
|
+
"defaultLight": "var(--color-neutral-50)",
|
|
9086
|
+
"defaultDark": "var(--color-neutral-50)"
|
|
9087
|
+
},
|
|
9088
|
+
{
|
|
9089
|
+
"name": "--interactive-secondary-bg-active",
|
|
9090
|
+
"tier": "semantic",
|
|
9091
|
+
"description": "Semantic interactive: secondary-bg-active",
|
|
9092
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
9093
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
9094
|
+
},
|
|
9095
|
+
{
|
|
9096
|
+
"name": "--interactive-secondary-text",
|
|
9097
|
+
"tier": "semantic",
|
|
9098
|
+
"description": "Semantic interactive: secondary-text",
|
|
9099
|
+
"defaultLight": "var(--color-neutral-900)",
|
|
9100
|
+
"defaultDark": "var(--color-neutral-900)"
|
|
9101
|
+
},
|
|
9102
|
+
{
|
|
9103
|
+
"name": "--interactive-secondary-border",
|
|
9104
|
+
"tier": "semantic",
|
|
9105
|
+
"description": "Semantic interactive: secondary-border",
|
|
9106
|
+
"defaultLight": "var(--color-neutral-300)",
|
|
9107
|
+
"defaultDark": "var(--color-neutral-300)"
|
|
9108
|
+
},
|
|
9109
|
+
{
|
|
9110
|
+
"name": "--interactive-destructive-bg",
|
|
9111
|
+
"tier": "semantic",
|
|
9112
|
+
"description": "Semantic interactive: destructive-bg",
|
|
9113
|
+
"defaultLight": "var(--color-error-600)",
|
|
9114
|
+
"defaultDark": "var(--color-error-600)"
|
|
9115
|
+
},
|
|
9116
|
+
{
|
|
9117
|
+
"name": "--interactive-destructive-bg-hover",
|
|
9118
|
+
"tier": "semantic",
|
|
9119
|
+
"description": "Semantic interactive: destructive-bg-hover",
|
|
9120
|
+
"defaultLight": "var(--color-error-700)",
|
|
9121
|
+
"defaultDark": "var(--color-error-700)"
|
|
9122
|
+
},
|
|
9123
|
+
{
|
|
9124
|
+
"name": "--interactive-destructive-text",
|
|
9125
|
+
"tier": "semantic",
|
|
9126
|
+
"description": "Semantic interactive: destructive-text",
|
|
9127
|
+
"defaultLight": "var(--color-white)",
|
|
9128
|
+
"defaultDark": "var(--color-white)"
|
|
9129
|
+
},
|
|
9130
|
+
{
|
|
9131
|
+
"name": "--interactive-ghost-bg",
|
|
9132
|
+
"tier": "semantic",
|
|
9133
|
+
"description": "Semantic interactive: ghost-bg",
|
|
9134
|
+
"defaultLight": "var(--color-white)",
|
|
9135
|
+
"defaultDark": "var(--color-white)"
|
|
9136
|
+
},
|
|
9137
|
+
{
|
|
9138
|
+
"name": "--interactive-ghost-bg-hover",
|
|
9139
|
+
"tier": "semantic",
|
|
9140
|
+
"description": "Semantic interactive: ghost-bg-hover",
|
|
9141
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
9142
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
9143
|
+
},
|
|
9144
|
+
{
|
|
9145
|
+
"name": "--component-xs",
|
|
9146
|
+
"tier": "semantic",
|
|
9147
|
+
"description": "Semantic spacing: component-xs",
|
|
9148
|
+
"defaultLight": "var(--spacing-1)",
|
|
9149
|
+
"defaultDark": "var(--spacing-1)"
|
|
9150
|
+
},
|
|
9151
|
+
{
|
|
9152
|
+
"name": "--component-sm",
|
|
9153
|
+
"tier": "semantic",
|
|
9154
|
+
"description": "Semantic spacing: component-sm",
|
|
9155
|
+
"defaultLight": "var(--spacing-2)",
|
|
9156
|
+
"defaultDark": "var(--spacing-2)"
|
|
9157
|
+
},
|
|
9158
|
+
{
|
|
9159
|
+
"name": "--component-md",
|
|
9160
|
+
"tier": "semantic",
|
|
9161
|
+
"description": "Semantic spacing: component-md",
|
|
9162
|
+
"defaultLight": "var(--spacing-4)",
|
|
9163
|
+
"defaultDark": "var(--spacing-4)"
|
|
9164
|
+
},
|
|
9165
|
+
{
|
|
9166
|
+
"name": "--component-lg",
|
|
9167
|
+
"tier": "semantic",
|
|
9168
|
+
"description": "Semantic spacing: component-lg",
|
|
9169
|
+
"defaultLight": "var(--spacing-6)",
|
|
9170
|
+
"defaultDark": "var(--spacing-6)"
|
|
9171
|
+
},
|
|
9172
|
+
{
|
|
9173
|
+
"name": "--component-xl",
|
|
9174
|
+
"tier": "semantic",
|
|
9175
|
+
"description": "Semantic spacing: component-xl",
|
|
9176
|
+
"defaultLight": "var(--spacing-8)",
|
|
9177
|
+
"defaultDark": "var(--spacing-8)"
|
|
9178
|
+
},
|
|
9179
|
+
{
|
|
9180
|
+
"name": "--layout-sm",
|
|
9181
|
+
"tier": "semantic",
|
|
9182
|
+
"description": "Semantic spacing: layout-sm",
|
|
9183
|
+
"defaultLight": "var(--spacing-4)",
|
|
9184
|
+
"defaultDark": "var(--spacing-4)"
|
|
9185
|
+
},
|
|
9186
|
+
{
|
|
9187
|
+
"name": "--layout-md",
|
|
9188
|
+
"tier": "semantic",
|
|
9189
|
+
"description": "Semantic spacing: layout-md",
|
|
9190
|
+
"defaultLight": "var(--spacing-8)",
|
|
9191
|
+
"defaultDark": "var(--spacing-8)"
|
|
9192
|
+
},
|
|
9193
|
+
{
|
|
9194
|
+
"name": "--layout-lg",
|
|
9195
|
+
"tier": "semantic",
|
|
9196
|
+
"description": "Semantic spacing: layout-lg",
|
|
9197
|
+
"defaultLight": "var(--spacing-12)",
|
|
9198
|
+
"defaultDark": "var(--spacing-12)"
|
|
9199
|
+
},
|
|
9200
|
+
{
|
|
9201
|
+
"name": "--layout-xl",
|
|
9202
|
+
"tier": "semantic",
|
|
9203
|
+
"description": "Semantic spacing: layout-xl",
|
|
9204
|
+
"defaultLight": "var(--spacing-16)",
|
|
9205
|
+
"defaultDark": "var(--spacing-16)"
|
|
9206
|
+
},
|
|
9207
|
+
{
|
|
9208
|
+
"name": "--layout-2xl",
|
|
9209
|
+
"tier": "semantic",
|
|
9210
|
+
"description": "Semantic spacing: layout-2xl",
|
|
9211
|
+
"defaultLight": "var(--spacing-24)",
|
|
9212
|
+
"defaultDark": "var(--spacing-24)"
|
|
9213
|
+
},
|
|
9214
|
+
{
|
|
9215
|
+
"name": "--motion-duration-fast",
|
|
9216
|
+
"tier": "semantic",
|
|
9217
|
+
"description": "Semantic motion duration: fast",
|
|
9218
|
+
"defaultLight": "var(--motion-duration-100)",
|
|
9219
|
+
"defaultDark": "var(--motion-duration-100)"
|
|
9220
|
+
},
|
|
9221
|
+
{
|
|
9222
|
+
"name": "--motion-duration-normal",
|
|
9223
|
+
"tier": "semantic",
|
|
9224
|
+
"description": "Semantic motion duration: normal",
|
|
9225
|
+
"defaultLight": "var(--motion-duration-200)",
|
|
9226
|
+
"defaultDark": "var(--motion-duration-200)"
|
|
9227
|
+
},
|
|
9228
|
+
{
|
|
9229
|
+
"name": "--motion-duration-slow",
|
|
9230
|
+
"tier": "semantic",
|
|
9231
|
+
"description": "Semantic motion duration: slow",
|
|
9232
|
+
"defaultLight": "var(--motion-duration-500)",
|
|
9233
|
+
"defaultDark": "var(--motion-duration-500)"
|
|
9234
|
+
},
|
|
9235
|
+
{
|
|
9236
|
+
"name": "--motion-easing-default",
|
|
9237
|
+
"tier": "semantic",
|
|
9238
|
+
"description": "Semantic motion easing: default",
|
|
9239
|
+
"defaultLight": "var(--motion-easing-ease-in-out)",
|
|
9240
|
+
"defaultDark": "var(--motion-easing-ease-in-out)"
|
|
9241
|
+
},
|
|
9242
|
+
{
|
|
9243
|
+
"name": "--motion-easing-enter",
|
|
9244
|
+
"tier": "semantic",
|
|
9245
|
+
"description": "Semantic motion easing: enter",
|
|
9246
|
+
"defaultLight": "var(--motion-easing-ease-out)",
|
|
9247
|
+
"defaultDark": "var(--motion-easing-ease-out)"
|
|
9248
|
+
},
|
|
9249
|
+
{
|
|
9250
|
+
"name": "--motion-easing-exit",
|
|
9251
|
+
"tier": "semantic",
|
|
9252
|
+
"description": "Semantic motion easing: exit",
|
|
9253
|
+
"defaultLight": "var(--motion-easing-ease-in)",
|
|
9254
|
+
"defaultDark": "var(--motion-easing-ease-in)"
|
|
9255
|
+
},
|
|
9256
|
+
{
|
|
9257
|
+
"name": "--motion-easing-spring",
|
|
9258
|
+
"tier": "semantic",
|
|
9259
|
+
"description": "Semantic motion easing: spring",
|
|
9260
|
+
"defaultLight": "var(--motion-easing-spring)",
|
|
9261
|
+
"defaultDark": "var(--motion-easing-spring)"
|
|
9262
|
+
},
|
|
9263
|
+
{
|
|
9264
|
+
"name": "--font-body",
|
|
9265
|
+
"tier": "semantic",
|
|
9266
|
+
"description": "Semantic typography: font-body",
|
|
9267
|
+
"defaultLight": "var(--font-sans)",
|
|
9268
|
+
"defaultDark": "var(--font-sans)"
|
|
9269
|
+
},
|
|
9270
|
+
{
|
|
9271
|
+
"name": "--font-heading",
|
|
9272
|
+
"tier": "semantic",
|
|
9273
|
+
"description": "Semantic typography: font-heading",
|
|
9274
|
+
"defaultLight": "var(--font-sans)",
|
|
9275
|
+
"defaultDark": "var(--font-sans)"
|
|
9276
|
+
},
|
|
9277
|
+
{
|
|
9278
|
+
"name": "--font-mono",
|
|
9279
|
+
"tier": "semantic",
|
|
9280
|
+
"description": "Semantic typography: font-mono",
|
|
9281
|
+
"defaultLight": "var(--font-mono)",
|
|
9282
|
+
"defaultDark": "var(--font-mono)"
|
|
9283
|
+
},
|
|
9284
|
+
{
|
|
9285
|
+
"name": "--size-body",
|
|
9286
|
+
"tier": "semantic",
|
|
9287
|
+
"description": "Semantic typography: size-body",
|
|
9288
|
+
"defaultLight": "var(--font-size-base)",
|
|
9289
|
+
"defaultDark": "var(--font-size-base)"
|
|
9290
|
+
},
|
|
9291
|
+
{
|
|
9292
|
+
"name": "--size-body-sm",
|
|
9293
|
+
"tier": "semantic",
|
|
9294
|
+
"description": "Semantic typography: size-body-sm",
|
|
9295
|
+
"defaultLight": "var(--font-size-sm)",
|
|
9296
|
+
"defaultDark": "var(--font-size-sm)"
|
|
9297
|
+
},
|
|
9298
|
+
{
|
|
9299
|
+
"name": "--size-label",
|
|
9300
|
+
"tier": "semantic",
|
|
9301
|
+
"description": "Semantic typography: size-label",
|
|
9302
|
+
"defaultLight": "var(--font-size-sm)",
|
|
9303
|
+
"defaultDark": "var(--font-size-sm)"
|
|
9304
|
+
},
|
|
9305
|
+
{
|
|
9306
|
+
"name": "--size-caption",
|
|
9307
|
+
"tier": "semantic",
|
|
9308
|
+
"description": "Semantic typography: size-caption",
|
|
9309
|
+
"defaultLight": "var(--font-size-xs)",
|
|
9310
|
+
"defaultDark": "var(--font-size-xs)"
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
"name": "--size-heading-sm",
|
|
9314
|
+
"tier": "semantic",
|
|
9315
|
+
"description": "Semantic typography: size-heading-sm",
|
|
9316
|
+
"defaultLight": "var(--font-size-lg)",
|
|
9317
|
+
"defaultDark": "var(--font-size-lg)"
|
|
9318
|
+
},
|
|
9319
|
+
{
|
|
9320
|
+
"name": "--size-heading-md",
|
|
9321
|
+
"tier": "semantic",
|
|
9322
|
+
"description": "Semantic typography: size-heading-md",
|
|
9323
|
+
"defaultLight": "var(--font-size-xl)",
|
|
9324
|
+
"defaultDark": "var(--font-size-xl)"
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
"name": "--size-heading-lg",
|
|
9328
|
+
"tier": "semantic",
|
|
9329
|
+
"description": "Semantic typography: size-heading-lg",
|
|
9330
|
+
"defaultLight": "var(--font-size-2xl)",
|
|
9331
|
+
"defaultDark": "var(--font-size-2xl)"
|
|
9332
|
+
},
|
|
9333
|
+
{
|
|
9334
|
+
"name": "--size-heading-xl",
|
|
9335
|
+
"tier": "semantic",
|
|
9336
|
+
"description": "Semantic typography: size-heading-xl",
|
|
9337
|
+
"defaultLight": "var(--font-size-3xl)",
|
|
9338
|
+
"defaultDark": "var(--font-size-3xl)"
|
|
9339
|
+
},
|
|
9340
|
+
{
|
|
9341
|
+
"name": "--weight-body",
|
|
9342
|
+
"tier": "semantic",
|
|
9343
|
+
"description": "Semantic typography: weight-body",
|
|
9344
|
+
"defaultLight": "var(--font-weight-normal)",
|
|
9345
|
+
"defaultDark": "var(--font-weight-normal)"
|
|
9346
|
+
},
|
|
9347
|
+
{
|
|
9348
|
+
"name": "--weight-label",
|
|
9349
|
+
"tier": "semantic",
|
|
9350
|
+
"description": "Semantic typography: weight-label",
|
|
9351
|
+
"defaultLight": "var(--font-weight-medium)",
|
|
9352
|
+
"defaultDark": "var(--font-weight-medium)"
|
|
9353
|
+
},
|
|
9354
|
+
{
|
|
9355
|
+
"name": "--weight-heading",
|
|
9356
|
+
"tier": "semantic",
|
|
9357
|
+
"description": "Semantic typography: weight-heading",
|
|
9358
|
+
"defaultLight": "var(--font-weight-semibold)",
|
|
9359
|
+
"defaultDark": "var(--font-weight-semibold)"
|
|
9360
|
+
},
|
|
9361
|
+
{
|
|
9362
|
+
"name": "--weight-strong",
|
|
9363
|
+
"tier": "semantic",
|
|
9364
|
+
"description": "Semantic typography: weight-strong",
|
|
9365
|
+
"defaultLight": "var(--font-weight-bold)",
|
|
9366
|
+
"defaultDark": "var(--font-weight-bold)"
|
|
9367
|
+
},
|
|
9368
|
+
{
|
|
9369
|
+
"name": "--skeleton-from",
|
|
9370
|
+
"tier": "semantic",
|
|
9371
|
+
"description": "Semantic skeleton shimmer: from",
|
|
9372
|
+
"defaultLight": "var(--surface-muted)",
|
|
9373
|
+
"defaultDark": "var(--surface-muted)"
|
|
9374
|
+
},
|
|
9375
|
+
{
|
|
9376
|
+
"name": "--skeleton-to",
|
|
9377
|
+
"tier": "semantic",
|
|
9378
|
+
"description": "Semantic skeleton shimmer: to",
|
|
9379
|
+
"defaultLight": "var(--surface-subtle)",
|
|
9380
|
+
"defaultDark": "var(--surface-subtle)"
|
|
9381
|
+
},
|
|
9382
|
+
{
|
|
9383
|
+
"name": "--chart-1",
|
|
9384
|
+
"tier": "semantic",
|
|
9385
|
+
"description": "Semantic chart color 1",
|
|
9386
|
+
"defaultLight": "var(--color-primary-500)",
|
|
9387
|
+
"defaultDark": "var(--color-primary-500)"
|
|
9388
|
+
},
|
|
9389
|
+
{
|
|
9390
|
+
"name": "--chart-2",
|
|
9391
|
+
"tier": "semantic",
|
|
9392
|
+
"description": "Semantic chart color 2",
|
|
9393
|
+
"defaultLight": "var(--color-success-500)",
|
|
9394
|
+
"defaultDark": "var(--color-success-500)"
|
|
9395
|
+
},
|
|
9396
|
+
{
|
|
9397
|
+
"name": "--chart-3",
|
|
9398
|
+
"tier": "semantic",
|
|
9399
|
+
"description": "Semantic chart color 3",
|
|
9400
|
+
"defaultLight": "var(--color-warning-500)",
|
|
9401
|
+
"defaultDark": "var(--color-warning-500)"
|
|
9402
|
+
},
|
|
9403
|
+
{
|
|
9404
|
+
"name": "--chart-4",
|
|
9405
|
+
"tier": "semantic",
|
|
9406
|
+
"description": "Semantic chart color 4",
|
|
9407
|
+
"defaultLight": "var(--color-info-500)",
|
|
9408
|
+
"defaultDark": "var(--color-info-500)"
|
|
9409
|
+
},
|
|
9410
|
+
{
|
|
9411
|
+
"name": "--chart-5",
|
|
9412
|
+
"tier": "semantic",
|
|
9413
|
+
"description": "Semantic chart color 5",
|
|
9414
|
+
"defaultLight": "var(--color-error-500)",
|
|
9415
|
+
"defaultDark": "var(--color-error-500)"
|
|
9416
|
+
},
|
|
9417
|
+
{
|
|
9418
|
+
"name": "--sidebar-bg",
|
|
9419
|
+
"tier": "semantic",
|
|
9420
|
+
"description": "Semantic sidebar: bg",
|
|
9421
|
+
"defaultLight": "var(--color-neutral-50)",
|
|
9422
|
+
"defaultDark": "var(--color-neutral-50)"
|
|
9423
|
+
},
|
|
9424
|
+
{
|
|
9425
|
+
"name": "--sidebar-text",
|
|
9426
|
+
"tier": "semantic",
|
|
9427
|
+
"description": "Semantic sidebar: text",
|
|
9428
|
+
"defaultLight": "var(--color-neutral-700)",
|
|
9429
|
+
"defaultDark": "var(--color-neutral-700)"
|
|
9430
|
+
},
|
|
9431
|
+
{
|
|
9432
|
+
"name": "--sidebar-primary-bg",
|
|
9433
|
+
"tier": "semantic",
|
|
9434
|
+
"description": "Semantic sidebar: primary-bg",
|
|
9435
|
+
"defaultLight": "var(--color-primary-600)",
|
|
9436
|
+
"defaultDark": "var(--color-primary-600)"
|
|
9437
|
+
},
|
|
9438
|
+
{
|
|
9439
|
+
"name": "--sidebar-primary-text",
|
|
9440
|
+
"tier": "semantic",
|
|
9441
|
+
"description": "Semantic sidebar: primary-text",
|
|
9442
|
+
"defaultLight": "var(--color-white)",
|
|
9443
|
+
"defaultDark": "var(--color-white)"
|
|
9444
|
+
},
|
|
9445
|
+
{
|
|
9446
|
+
"name": "--sidebar-accent-bg",
|
|
9447
|
+
"tier": "semantic",
|
|
9448
|
+
"description": "Semantic sidebar: accent-bg",
|
|
9449
|
+
"defaultLight": "var(--color-neutral-100)",
|
|
9450
|
+
"defaultDark": "var(--color-neutral-100)"
|
|
9451
|
+
},
|
|
9452
|
+
{
|
|
9453
|
+
"name": "--sidebar-accent-text",
|
|
9454
|
+
"tier": "semantic",
|
|
9455
|
+
"description": "Semantic sidebar: accent-text",
|
|
9456
|
+
"defaultLight": "var(--color-neutral-900)",
|
|
9457
|
+
"defaultDark": "var(--color-neutral-900)"
|
|
9458
|
+
},
|
|
9459
|
+
{
|
|
9460
|
+
"name": "--sidebar-border",
|
|
9461
|
+
"tier": "semantic",
|
|
9462
|
+
"description": "Semantic sidebar: border",
|
|
9463
|
+
"defaultLight": "var(--color-neutral-200)",
|
|
9464
|
+
"defaultDark": "var(--color-neutral-200)"
|
|
9465
|
+
},
|
|
9466
|
+
{
|
|
9467
|
+
"name": "--sidebar-ring",
|
|
9468
|
+
"tier": "semantic",
|
|
9469
|
+
"description": "Semantic sidebar: ring",
|
|
9470
|
+
"defaultLight": "var(--color-primary-500)",
|
|
9471
|
+
"defaultDark": "var(--color-primary-500)"
|
|
9472
|
+
},
|
|
9473
|
+
{
|
|
9474
|
+
"name": "--sidebar-text-muted",
|
|
9475
|
+
"tier": "semantic",
|
|
9476
|
+
"description": "Semantic sidebar: text-muted",
|
|
9477
|
+
"defaultLight": "var(--color-neutral-500)",
|
|
9478
|
+
"defaultDark": "var(--color-neutral-500)"
|
|
9479
|
+
}
|
|
6558
9480
|
],
|
|
6559
|
-
"
|
|
6560
|
-
|
|
6561
|
-
|
|
6562
|
-
|
|
6563
|
-
|
|
9481
|
+
"adaptive": [
|
|
9482
|
+
{
|
|
9483
|
+
"name": "--text-primary",
|
|
9484
|
+
"tier": "adaptive",
|
|
9485
|
+
"description": "Adaptive text: primary",
|
|
9486
|
+
"defaultLight": "#111827",
|
|
9487
|
+
"defaultDark": "#f9fafb"
|
|
9488
|
+
},
|
|
9489
|
+
{
|
|
9490
|
+
"name": "--text-secondary",
|
|
9491
|
+
"tier": "adaptive",
|
|
9492
|
+
"description": "Adaptive text: secondary",
|
|
9493
|
+
"defaultLight": "#4b5563",
|
|
9494
|
+
"defaultDark": "#9ca3af"
|
|
9495
|
+
},
|
|
9496
|
+
{
|
|
9497
|
+
"name": "--text-tertiary",
|
|
9498
|
+
"tier": "adaptive",
|
|
9499
|
+
"description": "Adaptive text: tertiary",
|
|
9500
|
+
"defaultLight": "#9ca3af",
|
|
9501
|
+
"defaultDark": "#6b7280"
|
|
9502
|
+
},
|
|
9503
|
+
{
|
|
9504
|
+
"name": "--text-disabled",
|
|
9505
|
+
"tier": "adaptive",
|
|
9506
|
+
"description": "Adaptive text: disabled",
|
|
9507
|
+
"defaultLight": "#d1d5db",
|
|
9508
|
+
"defaultDark": "#4b5563"
|
|
9509
|
+
},
|
|
9510
|
+
{
|
|
9511
|
+
"name": "--text-inverse",
|
|
9512
|
+
"tier": "adaptive",
|
|
9513
|
+
"description": "Adaptive text: inverse",
|
|
9514
|
+
"defaultLight": "#ffffff",
|
|
9515
|
+
"defaultDark": "#111827"
|
|
9516
|
+
},
|
|
9517
|
+
{
|
|
9518
|
+
"name": "--text-inverse-secondary",
|
|
9519
|
+
"tier": "adaptive",
|
|
9520
|
+
"description": "Adaptive text: inverse-secondary",
|
|
9521
|
+
"defaultLight": "#e5e7eb",
|
|
9522
|
+
"defaultDark": "#374151"
|
|
9523
|
+
},
|
|
9524
|
+
{
|
|
9525
|
+
"name": "--text-link",
|
|
9526
|
+
"tier": "adaptive",
|
|
9527
|
+
"description": "Adaptive text: link",
|
|
9528
|
+
"defaultLight": "#2563eb",
|
|
9529
|
+
"defaultDark": "#60a5fa"
|
|
9530
|
+
},
|
|
9531
|
+
{
|
|
9532
|
+
"name": "--text-link-hover",
|
|
9533
|
+
"tier": "adaptive",
|
|
9534
|
+
"description": "Adaptive text: link-hover",
|
|
9535
|
+
"defaultLight": "#1d4ed8",
|
|
9536
|
+
"defaultDark": "#93c5fd"
|
|
9537
|
+
},
|
|
9538
|
+
{
|
|
9539
|
+
"name": "--text-success",
|
|
9540
|
+
"tier": "adaptive",
|
|
9541
|
+
"description": "Adaptive text: success",
|
|
9542
|
+
"defaultLight": "#15803d",
|
|
9543
|
+
"defaultDark": "#22c55e"
|
|
9544
|
+
},
|
|
9545
|
+
{
|
|
9546
|
+
"name": "--text-warning",
|
|
9547
|
+
"tier": "adaptive",
|
|
9548
|
+
"description": "Adaptive text: warning",
|
|
9549
|
+
"defaultLight": "#b45309",
|
|
9550
|
+
"defaultDark": "#f59e0b"
|
|
9551
|
+
},
|
|
9552
|
+
{
|
|
9553
|
+
"name": "--text-error",
|
|
9554
|
+
"tier": "adaptive",
|
|
9555
|
+
"description": "Adaptive text: error",
|
|
9556
|
+
"defaultLight": "#b91c1c",
|
|
9557
|
+
"defaultDark": "#ef4444"
|
|
9558
|
+
},
|
|
9559
|
+
{
|
|
9560
|
+
"name": "--text-info",
|
|
9561
|
+
"tier": "adaptive",
|
|
9562
|
+
"description": "Adaptive text: info",
|
|
9563
|
+
"defaultLight": "#0369a1",
|
|
9564
|
+
"defaultDark": "#0ea5e9"
|
|
9565
|
+
},
|
|
9566
|
+
{
|
|
9567
|
+
"name": "--surface-page",
|
|
9568
|
+
"tier": "adaptive",
|
|
9569
|
+
"description": "Adaptive surface: page",
|
|
9570
|
+
"defaultLight": "#ffffff",
|
|
9571
|
+
"defaultDark": "#030712"
|
|
9572
|
+
},
|
|
9573
|
+
{
|
|
9574
|
+
"name": "--surface-card",
|
|
9575
|
+
"tier": "adaptive",
|
|
9576
|
+
"description": "Adaptive surface: card",
|
|
9577
|
+
"defaultLight": "#ffffff",
|
|
9578
|
+
"defaultDark": "#111827"
|
|
9579
|
+
},
|
|
9580
|
+
{
|
|
9581
|
+
"name": "--surface-subtle",
|
|
9582
|
+
"tier": "adaptive",
|
|
9583
|
+
"description": "Adaptive surface: subtle",
|
|
9584
|
+
"defaultLight": "#f9fafb",
|
|
9585
|
+
"defaultDark": "#1f2937"
|
|
9586
|
+
},
|
|
9587
|
+
{
|
|
9588
|
+
"name": "--surface-muted",
|
|
9589
|
+
"tier": "adaptive",
|
|
9590
|
+
"description": "Adaptive surface: muted",
|
|
9591
|
+
"defaultLight": "#f3f4f6",
|
|
9592
|
+
"defaultDark": "#374151"
|
|
9593
|
+
},
|
|
9594
|
+
{
|
|
9595
|
+
"name": "--surface-overlay",
|
|
9596
|
+
"tier": "adaptive",
|
|
9597
|
+
"description": "Adaptive surface: overlay",
|
|
9598
|
+
"defaultLight": "#111827",
|
|
9599
|
+
"defaultDark": "#030712"
|
|
9600
|
+
},
|
|
9601
|
+
{
|
|
9602
|
+
"name": "--surface-popover",
|
|
9603
|
+
"tier": "adaptive",
|
|
9604
|
+
"description": "Adaptive surface: popover",
|
|
9605
|
+
"defaultLight": "#ffffff",
|
|
9606
|
+
"defaultDark": "#111827"
|
|
9607
|
+
},
|
|
9608
|
+
{
|
|
9609
|
+
"name": "--surface-interactive-default",
|
|
9610
|
+
"tier": "adaptive",
|
|
9611
|
+
"description": "Adaptive surface: interactive-default",
|
|
9612
|
+
"defaultLight": "#ffffff",
|
|
9613
|
+
"defaultDark": "#1f2937"
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
"name": "--surface-interactive-hover",
|
|
9617
|
+
"tier": "adaptive",
|
|
9618
|
+
"description": "Adaptive surface: interactive-hover",
|
|
9619
|
+
"defaultLight": "#f9fafb",
|
|
9620
|
+
"defaultDark": "#374151"
|
|
9621
|
+
},
|
|
9622
|
+
{
|
|
9623
|
+
"name": "--surface-interactive-active",
|
|
9624
|
+
"tier": "adaptive",
|
|
9625
|
+
"description": "Adaptive surface: interactive-active",
|
|
9626
|
+
"defaultLight": "#f3f4f6",
|
|
9627
|
+
"defaultDark": "#4b5563"
|
|
9628
|
+
},
|
|
9629
|
+
{
|
|
9630
|
+
"name": "--surface-interactive-disabled",
|
|
9631
|
+
"tier": "adaptive",
|
|
9632
|
+
"description": "Adaptive surface: interactive-disabled",
|
|
9633
|
+
"defaultLight": "#f9fafb",
|
|
9634
|
+
"defaultDark": "#1f2937"
|
|
9635
|
+
},
|
|
9636
|
+
{
|
|
9637
|
+
"name": "--surface-selected",
|
|
9638
|
+
"tier": "adaptive",
|
|
9639
|
+
"description": "Adaptive surface: selected",
|
|
9640
|
+
"defaultLight": "#dbeafe",
|
|
9641
|
+
"defaultDark": "#1e40af"
|
|
9642
|
+
},
|
|
9643
|
+
{
|
|
9644
|
+
"name": "--surface-accent-subtle",
|
|
9645
|
+
"tier": "adaptive",
|
|
9646
|
+
"description": "Adaptive surface: accent-subtle",
|
|
9647
|
+
"defaultLight": "#eff6ff",
|
|
9648
|
+
"defaultDark": "#1e3a8a"
|
|
9649
|
+
},
|
|
9650
|
+
{
|
|
9651
|
+
"name": "--surface-accent-default",
|
|
9652
|
+
"tier": "adaptive",
|
|
9653
|
+
"description": "Adaptive surface: accent-default",
|
|
9654
|
+
"defaultLight": "#3b82f6",
|
|
9655
|
+
"defaultDark": "#3b82f6"
|
|
9656
|
+
},
|
|
9657
|
+
{
|
|
9658
|
+
"name": "--surface-accent-strong",
|
|
9659
|
+
"tier": "adaptive",
|
|
9660
|
+
"description": "Adaptive surface: accent-strong",
|
|
9661
|
+
"defaultLight": "#2563eb",
|
|
9662
|
+
"defaultDark": "#60a5fa"
|
|
9663
|
+
},
|
|
9664
|
+
{
|
|
9665
|
+
"name": "--surface-success-subtle",
|
|
9666
|
+
"tier": "adaptive",
|
|
9667
|
+
"description": "Adaptive surface: success-subtle",
|
|
9668
|
+
"defaultLight": "#f0fdf4",
|
|
9669
|
+
"defaultDark": "#14532d"
|
|
9670
|
+
},
|
|
9671
|
+
{
|
|
9672
|
+
"name": "--surface-success-default",
|
|
9673
|
+
"tier": "adaptive",
|
|
9674
|
+
"description": "Adaptive surface: success-default",
|
|
9675
|
+
"defaultLight": "#22c55e",
|
|
9676
|
+
"defaultDark": "#22c55e"
|
|
9677
|
+
},
|
|
9678
|
+
{
|
|
9679
|
+
"name": "--surface-warning-subtle",
|
|
9680
|
+
"tier": "adaptive",
|
|
9681
|
+
"description": "Adaptive surface: warning-subtle",
|
|
9682
|
+
"defaultLight": "#fffbeb",
|
|
9683
|
+
"defaultDark": "#78350f"
|
|
9684
|
+
},
|
|
9685
|
+
{
|
|
9686
|
+
"name": "--surface-warning-default",
|
|
9687
|
+
"tier": "adaptive",
|
|
9688
|
+
"description": "Adaptive surface: warning-default",
|
|
9689
|
+
"defaultLight": "#f59e0b",
|
|
9690
|
+
"defaultDark": "#f59e0b"
|
|
9691
|
+
},
|
|
9692
|
+
{
|
|
9693
|
+
"name": "--surface-error-subtle",
|
|
9694
|
+
"tier": "adaptive",
|
|
9695
|
+
"description": "Adaptive surface: error-subtle",
|
|
9696
|
+
"defaultLight": "#fef2f2",
|
|
9697
|
+
"defaultDark": "#7f1d1d"
|
|
9698
|
+
},
|
|
9699
|
+
{
|
|
9700
|
+
"name": "--surface-error-default",
|
|
9701
|
+
"tier": "adaptive",
|
|
9702
|
+
"description": "Adaptive surface: error-default",
|
|
9703
|
+
"defaultLight": "#ef4444",
|
|
9704
|
+
"defaultDark": "#ef4444"
|
|
9705
|
+
},
|
|
9706
|
+
{
|
|
9707
|
+
"name": "--surface-info-subtle",
|
|
9708
|
+
"tier": "adaptive",
|
|
9709
|
+
"description": "Adaptive surface: info-subtle",
|
|
9710
|
+
"defaultLight": "#f0f9ff",
|
|
9711
|
+
"defaultDark": "#0c4a6e"
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
"name": "--surface-info-default",
|
|
9715
|
+
"tier": "adaptive",
|
|
9716
|
+
"description": "Adaptive surface: info-default",
|
|
9717
|
+
"defaultLight": "#0ea5e9",
|
|
9718
|
+
"defaultDark": "#0ea5e9"
|
|
9719
|
+
},
|
|
9720
|
+
{
|
|
9721
|
+
"name": "--border-default",
|
|
9722
|
+
"tier": "adaptive",
|
|
9723
|
+
"description": "Adaptive border: default",
|
|
9724
|
+
"defaultLight": "#e5e7eb",
|
|
9725
|
+
"defaultDark": "#374151"
|
|
9726
|
+
},
|
|
9727
|
+
{
|
|
9728
|
+
"name": "--border-muted",
|
|
9729
|
+
"tier": "adaptive",
|
|
9730
|
+
"description": "Adaptive border: muted",
|
|
9731
|
+
"defaultLight": "#f3f4f6",
|
|
9732
|
+
"defaultDark": "#1f2937"
|
|
9733
|
+
},
|
|
9734
|
+
{
|
|
9735
|
+
"name": "--border-strong",
|
|
9736
|
+
"tier": "adaptive",
|
|
9737
|
+
"description": "Adaptive border: strong",
|
|
9738
|
+
"defaultLight": "#d1d5db",
|
|
9739
|
+
"defaultDark": "#4b5563"
|
|
9740
|
+
},
|
|
9741
|
+
{
|
|
9742
|
+
"name": "--border-focus",
|
|
9743
|
+
"tier": "adaptive",
|
|
9744
|
+
"description": "Adaptive border: focus",
|
|
9745
|
+
"defaultLight": "#3b82f6",
|
|
9746
|
+
"defaultDark": "#60a5fa"
|
|
9747
|
+
},
|
|
9748
|
+
{
|
|
9749
|
+
"name": "--border-disabled",
|
|
9750
|
+
"tier": "adaptive",
|
|
9751
|
+
"description": "Adaptive border: disabled",
|
|
9752
|
+
"defaultLight": "#f3f4f6",
|
|
9753
|
+
"defaultDark": "#1f2937"
|
|
9754
|
+
},
|
|
9755
|
+
{
|
|
9756
|
+
"name": "--border-input",
|
|
9757
|
+
"tier": "adaptive",
|
|
9758
|
+
"description": "Adaptive border: input",
|
|
9759
|
+
"defaultLight": "#e5e7eb",
|
|
9760
|
+
"defaultDark": "#374151"
|
|
9761
|
+
},
|
|
9762
|
+
{
|
|
9763
|
+
"name": "--border-success",
|
|
9764
|
+
"tier": "adaptive",
|
|
9765
|
+
"description": "Adaptive border: success",
|
|
9766
|
+
"defaultLight": "#22c55e",
|
|
9767
|
+
"defaultDark": "#22c55e"
|
|
9768
|
+
},
|
|
9769
|
+
{
|
|
9770
|
+
"name": "--border-warning",
|
|
9771
|
+
"tier": "adaptive",
|
|
9772
|
+
"description": "Adaptive border: warning",
|
|
9773
|
+
"defaultLight": "#f59e0b",
|
|
9774
|
+
"defaultDark": "#f59e0b"
|
|
9775
|
+
},
|
|
9776
|
+
{
|
|
9777
|
+
"name": "--border-error",
|
|
9778
|
+
"tier": "adaptive",
|
|
9779
|
+
"description": "Adaptive border: error",
|
|
9780
|
+
"defaultLight": "#ef4444",
|
|
9781
|
+
"defaultDark": "#ef4444"
|
|
9782
|
+
},
|
|
9783
|
+
{
|
|
9784
|
+
"name": "--border-info",
|
|
9785
|
+
"tier": "adaptive",
|
|
9786
|
+
"description": "Adaptive border: info",
|
|
9787
|
+
"defaultLight": "#0ea5e9",
|
|
9788
|
+
"defaultDark": "#0ea5e9"
|
|
9789
|
+
},
|
|
9790
|
+
{
|
|
9791
|
+
"name": "--interactive-primary-bg",
|
|
9792
|
+
"tier": "adaptive",
|
|
9793
|
+
"description": "Adaptive interactive: primary-bg",
|
|
9794
|
+
"defaultLight": "#2563eb",
|
|
9795
|
+
"defaultDark": "#3b82f6"
|
|
9796
|
+
},
|
|
9797
|
+
{
|
|
9798
|
+
"name": "--interactive-primary-bg-hover",
|
|
9799
|
+
"tier": "adaptive",
|
|
9800
|
+
"description": "Adaptive interactive: primary-bg-hover",
|
|
9801
|
+
"defaultLight": "#1d4ed8",
|
|
9802
|
+
"defaultDark": "#60a5fa"
|
|
9803
|
+
},
|
|
9804
|
+
{
|
|
9805
|
+
"name": "--interactive-primary-bg-active",
|
|
9806
|
+
"tier": "adaptive",
|
|
9807
|
+
"description": "Adaptive interactive: primary-bg-active",
|
|
9808
|
+
"defaultLight": "#1e40af",
|
|
9809
|
+
"defaultDark": "#93c5fd"
|
|
9810
|
+
},
|
|
9811
|
+
{
|
|
9812
|
+
"name": "--interactive-primary-text",
|
|
9813
|
+
"tier": "adaptive",
|
|
9814
|
+
"description": "Adaptive interactive: primary-text",
|
|
9815
|
+
"defaultLight": "#ffffff",
|
|
9816
|
+
"defaultDark": "#ffffff"
|
|
9817
|
+
},
|
|
9818
|
+
{
|
|
9819
|
+
"name": "--interactive-secondary-bg",
|
|
9820
|
+
"tier": "adaptive",
|
|
9821
|
+
"description": "Adaptive interactive: secondary-bg",
|
|
9822
|
+
"defaultLight": "#ffffff",
|
|
9823
|
+
"defaultDark": "#1f2937"
|
|
9824
|
+
},
|
|
9825
|
+
{
|
|
9826
|
+
"name": "--interactive-secondary-bg-hover",
|
|
9827
|
+
"tier": "adaptive",
|
|
9828
|
+
"description": "Adaptive interactive: secondary-bg-hover",
|
|
9829
|
+
"defaultLight": "#f9fafb",
|
|
9830
|
+
"defaultDark": "#374151"
|
|
9831
|
+
},
|
|
9832
|
+
{
|
|
9833
|
+
"name": "--interactive-secondary-bg-active",
|
|
9834
|
+
"tier": "adaptive",
|
|
9835
|
+
"description": "Adaptive interactive: secondary-bg-active",
|
|
9836
|
+
"defaultLight": "#f3f4f6",
|
|
9837
|
+
"defaultDark": "#4b5563"
|
|
9838
|
+
},
|
|
9839
|
+
{
|
|
9840
|
+
"name": "--interactive-secondary-text",
|
|
9841
|
+
"tier": "adaptive",
|
|
9842
|
+
"description": "Adaptive interactive: secondary-text",
|
|
9843
|
+
"defaultLight": "#111827",
|
|
9844
|
+
"defaultDark": "#f9fafb"
|
|
9845
|
+
},
|
|
9846
|
+
{
|
|
9847
|
+
"name": "--interactive-secondary-border",
|
|
9848
|
+
"tier": "adaptive",
|
|
9849
|
+
"description": "Adaptive interactive: secondary-border",
|
|
9850
|
+
"defaultLight": "#d1d5db",
|
|
9851
|
+
"defaultDark": "#4b5563"
|
|
9852
|
+
},
|
|
9853
|
+
{
|
|
9854
|
+
"name": "--interactive-destructive-bg",
|
|
9855
|
+
"tier": "adaptive",
|
|
9856
|
+
"description": "Adaptive interactive: destructive-bg",
|
|
9857
|
+
"defaultLight": "#dc2626",
|
|
9858
|
+
"defaultDark": "#ef4444"
|
|
9859
|
+
},
|
|
9860
|
+
{
|
|
9861
|
+
"name": "--interactive-destructive-bg-hover",
|
|
9862
|
+
"tier": "adaptive",
|
|
9863
|
+
"description": "Adaptive interactive: destructive-bg-hover",
|
|
9864
|
+
"defaultLight": "#b91c1c",
|
|
9865
|
+
"defaultDark": "#dc2626"
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
"name": "--interactive-destructive-text",
|
|
9869
|
+
"tier": "adaptive",
|
|
9870
|
+
"description": "Adaptive interactive: destructive-text",
|
|
9871
|
+
"defaultLight": "#ffffff",
|
|
9872
|
+
"defaultDark": "#ffffff"
|
|
9873
|
+
},
|
|
9874
|
+
{
|
|
9875
|
+
"name": "--interactive-ghost-bg",
|
|
9876
|
+
"tier": "adaptive",
|
|
9877
|
+
"description": "Adaptive interactive: ghost-bg",
|
|
9878
|
+
"defaultLight": "#ffffff",
|
|
9879
|
+
"defaultDark": "#1f2937"
|
|
9880
|
+
},
|
|
9881
|
+
{
|
|
9882
|
+
"name": "--interactive-ghost-bg-hover",
|
|
9883
|
+
"tier": "adaptive",
|
|
9884
|
+
"description": "Adaptive interactive: ghost-bg-hover",
|
|
9885
|
+
"defaultLight": "#f3f4f6",
|
|
9886
|
+
"defaultDark": "#374151"
|
|
9887
|
+
},
|
|
9888
|
+
{
|
|
9889
|
+
"name": "--skeleton-from",
|
|
9890
|
+
"tier": "adaptive",
|
|
9891
|
+
"description": "Adaptive skeleton shimmer: from",
|
|
9892
|
+
"defaultLight": "#f3f4f6",
|
|
9893
|
+
"defaultDark": "#1f2937"
|
|
9894
|
+
},
|
|
9895
|
+
{
|
|
9896
|
+
"name": "--skeleton-to",
|
|
9897
|
+
"tier": "adaptive",
|
|
9898
|
+
"description": "Adaptive skeleton shimmer: to",
|
|
9899
|
+
"defaultLight": "#e5e7eb",
|
|
9900
|
+
"defaultDark": "#374151"
|
|
9901
|
+
},
|
|
9902
|
+
{
|
|
9903
|
+
"name": "--chart-1",
|
|
9904
|
+
"tier": "adaptive",
|
|
9905
|
+
"description": "Adaptive chart color 1",
|
|
9906
|
+
"defaultLight": "#3b82f6",
|
|
9907
|
+
"defaultDark": "#60a5fa"
|
|
9908
|
+
},
|
|
9909
|
+
{
|
|
9910
|
+
"name": "--chart-2",
|
|
9911
|
+
"tier": "adaptive",
|
|
9912
|
+
"description": "Adaptive chart color 2",
|
|
9913
|
+
"defaultLight": "#22c55e",
|
|
9914
|
+
"defaultDark": "#22c55e"
|
|
9915
|
+
},
|
|
9916
|
+
{
|
|
9917
|
+
"name": "--chart-3",
|
|
9918
|
+
"tier": "adaptive",
|
|
9919
|
+
"description": "Adaptive chart color 3",
|
|
9920
|
+
"defaultLight": "#f59e0b",
|
|
9921
|
+
"defaultDark": "#f59e0b"
|
|
9922
|
+
},
|
|
9923
|
+
{
|
|
9924
|
+
"name": "--chart-4",
|
|
9925
|
+
"tier": "adaptive",
|
|
9926
|
+
"description": "Adaptive chart color 4",
|
|
9927
|
+
"defaultLight": "#0ea5e9",
|
|
9928
|
+
"defaultDark": "#0ea5e9"
|
|
9929
|
+
},
|
|
9930
|
+
{
|
|
9931
|
+
"name": "--chart-5",
|
|
9932
|
+
"tier": "adaptive",
|
|
9933
|
+
"description": "Adaptive chart color 5",
|
|
9934
|
+
"defaultLight": "#ef4444",
|
|
9935
|
+
"defaultDark": "#ef4444"
|
|
9936
|
+
},
|
|
9937
|
+
{
|
|
9938
|
+
"name": "--sidebar-bg",
|
|
9939
|
+
"tier": "adaptive",
|
|
9940
|
+
"description": "Adaptive sidebar: bg",
|
|
9941
|
+
"defaultLight": "#f9fafb",
|
|
9942
|
+
"defaultDark": "#111827"
|
|
9943
|
+
},
|
|
9944
|
+
{
|
|
9945
|
+
"name": "--sidebar-text",
|
|
9946
|
+
"tier": "adaptive",
|
|
9947
|
+
"description": "Adaptive sidebar: text",
|
|
9948
|
+
"defaultLight": "#374151",
|
|
9949
|
+
"defaultDark": "#d1d5db"
|
|
9950
|
+
},
|
|
9951
|
+
{
|
|
9952
|
+
"name": "--sidebar-primary-bg",
|
|
9953
|
+
"tier": "adaptive",
|
|
9954
|
+
"description": "Adaptive sidebar: primary-bg",
|
|
9955
|
+
"defaultLight": "#2563eb",
|
|
9956
|
+
"defaultDark": "#3b82f6"
|
|
9957
|
+
},
|
|
9958
|
+
{
|
|
9959
|
+
"name": "--sidebar-primary-text",
|
|
9960
|
+
"tier": "adaptive",
|
|
9961
|
+
"description": "Adaptive sidebar: primary-text",
|
|
9962
|
+
"defaultLight": "#ffffff",
|
|
9963
|
+
"defaultDark": "#ffffff"
|
|
9964
|
+
},
|
|
9965
|
+
{
|
|
9966
|
+
"name": "--sidebar-accent-bg",
|
|
9967
|
+
"tier": "adaptive",
|
|
9968
|
+
"description": "Adaptive sidebar: accent-bg",
|
|
9969
|
+
"defaultLight": "#f3f4f6",
|
|
9970
|
+
"defaultDark": "#1f2937"
|
|
9971
|
+
},
|
|
9972
|
+
{
|
|
9973
|
+
"name": "--sidebar-accent-text",
|
|
9974
|
+
"tier": "adaptive",
|
|
9975
|
+
"description": "Adaptive sidebar: accent-text",
|
|
9976
|
+
"defaultLight": "#111827",
|
|
9977
|
+
"defaultDark": "#f9fafb"
|
|
9978
|
+
},
|
|
9979
|
+
{
|
|
9980
|
+
"name": "--sidebar-border",
|
|
9981
|
+
"tier": "adaptive",
|
|
9982
|
+
"description": "Adaptive sidebar: border",
|
|
9983
|
+
"defaultLight": "#e5e7eb",
|
|
9984
|
+
"defaultDark": "#374151"
|
|
9985
|
+
},
|
|
9986
|
+
{
|
|
9987
|
+
"name": "--sidebar-ring",
|
|
9988
|
+
"tier": "adaptive",
|
|
9989
|
+
"description": "Adaptive sidebar: ring",
|
|
9990
|
+
"defaultLight": "#3b82f6",
|
|
9991
|
+
"defaultDark": "#60a5fa"
|
|
9992
|
+
},
|
|
9993
|
+
{
|
|
9994
|
+
"name": "--sidebar-text-muted",
|
|
9995
|
+
"tier": "adaptive",
|
|
9996
|
+
"description": "Adaptive sidebar: text-muted",
|
|
9997
|
+
"defaultLight": "#6b7280",
|
|
9998
|
+
"defaultDark": "#9ca3af"
|
|
9999
|
+
}
|
|
6564
10000
|
],
|
|
6565
|
-
"
|
|
6566
|
-
"
|
|
6567
|
-
|
|
6568
|
-
"dropdown-menu",
|
|
6569
|
-
"fullscreen-overlay",
|
|
6570
|
-
"hover-card",
|
|
6571
|
-
"menubar",
|
|
6572
|
-
"sheet"
|
|
6573
|
-
]
|
|
10001
|
+
"summary": {
|
|
10002
|
+
"total": 300
|
|
10003
|
+
}
|
|
6574
10004
|
}
|
|
6575
10005
|
}
|