@mhmo91/schmancy 0.9.17 → 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 (57) hide show
  1. package/custom-elements.json +85 -46
  2. package/dist/agent/schmancy.agent.js +169 -23
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +198 -18
  5. package/dist/breadcrumb.cjs.map +1 -1
  6. package/dist/breadcrumb.js.map +1 -1
  7. package/dist/dialog.cjs.map +1 -1
  8. package/dist/dialog.js.map +1 -1
  9. package/dist/dropdown.cjs.map +1 -1
  10. package/dist/dropdown.js.map +1 -1
  11. package/dist/handover/agent-runtime-followups.md +1 -1
  12. package/dist/handover/agent-runtime-v1.md +3 -3
  13. package/dist/list-BpjKUOzM.js.map +1 -1
  14. package/dist/list-CMWHu6cV.cjs.map +1 -1
  15. package/dist/menu-BIBUgS1T.js.map +1 -1
  16. package/dist/menu-DS8Iz4fJ.cjs.map +1 -1
  17. package/dist/navigation-rail.cjs.map +1 -1
  18. package/dist/navigation-rail.js.map +1 -1
  19. package/dist/sheet-DdlZhnDG.cjs.map +1 -1
  20. package/dist/sheet-LFVo5iN4.js.map +1 -1
  21. package/dist/src-C7niWYur.js.map +1 -1
  22. package/dist/src-I4M33WK2.cjs.map +1 -1
  23. package/package.json +1 -1
  24. package/src/breadcrumb/breadcrumb.ts +14 -4
  25. package/src/dialog/dialog.component.ts +9 -9
  26. package/src/dropdown/dropdown-component.ts +13 -1
  27. package/src/dropdown/dropdown-content.ts +11 -3
  28. package/src/list/list-item.ts +10 -0
  29. package/src/list/list.ts +7 -8
  30. package/src/menu/menu-item.ts +13 -0
  31. package/src/menu/menu.ts +10 -22
  32. package/src/nav-drawer/appbar.ts +11 -0
  33. package/src/nav-drawer/content.ts +11 -0
  34. package/src/nav-drawer/drawer.ts +15 -0
  35. package/src/nav-drawer/navbar.ts +14 -0
  36. package/src/navigation-bar/navigation-bar-item.ts +3 -4
  37. package/src/navigation-bar/navigation-bar.ts +3 -9
  38. package/src/navigation-rail/navigation-rail-item.ts +3 -7
  39. package/src/navigation-rail/navigation-rail.ts +12 -8
  40. package/src/sheet/sheet.ts +17 -0
  41. package/types/src/breadcrumb/breadcrumb.d.ts +14 -4
  42. package/types/src/dialog/dialog.component.d.ts +9 -9
  43. package/types/src/dropdown/dropdown-component.d.ts +13 -1
  44. package/types/src/dropdown/dropdown-content.d.ts +11 -3
  45. package/types/src/list/list-item.d.ts +10 -0
  46. package/types/src/list/list.d.ts +7 -8
  47. package/types/src/menu/menu-item.d.ts +13 -0
  48. package/types/src/menu/menu.d.ts +10 -22
  49. package/types/src/nav-drawer/appbar.d.ts +11 -0
  50. package/types/src/nav-drawer/content.d.ts +11 -0
  51. package/types/src/nav-drawer/drawer.d.ts +15 -0
  52. package/types/src/nav-drawer/navbar.d.ts +14 -0
  53. package/types/src/navigation-bar/navigation-bar-item.d.ts +3 -4
  54. package/types/src/navigation-bar/navigation-bar.d.ts +3 -9
  55. package/types/src/navigation-rail/navigation-rail-item.d.ts +3 -7
  56. package/types/src/navigation-rail/navigation-rail.d.ts +12 -8
  57. package/types/src/sheet/sheet.d.ts +17 -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
  {
@@ -32884,7 +32898,13 @@ var qp = {
32884
32898
  kind: "class",
32885
32899
  name: "SchmancyDialog",
32886
32900
  tagName: "schmancy-dialog",
32887
- 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
+ },
32888
32908
  attributes: [
32889
32909
  {
32890
32910
  name: "uid",
@@ -32935,6 +32955,13 @@ var qp = {
32935
32955
  description: "Whether to hide action buttons (force content mode)"
32936
32956
  }
32937
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
+ }],
32938
32965
  slots: [{
32939
32966
  name: "default",
32940
32967
  description: "Content slot for dialog body (used in content mode)"
@@ -32942,7 +32969,7 @@ var qp = {
32942
32969
  name: "content",
32943
32970
  description: "Named slot for custom content in confirm mode"
32944
32971
  }],
32945
- 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>"]
32946
32973
  }]
32947
32974
  },
32948
32975
  {
@@ -32992,7 +33019,13 @@ var qp = {
32992
33019
  kind: "class",
32993
33020
  name: "SchmancyDropdown",
32994
33021
  tagName: "schmancy-dropdown",
32995
- 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
+ },
32996
33029
  attributes: [
32997
33030
  {
32998
33031
  name: "open",
@@ -33027,13 +33060,21 @@ var qp = {
33027
33060
  description: "Offset distance in pixels"
33028
33061
  }
33029
33062
  ],
33063
+ events: [{
33064
+ name: "open",
33065
+ description: "When the dropdown opens."
33066
+ }, {
33067
+ name: "close",
33068
+ description: "When the dropdown closes."
33069
+ }],
33030
33070
  slots: [{
33031
33071
  name: "trigger",
33032
33072
  description: "The element that triggers the dropdown"
33033
33073
  }, {
33034
33074
  name: "",
33035
33075
  description: "Default slot for the dropdown content"
33036
- }]
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>"]
33037
33078
  }]
33038
33079
  },
33039
33080
  {
@@ -33043,7 +33084,13 @@ var qp = {
33043
33084
  kind: "class",
33044
33085
  name: "SchmancyDropdownContent",
33045
33086
  tagName: "schmancy-dropdown-content",
33046
- 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
+ },
33047
33094
  attributes: [
33048
33095
  {
33049
33096
  name: "width",
@@ -33084,7 +33131,8 @@ var qp = {
33084
33131
  cssParts: [{
33085
33132
  name: "content",
33086
33133
  description: "The inner wrapper element; style to override panel backgrounds, shadows, padding, or borders without shadow-root piercing."
33087
- }]
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>"]
33088
33136
  }]
33089
33137
  },
33090
33138
  {
@@ -33616,6 +33664,13 @@ var qp = {
33616
33664
  kind: "class",
33617
33665
  name: "SchmancyListItem",
33618
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
+ },
33619
33674
  attributes: [
33620
33675
  {
33621
33676
  name: "variant",
@@ -33673,6 +33728,7 @@ var qp = {
33673
33728
  description: "default content"
33674
33729
  }
33675
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>"],
33676
33732
  contexts: [{
33677
33733
  name: "SchmancySurfaceTypeContext",
33678
33734
  kind: "consume"
@@ -33686,7 +33742,13 @@ var qp = {
33686
33742
  kind: "class",
33687
33743
  name: "List",
33688
33744
  tagName: "schmancy-list",
33689
- 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
+ },
33690
33752
  attributes: [
33691
33753
  {
33692
33754
  name: "surface",
@@ -33740,7 +33802,7 @@ var qp = {
33740
33802
  name: "",
33741
33803
  description: "The default slot for list items."
33742
33804
  }],
33743
- 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>"],
33744
33806
  contexts: [{
33745
33807
  name: "SchmancyListTypeContext",
33746
33808
  kind: "provide"
@@ -34103,7 +34165,19 @@ var qp = {
34103
34165
  declarations: [{
34104
34166
  kind: "class",
34105
34167
  name: "SchmancyMenuItem",
34106
- 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>"]
34107
34181
  }]
34108
34182
  },
34109
34183
  {
@@ -34113,7 +34187,13 @@ var qp = {
34113
34187
  kind: "class",
34114
34188
  name: "SchmancyMenu",
34115
34189
  tagName: "schmancy-menu",
34116
- 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
+ },
34117
34197
  slots: [
34118
34198
  {
34119
34199
  name: "trigger",
@@ -34128,7 +34208,7 @@ var qp = {
34128
34208
  description: "Menu items or any custom component to display in dialog"
34129
34209
  }
34130
34210
  ],
34131
- 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>"]
34132
34212
  }]
34133
34213
  },
34134
34214
  {
@@ -34138,10 +34218,18 @@ var qp = {
34138
34218
  kind: "class",
34139
34219
  name: "SchmancyDrawerAppbar",
34140
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
+ },
34141
34228
  slots: [{
34142
34229
  name: "",
34143
34230
  description: "The default slot"
34144
- }]
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>"]
34145
34233
  }]
34146
34234
  },
34147
34235
  {
@@ -34150,7 +34238,15 @@ var qp = {
34150
34238
  declarations: [{
34151
34239
  kind: "class",
34152
34240
  name: "SchmancyNavigationDrawerContent",
34153
- 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>"]
34154
34250
  }]
34155
34251
  },
34156
34252
  {
@@ -34160,6 +34256,13 @@ var qp = {
34160
34256
  kind: "class",
34161
34257
  name: "SchmancyNavigationDrawer",
34162
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
+ },
34163
34266
  attributes: [
34164
34267
  {
34165
34268
  name: "fullscreen",
@@ -34184,10 +34287,15 @@ var qp = {
34184
34287
  values: ["open", "close"]
34185
34288
  }
34186
34289
  ],
34290
+ events: [{
34291
+ name: "schmancy-drawer-state",
34292
+ description: "When the drawer open/close state changes on mobile."
34293
+ }],
34187
34294
  slots: [{
34188
34295
  name: "",
34189
34296
  description: "The content slot"
34190
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>"],
34191
34299
  contexts: [{
34192
34300
  name: "SchmancyDrawerNavbarMode",
34193
34301
  kind: "provide"
@@ -34204,11 +34312,19 @@ var qp = {
34204
34312
  kind: "class",
34205
34313
  name: "SchmancyNavigationDrawerSidebar",
34206
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
+ },
34207
34322
  attributes: [{
34208
34323
  name: "width",
34209
34324
  type: { text: "string" },
34210
34325
  default: "'220px'"
34211
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>"],
34212
34328
  contexts: [{
34213
34329
  name: "SchmancyDrawerNavbarMode",
34214
34330
  kind: "consume"
@@ -34225,7 +34341,13 @@ var qp = {
34225
34341
  kind: "class",
34226
34342
  name: "SchmancyNavigationBarItem",
34227
34343
  tagName: "schmancy-navigation-bar-item",
34228
- 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
+ },
34229
34351
  attributes: [
34230
34352
  {
34231
34353
  name: "icon",
@@ -34289,7 +34411,13 @@ var qp = {
34289
34411
  kind: "class",
34290
34412
  name: "SchmancyNavigationBar",
34291
34413
  tagName: "schmancy-navigation-bar",
34292
- 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
+ },
34293
34421
  attributes: [
34294
34422
  {
34295
34423
  name: "hideLabels",
@@ -34328,7 +34456,13 @@ var qp = {
34328
34456
  kind: "class",
34329
34457
  name: "SchmancyNavigationRailItem",
34330
34458
  tagName: "schmancy-navigation-rail-item",
34331
- 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
+ },
34332
34466
  attributes: [
34333
34467
  {
34334
34468
  name: "icon",
@@ -34444,7 +34578,7 @@ var qp = {
34444
34578
  kind: "class",
34445
34579
  name: "SchmancyNavigationRail",
34446
34580
  tagName: "schmancy-navigation-rail",
34447
- 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.",
34448
34582
  attributes: [
34449
34583
  {
34450
34584
  name: "label-visibility",
@@ -34487,7 +34621,7 @@ var qp = {
34487
34621
  description: "Whether the navigation rail is expanded\r @default false"
34488
34622
  }
34489
34623
  ],
34490
- 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>"]
34491
34625
  }]
34492
34626
  },
34493
34627
  {
@@ -35091,6 +35225,13 @@ var qp = {
35091
35225
  kind: "class",
35092
35226
  name: "SchmancySheet",
35093
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
+ },
35094
35235
  attributes: [
35095
35236
  {
35096
35237
  name: "open",
@@ -35118,7 +35259,12 @@ var qp = {
35118
35259
  type: { text: "boolean" },
35119
35260
  default: "true"
35120
35261
  }
35121
- ]
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})"]
35122
35268
  }]
35123
35269
  },
35124
35270
  {