snice 7.0.3 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/.agents/skills/snice/SKILL.md +4 -0
  2. package/.agents/skills/snice/references/core-kitchen-sink.ts +39 -1
  3. package/README.md +59 -14
  4. package/adapters/react/SniceProvider.js +2 -2
  5. package/adapters/react/SniceRouter.js +2 -2
  6. package/adapters/react/matchRoute.js +2 -2
  7. package/adapters/react/useRequestHandler.js +2 -2
  8. package/bin/analyzer-contracts.js +6 -1
  9. package/bin/postinstall.js +59 -0
  10. package/bin/project-analyzer.js +466 -5
  11. package/bin/snice.js +3 -0
  12. package/dist/app-context.d.ts +11 -0
  13. package/dist/cdn/accordion/snice-accordion.js +2 -2
  14. package/dist/cdn/action-bar/snice-action-bar.js +2 -2
  15. package/dist/cdn/activity-feed/snice-activity-feed.js +2 -2
  16. package/dist/cdn/alert/snice-alert.js +2 -2
  17. package/dist/cdn/app-tiles/snice-app-tiles.js +2 -2
  18. package/dist/cdn/approval-flow/snice-approval-flow.js +2 -2
  19. package/dist/cdn/audio-recorder/snice-audio-recorder.js +2 -2
  20. package/dist/cdn/availability/snice-availability.js +2 -2
  21. package/dist/cdn/avatar/snice-avatar.js +2 -2
  22. package/dist/cdn/avatar-group/snice-avatar-group.js +2 -2
  23. package/dist/cdn/badge/snice-badge.js +2 -2
  24. package/dist/cdn/banner/snice-banner.js +2 -2
  25. package/dist/cdn/binpack/snice-binpack.js +2 -2
  26. package/dist/cdn/book/snice-book.js +2 -2
  27. package/dist/cdn/booking/snice-booking.js +2 -2
  28. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +2 -2
  29. package/dist/cdn/button/snice-button.js +2 -2
  30. package/dist/cdn/calendar/snice-calendar.js +2 -2
  31. package/dist/cdn/camera/snice-camera.js +2 -2
  32. package/dist/cdn/camera-annotate/snice-camera-annotate.js +2 -2
  33. package/dist/cdn/candlestick/snice-candlestick.js +2 -2
  34. package/dist/cdn/card/snice-card.js +2 -2
  35. package/dist/cdn/carousel/snice-carousel.js +2 -2
  36. package/dist/cdn/cart/snice-cart.js +2 -2
  37. package/dist/cdn/chart/snice-chart.js +2 -2
  38. package/dist/cdn/chat/snice-chat.js +2 -2
  39. package/dist/cdn/checkbox/snice-checkbox.js +2 -2
  40. package/dist/cdn/chip/snice-chip.js +2 -2
  41. package/dist/cdn/code-block/snice-code-block.js +2 -2
  42. package/dist/cdn/color-display/snice-color-display.js +2 -2
  43. package/dist/cdn/color-picker/snice-color-picker.js +2 -2
  44. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  45. package/dist/cdn/comments/snice-comments.js +2 -2
  46. package/dist/cdn/countdown/snice-countdown.js +2 -2
  47. package/dist/cdn/cropper/snice-cropper.js +2 -2
  48. package/dist/cdn/data-card/snice-data-card.js +2 -2
  49. package/dist/cdn/date-picker/snice-date-picker.js +2 -2
  50. package/dist/cdn/date-range-picker/snice-date-range-picker.js +2 -2
  51. package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
  52. package/dist/cdn/diff/snice-diff.js +2 -2
  53. package/dist/cdn/divider/snice-divider.js +2 -2
  54. package/dist/cdn/doc/snice-doc.js +2 -2
  55. package/dist/cdn/draw/snice-draw.js +2 -2
  56. package/dist/cdn/drawer/snice-drawer.js +2 -2
  57. package/dist/cdn/empty-state/snice-empty-state.js +2 -2
  58. package/dist/cdn/estimate/snice-estimate.js +2 -2
  59. package/dist/cdn/file-gallery/snice-file-gallery.js +2 -2
  60. package/dist/cdn/file-upload/snice-file-upload.js +2 -2
  61. package/dist/cdn/flip-card/snice-flip-card.js +2 -2
  62. package/dist/cdn/flow/snice-flow.js +2 -2
  63. package/dist/cdn/form-layout/snice-form-layout.js +2 -2
  64. package/dist/cdn/funnel/snice-funnel.js +2 -2
  65. package/dist/cdn/gantt/snice-gantt.js +2 -2
  66. package/dist/cdn/gauge/snice-gauge.js +2 -2
  67. package/dist/cdn/grid/snice-grid.js +2 -2
  68. package/dist/cdn/heatmap/snice-heatmap.js +2 -2
  69. package/dist/cdn/image/snice-image.js +2 -2
  70. package/dist/cdn/input/snice-input.js +2 -2
  71. package/dist/cdn/invoice/snice-invoice.js +2 -2
  72. package/dist/cdn/kanban/snice-kanban.js +2 -2
  73. package/dist/cdn/key-value/snice-key-value.js +2 -2
  74. package/dist/cdn/kpi/snice-kpi.js +2 -2
  75. package/dist/cdn/layout/README.md +17 -2
  76. package/dist/cdn/layout/snice-layout.js +1656 -11
  77. package/dist/cdn/layout/snice-layout.js.map +1 -1
  78. package/dist/cdn/layout/snice-layout.min.js +379 -2
  79. package/dist/cdn/layout/snice-layout.min.js.map +1 -1
  80. package/dist/cdn/leaderboard/snice-leaderboard.js +2 -2
  81. package/dist/cdn/link/snice-link.js +2 -2
  82. package/dist/cdn/link-preview/snice-link-preview.js +2 -2
  83. package/dist/cdn/list/snice-list.js +2 -2
  84. package/dist/cdn/location/snice-location.js +2 -2
  85. package/dist/cdn/login/snice-login.js +2 -2
  86. package/dist/cdn/map/snice-map.js +2 -2
  87. package/dist/cdn/markdown/snice-markdown.js +2 -2
  88. package/dist/cdn/masonry/snice-masonry.js +2 -2
  89. package/dist/cdn/menu/snice-menu.js +2 -2
  90. package/dist/cdn/message-strip/snice-message-strip.js +2 -2
  91. package/dist/cdn/modal/snice-modal.js +2 -2
  92. package/dist/cdn/music-player/snice-music-player.js +2 -2
  93. package/dist/cdn/nav/snice-nav.js +2 -2
  94. package/dist/cdn/network-graph/snice-network-graph.js +2 -2
  95. package/dist/cdn/notification-center/snice-notification-center.js +2 -2
  96. package/dist/cdn/order-tracker/snice-order-tracker.js +2 -2
  97. package/dist/cdn/org-chart/snice-org-chart.js +2 -2
  98. package/dist/cdn/pagination/snice-pagination.js +2 -2
  99. package/dist/cdn/paint/snice-paint.js +2 -2
  100. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +2 -2
  101. package/dist/cdn/permission-matrix/snice-permission-matrix.js +2 -2
  102. package/dist/cdn/podcast-player/snice-podcast-player.js +2 -2
  103. package/dist/cdn/popover/snice-popover.js +2 -2
  104. package/dist/cdn/pricing-table/snice-pricing-table.js +2 -2
  105. package/dist/cdn/product-card/snice-product-card.js +2 -2
  106. package/dist/cdn/progress/snice-progress.js +2 -2
  107. package/dist/cdn/progress-ring/snice-progress-ring.js +2 -2
  108. package/dist/cdn/qr-code/snice-qr-code.js +2 -2
  109. package/dist/cdn/qr-reader/snice-qr-reader.js +2 -2
  110. package/dist/cdn/radio/snice-radio.js +2 -2
  111. package/dist/cdn/range-slider/snice-range-slider.js +2 -2
  112. package/dist/cdn/rating/snice-rating.js +2 -2
  113. package/dist/cdn/receipt/snice-receipt.js +2 -2
  114. package/dist/cdn/recipe/snice-recipe.js +2 -2
  115. package/dist/cdn/runtime/README.md +2 -2
  116. package/dist/cdn/runtime/snice-runtime.esm.js +3732 -3343
  117. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  118. package/dist/cdn/runtime/snice-runtime.esm.min.js +1 -1
  119. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  120. package/dist/cdn/runtime/snice-runtime.js +3727 -3335
  121. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  122. package/dist/cdn/runtime/snice-runtime.min.js +1 -1
  123. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  124. package/dist/cdn/sankey/snice-sankey.js +2 -2
  125. package/dist/cdn/segmented-control/snice-segmented-control.js +2 -2
  126. package/dist/cdn/select/snice-select.js +2 -2
  127. package/dist/cdn/skeleton/snice-skeleton.js +2 -2
  128. package/dist/cdn/slider/snice-slider.js +2 -2
  129. package/dist/cdn/sortable/snice-sortable.js +2 -2
  130. package/dist/cdn/sparkline/snice-sparkline.js +2 -2
  131. package/dist/cdn/spinner/snice-spinner.js +2 -2
  132. package/dist/cdn/split-button/snice-split-button.js +2 -2
  133. package/dist/cdn/split-pane/snice-split-pane.js +2 -2
  134. package/dist/cdn/spotlight/snice-spotlight.js +2 -2
  135. package/dist/cdn/stat-group/snice-stat-group.js +2 -2
  136. package/dist/cdn/step-input/snice-step-input.js +2 -2
  137. package/dist/cdn/stepper/snice-stepper.js +2 -2
  138. package/dist/cdn/switch/snice-switch.js +2 -2
  139. package/dist/cdn/table/README.md +6 -2
  140. package/dist/cdn/table/snice-table.esm.js +347 -54
  141. package/dist/cdn/table/snice-table.esm.js.map +1 -1
  142. package/dist/cdn/table/snice-table.esm.min.js +105 -44
  143. package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
  144. package/dist/cdn/table/snice-table.js +348 -57
  145. package/dist/cdn/table/snice-table.js.map +1 -1
  146. package/dist/cdn/table/snice-table.min.js +153 -92
  147. package/dist/cdn/table/snice-table.min.js.map +1 -1
  148. package/dist/cdn/tabs/snice-tabs.js +2 -2
  149. package/dist/cdn/tag/snice-tag.js +2 -2
  150. package/dist/cdn/tag-input/snice-tag-input.js +2 -2
  151. package/dist/cdn/terminal/snice-terminal.js +2 -2
  152. package/dist/cdn/testimonial/snice-testimonial.js +2 -2
  153. package/dist/cdn/textarea/snice-textarea.js +2 -2
  154. package/dist/cdn/time-picker/snice-time-picker.js +2 -2
  155. package/dist/cdn/time-range-picker/snice-time-range-picker.js +2 -2
  156. package/dist/cdn/timeline/snice-timeline.js +2 -2
  157. package/dist/cdn/timer/snice-timer.js +2 -2
  158. package/dist/cdn/toast/snice-toast.js +2 -2
  159. package/dist/cdn/tooltip/snice-tooltip.js +2 -2
  160. package/dist/cdn/tree/snice-tree.js +2 -2
  161. package/dist/cdn/treemap/snice-treemap.js +2 -2
  162. package/dist/cdn/user-card/snice-user-card.js +2 -2
  163. package/dist/cdn/video-player/snice-video-player.js +2 -2
  164. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +2 -2
  165. package/dist/cdn/waterfall/snice-waterfall.js +2 -2
  166. package/dist/cdn/weather/snice-weather.js +2 -2
  167. package/dist/cdn/work-order/snice-work-order.js +2 -2
  168. package/dist/context-provider.d.ts +16 -0
  169. package/dist/daemon-target.d.ts +10 -0
  170. package/dist/daemon.d.ts +10 -0
  171. package/dist/index.cjs +3721 -3329
  172. package/dist/index.cjs.map +1 -1
  173. package/dist/index.d.ts +3 -0
  174. package/dist/index.esm.js +3719 -3330
  175. package/dist/index.esm.js.map +1 -1
  176. package/dist/index.iife.js +3721 -3329
  177. package/dist/index.iife.js.map +1 -1
  178. package/dist/keyboard-filter.d.ts +25 -0
  179. package/dist/on.d.ts +1 -1
  180. package/dist/parts.d.ts +0 -17
  181. package/dist/react/SniceProvider.js +2 -2
  182. package/dist/react/SniceRouter.js +2 -2
  183. package/dist/react/index.js +2 -2
  184. package/dist/react/matchRoute.js +2 -2
  185. package/dist/react/useRequestHandler.js +2 -2
  186. package/dist/request-response.d.ts +9 -1
  187. package/dist/symbols.cjs +11 -2
  188. package/dist/symbols.cjs.map +1 -1
  189. package/dist/symbols.d.ts +3 -0
  190. package/dist/symbols.esm.js +9 -3
  191. package/dist/symbols.esm.js.map +1 -1
  192. package/dist/testing.d.ts +1 -1
  193. package/dist/transitions.cjs +2 -2
  194. package/dist/transitions.esm.js +2 -2
  195. package/dist/types/app-context.d.ts +9 -58
  196. package/dist/types/daemon.d.ts +8 -0
  197. package/dist/types/dispatch-options.d.ts +2 -0
  198. package/dist/types/index.d.ts +1 -0
  199. package/dist/types/on-options.d.ts +5 -0
  200. package/dist/types/request-options.d.ts +2 -0
  201. package/dist/types/respond-options.d.ts +2 -0
  202. package/docs/ai/DEVELOPMENT.md +15 -1
  203. package/docs/ai/README.md +5 -1
  204. package/docs/ai/api.md +13 -4
  205. package/docs/ai/architecture.md +50 -1
  206. package/docs/ai/cli.md +9 -0
  207. package/docs/ai/daemons.md +80 -0
  208. package/docs/ai/decorators.md +6 -4
  209. package/docs/ai/events.md +6 -0
  210. package/docs/ai/patterns.md +45 -1
  211. package/docs/ai/request-response.md +26 -9
  212. package/docs/ai/routing.md +16 -1
  213. package/docs/cli.md +7 -0
  214. package/docs/daemons.md +200 -0
  215. package/docs/events.md +19 -2
  216. package/docs/request-response.md +20 -13
  217. package/docs/routing.md +25 -1
  218. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"snice-layout.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/icons/index.js","../../components/nav/snice-nav.js","../../components/utils.js","../../components/layout/snice-layout.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * Built-in snice icon set — a small curated subset of Heroicons, used by\n * components as their default glyph when no consumer slot or `icon` prop is\n * provided. Consumers can always override by slotting their own icon library\n * (Font Awesome, Material Symbols, Lucide, custom SVG, etc.).\n *\n * Copied from Heroicons v2 — MIT License, © Tailwind Labs.\n * https://github.com/tailwindlabs/heroicons\n *\n * Why embed instead of depending on a package:\n * - Snice ships zero runtime dependencies beyond the framework itself.\n * - We only need ~15 glyphs; the full Heroicons package is 600+ icons.\n * - Embedding sidesteps shadow DOM / module-resolution concerns and keeps\n * default icons available even in sandboxed environments.\n *\n * All SVGs:\n * - viewBox=\"0 0 24 24\"\n * - solid variants use `fill=\"currentColor\"`\n * - outline variants use `stroke=\"currentColor\"` + no fill\n *\n * Components pass `currentColor` through by setting `color:` on the wrapper.\n */\n// ─── SOLID (filled) — used for status / selected / active contexts ────────\nconst INFO_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\" clip-rule=\"evenodd\"/></svg>`;\nconst CHECK_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\" clip-rule=\"evenodd\"/></svg>`;\nconst EXCLAMATION_TRIANGLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\" clip-rule=\"evenodd\"/></svg>`;\nconst X_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm-1.72 6.97a.75.75 0 1 0-1.06 1.06L10.94 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06L12 13.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L13.06 12l1.72-1.72a.75.75 0 1 0-1.06-1.06L12 10.94l-1.72-1.72Z\" clip-rule=\"evenodd\"/></svg>`;\nconst PAPER_AIRPLANE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M3.478 2.404a.75.75 0 0 0-.926.941l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94 60.519 60.519 0 0 0 18.445-8.986.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.404Z\"/></svg>`;\n// ─── OUTLINE — used for neutral UI chrome ──────────────────────────────────\nconst X_MARK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6 18 18 6M6 6l12 12\"/></svg>`;\nconst CHEVRON_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m19.5 8.25-7.5 7.5-7.5-7.5\"/></svg>`;\nconst CHEVRON_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4.5 15.75 7.5-7.5 7.5 7.5\"/></svg>`;\nconst CHEVRON_RIGHT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>`;\nconst CHEVRON_LEFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>`;\nconst CHECK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4.5 12.75 6 6 9-13.5\"/></svg>`;\nconst MAGNIFYING_GLASS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\"/></svg>`;\nconst BARS_3 = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>`;\nconst PHOTO = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"/></svg>`;\nconst ELLIPSIS_HORIZONTAL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z\"/></svg>`;\nconst TRASH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"/></svg>`;\nconst PLUS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4.5v15m7.5-7.5h-15\"/></svg>`;\nconst CAMERA = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.822 1.316Z\"/><path d=\"M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z\"/></svg>`;\nconst PENCIL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125\"/></svg>`;\nconst ARROW_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 19.5v-15m0 0-6.75 6.75M12 4.5l6.75 6.75\"/></svg>`;\nconst ARROW_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4.5v15m0 0 6.75-6.75M12 19.5l-6.75-6.75\"/></svg>`;\nconst ARROW_RIGHT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4.5 12h15m0 0-6.75-6.75M19.5 12l-6.75 6.75\"/></svg>`;\nconst ARROW_TRENDING_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.941\"/></svg>`;\nconst ARROW_TRENDING_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 6 9 12.75l4.286-4.286a11.948 11.948 0 0 1 4.306 6.43l.776 2.898m0 0 3.182-5.511m-3.182 5.511-5.511-3.181\"/></svg>`;\nconst STAR_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006Z\" clip-rule=\"evenodd\"/></svg>`;\nconst STAR_OUTLINE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z\"/></svg>`;\nconst CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8\"/></svg>`;\nconst FUNNEL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z\"/></svg>`;\nconst ARROW_DOWN_TRAY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"/></svg>`;\nconst ARROW_UP_TRAY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"/></svg>`;\nconst CHAT_BUBBLE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z\"/></svg>`;\nconst ROCKET_LAUNCH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.59 14.37a6 6 0 0 1-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 0 0 6.16-12.12A14.98 14.98 0 0 0 9.631 8.41m5.96 5.96a14.926 14.926 0 0 1-5.841 2.58m-.119-8.54a6 6 0 0 0-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 0 0-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 0 1-2.448-2.448 14.9 14.9 0 0 1 .06-.312m-2.24 2.39a4.493 4.493 0 0 0-1.757 4.306 4.493 4.493 0 0 0 4.306-1.758M16.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z\"/></svg>`;\nconst KEY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z\"/></svg>`;\nconst FIRE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.362 5.214A8.252 8.252 0 0 1 12 21 8.25 8.25 0 0 1 6.038 7.047 8.287 8.287 0 0 0 9 9.601a8.983 8.983 0 0 1 3.361-6.867 8.21 8.21 0 0 0 3 2.48Z\"/><path d=\"M12 18a3.75 3.75 0 0 0 .495-7.468 5.99 5.99 0 0 0-1.925 3.547 5.975 5.975 0 0 1-2.133-1.001A3.75 3.75 0 0 0 12 18Z\"/></svg>`;\nconst COG_6_TOOTH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"/><path d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\nconst ENVELOPE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75\"/></svg>`;\nconst LIGHT_BULB = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 18v-5.25m0 0a6.01 6.01 0 0 0 1.5-.189m-1.5.189a6.01 6.01 0 0 1-1.5-.189m3.75 7.478a12.06 12.06 0 0 1-4.5 0m3.75 2.383a14.406 14.406 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18\"/></svg>`;\nconst USERS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"/></svg>`;\nconst HEART = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z\"/></svg>`;\nconst HOME = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>`;\nconst CHART_BAR = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"/></svg>`;\nconst SCISSORS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.848 8.25l1.536.887M7.848 8.25a3 3 0 1 1-5.196-3 3 3 0 0 1 5.196 3Zm1.536.887a2.165 2.165 0 0 1 1.083 1.839c.005.351.054.695.14 1.024M9.384 9.137l2.077 1.199M7.848 15.75l1.536-.887m-1.536.887a3 3 0 1 1-5.196 3 3 3 0 0 1 5.196-3Zm1.536-.887a2.165 2.165 0 0 0 1.083-1.838c.005-.352.054-.695.14-1.025m-1.223 2.863 2.077-1.199m0-3.328a4.323 4.323 0 0 1 2.068-1.379l5.325-1.628a4.5 4.5 0 0 1 2.48-.044l.803.215-7.794 4.5m-2.882-.375a4.33 4.33 0 0 0 .655 3.736m2.227-3.361 7.794 4.5-.802.215a4.5 4.5 0 0 1-2.48-.043l-5.326-1.629a4.324 4.324 0 0 1-2.068-1.379m0 0-2.077 1.199\"/></svg>`;\nconst USER = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"/></svg>`;\nconst CLIPBOARD = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184\"/></svg>`;\nconst BUG_ANT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082\"/></svg>`;\nconst CALENDAR_DAYS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"/></svg>`;\nconst SPARKLES = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z\"/></svg>`;\nconst BELL_ALERT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0M3.124 7.5A8.969 8.969 0 0 1 5.292 3m13.416 0a8.969 8.969 0 0 1 2.168 4.5\"/></svg>`;\nconst CUBE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9\"/></svg>`;\nconst BANKNOTES = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 18.75a60.07 60.07 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\nconst CAKE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 8.25v-1.5m0 1.5c-1.355 0-2.697.056-4.024.166C6.845 8.51 6 9.473 6 10.608v2.513m6-4.871c1.355 0 2.697.056 4.024.166C17.155 8.51 18 9.473 18 10.608v2.513M15 8.25v-1.5m-6 1.5v-1.5m12 9.75-1.5.75a3.354 3.354 0 0 1-3 0 3.354 3.354 0 0 0-3 0 3.354 3.354 0 0 1-3 0 3.354 3.354 0 0 0-3 0 3.354 3.354 0 0 1-3 0L3 16.5m15-3.379a48.474 48.474 0 0 0-6-.371c-2.032 0-4.034.126-6 .371m12 0c.39.049.777.102 1.163.16 1.07.16 1.837 1.094 1.837 2.175v5.169c0 .621-.504 1.125-1.125 1.125H4.125A1.125 1.125 0 0 1 3 20.625v-5.17c0-1.08.768-2.014 1.837-2.174A47.78 47.78 0 0 1 6 13.12\"/></svg>`;\nconst PAINT_BRUSH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.53 16.122a3 3 0 0 0-5.78 1.128 2.25 2.25 0 0 1-2.4 2.245 4.5 4.5 0 0 0 8.4-2.245c0-.399-.078-.78-.22-1.128Zm0 0a15.998 15.998 0 0 0 3.388-1.62m-5.043-.025a15.994 15.994 0 0 1 1.622-3.395m3.42 3.42a15.995 15.995 0 0 0 4.764-4.648l3.876-5.814a1.151 1.151 0 0 0-1.597-1.597L14.146 6.32a15.996 15.996 0 0 0-4.649 4.763m3.42 3.42a6.776 6.776 0 0 0-3.42-3.42\"/></svg>`;\nconst GIFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H4.5a1.5 1.5 0 0 1-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z\"/></svg>`;\nconst FOLDER = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>`;\nconst DOCUMENT_TEXT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"/></svg>`;\nconst BELL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0\"/></svg>`;\nconst LINK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244\"/></svg>`;\nconst PHONE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z\"/></svg>`;\nconst COMPUTER_DESKTOP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25\"/></svg>`;\nconst MUSICAL_NOTE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z\"/></svg>`;\nconst TABLE_CELLS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m8.625 1.125c0 .621-.504 1.125-1.125 1.125h-7.5\"/></svg>`;\nconst MINUS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/></svg>`;\nconst LOCK_CLOSED = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"/></svg>`;\nconst ARROWS_POINTING_OUT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\"/></svg>`;\nconst EYE_SLASH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"/></svg>`;\nconst MAP_PIN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/><path d=\"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z\"/></svg>`;\nconst ARROWS_RIGHT_LEFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"/></svg>`;\nconst PAPER_CLIP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13\"/></svg>`;\n/** Small lookup for named access from template-string paths. */\nconst ICONS = {\n 'info-circle': INFO_CIRCLE_SOLID,\n 'check-circle': CHECK_CIRCLE_SOLID,\n 'exclamation-triangle': EXCLAMATION_TRIANGLE_SOLID,\n 'x-circle': X_CIRCLE_SOLID,\n 'x-mark': X_MARK,\n 'chevron-down': CHEVRON_DOWN,\n 'chevron-up': CHEVRON_UP,\n 'chevron-right': CHEVRON_RIGHT,\n 'chevron-left': CHEVRON_LEFT,\n 'check': CHECK,\n 'magnifying-glass': MAGNIFYING_GLASS,\n 'search': MAGNIFYING_GLASS, // common alias (table toolbar, inputs)\n 'bars-3': BARS_3,\n 'photo': PHOTO,\n 'ellipsis-horizontal': ELLIPSIS_HORIZONTAL,\n 'trash': TRASH,\n 'plus': PLUS,\n 'camera': CAMERA,\n 'pencil': PENCIL,\n 'arrow-up': ARROW_UP,\n 'arrow-down': ARROW_DOWN,\n 'arrow-right': ARROW_RIGHT,\n 'arrow-trending-up': ARROW_TRENDING_UP,\n 'arrow-trending-down': ARROW_TRENDING_DOWN,\n 'star': STAR_SOLID,\n 'star-outline': STAR_OUTLINE,\n 'circle': CIRCLE_SOLID,\n 'paper-clip': PAPER_CLIP,\n 'paper-airplane': PAPER_AIRPLANE_SOLID,\n 'arrow-down-tray': ARROW_DOWN_TRAY,\n 'arrow-up-tray': ARROW_UP_TRAY,\n 'chat-bubble': CHAT_BUBBLE,\n 'rocket-launch': ROCKET_LAUNCH,\n 'key': KEY,\n 'arrows-right-left': ARROWS_RIGHT_LEFT,\n 'arrows-pointing-out': ARROWS_POINTING_OUT,\n 'eye-slash': EYE_SLASH,\n 'map-pin': MAP_PIN,\n 'fire': FIRE,\n 'cog-6-tooth': COG_6_TOOTH,\n 'settings': COG_6_TOOTH, // common alias\n 'envelope': ENVELOPE,\n 'light-bulb': LIGHT_BULB,\n 'users': USERS,\n 'heart': HEART,\n 'home': HOME,\n 'chart-bar': CHART_BAR,\n 'scissors': SCISSORS,\n 'user': USER,\n 'clipboard': CLIPBOARD,\n 'bug-ant': BUG_ANT,\n 'calendar-days': CALENDAR_DAYS,\n 'sparkles': SPARKLES,\n 'bell-alert': BELL_ALERT,\n 'cube': CUBE,\n 'banknotes': BANKNOTES,\n 'cake': CAKE,\n 'paint-brush': PAINT_BRUSH,\n 'gift': GIFT,\n 'folder': FOLDER,\n 'document-text': DOCUMENT_TEXT,\n 'bell': BELL,\n 'link': LINK,\n 'phone': PHONE,\n 'computer-desktop': COMPUTER_DESKTOP,\n 'musical-note': MUSICAL_NOTE,\n 'lock-closed': LOCK_CLOSED,\n 'table-cells': TABLE_CELLS,\n 'minus': MINUS,\n};\n\nexport { ARROWS_POINTING_OUT, ARROWS_RIGHT_LEFT, ARROW_DOWN, ARROW_DOWN_TRAY, ARROW_RIGHT, ARROW_TRENDING_DOWN, ARROW_TRENDING_UP, ARROW_UP, ARROW_UP_TRAY, BANKNOTES, BARS_3, BELL, BELL_ALERT, BUG_ANT, CAKE, CALENDAR_DAYS, CAMERA, CHART_BAR, CHAT_BUBBLE, CHECK, CHECK_CIRCLE_SOLID, CHEVRON_DOWN, CHEVRON_LEFT, CHEVRON_RIGHT, CHEVRON_UP, CIRCLE_SOLID, CLIPBOARD, COG_6_TOOTH, COMPUTER_DESKTOP, CUBE, DOCUMENT_TEXT, ELLIPSIS_HORIZONTAL, ENVELOPE, EXCLAMATION_TRIANGLE_SOLID, EYE_SLASH, FIRE, FOLDER, FUNNEL, GIFT, HEART, HOME, ICONS, INFO_CIRCLE_SOLID, KEY, LIGHT_BULB, LINK, LOCK_CLOSED, MAGNIFYING_GLASS, MAP_PIN, MINUS, MUSICAL_NOTE, PAINT_BRUSH, PAPER_AIRPLANE_SOLID, PAPER_CLIP, PENCIL, PHONE, PHOTO, PLUS, ROCKET_LAUNCH, SCISSORS, SPARKLES, STAR_OUTLINE, STAR_SOLID, TABLE_CELLS, TRASH, USER, USERS, X_CIRCLE_SOLID, X_MARK };\n//# sourceMappingURL=index.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, context, watch } from 'snice';\nimport { ICONS } from '../icons/index.js';\nimport { classifyIcon } from '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);overflow:hidden;box-sizing:border-box}.nav{display:flex;gap:var(--snice-spacing-md,1rem)}.nav--horizontal{flex-direction:row;align-items:center}.nav--vertical{flex-direction:column;align-items:stretch}.nav__item{position:relative}.nav__link{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);color:var(--snice-color-text-secondary,rgb(107 114 128));text-decoration:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);box-sizing:border-box;min-width:0;position:relative;transition:background-color var(--snice-transition-fast, 150ms) var(--snice-ease-out, ease),color var(--snice-transition-fast, 150ms) var(--snice-ease-out, ease)}.nav__link:hover{background-color:var(--snice-color-surface-container-low,rgb(243 244 246));color:var(--snice-color-text,rgb(23 23 23))}.nav__link:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.nav__link--active{background-color:var(--snice-color-surface-container,rgb(243 244 246));color:var(--snice-color-primary-hover,rgb(96 165 250))}.nav__link--active:hover{background-color:var(--snice-color-surface-container-low,rgb(249 250 251));color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link,:host([active-style=text]) .nav__link--active,:host([active-style=text]) .nav__link--active:hover,:host([active-style=text]) .nav__link:hover{background-color:transparent}:host([active-style=text]) .nav__link:hover{color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 60%,transparent)}:host([active-style=text]) .nav__link--active{color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link--active:hover{color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link::after{content:'';position:absolute;background:var(--snice-color-primary,rgb(37 99 235));left:50%;right:50%;bottom:2px;height:2px;border-radius:1px;transition:left 220ms var(--snice-ease-out, ease),right 220ms var(--snice-ease-out, ease),background-color 220ms var(--snice-ease-out, ease);pointer-events:none}:host([active-style=text]) .nav__link:hover::after{left:20%;right:20%}:host([active-style=text]) .nav__link--active::after{left:0;right:0}:host([active-style=text][orientation=vertical]) .nav__link::after{left:0;right:auto;bottom:20%;top:20%;width:2px;height:auto;transform:scaleY(0);transform-origin:center;transition:transform 220ms var(--snice-ease-out, ease),background-color 220ms var(--snice-ease-out, ease)}:host([active-style=text][orientation=vertical]) .nav__link:hover::after{transform:scaleY(.6)}:host([active-style=text][orientation=vertical]) .nav__link--active::after{top:15%;bottom:15%;transform:scaleY(1)}.nav__icon{display:inline-flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.125rem)}.nav__icon svg{width:1.125rem;height:1.125rem;display:block}.nav__icon img{width:1.25em;height:1.25em;object-fit:contain}.nav__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav--hierarchical.nav--vertical{flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical.nav--horizontal{flex-direction:row;align-items:flex-start;gap:var(--snice-spacing-lg,1.5rem)}.nav--hierarchical .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__submenu{list-style:none;margin:0;padding:0 0 0 var(--snice-spacing-xl,2rem);display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.nav--hierarchical .nav__submenu .nav__item{margin:0}.nav--hierarchical .nav__submenu .nav__link{font-size:var(--snice-font-size-sm, .875rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem)}.nav--grouped.nav--vertical{flex-direction:column;gap:var(--snice-spacing-lg,1.5rem)}.nav--grouped.nav--horizontal{flex-direction:row;align-items:flex-start;gap:var(--snice-spacing-xl,2rem)}.nav--grouped .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--grouped .nav__group-label{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-tertiary,rgb(115 115 115));text-transform:uppercase;letter-spacing:var(--snice-tracking-wide, .03em);padding:0 var(--snice-spacing-md,1rem);margin-bottom:var(--snice-spacing-2xs,.25rem)}.nav--vertical .nav__item,.nav--vertical .nav__link{width:100%}@media (max-width:768px){.nav--horizontal{flex-wrap:wrap}.nav__label{font-size:var(--snice-font-size-sm, .875rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nconst NAME_KEY = 'data-placard-name';\nconst GROUP_KEY = 'data-group';\nlet SniceNav = (() => {\n let _classDecorators = [element('snice-nav')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _orientation_decorators;\n let _orientation_initializers = [];\n let _orientation_extraInitializers = [];\n let _activeStyle_decorators;\n let _activeStyle_initializers = [];\n let _activeStyle_extraInitializers = [];\n let _isTopLevel_decorators;\n let _isTopLevel_initializers = [];\n let _isTopLevel_extraInitializers = [];\n let _handleContext_decorators;\n let _handleChange_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.variant = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _variant_initializers, 'flat'));\n this.orientation = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _orientation_initializers, 'horizontal'));\n this.activeStyle = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _activeStyle_initializers, 'fill'));\n this.isTopLevel = (__runInitializers(this, _activeStyle_extraInitializers), __runInitializers(this, _isTopLevel_initializers, false));\n this.placards = (__runInitializers(this, _isTopLevel_extraInitializers), []);\n this.currentRoute = '';\n this.routeParams = {};\n this.appContext = null;\n this.wrapper = null;\n this.navElement = null;\n this.lastVariant = null;\n this.lastOrientation = null;\n this.renderToken = 0;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _variant_decorators = [property()];\n _orientation_decorators = [property()];\n _activeStyle_decorators = [property({ attribute: 'active-style' })];\n _isTopLevel_decorators = [property({ type: Boolean, attribute: 'is-top-level' })];\n _handleContext_decorators = [context()];\n _handleChange_decorators = [watch('variant', 'orientation', 'activeStyle')];\n __esDecorate(this, null, _handleContext_decorators, { kind: \"method\", name: \"handleContext\", static: false, private: false, access: { has: obj => \"handleContext\" in obj, get: obj => obj.handleContext }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleChange_decorators, { kind: \"method\", name: \"handleChange\", static: false, private: false, access: { has: obj => \"handleChange\" in obj, get: obj => obj.handleChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _variant_decorators, { kind: \"field\", name: \"variant\", static: false, private: false, access: { has: obj => \"variant\" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);\n __esDecorate(null, null, _orientation_decorators, { kind: \"field\", name: \"orientation\", static: false, private: false, access: { has: obj => \"orientation\" in obj, get: obj => obj.orientation, set: (obj, value) => { obj.orientation = value; } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);\n __esDecorate(null, null, _activeStyle_decorators, { kind: \"field\", name: \"activeStyle\", static: false, private: false, access: { has: obj => \"activeStyle\" in obj, get: obj => obj.activeStyle, set: (obj, value) => { obj.activeStyle = value; } }, metadata: _metadata }, _activeStyle_initializers, _activeStyle_extraInitializers);\n __esDecorate(null, null, _isTopLevel_decorators, { kind: \"field\", name: \"isTopLevel\", static: false, private: false, access: { has: obj => \"isTopLevel\" in obj, get: obj => obj.isTopLevel, set: (obj, value) => { obj.isTopLevel = value; } }, metadata: _metadata }, _isTopLevel_initializers, _isTopLevel_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n connectedCallback() {\n this.attachShadow({ mode: 'open' });\n this.applyStyles();\n this.render();\n }\n handleContext(ctx) {\n if (this.isTopLevel) {\n this.update(ctx.navigation.placards, ctx.application, ctx.navigation.route, ctx.navigation.params);\n }\n }\n handleChange() {\n this.render();\n }\n applyStyles() {\n if (!this.shadowRoot)\n return;\n if (this.shadowRoot.querySelector('style'))\n return;\n const style = document.createElement('style');\n style.textContent = cssContent;\n this.shadowRoot.appendChild(style);\n }\n render() {\n if (!this.shadowRoot)\n return;\n const token = ++this.renderToken;\n this.applyStyles();\n // Structural change: variant or orientation flipped, or first render.\n const structuralChange = this.lastVariant !== this.variant ||\n this.lastOrientation !== this.orientation ||\n !this.wrapper ||\n !this.wrapper.isConnected;\n if (structuralChange) {\n // Full rebuild: remove any prior content (except style + slot).\n // Leaving the slot in place avoids a reflow of light-DOM children.\n const existingSlot = this.shadowRoot.querySelector('slot');\n for (const child of Array.from(this.shadowRoot.children)) {\n if (child.tagName !== 'STYLE' && child !== existingSlot)\n child.remove();\n }\n this.wrapper = document.createElement('div');\n this.wrapper.className = 'nav-content';\n this.wrapper.setAttribute('part', 'base');\n this.navElement = null;\n this.shadowRoot.insertBefore(this.wrapper, existingSlot ?? null);\n if (!existingSlot) {\n this.shadowRoot.appendChild(document.createElement('slot'));\n }\n this.lastVariant = this.variant;\n this.lastOrientation = this.orientation;\n }\n const candidates = this.placards\n .filter(p => !p.parent && p.show !== false)\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n // Render items for every candidate whose guard is true OR pending; skip\n // only when the guard is synchronously false. Pending items render hidden\n // and flip visible (or remove themselves) once the guard resolves — no\n // re-render, just a single attribute flip on the existing node.\n const rendered = [];\n for (const p of candidates) {\n const result = this.isVisible(p);\n if (result === false)\n continue;\n if (result === true) {\n rendered.push({ placard: p });\n }\n else if (result && typeof result.then === 'function') {\n rendered.push({ placard: p, pending: result });\n }\n }\n if (rendered.length === 0) {\n if (this.navElement) {\n this.navElement.remove();\n this.navElement = null;\n }\n }\n else {\n if (!this.navElement || !this.navElement.isConnected) {\n this.navElement = this.createNavElement();\n this.wrapper.appendChild(this.navElement);\n }\n else {\n this.navElement.className = `nav nav--${this.variant} nav--${this.orientation}`;\n }\n const placards = rendered.map(r => r.placard);\n if (this.variant === 'grouped') {\n this.diffGrouped(this.navElement, placards);\n }\n else if (this.variant === 'hierarchical') {\n this.diffHierarchical(this.navElement, placards);\n }\n else {\n this.diffFlat(this.navElement, placards);\n }\n // Now that every rendered placard has a real DOM node, flip hidden on\n // items whose guards are pending and wire up resolution handlers.\n for (const { placard, pending } of rendered) {\n const node = this.itemNodeFor(placard);\n if (!node)\n continue;\n if (pending) {\n this.markHidden(node, true);\n pending.then(ok => {\n if (token !== this.renderToken)\n return;\n if (ok)\n this.markHidden(node, false);\n else\n node.remove();\n }).catch(() => node.remove());\n }\n else {\n this.markHidden(node, false);\n }\n }\n }\n }\n /** Returns the top-level .nav__item or .nav__group element for a placard. */\n itemNodeFor(placard) {\n if (!this.navElement)\n return null;\n if (this.variant === 'hierarchical') {\n return this.navElement.querySelector(`:scope > .nav__group[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n if (this.variant === 'grouped') {\n const group = placard.group || 'default';\n return this.navElement.querySelector(`:scope > .nav__group[${GROUP_KEY}=\"${CSS.escape(group)}\"] > .nav__item[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n return this.navElement.querySelector(`:scope > .nav__item[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n markHidden(el, hidden) {\n if (hidden) {\n if (!el.hasAttribute('hidden'))\n el.setAttribute('hidden', '');\n if (el.getAttribute('aria-hidden') !== 'true')\n el.setAttribute('aria-hidden', 'true');\n }\n else {\n if (el.hasAttribute('hidden'))\n el.removeAttribute('hidden');\n if (el.hasAttribute('aria-hidden'))\n el.removeAttribute('aria-hidden');\n }\n }\n createNavElement() {\n const nav = document.createElement('nav');\n nav.className = `nav nav--${this.variant} nav--${this.orientation}`;\n nav.setAttribute('role', 'navigation');\n nav.setAttribute('part', 'nav');\n return nav;\n }\n // ─── Diff: flat ────────────────────────────────────────────────────────\n diffFlat(nav, items) {\n const existing = this.indexByName(nav.children, el => el.classList.contains('nav__item'));\n const wanted = items.map(p => this.reuseOrCreateItem(existing, p));\n this.reorderChildren(nav, wanted);\n this.removeUnused(nav, existing, wanted);\n }\n // ─── Diff: hierarchical ────────────────────────────────────────────────\n diffHierarchical(nav, items) {\n const existing = this.indexByName(nav.children, el => el.classList.contains('nav__group'));\n const wanted = [];\n for (const placard of items) {\n let group = existing.get(placard.name);\n if (!group) {\n group = document.createElement('div');\n group.setAttribute(NAME_KEY, placard.name);\n }\n group.className = this.isActive(placard)\n ? 'nav__group nav__group--active'\n : 'nav__group';\n // Reuse or create the parent link as the first child.\n let parentLink = group.firstElementChild;\n if (!parentLink || parentLink.tagName !== 'A' || !parentLink.classList.contains('nav__link')) {\n parentLink = this.buildNavLink(placard);\n if (group.firstChild)\n group.insertBefore(parentLink, group.firstChild);\n else\n group.appendChild(parentLink);\n }\n else {\n this.updateNavLink(parentLink, placard);\n }\n // Children of this hierarchical item\n const children = this.placards\n .filter(p => p.parent === placard.name && p.show !== false && this.isVisible(p) === true)\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n let submenu = group.querySelector(':scope > .nav__submenu');\n if (children.length === 0) {\n if (submenu)\n submenu.remove();\n }\n else {\n if (!submenu) {\n submenu = document.createElement('ul');\n submenu.className = 'nav__submenu';\n group.appendChild(submenu);\n }\n const subExisting = this.indexByName(submenu.children, el => el.classList.contains('nav__item'));\n const subWanted = [];\n for (const child of children) {\n let li = subExisting.get(child.name);\n if (!li) {\n li = document.createElement('li');\n li.setAttribute(NAME_KEY, child.name);\n }\n li.className = this.isActive(child) ? 'nav__item nav__item--active' : 'nav__item';\n let link = li.firstElementChild;\n if (!link || link.tagName !== 'A') {\n link = this.buildNavLink(child);\n li.innerHTML = '';\n li.appendChild(link);\n }\n else {\n this.updateNavLink(link, child);\n }\n subWanted.push(li);\n }\n this.reorderChildren(submenu, subWanted);\n this.removeUnused(submenu, subExisting, subWanted);\n }\n wanted.push(group);\n }\n this.reorderChildren(nav, wanted);\n this.removeUnused(nav, existing, wanted);\n }\n // ─── Diff: grouped ─────────────────────────────────────────────────────\n diffGrouped(nav, items) {\n const groups = new Map();\n for (const placard of items) {\n const key = placard.group || 'default';\n if (!groups.has(key))\n groups.set(key, []);\n groups.get(key).push(placard);\n }\n // Index existing groups by their data-group attribute\n const existing = new Map();\n for (const child of Array.from(nav.children)) {\n if (!(child instanceof HTMLElement))\n continue;\n if (!child.classList.contains('nav__group'))\n continue;\n const key = child.getAttribute(GROUP_KEY);\n if (key)\n existing.set(key, child);\n }\n const wanted = [];\n for (const [groupName, groupItems] of groups) {\n const sorted = [...groupItems].sort((a, b) => (a.order || 0) - (b.order || 0));\n let groupEl = existing.get(groupName);\n if (!groupEl) {\n groupEl = document.createElement('div');\n groupEl.className = 'nav__group';\n groupEl.setAttribute(GROUP_KEY, groupName);\n }\n // Label (only for non-default groups)\n let label = groupEl.querySelector(':scope > .nav__group-label');\n if (groupName === 'default') {\n if (label)\n label.remove();\n }\n else {\n if (!label) {\n label = document.createElement('div');\n label.className = 'nav__group-label';\n groupEl.insertBefore(label, groupEl.firstChild);\n }\n if (label.textContent !== groupName)\n label.textContent = groupName;\n }\n const itemExisting = this.indexByName(groupEl.children, el => el.classList.contains('nav__item'));\n const itemWanted = [];\n for (const placard of sorted) {\n itemWanted.push(this.reuseOrCreateItem(itemExisting, placard));\n }\n // Keep label first, then items\n const labelFirst = label ? [label] : [];\n this.reorderChildren(groupEl, [...labelFirst, ...itemWanted]);\n this.removeUnused(groupEl, itemExisting, itemWanted);\n wanted.push(groupEl);\n }\n this.reorderChildrenByElement(nav, wanted, el => el instanceof HTMLElement && el.classList.contains('nav__group'));\n for (const [key, el] of existing) {\n if (!groups.has(key))\n el.remove();\n }\n }\n // ─── Helpers ───────────────────────────────────────────────────────────\n indexByName(children, pred) {\n const out = new Map();\n for (const child of Array.from(children)) {\n if (!(child instanceof HTMLElement))\n continue;\n if (!pred(child))\n continue;\n const name = child.getAttribute(NAME_KEY);\n if (name)\n out.set(name, child);\n }\n return out;\n }\n reuseOrCreateItem(existing, placard) {\n let item = existing.get(placard.name);\n if (!item) {\n item = document.createElement('div');\n item.setAttribute(NAME_KEY, placard.name);\n const link = this.buildNavLink(placard);\n item.appendChild(link);\n }\n else {\n const link = item.firstElementChild;\n if (link && link.tagName === 'A') {\n this.updateNavLink(link, placard);\n }\n else {\n item.innerHTML = '';\n item.appendChild(this.buildNavLink(placard));\n }\n }\n item.className = this.isActive(placard) ? 'nav__item nav__item--active' : 'nav__item';\n return item;\n }\n reorderChildren(parent, wanted) {\n let expected = parent.firstChild;\n for (const node of wanted) {\n if (expected === node) {\n expected = node.nextSibling;\n }\n else {\n parent.insertBefore(node, expected);\n }\n }\n }\n /** Like reorderChildren but only considers children matching `filter`. */\n reorderChildrenByElement(parent, wanted, filter) {\n let idx = 0;\n let cur = parent.firstChild;\n while (cur && idx < wanted.length) {\n if (!filter(cur)) {\n cur = cur.nextSibling;\n continue;\n }\n const target = wanted[idx];\n if (cur !== target)\n parent.insertBefore(target, cur);\n else\n cur = cur.nextSibling;\n idx++;\n }\n for (; idx < wanted.length; idx++)\n parent.appendChild(wanted[idx]);\n }\n removeUnused(parent, existing, wanted) {\n const wantedSet = new Set(wanted);\n for (const el of existing.values()) {\n if (!wantedSet.has(el) && el.parentNode === parent)\n el.remove();\n }\n }\n // ─── Link update in place ──────────────────────────────────────────────\n updateNavLink(a, placard) {\n const wantHref = placard.href || '';\n if (a.getAttribute('href') !== wantHref)\n a.setAttribute('href', wantHref);\n const wantClass = this.isActive(placard) ? 'nav__link nav__link--active' : 'nav__link';\n if (a.className !== wantClass)\n a.className = wantClass;\n if (this.isActive(placard)) {\n if (a.getAttribute('aria-current') !== 'page')\n a.setAttribute('aria-current', 'page');\n }\n else if (a.hasAttribute('aria-current')) {\n a.removeAttribute('aria-current');\n }\n this.syncAttr(a, 'aria-label', placard.description);\n this.syncAttr(a, 'title', placard.tooltip || placard.description);\n if (placard.hotkeys && placard.hotkeys.length > 0) {\n this.syncAttr(a, 'data-hotkeys', placard.hotkeys.join(','));\n }\n else {\n a.removeAttribute('data-hotkeys');\n }\n this.syncAttr(a, 'data-help-url', placard.helpUrl);\n if (placard.searchTerms && placard.searchTerms.length > 0) {\n this.syncAttr(a, 'data-search-terms', placard.searchTerms.join(','));\n }\n else {\n a.removeAttribute('data-search-terms');\n }\n if (placard.attributes) {\n for (const [key, value] of Object.entries(placard.attributes)) {\n this.syncAttr(a, `data-${key}`, String(value));\n }\n }\n // Icon\n const iconMeta = placard.icon ? classifyIcon(placard.icon) : null;\n const existingIcon = a.querySelector(':scope > .nav__icon');\n if (!iconMeta) {\n if (existingIcon)\n existingIcon.remove();\n }\n else {\n const needsReplace = !existingIcon ||\n (iconMeta.kind === 'img' && existingIcon.tagName !== 'IMG') ||\n (iconMeta.kind !== 'img' && existingIcon.tagName !== 'SPAN');\n if (needsReplace) {\n if (existingIcon)\n existingIcon.remove();\n const iconEl = this.buildIcon(iconMeta);\n a.insertBefore(iconEl, a.firstChild);\n }\n else {\n if (iconMeta.kind === 'img') {\n const img = existingIcon;\n if (img.src !== iconMeta.value)\n img.src = iconMeta.value;\n }\n else if (iconMeta.kind === 'registry') {\n if (existingIcon.dataset.icon !== iconMeta.value) {\n existingIcon.innerHTML = ICONS[iconMeta.value];\n existingIcon.dataset.icon = iconMeta.value;\n }\n }\n else {\n if (existingIcon.textContent !== iconMeta.value) {\n delete existingIcon.dataset.icon;\n existingIcon.textContent = iconMeta.value;\n }\n }\n }\n }\n // Label\n let labelSpan = a.querySelector(':scope > .nav__label');\n if (!labelSpan) {\n labelSpan = document.createElement('span');\n labelSpan.className = 'nav__label';\n a.appendChild(labelSpan);\n }\n if (labelSpan.textContent !== placard.title)\n labelSpan.textContent = placard.title;\n }\n syncAttr(el, name, value) {\n if (value === undefined || value === null || value === '') {\n el.removeAttribute(name);\n return;\n }\n if (el.getAttribute(name) !== value)\n el.setAttribute(name, value);\n }\n buildIcon(meta) {\n if (meta.kind === 'img') {\n const img = document.createElement('img');\n img.className = 'nav__icon';\n img.src = meta.value;\n img.alt = '';\n img.setAttribute('part', 'icon');\n return img;\n }\n const span = document.createElement('span');\n span.className = 'nav__icon';\n span.setAttribute('part', 'icon');\n if (meta.kind === 'registry') {\n // Registry values are our own static SVG constants — safe to inject.\n span.innerHTML = ICONS[meta.value];\n span.dataset.icon = meta.value;\n }\n else {\n span.textContent = meta.value;\n }\n return span;\n }\n buildNavLink(placard) {\n const a = document.createElement('a');\n a.setAttribute('part', 'link');\n this.updateNavLink(a, placard);\n return a;\n }\n isActive(placard) {\n const route = this.currentRoute.startsWith('/')\n ? this.currentRoute.slice(1)\n : this.currentRoute;\n return route === placard.name ||\n route.startsWith(`${placard.name}/`) ||\n (placard.name === 'home' && (this.currentRoute === '/' || this.currentRoute === ''));\n }\n isVisible(placard) {\n if (!placard.visibleOn)\n return true;\n if (!this.appContext)\n return true;\n const guards = Array.isArray(placard.visibleOn) ? placard.visibleOn : [placard.visibleOn];\n const results = guards.map(g => g(this.appContext, this.routeParams));\n if (results.every(r => r === true))\n return true;\n if (results.some(r => r === false))\n return false;\n return Promise.all(results).then(rs => rs.every(Boolean)).catch(() => false);\n }\n update(placards, appContext, currentRoute, routeParams) {\n this.placards = [...placards];\n if (appContext) {\n this.appContext = appContext;\n }\n if (currentRoute !== undefined) {\n this.currentRoute = currentRoute;\n }\n if (routeParams) {\n this.routeParams = routeParams;\n }\n this.render();\n }\n });\n return _classThis;\n})();\n\nexport { SniceNav };\n//# sourceMappingURL=snice-nav.js.map\n","import { html, unsafeHTML } from 'snice';\nimport { ICONS } from './icons/index.js';\n\n/**\n * Reflect only actual string values across a string attribute boundary.\n * Public component properties remain typed JavaScript inputs, so hostile or\n * accidental object values must not be coerced by calling user code.\n */\nconst strictStringAttributeConverter = {\n toAttribute(value) {\n return typeof value === 'string' ? value : null;\n }\n};\n/**\n * Classify a consumer-supplied icon value.\n *\n * This is the single source of truth for icon resolution. `renderIcon` uses it\n * for declarative rendering; components that build DOM imperatively (nav) use\n * it directly, so both paths agree on what counts as an image, a registry\n * name, or plain text.\n */\nfunction classifyIcon(icon) {\n if (icon.startsWith('img://'))\n return { kind: 'img', value: icon.slice(6) };\n if (icon.startsWith('text://'))\n return { kind: 'text', value: icon.slice(7) };\n // URL-shaped, or a filename with an image extension (an optional query\n // string is allowed so cache-busted paths still resolve as images).\n const isUrl = /^(https?:\\/\\/|\\/|\\.\\/|\\.\\.\\/|data:)/.test(icon);\n const isImageFile = /^[^:]*\\w\\.(svg|png|jpe?g|jfif|pjp|gif|webp|avif|jxl|ico|cur|bmp|tiff?|heic|heif|apng)(\\?.*)?$/i.test(icon);\n if (isUrl || isImageFile)\n return { kind: 'img', value: icon };\n if (ICONS[icon])\n return { kind: 'registry', value: icon };\n return { kind: 'text', value: icon };\n}\n/**\n * Detects icon type and returns appropriate template\n *\n * Scheme overrides:\n * - img://path -> forces <img> element\n * - text://content -> forces text content\n *\n * Auto-detection (when no scheme):\n * - URLs (http://, https://, /, ./, ../, data:) -> <img>\n * - Image extensions (svg, png, jpg, jpeg, jfif, pjp, gif, webp, avif, jxl,\n * ico, cur, bmp, tif, tiff, heic, heif, apng) -> <img>\n * - Everything else -> span with text content (emoji, plain text)\n *\n * ⚠️ \"home\" or \"settings\" renders as PLAIN TEXT, not a Material icon.\n * For Material Symbols, use the icon slot instead:\n * <span slot=\"icon\" class=\"material-symbols-outlined\">home</span>\n *\n * Examples:\n * - \"/path/icon.svg\" -> <img>\n * - \"icon.png\" -> <img>\n * - \"img://filename\" -> <img> (forced)\n * - \"🏠\" -> <span> text (emoji)\n * - \"home\" -> <span> text (plain text, NOT a Material icon)\n * - \"text:///not/a/path\" -> <span> text (forced)\n */\nfunction renderIcon(icon, className = 'icon') {\n if (!icon)\n return html ``;\n const { kind, value } = classifyIcon(icon);\n if (kind === 'img') {\n return html `<img class=\"${className}\" src=\"${value}\" alt=\"\" part=\"icon\" />`;\n }\n // Built-in SVG registry (components/icons) — named icons resolve here\n // BEFORE the font-ligature fallback. Without this, names like 'search'\n // render as literal text unless an external icon font is loaded.\n if (kind === 'registry') {\n return html `<span class=\"${className}\" part=\"icon\">${unsafeHTML(ICONS[value])}</span>`;\n }\n // Default: text content (emoji, font icon ligature names)\n // All content is escaped - no HTML injection possible\n // Detect ligature icon names (lowercase words with underscores, e.g. \"search\", \"check_circle\")\n // vs emoji/other text — apply --snice-icon-font (defaults to Material Symbols Outlined)\n if (/^[a-z][a-z0-9_]*$/.test(value)) {\n return html `<span class=\"${className} snice-icon-ligature\" style=\"font-family:var(--snice-icon-font,'Material Symbols Outlined'),sans-serif\" part=\"icon\">${value}</span>`;\n }\n return html `<span class=\"${className}\" part=\"icon\">${value}</span>`;\n}\n/**\n * Fallback accent hues (muted/business tones). Used when CSS vars haven't\n * been applied (test and non-browser environments) or when the 8 accent tokens have\n * been stripped. Keep in lockstep with `theme.css` --snice-color-accent-1..8.\n */\nconst FALLBACK_ACCENTS = [\n 'hsl(214 55% 48%)', 'hsl(27 62% 50%)', 'hsl(160 40% 40%)', 'hsl(275 32% 52%)',\n 'hsl(42 62% 48%)', 'hsl(340 42% 55%)', 'hsl(110 32% 42%)', 'hsl(195 45% 46%)',\n];\n/**\n * Returns the 8-slot accent palette resolved against the current document's\n * CSS variables, with in-process fallback for non-browser contexts. Data-vis\n * components call this instead of hard-coding color arrays so themes flow\n * through automatically.\n *\n * The returned strings are safe for `canvas.fillStyle`, `svg fill`, or\n * inline `style` — they're either a `hsl(...)` literal or whatever the\n * consumer set as `--snice-color-accent-N`.\n */\nfunction getAccentPalette(root) {\n if (typeof getComputedStyle !== 'function')\n return FALLBACK_ACCENTS;\n const target = root ?? document.documentElement;\n const cs = getComputedStyle(target);\n return FALLBACK_ACCENTS.map((fallback, i) => {\n const v = cs.getPropertyValue(`--snice-color-accent-${i + 1}`).trim();\n return v || fallback;\n });\n}\n/**\n * Parses a CSS color string into sRGB components in [0,1]. Handles `rgb()`,\n * `rgba()`, `hsl()`, `hsla()`, and `#hex`. Returns null if unparseable.\n */\nfunction parseCssColor(value) {\n if (!value)\n return null;\n const s = value.trim();\n // Hex: #RGB #RRGGBB #RGBA #RRGGBBAA\n if (s[0] === '#') {\n const hex = s.slice(1);\n const norm = hex.length === 3 || hex.length === 4\n ? hex.slice(0, 3).split('').map(c => c + c).join('')\n : hex.slice(0, 6);\n if (norm.length !== 6)\n return null;\n const n = parseInt(norm, 16);\n return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255];\n }\n // rgb() / rgba()\n const rgbMatch = s.match(/^rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)/i);\n if (rgbMatch) {\n return [+rgbMatch[1] / 255, +rgbMatch[2] / 255, +rgbMatch[3] / 255];\n }\n // hsl() / hsla() — quick conversion via an offscreen element for accuracy\n // (skip manual HSL→RGB to keep this helper small; browsers will resolve\n // any hsl() via getComputedStyle on the element anyway).\n if (/^hsla?\\(/i.test(s) && typeof document !== 'undefined') {\n const probe = document.createElement('span');\n probe.style.color = s;\n document.body.appendChild(probe);\n const resolved = getComputedStyle(probe).color;\n probe.remove();\n return parseCssColor(resolved);\n }\n return null;\n}\n/**\n * Relative luminance per WCAG 2.x, input in sRGB [0,1].\n */\nfunction luminance(rgb) {\n const lin = rgb.map(c => c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * lin[0] + 0.7152 * lin[1] + 0.0722 * lin[2];\n}\n/**\n * Picks a readable text color for the given `bg`, choosing between the\n * theme's existing text tokens. Light bg → `--snice-color-text` (dark text);\n * dark bg → `--snice-color-text-inverse` (light text). Falls back to inverse\n * for unparseable bg (safe default for colored fills).\n *\n * Used by badge/chip (and anything else pairing a colored fill with a label)\n * so the text stays legible regardless of theme — without hardcoding #fff.\n */\nfunction pickContrastColor(bg) {\n const rgb = parseCssColor(bg);\n if (!rgb)\n return 'var(--snice-color-text-inverse)';\n // Threshold 0.55 keeps saturated blues/greens (luminance ~0.2) using the\n // inverse (light) text, and pastels/lightened fills (> 0.55) using the\n // main text token (dark).\n return luminance(rgb) > 0.55\n ? 'var(--snice-color-text)'\n : 'var(--snice-color-text-inverse)';\n}\nconst themeListeners = new Set();\nlet themeObserver = null;\nfunction onThemeChange(fn) {\n if (typeof document === 'undefined')\n return () => { };\n themeListeners.add(fn);\n if (!themeObserver) {\n themeObserver = new MutationObserver(() => {\n for (const listener of themeListeners) {\n try {\n listener();\n }\n catch { }\n }\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class', 'data-theme-variant'],\n });\n }\n return () => {\n themeListeners.delete(fn);\n if (themeListeners.size === 0 && themeObserver) {\n themeObserver.disconnect();\n themeObserver = null;\n }\n };\n}\n\nexport { FALLBACK_ACCENTS, classifyIcon, getAccentPalette, onThemeChange, pickContrastColor, renderIcon, strictStringAttributeConverter };\n//# sourceMappingURL=utils.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, query, property, render, styles, ready, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{display:grid;grid-template-rows:auto 1fr auto;min-height:inherit}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,2rem);background:var(--snice-color-surface,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));box-shadow:var(--snice-shadow-xs,0 1px 2px 0 rgb(0 0 0 / .05))}.brand h1{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-lg, 1.5rem);color:var(--snice-color-text,rgb(23 23 23));font-weight:var(--snice-font-weight-semibold,600)}.nav{display:flex;gap:var(--snice-spacing-lg,2rem)}.nav ::slotted(a){text-decoration:none;color:var(--snice-color-text-secondary,rgb(82 82 82));font-weight:var(--snice-font-weight-medium,500);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,4px);transition:all var(--snice-transition-fast, .15s) ease}.nav ::slotted(a:hover){color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-surface-container-low,rgb(250 250 250))}.nav ::slotted(a.active){color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-primary-subtle,rgb(239 246 255));font-weight:var(--snice-font-weight-semibold,600)}.main{padding:var(--snice-spacing-lg,2rem);background:var(--snice-color-surface-container-low,rgb(250 250 250));overflow-y:auto;position:relative;z-index:0}.footer{padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,2rem);background:var(--snice-color-surface,rgb(255 255 255));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));text-align:center;color:var(--snice-color-text-secondary,rgb(82 82 82));font-size:var(--snice-font-size-sm, .875rem)}.footer p{margin:0}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}.footer--empty{display:none}\";\n\nlet SniceLayout = (() => {\n let _classDecorators = [element('snice-layout')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _hasFooterContent_decorators;\n let _hasFooterContent_initializers = [];\n let _hasFooterContent_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _wireFooterState_decorators;\n let _onReady_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _navElement_decorators = [query('snice-nav')];\n _hasFooterContent_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _wireFooterState_decorators = [ready()];\n _onReady_decorators = [ready()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireFooterState_decorators, { kind: \"method\", name: \"wireFooterState\", static: false, private: false, access: { has: obj => \"wireFooterState\" in obj, get: obj => obj.wireFooterState }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onReady_decorators, { kind: \"method\", name: \"onReady\", static: false, private: false, access: { has: obj => \"onReady\" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _hasFooterContent_decorators, { kind: \"field\", name: \"hasFooterContent\", static: false, private: false, access: { has: obj => \"hasFooterContent\" in obj, get: obj => obj.hasFooterContent, set: (obj, value) => { obj.hasFooterContent = value; } }, metadata: _metadata }, _hasFooterContent_initializers, _hasFooterContent_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\" part=\"base\">\n <header class=\"header\" part=\"header\">\n <div class=\"brand\" part=\"brand\">\n <slot name=\"brand\">\n <h1>App</h1>\n </slot>\n </div>\n <snice-nav class=\"nav\" variant=\"flat\" orientation=\"horizontal\"></snice-nav>\n </header>\n\n <main class=\"main\" part=\"main\">\n <slot name=\"page\"></slot>\n </main>\n\n <footer class=\"footer${this.hasFooterContent ? '' : ' footer--empty'}\" part=\"footer\">\n <slot name=\"footer\">\n </slot>\n </footer>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n wireFooterState() {\n this.syncFooterState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncFooterState());\n }\n syncFooterState() {\n this.hasFooterContent = !!this.querySelector('[slot=\"footer\"]');\n }\n onReady() {\n // Update nav if we already have placards\n if (this.placards.length > 0) {\n this.updateNav();\n }\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n // Update navigation - only if shadow DOM exists\n if (this.shadowRoot) {\n this.updateNav(appContext, routeParams);\n }\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n constructor() {\n super(...arguments);\n this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.placards = (__runInitializers(this, _navElement_extraInitializers), []);\n this.currentRoute = '';\n this.hasFooterContent = __runInitializers(this, _hasFooterContent_initializers, false);\n __runInitializers(this, _hasFooterContent_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayout };\n//# sourceMappingURL=snice-layout.js.map\n"],"names":["__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","key","target","prototype","descriptor","Object","getOwnPropertyDescriptor","name","done","i","length","context","p","access","addInitializer","push","result","get","set","init","unshift","defineProperty","__runInitializers","thisArg","value","useValue","arguments","call","SuppressedError","MAGNIFYING_GLASS","COG_6_TOOTH","ICONS","check","search","photo","trash","plus","camera","pencil","star","circle","fire","settings","envelope","users","heart","home","scissors","user","clipboard","sparkles","cube","banknotes","cake","gift","folder","bell","link","phone","minus","NAME_KEY","GROUP_KEY","_classDescriptor","_classThis","_variant_decorators","_orientation_decorators","_activeStyle_decorators","_isTopLevel_decorators","_handleContext_decorators","_handleChange_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_variant_initializers","_variant_extraInitializers","_orientation_initializers","_orientation_extraInitializers","_activeStyle_initializers","_activeStyle_extraInitializers","_isTopLevel_initializers","_isTopLevel_extraInitializers","this","constructor","super","variant","orientation","activeStyle","isTopLevel","placards","currentRoute","routeParams","appContext","wrapper","navElement","lastVariant","lastOrientation","renderToken","_metadata","Symbol","metadata","create","property","attribute","type","Boolean","watch","static","private","has","obj","handleContext","handleChange","enumerable","configurable","writable","connectedCallback","attachShadow","mode","applyStyles","render","ctx","update","navigation","application","route","params","shadowRoot","querySelector","style","document","createElement","textContent","appendChild","token","isConnected","existingSlot","child","Array","from","children","tagName","remove","className","setAttribute","insertBefore","candidates","filter","parent","show","sort","a","b","order","rendered","isVisible","placard","then","pending","createNavElement","map","r","diffGrouped","diffHierarchical","diffFlat","node","itemNodeFor","markHidden","ok","catch","CSS","escape","group","el","hidden","hasAttribute","getAttribute","removeAttribute","nav","items","existing","indexByName","classList","contains","wanted","reuseOrCreateItem","reorderChildren","removeUnused","isActive","parentLink","firstElementChild","updateNavLink","buildNavLink","firstChild","submenu","subExisting","subWanted","li","innerHTML","groups","Map","groupName","groupItems","sorted","groupEl","label","itemExisting","itemWanted","reorderChildrenByElement","pred","out","item","expected","nextSibling","idx","cur","wantedSet","Set","values","parentNode","wantHref","href","wantClass","syncAttr","description","tooltip","hotkeys","join","helpUrl","searchTerms","attributes","entries","String","iconMeta","icon","startsWith","slice","isUrl","test","isImageFile","classifyIcon","existingIcon","iconEl","buildIcon","src","dataset","labelSpan","title","meta","img","alt","span","visibleOn","results","isArray","g","every","some","Promise","all","rs","undefined","SniceLayout","_navElement_decorators","_hasFooterContent_decorators","_render_decorators","_styles_decorators","_wireFooterState_decorators","_onReady_decorators","_navElement_initializers","_navElement_extraInitializers","_hasFooterContent_initializers","_hasFooterContent_extraInitializers","query","styles","ready","wireFooterState","onReady","hasFooterContent","html","css","syncFooterState","addEventListener","updateNav"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-layout.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/icons/index.js","../../components/utils.js","../../components/nav/snice-nav.js","../../components/layout/snice-layout.js","../../components/layout/snice-layout-auth-split.js","../../components/layout/snice-layout-blog.js","../../components/layout/snice-layout-card.js","../../components/layout/snice-layout-centered.js","../../components/breadcrumbs/snice-breadcrumbs.js","../../components/layout/snice-layout-dashboard.js","../../components/layout/snice-layout-docs.js","../../components/layout/snice-layout-fullscreen.js","../../components/layout/snice-layout-landing.js","../../components/layout/snice-layout-master-detail.js","../../components/layout/snice-layout-minimal.js","../../components/layout/snice-layout-sidebar.js","../../components/layout/snice-layout-split.js"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","/**\n * Built-in snice icon set — a small curated subset of Heroicons, used by\n * components as their default glyph when no consumer slot or `icon` prop is\n * provided. Consumers can always override by slotting their own icon library\n * (Font Awesome, Material Symbols, Lucide, custom SVG, etc.).\n *\n * Copied from Heroicons v2 — MIT License, © Tailwind Labs.\n * https://github.com/tailwindlabs/heroicons\n *\n * Why embed instead of depending on a package:\n * - Snice ships zero runtime dependencies beyond the framework itself.\n * - We only need ~15 glyphs; the full Heroicons package is 600+ icons.\n * - Embedding sidesteps shadow DOM / module-resolution concerns and keeps\n * default icons available even in sandboxed environments.\n *\n * All SVGs:\n * - viewBox=\"0 0 24 24\"\n * - solid variants use `fill=\"currentColor\"`\n * - outline variants use `stroke=\"currentColor\"` + no fill\n *\n * Components pass `currentColor` through by setting `color:` on the wrapper.\n */\n// ─── SOLID (filled) — used for status / selected / active contexts ────────\nconst INFO_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm8.706-1.442c1.146-.573 2.437.463 2.126 1.706l-.709 2.836.042-.02a.75.75 0 0 1 .67 1.34l-.04.022c-1.147.573-2.438-.463-2.127-1.706l.71-2.836-.042.02a.75.75 0 1 1-.671-1.34l.041-.022ZM12 9a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\" clip-rule=\"evenodd\"/></svg>`;\nconst CHECK_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z\" clip-rule=\"evenodd\"/></svg>`;\nconst EXCLAMATION_TRIANGLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z\" clip-rule=\"evenodd\"/></svg>`;\nconst X_CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25Zm-1.72 6.97a.75.75 0 1 0-1.06 1.06L10.94 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06L12 13.06l1.72 1.72a.75.75 0 1 0 1.06-1.06L13.06 12l1.72-1.72a.75.75 0 1 0-1.06-1.06L12 10.94l-1.72-1.72Z\" clip-rule=\"evenodd\"/></svg>`;\nconst PAPER_AIRPLANE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M3.478 2.404a.75.75 0 0 0-.926.941l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94 60.519 60.519 0 0 0 18.445-8.986.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.404Z\"/></svg>`;\n// ─── OUTLINE — used for neutral UI chrome ──────────────────────────────────\nconst X_MARK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6 18 18 6M6 6l12 12\"/></svg>`;\nconst CHEVRON_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m19.5 8.25-7.5 7.5-7.5-7.5\"/></svg>`;\nconst CHEVRON_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4.5 15.75 7.5-7.5 7.5 7.5\"/></svg>`;\nconst CHEVRON_RIGHT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m8.25 4.5 7.5 7.5-7.5 7.5\"/></svg>`;\nconst CHEVRON_LEFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 19.5 8.25 12l7.5-7.5\"/></svg>`;\nconst CHECK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m4.5 12.75 6 6 9-13.5\"/></svg>`;\nconst MAGNIFYING_GLASS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\"/></svg>`;\nconst BARS_3 = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5\"/></svg>`;\nconst PHOTO = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z\"/></svg>`;\nconst ELLIPSIS_HORIZONTAL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM12.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0ZM18.75 12a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z\"/></svg>`;\nconst TRASH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0\"/></svg>`;\nconst PLUS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4.5v15m7.5-7.5h-15\"/></svg>`;\nconst CAMERA = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.827 6.175A2.31 2.31 0 0 1 5.186 7.23c-.38.054-.757.112-1.134.175C2.999 7.58 2.25 8.507 2.25 9.574V18a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9.574c0-1.067-.75-1.994-1.802-2.169a47.865 47.865 0 0 0-1.134-.175 2.31 2.31 0 0 1-1.64-1.055l-.822-1.316a2.192 2.192 0 0 0-1.736-1.039 48.774 48.774 0 0 0-5.232 0 2.192 2.192 0 0 0-1.736 1.039l-.822 1.316Z\"/><path d=\"M16.5 12.75a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0ZM18.75 10.5h.008v.008h-.008V10.5Z\"/></svg>`;\nconst PENCIL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L6.832 19.82a4.5 4.5 0 0 1-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 0 1 1.13-1.897L16.863 4.487Zm0 0L19.5 7.125\"/></svg>`;\nconst ARROW_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 19.5v-15m0 0-6.75 6.75M12 4.5l6.75 6.75\"/></svg>`;\nconst ARROW_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 4.5v15m0 0 6.75-6.75M12 19.5l-6.75-6.75\"/></svg>`;\nconst ARROW_RIGHT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4.5 12h15m0 0-6.75-6.75M19.5 12l-6.75 6.75\"/></svg>`;\nconst ARROW_TRENDING_UP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 18 9 11.25l4.306 4.306a11.95 11.95 0 0 1 5.814-5.518l2.74-1.22m0 0-5.94-2.281m5.94 2.28-2.28 5.941\"/></svg>`;\nconst ARROW_TRENDING_DOWN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 6 9 12.75l4.286-4.286a11.948 11.948 0 0 1 4.306 6.43l.776 2.898m0 0 3.182-5.511m-3.182 5.511-5.511-3.181\"/></svg>`;\nconst STAR_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path fill-rule=\"evenodd\" d=\"M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006Z\" clip-rule=\"evenodd\"/></svg>`;\nconst STAR_OUTLINE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M11.48 3.499a.562.562 0 0 1 1.04 0l2.125 5.111a.563.563 0 0 0 .475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 0 0-.182.557l1.285 5.385a.562.562 0 0 1-.84.61l-4.725-2.885a.562.562 0 0 0-.586 0L6.982 20.54a.562.562 0 0 1-.84-.61l1.285-5.386a.562.562 0 0 0-.182-.557l-4.204-3.602a.562.562 0 0 1 .321-.988l5.518-.442a.563.563 0 0 0 .475-.345L11.48 3.5Z\"/></svg>`;\nconst CIRCLE_SOLID = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"8\"/></svg>`;\nconst FUNNEL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z\"/></svg>`;\nconst ARROW_DOWN_TRAY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3\"/></svg>`;\nconst ARROW_UP_TRAY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5\"/></svg>`;\nconst CHAT_BUBBLE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z\"/></svg>`;\nconst ROCKET_LAUNCH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.59 14.37a6 6 0 0 1-5.84 7.38v-4.8m5.84-2.58a14.98 14.98 0 0 0 6.16-12.12A14.98 14.98 0 0 0 9.631 8.41m5.96 5.96a14.926 14.926 0 0 1-5.841 2.58m-.119-8.54a6 6 0 0 0-7.381 5.84h4.8m2.581-5.84a14.927 14.927 0 0 0-2.58 5.84m2.699 2.7c-.103.021-.207.041-.311.06a15.09 15.09 0 0 1-2.448-2.448 14.9 14.9 0 0 1 .06-.312m-2.24 2.39a4.493 4.493 0 0 0-1.757 4.306 4.493 4.493 0 0 0 4.306-1.758M16.5 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z\"/></svg>`;\nconst KEY = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 5.25a3 3 0 0 1 3 3m3 0a6 6 0 0 1-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1 1 21.75 8.25Z\"/></svg>`;\nconst FIRE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.362 5.214A8.252 8.252 0 0 1 12 21 8.25 8.25 0 0 1 6.038 7.047 8.287 8.287 0 0 0 9 9.601a8.983 8.983 0 0 1 3.361-6.867 8.21 8.21 0 0 0 3 2.48Z\"/><path d=\"M12 18a3.75 3.75 0 0 0 .495-7.468 5.99 5.99 0 0 0-1.925 3.547 5.975 5.975 0 0 1-2.133-1.001A3.75 3.75 0 0 0 12 18Z\"/></svg>`;\nconst COG_6_TOOTH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z\"/><path d=\"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\nconst ENVELOPE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21.75 6.75v10.5a2.25 2.25 0 0 1-2.25 2.25h-15a2.25 2.25 0 0 1-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25m19.5 0v.243a2.25 2.25 0 0 1-1.07 1.916l-7.5 4.615a2.25 2.25 0 0 1-2.36 0L3.32 8.91a2.25 2.25 0 0 1-1.07-1.916V6.75\"/></svg>`;\nconst LIGHT_BULB = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 18v-5.25m0 0a6.01 6.01 0 0 0 1.5-.189m-1.5.189a6.01 6.01 0 0 1-1.5-.189m3.75 7.478a12.06 12.06 0 0 1-4.5 0m3.75 2.383a14.406 14.406 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18\"/></svg>`;\nconst USERS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 19.128a9.38 9.38 0 0 0 2.625.372 9.337 9.337 0 0 0 4.121-.952 4.125 4.125 0 0 0-7.533-2.493M15 19.128v-.003c0-1.113-.285-2.16-.786-3.07M15 19.128v.106A12.318 12.318 0 0 1 8.624 21c-2.331 0-4.512-.645-6.374-1.766l-.001-.109a6.375 6.375 0 0 1 11.964-3.07M12 6.375a3.375 3.375 0 1 1-6.75 0 3.375 3.375 0 0 1 6.75 0Zm8.25 2.25a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z\"/></svg>`;\nconst HEART = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z\"/></svg>`;\nconst HOME = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25\"/></svg>`;\nconst CHART_BAR = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z\"/></svg>`;\nconst SCISSORS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.848 8.25l1.536.887M7.848 8.25a3 3 0 1 1-5.196-3 3 3 0 0 1 5.196 3Zm1.536.887a2.165 2.165 0 0 1 1.083 1.839c.005.351.054.695.14 1.024M9.384 9.137l2.077 1.199M7.848 15.75l1.536-.887m-1.536.887a3 3 0 1 1-5.196 3 3 3 0 0 1 5.196-3Zm1.536-.887a2.165 2.165 0 0 0 1.083-1.838c.005-.352.054-.695.14-1.025m-1.223 2.863 2.077-1.199m0-3.328a4.323 4.323 0 0 1 2.068-1.379l5.325-1.628a4.5 4.5 0 0 1 2.48-.044l.803.215-7.794 4.5m-2.882-.375a4.33 4.33 0 0 0 .655 3.736m2.227-3.361 7.794 4.5-.802.215a4.5 4.5 0 0 1-2.48-.043l-5.326-1.629a4.324 4.324 0 0 1-2.068-1.379m0 0-2.077 1.199\"/></svg>`;\nconst USER = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.75 6a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0ZM4.501 20.118a7.5 7.5 0 0 1 14.998 0A17.933 17.933 0 0 1 12 21.75c-2.676 0-5.216-.584-7.499-1.632Z\"/></svg>`;\nconst CLIPBOARD = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184\"/></svg>`;\nconst BUG_ANT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082\"/></svg>`;\nconst CALENDAR_DAYS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 0 1 2.25-2.25h13.5A2.25 2.25 0 0 1 21 7.5v11.25m-18 0A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75m-18 0v-7.5A2.25 2.25 0 0 1 5.25 9h13.5A2.25 2.25 0 0 1 21 11.25v7.5\"/></svg>`;\nconst SPARKLES = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z\"/></svg>`;\nconst BELL_ALERT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0M3.124 7.5A8.969 8.969 0 0 1 5.292 3m13.416 0a8.969 8.969 0 0 1 2.168 4.5\"/></svg>`;\nconst CUBE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9\"/></svg>`;\nconst BANKNOTES = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 18.75a60.07 60.07 0 0 1 15.797 2.101c.727.198 1.453-.342 1.453-1.096V18.75M3.75 4.5v.75A.75.75 0 0 1 3 6h-.75m0 0v-.375c0-.621.504-1.125 1.125-1.125H20.25M2.25 6v9m18-10.5v.75c0 .414.336.75.75.75h.75m-1.5-1.5h.375c.621 0 1.125.504 1.125 1.125v9.75c0 .621-.504 1.125-1.125 1.125h-.375m1.5-1.5H21a.75.75 0 0 0-.75.75v.75m0 0H3.75m0 0h-.375a1.125 1.125 0 0 1-1.125-1.125V15m1.5 1.5v-.75A.75.75 0 0 0 3 15h-.75M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/></svg>`;\nconst CAKE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M12 8.25v-1.5m0 1.5c-1.355 0-2.697.056-4.024.166C6.845 8.51 6 9.473 6 10.608v2.513m6-4.871c1.355 0 2.697.056 4.024.166C17.155 8.51 18 9.473 18 10.608v2.513M15 8.25v-1.5m-6 1.5v-1.5m12 9.75-1.5.75a3.354 3.354 0 0 1-3 0 3.354 3.354 0 0 0-3 0 3.354 3.354 0 0 1-3 0 3.354 3.354 0 0 0-3 0 3.354 3.354 0 0 1-3 0L3 16.5m15-3.379a48.474 48.474 0 0 0-6-.371c-2.032 0-4.034.126-6 .371m12 0c.39.049.777.102 1.163.16 1.07.16 1.837 1.094 1.837 2.175v5.169c0 .621-.504 1.125-1.125 1.125H4.125A1.125 1.125 0 0 1 3 20.625v-5.17c0-1.08.768-2.014 1.837-2.174A47.78 47.78 0 0 1 6 13.12\"/></svg>`;\nconst PAINT_BRUSH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9.53 16.122a3 3 0 0 0-5.78 1.128 2.25 2.25 0 0 1-2.4 2.245 4.5 4.5 0 0 0 8.4-2.245c0-.399-.078-.78-.22-1.128Zm0 0a15.998 15.998 0 0 0 3.388-1.62m-5.043-.025a15.994 15.994 0 0 1 1.622-3.395m3.42 3.42a15.995 15.995 0 0 0 4.764-4.648l3.876-5.814a1.151 1.151 0 0 0-1.597-1.597L14.146 6.32a15.996 15.996 0 0 0-4.649 4.763m3.42 3.42a6.776 6.776 0 0 0-3.42-3.42\"/></svg>`;\nconst GIFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H4.5a1.5 1.5 0 0 1-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z\"/></svg>`;\nconst FOLDER = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z\"/></svg>`;\nconst DOCUMENT_TEXT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z\"/></svg>`;\nconst BELL = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0\"/></svg>`;\nconst LINK = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244\"/></svg>`;\nconst PHONE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z\"/></svg>`;\nconst COMPUTER_DESKTOP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25\"/></svg>`;\nconst MUSICAL_NOTE = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m9 9 10.5-3m0 6.553v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 1 1-.99-3.467l2.31-.66a2.25 2.25 0 0 0 1.632-2.163Zm0 0V2.25L9 5.25v10.303m0 0v3.75a2.25 2.25 0 0 1-1.632 2.163l-1.32.377a1.803 1.803 0 0 1-.99-3.467l2.31-.66A2.25 2.25 0 0 0 9 15.553Z\"/></svg>`;\nconst TABLE_CELLS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.375 19.5h17.25m-17.25 0a1.125 1.125 0 0 1-1.125-1.125M3.375 19.5h7.5c.621 0 1.125-.504 1.125-1.125m-9.75 0V5.625m0 12.75v-1.5c0-.621.504-1.125 1.125-1.125m18.375 2.625V5.625m0 12.75c0 .621-.504 1.125-1.125 1.125m1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125m0 3.75h-7.5A1.125 1.125 0 0 1 12 18.375m9.75-12.75c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125m19.5 0v1.5c0 .621-.504 1.125-1.125 1.125M2.25 5.625v1.5c0 .621.504 1.125 1.125 1.125m0 0h17.25m-17.25 0h7.5c.621 0 1.125.504 1.125 1.125M3.375 8.25c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125m17.25-3.75h-7.5c-.621 0-1.125.504-1.125 1.125m8.625-1.125c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125M12 10.875v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 10.875c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125M13.125 12h7.5m-7.5 0c-.621 0-1.125.504-1.125 1.125M20.625 12c.621 0 1.125.504 1.125 1.125v1.5c0 .621-.504 1.125-1.125 1.125m-17.25 0h7.5M12 14.625v-1.5m0 1.5c0 .621-.504 1.125-1.125 1.125M12 14.625c0 .621.504 1.125 1.125 1.125m-2.25 0c.621 0 1.125.504 1.125 1.125m0 1.5v-1.5m0 0c0-.621.504-1.125 1.125-1.125m8.625 1.125c0 .621-.504 1.125-1.125 1.125h-7.5\"/></svg>`;\nconst MINUS = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/></svg>`;\nconst LOCK_CLOSED = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M16.5 10.5V6.75a4.5 4.5 0 1 0-9 0v3.75m-.75 11.25h10.5a2.25 2.25 0 0 0 2.25-2.25v-6.75a2.25 2.25 0 0 0-2.25-2.25H6.75a2.25 2.25 0 0 0-2.25 2.25v6.75a2.25 2.25 0 0 0 2.25 2.25Z\"/></svg>`;\nconst ARROWS_POINTING_OUT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15\"/></svg>`;\nconst EYE_SLASH = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88\"/></svg>`;\nconst MAP_PIN = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z\"/><path d=\"M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0Z\"/></svg>`;\nconst ARROWS_RIGHT_LEFT = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5\"/></svg>`;\nconst PAPER_CLIP = /*html*/ `<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13\"/></svg>`;\n/** Small lookup for named access from template-string paths. */\nconst ICONS = {\n 'info-circle': INFO_CIRCLE_SOLID,\n 'check-circle': CHECK_CIRCLE_SOLID,\n 'exclamation-triangle': EXCLAMATION_TRIANGLE_SOLID,\n 'x-circle': X_CIRCLE_SOLID,\n 'x-mark': X_MARK,\n 'chevron-down': CHEVRON_DOWN,\n 'chevron-up': CHEVRON_UP,\n 'chevron-right': CHEVRON_RIGHT,\n 'chevron-left': CHEVRON_LEFT,\n 'check': CHECK,\n 'magnifying-glass': MAGNIFYING_GLASS,\n 'search': MAGNIFYING_GLASS, // common alias (table toolbar, inputs)\n 'bars-3': BARS_3,\n 'photo': PHOTO,\n 'ellipsis-horizontal': ELLIPSIS_HORIZONTAL,\n 'trash': TRASH,\n 'plus': PLUS,\n 'camera': CAMERA,\n 'pencil': PENCIL,\n 'arrow-up': ARROW_UP,\n 'arrow-down': ARROW_DOWN,\n 'arrow-right': ARROW_RIGHT,\n 'arrow-trending-up': ARROW_TRENDING_UP,\n 'arrow-trending-down': ARROW_TRENDING_DOWN,\n 'star': STAR_SOLID,\n 'star-outline': STAR_OUTLINE,\n 'circle': CIRCLE_SOLID,\n 'paper-clip': PAPER_CLIP,\n 'paper-airplane': PAPER_AIRPLANE_SOLID,\n 'arrow-down-tray': ARROW_DOWN_TRAY,\n 'arrow-up-tray': ARROW_UP_TRAY,\n 'chat-bubble': CHAT_BUBBLE,\n 'rocket-launch': ROCKET_LAUNCH,\n 'key': KEY,\n 'arrows-right-left': ARROWS_RIGHT_LEFT,\n 'arrows-pointing-out': ARROWS_POINTING_OUT,\n 'eye-slash': EYE_SLASH,\n 'map-pin': MAP_PIN,\n 'fire': FIRE,\n 'cog-6-tooth': COG_6_TOOTH,\n 'settings': COG_6_TOOTH, // common alias\n 'envelope': ENVELOPE,\n 'light-bulb': LIGHT_BULB,\n 'users': USERS,\n 'heart': HEART,\n 'home': HOME,\n 'chart-bar': CHART_BAR,\n 'scissors': SCISSORS,\n 'user': USER,\n 'clipboard': CLIPBOARD,\n 'bug-ant': BUG_ANT,\n 'calendar-days': CALENDAR_DAYS,\n 'sparkles': SPARKLES,\n 'bell-alert': BELL_ALERT,\n 'cube': CUBE,\n 'banknotes': BANKNOTES,\n 'cake': CAKE,\n 'paint-brush': PAINT_BRUSH,\n 'gift': GIFT,\n 'folder': FOLDER,\n 'document-text': DOCUMENT_TEXT,\n 'bell': BELL,\n 'link': LINK,\n 'phone': PHONE,\n 'computer-desktop': COMPUTER_DESKTOP,\n 'musical-note': MUSICAL_NOTE,\n 'lock-closed': LOCK_CLOSED,\n 'table-cells': TABLE_CELLS,\n 'minus': MINUS,\n};\n\nexport { ARROWS_POINTING_OUT, ARROWS_RIGHT_LEFT, ARROW_DOWN, ARROW_DOWN_TRAY, ARROW_RIGHT, ARROW_TRENDING_DOWN, ARROW_TRENDING_UP, ARROW_UP, ARROW_UP_TRAY, BANKNOTES, BARS_3, BELL, BELL_ALERT, BUG_ANT, CAKE, CALENDAR_DAYS, CAMERA, CHART_BAR, CHAT_BUBBLE, CHECK, CHECK_CIRCLE_SOLID, CHEVRON_DOWN, CHEVRON_LEFT, CHEVRON_RIGHT, CHEVRON_UP, CIRCLE_SOLID, CLIPBOARD, COG_6_TOOTH, COMPUTER_DESKTOP, CUBE, DOCUMENT_TEXT, ELLIPSIS_HORIZONTAL, ENVELOPE, EXCLAMATION_TRIANGLE_SOLID, EYE_SLASH, FIRE, FOLDER, FUNNEL, GIFT, HEART, HOME, ICONS, INFO_CIRCLE_SOLID, KEY, LIGHT_BULB, LINK, LOCK_CLOSED, MAGNIFYING_GLASS, MAP_PIN, MINUS, MUSICAL_NOTE, PAINT_BRUSH, PAPER_AIRPLANE_SOLID, PAPER_CLIP, PENCIL, PHONE, PHOTO, PLUS, ROCKET_LAUNCH, SCISSORS, SPARKLES, STAR_OUTLINE, STAR_SOLID, TABLE_CELLS, TRASH, USER, USERS, X_CIRCLE_SOLID, X_MARK };\n//# sourceMappingURL=index.js.map\n","import { html, unsafeHTML } from 'snice';\nimport { ICONS } from './icons/index.js';\n\n/**\n * Reflect only actual string values across a string attribute boundary.\n * Public component properties remain typed JavaScript inputs, so hostile or\n * accidental object values must not be coerced by calling user code.\n */\nconst strictStringAttributeConverter = {\n toAttribute(value) {\n return typeof value === 'string' ? value : null;\n }\n};\n/**\n * Classify a consumer-supplied icon value.\n *\n * This is the single source of truth for icon resolution. `renderIcon` uses it\n * for declarative rendering; components that build DOM imperatively (nav) use\n * it directly, so both paths agree on what counts as an image, a registry\n * name, or plain text.\n */\nfunction classifyIcon(icon) {\n if (icon.startsWith('img://'))\n return { kind: 'img', value: icon.slice(6) };\n if (icon.startsWith('text://'))\n return { kind: 'text', value: icon.slice(7) };\n // URL-shaped, or a filename with an image extension (an optional query\n // string is allowed so cache-busted paths still resolve as images).\n const isUrl = /^(https?:\\/\\/|\\/|\\.\\/|\\.\\.\\/|data:)/.test(icon);\n const isImageFile = /^[^:]*\\w\\.(svg|png|jpe?g|jfif|pjp|gif|webp|avif|jxl|ico|cur|bmp|tiff?|heic|heif|apng)(\\?.*)?$/i.test(icon);\n if (isUrl || isImageFile)\n return { kind: 'img', value: icon };\n if (ICONS[icon])\n return { kind: 'registry', value: icon };\n return { kind: 'text', value: icon };\n}\n/**\n * Detects icon type and returns appropriate template\n *\n * Scheme overrides:\n * - img://path -> forces <img> element\n * - text://content -> forces text content\n *\n * Auto-detection (when no scheme):\n * - URLs (http://, https://, /, ./, ../, data:) -> <img>\n * - Image extensions (svg, png, jpg, jpeg, jfif, pjp, gif, webp, avif, jxl,\n * ico, cur, bmp, tif, tiff, heic, heif, apng) -> <img>\n * - Everything else -> span with text content (emoji, plain text)\n *\n * ⚠️ \"home\" or \"settings\" renders as PLAIN TEXT, not a Material icon.\n * For Material Symbols, use the icon slot instead:\n * <span slot=\"icon\" class=\"material-symbols-outlined\">home</span>\n *\n * Examples:\n * - \"/path/icon.svg\" -> <img>\n * - \"icon.png\" -> <img>\n * - \"img://filename\" -> <img> (forced)\n * - \"🏠\" -> <span> text (emoji)\n * - \"home\" -> <span> text (plain text, NOT a Material icon)\n * - \"text:///not/a/path\" -> <span> text (forced)\n */\nfunction renderIcon(icon, className = 'icon') {\n if (!icon)\n return html ``;\n const { kind, value } = classifyIcon(icon);\n if (kind === 'img') {\n return html `<img class=\"${className}\" src=\"${value}\" alt=\"\" part=\"icon\" />`;\n }\n // Built-in SVG registry (components/icons) — named icons resolve here\n // BEFORE the font-ligature fallback. Without this, names like 'search'\n // render as literal text unless an external icon font is loaded.\n if (kind === 'registry') {\n return html `<span class=\"${className}\" part=\"icon\">${unsafeHTML(ICONS[value])}</span>`;\n }\n // Default: text content (emoji, font icon ligature names)\n // All content is escaped - no HTML injection possible\n // Detect ligature icon names (lowercase words with underscores, e.g. \"search\", \"check_circle\")\n // vs emoji/other text — apply --snice-icon-font (defaults to Material Symbols Outlined)\n if (/^[a-z][a-z0-9_]*$/.test(value)) {\n return html `<span class=\"${className} snice-icon-ligature\" style=\"font-family:var(--snice-icon-font,'Material Symbols Outlined'),sans-serif\" part=\"icon\">${value}</span>`;\n }\n return html `<span class=\"${className}\" part=\"icon\">${value}</span>`;\n}\n/**\n * Fallback accent hues (muted/business tones). Used when CSS vars haven't\n * been applied (test and non-browser environments) or when the 8 accent tokens have\n * been stripped. Keep in lockstep with `theme.css` --snice-color-accent-1..8.\n */\nconst FALLBACK_ACCENTS = [\n 'hsl(214 55% 48%)', 'hsl(27 62% 50%)', 'hsl(160 40% 40%)', 'hsl(275 32% 52%)',\n 'hsl(42 62% 48%)', 'hsl(340 42% 55%)', 'hsl(110 32% 42%)', 'hsl(195 45% 46%)',\n];\n/**\n * Returns the 8-slot accent palette resolved against the current document's\n * CSS variables, with in-process fallback for non-browser contexts. Data-vis\n * components call this instead of hard-coding color arrays so themes flow\n * through automatically.\n *\n * The returned strings are safe for `canvas.fillStyle`, `svg fill`, or\n * inline `style` — they're either a `hsl(...)` literal or whatever the\n * consumer set as `--snice-color-accent-N`.\n */\nfunction getAccentPalette(root) {\n if (typeof getComputedStyle !== 'function')\n return FALLBACK_ACCENTS;\n const target = root ?? document.documentElement;\n const cs = getComputedStyle(target);\n return FALLBACK_ACCENTS.map((fallback, i) => {\n const v = cs.getPropertyValue(`--snice-color-accent-${i + 1}`).trim();\n return v || fallback;\n });\n}\n/**\n * Parses a CSS color string into sRGB components in [0,1]. Handles `rgb()`,\n * `rgba()`, `hsl()`, `hsla()`, and `#hex`. Returns null if unparseable.\n */\nfunction parseCssColor(value) {\n if (!value)\n return null;\n const s = value.trim();\n // Hex: #RGB #RRGGBB #RGBA #RRGGBBAA\n if (s[0] === '#') {\n const hex = s.slice(1);\n const norm = hex.length === 3 || hex.length === 4\n ? hex.slice(0, 3).split('').map(c => c + c).join('')\n : hex.slice(0, 6);\n if (norm.length !== 6)\n return null;\n const n = parseInt(norm, 16);\n return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255];\n }\n // rgb() / rgba()\n const rgbMatch = s.match(/^rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)/i);\n if (rgbMatch) {\n return [+rgbMatch[1] / 255, +rgbMatch[2] / 255, +rgbMatch[3] / 255];\n }\n // hsl() / hsla() — quick conversion via an offscreen element for accuracy\n // (skip manual HSL→RGB to keep this helper small; browsers will resolve\n // any hsl() via getComputedStyle on the element anyway).\n if (/^hsla?\\(/i.test(s) && typeof document !== 'undefined') {\n const probe = document.createElement('span');\n probe.style.color = s;\n document.body.appendChild(probe);\n const resolved = getComputedStyle(probe).color;\n probe.remove();\n return parseCssColor(resolved);\n }\n return null;\n}\n/**\n * Relative luminance per WCAG 2.x, input in sRGB [0,1].\n */\nfunction luminance(rgb) {\n const lin = rgb.map(c => c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4));\n return 0.2126 * lin[0] + 0.7152 * lin[1] + 0.0722 * lin[2];\n}\n/**\n * Picks a readable text color for the given `bg`, choosing between the\n * theme's existing text tokens. Light bg → `--snice-color-text` (dark text);\n * dark bg → `--snice-color-text-inverse` (light text). Falls back to inverse\n * for unparseable bg (safe default for colored fills).\n *\n * Used by badge/chip (and anything else pairing a colored fill with a label)\n * so the text stays legible regardless of theme — without hardcoding #fff.\n */\nfunction pickContrastColor(bg) {\n const rgb = parseCssColor(bg);\n if (!rgb)\n return 'var(--snice-color-text-inverse)';\n // Threshold 0.55 keeps saturated blues/greens (luminance ~0.2) using the\n // inverse (light) text, and pastels/lightened fills (> 0.55) using the\n // main text token (dark).\n return luminance(rgb) > 0.55\n ? 'var(--snice-color-text)'\n : 'var(--snice-color-text-inverse)';\n}\nconst themeListeners = new Set();\nlet themeObserver = null;\nfunction onThemeChange(fn) {\n if (typeof document === 'undefined')\n return () => { };\n themeListeners.add(fn);\n if (!themeObserver) {\n themeObserver = new MutationObserver(() => {\n for (const listener of themeListeners) {\n try {\n listener();\n }\n catch { }\n }\n });\n themeObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-theme', 'class', 'data-theme-variant'],\n });\n }\n return () => {\n themeListeners.delete(fn);\n if (themeListeners.size === 0 && themeObserver) {\n themeObserver.disconnect();\n themeObserver = null;\n }\n };\n}\n\nexport { FALLBACK_ACCENTS, classifyIcon, getAccentPalette, onThemeChange, pickContrastColor, renderIcon, strictStringAttributeConverter };\n//# sourceMappingURL=utils.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, context, watch } from 'snice';\nimport { ICONS } from '../icons/index.js';\nimport { classifyIcon } from '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);overflow:hidden;box-sizing:border-box}.nav{display:flex;gap:var(--snice-spacing-md,1rem)}.nav--horizontal{flex-direction:row;align-items:center}.nav--vertical{flex-direction:column;align-items:stretch}.nav__item{position:relative}.nav__link{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);color:var(--snice-color-text-secondary,rgb(107 114 128));text-decoration:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);box-sizing:border-box;min-width:0;position:relative;transition:background-color var(--snice-transition-fast, 150ms) var(--snice-ease-out, ease),color var(--snice-transition-fast, 150ms) var(--snice-ease-out, ease)}.nav__link:hover{background-color:var(--snice-color-surface-container-low,rgb(243 244 246));color:var(--snice-color-text,rgb(23 23 23))}.nav__link:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.nav__link--active{background-color:var(--snice-color-surface-container,rgb(243 244 246));color:var(--snice-color-primary-hover,rgb(96 165 250))}.nav__link--active:hover{background-color:var(--snice-color-surface-container-low,rgb(249 250 251));color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link,:host([active-style=text]) .nav__link--active,:host([active-style=text]) .nav__link--active:hover,:host([active-style=text]) .nav__link:hover{background-color:transparent}:host([active-style=text]) .nav__link:hover{color:color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 60%,transparent)}:host([active-style=text]) .nav__link--active{color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link--active:hover{color:var(--snice-color-primary-hover,rgb(29 78 216))}:host([active-style=text]) .nav__link::after{content:'';position:absolute;background:var(--snice-color-primary,rgb(37 99 235));left:50%;right:50%;bottom:2px;height:2px;border-radius:1px;transition:left 220ms var(--snice-ease-out, ease),right 220ms var(--snice-ease-out, ease),background-color 220ms var(--snice-ease-out, ease);pointer-events:none}:host([active-style=text]) .nav__link:hover::after{left:20%;right:20%}:host([active-style=text]) .nav__link--active::after{left:0;right:0}:host([active-style=text][orientation=vertical]) .nav__link::after{left:0;right:auto;bottom:20%;top:20%;width:2px;height:auto;transform:scaleY(0);transform-origin:center;transition:transform 220ms var(--snice-ease-out, ease),background-color 220ms var(--snice-ease-out, ease)}:host([active-style=text][orientation=vertical]) .nav__link:hover::after{transform:scaleY(.6)}:host([active-style=text][orientation=vertical]) .nav__link--active::after{top:15%;bottom:15%;transform:scaleY(1)}.nav__icon{display:inline-flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.125rem)}.nav__icon svg{width:1.125rem;height:1.125rem;display:block}.nav__icon img{width:1.25em;height:1.25em;object-fit:contain}.nav__label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav--hierarchical.nav--vertical{flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical.nav--horizontal{flex-direction:row;align-items:flex-start;gap:var(--snice-spacing-lg,1.5rem)}.nav--hierarchical .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--hierarchical .nav__submenu{list-style:none;margin:0;padding:0 0 0 var(--snice-spacing-xl,2rem);display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.nav--hierarchical .nav__submenu .nav__item{margin:0}.nav--hierarchical .nav__submenu .nav__link{font-size:var(--snice-font-size-sm, .875rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem)}.nav--grouped.nav--vertical{flex-direction:column;gap:var(--snice-spacing-lg,1.5rem)}.nav--grouped.nav--horizontal{flex-direction:row;align-items:flex-start;gap:var(--snice-spacing-xl,2rem)}.nav--grouped .nav__group{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.nav--grouped .nav__group-label{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-tertiary,rgb(115 115 115));text-transform:uppercase;letter-spacing:var(--snice-tracking-wide, .03em);padding:0 var(--snice-spacing-md,1rem);margin-bottom:var(--snice-spacing-2xs,.25rem)}.nav--vertical .nav__item,.nav--vertical .nav__link{width:100%}@media (max-width:768px){.nav--horizontal{flex-wrap:wrap}.nav__label{font-size:var(--snice-font-size-sm, .875rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nconst NAME_KEY = 'data-placard-name';\nconst GROUP_KEY = 'data-group';\nlet SniceNav = (() => {\n let _classDecorators = [element('snice-nav')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _orientation_decorators;\n let _orientation_initializers = [];\n let _orientation_extraInitializers = [];\n let _activeStyle_decorators;\n let _activeStyle_initializers = [];\n let _activeStyle_extraInitializers = [];\n let _isTopLevel_decorators;\n let _isTopLevel_initializers = [];\n let _isTopLevel_extraInitializers = [];\n let _handleContext_decorators;\n let _handleChange_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.variant = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _variant_initializers, 'flat'));\n this.orientation = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _orientation_initializers, 'horizontal'));\n this.activeStyle = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _activeStyle_initializers, 'fill'));\n this.isTopLevel = (__runInitializers(this, _activeStyle_extraInitializers), __runInitializers(this, _isTopLevel_initializers, false));\n this.placards = (__runInitializers(this, _isTopLevel_extraInitializers), []);\n this.currentRoute = '';\n this.routeParams = {};\n this.appContext = null;\n this.wrapper = null;\n this.navElement = null;\n this.lastVariant = null;\n this.lastOrientation = null;\n this.renderToken = 0;\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _variant_decorators = [property()];\n _orientation_decorators = [property()];\n _activeStyle_decorators = [property({ attribute: 'active-style' })];\n _isTopLevel_decorators = [property({ type: Boolean, attribute: 'is-top-level' })];\n _handleContext_decorators = [context()];\n _handleChange_decorators = [watch('variant', 'orientation', 'activeStyle')];\n __esDecorate(this, null, _handleContext_decorators, { kind: \"method\", name: \"handleContext\", static: false, private: false, access: { has: obj => \"handleContext\" in obj, get: obj => obj.handleContext }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleChange_decorators, { kind: \"method\", name: \"handleChange\", static: false, private: false, access: { has: obj => \"handleChange\" in obj, get: obj => obj.handleChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _variant_decorators, { kind: \"field\", name: \"variant\", static: false, private: false, access: { has: obj => \"variant\" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);\n __esDecorate(null, null, _orientation_decorators, { kind: \"field\", name: \"orientation\", static: false, private: false, access: { has: obj => \"orientation\" in obj, get: obj => obj.orientation, set: (obj, value) => { obj.orientation = value; } }, metadata: _metadata }, _orientation_initializers, _orientation_extraInitializers);\n __esDecorate(null, null, _activeStyle_decorators, { kind: \"field\", name: \"activeStyle\", static: false, private: false, access: { has: obj => \"activeStyle\" in obj, get: obj => obj.activeStyle, set: (obj, value) => { obj.activeStyle = value; } }, metadata: _metadata }, _activeStyle_initializers, _activeStyle_extraInitializers);\n __esDecorate(null, null, _isTopLevel_decorators, { kind: \"field\", name: \"isTopLevel\", static: false, private: false, access: { has: obj => \"isTopLevel\" in obj, get: obj => obj.isTopLevel, set: (obj, value) => { obj.isTopLevel = value; } }, metadata: _metadata }, _isTopLevel_initializers, _isTopLevel_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n connectedCallback() {\n this.attachShadow({ mode: 'open' });\n this.applyStyles();\n this.render();\n }\n handleContext(ctx) {\n if (this.isTopLevel) {\n this.update(ctx.navigation.placards, ctx.application, ctx.navigation.route, ctx.navigation.params);\n }\n }\n handleChange() {\n this.render();\n }\n applyStyles() {\n if (!this.shadowRoot)\n return;\n if (this.shadowRoot.querySelector('style'))\n return;\n const style = document.createElement('style');\n style.textContent = cssContent;\n this.shadowRoot.appendChild(style);\n }\n render() {\n if (!this.shadowRoot)\n return;\n const token = ++this.renderToken;\n this.applyStyles();\n // Structural change: variant or orientation flipped, or first render.\n const structuralChange = this.lastVariant !== this.variant ||\n this.lastOrientation !== this.orientation ||\n !this.wrapper ||\n !this.wrapper.isConnected;\n if (structuralChange) {\n // Full rebuild: remove any prior content (except style + slot).\n // Leaving the slot in place avoids a reflow of light-DOM children.\n const existingSlot = this.shadowRoot.querySelector('slot');\n for (const child of Array.from(this.shadowRoot.children)) {\n if (child.tagName !== 'STYLE' && child !== existingSlot)\n child.remove();\n }\n this.wrapper = document.createElement('div');\n this.wrapper.className = 'nav-content';\n this.wrapper.setAttribute('part', 'base');\n this.navElement = null;\n this.shadowRoot.insertBefore(this.wrapper, existingSlot ?? null);\n if (!existingSlot) {\n this.shadowRoot.appendChild(document.createElement('slot'));\n }\n this.lastVariant = this.variant;\n this.lastOrientation = this.orientation;\n }\n const candidates = this.placards\n .filter(p => !p.parent && p.show !== false)\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n // Render items for every candidate whose guard is true OR pending; skip\n // only when the guard is synchronously false. Pending items render hidden\n // and flip visible (or remove themselves) once the guard resolves — no\n // re-render, just a single attribute flip on the existing node.\n const rendered = [];\n for (const p of candidates) {\n const result = this.isVisible(p);\n if (result === false)\n continue;\n if (result === true) {\n rendered.push({ placard: p });\n }\n else if (result && typeof result.then === 'function') {\n rendered.push({ placard: p, pending: result });\n }\n }\n if (rendered.length === 0) {\n if (this.navElement) {\n this.navElement.remove();\n this.navElement = null;\n }\n }\n else {\n if (!this.navElement || !this.navElement.isConnected) {\n this.navElement = this.createNavElement();\n this.wrapper.appendChild(this.navElement);\n }\n else {\n this.navElement.className = `nav nav--${this.variant} nav--${this.orientation}`;\n }\n const placards = rendered.map(r => r.placard);\n if (this.variant === 'grouped') {\n this.diffGrouped(this.navElement, placards);\n }\n else if (this.variant === 'hierarchical') {\n this.diffHierarchical(this.navElement, placards);\n }\n else {\n this.diffFlat(this.navElement, placards);\n }\n // Now that every rendered placard has a real DOM node, flip hidden on\n // items whose guards are pending and wire up resolution handlers.\n for (const { placard, pending } of rendered) {\n const node = this.itemNodeFor(placard);\n if (!node)\n continue;\n if (pending) {\n this.markHidden(node, true);\n pending.then(ok => {\n if (token !== this.renderToken)\n return;\n if (ok)\n this.markHidden(node, false);\n else\n node.remove();\n }).catch(() => node.remove());\n }\n else {\n this.markHidden(node, false);\n }\n }\n }\n }\n /** Returns the top-level .nav__item or .nav__group element for a placard. */\n itemNodeFor(placard) {\n if (!this.navElement)\n return null;\n if (this.variant === 'hierarchical') {\n return this.navElement.querySelector(`:scope > .nav__group[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n if (this.variant === 'grouped') {\n const group = placard.group || 'default';\n return this.navElement.querySelector(`:scope > .nav__group[${GROUP_KEY}=\"${CSS.escape(group)}\"] > .nav__item[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n return this.navElement.querySelector(`:scope > .nav__item[${NAME_KEY}=\"${CSS.escape(placard.name)}\"]`);\n }\n markHidden(el, hidden) {\n if (hidden) {\n if (!el.hasAttribute('hidden'))\n el.setAttribute('hidden', '');\n if (el.getAttribute('aria-hidden') !== 'true')\n el.setAttribute('aria-hidden', 'true');\n }\n else {\n if (el.hasAttribute('hidden'))\n el.removeAttribute('hidden');\n if (el.hasAttribute('aria-hidden'))\n el.removeAttribute('aria-hidden');\n }\n }\n createNavElement() {\n const nav = document.createElement('nav');\n nav.className = `nav nav--${this.variant} nav--${this.orientation}`;\n nav.setAttribute('role', 'navigation');\n nav.setAttribute('part', 'nav');\n return nav;\n }\n // ─── Diff: flat ────────────────────────────────────────────────────────\n diffFlat(nav, items) {\n const existing = this.indexByName(nav.children, el => el.classList.contains('nav__item'));\n const wanted = items.map(p => this.reuseOrCreateItem(existing, p));\n this.reorderChildren(nav, wanted);\n this.removeUnused(nav, existing, wanted);\n }\n // ─── Diff: hierarchical ────────────────────────────────────────────────\n diffHierarchical(nav, items) {\n const existing = this.indexByName(nav.children, el => el.classList.contains('nav__group'));\n const wanted = [];\n for (const placard of items) {\n let group = existing.get(placard.name);\n if (!group) {\n group = document.createElement('div');\n group.setAttribute(NAME_KEY, placard.name);\n }\n group.className = this.isActive(placard)\n ? 'nav__group nav__group--active'\n : 'nav__group';\n // Reuse or create the parent link as the first child.\n let parentLink = group.firstElementChild;\n if (!parentLink || parentLink.tagName !== 'A' || !parentLink.classList.contains('nav__link')) {\n parentLink = this.buildNavLink(placard);\n if (group.firstChild)\n group.insertBefore(parentLink, group.firstChild);\n else\n group.appendChild(parentLink);\n }\n else {\n this.updateNavLink(parentLink, placard);\n }\n // Children of this hierarchical item\n const children = this.placards\n .filter(p => p.parent === placard.name && p.show !== false && this.isVisible(p) === true)\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n let submenu = group.querySelector(':scope > .nav__submenu');\n if (children.length === 0) {\n if (submenu)\n submenu.remove();\n }\n else {\n if (!submenu) {\n submenu = document.createElement('ul');\n submenu.className = 'nav__submenu';\n group.appendChild(submenu);\n }\n const subExisting = this.indexByName(submenu.children, el => el.classList.contains('nav__item'));\n const subWanted = [];\n for (const child of children) {\n let li = subExisting.get(child.name);\n if (!li) {\n li = document.createElement('li');\n li.setAttribute(NAME_KEY, child.name);\n }\n li.className = this.isActive(child) ? 'nav__item nav__item--active' : 'nav__item';\n let link = li.firstElementChild;\n if (!link || link.tagName !== 'A') {\n link = this.buildNavLink(child);\n li.innerHTML = '';\n li.appendChild(link);\n }\n else {\n this.updateNavLink(link, child);\n }\n subWanted.push(li);\n }\n this.reorderChildren(submenu, subWanted);\n this.removeUnused(submenu, subExisting, subWanted);\n }\n wanted.push(group);\n }\n this.reorderChildren(nav, wanted);\n this.removeUnused(nav, existing, wanted);\n }\n // ─── Diff: grouped ─────────────────────────────────────────────────────\n diffGrouped(nav, items) {\n const groups = new Map();\n for (const placard of items) {\n const key = placard.group || 'default';\n if (!groups.has(key))\n groups.set(key, []);\n groups.get(key).push(placard);\n }\n // Index existing groups by their data-group attribute\n const existing = new Map();\n for (const child of Array.from(nav.children)) {\n if (!(child instanceof HTMLElement))\n continue;\n if (!child.classList.contains('nav__group'))\n continue;\n const key = child.getAttribute(GROUP_KEY);\n if (key)\n existing.set(key, child);\n }\n const wanted = [];\n for (const [groupName, groupItems] of groups) {\n const sorted = [...groupItems].sort((a, b) => (a.order || 0) - (b.order || 0));\n let groupEl = existing.get(groupName);\n if (!groupEl) {\n groupEl = document.createElement('div');\n groupEl.className = 'nav__group';\n groupEl.setAttribute(GROUP_KEY, groupName);\n }\n // Label (only for non-default groups)\n let label = groupEl.querySelector(':scope > .nav__group-label');\n if (groupName === 'default') {\n if (label)\n label.remove();\n }\n else {\n if (!label) {\n label = document.createElement('div');\n label.className = 'nav__group-label';\n groupEl.insertBefore(label, groupEl.firstChild);\n }\n if (label.textContent !== groupName)\n label.textContent = groupName;\n }\n const itemExisting = this.indexByName(groupEl.children, el => el.classList.contains('nav__item'));\n const itemWanted = [];\n for (const placard of sorted) {\n itemWanted.push(this.reuseOrCreateItem(itemExisting, placard));\n }\n // Keep label first, then items\n const labelFirst = label ? [label] : [];\n this.reorderChildren(groupEl, [...labelFirst, ...itemWanted]);\n this.removeUnused(groupEl, itemExisting, itemWanted);\n wanted.push(groupEl);\n }\n this.reorderChildrenByElement(nav, wanted, el => el instanceof HTMLElement && el.classList.contains('nav__group'));\n for (const [key, el] of existing) {\n if (!groups.has(key))\n el.remove();\n }\n }\n // ─── Helpers ───────────────────────────────────────────────────────────\n indexByName(children, pred) {\n const out = new Map();\n for (const child of Array.from(children)) {\n if (!(child instanceof HTMLElement))\n continue;\n if (!pred(child))\n continue;\n const name = child.getAttribute(NAME_KEY);\n if (name)\n out.set(name, child);\n }\n return out;\n }\n reuseOrCreateItem(existing, placard) {\n let item = existing.get(placard.name);\n if (!item) {\n item = document.createElement('div');\n item.setAttribute(NAME_KEY, placard.name);\n const link = this.buildNavLink(placard);\n item.appendChild(link);\n }\n else {\n const link = item.firstElementChild;\n if (link && link.tagName === 'A') {\n this.updateNavLink(link, placard);\n }\n else {\n item.innerHTML = '';\n item.appendChild(this.buildNavLink(placard));\n }\n }\n item.className = this.isActive(placard) ? 'nav__item nav__item--active' : 'nav__item';\n return item;\n }\n reorderChildren(parent, wanted) {\n let expected = parent.firstChild;\n for (const node of wanted) {\n if (expected === node) {\n expected = node.nextSibling;\n }\n else {\n parent.insertBefore(node, expected);\n }\n }\n }\n /** Like reorderChildren but only considers children matching `filter`. */\n reorderChildrenByElement(parent, wanted, filter) {\n let idx = 0;\n let cur = parent.firstChild;\n while (cur && idx < wanted.length) {\n if (!filter(cur)) {\n cur = cur.nextSibling;\n continue;\n }\n const target = wanted[idx];\n if (cur !== target)\n parent.insertBefore(target, cur);\n else\n cur = cur.nextSibling;\n idx++;\n }\n for (; idx < wanted.length; idx++)\n parent.appendChild(wanted[idx]);\n }\n removeUnused(parent, existing, wanted) {\n const wantedSet = new Set(wanted);\n for (const el of existing.values()) {\n if (!wantedSet.has(el) && el.parentNode === parent)\n el.remove();\n }\n }\n // ─── Link update in place ──────────────────────────────────────────────\n updateNavLink(a, placard) {\n const wantHref = placard.href || '';\n if (a.getAttribute('href') !== wantHref)\n a.setAttribute('href', wantHref);\n const wantClass = this.isActive(placard) ? 'nav__link nav__link--active' : 'nav__link';\n if (a.className !== wantClass)\n a.className = wantClass;\n if (this.isActive(placard)) {\n if (a.getAttribute('aria-current') !== 'page')\n a.setAttribute('aria-current', 'page');\n }\n else if (a.hasAttribute('aria-current')) {\n a.removeAttribute('aria-current');\n }\n this.syncAttr(a, 'aria-label', placard.description);\n this.syncAttr(a, 'title', placard.tooltip || placard.description);\n if (placard.hotkeys && placard.hotkeys.length > 0) {\n this.syncAttr(a, 'data-hotkeys', placard.hotkeys.join(','));\n }\n else {\n a.removeAttribute('data-hotkeys');\n }\n this.syncAttr(a, 'data-help-url', placard.helpUrl);\n if (placard.searchTerms && placard.searchTerms.length > 0) {\n this.syncAttr(a, 'data-search-terms', placard.searchTerms.join(','));\n }\n else {\n a.removeAttribute('data-search-terms');\n }\n if (placard.attributes) {\n for (const [key, value] of Object.entries(placard.attributes)) {\n this.syncAttr(a, `data-${key}`, String(value));\n }\n }\n // Icon\n const iconMeta = placard.icon ? classifyIcon(placard.icon) : null;\n const existingIcon = a.querySelector(':scope > .nav__icon');\n if (!iconMeta) {\n if (existingIcon)\n existingIcon.remove();\n }\n else {\n const needsReplace = !existingIcon ||\n (iconMeta.kind === 'img' && existingIcon.tagName !== 'IMG') ||\n (iconMeta.kind !== 'img' && existingIcon.tagName !== 'SPAN');\n if (needsReplace) {\n if (existingIcon)\n existingIcon.remove();\n const iconEl = this.buildIcon(iconMeta);\n a.insertBefore(iconEl, a.firstChild);\n }\n else {\n if (iconMeta.kind === 'img') {\n const img = existingIcon;\n if (img.src !== iconMeta.value)\n img.src = iconMeta.value;\n }\n else if (iconMeta.kind === 'registry') {\n if (existingIcon.dataset.icon !== iconMeta.value) {\n existingIcon.innerHTML = ICONS[iconMeta.value];\n existingIcon.dataset.icon = iconMeta.value;\n }\n }\n else {\n if (existingIcon.textContent !== iconMeta.value) {\n delete existingIcon.dataset.icon;\n existingIcon.textContent = iconMeta.value;\n }\n }\n }\n }\n // Label\n let labelSpan = a.querySelector(':scope > .nav__label');\n if (!labelSpan) {\n labelSpan = document.createElement('span');\n labelSpan.className = 'nav__label';\n a.appendChild(labelSpan);\n }\n if (labelSpan.textContent !== placard.title)\n labelSpan.textContent = placard.title;\n }\n syncAttr(el, name, value) {\n if (value === undefined || value === null || value === '') {\n el.removeAttribute(name);\n return;\n }\n if (el.getAttribute(name) !== value)\n el.setAttribute(name, value);\n }\n buildIcon(meta) {\n if (meta.kind === 'img') {\n const img = document.createElement('img');\n img.className = 'nav__icon';\n img.src = meta.value;\n img.alt = '';\n img.setAttribute('part', 'icon');\n return img;\n }\n const span = document.createElement('span');\n span.className = 'nav__icon';\n span.setAttribute('part', 'icon');\n if (meta.kind === 'registry') {\n // Registry values are our own static SVG constants — safe to inject.\n span.innerHTML = ICONS[meta.value];\n span.dataset.icon = meta.value;\n }\n else {\n span.textContent = meta.value;\n }\n return span;\n }\n buildNavLink(placard) {\n const a = document.createElement('a');\n a.setAttribute('part', 'link');\n this.updateNavLink(a, placard);\n return a;\n }\n isActive(placard) {\n const route = this.currentRoute.startsWith('/')\n ? this.currentRoute.slice(1)\n : this.currentRoute;\n return route === placard.name ||\n route.startsWith(`${placard.name}/`) ||\n (placard.name === 'home' && (this.currentRoute === '/' || this.currentRoute === ''));\n }\n isVisible(placard) {\n if (!placard.visibleOn)\n return true;\n if (!this.appContext)\n return true;\n const guards = Array.isArray(placard.visibleOn) ? placard.visibleOn : [placard.visibleOn];\n const results = guards.map(g => g(this.appContext, this.routeParams));\n if (results.every(r => r === true))\n return true;\n if (results.some(r => r === false))\n return false;\n return Promise.all(results).then(rs => rs.every(Boolean)).catch(() => false);\n }\n update(placards, appContext, currentRoute, routeParams) {\n this.placards = [...placards];\n if (appContext) {\n this.appContext = appContext;\n }\n if (currentRoute !== undefined) {\n this.currentRoute = currentRoute;\n }\n if (routeParams) {\n this.routeParams = routeParams;\n }\n this.render();\n }\n });\n return _classThis;\n})();\n\nexport { SniceNav };\n//# sourceMappingURL=snice-nav.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, query, property, render, styles, ready, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{display:grid;grid-template-rows:auto 1fr auto;min-height:inherit}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,2rem);background:var(--snice-color-surface,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));box-shadow:var(--snice-shadow-xs,0 1px 2px 0 rgb(0 0 0 / .05))}.brand h1{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-lg, 1.5rem);color:var(--snice-color-text,rgb(23 23 23));font-weight:var(--snice-font-weight-semibold,600)}.nav{display:flex;gap:var(--snice-spacing-lg,2rem)}.nav ::slotted(a){text-decoration:none;color:var(--snice-color-text-secondary,rgb(82 82 82));font-weight:var(--snice-font-weight-medium,500);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,4px);transition:all var(--snice-transition-fast, .15s) ease}.nav ::slotted(a:hover){color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-surface-container-low,rgb(250 250 250))}.nav ::slotted(a.active){color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-primary-subtle,rgb(239 246 255));font-weight:var(--snice-font-weight-semibold,600)}.main{padding:var(--snice-spacing-lg,2rem);background:var(--snice-color-surface-container-low,rgb(250 250 250));overflow-y:auto;position:relative;z-index:0}.footer{padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,2rem);background:var(--snice-color-surface,rgb(255 255 255));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));text-align:center;color:var(--snice-color-text-secondary,rgb(82 82 82));font-size:var(--snice-font-size-sm, .875rem)}.footer p{margin:0}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}.footer--empty{display:none}\";\n\nlet SniceLayout = (() => {\n let _classDecorators = [element('snice-layout')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _hasFooterContent_decorators;\n let _hasFooterContent_initializers = [];\n let _hasFooterContent_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _wireFooterState_decorators;\n let _onReady_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _navElement_decorators = [query('snice-nav')];\n _hasFooterContent_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _wireFooterState_decorators = [ready()];\n _onReady_decorators = [ready()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireFooterState_decorators, { kind: \"method\", name: \"wireFooterState\", static: false, private: false, access: { has: obj => \"wireFooterState\" in obj, get: obj => obj.wireFooterState }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _onReady_decorators, { kind: \"method\", name: \"onReady\", static: false, private: false, access: { has: obj => \"onReady\" in obj, get: obj => obj.onReady }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _hasFooterContent_decorators, { kind: \"field\", name: \"hasFooterContent\", static: false, private: false, access: { has: obj => \"hasFooterContent\" in obj, get: obj => obj.hasFooterContent, set: (obj, value) => { obj.hasFooterContent = value; } }, metadata: _metadata }, _hasFooterContent_initializers, _hasFooterContent_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\" part=\"base\">\n <header class=\"header\" part=\"header\">\n <div class=\"brand\" part=\"brand\">\n <slot name=\"brand\">\n <h1>App</h1>\n </slot>\n </div>\n <snice-nav class=\"nav\" variant=\"flat\" orientation=\"horizontal\"></snice-nav>\n </header>\n\n <main class=\"main\" part=\"main\">\n <slot name=\"page\"></slot>\n </main>\n\n <footer class=\"footer${this.hasFooterContent ? '' : ' footer--empty'}\" part=\"footer\">\n <slot name=\"footer\">\n </slot>\n </footer>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n wireFooterState() {\n this.syncFooterState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncFooterState());\n }\n syncFooterState() {\n this.hasFooterContent = !!this.querySelector('[slot=\"footer\"]');\n }\n onReady() {\n // Update nav if we already have placards\n if (this.placards.length > 0) {\n this.updateNav();\n }\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n // Update navigation - only if shadow DOM exists\n if (this.shadowRoot) {\n this.updateNav(appContext, routeParams);\n }\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n constructor() {\n super(...arguments);\n this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.placards = (__runInitializers(this, _navElement_extraInitializers), []);\n this.currentRoute = '';\n this.hasFooterContent = __runInitializers(this, _hasFooterContent_initializers, false);\n __runInitializers(this, _hasFooterContent_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayout };\n//# sourceMappingURL=snice-layout.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{display:grid;grid-template-columns:1fr 1fr;min-height:inherit;height:100%;background:var(--snice-color-surface,rgb(255 255 255))}:host([panel-position=start]) .layout{grid-template-areas:\\\"panel form\\\"}:host([panel-position=start]) .form-side{grid-area:form}.form-side{display:flex;align-items:center;justify-content:center;padding:var(--snice-spacing-xl,2rem)}.form-inner{width:100%;max-width:var(--snice-layout-auth-width,24rem);display:flex;flex-direction:column;gap:var(--snice-spacing-lg,1.5rem)}.brand{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23))}.brand:not(:has(::slotted(*))){display:block}.footer{font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82))}.panel{display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--snice-layout-auth-panel-bg,var(--snice-color-surface-container,hsl(0 0% 95%)));border-left:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}:host([panel-position=start]) .panel{grid-area:panel;border-left:none;border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.panel ::slotted(img),.panel ::slotted(picture),.panel ::slotted(video){width:100%;height:100%;object-fit:cover}@media (max-width:768px){.layout{grid-template-columns:1fr;grid-template-areas:\\\"form\\\"}.panel{display:none}.form-side{padding:var(--snice-spacing-lg,1.5rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\n/**\n * Split authentication page: the form on one side, brand imagery on the other.\n *\n * The brand panel is decorative. Below the breakpoint it steps aside and the\n * form takes the full width, which is what sign-in pages do everywhere.\n */\nlet SniceLayoutAuthSplit = (() => {\n let _classDecorators = [element('snice-layout-auth-split')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _panelPosition_decorators;\n let _panelPosition_initializers = [];\n let _panelPosition_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _panelPosition_decorators = [property({ attribute: 'panel-position' })];\n _contained_decorators = [property({ type: Boolean })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _panelPosition_decorators, { kind: \"field\", name: \"panelPosition\", static: false, private: false, access: { has: obj => \"panelPosition\" in obj, get: obj => obj.panelPosition, set: (obj, value) => { obj.panelPosition = value; } }, metadata: _metadata }, _panelPosition_initializers, _panelPosition_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <section class=\"form-side\" part=\"form\">\n <div class=\"form-inner\">\n <div class=\"brand\" part=\"brand\">\n <slot name=\"brand\"></slot>\n </div>\n\n <div class=\"form-body\" part=\"page\">\n <slot name=\"page\"></slot>\n </div>\n\n <div class=\"footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </section>\n\n <aside class=\"panel\" part=\"panel\" aria-hidden=\"true\">\n <slot name=\"panel\"></slot>\n </aside>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n /** Which side the brand panel sits on. */\n this.panelPosition = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _panelPosition_initializers, 'end'));\n /** Size to the parent element instead of filling the screen. */\n this.contained = (__runInitializers(this, _panelPosition_extraInitializers), __runInitializers(this, _contained_initializers, false));\n __runInitializers(this, _contained_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutAuthSplit };\n//# sourceMappingURL=snice-layout-auth-split.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, query, property, render, styles, ready, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{min-height:inherit;display:grid;grid-template-rows:auto 1fr auto}.container{max-width:68rem;margin:0 auto;padding:0 var(--snice-spacing-lg,1.5rem)}.header{background:var(--snice-color-surface,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));padding:var(--snice-spacing-md,1rem) 0}.header .container{display:flex;align-items:center;justify-content:space-between}.brand h1{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-lg, 1.5rem);font-weight:var(--snice-font-weight-bold,700);color:var(--snice-color-text,rgb(23 23 23))}.nav{display:flex;gap:var(--snice-spacing-lg,2rem)}.nav ::slotted(a){text-decoration:none;color:var(--snice-color-text-secondary,rgb(82 82 82));font-weight:var(--snice-font-weight-medium,500);transition:color var(--snice-transition-fast, .15s) ease}.nav ::slotted(a:hover){color:var(--snice-color-primary,rgb(37 99 235))}.main{background:var(--snice-color-surface,rgb(255 255 255));padding:var(--snice-spacing-xl,3rem) 0}.content-area{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--snice-spacing-2xl,3rem);align-items:start}.content-area--with-sidebar{grid-template-columns:minmax(0,1fr) 18rem}.article{max-width:var(--snice-layout-measure,65ch);margin-inline:auto;width:100%}.content-area--with-sidebar .article{justify-self:end;margin-inline:0}.sidebar{background:var(--snice-color-surface-container-high,rgb(252 251 249));border:1px solid var(--snice-color-border-subtle,transparent);border-radius:var(--snice-border-radius-lg,.5rem);padding:var(--snice-spacing-lg,1.5rem);position:sticky;top:var(--snice-spacing-lg,1.5rem)}.sidebar--empty{display:none}.footer{background:var(--snice-color-surface-container,hsl(0 0% 95%));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));padding:var(--snice-spacing-xl,3rem) 0}.article ::slotted(h1){font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-2xl, 2.25rem);font-weight:var(--snice-font-weight-bold,700);color:var(--snice-color-text,rgb(23 23 23));line-height:var(--snice-line-height-tight, 1.25);margin-bottom:var(--snice-spacing-lg,2rem)}.article ::slotted(h2){font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-xl, 1.875rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));margin-top:var(--snice-spacing-xl,3rem);margin-bottom:var(--snice-spacing-md,1rem)}.article ::slotted(p){font-size:var(--snice-font-size-base, 1rem);line-height:var(--snice-line-height-relaxed, 1.625);color:var(--snice-color-text,rgb(23 23 23));margin-bottom:var(--snice-spacing-md,1rem)}@media (max-width:968px){.content-area,.content-area--with-sidebar{grid-template-columns:1fr;gap:var(--snice-spacing-xl,3rem)}.content-area--with-sidebar .article{justify-self:stretch;margin-inline:auto}.sidebar{position:static}}@media (max-width:768px){.header .container{flex-direction:column;gap:var(--snice-spacing-md,1rem)}.main{padding:var(--snice-spacing-lg,2rem) 0}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutBlog = (() => {\n let _classDecorators = [element('snice-layout-blog')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _useNav_decorators;\n let _useNav_initializers = [];\n let _useNav_extraInitializers = [];\n let _hasSidebar_decorators;\n let _hasSidebar_initializers = [];\n let _hasSidebar_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _wireSlotDetection_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.useNav = (__runInitializers(this, _navElement_extraInitializers), __runInitializers(this, _useNav_initializers, false));\n this.hasSidebar = (__runInitializers(this, _useNav_extraInitializers), __runInitializers(this, _hasSidebar_initializers, false));\n this.placards = (__runInitializers(this, _hasSidebar_extraInitializers), []);\n this.currentRoute = '';\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _navElement_decorators = [query('snice-nav')];\n _useNav_decorators = [property({ type: Boolean, attribute: 'use-nav' })];\n _hasSidebar_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _wireSlotDetection_decorators = [ready()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireSlotDetection_decorators, { kind: \"method\", name: \"wireSlotDetection\", static: false, private: false, access: { has: obj => \"wireSlotDetection\" in obj, get: obj => obj.wireSlotDetection }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _useNav_decorators, { kind: \"field\", name: \"useNav\", static: false, private: false, access: { has: obj => \"useNav\" in obj, get: obj => obj.useNav, set: (obj, value) => { obj.useNav = value; } }, metadata: _metadata }, _useNav_initializers, _useNav_extraInitializers);\n __esDecorate(null, null, _hasSidebar_decorators, { kind: \"field\", name: \"hasSidebar\", static: false, private: false, access: { has: obj => \"hasSidebar\" in obj, get: obj => obj.hasSidebar, set: (obj, value) => { obj.hasSidebar = value; } }, metadata: _metadata }, _hasSidebar_initializers, _hasSidebar_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header\">\n <div class=\"container\">\n <div class=\"brand\">\n <slot name=\"brand\">\n <h1>Blog</h1>\n </slot>\n </div>\n <if ${this.useNav}>\n <snice-nav class=\"nav\" variant=\"flat\" orientation=\"horizontal\"></snice-nav>\n </if>\n <if ${!this.useNav}>\n <nav class=\"nav\">\n <slot name=\"nav\"></slot>\n </nav>\n </if>\n </div>\n </header>\n\n <main class=\"main\">\n <div class=\"container\">\n <div class=\"content-area${this.hasSidebar ? ' content-area--with-sidebar' : ''}\">\n <article class=\"article\">\n <slot name=\"page\"></slot>\n </article>\n\n <aside class=\"sidebar${this.hasSidebar ? '' : ' sidebar--empty'}\">\n <slot name=\"sidebar\"></slot>\n </aside>\n </div>\n </div>\n </main>\n\n <footer class=\"footer\">\n <div class=\"container\">\n <slot name=\"footer\"></slot>\n </div>\n </footer>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n wireSlotDetection() {\n this.syncSlotState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncSlotState());\n }\n syncSlotState() {\n this.hasSidebar = !!this.querySelector('[slot=\"sidebar\"]');\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n this.useNav = true;\n this.updateNav(appContext, routeParams);\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutBlog };\n//# sourceMappingURL=snice-layout-blog.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, render, ready, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{min-height:inherit;display:grid;grid-template-rows:auto 1fr auto;background:var(--snice-color-surface,rgb(255 255 255))}.header{background:var(--snice-color-surface-container-high,rgb(252 251 249));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,1.5rem)}.main{padding:var(--snice-spacing-lg,2rem)}.grid{display:grid;grid-template-columns:repeat(3,1fr)}:host([columns=\\\"1\\\"]) .grid{grid-template-columns:1fr}:host([columns=\\\"2\\\"]) .grid{grid-template-columns:repeat(2,1fr)}:host([columns=\\\"3\\\"]) .grid{grid-template-columns:repeat(3,1fr)}:host([columns=\\\"4\\\"]) .grid{grid-template-columns:repeat(4,1fr)}:host([columns=\\\"6\\\"]) .grid{grid-template-columns:repeat(6,1fr)}:host([gap=sm]) .grid{gap:var(--snice-spacing-sm,.75rem)}:host(:not([gap])) .grid,:host([gap=md]) .grid{gap:var(--snice-spacing-md,1rem)}:host([gap=lg]) .grid{gap:var(--snice-spacing-lg,2rem)}:host([gap=xl]) .grid{gap:var(--snice-spacing-xl,3rem)}.footer{background:var(--snice-color-surface-container,hsl(0 0% 95%));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,1.5rem)}.footer--empty,.header--empty{display:none}@media (max-width:1200px){:host([columns=\\\"6\\\"]) .grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:992px){:host([columns=\\\"4\\\"]) .grid,:host([columns=\\\"6\\\"]) .grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){:host(:not([columns])) .grid,:host([columns=\\\"3\\\"]) .grid,:host([columns=\\\"4\\\"]) .grid,:host([columns=\\\"6\\\"]) .grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.grid{grid-template-columns:1fr!important}.main{padding:var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutCard = (() => {\n let _classDecorators = [element('snice-layout-card')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _columns_decorators;\n let _columns_initializers = [];\n let _columns_extraInitializers = [];\n let _gap_decorators;\n let _gap_initializers = [];\n let _gap_extraInitializers = [];\n let _hasFooter_decorators;\n let _hasFooter_initializers = [];\n let _hasFooter_extraInitializers = [];\n let _hasHeader_decorators;\n let _hasHeader_initializers = [];\n let _hasHeader_extraInitializers = [];\n let _render_decorators;\n let _wireSlotDetection_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _columns_decorators = [property({})];\n _gap_decorators = [property({})];\n _hasFooter_decorators = [property({ attribute: false })];\n _hasHeader_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _wireSlotDetection_decorators = [ready()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireSlotDetection_decorators, { kind: \"method\", name: \"wireSlotDetection\", static: false, private: false, access: { has: obj => \"wireSlotDetection\" in obj, get: obj => obj.wireSlotDetection }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _columns_decorators, { kind: \"field\", name: \"columns\", static: false, private: false, access: { has: obj => \"columns\" in obj, get: obj => obj.columns, set: (obj, value) => { obj.columns = value; } }, metadata: _metadata }, _columns_initializers, _columns_extraInitializers);\n __esDecorate(null, null, _gap_decorators, { kind: \"field\", name: \"gap\", static: false, private: false, access: { has: obj => \"gap\" in obj, get: obj => obj.gap, set: (obj, value) => { obj.gap = value; } }, metadata: _metadata }, _gap_initializers, _gap_extraInitializers);\n __esDecorate(null, null, _hasFooter_decorators, { kind: \"field\", name: \"hasFooter\", static: false, private: false, access: { has: obj => \"hasFooter\" in obj, get: obj => obj.hasFooter, set: (obj, value) => { obj.hasFooter = value; } }, metadata: _metadata }, _hasFooter_initializers, _hasFooter_extraInitializers);\n __esDecorate(null, null, _hasHeader_decorators, { kind: \"field\", name: \"hasHeader\", static: false, private: false, access: { has: obj => \"hasHeader\" in obj, get: obj => obj.hasHeader, set: (obj, value) => { obj.hasHeader = value; } }, metadata: _metadata }, _hasHeader_initializers, _hasHeader_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header${this.hasHeader ? '' : ' header--empty'}\">\n <slot name=\"header\"></slot>\n </header>\n\n <main class=\"main\">\n <div class=\"grid\">\n <slot name=\"page\"></slot>\n </div>\n </main>\n\n <footer class=\"footer${this.hasFooter ? '' : ' footer--empty'}\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n `;\n }\n wireSlotDetection() {\n this.syncSlotState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncSlotState());\n }\n syncSlotState() {\n this.hasFooter = !!this.querySelector('[slot=\"footer\"]');\n this.hasHeader = !!this.querySelector('[slot=\"header\"]');\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.columns = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _columns_initializers, '3'));\n this.gap = (__runInitializers(this, _columns_extraInitializers), __runInitializers(this, _gap_initializers, 'md'));\n this.hasFooter = (__runInitializers(this, _gap_extraInitializers), __runInitializers(this, _hasFooter_initializers, false));\n this.hasHeader = (__runInitializers(this, _hasFooter_extraInitializers), __runInitializers(this, _hasHeader_initializers, false));\n __runInitializers(this, _hasHeader_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutCard };\n//# sourceMappingURL=snice-layout-card.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, render, ready, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{min-height:inherit;display:flex;align-items:center;justify-content:center;padding:var(--snice-spacing-xl,2rem);background:var(--snice-color-surface,rgb(255 255 255))}.stack{display:flex;flex-direction:column;align-items:center;gap:var(--snice-spacing-lg,1.5rem);width:100%}.brand{display:flex;justify-content:center;font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23))}.footer{display:flex;justify-content:center;gap:var(--snice-spacing-md,1rem);font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82))}.brand--empty,.footer--empty{display:none}.container{width:100%;max-width:24rem;background:var(--snice-color-surface-container-highest,hsl(0 0% 100%));border:1px solid var(--snice-color-border-subtle,transparent);border-radius:var(--snice-border-radius-lg,.5rem);box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));padding:var(--snice-spacing-xl,2rem)}:host([width=sm]) .container{max-width:20rem}:host([width=md]) .container{max-width:24rem}:host([width=lg]) .container{max-width:32rem}:host([width=xl]) .container{max-width:38rem}@media (max-width:480px){.layout{padding:var(--snice-spacing-md,1rem)}.container{padding:var(--snice-spacing-lg,1.5rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutCentered = (() => {\n let _classDecorators = [element('snice-layout-centered')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _width_decorators;\n let _width_initializers = [];\n let _width_extraInitializers = [];\n let _hasBrand_decorators;\n let _hasBrand_initializers = [];\n let _hasBrand_extraInitializers = [];\n let _hasFooter_decorators;\n let _hasFooter_initializers = [];\n let _hasFooter_extraInitializers = [];\n let _render_decorators;\n let _wireSlotDetection_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _width_decorators = [property({})];\n _hasBrand_decorators = [property({ attribute: false })];\n _hasFooter_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _wireSlotDetection_decorators = [ready()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireSlotDetection_decorators, { kind: \"method\", name: \"wireSlotDetection\", static: false, private: false, access: { has: obj => \"wireSlotDetection\" in obj, get: obj => obj.wireSlotDetection }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _width_decorators, { kind: \"field\", name: \"width\", static: false, private: false, access: { has: obj => \"width\" in obj, get: obj => obj.width, set: (obj, value) => { obj.width = value; } }, metadata: _metadata }, _width_initializers, _width_extraInitializers);\n __esDecorate(null, null, _hasBrand_decorators, { kind: \"field\", name: \"hasBrand\", static: false, private: false, access: { has: obj => \"hasBrand\" in obj, get: obj => obj.hasBrand, set: (obj, value) => { obj.hasBrand = value; } }, metadata: _metadata }, _hasBrand_initializers, _hasBrand_extraInitializers);\n __esDecorate(null, null, _hasFooter_decorators, { kind: \"field\", name: \"hasFooter\", static: false, private: false, access: { has: obj => \"hasFooter\" in obj, get: obj => obj.hasFooter, set: (obj, value) => { obj.hasFooter = value; } }, metadata: _metadata }, _hasFooter_initializers, _hasFooter_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <div class=\"stack\">\n <div class=\"brand${this.hasBrand ? '' : ' brand--empty'}\">\n <slot name=\"brand\"></slot>\n </div>\n\n <div class=\"container\">\n <slot name=\"page\"></slot>\n </div>\n\n <div class=\"footer${this.hasFooter ? '' : ' footer--empty'}\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n `;\n }\n wireSlotDetection() {\n this.syncSlotState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncSlotState());\n }\n syncSlotState() {\n this.hasBrand = !!this.querySelector('[slot=\"brand\"]');\n this.hasFooter = !!this.querySelector('[slot=\"footer\"]');\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.width = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _width_initializers, 'md'));\n this.hasBrand = (__runInitializers(this, _width_extraInitializers), __runInitializers(this, _hasBrand_initializers, false));\n this.hasFooter = (__runInitializers(this, _hasBrand_extraInitializers), __runInitializers(this, _hasFooter_initializers, false));\n __runInitializers(this, _hasFooter_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutCentered };\n//# sourceMappingURL=snice-layout-centered.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, query, render, styles, dispatch, watch, unsafeHTML, html, css } from 'snice';\nimport { renderIcon } from '../utils.js';\nimport { ELLIPSIS_HORIZONTAL } from '../icons/index.js';\n\nvar cssContent = \":host{display:block;--breadcrumb-font-size:0.875rem;--breadcrumb-spacing:0.5rem;--breadcrumb-color:var(--snice-color-text-secondary, rgb(82 82 82));--breadcrumb-hover-color:var(--snice-color-primary, rgb(37 99 235));--breadcrumb-active-color:var(--snice-color-text, rgb(23 23 23));--breadcrumb-separator-color:var(--snice-color-text-tertiary, rgb(163 163 163))}case,default,if,when{display:contents}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:var(--breadcrumb-font-size);line-height:1.5}.breadcrumb-item{display:flex;align-items:center;color:var(--breadcrumb-color)}.breadcrumb-link{color:inherit;text-decoration:none;transition:color .2s;cursor:pointer;outline:0;border-radius:var(--snice-border-radius-sm,.125rem);padding:.125rem .25rem;margin:-.125rem -.25rem;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-link:hover{color:var(--breadcrumb-hover-color);text-decoration:underline}.breadcrumb-link:focus-visible{box-shadow:0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.breadcrumb-text{padding:2px 4px;margin:-2px -4px;display:inline-flex;align-items:center;gap:.375rem}.breadcrumb-icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.1em;width:1.2em;height:1.2em;line-height:1}.breadcrumb-icon svg{width:1.2em;height:1.2em}.breadcrumb-icon img{width:1.2em;height:1.2em;object-fit:contain}.breadcrumb-icon-image{width:1.2em;height:1.2em;object-fit:contain;vertical-align:middle}[hidden]{display:none!important}.breadcrumb-item--active{color:var(--breadcrumb-active-color);font-weight:var(--snice-font-weight-medium,500)}.breadcrumb-item--active .breadcrumb-link{cursor:default;pointer-events:none}.breadcrumb-separator{margin:0 var(--breadcrumb-spacing);color:var(--breadcrumb-separator-color);user-select:none}.breadcrumb-ellipsis{display:flex;align-items:center;padding:2px 4px;margin:-2px -4px;cursor:pointer;color:var(--breadcrumb-color);background:0 0;border:none;font:inherit;border-radius:var(--snice-border-radius-sm,.125rem);transition:background .2s}.breadcrumb-ellipsis:hover{background:var(--snice-color-surface-hover,rgb(0 0 0 / .05))}.breadcrumb-ellipsis:focus-visible{box-shadow:0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline:0}:host([size=small]){--breadcrumb-font-size:0.75rem;--breadcrumb-spacing:0.375rem}:host([size=large]){--breadcrumb-font-size:1rem;--breadcrumb-spacing:0.625rem}.breadcrumb--collapsed .breadcrumb-item--hidden{display:none}@media (max-width:640px){.breadcrumb{font-size:calc(var(--breadcrumb-font-size) * .9)}}.breadcrumb-ellipsis-icon{display:flex}.breadcrumb-ellipsis-icon svg{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceBreadcrumbs = (() => {\n let _classDecorators = [element('snice-breadcrumbs')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _items_decorators;\n let _items_initializers = [];\n let _items_extraInitializers = [];\n let _separator_decorators;\n let _separator_initializers = [];\n let _separator_extraInitializers = [];\n let _size_decorators;\n let _size_initializers = [];\n let _size_extraInitializers = [];\n let _maxItems_decorators;\n let _maxItems_initializers = [];\n let _maxItems_extraInitializers = [];\n let _breadcrumbElement_decorators;\n let _breadcrumbElement_initializers = [];\n let _breadcrumbElement_extraInitializers = [];\n let _collapsed_decorators;\n let _collapsed_initializers = [];\n let _collapsed_extraInitializers = [];\n let _renderTrigger_decorators;\n let _renderTrigger_initializers = [];\n let _renderTrigger_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _emitBreadcrumbClick_decorators;\n let _updateBreadcrumb_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _items_decorators = [property({ type: Array, attribute: false })];\n _separator_decorators = [property({})];\n _size_decorators = [property({})];\n _maxItems_decorators = [property({ type: Number, attribute: 'max-items' })];\n _breadcrumbElement_decorators = [query('.breadcrumb')];\n _collapsed_decorators = [property({ type: Boolean })];\n _renderTrigger_decorators = [property({ type: Number, attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _emitBreadcrumbClick_decorators = [dispatch('breadcrumb-click', { bubbles: true, composed: true })];\n _updateBreadcrumb_decorators = [watch('items', 'separator', 'maxItems')];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitBreadcrumbClick_decorators, { kind: \"method\", name: \"emitBreadcrumbClick\", static: false, private: false, access: { has: obj => \"emitBreadcrumbClick\" in obj, get: obj => obj.emitBreadcrumbClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _updateBreadcrumb_decorators, { kind: \"method\", name: \"updateBreadcrumb\", static: false, private: false, access: { has: obj => \"updateBreadcrumb\" in obj, get: obj => obj.updateBreadcrumb }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _items_decorators, { kind: \"field\", name: \"items\", static: false, private: false, access: { has: obj => \"items\" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);\n __esDecorate(null, null, _separator_decorators, { kind: \"field\", name: \"separator\", static: false, private: false, access: { has: obj => \"separator\" in obj, get: obj => obj.separator, set: (obj, value) => { obj.separator = value; } }, metadata: _metadata }, _separator_initializers, _separator_extraInitializers);\n __esDecorate(null, null, _size_decorators, { kind: \"field\", name: \"size\", static: false, private: false, access: { has: obj => \"size\" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);\n __esDecorate(null, null, _maxItems_decorators, { kind: \"field\", name: \"maxItems\", static: false, private: false, access: { has: obj => \"maxItems\" in obj, get: obj => obj.maxItems, set: (obj, value) => { obj.maxItems = value; } }, metadata: _metadata }, _maxItems_initializers, _maxItems_extraInitializers);\n __esDecorate(null, null, _breadcrumbElement_decorators, { kind: \"field\", name: \"breadcrumbElement\", static: false, private: false, access: { has: obj => \"breadcrumbElement\" in obj, get: obj => obj.breadcrumbElement, set: (obj, value) => { obj.breadcrumbElement = value; } }, metadata: _metadata }, _breadcrumbElement_initializers, _breadcrumbElement_extraInitializers);\n __esDecorate(null, null, _collapsed_decorators, { kind: \"field\", name: \"collapsed\", static: false, private: false, access: { has: obj => \"collapsed\" in obj, get: obj => obj.collapsed, set: (obj, value) => { obj.collapsed = value; } }, metadata: _metadata }, _collapsed_initializers, _collapsed_extraInitializers);\n __esDecorate(null, null, _renderTrigger_decorators, { kind: \"field\", name: \"renderTrigger\", static: false, private: false, access: { has: obj => \"renderTrigger\" in obj, get: obj => obj.renderTrigger, set: (obj, value) => { obj.renderTrigger = value; } }, metadata: _metadata }, _renderTrigger_initializers, _renderTrigger_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n const allItems = this.getAllItems();\n const visibleItems = this.getVisibleItems(allItems);\n const hasCollapsed = this.maxItems > 0 && allItems.length > this.maxItems && this.collapsed;\n const breadcrumbClass = `breadcrumb${hasCollapsed ? ' breadcrumb--collapsed' : ''}`;\n return html /*html*/ `\n <slot style=\"display: none\" @slotchange=\"${() => this.handleSlotChange()}\"></slot>\n <nav part=\"base\" aria-label=\"Breadcrumb\" @click=\"${(e) => this.handleClick(e)}\">\n <ol part=\"list\" class=\"${breadcrumbClass}\">\n ${visibleItems.map((item, index) => {\n const isLast = index === visibleItems.length - 1;\n const isActive = item.active || isLast;\n const isHidden = hasCollapsed && index > 0 && index < visibleItems.length - 2;\n const itemClass = `breadcrumb-item${isActive ? ' breadcrumb-item--active' : ''}${isHidden ? ' breadcrumb-item--hidden' : ''}`;\n const allIndex = allItems.indexOf(item);\n const showLink = !!item.href && !isActive;\n const showActiveText = !showLink && isActive;\n const showInactiveText = !showLink && !isActive;\n return html /*html*/ `\n <li class=\"${itemClass}\">\n <if ${showLink}>\n <a part=\"link\" href=\"${item.href}\"\n class=\"breadcrumb-link\"\n data-index=\"${allIndex}\"\n tabindex=\"0\">\n ${this.renderItemIcon(item)}\n ${item.label}\n </a>\n </if>\n <if ${showActiveText}>\n <span class=\"breadcrumb-text\" aria-current=\"page\">\n ${this.renderItemIcon(item)}\n ${item.label}\n </span>\n </if>\n <if ${showInactiveText}>\n <span class=\"breadcrumb-text\">\n ${this.renderItemIcon(item)}\n ${item.label}\n </span>\n </if>\n <if ${!isLast}>\n <span part=\"separator\" class=\"breadcrumb-separator\" aria-hidden=\"true\">\n ${this.separator}\n </span>\n </if>\n </li>\n <if ${hasCollapsed && index === 0 && allItems.length > this.maxItems}>\n <li class=\"breadcrumb-item\">\n <button part=\"ellipsis\" class=\"breadcrumb-ellipsis\"\n aria-label=\"Show all breadcrumbs\"\n aria-expanded=\"false\"\n tabindex=\"0\">\n <span class=\"breadcrumb-ellipsis-icon\" aria-hidden=\"true\">${unsafeHTML(ELLIPSIS_HORIZONTAL)}</span>\n </button>\n <span class=\"breadcrumb-separator\" aria-hidden=\"true\">\n ${this.separator}\n </span>\n </li>\n </if>\n `;\n })}\n </ol>\n </nav>\n `;\n }\n styles() {\n return css `${cssContent}`;\n }\n getAllItems() {\n // Prefer slot items if available, otherwise use items property\n return this.slotItems.length > 0 ? this.slotItems : this.items;\n }\n getVisibleItems(allItems) {\n if (this.maxItems <= 0 || allItems.length <= this.maxItems || !this.collapsed) {\n return allItems;\n }\n // Show first item and last (maxItems - 1) items\n const firstItem = allItems[0];\n const lastItems = allItems.slice(-(this.maxItems - 1));\n return [firstItem, ...lastItems];\n }\n handleClick(event) {\n const target = event.target;\n // Handle ellipsis click\n if (target.closest('.breadcrumb-ellipsis')) {\n this.collapsed = false;\n // The ellipsis button disappears on expand; move focus to the first\n // newly revealed crumb so keyboard users aren't dropped to the body.\n this.rendered?.then?.(() => {\n const firstRevealed = this.shadowRoot?.querySelectorAll('.breadcrumb-link')[1];\n (firstRevealed ?? this.shadowRoot?.querySelector('.breadcrumb-link'))?.focus();\n });\n return;\n }\n // Handle breadcrumb link click\n const link = target.closest('.breadcrumb-link');\n if (link) {\n const href = link.getAttribute('href') || '';\n const idxAttr = link.getAttribute('data-index');\n const allItems = this.getAllItems();\n const index = idxAttr !== null ? parseInt(idxAttr, 10) : -1;\n const item = index >= 0 && index < allItems.length ? allItems[index] : undefined;\n const label = item?.label ?? link.textContent?.trim() ?? '';\n this.emitBreadcrumbClick({ item, index, href, label });\n }\n }\n emitBreadcrumbClick(detail) {\n return detail;\n }\n handleSlotChange() {\n const slot = this.shadowRoot?.querySelector('slot');\n if (!slot)\n return;\n const crumbs = slot.assignedElements().filter(el => el.tagName.toLowerCase() === 'snice-crumb');\n this.slotItems = crumbs.map(crumb => {\n // Check for slotted icon element\n const iconElement = crumb.querySelector('[slot=\"icon\"]');\n return {\n label: crumb.label || crumb.textContent?.trim() || '',\n href: crumb.href || undefined,\n icon: crumb.icon || undefined,\n iconImage: crumb.iconImage || undefined,\n active: crumb.active || false,\n iconNode: iconElement || undefined\n };\n });\n // Trigger re-render to display slot items by updating a property\n this.renderTrigger++;\n }\n updateBreadcrumb() {\n this.collapsed = true;\n }\n setItems(items) {\n this.items = items;\n }\n renderItemIcon(item) {\n // Slotted icon node takes precedence\n if (item.iconNode) {\n const clone = item.iconNode.cloneNode(true);\n clone.classList.add('breadcrumb-icon');\n clone.removeAttribute('slot');\n return html `${clone}`;\n }\n // iconImage takes precedence for backwards compatibility\n if (item.iconImage) {\n return renderIcon(item.iconImage, 'breadcrumb-icon');\n }\n if (item.icon) {\n return renderIcon(item.icon, 'breadcrumb-icon');\n }\n return html ``;\n }\n constructor() {\n super(...arguments);\n this.items = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _items_initializers, []));\n this.separator = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _separator_initializers, '/'));\n this.size = (__runInitializers(this, _separator_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));\n this.maxItems = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _maxItems_initializers, 0));\n this.breadcrumbElement = (__runInitializers(this, _maxItems_extraInitializers), __runInitializers(this, _breadcrumbElement_initializers, void 0));\n this.collapsed = (__runInitializers(this, _breadcrumbElement_extraInitializers), __runInitializers(this, _collapsed_initializers, true));\n this.slotItems = (__runInitializers(this, _collapsed_extraInitializers), []);\n this.renderTrigger = __runInitializers(this, _renderTrigger_initializers, 0);\n __runInitializers(this, _renderTrigger_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceBreadcrumbs };\n//# sourceMappingURL=snice-breadcrumbs.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, query, property, render, ready, styles, html, css } from 'snice';\nimport '../breadcrumbs/snice-breadcrumbs.js';\nimport '../nav/snice-nav.js';\nimport '../utils.js';\nimport '../icons/index.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif)}:host(:not([contained])){position:fixed;inset:0}:host([contained]){position:relative;min-height:0;height:100%}.layout{display:flex;flex-direction:column;min-height:100%;background:var(--snice-color-surface,rgb(255 255 255))}.header{display:flex;align-items:center;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);background:var(--snice-color-surface-container-high,rgb(252 251 249));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));position:relative;z-index:var(--snice-z-sticky,10)}.header-start h1{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));white-space:nowrap}.header-content{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--snice-spacing-md,1rem)}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:var(--snice-layout-control-size,2rem);height:var(--snice-layout-control-size,2rem);background:0 0;border:none;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:pointer;padding:var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);transition:all var(--snice-transition-fast, 150ms) ease}.sidebar-toggle:hover{background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .04)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar-toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.toolbar{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));background:var(--snice-color-surface,rgb(255 255 255))}.toolbar--hidden{display:none}.body-area{position:relative;display:flex;flex:1;overflow:hidden}.sidebar{flex-shrink:0;width:var(--snice-layout-sidebar-width,16rem);background:var(--snice-color-surface-container-low,rgb(250 250 250));border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));overflow-y:auto;overflow-x:hidden;padding-block:var(--snice-spacing-sm,0.75rem);transition:width var(--snice-transition-normal, 250ms) ease,transform var(--snice-transition-normal, 250ms) ease}.sidebar--collapsed{width:0;border-right:none}.scrim{display:none}.sidebar ::slotted(a),.sidebar ::slotted(button){display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);margin:0 var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);color:var(--snice-color-text-secondary,rgb(82 82 82));text-decoration:none;cursor:pointer;transition:background var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.sidebar ::slotted(a:hover),.sidebar ::slotted(button:hover){background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .06)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar ::slotted(a:focus-visible),.sidebar ::slotted(button:focus-visible){outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.sidebar ::slotted([aria-current]){background:var(--snice-color-primary-alpha,color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 10%,transparent));color:var(--snice-color-primary,rgb(37 99 235))}.sidebar-nav{display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-md,1rem)}.content-area{flex:1;min-width:0;display:grid;grid-template-columns:1fr;grid-template-areas:\\\"main\\\";overflow-y:auto}.content-area--railed{grid-template-columns:1fr var(--snice-layout-rail-width,18rem);grid-template-areas:\\\"main right-sidebar\\\"}.main{grid-area:main;padding:var(--snice-spacing-xl,2rem);min-width:0}.right-sidebar{grid-area:right-sidebar;background:var(--snice-color-surface-container-low,rgb(250 250 250));padding:var(--snice-spacing-lg,1.5rem);border-left:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.right-sidebar--empty{display:none}@media (max-width:1024px){.content-area--railed{grid-template-columns:1fr;grid-template-areas:\\\"main\\\" \\\"right-sidebar\\\"}.right-sidebar{border-left:none;border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}}@media (max-width:768px){.header,.toolbar{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}.sidebar{position:absolute;top:0;bottom:0;left:0;z-index:var(--snice-z-overlay,1100);width:min(80vw,18rem);transform:translateX(-105%);box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.sidebar--collapsed{width:min(80vw,18rem);border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.sidebar--mobile-open{transform:translateX(0)}.scrim--visible{display:block;position:absolute;inset:0;z-index:var(--snice-z-scrim,1000);background:rgb(0 0 0 / .4)}.main{padding:var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutDashboard = (() => {\n let _classDecorators = [element('snice-layout-dashboard')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _placards_decorators;\n let _placards_initializers = [];\n let _placards_extraInitializers = [];\n let _currentRoute_decorators;\n let _currentRoute_initializers = [];\n let _currentRoute_extraInitializers = [];\n let _collapsed_decorators;\n let _collapsed_initializers = [];\n let _collapsed_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _mobileOpen_decorators;\n let _mobileOpen_initializers = [];\n let _mobileOpen_extraInitializers = [];\n let _hasRail_decorators;\n let _hasRail_initializers = [];\n let _hasRail_extraInitializers = [];\n let _hasToolbarContent_decorators;\n let _hasToolbarContent_initializers = [];\n let _hasToolbarContent_extraInitializers = [];\n let _render_decorators;\n let _wireSlotDetection_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _navElement_decorators = [query('snice-nav')];\n _placards_decorators = [property({ type: Array })];\n _currentRoute_decorators = [property({ attribute: false })];\n _collapsed_decorators = [property({ type: Boolean })];\n _contained_decorators = [property({ type: Boolean })];\n _mobileOpen_decorators = [property({ attribute: false })];\n _hasRail_decorators = [property({ attribute: false })];\n _hasToolbarContent_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _wireSlotDetection_decorators = [ready()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireSlotDetection_decorators, { kind: \"method\", name: \"wireSlotDetection\", static: false, private: false, access: { has: obj => \"wireSlotDetection\" in obj, get: obj => obj.wireSlotDetection }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _placards_decorators, { kind: \"field\", name: \"placards\", static: false, private: false, access: { has: obj => \"placards\" in obj, get: obj => obj.placards, set: (obj, value) => { obj.placards = value; } }, metadata: _metadata }, _placards_initializers, _placards_extraInitializers);\n __esDecorate(null, null, _currentRoute_decorators, { kind: \"field\", name: \"currentRoute\", static: false, private: false, access: { has: obj => \"currentRoute\" in obj, get: obj => obj.currentRoute, set: (obj, value) => { obj.currentRoute = value; } }, metadata: _metadata }, _currentRoute_initializers, _currentRoute_extraInitializers);\n __esDecorate(null, null, _collapsed_decorators, { kind: \"field\", name: \"collapsed\", static: false, private: false, access: { has: obj => \"collapsed\" in obj, get: obj => obj.collapsed, set: (obj, value) => { obj.collapsed = value; } }, metadata: _metadata }, _collapsed_initializers, _collapsed_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, null, _mobileOpen_decorators, { kind: \"field\", name: \"mobileOpen\", static: false, private: false, access: { has: obj => \"mobileOpen\" in obj, get: obj => obj.mobileOpen, set: (obj, value) => { obj.mobileOpen = value; } }, metadata: _metadata }, _mobileOpen_initializers, _mobileOpen_extraInitializers);\n __esDecorate(null, null, _hasRail_decorators, { kind: \"field\", name: \"hasRail\", static: false, private: false, access: { has: obj => \"hasRail\" in obj, get: obj => obj.hasRail, set: (obj, value) => { obj.hasRail = value; } }, metadata: _metadata }, _hasRail_initializers, _hasRail_extraInitializers);\n __esDecorate(null, null, _hasToolbarContent_decorators, { kind: \"field\", name: \"hasToolbarContent\", static: false, private: false, access: { has: obj => \"hasToolbarContent\" in obj, get: obj => obj.hasToolbarContent, set: (obj, value) => { obj.hasToolbarContent = value; } }, metadata: _metadata }, _hasToolbarContent_initializers, _hasToolbarContent_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n const sidebarCollapsedClass = this.collapsed ? ' sidebar--collapsed' : '';\n const sidebarMobileClass = this.mobileOpen ? ' sidebar--mobile-open' : '';\n const scrimClass = this.mobileOpen ? ' scrim--visible' : '';\n const expanded = this.mobileOpen || !this.collapsed;\n const railedClass = this.hasRail ? ' content-area--railed' : '';\n const railEmptyClass = this.hasRail ? '' : ' right-sidebar--empty';\n const breadcrumbsHtml = this.getBreadcrumbsHtml();\n const toolbarHiddenClass = this.hasToolbarContent || breadcrumbsHtml ? '' : ' toolbar--hidden';\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header\" part=\"header\">\n <button class=\"sidebar-toggle\" type=\"button\" aria-label=\"Toggle sidebar\" aria-expanded=\"${expanded}\" @click=${this.handleSidebarToggle}>\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" fill=\"currentColor\"/>\n </svg>\n </button>\n <div class=\"header-start\">\n <slot name=\"brand\">\n <h1>Dashboard</h1>\n </slot>\n </div>\n <div class=\"header-content\">\n <slot name=\"header\"></slot>\n </div>\n </header>\n\n <div class=\"toolbar${toolbarHiddenClass}\" part=\"toolbar\">\n <slot name=\"toolbar\">${breadcrumbsHtml}</slot>\n </div>\n\n <div class=\"body-area\">\n <aside class=\"sidebar${sidebarCollapsedClass}${sidebarMobileClass}\" part=\"sidebar\">\n <slot name=\"sidebar\">\n <snice-nav class=\"sidebar-nav\" variant=\"hierarchical\" orientation=\"vertical\"></snice-nav>\n </slot>\n </aside>\n\n <div class=\"scrim${scrimClass}\" part=\"scrim\" @click=${this.handleScrimClick}></div>\n\n <div class=\"content-area${railedClass}\">\n <main class=\"main\" part=\"main\">\n <slot name=\"page\"></slot>\n </main>\n\n <aside class=\"right-sidebar${railEmptyClass}\" part=\"right-sidebar\">\n <slot name=\"right-sidebar\"></slot>\n </aside>\n </div>\n </div>\n </div>\n `;\n }\n handleSidebarToggle() {\n const isMobileViewport = typeof window !== 'undefined'\n && typeof window.matchMedia === 'function'\n && window.matchMedia('(max-width: 768px)').matches;\n if (isMobileViewport) {\n this.mobileOpen = !this.mobileOpen;\n return;\n }\n this.collapsed = !this.collapsed;\n }\n handleScrimClick() {\n this.mobileOpen = false;\n }\n wireSlotDetection() {\n this.syncSlotState();\n // slotchange bubbles to the shadow root (not past it), so one delegated\n // listener survives re-renders that replace the slot elements.\n this.shadowRoot?.addEventListener('slotchange', () => this.syncSlotState());\n }\n syncSlotState() {\n this.hasRail = !!this.querySelector('[slot=\"right-sidebar\"]');\n this.hasToolbarContent = !!this.querySelector('[slot=\"toolbar\"]');\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n // Update navigation\n this.updateNav(appContext, routeParams);\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n getBreadcrumbsHtml() {\n const currentPlacard = this.placards.find(p => this.currentRoute === p.name || this.currentRoute.startsWith(`/${p.name}`));\n if (!currentPlacard) {\n return '';\n }\n // Build breadcrumb trail\n const breadcrumbs = this.buildBreadcrumbTrail(currentPlacard);\n if (breadcrumbs.length === 0) {\n return '';\n }\n return `\n <snice-breadcrumbs\n items='${JSON.stringify(breadcrumbs.map(p => ({\n label: p.title,\n href: p.href || '',\n icon: p.icon\n })))}'\n separator=\"/\">\n </snice-breadcrumbs>\n `;\n }\n buildBreadcrumbTrail(placard) {\n const trail = [];\n // If explicit breadcrumbs are defined, use them\n if (placard.breadcrumbs && placard.breadcrumbs.length > 0) {\n placard.breadcrumbs.forEach(name => {\n const p = this.placards.find(pc => pc.name === name);\n if (p)\n trail.push(p);\n });\n return trail;\n }\n // Otherwise, build from parent hierarchy\n let current = placard;\n const visited = new Set();\n while (current) {\n if (visited.has(current.name))\n break; // Prevent infinite loops\n visited.add(current.name);\n trail.unshift(current);\n if (current.parent) {\n current = this.placards.find(p => p.name === current.parent);\n }\n else {\n break;\n }\n }\n return trail;\n }\n constructor() {\n super(...arguments);\n this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.placards = (__runInitializers(this, _navElement_extraInitializers), __runInitializers(this, _placards_initializers, []));\n this.currentRoute = (__runInitializers(this, _placards_extraInitializers), __runInitializers(this, _currentRoute_initializers, ''));\n this.collapsed = (__runInitializers(this, _currentRoute_extraInitializers), __runInitializers(this, _collapsed_initializers, false));\n /** Size to the parent element instead of pinning to the viewport. */\n this.contained = (__runInitializers(this, _collapsed_extraInitializers), __runInitializers(this, _contained_initializers, false));\n this.mobileOpen = (__runInitializers(this, _contained_extraInitializers), __runInitializers(this, _mobileOpen_initializers, false));\n this.hasRail = (__runInitializers(this, _mobileOpen_extraInitializers), __runInitializers(this, _hasRail_initializers, false));\n this.hasToolbarContent = (__runInitializers(this, _hasRail_extraInitializers), __runInitializers(this, _hasToolbarContent_initializers, false));\n __runInitializers(this, _hasToolbarContent_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutDashboard };\n//# sourceMappingURL=snice-layout-dashboard.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, render, styles, ready, dispose, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif)}:host(:not([contained])){position:fixed;inset:0}:host([contained]){position:relative;min-height:0;height:100%}.layout{min-height:inherit;display:grid;grid-template-rows:auto 1fr;height:100%;background:var(--snice-color-surface,rgb(255 255 255))}.skip-link{position:absolute;top:var(--snice-spacing-xs,.5rem);left:var(--snice-spacing-xs,.5rem);z-index:var(--snice-z-notification,1300);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,6px);background:var(--snice-color-surface-container-highest,hsl(0 0% 100%));color:var(--snice-color-text,rgb(23 23 23));text-decoration:none;transform:translateY(-200%);transition:transform var(--snice-transition-fast, 150ms) ease}.skip-link:focus-visible{transform:translateY(0);outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.header{display:flex;align-items:center;gap:var(--snice-spacing-md,1rem);height:var(--snice-layout-docs-header-height,4rem);padding:0 var(--snice-spacing-lg,1.5rem);background:var(--snice-color-surface-container-high,rgb(252 251 249));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));position:relative;z-index:var(--snice-z-sticky,10)}.header-brand{display:flex;align-items:center;font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));white-space:nowrap}.header-content{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--snice-spacing-md,1rem)}.sidebar-toggle{display:none;align-items:center;justify-content:center;width:var(--snice-layout-control-size,2rem);height:var(--snice-layout-control-size,2rem);background:0 0;border:none;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:pointer;padding:var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);transition:background var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.sidebar-toggle:hover{background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .06)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar-toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.body-area{position:relative;display:grid;grid-template-columns:var(--snice-layout-docs-nav-width,18.75rem) minmax(0,1fr) var(--snice-layout-docs-toc-width,18.75rem);min-height:0;overflow:hidden}.sidebar{overflow-y:auto;padding:var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem);border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));background:var(--snice-color-surface,rgb(255 255 255));transition:transform var(--snice-transition-normal, 250ms) ease}.sidebar ::slotted(a){display:block;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,6px);color:var(--snice-color-text-secondary,rgb(82 82 82));text-decoration:none;transition:background var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.sidebar ::slotted(a:hover){background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .06)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar ::slotted([aria-current]){background:var(--snice-color-primary-alpha,color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 10%,transparent));color:var(--snice-color-primary,rgb(37 99 235))}.scrim{display:none}.content{overflow-y:auto;padding:var(--snice-spacing-xl,2rem);min-width:0}.prose{max-width:var(--snice-layout-measure,65ch);margin-inline:auto}.prose ::slotted(h1),.prose ::slotted(h2),.prose ::slotted(h3),.prose ::slotted(h4){scroll-margin-top:calc(var(--snice-layout-docs-header-height,4rem) + var(--snice-spacing-md,1rem))}.footer{max-width:var(--snice-layout-measure,65ch);margin-inline:auto;padding-top:var(--snice-spacing-xl,2rem);color:var(--snice-color-text-secondary,rgb(82 82 82));font-size:var(--snice-font-size-sm, .875rem)}.toc{overflow-y:auto;padding:var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem);border-left:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));font-size:var(--snice-font-size-sm, .875rem)}.toc ::slotted(*){position:sticky;top:0}@media (max-width:1152px){.body-area{grid-template-columns:var(--snice-layout-docs-nav-width,18.75rem) minmax(0,1fr)}.toc{display:none}}@media (max-width:996px){.sidebar-toggle{display:flex}.body-area{grid-template-columns:minmax(0,1fr)}.sidebar{position:absolute;top:0;bottom:0;left:0;z-index:var(--snice-z-overlay,1100);width:min(83vw,var(--snice-layout-docs-nav-width,18.75rem));transform:translateX(-105%);box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.sidebar--open{transform:translateX(0)}.scrim--visible{display:block;position:absolute;inset:0;z-index:var(--snice-z-scrim,1000);background:rgb(0 0 0 / .4)}.content{padding:var(--snice-spacing-lg,1.5rem)}.header{height:var(--snice-layout-docs-header-height-compact,3.5rem);padding:0 var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\n/**\n * Documentation shell: navigation tree, prose at a reading measure, and an\n * on-this-page rail.\n *\n * The rail leaves first on narrower screens, then the tree becomes a drawer —\n * the order documentation sites settle on. Each region scrolls on its own.\n */\nlet SniceLayoutDocs = (() => {\n let _classDecorators = [element('snice-layout-docs')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _sidebarOpen_decorators;\n let _sidebarOpen_initializers = [];\n let _sidebarOpen_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _hasToc_decorators;\n let _hasToc_initializers = [];\n let _hasToc_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _wireRegions_decorators;\n let _releaseListeners_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n /** Sidebar drawer state below the navigation breakpoint. */\n this.sidebarOpen = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _sidebarOpen_initializers, false));\n /** Size to the parent element instead of pinning to the viewport. */\n this.contained = (__runInitializers(this, _sidebarOpen_extraInitializers), __runInitializers(this, _contained_initializers, false));\n this.hasToc = (__runInitializers(this, _contained_extraInitializers), __runInitializers(this, _hasToc_initializers, false));\n this.navElement = __runInitializers(this, _hasToc_extraInitializers);\n this.placards = [];\n this.currentRoute = '';\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _sidebarOpen_decorators = [property({ attribute: false })];\n _contained_decorators = [property({ type: Boolean })];\n _hasToc_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _wireRegions_decorators = [ready()];\n _releaseListeners_decorators = [dispose()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireRegions_decorators, { kind: \"method\", name: \"wireRegions\", static: false, private: false, access: { has: obj => \"wireRegions\" in obj, get: obj => obj.wireRegions }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _releaseListeners_decorators, { kind: \"method\", name: \"releaseListeners\", static: false, private: false, access: { has: obj => \"releaseListeners\" in obj, get: obj => obj.releaseListeners }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _sidebarOpen_decorators, { kind: \"field\", name: \"sidebarOpen\", static: false, private: false, access: { has: obj => \"sidebarOpen\" in obj, get: obj => obj.sidebarOpen, set: (obj, value) => { obj.sidebarOpen = value; } }, metadata: _metadata }, _sidebarOpen_initializers, _sidebarOpen_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, null, _hasToc_decorators, { kind: \"field\", name: \"hasToc\", static: false, private: false, access: { has: obj => \"hasToc\" in obj, get: obj => obj.hasToc, set: (obj, value) => { obj.hasToc = value; } }, metadata: _metadata }, _hasToc_initializers, _hasToc_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n const sidebarClass = this.sidebarOpen ? ' sidebar--open' : '';\n const scrimClass = this.sidebarOpen ? ' scrim--visible' : '';\n const tocClass = this.hasToc ? '' : ' toc--empty';\n return html /*html*/ `\n <div class=\"layout\">\n <a class=\"skip-link\" href=\"#snice-docs-main\">Skip to content</a>\n\n <header class=\"header\" part=\"header\">\n <button\n class=\"sidebar-toggle\"\n type=\"button\"\n aria-label=\"Toggle documentation navigation\"\n aria-expanded=\"${this.sidebarOpen}\"\n @click=${this.handleSidebarToggle}\n >\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" fill=\"currentColor\"/>\n </svg>\n </button>\n <div class=\"header-brand\">\n <slot name=\"brand\">\n <span class=\"brand-fallback\">Documentation</span>\n </slot>\n </div>\n <div class=\"header-content\">\n <slot name=\"header\"></slot>\n </div>\n </header>\n\n <div class=\"body-area\">\n <nav class=\"sidebar${sidebarClass}\" part=\"sidebar\" aria-label=\"Documentation\">\n <slot name=\"sidebar\">\n <snice-nav class=\"sidebar-nav\" variant=\"hierarchical\" orientation=\"vertical\"></snice-nav>\n </slot>\n </nav>\n\n <div class=\"scrim${scrimClass}\" part=\"scrim\" @click=${this.handleScrimClick}></div>\n\n <main class=\"content\" id=\"snice-docs-main\" part=\"main\">\n <article class=\"prose\" part=\"prose\">\n <slot name=\"page\"></slot>\n </article>\n <footer class=\"footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </main>\n\n <aside class=\"toc${tocClass}\" part=\"toc\" aria-label=\"On this page\">\n <slot name=\"toc\"></slot>\n </aside>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n handleSidebarToggle() {\n this.sidebarOpen = !this.sidebarOpen;\n }\n handleScrimClick() {\n this.sidebarOpen = false;\n }\n wireRegions() {\n this.syncSlotState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncSlotState());\n if (typeof document !== 'undefined') {\n this.escapeListener = (event) => {\n if (event.key === 'Escape' && this.sidebarOpen)\n this.sidebarOpen = false;\n };\n document.addEventListener('keydown', this.escapeListener);\n }\n }\n releaseListeners() {\n if (this.escapeListener && typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.escapeListener);\n this.escapeListener = undefined;\n }\n }\n syncSlotState() {\n this.hasToc = !!this.querySelector('[slot=\"toc\"]');\n this.navElement = this.shadowRoot?.querySelector('snice-nav');\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n this.updateNav(appContext, routeParams);\n }\n updateNav(appContext, routeParams) {\n const nav = this.navElement ?? this.shadowRoot?.querySelector('snice-nav');\n if (nav) {\n nav.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutDocs };\n//# sourceMappingURL=snice-layout-docs.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;min-height:100%;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif)}:host(:not([contained])){position:fixed;inset:0}:host([contained]){position:relative;min-height:0;height:100%}.layout{position:relative;width:100%;height:100%;min-height:inherit;overflow:hidden;background:var(--snice-color-surface,hsl(var(--snice-color-gray-900,0 0% 9%)))}.background{position:absolute;inset:0;z-index:1}.overlay{position:absolute;inset:0;z-index:2;background:hsl(0 0% 0% / .5);opacity:0;transition:opacity var(--snice-transition-normal, .25s) ease;pointer-events:none}:host([overlay]) .overlay{opacity:1;pointer-events:auto}.content{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:var(--snice-spacing-lg,2rem)}.controls{position:absolute;bottom:0;left:0;right:0;z-index:4;padding:var(--snice-spacing-lg,2rem);background:linear-gradient(transparent,hsl(0 0% 0% / .8));transform:translateY(100%);transition:transform var(--snice-transition-normal, .25s) ease}:host(:hover) .controls{transform:translateY(0)}@media (max-width:768px){.controls{transform:translateY(0);background:hsl(0 0% 0% / .8)}.content{padding:var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutFullscreen = (() => {\n let _classDecorators = [element('snice-layout-fullscreen')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _overlay_decorators;\n let _overlay_initializers = [];\n let _overlay_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _overlay_decorators = [property({ type: Boolean, })];\n _contained_decorators = [property({ type: Boolean })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _overlay_decorators, { kind: \"field\", name: \"overlay\", static: false, private: false, access: { has: obj => \"overlay\" in obj, get: obj => obj.overlay, set: (obj, value) => { obj.overlay = value; } }, metadata: _metadata }, _overlay_initializers, _overlay_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <div class=\"background\">\n <slot name=\"background\"></slot>\n </div>\n\n <div class=\"overlay\">\n <slot name=\"overlay\"></slot>\n </div>\n\n <div class=\"content\">\n <slot name=\"page\"></slot>\n </div>\n\n <div class=\"controls\">\n <slot name=\"controls\"></slot>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.overlay = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _overlay_initializers, false));\n /** Size to the parent element instead of pinning to the viewport. */\n this.contained = (__runInitializers(this, _overlay_extraInitializers), __runInitializers(this, _contained_initializers, false));\n __runInitializers(this, _contained_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutFullscreen };\n//# sourceMappingURL=snice-layout-fullscreen.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, query, property, render, styles, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{min-height:inherit;display:flex;flex-direction:column}.container{max-width:var(--snice-layout-container,80rem);margin:0 auto;padding:0 var(--snice-spacing-lg,2rem)}.header{background:color-mix(in srgb,var(--snice-color-surface,rgb(255 255 255)) 72%,transparent);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));position:sticky;top:0;z-index:var(--snice-z-sticky,10)}.header .container{display:flex;align-items:center;justify-content:space-between;padding-top:var(--snice-spacing-md,1rem);padding-bottom:var(--snice-spacing-md,1rem)}.brand h1{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-lg, 1.5rem);font-weight:var(--snice-font-weight-bold,700);color:var(--snice-color-text,rgb(23 23 23))}.nav{display:flex;gap:var(--snice-spacing-lg,2rem)}.nav ::slotted(a){text-decoration:none;color:var(--snice-color-text-secondary,rgb(82 82 82));font-weight:var(--snice-font-weight-medium,500);transition:color var(--snice-transition-fast, .15s) ease}.nav ::slotted(a:hover){color:var(--snice-color-primary,rgb(37 99 235))}.main{flex:1}.hero{background:var(--snice-color-surface-container-low,hsl(0 0% 98%));padding:var(--snice-spacing-2xl,4rem) 0}.content{background:var(--snice-color-surface,rgb(255 255 255))}.footer{background:var(--snice-color-surface-container,hsl(0 0% 95%));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));padding:var(--snice-spacing-xl,3rem) 0;margin-top:auto}@media (max-width:768px){.header .container{flex-direction:column;gap:var(--snice-spacing-md,1rem)}.nav{gap:var(--snice-spacing-md,1rem)}.hero{padding:var(--snice-spacing-xl,3rem) 0}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutLanding = (() => {\n let _classDecorators = [element('snice-layout-landing')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _useNav_decorators;\n let _useNav_initializers = [];\n let _useNav_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.navElement = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.useNav = (__runInitializers(this, _navElement_extraInitializers), __runInitializers(this, _useNav_initializers, false));\n this.placards = (__runInitializers(this, _useNav_extraInitializers), []);\n this.currentRoute = '';\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _navElement_decorators = [query('snice-nav')];\n _useNav_decorators = [property({ type: Boolean, attribute: 'use-nav' })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _useNav_decorators, { kind: \"field\", name: \"useNav\", static: false, private: false, access: { has: obj => \"useNav\" in obj, get: obj => obj.useNav, set: (obj, value) => { obj.useNav = value; } }, metadata: _metadata }, _useNav_initializers, _useNav_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header\">\n <div class=\"container\">\n <div class=\"brand\">\n <slot name=\"brand\">\n <h1>Brand</h1>\n </slot>\n </div>\n <if ${this.useNav}>\n <snice-nav class=\"nav\" variant=\"flat\" orientation=\"horizontal\"></snice-nav>\n </if>\n <if ${!this.useNav}>\n <nav class=\"nav\">\n <slot name=\"nav\"></slot>\n </nav>\n </if>\n <div class=\"cta\">\n <slot name=\"cta\"></slot>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <section class=\"hero\">\n <slot name=\"hero\"></slot>\n </section>\n\n <div class=\"content\">\n <slot name=\"page\"></slot>\n </div>\n </main>\n\n <footer class=\"footer\">\n <div class=\"container\">\n <slot name=\"footer\"></slot>\n </div>\n </footer>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n this.useNav = true;\n this.updateNav(appContext, routeParams);\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutLanding };\n//# sourceMappingURL=snice-layout-landing.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, render, styles, dispatch, ready, dispose, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif)}:host(:not([contained])){position:fixed;inset:0}:host([contained]){position:relative;min-height:0;height:100%}.layout{min-height:inherit;display:grid;grid-template-rows:auto 1fr;height:100%;background:var(--snice-color-surface,rgb(255 255 255))}.header{display:flex;align-items:center;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);background:var(--snice-color-surface-container-high,rgb(252 251 249));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.header:not(:has(slot[name=brand])):not(:has(slot[name=header])){display:none}.header-brand{display:flex;align-items:center;font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23))}.header-content{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:var(--snice-spacing-md,1rem)}.back{display:flex;align-items:center;justify-content:center;width:var(--snice-layout-control-size,2rem);height:var(--snice-layout-control-size,2rem);background:0 0;border:none;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:pointer;padding:var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);transition:background var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.back:hover{background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .06)));color:var(--snice-color-text,rgb(23 23 23))}.back:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.body-area{display:flex;min-height:0;overflow:hidden}.pane{min-width:0;overflow-y:auto}.list{flex-shrink:0;width:var(--snice-layout-list-width,20rem);background:var(--snice-color-surface-container-low,rgb(250 250 250));border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.detail{flex:1;padding:var(--snice-spacing-xl,2rem)}.detail-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--snice-color-text-tertiary,rgb(115 115 115))}@media (max-width:640px){.list{width:100%;border-right:none}.pane--hidden{display:none}.detail{padding:var(--snice-spacing-md,1rem)}.header{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\n/**\n * Master-detail shell: a scrollable list beside the selected item's detail.\n * The mail, chat, and issue-tracker shape.\n *\n * Wide viewports show both panes. Below the breakpoint only one is on screen:\n * the list, until something is selected, then the detail with a back control.\n */\nlet SniceLayoutMasterDetail = (() => {\n let _classDecorators = [element('snice-layout-master-detail')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _selected_decorators;\n let _selected_initializers = [];\n let _selected_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _narrow_decorators;\n let _narrow_initializers = [];\n let _narrow_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _handleBack_decorators;\n let _watchViewport_decorators;\n let _releaseViewport_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n /** A detail item is open. Drives the single-pane view below the breakpoint. */\n this.selected = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _selected_initializers, false));\n /** Size to the parent element instead of pinning to the viewport. */\n this.contained = (__runInitializers(this, _selected_extraInitializers), __runInitializers(this, _contained_initializers, false));\n this.narrow = (__runInitializers(this, _contained_extraInitializers), __runInitializers(this, _narrow_initializers, false));\n this.placards = (__runInitializers(this, _narrow_extraInitializers), []);\n this.currentRoute = '';\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _selected_decorators = [property({ type: Boolean })];\n _contained_decorators = [property({ type: Boolean })];\n _narrow_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _handleBack_decorators = [dispatch('detail-closed', { bubbles: true, composed: true })];\n _watchViewport_decorators = [ready()];\n _releaseViewport_decorators = [dispose()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleBack_decorators, { kind: \"method\", name: \"handleBack\", static: false, private: false, access: { has: obj => \"handleBack\" in obj, get: obj => obj.handleBack }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _watchViewport_decorators, { kind: \"method\", name: \"watchViewport\", static: false, private: false, access: { has: obj => \"watchViewport\" in obj, get: obj => obj.watchViewport }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _releaseViewport_decorators, { kind: \"method\", name: \"releaseViewport\", static: false, private: false, access: { has: obj => \"releaseViewport\" in obj, get: obj => obj.releaseViewport }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _selected_decorators, { kind: \"field\", name: \"selected\", static: false, private: false, access: { has: obj => \"selected\" in obj, get: obj => obj.selected, set: (obj, value) => { obj.selected = value; } }, metadata: _metadata }, _selected_initializers, _selected_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, null, _narrow_decorators, { kind: \"field\", name: \"narrow\", static: false, private: false, access: { has: obj => \"narrow\" in obj, get: obj => obj.narrow, set: (obj, value) => { obj.narrow = value; } }, metadata: _metadata }, _narrow_initializers, _narrow_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n const showDetail = !this.narrow || this.selected;\n const showList = !this.narrow || !this.selected;\n const listClass = showList ? '' : ' pane--hidden';\n const detailClass = showDetail ? '' : ' pane--hidden';\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header\" part=\"header\">\n <if ${this.narrow && this.selected}>\n <button class=\"back\" type=\"button\" aria-label=\"Back to list\" @click=${this.handleBack}>\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" fill=\"currentColor\"/>\n </svg>\n </button>\n </if>\n <div class=\"header-brand\">\n <slot name=\"brand\"></slot>\n </div>\n <div class=\"header-content\">\n <slot name=\"header\"></slot>\n </div>\n </header>\n\n <div class=\"body-area\">\n <section class=\"pane list${listClass}\" part=\"list\" aria-label=\"Items\">\n <slot name=\"list\"></slot>\n </section>\n\n <section class=\"pane detail${detailClass}\" part=\"detail\" aria-label=\"Details\">\n <slot name=\"detail\">\n <div class=\"detail-empty\" part=\"empty\">\n <slot name=\"empty\">Select an item</slot>\n </div>\n </slot>\n </section>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n handleBack() {\n this.selected = false;\n return { selected: false };\n }\n watchViewport() {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function')\n return;\n this.viewportQuery = window.matchMedia('(max-width: 640px)');\n this.narrow = this.viewportQuery.matches;\n this.viewportListener = (event) => {\n this.narrow = event.matches;\n };\n this.viewportQuery.addEventListener('change', this.viewportListener);\n }\n releaseViewport() {\n if (this.viewportQuery && this.viewportListener) {\n this.viewportQuery.removeEventListener('change', this.viewportListener);\n this.viewportQuery = undefined;\n this.viewportListener = undefined;\n }\n }\n update(_appContext, placards, currentRoute, _routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutMasterDetail };\n//# sourceMappingURL=snice-layout-master-detail.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{min-height:inherit;display:flex;flex-direction:column}.main{flex:1;background:var(--snice-color-surface,rgb(255 255 255))}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutMinimal = (() => {\n let _classDecorators = [element('snice-layout-minimal')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <main class=\"main\">\n <slot name=\"page\"></slot>\n </main>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n __runInitializers(this, _instanceExtraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutMinimal };\n//# sourceMappingURL=snice-layout-minimal.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, render, styles, on, ready, dispose, html, css } from 'snice';\nimport '../nav/snice-nav.js';\nimport '../icons/index.js';\nimport '../utils.js';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif)}:host(:not([contained])){position:fixed;inset:0}:host([contained]){position:relative;min-height:0;height:100%}.layout{display:grid;grid-template-rows:auto 1fr auto;min-height:100%}.header{display:flex;align-items:center;gap:var(--snice-spacing-md,1rem);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);background:var(--snice-color-surface-container-high,rgb(252 251 249));border-bottom:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));position:relative;z-index:var(--snice-z-sticky,10)}.header-brand{display:flex;align-items:center}.header-brand h2{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);margin:0;font-size:var(--snice-heading-md, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text,rgb(23 23 23));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:var(--snice-layout-control-size,2rem);height:var(--snice-layout-control-size,2rem);background:0 0;border:none;color:var(--snice-color-text-secondary,rgb(82 82 82));cursor:pointer;padding:var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);transition:all var(--snice-transition-fast, 150ms) ease}.sidebar-toggle:hover{background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .04)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar-toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.header-content{flex:1;min-width:0;display:flex;align-items:center;gap:var(--snice-spacing-md,1rem)}.header-content ::slotted(*){flex:1;width:100%}.body-area{position:relative;display:flex;flex:1;overflow:hidden;background:var(--snice-color-surface,rgb(255 255 255))}.sidebar{flex-shrink:0;width:var(--snice-layout-sidebar-width,16rem);background:var(--snice-color-surface-container-low,rgb(250 250 250));border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)));overflow-y:auto;overflow-x:hidden;padding-block:var(--snice-spacing-sm,0.75rem);transition:width var(--snice-transition-normal, 250ms) ease,transform var(--snice-transition-normal, 250ms) ease}.sidebar--collapsed{width:0;border-right:none}.sidebar--rail.sidebar--collapsed{width:var(--snice-layout-rail-collapsed-width,3rem);border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.sidebar--rail.sidebar--collapsed ::slotted(*){overflow:hidden;white-space:nowrap}.scrim{display:none}.sidebar ::slotted(a),.sidebar ::slotted(button){display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);margin:0 var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,6px);color:var(--snice-color-text-secondary,rgb(82 82 82));text-decoration:none;cursor:pointer;transition:background var(--snice-transition-fast, 150ms) ease,color var(--snice-transition-fast, 150ms) ease}.sidebar ::slotted(a:hover),.sidebar ::slotted(button:hover){background:var(--snice-color-surface-hover,var(--snice-color-overlay-hover,hsl(0 0% 0% / .06)));color:var(--snice-color-text,rgb(23 23 23))}.sidebar ::slotted(a:focus-visible),.sidebar ::slotted(button:focus-visible){outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.sidebar ::slotted([aria-current]){background:var(--snice-color-primary-alpha,color-mix(in srgb,var(--snice-color-primary,rgb(37 99 235)) 10%,transparent));color:var(--snice-color-primary,rgb(37 99 235))}.sidebar-nav{display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-md,1rem)}.main{flex:1;padding:var(--snice-spacing-xl,2rem);overflow-y:auto;background:var(--snice-color-surface,rgb(255 255 255));position:relative;z-index:0}.footer{padding:var(--snice-spacing-md,1rem) var(--snice-spacing-lg,1.5rem);background:var(--snice-color-surface-container,hsl(0 0% 95%));border-top:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.footer--empty{display:none}@media (max-width:768px){.header{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}.sidebar{position:absolute;top:0;bottom:0;left:0;z-index:var(--snice-z-overlay,1100);width:min(80vw,18rem);transform:translateX(-105%);box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}.sidebar--collapsed,.sidebar--rail.sidebar--collapsed{width:min(80vw,18rem);border-right:1px solid var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}.sidebar--mobile-open{transform:translateX(0)}.scrim--visible{display:block;position:absolute;inset:0;z-index:var(--snice-z-scrim,1000);background:rgb(0 0 0 / .4)}.main{padding:var(--snice-spacing-md,1rem)}.footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutSidebar = (() => {\n let _classDecorators = [element('snice-layout-sidebar')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _collapsed_decorators;\n let _collapsed_initializers = [];\n let _collapsed_extraInitializers = [];\n let _contained_decorators;\n let _contained_initializers = [];\n let _contained_extraInitializers = [];\n let _collapseMode_decorators;\n let _collapseMode_initializers = [];\n let _collapseMode_extraInitializers = [];\n let _mobileOpen_decorators;\n let _mobileOpen_initializers = [];\n let _mobileOpen_extraInitializers = [];\n let _navElement_decorators;\n let _navElement_initializers = [];\n let _navElement_extraInitializers = [];\n let _hasFooterContent_decorators;\n let _hasFooterContent_initializers = [];\n let _hasFooterContent_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n let _handleKeydown_decorators;\n let _wireFooterState_decorators;\n let _bindShortcut_decorators;\n let _releaseShortcut_decorators;\n let _init_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.collapsed = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _collapsed_initializers, false));\n /** Size to the parent element instead of pinning to the viewport. */\n this.contained = (__runInitializers(this, _collapsed_extraInitializers), __runInitializers(this, _contained_initializers, false));\n /**\n * How the sidebar collapses on desktop:\n * `rail` shrinks it to an icon-width column, `offcanvas` hides it entirely,\n * `none` pins it open and drops the toggle.\n */\n this.collapseMode = (__runInitializers(this, _contained_extraInitializers), __runInitializers(this, _collapseMode_initializers, 'rail'));\n this.mobileOpen = (__runInitializers(this, _collapseMode_extraInitializers), __runInitializers(this, _mobileOpen_initializers, false));\n this.navElement = (__runInitializers(this, _mobileOpen_extraInitializers), __runInitializers(this, _navElement_initializers, void 0));\n this.placards = (__runInitializers(this, _navElement_extraInitializers), []);\n this.currentRoute = '';\n this.hasFooterContent = __runInitializers(this, _hasFooterContent_initializers, false);\n this.shortcutListener = __runInitializers(this, _hasFooterContent_extraInitializers);\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _collapsed_decorators = [property({ type: Boolean })];\n _contained_decorators = [property({ type: Boolean })];\n _collapseMode_decorators = [property({ attribute: 'collapse-mode' })];\n _mobileOpen_decorators = [property({ attribute: false })];\n _navElement_decorators = [query('snice-nav')];\n _hasFooterContent_decorators = [property({ attribute: false })];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n _handleKeydown_decorators = [on('keydown')];\n _wireFooterState_decorators = [ready()];\n _bindShortcut_decorators = [ready()];\n _releaseShortcut_decorators = [dispose()];\n _init_decorators = [ready()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleKeydown_decorators, { kind: \"method\", name: \"handleKeydown\", static: false, private: false, access: { has: obj => \"handleKeydown\" in obj, get: obj => obj.handleKeydown }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _wireFooterState_decorators, { kind: \"method\", name: \"wireFooterState\", static: false, private: false, access: { has: obj => \"wireFooterState\" in obj, get: obj => obj.wireFooterState }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _bindShortcut_decorators, { kind: \"method\", name: \"bindShortcut\", static: false, private: false, access: { has: obj => \"bindShortcut\" in obj, get: obj => obj.bindShortcut }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _releaseShortcut_decorators, { kind: \"method\", name: \"releaseShortcut\", static: false, private: false, access: { has: obj => \"releaseShortcut\" in obj, get: obj => obj.releaseShortcut }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _collapsed_decorators, { kind: \"field\", name: \"collapsed\", static: false, private: false, access: { has: obj => \"collapsed\" in obj, get: obj => obj.collapsed, set: (obj, value) => { obj.collapsed = value; } }, metadata: _metadata }, _collapsed_initializers, _collapsed_extraInitializers);\n __esDecorate(null, null, _contained_decorators, { kind: \"field\", name: \"contained\", static: false, private: false, access: { has: obj => \"contained\" in obj, get: obj => obj.contained, set: (obj, value) => { obj.contained = value; } }, metadata: _metadata }, _contained_initializers, _contained_extraInitializers);\n __esDecorate(null, null, _collapseMode_decorators, { kind: \"field\", name: \"collapseMode\", static: false, private: false, access: { has: obj => \"collapseMode\" in obj, get: obj => obj.collapseMode, set: (obj, value) => { obj.collapseMode = value; } }, metadata: _metadata }, _collapseMode_initializers, _collapseMode_extraInitializers);\n __esDecorate(null, null, _mobileOpen_decorators, { kind: \"field\", name: \"mobileOpen\", static: false, private: false, access: { has: obj => \"mobileOpen\" in obj, get: obj => obj.mobileOpen, set: (obj, value) => { obj.mobileOpen = value; } }, metadata: _metadata }, _mobileOpen_initializers, _mobileOpen_extraInitializers);\n __esDecorate(null, null, _navElement_decorators, { kind: \"field\", name: \"navElement\", static: false, private: false, access: { has: obj => \"navElement\" in obj, get: obj => obj.navElement, set: (obj, value) => { obj.navElement = value; } }, metadata: _metadata }, _navElement_initializers, _navElement_extraInitializers);\n __esDecorate(null, null, _hasFooterContent_decorators, { kind: \"field\", name: \"hasFooterContent\", static: false, private: false, access: { has: obj => \"hasFooterContent\" in obj, get: obj => obj.hasFooterContent, set: (obj, value) => { obj.hasFooterContent = value; } }, metadata: _metadata }, _hasFooterContent_initializers, _hasFooterContent_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n const isRail = this.collapseMode === 'rail';\n const canCollapse = this.collapseMode !== 'none';\n const sidebarRailClass = isRail ? ' sidebar--rail' : '';\n const sidebarCollapsedClass = canCollapse && this.collapsed ? ' sidebar--collapsed' : '';\n const sidebarMobileClass = this.mobileOpen ? ' sidebar--mobile-open' : '';\n const scrimClass = this.mobileOpen ? ' scrim--visible' : '';\n const expanded = this.mobileOpen || !this.collapsed;\n return html /*html*/ `\n <div class=\"layout\">\n <header class=\"header\" part=\"header\">\n <if ${canCollapse}>\n <button class=\"sidebar-toggle\" type=\"button\" aria-label=\"Toggle sidebar\" aria-expanded=\"${expanded}\" @click=${this.handleSidebarToggle}>\n <svg viewBox=\"0 0 24 24\" width=\"20\" height=\"20\">\n <path d=\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\" fill=\"currentColor\"/>\n </svg>\n </button>\n </if>\n <div class=\"header-brand\">\n <slot name=\"brand\">\n <h2>App</h2>\n </slot>\n </div>\n <div class=\"header-content\">\n <slot name=\"header\"></slot>\n </div>\n </header>\n\n <div class=\"body-area\">\n <aside class=\"sidebar${sidebarRailClass}${sidebarCollapsedClass}${sidebarMobileClass}\" part=\"sidebar\">\n <slot name=\"sidebar\">\n <snice-nav class=\"sidebar-nav\" variant=\"hierarchical\" orientation=\"vertical\"></snice-nav>\n </slot>\n </aside>\n\n <div class=\"scrim${scrimClass}\" part=\"scrim\" @click=${this.handleScrimClick}></div>\n\n <main class=\"main\" part=\"main\">\n <slot name=\"page\"></slot>\n </main>\n </div>\n\n <footer class=\"footer${this.hasFooterContent ? '' : ' footer--empty'}\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n handleSidebarToggle() {\n if (this.collapseMode === 'none')\n return;\n const isMobileViewport = typeof window !== 'undefined'\n && typeof window.matchMedia === 'function'\n && window.matchMedia('(max-width: 768px)').matches;\n if (isMobileViewport) {\n this.mobileOpen = !this.mobileOpen;\n return;\n }\n this.collapsed = !this.collapsed;\n }\n handleScrimClick() {\n this.mobileOpen = false;\n }\n handleKeydown(event) {\n if (event.key === 'Escape' && this.mobileOpen) {\n this.mobileOpen = false;\n }\n }\n wireFooterState() {\n this.syncFooterState();\n this.shadowRoot?.addEventListener('slotchange', () => this.syncFooterState());\n }\n syncFooterState() {\n this.hasFooterContent = !!this.querySelector('[slot=\"footer\"]');\n }\n bindShortcut() {\n if (typeof document === 'undefined')\n return;\n this.shortcutListener = (event) => {\n const isToggleChord = event.key?.toLowerCase() === 'b' && (event.metaKey || event.ctrlKey);\n if (!isToggleChord)\n return;\n event.preventDefault();\n this.handleSidebarToggle();\n };\n document.addEventListener('keydown', this.shortcutListener);\n }\n releaseShortcut() {\n if (this.shortcutListener && typeof document !== 'undefined') {\n document.removeEventListener('keydown', this.shortcutListener);\n this.shortcutListener = undefined;\n }\n }\n init() {\n // Update nav when component is ready and shadow DOM is available\n this.updateNav();\n }\n update(appContext, placards, currentRoute, routeParams) {\n this.placards = placards;\n this.currentRoute = currentRoute;\n // Update the navigation\n this.updateNav(appContext, routeParams);\n }\n updateNav(appContext, routeParams) {\n if (this.navElement) {\n this.navElement.update(this.placards, appContext, this.currentRoute, routeParams);\n }\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutSidebar };\n//# sourceMappingURL=snice-layout-sidebar.js.map\n","import { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);min-height:100vh;min-height:100dvh}:host([contained]){min-height:0}.layout{display:grid;min-height:inherit;gap:1px;background:var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}:host(:not([direction])) .layout,:host([direction=horizontal]) .layout{grid-template-columns:1fr auto 1fr;grid-template-rows:1fr}:host([direction=vertical]) .layout{grid-template-rows:1fr auto 1fr;grid-template-columns:1fr}:host(:not([ratio])) .layout,:host([ratio=\\\"50-50\\\"]) .layout{grid-template-columns:1fr 1px 1fr}:host([ratio=\\\"60-40\\\"]) .layout{grid-template-columns:60fr 1px 40fr}:host([ratio=\\\"70-30\\\"]) .layout{grid-template-columns:70fr 1px 30fr}:host([ratio=\\\"33-67\\\"]) .layout{grid-template-columns:33fr 1px 67fr}:host([ratio=\\\"67-33\\\"]) .layout{grid-template-columns:67fr 1px 33fr}:host([direction=vertical]:not([ratio])) .layout,:host([direction=vertical][ratio=\\\"50-50\\\"]) .layout{grid-template-rows:1fr 1px 1fr}:host([direction=vertical][ratio=\\\"60-40\\\"]) .layout{grid-template-rows:60fr 1px 40fr}:host([direction=vertical][ratio=\\\"70-30\\\"]) .layout{grid-template-rows:70fr 1px 30fr}:host([direction=vertical][ratio=\\\"33-67\\\"]) .layout{grid-template-rows:33fr 1px 67fr}:host([direction=vertical][ratio=\\\"67-33\\\"]) .layout{grid-template-rows:67fr 1px 33fr}.panel{background:var(--snice-color-surface,rgb(255 255 255));overflow:auto}.panel-left,.panel-right{padding:var(--snice-spacing-lg,2rem)}.divider{background:var(--snice-color-border-subtle,var(--snice-color-border,rgb(226 226 226)))}@media (max-width:768px){.layout{grid-template-columns:1fr!important;grid-template-rows:auto auto auto!important}.divider{height:1px}.panel-left,.panel-right{padding:var(--snice-spacing-md,1rem)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceLayoutSplit = (() => {\n let _classDecorators = [element('snice-layout-split')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _direction_decorators;\n let _direction_initializers = [];\n let _direction_extraInitializers = [];\n let _ratio_decorators;\n let _ratio_initializers = [];\n let _ratio_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _direction_decorators = [property({})];\n _ratio_decorators = [property({})];\n _render_decorators = [render()];\n _styles_decorators = [styles()];\n __esDecorate(this, null, _render_decorators, { kind: \"method\", name: \"render\", static: false, private: false, access: { has: obj => \"render\" in obj, get: obj => obj.render }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _styles_decorators, { kind: \"method\", name: \"styles\", static: false, private: false, access: { has: obj => \"styles\" in obj, get: obj => obj.styles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _direction_decorators, { kind: \"field\", name: \"direction\", static: false, private: false, access: { has: obj => \"direction\" in obj, get: obj => obj.direction, set: (obj, value) => { obj.direction = value; } }, metadata: _metadata }, _direction_initializers, _direction_extraInitializers);\n __esDecorate(null, null, _ratio_decorators, { kind: \"field\", name: \"ratio\", static: false, private: false, access: { has: obj => \"ratio\" in obj, get: obj => obj.ratio, set: (obj, value) => { obj.ratio = value; } }, metadata: _metadata }, _ratio_initializers, _ratio_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n __runInitializers(_classThis, _classExtraInitializers);\n }\n render() {\n return html /*html*/ `\n <div class=\"layout\">\n <div class=\"panel panel-left\">\n <slot name=\"left\"></slot>\n </div>\n <div class=\"divider\"></div>\n <div class=\"panel panel-right\">\n <slot name=\"right\"></slot>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.direction = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _direction_initializers, 'horizontal'));\n this.ratio = (__runInitializers(this, _direction_extraInitializers), __runInitializers(this, _ratio_initializers, '50-50'));\n __runInitializers(this, _ratio_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceLayoutSplit };\n//# sourceMappingURL=snice-layout-split.js.map\n"],"names":["__esDecorate","ctor","descriptorIn","decorators","contextIn","initializers","extraInitializers","accept","f","TypeError","_","kind","key","target","prototype","descriptor","Object","getOwnPropertyDescriptor","name","done","i","length","context","p","access","addInitializer","push","result","get","set","init","unshift","defineProperty","__runInitializers","thisArg","value","useValue","arguments","call","SuppressedError","MAGNIFYING_GLASS","ELLIPSIS_HORIZONTAL","COG_6_TOOTH","ICONS","check","search","photo","trash","plus","camera","pencil","star","circle","fire","settings","envelope","users","heart","home","scissors","user","clipboard","sparkles","cube","banknotes","cake","gift","folder","bell","link","phone","minus","classifyIcon","icon","startsWith","slice","isUrl","test","isImageFile","renderIcon","className","html","unsafeHTML","NAME_KEY","GROUP_KEY","_classDescriptor","_classThis","_variant_decorators","_orientation_decorators","_activeStyle_decorators","_isTopLevel_decorators","_handleContext_decorators","_handleChange_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_variant_initializers","_variant_extraInitializers","_orientation_initializers","_orientation_extraInitializers","_activeStyle_initializers","_activeStyle_extraInitializers","_isTopLevel_initializers","_isTopLevel_extraInitializers","this","constructor","super","variant","orientation","activeStyle","isTopLevel","placards","currentRoute","routeParams","appContext","wrapper","navElement","lastVariant","lastOrientation","renderToken","_metadata","Symbol","metadata","create","property","attribute","type","Boolean","watch","static","private","has","obj","handleContext","handleChange","enumerable","configurable","writable","connectedCallback","attachShadow","mode","applyStyles","render","ctx","update","navigation","application","route","params","shadowRoot","querySelector","style","document","createElement","textContent","appendChild","token","isConnected","existingSlot","child","Array","from","children","tagName","remove","setAttribute","insertBefore","candidates","filter","parent","show","sort","a","b","order","rendered","isVisible","placard","then","pending","createNavElement","map","r","diffGrouped","diffHierarchical","diffFlat","node","itemNodeFor","markHidden","ok","catch","CSS","escape","group","el","hidden","hasAttribute","getAttribute","removeAttribute","nav","items","existing","indexByName","classList","contains","wanted","reuseOrCreateItem","reorderChildren","removeUnused","isActive","parentLink","firstElementChild","updateNavLink","buildNavLink","firstChild","submenu","subExisting","subWanted","li","innerHTML","groups","Map","groupName","groupItems","sorted","groupEl","label","itemExisting","itemWanted","reorderChildrenByElement","pred","out","item","expected","nextSibling","idx","cur","wantedSet","Set","values","parentNode","wantHref","href","wantClass","syncAttr","description","tooltip","hotkeys","join","helpUrl","searchTerms","attributes","entries","String","iconMeta","existingIcon","iconEl","buildIcon","src","dataset","labelSpan","title","meta","img","alt","span","visibleOn","results","isArray","g","every","some","Promise","all","rs","undefined","_navElement_decorators","_hasFooterContent_decorators","_render_decorators","_styles_decorators","_wireFooterState_decorators","_onReady_decorators","_navElement_initializers","_navElement_extraInitializers","_hasFooterContent_initializers","_hasFooterContent_extraInitializers","query","styles","ready","wireFooterState","onReady","hasFooterContent","css","syncFooterState","addEventListener","updateNav","_panelPosition_decorators","_contained_decorators","_panelPosition_initializers","_panelPosition_extraInitializers","_contained_initializers","_contained_extraInitializers","panelPosition","contained","_useNav_decorators","_hasSidebar_decorators","_wireSlotDetection_decorators","_useNav_initializers","_useNav_extraInitializers","_hasSidebar_initializers","_hasSidebar_extraInitializers","useNav","hasSidebar","wireSlotDetection","syncSlotState","_columns_decorators","_gap_decorators","_hasFooter_decorators","_hasHeader_decorators","_columns_initializers","_columns_extraInitializers","_gap_initializers","_gap_extraInitializers","_hasFooter_initializers","_hasFooter_extraInitializers","_hasHeader_initializers","_hasHeader_extraInitializers","columns","gap","hasFooter","hasHeader","_width_decorators","_hasBrand_decorators","_width_initializers","_width_extraInitializers","_hasBrand_initializers","_hasBrand_extraInitializers","width","hasBrand","_items_decorators","_separator_decorators","_size_decorators","_maxItems_decorators","_breadcrumbElement_decorators","_collapsed_decorators","_renderTrigger_decorators","_emitBreadcrumbClick_decorators","_updateBreadcrumb_decorators","_items_initializers","_items_extraInitializers","_separator_initializers","_separator_extraInitializers","_size_initializers","_size_extraInitializers","_maxItems_initializers","_maxItems_extraInitializers","_breadcrumbElement_initializers","_breadcrumbElement_extraInitializers","_collapsed_initializers","_collapsed_extraInitializers","_renderTrigger_initializers","_renderTrigger_extraInitializers","Number","dispatch","bubbles","composed","emitBreadcrumbClick","updateBreadcrumb","separator","size","maxItems","breadcrumbElement","collapsed","renderTrigger","allItems","getAllItems","visibleItems","getVisibleItems","hasCollapsed","handleSlotChange","e","handleClick","index","isLast","active","itemClass","allIndex","indexOf","showLink","showActiveText","showInactiveText","renderItemIcon","slotItems","event","closest","firstRevealed","querySelectorAll","focus","idxAttr","parseInt","trim","detail","slot","crumbs","assignedElements","toLowerCase","crumb","iconElement","iconImage","iconNode","setItems","clone","cloneNode","add","_placards_decorators","_currentRoute_decorators","_mobileOpen_decorators","_hasRail_decorators","_hasToolbarContent_decorators","_placards_initializers","_placards_extraInitializers","_currentRoute_initializers","_currentRoute_extraInitializers","_mobileOpen_initializers","_mobileOpen_extraInitializers","_hasRail_initializers","_hasRail_extraInitializers","_hasToolbarContent_initializers","_hasToolbarContent_extraInitializers","mobileOpen","hasRail","hasToolbarContent","sidebarCollapsedClass","sidebarMobileClass","scrimClass","expanded","railedClass","railEmptyClass","breadcrumbsHtml","getBreadcrumbsHtml","handleSidebarToggle","handleScrimClick","window","matchMedia","matches","currentPlacard","find","breadcrumbs","buildBreadcrumbTrail","JSON","stringify","trail","forEach","pc","current","visited","_sidebarOpen_decorators","_hasToc_decorators","_wireRegions_decorators","_releaseListeners_decorators","_sidebarOpen_initializers","_sidebarOpen_extraInitializers","_hasToc_initializers","_hasToc_extraInitializers","sidebarOpen","hasToc","dispose","wireRegions","releaseListeners","escapeListener","removeEventListener","_overlay_decorators","_overlay_initializers","_overlay_extraInitializers","overlay","_selected_decorators","_narrow_decorators","_handleBack_decorators","_watchViewport_decorators","_releaseViewport_decorators","_selected_initializers","_selected_extraInitializers","_narrow_initializers","_narrow_extraInitializers","selected","narrow","handleBack","watchViewport","releaseViewport","viewportQuery","viewportListener","_appContext","_routeParams","_collapseMode_decorators","_handleKeydown_decorators","_bindShortcut_decorators","_releaseShortcut_decorators","_init_decorators","_collapseMode_initializers","_collapseMode_extraInitializers","collapseMode","shortcutListener","on","handleKeydown","bindShortcut","releaseShortcut","canCollapse","metaKey","ctrlKey","preventDefault","_direction_decorators","_ratio_decorators","_direction_initializers","_direction_extraInitializers","_ratio_initializers","_ratio_extraInitializers","direction","ratio"],"mappings":"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","x_google_ignoreList":[0]}