@mhmo91/schmancy 0.9.16 → 0.9.18
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/custom-elements.json +111 -51
- package/dist/agent/schmancy.agent.js +288 -38
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +332 -25
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js.map +1 -1
- package/dist/card-BslSqOsf.cjs.map +1 -1
- package/dist/card-CEdgK9nb.js.map +1 -1
- package/dist/details-B8p62xmR.cjs.map +1 -1
- package/dist/details-CCW52lzz.js.map +1 -1
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js.map +1 -1
- package/dist/divider-CbEWg3G_.js.map +1 -1
- package/dist/divider-JyyFw_3J.cjs.map +1 -1
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js.map +1 -1
- package/dist/expand-BmwIPNjq.cjs.map +1 -1
- package/dist/expand-bFa_qVDT.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/list-BpjKUOzM.js.map +1 -1
- package/dist/list-CMWHu6cV.cjs.map +1 -1
- package/dist/menu-BIBUgS1T.js.map +1 -1
- package/dist/menu-DS8Iz4fJ.cjs.map +1 -1
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js.map +1 -1
- package/dist/page.cjs.map +1 -1
- package/dist/page.js.map +1 -1
- package/dist/scroll-CdmXRXh2.js.map +1 -1
- package/dist/scroll-V1rAZ9fK.cjs.map +1 -1
- package/dist/sheet-DdlZhnDG.cjs.map +1 -1
- package/dist/sheet-LFVo5iN4.js.map +1 -1
- package/dist/src-C7niWYur.js.map +1 -1
- package/dist/src-I4M33WK2.cjs.map +1 -1
- package/dist/surface-0XM4DBaT.js.map +1 -1
- package/dist/surface-B6DA01kL.cjs.map +1 -1
- package/dist/theme-Cq_c9IO3.js.map +1 -1
- package/dist/theme-DU5yXaV-.cjs.map +1 -1
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js.map +1 -1
- package/package.json +1 -1
- package/src/breadcrumb/breadcrumb.ts +14 -4
- package/src/card/actions.ts +9 -0
- package/src/card/card.ts +18 -0
- package/src/card/content.ts +9 -0
- package/src/card/media.ts +6 -0
- package/src/details/details.ts +12 -0
- package/src/dialog/dialog.component.ts +9 -9
- package/src/divider/divider.ts +11 -0
- package/src/dropdown/dropdown-component.ts +13 -1
- package/src/dropdown/dropdown-content.ts +11 -3
- package/src/expand/expand-root.component.ts +12 -0
- package/src/expand/expand.component.ts +14 -0
- package/src/layout/scroll/scroll.ts +5 -1
- package/src/list/list-item.ts +10 -0
- package/src/list/list.ts +7 -8
- package/src/menu/menu-item.ts +13 -0
- package/src/menu/menu.ts +10 -22
- package/src/nav-drawer/appbar.ts +11 -0
- package/src/nav-drawer/content.ts +11 -0
- package/src/nav-drawer/drawer.ts +15 -0
- package/src/nav-drawer/navbar.ts +14 -0
- package/src/navigation-bar/navigation-bar-item.ts +3 -4
- package/src/navigation-bar/navigation-bar.ts +3 -9
- package/src/navigation-rail/navigation-rail-item.ts +3 -7
- package/src/navigation-rail/navigation-rail.ts +12 -8
- package/src/page/page.ts +8 -11
- package/src/sheet/sheet.ts +17 -0
- package/src/surface/surface.ts +4 -10
- package/src/theme/theme.component.ts +10 -15
- package/src/tree/tree.ts +12 -0
- package/types/src/breadcrumb/breadcrumb.d.ts +14 -4
- package/types/src/card/actions.d.ts +9 -0
- package/types/src/card/card.d.ts +18 -0
- package/types/src/card/content.d.ts +9 -0
- package/types/src/card/media.d.ts +6 -0
- package/types/src/details/details.d.ts +12 -0
- package/types/src/dialog/dialog.component.d.ts +9 -9
- package/types/src/divider/divider.d.ts +11 -0
- package/types/src/dropdown/dropdown-component.d.ts +13 -1
- package/types/src/dropdown/dropdown-content.d.ts +11 -3
- package/types/src/expand/expand-root.component.d.ts +12 -0
- package/types/src/expand/expand.component.d.ts +14 -0
- package/types/src/layout/scroll/scroll.d.ts +5 -1
- package/types/src/list/list-item.d.ts +10 -0
- package/types/src/list/list.d.ts +7 -8
- package/types/src/menu/menu-item.d.ts +13 -0
- package/types/src/menu/menu.d.ts +10 -22
- package/types/src/nav-drawer/appbar.d.ts +11 -0
- package/types/src/nav-drawer/content.d.ts +11 -0
- package/types/src/nav-drawer/drawer.d.ts +15 -0
- package/types/src/nav-drawer/navbar.d.ts +14 -0
- package/types/src/navigation-bar/navigation-bar-item.d.ts +3 -4
- package/types/src/navigation-bar/navigation-bar.d.ts +3 -9
- package/types/src/navigation-rail/navigation-rail-item.d.ts +3 -7
- package/types/src/navigation-rail/navigation-rail.d.ts +12 -8
- package/types/src/page/page.d.ts +8 -11
- package/types/src/sheet/sheet.d.ts +17 -0
- package/types/src/surface/surface.d.ts +4 -10
- package/types/src/theme/theme.component.d.ts +10 -15
- package/types/src/tree/tree.d.ts +12 -0
|
@@ -524,7 +524,13 @@
|
|
|
524
524
|
"kind": "class",
|
|
525
525
|
"name": "SchmancyBreadcrumb",
|
|
526
526
|
"tagName": "schmancy-breadcrumb",
|
|
527
|
-
"description": "Breadcrumb navigation
|
|
527
|
+
"description": "Breadcrumb trail — navigation history from root to current page. Renders schmancy-breadcrumb-item children with separators between.",
|
|
528
|
+
"summary": "Use for deep hierarchical navigation (file explorer paths, e-commerce category chains, admin settings trees). Last item is styled as the current page automatically.",
|
|
529
|
+
"platformPrimitive": {
|
|
530
|
+
"tag": "nav",
|
|
531
|
+
"mode": "-",
|
|
532
|
+
"note": "Styled `<nav aria-label=\"Breadcrumb\">`. Degrades to a plain nav if the tag never registers."
|
|
533
|
+
},
|
|
528
534
|
"attributes": [
|
|
529
535
|
{
|
|
530
536
|
"name": "separator",
|
|
@@ -545,13 +551,22 @@
|
|
|
545
551
|
"name": "separator",
|
|
546
552
|
"description": "The separator element."
|
|
547
553
|
}
|
|
554
|
+
],
|
|
555
|
+
"examples": [
|
|
556
|
+
"<schmancy-breadcrumb separator=\"›\">\n <schmancy-breadcrumb-item href=\"/\">Home</schmancy-breadcrumb-item>\n <schmancy-breadcrumb-item href=\"/docs\">Docs</schmancy-breadcrumb-item>\n <schmancy-breadcrumb-item>Getting started</schmancy-breadcrumb-item>\n</schmancy-breadcrumb>"
|
|
548
557
|
]
|
|
549
558
|
},
|
|
550
559
|
{
|
|
551
560
|
"kind": "class",
|
|
552
561
|
"name": "SchmancyBreadcrumbItem",
|
|
553
562
|
"tagName": "schmancy-breadcrumb-item",
|
|
554
|
-
"description": "
|
|
563
|
+
"description": "Single segment in a schmancy-breadcrumb trail — a link when `href` is set, or a plain span (the current page) when omitted.",
|
|
564
|
+
"summary": "Always nested inside schmancy-breadcrumb. Omit `href` on the current page — it gets aria-current=\"page\" automatically.",
|
|
565
|
+
"platformPrimitive": {
|
|
566
|
+
"tag": "a",
|
|
567
|
+
"mode": "-",
|
|
568
|
+
"note": "Renders an `<a>` or `<span>` depending on href. Degrades to a plain anchor/span if the tag never registers."
|
|
569
|
+
},
|
|
555
570
|
"attributes": [
|
|
556
571
|
{
|
|
557
572
|
"name": "href",
|
|
@@ -573,6 +588,9 @@
|
|
|
573
588
|
"name": "",
|
|
574
589
|
"description": "Label content."
|
|
575
590
|
}
|
|
591
|
+
],
|
|
592
|
+
"examples": [
|
|
593
|
+
"<schmancy-breadcrumb-item href=\"/products\">Products</schmancy-breadcrumb-item>"
|
|
576
594
|
]
|
|
577
595
|
}
|
|
578
596
|
]
|
|
@@ -904,11 +922,21 @@
|
|
|
904
922
|
"kind": "class",
|
|
905
923
|
"name": "SchmancyCardAction",
|
|
906
924
|
"tagName": "schmancy-card-action",
|
|
925
|
+
"description": "Action row of a schmancy-card — holds the card's buttons / links (typically aligned bottom-right).",
|
|
926
|
+
"summary": "Always nested inside schmancy-card. Holds the primary + secondary CTAs for the card.",
|
|
927
|
+
"platformPrimitive": {
|
|
928
|
+
"tag": "div",
|
|
929
|
+
"mode": "-",
|
|
930
|
+
"note": "Styled flex container. Degrades to a plain div if the tag never registers."
|
|
931
|
+
},
|
|
907
932
|
"slots": [
|
|
908
933
|
{
|
|
909
934
|
"name": "",
|
|
910
935
|
"description": "The content of the action"
|
|
911
936
|
}
|
|
937
|
+
],
|
|
938
|
+
"examples": [
|
|
939
|
+
"<schmancy-card-action>\n <schmancy-button variant=\"text\">Cancel</schmancy-button>\n <schmancy-button variant=\"filled\">Save</schmancy-button>\n</schmancy-card-action>"
|
|
912
940
|
]
|
|
913
941
|
}
|
|
914
942
|
]
|
|
@@ -921,6 +949,13 @@
|
|
|
921
949
|
"kind": "class",
|
|
922
950
|
"name": "SchmancyCard",
|
|
923
951
|
"tagName": "schmancy-card",
|
|
952
|
+
"description": "Material Design card — a surface-level container for grouping related content with media / content / actions slots.",
|
|
953
|
+
"summary": "Use for discrete pieces of content that appear in a list (a product, a note, a message). Combine with schmancy-card-media / schmancy-card-content / schmancy-card-action children.",
|
|
954
|
+
"platformPrimitive": {
|
|
955
|
+
"tag": "div",
|
|
956
|
+
"mode": "-",
|
|
957
|
+
"note": "Styled `<div>`; becomes an `<a>` when `href` is set so the whole card is a single interactive surface. Degrades to a plain div/a if the tag never registers."
|
|
958
|
+
},
|
|
924
959
|
"attributes": [
|
|
925
960
|
{
|
|
926
961
|
"name": "type",
|
|
@@ -989,6 +1024,9 @@
|
|
|
989
1024
|
"default": "''",
|
|
990
1025
|
"description": "ARIA label for accessibility."
|
|
991
1026
|
}
|
|
1027
|
+
],
|
|
1028
|
+
"examples": [
|
|
1029
|
+
"<schmancy-card type=\"elevated\" href=\"/items/42\">\n <schmancy-card-media src=\"/thumb.jpg\" alt=\"Thumbnail\"></schmancy-card-media>\n <schmancy-card-content>\n <h3>Title</h3>\n <p>One-line description of the card's content.</p>\n </schmancy-card-content>\n <schmancy-card-action>\n <schmancy-button variant=\"text\">Open</schmancy-button>\n </schmancy-card-action>\n</schmancy-card>"
|
|
992
1030
|
]
|
|
993
1031
|
}
|
|
994
1032
|
]
|
|
@@ -1000,7 +1038,17 @@
|
|
|
1000
1038
|
{
|
|
1001
1039
|
"kind": "class",
|
|
1002
1040
|
"name": "SchmancyCardContent",
|
|
1003
|
-
"tagName": "schmancy-card-content"
|
|
1041
|
+
"tagName": "schmancy-card-content",
|
|
1042
|
+
"description": "Content region of a schmancy-card — holds the card's headline, supporting text, and inline controls.",
|
|
1043
|
+
"summary": "Always nested inside schmancy-card. The padded content block between the media and action rows.",
|
|
1044
|
+
"platformPrimitive": {
|
|
1045
|
+
"tag": "div",
|
|
1046
|
+
"mode": "-",
|
|
1047
|
+
"note": "Styled `<div>` with padding. Degrades to a plain div if the tag never registers."
|
|
1048
|
+
},
|
|
1049
|
+
"examples": [
|
|
1050
|
+
"<schmancy-card-content>\n <h3>Card title</h3>\n <p>Supporting text that describes the card's subject.</p>\n</schmancy-card-content>"
|
|
1051
|
+
]
|
|
1004
1052
|
}
|
|
1005
1053
|
]
|
|
1006
1054
|
},
|
|
@@ -1012,6 +1060,13 @@
|
|
|
1012
1060
|
"kind": "class",
|
|
1013
1061
|
"name": "SchmancyCardMedia",
|
|
1014
1062
|
"tagName": "schmancy-card-media",
|
|
1063
|
+
"description": "Media region of a schmancy-card — the image / thumbnail at the top of the card.",
|
|
1064
|
+
"summary": "Always nested inside schmancy-card. Pass `src` + `alt` props or slot an `<img>` / `<video>` for custom media.",
|
|
1065
|
+
"platformPrimitive": {
|
|
1066
|
+
"tag": "img",
|
|
1067
|
+
"mode": "-",
|
|
1068
|
+
"note": "Renders an `<img>` (or wraps a slotted media element). Degrades to a styled `<img>` if the tag never registers."
|
|
1069
|
+
},
|
|
1015
1070
|
"attributes": [
|
|
1016
1071
|
{
|
|
1017
1072
|
"name": "src",
|
|
@@ -1041,6 +1096,9 @@
|
|
|
1041
1096
|
},
|
|
1042
1097
|
"default": "''"
|
|
1043
1098
|
}
|
|
1099
|
+
],
|
|
1100
|
+
"examples": [
|
|
1101
|
+
"<schmancy-card-media src=\"/thumb.jpg\" alt=\"Product photo\"></schmancy-card-media>"
|
|
1044
1102
|
]
|
|
1045
1103
|
}
|
|
1046
1104
|
]
|
|
@@ -2203,6 +2261,13 @@
|
|
|
2203
2261
|
"kind": "class",
|
|
2204
2262
|
"name": "SchmancyDetails",
|
|
2205
2263
|
"tagName": "schmancy-details",
|
|
2264
|
+
"description": "Expandable disclosure panel — a styled `<details>` / `<summary>` pair with animated expand + overlay options.",
|
|
2265
|
+
"summary": "Use for progressive-disclosure content: FAQs, collapsible settings sections, accordion-style lists. Prefer schmancy-expand for full-page accordions where only one section can be open at a time.",
|
|
2266
|
+
"platformPrimitive": {
|
|
2267
|
+
"tag": "details",
|
|
2268
|
+
"mode": "toggle",
|
|
2269
|
+
"note": "Wraps native `<details>`/`<summary>`. Degrades to the native element if the tag never registers — same keyboard accessibility, just no animation."
|
|
2270
|
+
},
|
|
2206
2271
|
"attributes": [
|
|
2207
2272
|
{
|
|
2208
2273
|
"name": "summary",
|
|
@@ -2264,6 +2329,15 @@
|
|
|
2264
2329
|
},
|
|
2265
2330
|
"default": "'p-3'"
|
|
2266
2331
|
}
|
|
2332
|
+
],
|
|
2333
|
+
"events": [
|
|
2334
|
+
{
|
|
2335
|
+
"name": "toggle",
|
|
2336
|
+
"description": "When the open state changes (bubbles from the native `<details>`)."
|
|
2337
|
+
}
|
|
2338
|
+
],
|
|
2339
|
+
"examples": [
|
|
2340
|
+
"<schmancy-details summary=\"Shipping details\">\n <p>Order ships in 2 business days.</p>\n</schmancy-details>"
|
|
2267
2341
|
]
|
|
2268
2342
|
}
|
|
2269
2343
|
]
|
|
@@ -2311,7 +2385,13 @@
|
|
|
2311
2385
|
"kind": "class",
|
|
2312
2386
|
"name": "SchmancyDialog",
|
|
2313
2387
|
"tagName": "schmancy-dialog",
|
|
2314
|
-
"description": "
|
|
2388
|
+
"description": "Modal dialog — content-only (just a styled panel) or confirm mode (title + message + confirm/cancel buttons). Prefer the imperative `$dialog` service for most use cases; use the element directly only when you want a declaratively-positioned dialog.",
|
|
2389
|
+
"summary": "Blocks interaction with the rest of the page until dismissed. For quick confirmations, prefer `$dialog.confirm({ ... })` over this element. For arbitrary dialog content driven imperatively, prefer `$dialog.component(MyComponent)`.",
|
|
2390
|
+
"platformPrimitive": {
|
|
2391
|
+
"tag": "dialog",
|
|
2392
|
+
"mode": "close",
|
|
2393
|
+
"note": "Positioned overlay in light DOM. Degrades to a styled `<dialog>` if the tag never registers — loses custom animations but keeps focus trap + ESC close."
|
|
2394
|
+
},
|
|
2315
2395
|
"attributes": [
|
|
2316
2396
|
{
|
|
2317
2397
|
"name": "uid",
|
|
@@ -2381,6 +2461,16 @@
|
|
|
2381
2461
|
"description": "Whether to hide action buttons (force content mode)"
|
|
2382
2462
|
}
|
|
2383
2463
|
],
|
|
2464
|
+
"events": [
|
|
2465
|
+
{
|
|
2466
|
+
"name": "confirm",
|
|
2467
|
+
"description": "In confirm mode, when the confirm button is clicked."
|
|
2468
|
+
},
|
|
2469
|
+
{
|
|
2470
|
+
"name": "cancel",
|
|
2471
|
+
"description": "In confirm mode, when the cancel button or ESC is activated."
|
|
2472
|
+
}
|
|
2473
|
+
],
|
|
2384
2474
|
"slots": [
|
|
2385
2475
|
{
|
|
2386
2476
|
"name": "default",
|
|
@@ -2392,8 +2482,8 @@
|
|
|
2392
2482
|
}
|
|
2393
2483
|
],
|
|
2394
2484
|
"examples": [
|
|
2395
|
-
"Content mode (no buttons):\n
|
|
2396
|
-
"Confirm mode (with buttons):\n
|
|
2485
|
+
"Content mode (no buttons):\n<schmancy-dialog>\n <my-custom-content></my-custom-content>\n</schmancy-dialog>",
|
|
2486
|
+
"Confirm mode (with buttons):\n<schmancy-dialog\n title=\"Delete item?\"\n message=\"This action cannot be undone.\"\n confirm-text=\"Delete\"\n cancel-text=\"Keep\"\n></schmancy-dialog>"
|
|
2397
2487
|
]
|
|
2398
2488
|
}
|
|
2399
2489
|
]
|
|
@@ -2406,6 +2496,13 @@
|
|
|
2406
2496
|
"kind": "class",
|
|
2407
2497
|
"name": "SchmancyDivider",
|
|
2408
2498
|
"tagName": "schmancy-divider",
|
|
2499
|
+
"description": "Thin horizontal (or vertical) separator rule between sections of content.",
|
|
2500
|
+
"summary": "Semantic separator between groups — list items, menu sections, content blocks. Uses outline theme token.",
|
|
2501
|
+
"platformPrimitive": {
|
|
2502
|
+
"tag": "hr",
|
|
2503
|
+
"mode": "-",
|
|
2504
|
+
"note": "Styled horizontal rule. Degrades to a native `<hr>` if the tag never registers."
|
|
2505
|
+
},
|
|
2409
2506
|
"attributes": [
|
|
2410
2507
|
{
|
|
2411
2508
|
"name": "outline",
|
|
@@ -2437,6 +2534,9 @@
|
|
|
2437
2534
|
],
|
|
2438
2535
|
"default": "'start'"
|
|
2439
2536
|
}
|
|
2537
|
+
],
|
|
2538
|
+
"examples": [
|
|
2539
|
+
"<schmancy-list-item>First</schmancy-list-item>\n<schmancy-divider></schmancy-divider>\n<schmancy-list-item>Second</schmancy-list-item>"
|
|
2440
2540
|
]
|
|
2441
2541
|
}
|
|
2442
2542
|
]
|
|
@@ -2449,7 +2549,13 @@
|
|
|
2449
2549
|
"kind": "class",
|
|
2450
2550
|
"name": "SchmancyDropdown",
|
|
2451
2551
|
"tagName": "schmancy-dropdown",
|
|
2452
|
-
"description": "
|
|
2552
|
+
"description": "Anchored floating dropdown — a generic \"show this content relative to that trigger\" primitive. Unlike schmancy-menu (which uses the dialog service and is list-shaped), dropdown is a low-level popover anchored with Floating UI. Use when you want a custom-shaped overlay tied to a specific trigger element without the menu semantics.",
|
|
2553
|
+
"summary": "Prefer schmancy-menu for action lists, schmancy-autocomplete for type-ahead, schmancy-tooltip for hover hints. Reach for schmancy-dropdown when none of those fit — custom filters, color pickers, inline forms anchored to a trigger.",
|
|
2554
|
+
"platformPrimitive": {
|
|
2555
|
+
"tag": "div",
|
|
2556
|
+
"mode": "-",
|
|
2557
|
+
"note": "Anchored via Floating UI (autoUpdate, flip, shift). Degrades to inline content if the tag never registers — loses positioning but content stays accessible."
|
|
2558
|
+
},
|
|
2453
2559
|
"attributes": [
|
|
2454
2560
|
{
|
|
2455
2561
|
"name": "open",
|
|
@@ -2490,6 +2596,16 @@
|
|
|
2490
2596
|
"description": "Offset distance in pixels"
|
|
2491
2597
|
}
|
|
2492
2598
|
],
|
|
2599
|
+
"events": [
|
|
2600
|
+
{
|
|
2601
|
+
"name": "open",
|
|
2602
|
+
"description": "When the dropdown opens."
|
|
2603
|
+
},
|
|
2604
|
+
{
|
|
2605
|
+
"name": "close",
|
|
2606
|
+
"description": "When the dropdown closes."
|
|
2607
|
+
}
|
|
2608
|
+
],
|
|
2493
2609
|
"slots": [
|
|
2494
2610
|
{
|
|
2495
2611
|
"name": "trigger",
|
|
@@ -2499,6 +2615,9 @@
|
|
|
2499
2615
|
"name": "",
|
|
2500
2616
|
"description": "Default slot for the dropdown content"
|
|
2501
2617
|
}
|
|
2618
|
+
],
|
|
2619
|
+
"examples": [
|
|
2620
|
+
"<schmancy-dropdown>\n <schmancy-button slot=\"trigger\">Filters</schmancy-button>\n <schmancy-dropdown-content>\n <schmancy-form>…</schmancy-form>\n </schmancy-dropdown-content>\n</schmancy-dropdown>"
|
|
2502
2621
|
]
|
|
2503
2622
|
}
|
|
2504
2623
|
]
|
|
@@ -2511,7 +2630,13 @@
|
|
|
2511
2630
|
"kind": "class",
|
|
2512
2631
|
"name": "SchmancyDropdownContent",
|
|
2513
2632
|
"tagName": "schmancy-dropdown-content",
|
|
2514
|
-
"description": "Content
|
|
2633
|
+
"description": "Content panel for a schmancy-dropdown — a styled positioned surface. Always nested inside schmancy-dropdown and placed alongside the trigger slot.",
|
|
2634
|
+
"summary": "Nest this inside schmancy-dropdown (not in the trigger slot). Use the `content` CSS part to customize backgrounds / shadows / padding without shadow-root piercing.",
|
|
2635
|
+
"platformPrimitive": {
|
|
2636
|
+
"tag": "div",
|
|
2637
|
+
"mode": "-",
|
|
2638
|
+
"note": "Positioned panel with theme-aware styling. Degrades to an inline div if the tag never registers."
|
|
2639
|
+
},
|
|
2515
2640
|
"attributes": [
|
|
2516
2641
|
{
|
|
2517
2642
|
"name": "width",
|
|
@@ -2564,6 +2689,9 @@
|
|
|
2564
2689
|
"name": "content",
|
|
2565
2690
|
"description": "The inner wrapper element; style to override panel backgrounds, shadows, padding, or borders without shadow-root piercing."
|
|
2566
2691
|
}
|
|
2692
|
+
],
|
|
2693
|
+
"examples": [
|
|
2694
|
+
"<schmancy-dropdown>\n <schmancy-button slot=\"trigger\">Open</schmancy-button>\n <schmancy-dropdown-content>\n Panel contents…\n </schmancy-dropdown-content>\n</schmancy-dropdown>"
|
|
2567
2695
|
]
|
|
2568
2696
|
}
|
|
2569
2697
|
]
|
|
@@ -2576,6 +2704,13 @@
|
|
|
2576
2704
|
"kind": "class",
|
|
2577
2705
|
"name": "SchmancyExpandRoot",
|
|
2578
2706
|
"tagName": "schmancy-expand-root",
|
|
2707
|
+
"description": "Container for schmancy-expand children — coordinates mutual-exclusion so only one child is open at a time. Also renders the portal panel that the active child expands into.",
|
|
2708
|
+
"summary": "Always wrap a group of schmancy-expand children. Without a root, each schmancy-expand behaves independently (which is usually not what you want — prefer schmancy-details for that).",
|
|
2709
|
+
"platformPrimitive": {
|
|
2710
|
+
"tag": "div",
|
|
2711
|
+
"mode": "-",
|
|
2712
|
+
"note": "Coordinating wrapper. Degrades to a plain div if the tag never registers — children fall back to independent `<details>` behavior."
|
|
2713
|
+
},
|
|
2579
2714
|
"attributes": [
|
|
2580
2715
|
{
|
|
2581
2716
|
"name": "type",
|
|
@@ -2608,6 +2743,9 @@
|
|
|
2608
2743
|
],
|
|
2609
2744
|
"default": "'solid'"
|
|
2610
2745
|
}
|
|
2746
|
+
],
|
|
2747
|
+
"examples": [
|
|
2748
|
+
"<schmancy-expand-root>\n <schmancy-expand summary=\"Step 1\">…</schmancy-expand>\n <schmancy-expand summary=\"Step 2\">…</schmancy-expand>\n</schmancy-expand-root>"
|
|
2611
2749
|
]
|
|
2612
2750
|
}
|
|
2613
2751
|
]
|
|
@@ -2620,6 +2758,13 @@
|
|
|
2620
2758
|
"kind": "class",
|
|
2621
2759
|
"name": "SchmancyExpand",
|
|
2622
2760
|
"tagName": "schmancy-expand",
|
|
2761
|
+
"description": "Accordion-style section — expands on click, coordinates with siblings via schmancy-expand-root to close any sibling when a new one opens. Only one schmancy-expand can be open at a time within the same root.",
|
|
2762
|
+
"summary": "Use for grouped progressive-disclosure where only one section should be open at a time. Prefer schmancy-details when sections should be independent.",
|
|
2763
|
+
"platformPrimitive": {
|
|
2764
|
+
"tag": "details",
|
|
2765
|
+
"mode": "toggle",
|
|
2766
|
+
"note": "Schmancy-skinned accordion section. Degrades to `<details>` if the tag never registers — loses mutual-exclusion behavior but stays functional."
|
|
2767
|
+
},
|
|
2623
2768
|
"attributes": [
|
|
2624
2769
|
{
|
|
2625
2770
|
"name": "summary",
|
|
@@ -2677,6 +2822,15 @@
|
|
|
2677
2822
|
},
|
|
2678
2823
|
"default": "false"
|
|
2679
2824
|
}
|
|
2825
|
+
],
|
|
2826
|
+
"events": [
|
|
2827
|
+
{
|
|
2828
|
+
"name": "toggle",
|
|
2829
|
+
"description": "When the open state changes."
|
|
2830
|
+
}
|
|
2831
|
+
],
|
|
2832
|
+
"examples": [
|
|
2833
|
+
"<schmancy-expand-root>\n <schmancy-expand summary=\"Billing\">Billing form…</schmancy-expand>\n <schmancy-expand summary=\"Shipping\">Shipping form…</schmancy-expand>\n <schmancy-expand summary=\"Review\">Order review…</schmancy-expand>\n</schmancy-expand-root>"
|
|
2680
2834
|
]
|
|
2681
2835
|
}
|
|
2682
2836
|
]
|
|
@@ -3221,6 +3375,13 @@
|
|
|
3221
3375
|
"kind": "class",
|
|
3222
3376
|
"name": "SchmancyListItem",
|
|
3223
3377
|
"tagName": "schmancy-list-item",
|
|
3378
|
+
"description": "Single row in a schmancy-list — supports leading icon/avatar, main content, trailing actions. Clickable via click event, or used as a schmancy-menu-item's visual base.",
|
|
3379
|
+
"summary": "Prefer nesting inside schmancy-list for consistent spacing/surface. Use `href` to make the row a navigation target (renders as `<a>`), or a click handler for in-app actions.",
|
|
3380
|
+
"platformPrimitive": {
|
|
3381
|
+
"tag": "li",
|
|
3382
|
+
"mode": "click",
|
|
3383
|
+
"note": "Styled `<li>` or `<a>` depending on `href`. Degrades to a plain list item if the tag never registers."
|
|
3384
|
+
},
|
|
3224
3385
|
"attributes": [
|
|
3225
3386
|
{
|
|
3226
3387
|
"name": "variant",
|
|
@@ -3286,6 +3447,9 @@
|
|
|
3286
3447
|
"description": "default content"
|
|
3287
3448
|
}
|
|
3288
3449
|
],
|
|
3450
|
+
"examples": [
|
|
3451
|
+
"<schmancy-list-item href=\"/profile\">\n <schmancy-icon slot=\"leading\">person</schmancy-icon>\n Profile\n <schmancy-icon slot=\"trailing\">chevron_right</schmancy-icon>\n</schmancy-list-item>"
|
|
3452
|
+
],
|
|
3289
3453
|
"contexts": [
|
|
3290
3454
|
{
|
|
3291
3455
|
"name": "SchmancySurfaceTypeContext",
|
|
@@ -3303,7 +3467,13 @@
|
|
|
3303
3467
|
"kind": "class",
|
|
3304
3468
|
"name": "List",
|
|
3305
3469
|
"tagName": "schmancy-list",
|
|
3306
|
-
"description": "
|
|
3470
|
+
"description": "Wrapped list container — holds schmancy-list-item children on a themed surface. Optionally scrollable.",
|
|
3471
|
+
"summary": "Use for vertical lists of similarly-shaped items: settings entries, menu items, contact lists, notification lists. Pair with schmancy-list-item children.",
|
|
3472
|
+
"platformPrimitive": {
|
|
3473
|
+
"tag": "ul",
|
|
3474
|
+
"mode": "-",
|
|
3475
|
+
"note": "Styled list container. Degrades to a plain ul/div if the tag never registers."
|
|
3476
|
+
},
|
|
3307
3477
|
"attributes": [
|
|
3308
3478
|
{
|
|
3309
3479
|
"name": "surface",
|
|
@@ -3366,7 +3536,7 @@
|
|
|
3366
3536
|
}
|
|
3367
3537
|
],
|
|
3368
3538
|
"examples": [
|
|
3369
|
-
"<schmancy-list surface=\"container\" scroller>\n <schmancy-list-item>
|
|
3539
|
+
"<schmancy-list surface=\"container\" scroller>\n <schmancy-list-item>First</schmancy-list-item>\n <schmancy-list-item>Second</schmancy-list-item>\n <schmancy-list-item>Third</schmancy-list-item>\n</schmancy-list>"
|
|
3370
3540
|
],
|
|
3371
3541
|
"contexts": [
|
|
3372
3542
|
{
|
|
@@ -3846,7 +4016,23 @@
|
|
|
3846
4016
|
{
|
|
3847
4017
|
"kind": "class",
|
|
3848
4018
|
"name": "SchmancyMenuItem",
|
|
3849
|
-
"tagName": "schmancy-menu-item"
|
|
4019
|
+
"tagName": "schmancy-menu-item",
|
|
4020
|
+
"description": "Single item inside a schmancy-menu. Auto-dismisses the menu dialog on click — attach your action handler to `@click` and it just works.",
|
|
4021
|
+
"summary": "Always nested inside schmancy-menu. The click handler runs before the dialog closes, so `@click=${() => doThing()}` is the full pattern.",
|
|
4022
|
+
"platformPrimitive": {
|
|
4023
|
+
"tag": "menuitem",
|
|
4024
|
+
"mode": "click",
|
|
4025
|
+
"note": "Wraps schmancy-list-item with auto-dismiss. Degrades to a styled `<button role=\"menuitem\">` if the tag never registers."
|
|
4026
|
+
},
|
|
4027
|
+
"slots": [
|
|
4028
|
+
{
|
|
4029
|
+
"name": "",
|
|
4030
|
+
"description": "The item label and optional icons."
|
|
4031
|
+
}
|
|
4032
|
+
],
|
|
4033
|
+
"examples": [
|
|
4034
|
+
"<schmancy-menu-item @click=${() => archive()}>\n <schmancy-icon slot=\"leading\">archive</schmancy-icon>\n Archive\n</schmancy-menu-item>"
|
|
4035
|
+
]
|
|
3850
4036
|
}
|
|
3851
4037
|
]
|
|
3852
4038
|
},
|
|
@@ -3858,7 +4044,13 @@
|
|
|
3858
4044
|
"kind": "class",
|
|
3859
4045
|
"name": "SchmancyMenu",
|
|
3860
4046
|
"tagName": "schmancy-menu",
|
|
3861
|
-
"description": "
|
|
4047
|
+
"description": "Floating menu — a trigger button + a list of schmancy-menu-item children that open as a positioned dialog on click.",
|
|
4048
|
+
"summary": "Use for dropdown menus attached to a button or icon — \"More actions\", \"Account\", row overflow menus in tables. Clicking a schmancy-menu-item inside auto-dismisses; custom components slotted inside must call `$dialog.dismiss()` themselves.",
|
|
4049
|
+
"platformPrimitive": {
|
|
4050
|
+
"tag": "menu",
|
|
4051
|
+
"mode": "close",
|
|
4052
|
+
"note": "Trigger + floating listbox dialog. Degrades to a native `<select>` or inline list if the tag never registers."
|
|
4053
|
+
},
|
|
3862
4054
|
"slots": [
|
|
3863
4055
|
{
|
|
3864
4056
|
"name": "trigger",
|
|
@@ -3874,8 +4066,7 @@
|
|
|
3874
4066
|
}
|
|
3875
4067
|
],
|
|
3876
4068
|
"examples": [
|
|
3877
|
-
"
|
|
3878
|
-
"Custom component (manual dismiss)\n\n<schmancy-menu>\n <schmancy-icon-button slot=\"trigger\">settings</schmancy-icon-button>\n <my-settings-form @submit=${() => $dialog.dismiss()}></my-settings-form>\n</schmancy-menu>\n\nNote: Custom components must call $dialog.dismiss() manually"
|
|
4069
|
+
"<schmancy-menu>\n <schmancy-icon-button slot=\"trigger\" aria-label=\"Actions\">\n <schmancy-icon>more_vert</schmancy-icon>\n </schmancy-icon-button>\n <schmancy-menu-item @click=${() => edit()}>Edit</schmancy-menu-item>\n <schmancy-menu-item @click=${() => remove()}>Delete</schmancy-menu-item>\n</schmancy-menu>"
|
|
3879
4070
|
]
|
|
3880
4071
|
}
|
|
3881
4072
|
]
|
|
@@ -3888,11 +4079,21 @@
|
|
|
3888
4079
|
"kind": "class",
|
|
3889
4080
|
"name": "SchmancyDrawerAppbar",
|
|
3890
4081
|
"tagName": "schmancy-nav-drawer-appbar",
|
|
4082
|
+
"description": "Top app bar region inside schmancy-nav-drawer — the horizontal strip above the content area that typically holds the page title, hamburger trigger, and contextual actions.",
|
|
4083
|
+
"summary": "Always nested inside schmancy-nav-drawer. Holds the page-level title + top-right actions. On mobile, the drawer's hamburger button renders inside this region.",
|
|
4084
|
+
"platformPrimitive": {
|
|
4085
|
+
"tag": "header",
|
|
4086
|
+
"mode": "-",
|
|
4087
|
+
"note": "Styled horizontal bar. Degrades to a plain header element if the tag never registers."
|
|
4088
|
+
},
|
|
3891
4089
|
"slots": [
|
|
3892
4090
|
{
|
|
3893
4091
|
"name": "",
|
|
3894
4092
|
"description": "The default slot"
|
|
3895
4093
|
}
|
|
4094
|
+
],
|
|
4095
|
+
"examples": [
|
|
4096
|
+
"<schmancy-nav-drawer-appbar>\n <schmancy-typography type=\"title\" token=\"lg\">Dashboard</schmancy-typography>\n <schmancy-icon-button slot=\"trailing\" aria-label=\"Notifications\">\n <schmancy-icon>notifications</schmancy-icon>\n </schmancy-icon-button>\n</schmancy-nav-drawer-appbar>"
|
|
3896
4097
|
]
|
|
3897
4098
|
}
|
|
3898
4099
|
]
|
|
@@ -3904,7 +4105,17 @@
|
|
|
3904
4105
|
{
|
|
3905
4106
|
"kind": "class",
|
|
3906
4107
|
"name": "SchmancyNavigationDrawerContent",
|
|
3907
|
-
"tagName": "schmancy-nav-drawer-content"
|
|
4108
|
+
"tagName": "schmancy-nav-drawer-content",
|
|
4109
|
+
"description": "Main content region inside schmancy-nav-drawer — typically hosts the router outlet or the page's body content.",
|
|
4110
|
+
"summary": "Always nested inside schmancy-nav-drawer. Scrollable by default; propagates scroll events up so the drawer can collapse app-bar on scroll.",
|
|
4111
|
+
"platformPrimitive": {
|
|
4112
|
+
"tag": "main",
|
|
4113
|
+
"mode": "scroll",
|
|
4114
|
+
"note": "Scrollable `<main>`. Degrades to a plain scrollable div if the tag never registers."
|
|
4115
|
+
},
|
|
4116
|
+
"examples": [
|
|
4117
|
+
"<schmancy-nav-drawer-content>\n <schmancy-area name=\"main\"></schmancy-area>\n</schmancy-nav-drawer-content>"
|
|
4118
|
+
]
|
|
3908
4119
|
}
|
|
3909
4120
|
]
|
|
3910
4121
|
},
|
|
@@ -3916,6 +4127,13 @@
|
|
|
3916
4127
|
"kind": "class",
|
|
3917
4128
|
"name": "SchmancyNavigationDrawer",
|
|
3918
4129
|
"tagName": "schmancy-nav-drawer",
|
|
4130
|
+
"description": "Responsive navigation drawer — a left sidebar that becomes a hamburger-triggered modal overlay on narrow viewports. Composes schmancy-nav-drawer-navbar (the nav rail), schmancy-nav-drawer-appbar (the top bar), and schmancy-nav-drawer-content (the main region).",
|
|
4131
|
+
"summary": "The app-shell layout primitive. Wrap your whole app in this when you want \"persistent sidebar on desktop, drawer on mobile\" behavior. Mode auto-switches at the breakpoint.",
|
|
4132
|
+
"platformPrimitive": {
|
|
4133
|
+
"tag": "div",
|
|
4134
|
+
"mode": "-",
|
|
4135
|
+
"note": "Flex layout with viewport-width mode switching. Degrades to a stack of plain divs if the tag never registers."
|
|
4136
|
+
},
|
|
3919
4137
|
"attributes": [
|
|
3920
4138
|
{
|
|
3921
4139
|
"name": "fullscreen",
|
|
@@ -3949,12 +4167,21 @@
|
|
|
3949
4167
|
]
|
|
3950
4168
|
}
|
|
3951
4169
|
],
|
|
4170
|
+
"events": [
|
|
4171
|
+
{
|
|
4172
|
+
"name": "schmancy-drawer-state",
|
|
4173
|
+
"description": "When the drawer open/close state changes on mobile."
|
|
4174
|
+
}
|
|
4175
|
+
],
|
|
3952
4176
|
"slots": [
|
|
3953
4177
|
{
|
|
3954
4178
|
"name": "",
|
|
3955
4179
|
"description": "The content slot"
|
|
3956
4180
|
}
|
|
3957
4181
|
],
|
|
4182
|
+
"examples": [
|
|
4183
|
+
"<schmancy-nav-drawer>\n <schmancy-nav-drawer-navbar>\n <!-- nav items, typically schmancy-list-item links -->\n </schmancy-nav-drawer-navbar>\n <schmancy-nav-drawer-appbar>App title</schmancy-nav-drawer-appbar>\n <schmancy-nav-drawer-content>\n <!-- router outlet / page content -->\n </schmancy-nav-drawer-content>\n</schmancy-nav-drawer>"
|
|
4184
|
+
],
|
|
3958
4185
|
"contexts": [
|
|
3959
4186
|
{
|
|
3960
4187
|
"name": "SchmancyDrawerNavbarMode",
|
|
@@ -3976,6 +4203,13 @@
|
|
|
3976
4203
|
"kind": "class",
|
|
3977
4204
|
"name": "SchmancyNavigationDrawerSidebar",
|
|
3978
4205
|
"tagName": "schmancy-nav-drawer-navbar",
|
|
4206
|
+
"description": "Sidebar region inside schmancy-nav-drawer — the persistent-on-desktop / modal-on-mobile nav rail.",
|
|
4207
|
+
"summary": "Always nested inside schmancy-nav-drawer. On desktop: pinned left sidebar. On mobile: modal overlay triggered by the hamburger button in schmancy-nav-drawer-appbar.",
|
|
4208
|
+
"platformPrimitive": {
|
|
4209
|
+
"tag": "nav",
|
|
4210
|
+
"mode": "-",
|
|
4211
|
+
"note": "Sidebar `<nav>` with responsive open/close behavior. Degrades to a plain sidebar div if the tag never registers."
|
|
4212
|
+
},
|
|
3979
4213
|
"attributes": [
|
|
3980
4214
|
{
|
|
3981
4215
|
"name": "width",
|
|
@@ -3985,6 +4219,9 @@
|
|
|
3985
4219
|
"default": "'220px'"
|
|
3986
4220
|
}
|
|
3987
4221
|
],
|
|
4222
|
+
"examples": [
|
|
4223
|
+
"<schmancy-nav-drawer-navbar>\n <schmancy-list>\n <schmancy-list-item href=\"/dashboard\">Dashboard</schmancy-list-item>\n <schmancy-list-item href=\"/settings\">Settings</schmancy-list-item>\n </schmancy-list>\n</schmancy-nav-drawer-navbar>"
|
|
4224
|
+
],
|
|
3988
4225
|
"contexts": [
|
|
3989
4226
|
{
|
|
3990
4227
|
"name": "SchmancyDrawerNavbarMode",
|
|
@@ -4006,7 +4243,13 @@
|
|
|
4006
4243
|
"kind": "class",
|
|
4007
4244
|
"name": "SchmancyNavigationBarItem",
|
|
4008
4245
|
"tagName": "schmancy-navigation-bar-item",
|
|
4009
|
-
"description": "
|
|
4246
|
+
"description": "Single destination inside schmancy-navigation-bar — an icon + optional label representing one primary app destination.",
|
|
4247
|
+
"summary": "Always nested inside schmancy-navigation-bar. Use `icon` attr for a Material Symbols glyph or slot=icon for custom content.",
|
|
4248
|
+
"platformPrimitive": {
|
|
4249
|
+
"tag": "button",
|
|
4250
|
+
"mode": "click",
|
|
4251
|
+
"note": "Styled navigation target. Degrades to a plain `<button>` if the tag never registers."
|
|
4252
|
+
},
|
|
4010
4253
|
"attributes": [
|
|
4011
4254
|
{
|
|
4012
4255
|
"name": "icon",
|
|
@@ -4088,7 +4331,13 @@
|
|
|
4088
4331
|
"kind": "class",
|
|
4089
4332
|
"name": "SchmancyNavigationBar",
|
|
4090
4333
|
"tagName": "schmancy-navigation-bar",
|
|
4091
|
-
"description": "
|
|
4334
|
+
"description": "Bottom navigation bar — Material Design 3 horizontal nav for mobile primary destinations (3–7 items). Auto-hides in fullscreen mode.",
|
|
4335
|
+
"summary": "Use for mobile primary navigation (home, search, favorites, settings). For persistent desktop nav, prefer schmancy-navigation-rail or schmancy-nav-drawer. Consumer is responsible for fixed-bottom positioning via class.",
|
|
4336
|
+
"platformPrimitive": {
|
|
4337
|
+
"tag": "nav",
|
|
4338
|
+
"mode": "-",
|
|
4339
|
+
"note": "Styled horizontal nav with schmancy-navigation-bar-item children. Degrades to a plain flex container if the tag never registers."
|
|
4340
|
+
},
|
|
4092
4341
|
"attributes": [
|
|
4093
4342
|
{
|
|
4094
4343
|
"name": "hideLabels",
|
|
@@ -4142,7 +4391,13 @@
|
|
|
4142
4391
|
"kind": "class",
|
|
4143
4392
|
"name": "SchmancyNavigationRailItem",
|
|
4144
4393
|
"tagName": "schmancy-navigation-rail-item",
|
|
4145
|
-
"description": "
|
|
4394
|
+
"description": "Single destination inside schmancy-navigation-rail — vertically-stacked icon + optional label. @see https://m3.material.io/components/navigation-rail/overview",
|
|
4395
|
+
"summary": "Always nested inside schmancy-navigation-rail. Use `icon` attr for a Material Symbols glyph, or slot=icon for custom content. Supports a `badge` slot for notification dots / counts.",
|
|
4396
|
+
"platformPrimitive": {
|
|
4397
|
+
"tag": "button",
|
|
4398
|
+
"mode": "click",
|
|
4399
|
+
"note": "Styled vertical navigation target. Degrades to a plain `<button>` if the tag never registers."
|
|
4400
|
+
},
|
|
4146
4401
|
"attributes": [
|
|
4147
4402
|
{
|
|
4148
4403
|
"name": "icon",
|
|
@@ -4280,7 +4535,7 @@
|
|
|
4280
4535
|
"kind": "class",
|
|
4281
4536
|
"name": "SchmancyNavigationRail",
|
|
4282
4537
|
"tagName": "schmancy-navigation-rail",
|
|
4283
|
-
"description": "
|
|
4538
|
+
"description": "Vertical navigation rail — Material Design 3 compact left-side nav for desktop / tablet layouts with 3–7 primary destinations. Auto-hides in fullscreen mode. @see https://m3.material.io/components/navigation-rail/overview\r @element schmancy-navigation-rail\r @summary Use as the desktop counterpart of schmancy-navigation-bar: same destinations, different form factor. Prefer schmancy-nav-drawer when you also want a drawer + app-bar combo.",
|
|
4284
4539
|
"attributes": [
|
|
4285
4540
|
{
|
|
4286
4541
|
"name": "label-visibility",
|
|
@@ -4334,6 +4589,7 @@
|
|
|
4334
4589
|
}
|
|
4335
4590
|
],
|
|
4336
4591
|
"examples": [
|
|
4592
|
+
"<schmancy-navigation-rail activeIndex=\"0\">\r\n <schmancy-icon-button slot=\"fab\" variant=\"filled\">\r\n <schmancy-icon>add</schmancy-icon>\r\n </schmancy-icon-button>\r\n <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n</schmancy-navigation-rail>\r\n@platform nav - Vertical styled nav. Degrades to a plain vertical flex container if the tag never registers.\r\n@slot fab - Slot for a floating action button at the top\r\n@slot menu - Slot for a menu icon or button below the FAB\r\n@slot header - Custom header content slot\r\n@slot footer - Custom footer content slot\r\n@slot - Default slot for navigation rail items\r\n\n@fires navigate - When a navigation item is selected\r\n@fires menu-click - When the menu button is clicked\r\n@fires fab-click - When the FAB is clicked\r\n\n@csspart rail - The main rail container\r\n@csspart header - The header section\r\n@csspart nav - The navigation items container\r\n@csspart footer - The footer section",
|
|
4337
4593
|
"<schmancy-navigation-rail activeIndex=\"0\">\r\n <schmancy-button slot=\"fab\" variant=\"filled\" aria-label=\"Compose\">\r\n <schmancy-icon>add</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-button slot=\"menu\" variant=\"text\" aria-label=\"Menu\">\r\n <schmancy-icon>menu</schmancy-icon>\r\n </schmancy-button>\r\n <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"favorite\" label=\"Favorites\" badge=\"3\"></schmancy-navigation-rail-item>\r\n <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n</schmancy-navigation-rail>"
|
|
4338
4594
|
]
|
|
4339
4595
|
}
|
|
@@ -4686,7 +4942,13 @@
|
|
|
4686
4942
|
"kind": "class",
|
|
4687
4943
|
"name": "SchmancyPage",
|
|
4688
4944
|
"tagName": "schmancy-page",
|
|
4689
|
-
"description": "
|
|
4945
|
+
"description": "Mobile-first page container — fills remaining viewport height, suppresses double-tap zoom / pull-to-refresh / rubber-banding. Lays children in a CSS grid whose row template is `rows`.",
|
|
4946
|
+
"summary": "The root of any app view — wraps header / main / footer children in a full-viewport grid. Use rows=\"auto_1fr_auto\" to make the middle child scroll while header/footer stay pinned.",
|
|
4947
|
+
"platformPrimitive": {
|
|
4948
|
+
"tag": "div",
|
|
4949
|
+
"mode": "-",
|
|
4950
|
+
"note": "Full-height CSS-grid container. Degrades to a plain div if the tag never registers — children still flow vertically but without the height fill and gesture suppression."
|
|
4951
|
+
},
|
|
4690
4952
|
"attributes": [
|
|
4691
4953
|
{
|
|
4692
4954
|
"name": "rows",
|
|
@@ -4712,7 +4974,7 @@
|
|
|
4712
4974
|
}
|
|
4713
4975
|
],
|
|
4714
4976
|
"examples": [
|
|
4715
|
-
"
|
|
4977
|
+
"<schmancy-page rows=\"auto_1fr_auto\">\n <schmancy-nav-drawer-appbar>Title</schmancy-nav-drawer-appbar>\n <main>Scrollable content</main>\n <schmancy-navigation-bar></schmancy-navigation-bar>\n</schmancy-page>"
|
|
4716
4978
|
]
|
|
4717
4979
|
}
|
|
4718
4980
|
]
|
|
@@ -5122,6 +5384,13 @@
|
|
|
5122
5384
|
"kind": "class",
|
|
5123
5385
|
"name": "SchmancySheet",
|
|
5124
5386
|
"tagName": "schmancy-sheet",
|
|
5387
|
+
"description": "Side-docked or bottom-docked panel — a dialog variant that slides in from an edge. Driven imperatively by the `sheet` service; rarely instantiated directly.",
|
|
5388
|
+
"summary": "Prefer `sheet.open({ component, position })` over placing this element declaratively — the service handles stacking, focus, close on outside-click, ESC, and router integration.",
|
|
5389
|
+
"platformPrimitive": {
|
|
5390
|
+
"tag": "dialog",
|
|
5391
|
+
"mode": "close",
|
|
5392
|
+
"note": "Positioned-fixed panel with backdrop. Degrades to a `<dialog>` if the tag never registers — loses slide animation, keeps focus trap + dismiss."
|
|
5393
|
+
},
|
|
5125
5394
|
"attributes": [
|
|
5126
5395
|
{
|
|
5127
5396
|
"name": "open",
|
|
@@ -5162,6 +5431,15 @@
|
|
|
5162
5431
|
},
|
|
5163
5432
|
"default": "true"
|
|
5164
5433
|
}
|
|
5434
|
+
],
|
|
5435
|
+
"events": [
|
|
5436
|
+
{
|
|
5437
|
+
"name": "close",
|
|
5438
|
+
"description": "When the sheet is dismissed (backdrop click, close button, ESC)."
|
|
5439
|
+
}
|
|
5440
|
+
],
|
|
5441
|
+
"examples": [
|
|
5442
|
+
"import { sheet, SchmancySheetPosition } from '@mhmo91/schmancy'\nsheet.open({\n component: new MyEditorElement(),\n position: SchmancySheetPosition.Side,\n title: 'Edit item',\n})"
|
|
5165
5443
|
]
|
|
5166
5444
|
}
|
|
5167
5445
|
]
|
|
@@ -5477,7 +5755,13 @@
|
|
|
5477
5755
|
"kind": "class",
|
|
5478
5756
|
"name": "SchmancySurface",
|
|
5479
5757
|
"tagName": "schmancy-surface",
|
|
5480
|
-
"description": "
|
|
5758
|
+
"description": "Themed container — the root surface primitive. Sets background, text color, rounding, elevation, and (optionally) internal scroll. Provides a `SchmancySurfaceTypeContext` so descendants can adapt to the enclosing surface variant.",
|
|
5759
|
+
"summary": "Wrap a region of a page when you need it to pick up theme tokens (background + on-color + elevation). Nest surfaces to express Material Design's hierarchical color stacking.",
|
|
5760
|
+
"platformPrimitive": {
|
|
5761
|
+
"tag": "div",
|
|
5762
|
+
"mode": "-",
|
|
5763
|
+
"note": "Styled `<div>` with theme-driven background/color/elevation. Degrades to a plain `<div>` if the tag never registers — text stays readable, just loses theming."
|
|
5764
|
+
},
|
|
5481
5765
|
"attributes": [
|
|
5482
5766
|
{
|
|
5483
5767
|
"name": "type",
|
|
@@ -6059,7 +6343,13 @@
|
|
|
6059
6343
|
"kind": "class",
|
|
6060
6344
|
"name": "SchmancyThemeComponent",
|
|
6061
6345
|
"tagName": "schmancy-theme",
|
|
6062
|
-
"description": "
|
|
6346
|
+
"description": "Theme provider — generates a Material 3 palette from a seed color, resolves light/dark scheme, and publishes the token set to descendants as CSS custom properties (var(--schmancy-sys-color-…)).",
|
|
6347
|
+
"summary": "Always wrap your app root in a `<schmancy-theme root scheme=\"auto\" color=\"#…\">`. Nest additional `<schmancy-theme>` blocks to override theming for a subtree.",
|
|
6348
|
+
"platformPrimitive": {
|
|
6349
|
+
"tag": "div",
|
|
6350
|
+
"mode": "-",
|
|
6351
|
+
"note": "Styled `<div>` that publishes theme tokens via inline `--schmancy-sys-color-*` custom properties. Degrades to a plain div if the tag never registers — children lose theming and fall back to browser defaults."
|
|
6352
|
+
},
|
|
6063
6353
|
"attributes": [
|
|
6064
6354
|
{
|
|
6065
6355
|
"name": "color",
|
|
@@ -6114,7 +6404,8 @@
|
|
|
6114
6404
|
}
|
|
6115
6405
|
],
|
|
6116
6406
|
"examples": [
|
|
6117
|
-
"<!-- Root theme provider -->\n<schmancy-theme
|
|
6407
|
+
"<!-- Root theme provider -->\n<schmancy-theme root scheme=\"auto\" color=\"#6200ee\">\n <your-app></your-app>\n</schmancy-theme>",
|
|
6408
|
+
"<!-- Nested theme for a specific section -->\n<schmancy-theme scheme=\"dark\" color=\"#2196f3\">\n <schmancy-surface fill=\"all\">\n <!-- Components here use the blue dark theme -->\n </schmancy-surface>\n</schmancy-theme>"
|
|
6118
6409
|
],
|
|
6119
6410
|
"contexts": [
|
|
6120
6411
|
{
|
|
@@ -6170,6 +6461,13 @@
|
|
|
6170
6461
|
"kind": "class",
|
|
6171
6462
|
"name": "SchmancyTree",
|
|
6172
6463
|
"tagName": "schmancy-tree",
|
|
6464
|
+
"description": "Expandable tree node — a recursive disclosure widget. One root slot, one default slot for child nodes. Each node can itself contain schmancy-tree children.",
|
|
6465
|
+
"summary": "Use for hierarchical navigation / file-explorer layouts. Each level is a schmancy-tree with a `root` slot (the parent label) and default slot (the children, which may be more schmancy-trees).",
|
|
6466
|
+
"platformPrimitive": {
|
|
6467
|
+
"tag": "details",
|
|
6468
|
+
"mode": "toggle",
|
|
6469
|
+
"note": "Recursive `<details>`-like disclosure. Degrades to a plain nested list if the tag never registers — loses expand/collapse but stays navigable."
|
|
6470
|
+
},
|
|
6173
6471
|
"attributes": [
|
|
6174
6472
|
{
|
|
6175
6473
|
"name": "open",
|
|
@@ -6189,6 +6487,9 @@
|
|
|
6189
6487
|
"name": "",
|
|
6190
6488
|
"description": "The children of the tree"
|
|
6191
6489
|
}
|
|
6490
|
+
],
|
|
6491
|
+
"examples": [
|
|
6492
|
+
"<schmancy-tree>\n <schmancy-list-item slot=\"root\">src/</schmancy-list-item>\n <schmancy-tree>\n <schmancy-list-item slot=\"root\">components/</schmancy-list-item>\n <schmancy-list-item>button.ts</schmancy-list-item>\n </schmancy-tree>\n</schmancy-tree>"
|
|
6192
6493
|
]
|
|
6193
6494
|
}
|
|
6194
6495
|
]
|
|
@@ -6886,7 +7187,13 @@
|
|
|
6886
7187
|
"kind": "class",
|
|
6887
7188
|
"name": "SchmancyScroll",
|
|
6888
7189
|
"tagName": "schmancy-scroll",
|
|
6889
|
-
"description": "
|
|
7190
|
+
"description": "Scrollable container with debounced scroll events, horizontal/vertical direction, optional hidden scrollbar, and programmatic scrollTo via command events or refs.",
|
|
7191
|
+
"summary": "Use anywhere you'd reach for `overflow: auto` but also need debounced scroll events (for sticky headers, scroll spies, virtualization triggers) or the ability to drive scroll from elsewhere in the app by dispatching a schmancy-scroll-command event.",
|
|
7192
|
+
"platformPrimitive": {
|
|
7193
|
+
"tag": "div",
|
|
7194
|
+
"mode": "-",
|
|
7195
|
+
"note": "Styled scrollable `<div>`. Degrades to a plain scrollable div if the tag never registers — loses the debounced scroll event and the command-bus integration."
|
|
7196
|
+
},
|
|
6890
7197
|
"attributes": [
|
|
6891
7198
|
{
|
|
6892
7199
|
"name": "hide",
|