@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.
Files changed (101) hide show
  1. package/custom-elements.json +111 -51
  2. package/dist/agent/schmancy.agent.js +288 -38
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +332 -25
  5. package/dist/breadcrumb.cjs.map +1 -1
  6. package/dist/breadcrumb.js.map +1 -1
  7. package/dist/card-BslSqOsf.cjs.map +1 -1
  8. package/dist/card-CEdgK9nb.js.map +1 -1
  9. package/dist/details-B8p62xmR.cjs.map +1 -1
  10. package/dist/details-CCW52lzz.js.map +1 -1
  11. package/dist/dialog.cjs.map +1 -1
  12. package/dist/dialog.js.map +1 -1
  13. package/dist/divider-CbEWg3G_.js.map +1 -1
  14. package/dist/divider-JyyFw_3J.cjs.map +1 -1
  15. package/dist/dropdown.cjs.map +1 -1
  16. package/dist/dropdown.js.map +1 -1
  17. package/dist/expand-BmwIPNjq.cjs.map +1 -1
  18. package/dist/expand-bFa_qVDT.js.map +1 -1
  19. package/dist/handover/agent-runtime-followups.md +1 -1
  20. package/dist/handover/agent-runtime-v1.md +3 -3
  21. package/dist/list-BpjKUOzM.js.map +1 -1
  22. package/dist/list-CMWHu6cV.cjs.map +1 -1
  23. package/dist/menu-BIBUgS1T.js.map +1 -1
  24. package/dist/menu-DS8Iz4fJ.cjs.map +1 -1
  25. package/dist/navigation-rail.cjs.map +1 -1
  26. package/dist/navigation-rail.js.map +1 -1
  27. package/dist/page.cjs.map +1 -1
  28. package/dist/page.js.map +1 -1
  29. package/dist/scroll-CdmXRXh2.js.map +1 -1
  30. package/dist/scroll-V1rAZ9fK.cjs.map +1 -1
  31. package/dist/sheet-DdlZhnDG.cjs.map +1 -1
  32. package/dist/sheet-LFVo5iN4.js.map +1 -1
  33. package/dist/src-C7niWYur.js.map +1 -1
  34. package/dist/src-I4M33WK2.cjs.map +1 -1
  35. package/dist/surface-0XM4DBaT.js.map +1 -1
  36. package/dist/surface-B6DA01kL.cjs.map +1 -1
  37. package/dist/theme-Cq_c9IO3.js.map +1 -1
  38. package/dist/theme-DU5yXaV-.cjs.map +1 -1
  39. package/dist/tree.cjs.map +1 -1
  40. package/dist/tree.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/breadcrumb/breadcrumb.ts +14 -4
  43. package/src/card/actions.ts +9 -0
  44. package/src/card/card.ts +18 -0
  45. package/src/card/content.ts +9 -0
  46. package/src/card/media.ts +6 -0
  47. package/src/details/details.ts +12 -0
  48. package/src/dialog/dialog.component.ts +9 -9
  49. package/src/divider/divider.ts +11 -0
  50. package/src/dropdown/dropdown-component.ts +13 -1
  51. package/src/dropdown/dropdown-content.ts +11 -3
  52. package/src/expand/expand-root.component.ts +12 -0
  53. package/src/expand/expand.component.ts +14 -0
  54. package/src/layout/scroll/scroll.ts +5 -1
  55. package/src/list/list-item.ts +10 -0
  56. package/src/list/list.ts +7 -8
  57. package/src/menu/menu-item.ts +13 -0
  58. package/src/menu/menu.ts +10 -22
  59. package/src/nav-drawer/appbar.ts +11 -0
  60. package/src/nav-drawer/content.ts +11 -0
  61. package/src/nav-drawer/drawer.ts +15 -0
  62. package/src/nav-drawer/navbar.ts +14 -0
  63. package/src/navigation-bar/navigation-bar-item.ts +3 -4
  64. package/src/navigation-bar/navigation-bar.ts +3 -9
  65. package/src/navigation-rail/navigation-rail-item.ts +3 -7
  66. package/src/navigation-rail/navigation-rail.ts +12 -8
  67. package/src/page/page.ts +8 -11
  68. package/src/sheet/sheet.ts +17 -0
  69. package/src/surface/surface.ts +4 -10
  70. package/src/theme/theme.component.ts +10 -15
  71. package/src/tree/tree.ts +12 -0
  72. package/types/src/breadcrumb/breadcrumb.d.ts +14 -4
  73. package/types/src/card/actions.d.ts +9 -0
  74. package/types/src/card/card.d.ts +18 -0
  75. package/types/src/card/content.d.ts +9 -0
  76. package/types/src/card/media.d.ts +6 -0
  77. package/types/src/details/details.d.ts +12 -0
  78. package/types/src/dialog/dialog.component.d.ts +9 -9
  79. package/types/src/divider/divider.d.ts +11 -0
  80. package/types/src/dropdown/dropdown-component.d.ts +13 -1
  81. package/types/src/dropdown/dropdown-content.d.ts +11 -3
  82. package/types/src/expand/expand-root.component.d.ts +12 -0
  83. package/types/src/expand/expand.component.d.ts +14 -0
  84. package/types/src/layout/scroll/scroll.d.ts +5 -1
  85. package/types/src/list/list-item.d.ts +10 -0
  86. package/types/src/list/list.d.ts +7 -8
  87. package/types/src/menu/menu-item.d.ts +13 -0
  88. package/types/src/menu/menu.d.ts +10 -22
  89. package/types/src/nav-drawer/appbar.d.ts +11 -0
  90. package/types/src/nav-drawer/content.d.ts +11 -0
  91. package/types/src/nav-drawer/drawer.d.ts +15 -0
  92. package/types/src/nav-drawer/navbar.d.ts +14 -0
  93. package/types/src/navigation-bar/navigation-bar-item.d.ts +3 -4
  94. package/types/src/navigation-bar/navigation-bar.d.ts +3 -9
  95. package/types/src/navigation-rail/navigation-rail-item.d.ts +3 -7
  96. package/types/src/navigation-rail/navigation-rail.d.ts +12 -8
  97. package/types/src/page/page.d.ts +8 -11
  98. package/types/src/sheet/sheet.d.ts +17 -0
  99. package/types/src/surface/surface.d.ts +4 -10
  100. package/types/src/theme/theme.component.d.ts +10 -15
  101. package/types/src/tree/tree.d.ts +12 -0
@@ -31469,7 +31469,13 @@ var qp = {
31469
31469
  kind: "class",
31470
31470
  name: "SchmancyBreadcrumb",
31471
31471
  tagName: "schmancy-breadcrumb",
31472
- description: "Breadcrumb navigation container. Wraps a list of `schmancy-breadcrumb-item` elements with the correct ARIA landmark and semantics.",
31472
+ description: "Breadcrumb trail — navigation history from root to current page. Renders schmancy-breadcrumb-item children with separators between.",
31473
+ 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.",
31474
+ platformPrimitive: {
31475
+ tag: "nav",
31476
+ mode: "-",
31477
+ note: "Styled `<nav aria-label=\"Breadcrumb\">`. Degrades to a plain nav if the tag never registers."
31478
+ },
31473
31479
  attributes: [{
31474
31480
  name: "separator",
31475
31481
  type: { text: "string" },
@@ -31482,12 +31488,19 @@ var qp = {
31482
31488
  cssParts: [{
31483
31489
  name: "separator",
31484
31490
  description: "The separator element."
31485
- }]
31491
+ }],
31492
+ examples: ["<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>"]
31486
31493
  }, {
31487
31494
  kind: "class",
31488
31495
  name: "SchmancyBreadcrumbItem",
31489
31496
  tagName: "schmancy-breadcrumb-item",
31490
- description: "Individual breadcrumb item. Renders as a link when `href` is provided, otherwise as a plain span (represents the current page).",
31497
+ description: "Single segment in a schmancy-breadcrumb trail a link when `href` is set, or a plain span (the current page) when omitted.",
31498
+ summary: "Always nested inside schmancy-breadcrumb. Omit `href` on the current page — it gets aria-current=\"page\" automatically.",
31499
+ platformPrimitive: {
31500
+ tag: "a",
31501
+ mode: "-",
31502
+ note: "Renders an `<a>` or `<span>` depending on href. Degrades to a plain anchor/span if the tag never registers."
31503
+ },
31491
31504
  attributes: [{
31492
31505
  name: "href",
31493
31506
  type: { text: "string" },
@@ -31500,7 +31513,8 @@ var qp = {
31500
31513
  slots: [{
31501
31514
  name: "",
31502
31515
  description: "Label content."
31503
- }]
31516
+ }],
31517
+ examples: ["<schmancy-breadcrumb-item href=\"/products\">Products</schmancy-breadcrumb-item>"]
31504
31518
  }]
31505
31519
  },
31506
31520
  {
@@ -31767,10 +31781,18 @@ var qp = {
31767
31781
  kind: "class",
31768
31782
  name: "SchmancyCardAction",
31769
31783
  tagName: "schmancy-card-action",
31784
+ description: "Action row of a schmancy-card — holds the card's buttons / links (typically aligned bottom-right).",
31785
+ summary: "Always nested inside schmancy-card. Holds the primary + secondary CTAs for the card.",
31786
+ platformPrimitive: {
31787
+ tag: "div",
31788
+ mode: "-",
31789
+ note: "Styled flex container. Degrades to a plain div if the tag never registers."
31790
+ },
31770
31791
  slots: [{
31771
31792
  name: "",
31772
31793
  description: "The content of the action"
31773
- }]
31794
+ }],
31795
+ examples: ["<schmancy-card-action>\n <schmancy-button variant=\"text\">Cancel</schmancy-button>\n <schmancy-button variant=\"filled\">Save</schmancy-button>\n</schmancy-card-action>"]
31774
31796
  }]
31775
31797
  },
31776
31798
  {
@@ -31780,6 +31802,13 @@ var qp = {
31780
31802
  kind: "class",
31781
31803
  name: "SchmancyCard",
31782
31804
  tagName: "schmancy-card",
31805
+ description: "Material Design card — a surface-level container for grouping related content with media / content / actions slots.",
31806
+ 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.",
31807
+ platformPrimitive: {
31808
+ tag: "div",
31809
+ mode: "-",
31810
+ 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."
31811
+ },
31783
31812
  attributes: [
31784
31813
  {
31785
31814
  name: "type",
@@ -31832,7 +31861,8 @@ var qp = {
31832
31861
  default: "''",
31833
31862
  description: "ARIA label for accessibility."
31834
31863
  }
31835
- ]
31864
+ ],
31865
+ examples: ["<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>"]
31836
31866
  }]
31837
31867
  },
31838
31868
  {
@@ -31841,7 +31871,15 @@ var qp = {
31841
31871
  declarations: [{
31842
31872
  kind: "class",
31843
31873
  name: "SchmancyCardContent",
31844
- tagName: "schmancy-card-content"
31874
+ tagName: "schmancy-card-content",
31875
+ description: "Content region of a schmancy-card — holds the card's headline, supporting text, and inline controls.",
31876
+ summary: "Always nested inside schmancy-card. The padded content block between the media and action rows.",
31877
+ platformPrimitive: {
31878
+ tag: "div",
31879
+ mode: "-",
31880
+ note: "Styled `<div>` with padding. Degrades to a plain div if the tag never registers."
31881
+ },
31882
+ examples: ["<schmancy-card-content>\n <h3>Card title</h3>\n <p>Supporting text that describes the card's subject.</p>\n</schmancy-card-content>"]
31845
31883
  }]
31846
31884
  },
31847
31885
  {
@@ -31851,6 +31889,13 @@ var qp = {
31851
31889
  kind: "class",
31852
31890
  name: "SchmancyCardMedia",
31853
31891
  tagName: "schmancy-card-media",
31892
+ description: "Media region of a schmancy-card — the image / thumbnail at the top of the card.",
31893
+ summary: "Always nested inside schmancy-card. Pass `src` + `alt` props or slot an `<img>` / `<video>` for custom media.",
31894
+ platformPrimitive: {
31895
+ tag: "img",
31896
+ mode: "-",
31897
+ note: "Renders an `<img>` (or wraps a slotted media element). Degrades to a styled `<img>` if the tag never registers."
31898
+ },
31854
31899
  attributes: [
31855
31900
  {
31856
31901
  name: "src",
@@ -31874,7 +31919,8 @@ var qp = {
31874
31919
  type: { text: "string" },
31875
31920
  default: "''"
31876
31921
  }
31877
- ]
31922
+ ],
31923
+ examples: ["<schmancy-card-media src=\"/thumb.jpg\" alt=\"Product photo\"></schmancy-card-media>"]
31878
31924
  }]
31879
31925
  },
31880
31926
  {
@@ -32755,6 +32801,13 @@ var qp = {
32755
32801
  kind: "class",
32756
32802
  name: "SchmancyDetails",
32757
32803
  tagName: "schmancy-details",
32804
+ description: "Expandable disclosure panel — a styled `<details>` / `<summary>` pair with animated expand + overlay options.",
32805
+ 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.",
32806
+ platformPrimitive: {
32807
+ tag: "details",
32808
+ mode: "toggle",
32809
+ note: "Wraps native `<details>`/`<summary>`. Degrades to the native element if the tag never registers — same keyboard accessibility, just no animation."
32810
+ },
32758
32811
  attributes: [
32759
32812
  {
32760
32813
  name: "summary",
@@ -32797,7 +32850,12 @@ var qp = {
32797
32850
  type: { text: "string" },
32798
32851
  default: "'p-3'"
32799
32852
  }
32800
- ]
32853
+ ],
32854
+ events: [{
32855
+ name: "toggle",
32856
+ description: "When the open state changes (bubbles from the native `<details>`)."
32857
+ }],
32858
+ examples: ["<schmancy-details summary=\"Shipping details\">\n <p>Order ships in 2 business days.</p>\n</schmancy-details>"]
32801
32859
  }]
32802
32860
  },
32803
32861
  {
@@ -32840,7 +32898,13 @@ var qp = {
32840
32898
  kind: "class",
32841
32899
  name: "SchmancyDialog",
32842
32900
  tagName: "schmancy-dialog",
32843
- description: "Unified dialog component that handles both content-only and confirm modes.",
32901
+ 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.",
32902
+ 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)`.",
32903
+ platformPrimitive: {
32904
+ tag: "dialog",
32905
+ mode: "close",
32906
+ 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."
32907
+ },
32844
32908
  attributes: [
32845
32909
  {
32846
32910
  name: "uid",
@@ -32891,6 +32955,13 @@ var qp = {
32891
32955
  description: "Whether to hide action buttons (force content mode)"
32892
32956
  }
32893
32957
  ],
32958
+ events: [{
32959
+ name: "confirm",
32960
+ description: "In confirm mode, when the confirm button is clicked."
32961
+ }, {
32962
+ name: "cancel",
32963
+ description: "In confirm mode, when the cancel button or ESC is activated."
32964
+ }],
32894
32965
  slots: [{
32895
32966
  name: "default",
32896
32967
  description: "Content slot for dialog body (used in content mode)"
@@ -32898,7 +32969,7 @@ var qp = {
32898
32969
  name: "content",
32899
32970
  description: "Named slot for custom content in confirm mode"
32900
32971
  }],
32901
- examples: ["Content mode (no buttons):\n\n<schmancy-dialog>\n <my-custom-content></my-custom-content>\n</schmancy-dialog>", "Confirm mode (with buttons):\n\n<schmancy-dialog\n title=\"Confirm Action\"\n message=\"Are you sure?\"\n confirm-text=\"Yes\"\n cancel-text=\"No\"\n></schmancy-dialog>"]
32972
+ examples: ["Content mode (no buttons):\n<schmancy-dialog>\n <my-custom-content></my-custom-content>\n</schmancy-dialog>", "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>"]
32902
32973
  }]
32903
32974
  },
32904
32975
  {
@@ -32908,6 +32979,13 @@ var qp = {
32908
32979
  kind: "class",
32909
32980
  name: "SchmancyDivider",
32910
32981
  tagName: "schmancy-divider",
32982
+ description: "Thin horizontal (or vertical) separator rule between sections of content.",
32983
+ summary: "Semantic separator between groups — list items, menu sections, content blocks. Uses outline theme token.",
32984
+ platformPrimitive: {
32985
+ tag: "hr",
32986
+ mode: "-",
32987
+ note: "Styled horizontal rule. Degrades to a native `<hr>` if the tag never registers."
32988
+ },
32911
32989
  attributes: [
32912
32990
  {
32913
32991
  name: "outline",
@@ -32930,7 +33008,8 @@ var qp = {
32930
33008
  ],
32931
33009
  default: "'start'"
32932
33010
  }
32933
- ]
33011
+ ],
33012
+ examples: ["<schmancy-list-item>First</schmancy-list-item>\n<schmancy-divider></schmancy-divider>\n<schmancy-list-item>Second</schmancy-list-item>"]
32934
33013
  }]
32935
33014
  },
32936
33015
  {
@@ -32940,7 +33019,13 @@ var qp = {
32940
33019
  kind: "class",
32941
33020
  name: "SchmancyDropdown",
32942
33021
  tagName: "schmancy-dropdown",
32943
- description: "A dropdown component that displays content when triggered.",
33022
+ 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.",
33023
+ 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.",
33024
+ platformPrimitive: {
33025
+ tag: "div",
33026
+ mode: "-",
33027
+ note: "Anchored via Floating UI (autoUpdate, flip, shift). Degrades to inline content if the tag never registers — loses positioning but content stays accessible."
33028
+ },
32944
33029
  attributes: [
32945
33030
  {
32946
33031
  name: "open",
@@ -32975,13 +33060,21 @@ var qp = {
32975
33060
  description: "Offset distance in pixels"
32976
33061
  }
32977
33062
  ],
33063
+ events: [{
33064
+ name: "open",
33065
+ description: "When the dropdown opens."
33066
+ }, {
33067
+ name: "close",
33068
+ description: "When the dropdown closes."
33069
+ }],
32978
33070
  slots: [{
32979
33071
  name: "trigger",
32980
33072
  description: "The element that triggers the dropdown"
32981
33073
  }, {
32982
33074
  name: "",
32983
33075
  description: "Default slot for the dropdown content"
32984
- }]
33076
+ }],
33077
+ examples: ["<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>"]
32985
33078
  }]
32986
33079
  },
32987
33080
  {
@@ -32991,7 +33084,13 @@ var qp = {
32991
33084
  kind: "class",
32992
33085
  name: "SchmancyDropdownContent",
32993
33086
  tagName: "schmancy-dropdown-content",
32994
- description: "Content container for the schmancy-dropdown component.",
33087
+ description: "Content panel for a schmancy-dropdown — a styled positioned surface. Always nested inside schmancy-dropdown and placed alongside the trigger slot.",
33088
+ 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.",
33089
+ platformPrimitive: {
33090
+ tag: "div",
33091
+ mode: "-",
33092
+ note: "Positioned panel with theme-aware styling. Degrades to an inline div if the tag never registers."
33093
+ },
32995
33094
  attributes: [
32996
33095
  {
32997
33096
  name: "width",
@@ -33032,7 +33131,8 @@ var qp = {
33032
33131
  cssParts: [{
33033
33132
  name: "content",
33034
33133
  description: "The inner wrapper element; style to override panel backgrounds, shadows, padding, or borders without shadow-root piercing."
33035
- }]
33134
+ }],
33135
+ examples: ["<schmancy-dropdown>\n <schmancy-button slot=\"trigger\">Open</schmancy-button>\n <schmancy-dropdown-content>\n Panel contents…\n </schmancy-dropdown-content>\n</schmancy-dropdown>"]
33036
33136
  }]
33037
33137
  },
33038
33138
  {
@@ -33042,6 +33142,13 @@ var qp = {
33042
33142
  kind: "class",
33043
33143
  name: "SchmancyExpandRoot",
33044
33144
  tagName: "schmancy-expand-root",
33145
+ 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.",
33146
+ 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).",
33147
+ platformPrimitive: {
33148
+ tag: "div",
33149
+ mode: "-",
33150
+ note: "Coordinating wrapper. Degrades to a plain div if the tag never registers — children fall back to independent `<details>` behavior."
33151
+ },
33045
33152
  attributes: [{
33046
33153
  name: "type",
33047
33154
  type: { text: "TSurfaceColor" },
@@ -33070,7 +33177,8 @@ var qp = {
33070
33177
  "glassOforim"
33071
33178
  ],
33072
33179
  default: "'solid'"
33073
- }]
33180
+ }],
33181
+ examples: ["<schmancy-expand-root>\n <schmancy-expand summary=\"Step 1\">…</schmancy-expand>\n <schmancy-expand summary=\"Step 2\">…</schmancy-expand>\n</schmancy-expand-root>"]
33074
33182
  }]
33075
33183
  },
33076
33184
  {
@@ -33080,6 +33188,13 @@ var qp = {
33080
33188
  kind: "class",
33081
33189
  name: "SchmancyExpand",
33082
33190
  tagName: "schmancy-expand",
33191
+ 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.",
33192
+ summary: "Use for grouped progressive-disclosure where only one section should be open at a time. Prefer schmancy-details when sections should be independent.",
33193
+ platformPrimitive: {
33194
+ tag: "details",
33195
+ mode: "toggle",
33196
+ note: "Schmancy-skinned accordion section. Degrades to `<details>` if the tag never registers — loses mutual-exclusion behavior but stays functional."
33197
+ },
33083
33198
  attributes: [
33084
33199
  {
33085
33200
  name: "summary",
@@ -33121,7 +33236,12 @@ var qp = {
33121
33236
  type: { text: "boolean" },
33122
33237
  default: "false"
33123
33238
  }
33124
- ]
33239
+ ],
33240
+ events: [{
33241
+ name: "toggle",
33242
+ description: "When the open state changes."
33243
+ }],
33244
+ examples: ["<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>"]
33125
33245
  }]
33126
33246
  },
33127
33247
  {
@@ -33544,6 +33664,13 @@ var qp = {
33544
33664
  kind: "class",
33545
33665
  name: "SchmancyListItem",
33546
33666
  tagName: "schmancy-list-item",
33667
+ 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.",
33668
+ 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.",
33669
+ platformPrimitive: {
33670
+ tag: "li",
33671
+ mode: "click",
33672
+ note: "Styled `<li>` or `<a>` depending on `href`. Degrades to a plain list item if the tag never registers."
33673
+ },
33547
33674
  attributes: [
33548
33675
  {
33549
33676
  name: "variant",
@@ -33601,6 +33728,7 @@ var qp = {
33601
33728
  description: "default content"
33602
33729
  }
33603
33730
  ],
33731
+ examples: ["<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>"],
33604
33732
  contexts: [{
33605
33733
  name: "SchmancySurfaceTypeContext",
33606
33734
  kind: "consume"
@@ -33614,7 +33742,13 @@ var qp = {
33614
33742
  kind: "class",
33615
33743
  name: "List",
33616
33744
  tagName: "schmancy-list",
33617
- description: "`<schmancy-list>` component. A list component that wraps its content within a customizable surface. It allows you to set the surface type and fill style, and can optionally enable scrolling behavior by delegating the scroller attribute to the surface.",
33745
+ description: "Wrapped list container holds schmancy-list-item children on a themed surface. Optionally scrollable.",
33746
+ summary: "Use for vertical lists of similarly-shaped items: settings entries, menu items, contact lists, notification lists. Pair with schmancy-list-item children.",
33747
+ platformPrimitive: {
33748
+ tag: "ul",
33749
+ mode: "-",
33750
+ note: "Styled list container. Degrades to a plain ul/div if the tag never registers."
33751
+ },
33618
33752
  attributes: [
33619
33753
  {
33620
33754
  name: "surface",
@@ -33668,7 +33802,7 @@ var qp = {
33668
33802
  name: "",
33669
33803
  description: "The default slot for list items."
33670
33804
  }],
33671
- examples: ["<schmancy-list surface=\"container\" scroller>\n <schmancy-list-item>List Item 1</schmancy-list-item>\n</schmancy-list>"],
33805
+ examples: ["<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>"],
33672
33806
  contexts: [{
33673
33807
  name: "SchmancyListTypeContext",
33674
33808
  kind: "provide"
@@ -34031,7 +34165,19 @@ var qp = {
34031
34165
  declarations: [{
34032
34166
  kind: "class",
34033
34167
  name: "SchmancyMenuItem",
34034
- tagName: "schmancy-menu-item"
34168
+ tagName: "schmancy-menu-item",
34169
+ description: "Single item inside a schmancy-menu. Auto-dismisses the menu dialog on click — attach your action handler to `@click` and it just works.",
34170
+ summary: "Always nested inside schmancy-menu. The click handler runs before the dialog closes, so `@click=${() => doThing()}` is the full pattern.",
34171
+ platformPrimitive: {
34172
+ tag: "menuitem",
34173
+ mode: "click",
34174
+ note: "Wraps schmancy-list-item with auto-dismiss. Degrades to a styled `<button role=\"menuitem\">` if the tag never registers."
34175
+ },
34176
+ slots: [{
34177
+ name: "",
34178
+ description: "The item label and optional icons."
34179
+ }],
34180
+ examples: ["<schmancy-menu-item @click=${() => archive()}>\n <schmancy-icon slot=\"leading\">archive</schmancy-icon>\n Archive\n</schmancy-menu-item>"]
34035
34181
  }]
34036
34182
  },
34037
34183
  {
@@ -34041,7 +34187,13 @@ var qp = {
34041
34187
  kind: "class",
34042
34188
  name: "SchmancyMenu",
34043
34189
  tagName: "schmancy-menu",
34044
- description: "Menu Component CRITICAL: The dialog ONLY renders the raw menu items passed via the default slot. NO <ul> wrapper, NO classes, NO additional markup in the dialog call. The dialog service handles positioning and display - we just pass the pure content.",
34190
+ description: "Floating menu a trigger button + a list of schmancy-menu-item children that open as a positioned dialog on click.",
34191
+ 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.",
34192
+ platformPrimitive: {
34193
+ tag: "menu",
34194
+ mode: "close",
34195
+ note: "Trigger + floating listbox dialog. Degrades to a native `<select>` or inline list if the tag never registers."
34196
+ },
34045
34197
  slots: [
34046
34198
  {
34047
34199
  name: "trigger",
@@ -34056,7 +34208,7 @@ var qp = {
34056
34208
  description: "Menu items or any custom component to display in dialog"
34057
34209
  }
34058
34210
  ],
34059
- examples: ["Basic menu with auto-dismiss\n\n<schmancy-menu>\n <schmancy-button slot=\"trigger\">Actions</schmancy-button>\n <schmancy-menu-item @click=${() => editItem()}>Edit</schmancy-menu-item>\n <schmancy-menu-item @click=${() => deleteItem()}>Delete</schmancy-menu-item>\n</schmancy-menu>\n\nNote: Dialog auto-dismisses when schmancy-menu-item is clicked", "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"]
34211
+ examples: ["<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>"]
34060
34212
  }]
34061
34213
  },
34062
34214
  {
@@ -34066,10 +34218,18 @@ var qp = {
34066
34218
  kind: "class",
34067
34219
  name: "SchmancyDrawerAppbar",
34068
34220
  tagName: "schmancy-nav-drawer-appbar",
34221
+ 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.",
34222
+ 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.",
34223
+ platformPrimitive: {
34224
+ tag: "header",
34225
+ mode: "-",
34226
+ note: "Styled horizontal bar. Degrades to a plain header element if the tag never registers."
34227
+ },
34069
34228
  slots: [{
34070
34229
  name: "",
34071
34230
  description: "The default slot"
34072
- }]
34231
+ }],
34232
+ examples: ["<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>"]
34073
34233
  }]
34074
34234
  },
34075
34235
  {
@@ -34078,7 +34238,15 @@ var qp = {
34078
34238
  declarations: [{
34079
34239
  kind: "class",
34080
34240
  name: "SchmancyNavigationDrawerContent",
34081
- tagName: "schmancy-nav-drawer-content"
34241
+ tagName: "schmancy-nav-drawer-content",
34242
+ description: "Main content region inside schmancy-nav-drawer — typically hosts the router outlet or the page's body content.",
34243
+ summary: "Always nested inside schmancy-nav-drawer. Scrollable by default; propagates scroll events up so the drawer can collapse app-bar on scroll.",
34244
+ platformPrimitive: {
34245
+ tag: "main",
34246
+ mode: "scroll",
34247
+ note: "Scrollable `<main>`. Degrades to a plain scrollable div if the tag never registers."
34248
+ },
34249
+ examples: ["<schmancy-nav-drawer-content>\n <schmancy-area name=\"main\"></schmancy-area>\n</schmancy-nav-drawer-content>"]
34082
34250
  }]
34083
34251
  },
34084
34252
  {
@@ -34088,6 +34256,13 @@ var qp = {
34088
34256
  kind: "class",
34089
34257
  name: "SchmancyNavigationDrawer",
34090
34258
  tagName: "schmancy-nav-drawer",
34259
+ 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).",
34260
+ 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.",
34261
+ platformPrimitive: {
34262
+ tag: "div",
34263
+ mode: "-",
34264
+ note: "Flex layout with viewport-width mode switching. Degrades to a stack of plain divs if the tag never registers."
34265
+ },
34091
34266
  attributes: [
34092
34267
  {
34093
34268
  name: "fullscreen",
@@ -34112,10 +34287,15 @@ var qp = {
34112
34287
  values: ["open", "close"]
34113
34288
  }
34114
34289
  ],
34290
+ events: [{
34291
+ name: "schmancy-drawer-state",
34292
+ description: "When the drawer open/close state changes on mobile."
34293
+ }],
34115
34294
  slots: [{
34116
34295
  name: "",
34117
34296
  description: "The content slot"
34118
34297
  }],
34298
+ examples: ["<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>"],
34119
34299
  contexts: [{
34120
34300
  name: "SchmancyDrawerNavbarMode",
34121
34301
  kind: "provide"
@@ -34132,11 +34312,19 @@ var qp = {
34132
34312
  kind: "class",
34133
34313
  name: "SchmancyNavigationDrawerSidebar",
34134
34314
  tagName: "schmancy-nav-drawer-navbar",
34315
+ description: "Sidebar region inside schmancy-nav-drawer — the persistent-on-desktop / modal-on-mobile nav rail.",
34316
+ 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.",
34317
+ platformPrimitive: {
34318
+ tag: "nav",
34319
+ mode: "-",
34320
+ note: "Sidebar `<nav>` with responsive open/close behavior. Degrades to a plain sidebar div if the tag never registers."
34321
+ },
34135
34322
  attributes: [{
34136
34323
  name: "width",
34137
34324
  type: { text: "string" },
34138
34325
  default: "'220px'"
34139
34326
  }],
34327
+ examples: ["<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>"],
34140
34328
  contexts: [{
34141
34329
  name: "SchmancyDrawerNavbarMode",
34142
34330
  kind: "consume"
@@ -34153,7 +34341,13 @@ var qp = {
34153
34341
  kind: "class",
34154
34342
  name: "SchmancyNavigationBarItem",
34155
34343
  tagName: "schmancy-navigation-bar-item",
34156
- description: "`<schmancy-navigation-bar-item>` component Individual navigation item for use within a navigation bar. Represents a single destination with an icon and optional label following Material Design 3 specifications.",
34344
+ description: "Single destination inside schmancy-navigation-bar an icon + optional label representing one primary app destination.",
34345
+ summary: "Always nested inside schmancy-navigation-bar. Use `icon` attr for a Material Symbols glyph or slot=icon for custom content.",
34346
+ platformPrimitive: {
34347
+ tag: "button",
34348
+ mode: "click",
34349
+ note: "Styled navigation target. Degrades to a plain `<button>` if the tag never registers."
34350
+ },
34157
34351
  attributes: [
34158
34352
  {
34159
34353
  name: "icon",
@@ -34217,7 +34411,13 @@ var qp = {
34217
34411
  kind: "class",
34218
34412
  name: "SchmancyNavigationBar",
34219
34413
  tagName: "schmancy-navigation-bar",
34220
- description: "`<schmancy-navigation-bar>` component A horizontal navigation component following Material Design 3 specifications. Navigation bars provide access to between 3-7 primary destinations. Automatically hides in fullscreen mode when triggered via schmancyTheme.next({ fullscreen: true }). **IMPORTANT**: This component includes `z-10` by default (consistent with navigation-rail). The consumer is responsible for positioning the navigation bar in their layout. For typical bottom-fixed positioning, add: `class=\"fixed bottom-0 left-0 right-0\"`.",
34414
+ description: "Bottom navigation bar Material Design 3 horizontal nav for mobile primary destinations (37 items). Auto-hides in fullscreen mode.",
34415
+ 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.",
34416
+ platformPrimitive: {
34417
+ tag: "nav",
34418
+ mode: "-",
34419
+ note: "Styled horizontal nav with schmancy-navigation-bar-item children. Degrades to a plain flex container if the tag never registers."
34420
+ },
34221
34421
  attributes: [
34222
34422
  {
34223
34423
  name: "hideLabels",
@@ -34256,7 +34456,13 @@ var qp = {
34256
34456
  kind: "class",
34257
34457
  name: "SchmancyNavigationRailItem",
34258
34458
  tagName: "schmancy-navigation-rail-item",
34259
- description: "Material Design 3 Navigation Rail Item Component",
34459
+ description: "Single destination inside schmancy-navigation-rail vertically-stacked icon + optional label. @see https://m3.material.io/components/navigation-rail/overview",
34460
+ 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.",
34461
+ platformPrimitive: {
34462
+ tag: "button",
34463
+ mode: "click",
34464
+ note: "Styled vertical navigation target. Degrades to a plain `<button>` if the tag never registers."
34465
+ },
34260
34466
  attributes: [
34261
34467
  {
34262
34468
  name: "icon",
@@ -34372,7 +34578,7 @@ var qp = {
34372
34578
  kind: "class",
34373
34579
  name: "SchmancyNavigationRail",
34374
34580
  tagName: "schmancy-navigation-rail",
34375
- description: "Material Design 3 Navigation Rail Component\r @see https://m3.material.io/components/navigation-rail/overview\r `<schmancy-navigation-rail>` component\r A Material Design 3 vertical navigation component positioned on the left side of an application.\r Navigation rails provide access to between 3-7 primary destinations with a compact footprint.\r Automatically hides in fullscreen mode when triggered via schmancyTheme.next({ fullscreen: true }).\r @element schmancy-navigation-rail\r @slot fab - Slot for a floating action button at the top\r @slot menu - Slot for a menu icon or button below the FAB\r @slot header - Custom header content slot\r @slot footer - Custom footer content slot\r @slot - Default slot for navigation rail items\r @fires navigate - When a navigation item is selected\r @fires menu-click - When the menu button is clicked\r @fires fab-click - When the FAB is clicked\r @csspart rail - The main rail container\r @csspart header - The header section\r @csspart nav - The navigation items container\r @csspart footer - The footer section",
34581
+ description: "Vertical navigation rail Material Design 3 compact left-side nav for desktop / tablet layouts with 37 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.",
34376
34582
  attributes: [
34377
34583
  {
34378
34584
  name: "label-visibility",
@@ -34415,7 +34621,7 @@ var qp = {
34415
34621
  description: "Whether the navigation rail is expanded\r @default false"
34416
34622
  }
34417
34623
  ],
34418
- examples: ["<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>"]
34624
+ examples: ["<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", "<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>"]
34419
34625
  }]
34420
34626
  },
34421
34627
  {
@@ -34682,7 +34888,13 @@ var qp = {
34682
34888
  kind: "class",
34683
34889
  name: "SchmancyPage",
34684
34890
  tagName: "schmancy-page",
34685
- description: "Native mobile-like page container. Prevents double-tap zoom, pull-to-refresh, rubber-banding. Automatically fills remaining viewport height.",
34891
+ 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`.",
34892
+ 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.",
34893
+ platformPrimitive: {
34894
+ tag: "div",
34895
+ mode: "-",
34896
+ 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."
34897
+ },
34686
34898
  attributes: [
34687
34899
  {
34688
34900
  name: "rows",
@@ -34701,7 +34913,7 @@ var qp = {
34701
34913
  default: "false"
34702
34914
  }
34703
34915
  ],
34704
- examples: ["html`\n <schmancy-page rows=\"1fr_2fr_auto\">\n <header>App Bar</header>\n <main>Scrollable content</main>\n <footer>Navigation</footer>\n </schmancy-page>\n`"]
34916
+ examples: ["<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>"]
34705
34917
  }]
34706
34918
  },
34707
34919
  {
@@ -35013,6 +35225,13 @@ var qp = {
35013
35225
  kind: "class",
35014
35226
  name: "SchmancySheet",
35015
35227
  tagName: "schmancy-sheet",
35228
+ 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.",
35229
+ summary: "Prefer `sheet.open({ component, position })` over placing this element declaratively — the service handles stacking, focus, close on outside-click, ESC, and router integration.",
35230
+ platformPrimitive: {
35231
+ tag: "dialog",
35232
+ mode: "close",
35233
+ note: "Positioned-fixed panel with backdrop. Degrades to a `<dialog>` if the tag never registers — loses slide animation, keeps focus trap + dismiss."
35234
+ },
35016
35235
  attributes: [
35017
35236
  {
35018
35237
  name: "open",
@@ -35040,7 +35259,12 @@ var qp = {
35040
35259
  type: { text: "boolean" },
35041
35260
  default: "true"
35042
35261
  }
35043
- ]
35262
+ ],
35263
+ events: [{
35264
+ name: "close",
35265
+ description: "When the sheet is dismissed (backdrop click, close button, ESC)."
35266
+ }],
35267
+ examples: ["import { sheet, SchmancySheetPosition } from '@mhmo91/schmancy'\nsheet.open({\n component: new MyEditorElement(),\n position: SchmancySheetPosition.Side,\n title: 'Edit item',\n})"]
35044
35268
  }]
35045
35269
  },
35046
35270
  {
@@ -35280,7 +35504,13 @@ var qp = {
35280
35504
  kind: "class",
35281
35505
  name: "SchmancySurface",
35282
35506
  tagName: "schmancy-surface",
35283
- description: "`<schmancy-surface>` component This component renders a styled container that adapts its dimensions based on the `fill` property. It supports various rounding options, elevation levels, and applies background and text color classes based on the specified surface variant. Additionally, when the `scroller` property is true, the component enables internal scrolling by applying overflow and scroll-behavior styles. SurfaceMixin automatically provides surfaceStyles CSS.",
35507
+ 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.",
35508
+ 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.",
35509
+ platformPrimitive: {
35510
+ tag: "div",
35511
+ mode: "-",
35512
+ 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."
35513
+ },
35284
35514
  attributes: [{
35285
35515
  name: "type",
35286
35516
  type: { text: "TSurfaceColor" },
@@ -35712,7 +35942,13 @@ var qp = {
35712
35942
  kind: "class",
35713
35943
  name: "SchmancyThemeComponent",
35714
35944
  tagName: "schmancy-theme",
35715
- description: "SchmancyThemeComponent - Provides theming capabilities for Schmancy components. This component manages color schemes, primary colors, and theme distribution throughout the component tree. It can be used at the root level or nested to provide different themes to different parts of the application.",
35945
+ 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-…)).",
35946
+ 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.",
35947
+ platformPrimitive: {
35948
+ tag: "div",
35949
+ mode: "-",
35950
+ 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."
35951
+ },
35716
35952
  attributes: [
35717
35953
  {
35718
35954
  name: "color",
@@ -35754,7 +35990,7 @@ var qp = {
35754
35990
  description: "Theme configuration object containing all theme variables."
35755
35991
  }
35756
35992
  ],
35757
- examples: ["<!-- Root theme provider -->\n<schmancy-theme color=\"#6200ee\" scheme=\"auto\" root>\n <your-app></your-app>\n</schmancy-theme>\n\n<!-- Nested theme for specific section -->\n<schmancy-theme color=\"#2196f3\" scheme=\"dark\">\n <div class=\"dark-section\">\n <!-- Components here will use blue dark theme -->\n </div>\n</schmancy-theme>"],
35993
+ examples: ["<!-- Root theme provider -->\n<schmancy-theme root scheme=\"auto\" color=\"#6200ee\">\n <your-app></your-app>\n</schmancy-theme>", "<!-- 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>"],
35758
35994
  contexts: [{
35759
35995
  name: "themeContext",
35760
35996
  kind: "provide"
@@ -35799,6 +36035,13 @@ var qp = {
35799
36035
  kind: "class",
35800
36036
  name: "SchmancyTree",
35801
36037
  tagName: "schmancy-tree",
36038
+ 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.",
36039
+ 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).",
36040
+ platformPrimitive: {
36041
+ tag: "details",
36042
+ mode: "toggle",
36043
+ note: "Recursive `<details>`-like disclosure. Degrades to a plain nested list if the tag never registers — loses expand/collapse but stays navigable."
36044
+ },
35802
36045
  attributes: [{
35803
36046
  name: "open",
35804
36047
  type: { text: "boolean" },
@@ -35811,7 +36054,8 @@ var qp = {
35811
36054
  }, {
35812
36055
  name: "",
35813
36056
  description: "The children of the tree"
35814
- }]
36057
+ }],
36058
+ examples: ["<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>"]
35815
36059
  }]
35816
36060
  },
35817
36061
  {
@@ -36358,7 +36602,13 @@ var qp = {
36358
36602
  kind: "class",
36359
36603
  name: "SchmancyScroll",
36360
36604
  tagName: "schmancy-scroll",
36361
- description: "A custom scrollable container with enhanced features.",
36605
+ description: "Scrollable container with debounced scroll events, horizontal/vertical direction, optional hidden scrollbar, and programmatic scrollTo via command events or refs.",
36606
+ 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.",
36607
+ platformPrimitive: {
36608
+ tag: "div",
36609
+ mode: "-",
36610
+ 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."
36611
+ },
36362
36612
  attributes: [
36363
36613
  {
36364
36614
  name: "hide",