snice 7.6.0 → 7.8.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 (228) hide show
  1. package/adapters/react/SniceProvider.js +1 -1
  2. package/adapters/react/SniceRouter.js +1 -1
  3. package/adapters/react/calendar.d.ts +1 -0
  4. package/adapters/react/calendar.d.ts.map +1 -1
  5. package/adapters/react/calendar.js +1 -1
  6. package/adapters/react/calendar.js.map +1 -1
  7. package/adapters/react/calendar.tsx +2 -1
  8. package/adapters/react/matchRoute.js +1 -1
  9. package/adapters/react/useRequestHandler.js +1 -1
  10. package/bin/analyzer-contracts.js +8 -2
  11. package/custom-elements.json +15 -1
  12. package/dist/cdn/accordion/snice-accordion.js +1 -1
  13. package/dist/cdn/action-bar/snice-action-bar.js +1 -1
  14. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  15. package/dist/cdn/alert/snice-alert.js +1 -1
  16. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  17. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  18. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  19. package/dist/cdn/availability/snice-availability.js +1 -1
  20. package/dist/cdn/avatar/snice-avatar.js +1 -1
  21. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  22. package/dist/cdn/badge/snice-badge.js +1 -1
  23. package/dist/cdn/banner/snice-banner.js +1 -1
  24. package/dist/cdn/binpack/snice-binpack.js +1 -1
  25. package/dist/cdn/book/snice-book.js +1 -1
  26. package/dist/cdn/booking/snice-booking.js +1 -1
  27. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  28. package/dist/cdn/button/snice-button.js +2 -2
  29. package/dist/cdn/button/snice-button.js.map +1 -1
  30. package/dist/cdn/button/snice-button.min.js +1 -1
  31. package/dist/cdn/button/snice-button.min.js.map +1 -1
  32. package/dist/cdn/calendar/README.md +2 -2
  33. package/dist/cdn/calendar/snice-calendar.js +26 -2
  34. package/dist/cdn/calendar/snice-calendar.js.map +1 -1
  35. package/dist/cdn/calendar/snice-calendar.min.js +2 -2
  36. package/dist/cdn/calendar/snice-calendar.min.js.map +1 -1
  37. package/dist/cdn/camera/snice-camera.js +1 -1
  38. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  39. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  40. package/dist/cdn/card/snice-card.js +1 -1
  41. package/dist/cdn/carousel/snice-carousel.js +1 -1
  42. package/dist/cdn/cart/snice-cart.js +1 -1
  43. package/dist/cdn/chart/snice-chart.js +1 -1
  44. package/dist/cdn/chat/snice-chat.js +1 -1
  45. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  46. package/dist/cdn/chip/snice-chip.js +1 -1
  47. package/dist/cdn/code-block/snice-code-block.js +1 -1
  48. package/dist/cdn/color-display/snice-color-display.js +1 -1
  49. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  50. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  51. package/dist/cdn/comments/snice-comments.js +1 -1
  52. package/dist/cdn/countdown/snice-countdown.js +1 -1
  53. package/dist/cdn/cropper/snice-cropper.js +1 -1
  54. package/dist/cdn/data-card/snice-data-card.js +1 -1
  55. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  56. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  57. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  58. package/dist/cdn/diff/snice-diff.js +1 -1
  59. package/dist/cdn/divider/snice-divider.js +1 -1
  60. package/dist/cdn/doc/snice-doc.js +1 -1
  61. package/dist/cdn/draw/snice-draw.js +1 -1
  62. package/dist/cdn/drawer/snice-drawer.js +1 -1
  63. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  64. package/dist/cdn/estimate/snice-estimate.js +1 -1
  65. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  66. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  67. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  68. package/dist/cdn/flow/snice-flow.js +1 -1
  69. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  70. package/dist/cdn/funnel/snice-funnel.js +1 -1
  71. package/dist/cdn/gantt/snice-gantt.js +1 -1
  72. package/dist/cdn/gauge/snice-gauge.js +1 -1
  73. package/dist/cdn/grid/snice-grid.js +1 -1
  74. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  75. package/dist/cdn/image/snice-image.js +1 -1
  76. package/dist/cdn/input/snice-input.js +1 -1
  77. package/dist/cdn/invoice/snice-invoice.js +1 -1
  78. package/dist/cdn/kanban/snice-kanban.js +1 -1
  79. package/dist/cdn/key-value/snice-key-value.js +1 -1
  80. package/dist/cdn/kpi/snice-kpi.js +1 -1
  81. package/dist/cdn/layout/snice-layout.js +1 -1
  82. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  83. package/dist/cdn/link/snice-link.js +1 -1
  84. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  85. package/dist/cdn/list/snice-list.js +1 -1
  86. package/dist/cdn/location/snice-location.js +1 -1
  87. package/dist/cdn/login/README.md +1 -1
  88. package/dist/cdn/login/snice-login.js +2 -2
  89. package/dist/cdn/login/snice-login.js.map +1 -1
  90. package/dist/cdn/login/snice-login.min.js +1 -1
  91. package/dist/cdn/login/snice-login.min.js.map +1 -1
  92. package/dist/cdn/map/snice-map.js +1 -1
  93. package/dist/cdn/markdown/snice-markdown.js +1 -1
  94. package/dist/cdn/masonry/snice-masonry.js +1 -1
  95. package/dist/cdn/menu/snice-menu.js +1 -1
  96. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  97. package/dist/cdn/modal/snice-modal.js +1 -1
  98. package/dist/cdn/music-player/snice-music-player.js +1 -1
  99. package/dist/cdn/nav/snice-nav.js +1 -1
  100. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  101. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  102. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  103. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  104. package/dist/cdn/pagination/snice-pagination.js +1 -1
  105. package/dist/cdn/paint/snice-paint.js +1 -1
  106. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  107. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  108. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  109. package/dist/cdn/popover/snice-popover.js +1 -1
  110. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  111. package/dist/cdn/product-card/snice-product-card.js +1 -1
  112. package/dist/cdn/progress/snice-progress.js +1 -1
  113. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  114. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  115. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  116. package/dist/cdn/radio/snice-radio.js +1 -1
  117. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  118. package/dist/cdn/rating/snice-rating.js +1 -1
  119. package/dist/cdn/receipt/snice-receipt.js +1 -1
  120. package/dist/cdn/recipe/snice-recipe.js +1 -1
  121. package/dist/cdn/runtime/README.md +2 -2
  122. package/dist/cdn/runtime/snice-runtime.esm.js +130 -31
  123. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  124. package/dist/cdn/runtime/snice-runtime.esm.min.js +1 -1
  125. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  126. package/dist/cdn/runtime/snice-runtime.js +130 -31
  127. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  128. package/dist/cdn/runtime/snice-runtime.min.js +1 -1
  129. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  130. package/dist/cdn/sankey/snice-sankey.js +1 -1
  131. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  132. package/dist/cdn/select/snice-select.js +1 -1
  133. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  134. package/dist/cdn/slider/snice-slider.js +1 -1
  135. package/dist/cdn/sortable/snice-sortable.js +1 -1
  136. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  137. package/dist/cdn/spinner/snice-spinner.js +1 -1
  138. package/dist/cdn/split-button/snice-split-button.js +1 -1
  139. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  140. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  141. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  142. package/dist/cdn/step-input/snice-step-input.js +1 -1
  143. package/dist/cdn/stepper/snice-stepper.js +1 -1
  144. package/dist/cdn/switch/snice-switch.js +1 -1
  145. package/dist/cdn/table/README.md +2 -2
  146. package/dist/cdn/table/snice-table.esm.js +227 -36
  147. package/dist/cdn/table/snice-table.esm.js.map +1 -1
  148. package/dist/cdn/table/snice-table.esm.min.js +69 -48
  149. package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
  150. package/dist/cdn/table/snice-table.js +226 -35
  151. package/dist/cdn/table/snice-table.js.map +1 -1
  152. package/dist/cdn/table/snice-table.min.js +47 -26
  153. package/dist/cdn/table/snice-table.min.js.map +1 -1
  154. package/dist/cdn/tabs/snice-tabs.js +1 -1
  155. package/dist/cdn/tag/snice-tag.js +1 -1
  156. package/dist/cdn/tag-input/README.md +2 -2
  157. package/dist/cdn/tag-input/snice-tag-input.js +10 -16
  158. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -1
  159. package/dist/cdn/tag-input/snice-tag-input.min.js +2 -2
  160. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -1
  161. package/dist/cdn/terminal/snice-terminal.js +1 -1
  162. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  163. package/dist/cdn/textarea/snice-textarea.js +1 -1
  164. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  165. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  166. package/dist/cdn/timeline/snice-timeline.js +1 -1
  167. package/dist/cdn/timer/snice-timer.js +1 -1
  168. package/dist/cdn/toast/snice-toast.js +1 -1
  169. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  170. package/dist/cdn/tree/snice-tree.js +1 -1
  171. package/dist/cdn/treemap/snice-treemap.js +1 -1
  172. package/dist/cdn/user-card/snice-user-card.js +1 -1
  173. package/dist/cdn/video-player/snice-video-player.js +1 -1
  174. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  175. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  176. package/dist/cdn/weather/snice-weather.js +1 -1
  177. package/dist/cdn/work-order/snice-work-order.js +1 -1
  178. package/dist/components/button/snice-button.js +1 -1
  179. package/dist/components/button/snice-button.js.map +1 -1
  180. package/dist/components/calendar/snice-calendar.d.ts +2 -0
  181. package/dist/components/calendar/snice-calendar.js +25 -1
  182. package/dist/components/calendar/snice-calendar.js.map +1 -1
  183. package/dist/components/table/snice-row.d.ts +6 -0
  184. package/dist/components/table/snice-row.js +11 -3
  185. package/dist/components/table/snice-row.js.map +1 -1
  186. package/dist/components/table/snice-table.d.ts +40 -3
  187. package/dist/components/table/snice-table.js +157 -17
  188. package/dist/components/table/snice-table.js.map +1 -1
  189. package/dist/components/table/table-cell-presentation.d.ts +11 -0
  190. package/dist/components/table/table-cell-presentation.js +25 -8
  191. package/dist/components/table/table-cell-presentation.js.map +1 -1
  192. package/dist/components/table/table-export.d.ts +6 -0
  193. package/dist/components/table/table-export.js +11 -2
  194. package/dist/components/table/table-export.js.map +1 -1
  195. package/dist/components/table/table-keyboard.js +1 -1
  196. package/dist/components/table/table-keyboard.js.map +1 -1
  197. package/dist/components/table/table-master-detail.d.ts +11 -2
  198. package/dist/components/table/table-master-detail.js +20 -3
  199. package/dist/components/table/table-master-detail.js.map +1 -1
  200. package/dist/components/tag-input/snice-tag-input.d.ts +2 -2
  201. package/dist/components/tag-input/snice-tag-input.js +9 -15
  202. package/dist/components/tag-input/snice-tag-input.js.map +1 -1
  203. package/dist/index.cjs +127 -28
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.esm.js +127 -28
  206. package/dist/index.esm.js.map +1 -1
  207. package/dist/index.iife.js +127 -28
  208. package/dist/index.iife.js.map +1 -1
  209. package/dist/react/SniceProvider.js +1 -1
  210. package/dist/react/SniceRouter.js +1 -1
  211. package/dist/react/index.js +1 -1
  212. package/dist/react/matchRoute.js +1 -1
  213. package/dist/react/useRequestHandler.js +1 -1
  214. package/dist/request-response.d.ts +24 -1
  215. package/dist/symbols.cjs +1 -1
  216. package/dist/symbols.esm.js +1 -1
  217. package/dist/testing-dom.cjs +1 -1
  218. package/dist/testing-dom.esm.js +1 -1
  219. package/dist/transitions.cjs +1 -1
  220. package/dist/transitions.esm.js +1 -1
  221. package/docs/ai/DEVELOPMENT.md +1 -1
  222. package/docs/ai/components/calendar.md +8 -0
  223. package/docs/ai/components/tag-input.md +4 -0
  224. package/docs/ai/controllers.md +22 -6
  225. package/docs/components/calendar.md +24 -0
  226. package/docs/components/tag-input.md +6 -1
  227. package/docs/controllers.md +57 -6
  228. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"snice-calendar.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/avatar/snice-avatar.js","../../components/calendar/snice-calendar.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","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host([hidden]){display:none}:host{display:inline-block;--avatar-size:2.5rem;--avatar-bg:var(--snice-color-text-tertiary, rgb(115 115 115));--avatar-color:var(--snice-color-text-inverse, rgb(255 255 255))}case,default,if,when{display:contents}.avatar{position:relative;width:var(--avatar-size);height:var(--avatar-size);overflow:hidden;background:var(--avatar-bg);color:var(--avatar-color);display:flex;align-items:center;justify-content:center;font-weight:var(--snice-font-weight-semibold,600);user-select:none}:host([shape=circle]) .avatar{border-radius:50%}:host([shape=square]) .avatar{border-radius:0}:host([shape=rounded]) .avatar{border-radius:var(--snice-border-radius-lg,.5rem)}:host([size=xs]){--avatar-size:1.5rem;font-size:.625rem}:host([size=small]){--avatar-size:2rem;font-size:.75rem}:host([size=medium]){--avatar-size:2.5rem;font-size:.875rem}:host([size=large]){--avatar-size:3rem;font-size:1rem}:host([size=xl]){--avatar-size:4rem;font-size:1.25rem}:host([size=xxl]){--avatar-size:6rem;font-size:2rem}.avatar-image{width:100%;height:100%;object-fit:cover;display:block}.avatar-image--error{display:none}.avatar-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s}.avatar-fallback--visible{opacity:1;visibility:visible}.avatar-icon{width:60%;height:60%;opacity:.9;display:block}.avatar--red{background:var(--avatar-palette-red,rgb(239 68 68))}.avatar--orange{background:var(--avatar-palette-orange,rgb(251 146 60))}.avatar--yellow{background:var(--avatar-palette-yellow,rgb(234 179 8))}.avatar--lime{background:var(--avatar-palette-lime,rgb(163 230 53))}.avatar--green{background:var(--avatar-palette-green,rgb(34 197 94))}.avatar--teal{background:var(--avatar-palette-teal,rgb(20 184 166))}.avatar--cyan{background:var(--avatar-palette-cyan,rgb(6 182 212))}.avatar--sky{background:var(--avatar-palette-sky,rgb(14 165 233))}.avatar--blue{background:var(--avatar-palette-blue,rgb(59 130 246))}.avatar--indigo{background:var(--avatar-palette-indigo,rgb(99 102 241))}.avatar--violet{background:var(--avatar-palette-violet,rgb(139 92 246))}.avatar--purple{background:var(--avatar-palette-purple,rgb(168 85 247))}.avatar--fuchsia{background:var(--avatar-palette-fuchsia,rgb(217 70 239))}.avatar--pink{background:var(--avatar-palette-pink,rgb(236 72 153))}.avatar--rose{background:var(--avatar-palette-rose,rgb(244 63 94))}:host(.avatar-group-item){margin-left:-.5rem;border:2px solid var(--snice-color-surface,rgb(255 255 255));border-radius:50%}:host(.avatar-group-item:first-child){margin-left:0}:host(.avatar-group-item) .avatar{border:2px solid var(--snice-color-surface,rgb(255 255 255))}\";\n\nlet SniceAvatar = (() => {\n let _classDecorators = [element('snice-avatar')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _src_decorators;\n let _src_initializers = [];\n let _src_extraInitializers = [];\n let _alt_decorators;\n let _alt_initializers = [];\n let _alt_extraInitializers = [];\n let _name_decorators;\n let _name_initializers = [];\n let _name_extraInitializers = [];\n let _size_decorators;\n let _size_initializers = [];\n let _size_extraInitializers = [];\n let _shape_decorators;\n let _shape_initializers = [];\n let _shape_extraInitializers = [];\n let _loading_decorators;\n let _loading_initializers = [];\n let _loading_extraInitializers = [];\n let _fallbackColor_decorators;\n let _fallbackColor_initializers = [];\n let _fallbackColor_extraInitializers = [];\n let _fallbackBackground_decorators;\n let _fallbackBackground_initializers = [];\n let _fallbackBackground_extraInitializers = [];\n let _imageElement_decorators;\n let _imageElement_initializers = [];\n let _imageElement_extraInitializers = [];\n let _fallbackElement_decorators;\n let _fallbackElement_initializers = [];\n let _fallbackElement_extraInitializers = [];\n let _imageError_decorators;\n let _imageError_initializers = [];\n let _imageError_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.src = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _src_initializers, ''));\n this.alt = (__runInitializers(this, _src_extraInitializers), __runInitializers(this, _alt_initializers, ''));\n this.name = (__runInitializers(this, _alt_extraInitializers), __runInitializers(this, _name_initializers, ''));\n this.size = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));\n this.shape = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _shape_initializers, 'circle'));\n this.loading = (__runInitializers(this, _shape_extraInitializers), __runInitializers(this, _loading_initializers, 'lazy'));\n this.fallbackColor = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _fallbackColor_initializers, '#ffffff'));\n this.fallbackBackground = (__runInitializers(this, _fallbackColor_extraInitializers), __runInitializers(this, _fallbackBackground_initializers, ''));\n this.imageElement = (__runInitializers(this, _fallbackBackground_extraInitializers), __runInitializers(this, _imageElement_initializers, void 0));\n this.fallbackElement = (__runInitializers(this, _imageElement_extraInitializers), __runInitializers(this, _fallbackElement_initializers, void 0));\n this.imageError = (__runInitializers(this, _fallbackElement_extraInitializers), __runInitializers(this, _imageError_initializers, false));\n this.handleImageLoad = (__runInitializers(this, _imageError_extraInitializers), () => {\n this.imageError = false;\n });\n this.handleImageError = () => {\n this.imageError = true;\n };\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _src_decorators = [property({})];\n _alt_decorators = [property({})];\n _name_decorators = [property({})];\n _size_decorators = [property({})];\n _shape_decorators = [property({})];\n _loading_decorators = [property({})];\n _fallbackColor_decorators = [property({ attribute: 'fallback-color', })];\n _fallbackBackground_decorators = [property({ attribute: 'fallback-background', })];\n _imageElement_decorators = [query('.avatar-image')];\n _fallbackElement_decorators = [query('.avatar-fallback')];\n _imageError_decorators = [property({ type: Boolean, attribute: false })];\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, _src_decorators, { kind: \"field\", name: \"src\", static: false, private: false, access: { has: obj => \"src\" in obj, get: obj => obj.src, set: (obj, value) => { obj.src = value; } }, metadata: _metadata }, _src_initializers, _src_extraInitializers);\n __esDecorate(null, null, _alt_decorators, { kind: \"field\", name: \"alt\", static: false, private: false, access: { has: obj => \"alt\" in obj, get: obj => obj.alt, set: (obj, value) => { obj.alt = value; } }, metadata: _metadata }, _alt_initializers, _alt_extraInitializers);\n __esDecorate(null, null, _name_decorators, { kind: \"field\", name: \"name\", static: false, private: false, access: { has: obj => \"name\" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_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, _shape_decorators, { kind: \"field\", name: \"shape\", static: false, private: false, access: { has: obj => \"shape\" in obj, get: obj => obj.shape, set: (obj, value) => { obj.shape = value; } }, metadata: _metadata }, _shape_initializers, _shape_extraInitializers);\n __esDecorate(null, null, _loading_decorators, { kind: \"field\", name: \"loading\", static: false, private: false, access: { has: obj => \"loading\" in obj, get: obj => obj.loading, set: (obj, value) => { obj.loading = value; } }, metadata: _metadata }, _loading_initializers, _loading_extraInitializers);\n __esDecorate(null, null, _fallbackColor_decorators, { kind: \"field\", name: \"fallbackColor\", static: false, private: false, access: { has: obj => \"fallbackColor\" in obj, get: obj => obj.fallbackColor, set: (obj, value) => { obj.fallbackColor = value; } }, metadata: _metadata }, _fallbackColor_initializers, _fallbackColor_extraInitializers);\n __esDecorate(null, null, _fallbackBackground_decorators, { kind: \"field\", name: \"fallbackBackground\", static: false, private: false, access: { has: obj => \"fallbackBackground\" in obj, get: obj => obj.fallbackBackground, set: (obj, value) => { obj.fallbackBackground = value; } }, metadata: _metadata }, _fallbackBackground_initializers, _fallbackBackground_extraInitializers);\n __esDecorate(null, null, _imageElement_decorators, { kind: \"field\", name: \"imageElement\", static: false, private: false, access: { has: obj => \"imageElement\" in obj, get: obj => obj.imageElement, set: (obj, value) => { obj.imageElement = value; } }, metadata: _metadata }, _imageElement_initializers, _imageElement_extraInitializers);\n __esDecorate(null, null, _fallbackElement_decorators, { kind: \"field\", name: \"fallbackElement\", static: false, private: false, access: { has: obj => \"fallbackElement\" in obj, get: obj => obj.fallbackElement, set: (obj, value) => { obj.fallbackElement = value; } }, metadata: _metadata }, _fallbackElement_initializers, _fallbackElement_extraInitializers);\n __esDecorate(null, null, _imageError_decorators, { kind: \"field\", name: \"imageError\", static: false, private: false, access: { has: obj => \"imageError\" in obj, get: obj => obj.imageError, set: (obj, value) => { obj.imageError = value; } }, metadata: _metadata }, _imageError_initializers, _imageError_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 colorClass = this.fallbackBackground ? '' : this.getColorClass(this.name);\n const bgStyle = this.fallbackBackground ? `--avatar-bg: ${this.fallbackBackground}; --avatar-color: ${this.fallbackColor}` : '';\n const initials = this.getInitials(this.name);\n const avatarClasses = ['avatar', colorClass].filter(Boolean).join(' ');\n const imageClasses = ['avatar-image', this.imageError ? 'avatar-image--error' : ''].filter(Boolean).join(' ');\n const fallbackClasses = ['avatar-fallback', !this.src || this.imageError ? 'avatar-fallback--visible' : ''].filter(Boolean).join(' ');\n return html /*html*/ `\n <div part=\"base\" class=\"${avatarClasses}\" style=\"${bgStyle}\">\n <if ${this.src}>\n <img part=\"image\" class=\"${imageClasses}\"\n src=\"${this.src}\"\n alt=\"${this.alt || this.name}\"\n loading=\"${this.loading}\"\n @load=${this.handleImageLoad}\n @error=${this.handleImageError}>\n </if>\n <div part=\"fallback\" class=\"${fallbackClasses}\">\n <case ${initials}>\n <when value=\"\">\n <svg class=\"avatar-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"/>\n </svg>\n </when>\n <default>\n ${initials}\n </default>\n </case>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n getInitials(name) {\n if (!name)\n return '';\n const words = name.trim().split(/\\s+/).filter(w => w.length > 0);\n if (words.length === 0)\n return '';\n if (words.length === 1) {\n return words[0][0].toUpperCase();\n }\n // Use first and second word (not first and last)\n return (words[0][0] + words[1][0]).toUpperCase();\n }\n getColorClass(name) {\n if (!name)\n return '';\n const colors = [\n 'red', 'orange', 'yellow', 'lime', 'green',\n 'teal', 'cyan', 'sky', 'blue', 'indigo',\n 'violet', 'purple', 'fuchsia', 'pink', 'rose'\n ];\n // Hash the name to get a consistent index\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n const colorIndex = Math.abs(hash) % colors.length;\n return `avatar--${colors[colorIndex]}`;\n }\n renderIcon() {\n return html /*html*/ `\n <svg class=\"avatar-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"/>\n </svg>\n `;\n }\n });\n return _classThis;\n})();\n\nexport { SniceAvatar };\n//# sourceMappingURL=snice-avatar.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, dispatch, styles, ready, request, dispose, watch, css } from 'snice';\nimport '../avatar/snice-avatar.js';\n\nvar cssContent = \":host([hidden]){display:none}:host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style}.calendar{width:100%;max-width:37.5rem}.calendar__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem);background:var(--snice-color-surface,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__title{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))}.calendar__nav{display:flex;gap:var(--snice-spacing-xs,.5rem)}.calendar__nav-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));background:var(--snice-color-surface,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text,rgb(23 23 23));font-family:inherit}.calendar__nav-button:hover{background:var(--snice-color-surface-container-low,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.calendar__nav-button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--snice-color-surface,rgb(255 255 255));container-type:inline-size}.calendar__weekday{padding:var(--snice-spacing-sm,.75rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-secondary,rgb(82 82 82));text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em);border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day{box-sizing:border-box;min-width:0;min-height:max(calc(100cqw / 7),3rem,calc(2.125rem + var(--calendar-week-lanes,0) * 1.375rem + var(--calendar-week-more,0rem)));padding:var(--snice-spacing-xs,.5rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-top:none;border-left:none;cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;position:relative;background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));overflow:hidden}.calendar__day:hover{background:var(--snice-color-surface-container-low,rgb(250 250 250))}.calendar__day:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day--stretch{min-height:max(3rem,calc(2.125rem + var(--calendar-week-lanes,0) * 1.375rem + var(--calendar-week-more,0rem)))}.calendar__day--static{cursor:default}.calendar__day--static:hover{background:var(--snice-color-surface,rgb(255 255 255))}.calendar__day--static.calendar__day--today:hover{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.calendar__day--other-month{background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5}.calendar__day--other-month:hover{opacity:.7}.calendar__day--today{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.calendar__day--today:hover{background:var(--snice-color-primary-subtle-hover,rgb(219 234 254))}.calendar__day--selected{background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__day--selected:hover{background:var(--snice-color-primary-hover,rgb(29 78 216))}.calendar__day--disabled{background:var(--snice-color-surface-container,rgb(241 241 241));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5;cursor:not-allowed}.calendar__day--disabled:hover{background:var(--snice-color-surface-container,rgb(241 241 241))}.calendar__day-number{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);margin-bottom:var(--snice-spacing-2xs,.25rem)}.calendar__day--selected .calendar__day-number{color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__event-bar{display:flex;align-items:center;gap:var(--snice-spacing-3xs,.125rem);align-self:start;margin-top:calc(1.875rem + var(--calendar-event-lane,0) * 1.375rem);margin-inline:var(--snice-spacing-3xs,0.125rem);height:1.125rem;line-height:1.125rem;font-size:var(--snice-font-size-2xs, .625rem);padding:0 var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-sm,.125rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));white-space:nowrap;overflow:hidden;cursor:pointer;z-index:1;transition:opacity var(--snice-transition-fast, 150ms) ease}.calendar__event-title{overflow:hidden;text-overflow:ellipsis;min-width:0}.calendar__event-avatar{flex:none;--avatar-size:0.875rem;font-size:.375rem;border-radius:50%;overflow:hidden}.calendar__popover{position:fixed;z-index:var(--snice-z-floating,1000);min-width:14rem;max-width:22rem;padding:var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));font-size:var(--snice-font-size-sm, .875rem);line-height:1.5;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1))}.calendar__popover:focus-visible{outline:0;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1)),0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__popover-loading{color:var(--snice-color-text-secondary,rgb(82 82 82));font-size:var(--snice-font-size-xs, .75rem)}.calendar__tooltip{position:fixed;z-index:var(--snice-z-floating,1000);max-width:18rem;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-tooltip-bg,rgb(51 51 51));color:var(--snice-color-text-inverse,rgb(250 250 250));font-size:var(--snice-font-size-xs, .75rem);line-height:1.4;box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1));pointer-events:none}.calendar__event-bar:hover{opacity:.8}.calendar__event-bar--continues-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-inline-start:0}.calendar__event-bar--continues-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-inline-end:0}.calendar__more{position:absolute;bottom:var(--snice-spacing-3xs,.125rem);left:var(--snice-spacing-2xs,.25rem);font-size:var(--snice-font-size-2xs, .625rem);color:var(--snice-color-text-secondary,rgb(82 82 82))}.calendar__week-number{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115));background:var(--snice-color-surface-container-low,rgb(250 250 250));border-right:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:7.5rem}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:25rem}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceCalendar = (() => {\n let _classDecorators = [element('snice-calendar')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _value_decorators;\n let _value_initializers = [];\n let _value_extraInitializers = [];\n let _view_decorators;\n let _view_initializers = [];\n let _view_extraInitializers = [];\n let _events_decorators;\n let _events_initializers = [];\n let _events_extraInitializers = [];\n let _minDate_decorators;\n let _minDate_initializers = [];\n let _minDate_extraInitializers = [];\n let _maxDate_decorators;\n let _maxDate_initializers = [];\n let _maxDate_extraInitializers = [];\n let _disabledDates_decorators;\n let _disabledDates_initializers = [];\n let _disabledDates_extraInitializers = [];\n let _highlightToday_decorators;\n let _highlightToday_initializers = [];\n let _highlightToday_extraInitializers = [];\n let _showWeekNumbers_decorators;\n let _showWeekNumbers_initializers = [];\n let _showWeekNumbers_extraInitializers = [];\n let _firstDayOfWeek_decorators;\n let _firstDayOfWeek_initializers = [];\n let _firstDayOfWeek_extraInitializers = [];\n let _locale_decorators;\n let _locale_initializers = [];\n let _locale_extraInitializers = [];\n let _noDaySelect_decorators;\n let _noDaySelect_initializers = [];\n let _noDaySelect_extraInitializers = [];\n let _cellSizing_decorators;\n let _cellSizing_initializers = [];\n let _cellSizing_extraInitializers = [];\n let _eventTooltip_decorators;\n let _eventTooltip_initializers = [];\n let _eventTooltip_extraInitializers = [];\n let _eventPopover_decorators;\n let _eventPopover_initializers = [];\n let _eventPopover_extraInitializers = [];\n let _dispatchChange_decorators;\n let _dispatchEventClick_decorators;\n let _styles_decorators;\n let _initialize_decorators;\n let _requestEventPopoverContent_decorators;\n let _cleanupPopover_decorators;\n let _handlePropertyChange_decorators;\n let _handleWeekdayInputsChange_decorators;\n var SniceCalendar = class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.value = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, new Date()));\n this.view = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _view_initializers, 'month'));\n this.events = (__runInitializers(this, _view_extraInitializers), __runInitializers(this, _events_initializers, []));\n this.minDate = (__runInitializers(this, _events_extraInitializers), __runInitializers(this, _minDate_initializers, ''));\n this.maxDate = (__runInitializers(this, _minDate_extraInitializers), __runInitializers(this, _maxDate_initializers, ''));\n this.disabledDates = (__runInitializers(this, _maxDate_extraInitializers), __runInitializers(this, _disabledDates_initializers, []));\n this.highlightToday = (__runInitializers(this, _disabledDates_extraInitializers), __runInitializers(this, _highlightToday_initializers, true));\n this.showWeekNumbers = (__runInitializers(this, _highlightToday_extraInitializers), __runInitializers(this, _showWeekNumbers_initializers, false));\n this.firstDayOfWeek = (__runInitializers(this, _showWeekNumbers_extraInitializers), __runInitializers(this, _firstDayOfWeek_initializers, 0)); // 0 = Sunday, 1 = Monday\n this.locale = (__runInitializers(this, _firstDayOfWeek_extraInitializers), __runInitializers(this, _locale_initializers, 'en-US'));\n this.noDaySelect = (__runInitializers(this, _locale_extraInitializers), __runInitializers(this, _noDaySelect_initializers, false));\n this.cellSizing = (__runInitializers(this, _noDaySelect_extraInitializers), __runInitializers(this, _cellSizing_initializers, 'square'));\n this.eventTooltip = (__runInitializers(this, _cellSizing_extraInitializers), __runInitializers(this, _eventTooltip_initializers, null));\n this.eventPopover = (__runInitializers(this, _eventTooltip_extraInitializers), __runInitializers(this, _eventPopover_initializers, null));\n this.displayDate = (__runInitializers(this, _eventPopover_extraInitializers), new Date());\n this.tooltipToken = 0;\n this.tooltipBar = null;\n this.popoverToken = 0;\n this.popoverBar = null;\n this.boundPopoverEscape = (e) => {\n if (e.key === 'Escape' && this.popoverBar)\n this.closeEventPopover();\n };\n this.boundPopoverOutside = (e) => {\n if (!this.popoverBar)\n return;\n if (e.composedPath().includes(this.popoverEl))\n return;\n this.closeEventPopover({ returnFocus: false });\n };\n this.dayCells = [];\n this.focusedDate = null;\n this.handleGridKeydown = (e) => {\n const target = e.target;\n const currentDate = target.__date;\n if (!currentDate)\n return;\n let delta = null;\n let monthStep = null;\n switch (e.key) {\n case 'ArrowLeft':\n delta = -1;\n break;\n case 'ArrowRight':\n delta = 1;\n break;\n case 'ArrowUp':\n delta = -7;\n break;\n case 'ArrowDown':\n delta = 7;\n break;\n case 'Home':\n delta = -currentDate.getDay();\n break;\n case 'End':\n delta = 6 - currentDate.getDay();\n break;\n case 'PageUp':\n monthStep = -1;\n break;\n case 'PageDown':\n monthStep = 1;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n this.handleDayClick(currentDate);\n return;\n default: return;\n }\n e.preventDefault();\n const next = new Date(currentDate);\n if (delta !== null)\n next.setDate(currentDate.getDate() + delta);\n if (monthStep !== null)\n next.setMonth(currentDate.getMonth() + monthStep);\n // If moved outside the displayed month, navigate.\n if (next.getMonth() !== this.displayDate.getMonth() ||\n next.getFullYear() !== this.displayDate.getFullYear()) {\n this.displayDate = new Date(next.getFullYear(), next.getMonth(), 1);\n }\n this.focusedDate = next;\n this.updateView();\n // Move focus to the newly-selected cell after DOM update.\n const sameAs = (d, e2) => d.getFullYear() === e2.getFullYear() &&\n d.getMonth() === e2.getMonth() &&\n d.getDate() === e2.getDate();\n requestAnimationFrame(() => {\n const cell = this.dayCells.find(c => sameAs(c.__date, next));\n cell?.focus();\n });\n };\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _value_decorators = [property({ type: Date })];\n _view_decorators = [property({ attribute: 'view' })];\n _events_decorators = [property({ type: Array, attribute: false })];\n _minDate_decorators = [property({ type: Date, attribute: 'min-date' })];\n _maxDate_decorators = [property({ type: Date, attribute: 'max-date' })];\n _disabledDates_decorators = [property({ type: Array, attribute: false })];\n _highlightToday_decorators = [property({ type: Boolean, attribute: 'highlight-today' })];\n _showWeekNumbers_decorators = [property({ type: Boolean, attribute: 'show-week-numbers' })];\n _firstDayOfWeek_decorators = [property({ type: Number, attribute: 'first-day-of-week' })];\n _locale_decorators = [property({ attribute: 'locale' })];\n _noDaySelect_decorators = [property({ type: Boolean, attribute: 'no-day-select' })];\n _cellSizing_decorators = [property({ attribute: 'cell-sizing' })];\n _eventTooltip_decorators = [property({ attribute: false })];\n _eventPopover_decorators = [property({ attribute: false })];\n _dispatchChange_decorators = [dispatch('calendar-change', { bubbles: true, composed: true })];\n _dispatchEventClick_decorators = [dispatch('calendar-event-click', { bubbles: true, composed: true })];\n _styles_decorators = [styles()];\n _initialize_decorators = [ready()];\n _requestEventPopoverContent_decorators = [request('calendar/event-popover')];\n _cleanupPopover_decorators = [dispose()];\n _handlePropertyChange_decorators = [watch('value'), watch('events'), watch('eventTooltip'), watch('noDaySelect'), watch('cellSizing')];\n _handleWeekdayInputsChange_decorators = [watch('locale'), watch('firstDayOfWeek')];\n __esDecorate(this, null, _dispatchChange_decorators, { kind: \"method\", name: \"dispatchChange\", static: false, private: false, access: { has: obj => \"dispatchChange\" in obj, get: obj => obj.dispatchChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _dispatchEventClick_decorators, { kind: \"method\", name: \"dispatchEventClick\", static: false, private: false, access: { has: obj => \"dispatchEventClick\" in obj, get: obj => obj.dispatchEventClick }, 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, _initialize_decorators, { kind: \"method\", name: \"initialize\", static: false, private: false, access: { has: obj => \"initialize\" in obj, get: obj => obj.initialize }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _requestEventPopoverContent_decorators, { kind: \"method\", name: \"requestEventPopoverContent\", static: false, private: false, access: { has: obj => \"requestEventPopoverContent\" in obj, get: obj => obj.requestEventPopoverContent }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanupPopover_decorators, { kind: \"method\", name: \"cleanupPopover\", static: false, private: false, access: { has: obj => \"cleanupPopover\" in obj, get: obj => obj.cleanupPopover }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handlePropertyChange_decorators, { kind: \"method\", name: \"handlePropertyChange\", static: false, private: false, access: { has: obj => \"handlePropertyChange\" in obj, get: obj => obj.handlePropertyChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleWeekdayInputsChange_decorators, { kind: \"method\", name: \"handleWeekdayInputsChange\", static: false, private: false, access: { has: obj => \"handleWeekdayInputsChange\" in obj, get: obj => obj.handleWeekdayInputsChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _value_decorators, { kind: \"field\", name: \"value\", static: false, private: false, access: { has: obj => \"value\" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);\n __esDecorate(null, null, _view_decorators, { kind: \"field\", name: \"view\", static: false, private: false, access: { has: obj => \"view\" in obj, get: obj => obj.view, set: (obj, value) => { obj.view = value; } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);\n __esDecorate(null, null, _events_decorators, { kind: \"field\", name: \"events\", static: false, private: false, access: { has: obj => \"events\" in obj, get: obj => obj.events, set: (obj, value) => { obj.events = value; } }, metadata: _metadata }, _events_initializers, _events_extraInitializers);\n __esDecorate(null, null, _minDate_decorators, { kind: \"field\", name: \"minDate\", static: false, private: false, access: { has: obj => \"minDate\" in obj, get: obj => obj.minDate, set: (obj, value) => { obj.minDate = value; } }, metadata: _metadata }, _minDate_initializers, _minDate_extraInitializers);\n __esDecorate(null, null, _maxDate_decorators, { kind: \"field\", name: \"maxDate\", static: false, private: false, access: { has: obj => \"maxDate\" in obj, get: obj => obj.maxDate, set: (obj, value) => { obj.maxDate = value; } }, metadata: _metadata }, _maxDate_initializers, _maxDate_extraInitializers);\n __esDecorate(null, null, _disabledDates_decorators, { kind: \"field\", name: \"disabledDates\", static: false, private: false, access: { has: obj => \"disabledDates\" in obj, get: obj => obj.disabledDates, set: (obj, value) => { obj.disabledDates = value; } }, metadata: _metadata }, _disabledDates_initializers, _disabledDates_extraInitializers);\n __esDecorate(null, null, _highlightToday_decorators, { kind: \"field\", name: \"highlightToday\", static: false, private: false, access: { has: obj => \"highlightToday\" in obj, get: obj => obj.highlightToday, set: (obj, value) => { obj.highlightToday = value; } }, metadata: _metadata }, _highlightToday_initializers, _highlightToday_extraInitializers);\n __esDecorate(null, null, _showWeekNumbers_decorators, { kind: \"field\", name: \"showWeekNumbers\", static: false, private: false, access: { has: obj => \"showWeekNumbers\" in obj, get: obj => obj.showWeekNumbers, set: (obj, value) => { obj.showWeekNumbers = value; } }, metadata: _metadata }, _showWeekNumbers_initializers, _showWeekNumbers_extraInitializers);\n __esDecorate(null, null, _firstDayOfWeek_decorators, { kind: \"field\", name: \"firstDayOfWeek\", static: false, private: false, access: { has: obj => \"firstDayOfWeek\" in obj, get: obj => obj.firstDayOfWeek, set: (obj, value) => { obj.firstDayOfWeek = value; } }, metadata: _metadata }, _firstDayOfWeek_initializers, _firstDayOfWeek_extraInitializers);\n __esDecorate(null, null, _locale_decorators, { kind: \"field\", name: \"locale\", static: false, private: false, access: { has: obj => \"locale\" in obj, get: obj => obj.locale, set: (obj, value) => { obj.locale = value; } }, metadata: _metadata }, _locale_initializers, _locale_extraInitializers);\n __esDecorate(null, null, _noDaySelect_decorators, { kind: \"field\", name: \"noDaySelect\", static: false, private: false, access: { has: obj => \"noDaySelect\" in obj, get: obj => obj.noDaySelect, set: (obj, value) => { obj.noDaySelect = value; } }, metadata: _metadata }, _noDaySelect_initializers, _noDaySelect_extraInitializers);\n __esDecorate(null, null, _cellSizing_decorators, { kind: \"field\", name: \"cellSizing\", static: false, private: false, access: { has: obj => \"cellSizing\" in obj, get: obj => obj.cellSizing, set: (obj, value) => { obj.cellSizing = value; } }, metadata: _metadata }, _cellSizing_initializers, _cellSizing_extraInitializers);\n __esDecorate(null, null, _eventTooltip_decorators, { kind: \"field\", name: \"eventTooltip\", static: false, private: false, access: { has: obj => \"eventTooltip\" in obj, get: obj => obj.eventTooltip, set: (obj, value) => { obj.eventTooltip = value; } }, metadata: _metadata }, _eventTooltip_initializers, _eventTooltip_extraInitializers);\n __esDecorate(null, null, _eventPopover_decorators, { kind: \"field\", name: \"eventPopover\", static: false, private: false, access: { has: obj => \"eventPopover\" in obj, get: obj => obj.eventPopover, set: (obj, value) => { obj.eventPopover = value; } }, metadata: _metadata }, _eventPopover_initializers, _eventPopover_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n SniceCalendar = _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n computeRovingIndex(days) {\n // Prefer: focused → selected → today → first in-month day\n const same = (a, b) => a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n if (this.focusedDate) {\n const idx = days.findIndex(d => same(d, this.focusedDate));\n if (idx >= 0)\n return idx;\n }\n if (this.value) {\n const s = this.value instanceof Date ? this.value : new Date(this.value);\n if (!isNaN(s.getTime())) {\n const idx = days.findIndex(d => same(d, s));\n if (idx >= 0)\n return idx;\n }\n }\n const today = new Date();\n const tIdx = days.findIndex(d => same(d, today));\n if (tIdx >= 0)\n return tIdx;\n return days.findIndex(d => d.getMonth() === this.displayDate.getMonth());\n }\n dispatchChange() {\n return { value: this.value, calendar: this };\n }\n dispatchEventClick(event) {\n return { event, calendar: this };\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n initialize() {\n this.createDOM();\n this.updateView();\n }\n createDOM() {\n const shadow = this.shadowRoot;\n // Create container\n this.container = document.createElement('div');\n this.container.className = `calendar calendar--${this.view}`;\n this.container.setAttribute('part', 'base');\n // Create header\n this.header = document.createElement('div');\n this.header.className = 'calendar__header';\n this.header.setAttribute('part', 'header');\n const title = document.createElement('div');\n title.className = 'calendar__title';\n const nav = document.createElement('div');\n nav.className = 'calendar__nav';\n const todayBtn = document.createElement('button');\n todayBtn.className = 'calendar__nav-button';\n todayBtn.textContent = 'Today';\n todayBtn.onclick = () => this.goToToday();\n const prevBtn = document.createElement('button');\n prevBtn.className = 'calendar__nav-button';\n prevBtn.textContent = '‹';\n prevBtn.onclick = () => this.previousMonth();\n const nextBtn = document.createElement('button');\n nextBtn.className = 'calendar__nav-button';\n nextBtn.textContent = '›';\n nextBtn.onclick = () => this.nextMonth();\n nav.appendChild(todayBtn);\n nav.appendChild(prevBtn);\n nav.appendChild(nextBtn);\n this.header.appendChild(title);\n this.header.appendChild(nav);\n // Create grid\n this.grid = document.createElement('div');\n this.grid.className = 'calendar__grid';\n this.grid.setAttribute('part', 'grid');\n // Add weekday headers. Every grid child gets an explicit position —\n // event stripe bars are placed explicitly, and mixing explicit items\n // with auto-flow would push auto-placed cells out of their slots.\n const weekdays = this.getWeekdays();\n weekdays.forEach((day, i) => {\n const weekdayEl = document.createElement('div');\n weekdayEl.className = 'calendar__weekday';\n weekdayEl.textContent = day;\n weekdayEl.style.gridRow = '1';\n weekdayEl.style.gridColumn = String(i + 1);\n this.grid.appendChild(weekdayEl);\n });\n // Mark grid for a11y\n this.grid.setAttribute('role', 'grid');\n this.grid.setAttribute('aria-label', 'Calendar');\n this.grid.addEventListener('keydown', this.handleGridKeydown);\n // Create 42 day cells\n for (let i = 0; i < 42; i++) {\n const dayCell = document.createElement('div');\n dayCell.className = 'calendar__day';\n dayCell.setAttribute('role', 'gridcell');\n // Roving tabindex: only one cell is tabbable at a time. Start by\n // making the first cell tabbable; updateView re-targets the focused\n // date so today/selected gets the 0.\n dayCell.setAttribute('tabindex', i === 0 ? '0' : '-1');\n dayCell.style.gridRow = String(Math.floor(i / 7) + 2);\n dayCell.style.gridColumn = String((i % 7) + 1);\n const dayNumber = document.createElement('div');\n dayNumber.className = 'calendar__day-number';\n dayCell.appendChild(dayNumber);\n this.grid.appendChild(dayCell);\n this.dayCells.push(dayCell);\n }\n // Shared tooltip overlay for event bars — one element, repositioned per\n // bar, so rich content can load lazily without a tooltip instance per bar.\n this.tooltipEl = document.createElement('div');\n this.tooltipEl.className = 'calendar__tooltip';\n this.tooltipEl.setAttribute('part', 'event-tooltip');\n this.tooltipEl.setAttribute('role', 'tooltip');\n this.tooltipEl.id = 'calendar-event-tooltip';\n this.tooltipEl.hidden = true;\n // Interactive click-to-open popover for event details. One shared panel,\n // anchored per bar; content may load lazily (provider or the\n // calendar/event-popover request channel).\n this.popoverEl = document.createElement('div');\n this.popoverEl.className = 'calendar__popover';\n this.popoverEl.setAttribute('part', 'event-popover');\n this.popoverEl.setAttribute('role', 'dialog');\n this.popoverEl.setAttribute('aria-label', 'Event details');\n this.popoverEl.tabIndex = -1;\n this.popoverEl.hidden = true;\n this.container.appendChild(this.header);\n this.container.appendChild(this.grid);\n this.container.appendChild(this.tooltipEl);\n this.container.appendChild(this.popoverEl);\n shadow.appendChild(this.container);\n }\n /**\n * Dynamic popover channel: yields `{ event }` so any\n * `@respond('calendar/event-popover')` controller can return the content.\n */\n async *requestEventPopoverContent(event) {\n return await (yield { event });\n }\n async openEventPopover(bar, event) {\n const token = ++this.popoverToken;\n this.hideEventTooltip();\n // Anchor + loading shell first, so slow content still feels responsive.\n this.popoverBar = bar;\n this.popoverEl.replaceChildren();\n const loading = document.createElement('div');\n loading.className = 'calendar__popover-loading';\n loading.textContent = 'Loading…';\n this.popoverEl.appendChild(loading);\n this.popoverEl.hidden = false;\n this.positionPopover(bar);\n document.addEventListener('keydown', this.boundPopoverEscape, true);\n document.addEventListener('mousedown', this.boundPopoverOutside, true);\n let content;\n try {\n if (event.popover !== true && event.popover) {\n content = typeof event.popover === 'function' ? event.popover() : event.popover;\n }\n else if (this.eventPopover) {\n content = await this.eventPopover(event);\n }\n else {\n content = await this.requestEventPopoverContent(event);\n }\n }\n catch {\n // No responder discovered (or the provider failed) — close quietly.\n content = undefined;\n }\n if (token !== this.popoverToken)\n return; // closed (or replaced) meanwhile\n if (content == null) {\n console.warn(`[snice-calendar] event \"${String(event.id)}\" enables a popover but no content was provided — set eventPopover, event.popover content, or a @respond('calendar/event-popover') handler.`);\n this.closeEventPopover({ returnFocus: false });\n return;\n }\n if (typeof content === 'string')\n this.popoverEl.textContent = content;\n else\n this.popoverEl.replaceChildren(content);\n this.positionPopover(bar);\n this.popoverEl.focus();\n }\n positionPopover(bar) {\n const rect = bar.getBoundingClientRect();\n this.popoverEl.style.left = `${Math.max(4, rect.left)}px`;\n this.popoverEl.style.top = `${rect.bottom + 6}px`;\n }\n closeEventPopover(options = {}) {\n if (!this.popoverBar)\n return;\n this.popoverToken++;\n const bar = this.popoverBar;\n this.popoverBar = null;\n this.popoverEl.hidden = true;\n this.popoverEl.replaceChildren();\n document.removeEventListener('keydown', this.boundPopoverEscape, true);\n document.removeEventListener('mousedown', this.boundPopoverOutside, true);\n if (options.returnFocus !== false && bar.isConnected)\n bar.focus();\n }\n cleanupPopover() {\n document.removeEventListener('keydown', this.boundPopoverEscape, true);\n document.removeEventListener('mousedown', this.boundPopoverOutside, true);\n }\n async showEventTooltip(bar, event) {\n const token = ++this.tooltipToken;\n const provider = this.eventTooltip;\n let content;\n if (provider) {\n try {\n content = await provider(event);\n }\n catch {\n content = event.tooltip;\n }\n }\n else {\n content = event.tooltip;\n }\n // Pointer already left (or moved to another bar) while loading.\n if (token !== this.tooltipToken || content == null)\n return;\n if (typeof content === 'string')\n this.tooltipEl.textContent = content;\n else\n this.tooltipEl.replaceChildren(content);\n this.tooltipEl.hidden = false;\n this.tooltipBar = bar;\n bar.setAttribute('aria-describedby', this.tooltipEl.id);\n // Fixed positioning above the bar, clamped to the viewport.\n const rect = bar.getBoundingClientRect();\n this.tooltipEl.style.left = `${Math.max(4, rect.left)}px`;\n this.tooltipEl.style.top = `${Math.max(4, rect.top - this.tooltipEl.offsetHeight - 6)}px`;\n }\n hideEventTooltip() {\n this.tooltipToken++;\n this.tooltipEl.hidden = true;\n this.tooltipBar?.removeAttribute('aria-describedby');\n this.tooltipBar = null;\n }\n updateView() {\n // Update header title\n const monthName = this.displayDate.toLocaleDateString(this.locale, { month: 'long', year: 'numeric' });\n const titleEl = this.header.querySelector('.calendar__title');\n if (titleEl)\n titleEl.textContent = monthName;\n // Update day cells\n const days = this.getMonthDays();\n const currentMonth = this.displayDate.getMonth();\n // Resolve which cell should be tab-stoppable (roving tabindex).\n const rovingIndex = this.computeRovingIndex(days);\n days.forEach((date, i) => {\n const cell = this.dayCells[i];\n if (!cell)\n return;\n const isOtherMonth = date.getMonth() !== currentMonth;\n const isToday = this.highlightToday && this.isToday(date);\n // Display-only mode never shows a selection highlight.\n const isSelected = !this.noDaySelect && this.isSelected(date);\n const isDisabled = this.isDisabled(date);\n // Update classes (preserving role)\n cell.className = 'calendar__day';\n if (isOtherMonth)\n cell.classList.add('calendar__day--other-month');\n if (isToday)\n cell.classList.add('calendar__day--today');\n if (isSelected)\n cell.classList.add('calendar__day--selected');\n if (isDisabled)\n cell.classList.add('calendar__day--disabled');\n if (this.noDaySelect)\n cell.classList.add('calendar__day--static');\n if (this.cellSizing === 'stretch')\n cell.classList.add('calendar__day--stretch');\n cell.setAttribute('role', 'gridcell');\n cell.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n cell.setAttribute('aria-disabled', isDisabled ? 'true' : 'false');\n cell.setAttribute('aria-current', isToday && !isOtherMonth ? 'date' : 'false');\n cell.setAttribute('tabindex', i === rovingIndex ? '0' : '-1');\n cell.setAttribute('aria-label', date.toLocaleDateString(this.locale, { dateStyle: 'full' }));\n cell.__date = date;\n // Update day number\n const dayNumber = cell.querySelector('.calendar__day-number');\n if (dayNumber)\n dayNumber.textContent = String(date.getDate());\n // Update click handler\n cell.onclick = () => this.handleDayClick(date);\n });\n this.renderEventStripes(days);\n }\n /** Visible stacking depth for event stripes; deeper lanes collapse into a\n * per-day \"+N more\" chip. */\n static { this.MAX_EVENT_LANES = 3; }\n /**\n * Render events as continuous stripes: one bar per (event × week row),\n * spanning the event's days in that week and chopped at week boundaries\n * with continues-left/right styling. Overlapping events stack into lanes\n * per week — earlier start first, longer event first on ties — like\n * professional calendars.\n */\n renderEventStripes(days) {\n this.closeEventPopover({ returnFocus: false }); // anchors are re-created\n this.grid.querySelectorAll('.calendar__event-bar').forEach(el => el.remove());\n this.dayCells.forEach(cell => {\n cell.querySelector('.calendar__more')?.remove();\n cell.style.removeProperty('--calendar-week-lanes');\n cell.style.removeProperty('--calendar-week-more');\n });\n if (!this.events || this.events.length === 0)\n return;\n // Local-midnight timestamps for the visible grid; events normalize to the\n // same construction so lookups are exact (and DST-safe).\n const dayTimes = days.map(d => new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime());\n const dayIndex = new Map(dayTimes.map((t, i) => [t, i]));\n const gridStart = dayTimes[0];\n const gridEnd = dayTimes[dayTimes.length - 1];\n const normalize = (d) => {\n const date = typeof d === 'string' ? new Date(d) : d;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n };\n const resolved = [];\n this.events.forEach((event, order) => {\n if (!event.start)\n return;\n const startTime = normalize(event.start);\n if (isNaN(startTime))\n return;\n const endTime = event.end ? Math.max(normalize(event.end), startTime) : startTime;\n if (isNaN(endTime) || endTime < gridStart || startTime > gridEnd)\n return;\n const startsBeforeGrid = startTime < gridStart;\n const endsAfterGrid = endTime > gridEnd;\n const startIdx = startsBeforeGrid ? 0 : dayIndex.get(startTime);\n const endIdx = endsAfterGrid ? dayTimes.length - 1 : dayIndex.get(endTime);\n resolved.push({\n event, startIdx, endIdx, startsBeforeGrid, endsAfterGrid,\n startTime, duration: endTime - startTime, order,\n });\n });\n resolved.sort((a, b) => a.startTime - b.startTime || b.duration - a.duration || a.order - b.order);\n const hiddenPerDay = new Array(dayTimes.length).fill(0);\n const weekCount = Math.floor(dayTimes.length / 7);\n const weekLaneCounts = new Array(weekCount).fill(0);\n for (let week = 0; week < weekCount; week++) {\n const weekStart = week * 7;\n const weekEnd = weekStart + 6;\n // lanes[lane] holds the occupied [startCol, endCol] ranges in this week.\n const lanes = [];\n for (const item of resolved) {\n if (item.endIdx < weekStart || item.startIdx > weekEnd)\n continue;\n const segStart = Math.max(item.startIdx, weekStart);\n const segEnd = Math.min(item.endIdx, weekEnd);\n const startCol = segStart - weekStart;\n const endCol = segEnd - weekStart;\n let lane = 0;\n while (lanes[lane]?.some(([s, e]) => startCol <= e && endCol >= s))\n lane++;\n (lanes[lane] ??= []).push([startCol, endCol]);\n weekLaneCounts[week] = Math.min(Math.max(weekLaneCounts[week], lane + 1), SniceCalendar.MAX_EVENT_LANES);\n if (lane >= SniceCalendar.MAX_EVENT_LANES) {\n for (let i = segStart; i <= segEnd; i++)\n hiddenPerDay[i]++;\n continue;\n }\n const continuesLeft = segStart > item.startIdx\n || (segStart === item.startIdx && item.startsBeforeGrid);\n const continuesRight = segEnd < item.endIdx\n || (segEnd === item.endIdx && item.endsAfterGrid);\n const bar = document.createElement('div');\n bar.className = 'calendar__event-bar';\n if (continuesLeft)\n bar.classList.add('calendar__event-bar--continues-left');\n if (continuesRight)\n bar.classList.add('calendar__event-bar--continues-right');\n // A custom className rides along on both the class list and the part\n // attribute, so events are styleable from outside via\n // ::part(<className>).\n const customClasses = item.event.className\n ? item.event.className.split(/\\s+/).filter(Boolean)\n : [];\n bar.classList.add(...customClasses);\n bar.setAttribute('part', ['event-bar', ...customClasses].join(' '));\n bar.setAttribute('data-event-id', String(item.event.id));\n bar.setAttribute('data-lane', String(lane));\n bar.style.gridRow = String(week + 2); // row 1 is the weekday header\n bar.style.gridColumn = `${startCol + 1} / ${endCol + 2}`;\n bar.style.setProperty('--calendar-event-lane', String(lane));\n if (item.event.color)\n bar.style.background = item.event.color;\n if (item.event.avatar) {\n const spec = typeof item.event.avatar === 'string'\n ? { src: item.event.avatar }\n : item.event.avatar;\n const avatar = document.createElement('snice-avatar');\n avatar.className = 'calendar__event-avatar';\n avatar.setAttribute('part', 'event-avatar');\n // Attributes, not property assignments: the avatar's shape/size CSS\n // matches on :host([shape])/:host([size]) attribute selectors.\n avatar.setAttribute('size', 'xs');\n avatar.setAttribute('shape', 'circle');\n // Tiny thumbnail — eager: lazy-load buys nothing at this size and\n // stalls on very tall pages.\n avatar.setAttribute('loading', 'eager');\n if (spec.src)\n avatar.src = spec.src;\n if (spec.name)\n avatar.name = spec.name;\n if (spec.alt)\n avatar.alt = spec.alt;\n bar.appendChild(avatar);\n }\n const titleEl = document.createElement('span');\n titleEl.className = 'calendar__event-title';\n titleEl.textContent = item.event.title;\n bar.appendChild(titleEl);\n // Tooltip: static string, or lazy/rich content from eventTooltip.\n // The native title attribute stays only when no tooltip is configured.\n if (item.event.tooltip || this.eventTooltip) {\n bar.onmouseenter = () => this.showEventTooltip(bar, item.event);\n bar.onmouseleave = () => this.hideEventTooltip();\n }\n else {\n bar.title = item.event.title;\n }\n // Popover: strictly per-event opt-in — without `popover`, a click\n // only dispatches calendar-event-click and no request is issued.\n if (item.event.popover) {\n bar.setAttribute('role', 'button');\n bar.setAttribute('tabindex', '0');\n bar.setAttribute('aria-haspopup', 'dialog');\n bar.onkeydown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.openEventPopover(bar, item.event);\n }\n };\n bar.onclick = (e) => {\n this.handleEventClick(item.event, e);\n this.openEventPopover(bar, item.event);\n };\n }\n else {\n bar.onclick = (e) => this.handleEventClick(item.event, e);\n }\n this.grid.appendChild(bar);\n }\n }\n hiddenPerDay.forEach((count, i) => {\n if (count === 0)\n return;\n const cell = this.dayCells[i];\n if (!cell)\n return;\n const more = document.createElement('div');\n more.className = 'calendar__more';\n more.textContent = `+${count} more`;\n cell.appendChild(more);\n });\n // Reserve row height for the lane stack (and the \"+N more\" chip) so\n // stripes never spill past their week row — every cell in a week shares\n // the reservation, since the grid row is as tall as its tallest cell.\n for (let week = 0; week < weekCount; week++) {\n if (weekLaneCounts[week] === 0)\n continue;\n const weekHasMore = hiddenPerDay\n .slice(week * 7, week * 7 + 7).some(count => count > 0);\n for (let i = week * 7; i < week * 7 + 7; i++) {\n const cell = this.dayCells[i];\n if (!cell)\n continue;\n cell.style.setProperty('--calendar-week-lanes', String(weekLaneCounts[week]));\n if (weekHasMore)\n cell.style.setProperty('--calendar-week-more', '1rem');\n }\n }\n }\n goToToday() {\n this.displayDate = new Date();\n this.value = new Date();\n this.updateView();\n this.dispatchChange();\n }\n goToDate(date) {\n this.displayDate = typeof date === 'string' ? new Date(date) : date;\n this.value = this.displayDate;\n this.updateView();\n this.dispatchChange();\n }\n previousMonth() {\n this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() - 1);\n this.updateView();\n }\n nextMonth() {\n this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() + 1);\n this.updateView();\n }\n previousWeek() {\n this.displayDate = new Date(this.displayDate.getTime() - 7 * 24 * 60 * 60 * 1000);\n this.updateView();\n }\n nextWeek() {\n this.displayDate = new Date(this.displayDate.getTime() + 7 * 24 * 60 * 60 * 1000);\n this.updateView();\n }\n previousDay() {\n this.displayDate = new Date(this.displayDate.getTime() - 24 * 60 * 60 * 1000);\n this.updateView();\n }\n nextDay() {\n this.displayDate = new Date(this.displayDate.getTime() + 24 * 60 * 60 * 1000);\n this.updateView();\n }\n getDisplayedMonth() {\n return {\n month: this.displayDate.getMonth(),\n year: this.displayDate.getFullYear()\n };\n }\n getEventsForDate(date) {\n const targetDate = typeof date === 'string' ? new Date(date) : date;\n const targetTime = targetDate.getTime();\n return this.events.filter(event => {\n if (!event.start)\n return false;\n const startDate = typeof event.start === 'string' ? new Date(event.start) : event.start;\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()).getTime();\n // If no end date, event is single day\n if (!event.end) {\n return this.isSameDay(targetDate, startDate);\n }\n // Multi-day event: check if target date falls between start and end\n const endDate = typeof event.end === 'string' ? new Date(event.end) : event.end;\n const endTime = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate()).getTime();\n return targetTime >= startTime && targetTime <= endTime;\n });\n }\n formatDate(date) {\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n }\n isSameDay(date1, date2) {\n return this.formatDate(date1) === this.formatDate(date2);\n }\n isToday(date) {\n return this.isSameDay(date, new Date());\n }\n isSelected(date) {\n const valueDate = typeof this.value === 'string' ? new Date(this.value) : this.value;\n return this.isSameDay(date, valueDate);\n }\n isDisabled(date) {\n if (this.minDate) {\n const min = typeof this.minDate === 'string' ? new Date(this.minDate) : this.minDate;\n if (date < min)\n return true;\n }\n if (this.maxDate) {\n const max = typeof this.maxDate === 'string' ? new Date(this.maxDate) : this.maxDate;\n if (date > max)\n return true;\n }\n return this.disabledDates.some(d => {\n const disabledDate = typeof d === 'string' ? new Date(d) : d;\n return this.isSameDay(date, disabledDate);\n });\n }\n handleDayClick(date) {\n // Display-only calendars: days are not selectable at all.\n if (this.noDaySelect)\n return;\n if (this.isDisabled(date))\n return;\n this.value = date;\n this.updateView();\n this.dispatchChange();\n }\n handleEventClick(event, e) {\n e.stopPropagation();\n this.dispatchEventClick(event);\n }\n getMonthDays() {\n const year = this.displayDate.getFullYear();\n const month = this.displayDate.getMonth();\n // First day of the month\n const firstDay = new Date(year, month, 1);\n const firstDayOfWeek = firstDay.getDay();\n // Adjust for first day of week setting\n const daysToSubtract = (firstDayOfWeek - this.firstDayOfWeek + 7) % 7;\n const startDate = new Date(year, month, 1 - daysToSubtract);\n // Generate 42 days (6 weeks)\n const days = [];\n for (let i = 0; i < 42; i++) {\n days.push(new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i));\n }\n return days;\n }\n getWeekdays() {\n const weekdays = [];\n const baseDate = new Date(2024, 0, this.firstDayOfWeek); // Start from a Sunday\n for (let i = 0; i < 7; i++) {\n const date = new Date(baseDate);\n date.setDate(baseDate.getDate() + i);\n weekdays.push(date.toLocaleDateString(this.locale, { weekday: 'short' }));\n }\n return weekdays;\n }\n handlePropertyChange() {\n if (this.grid) {\n this.updateView();\n }\n }\n handleWeekdayInputsChange() {\n if (!this.grid)\n return;\n // Rebuild the weekday header row so the new locale / start-of-week is reflected.\n const existing = this.grid.querySelectorAll('.calendar__weekday');\n existing.forEach(el => el.remove());\n const weekdays = this.getWeekdays();\n weekdays.forEach((day, i) => {\n const weekdayEl = document.createElement('div');\n weekdayEl.className = 'calendar__weekday';\n weekdayEl.textContent = day;\n weekdayEl.style.gridRow = '1';\n weekdayEl.style.gridColumn = String(i + 1);\n // Insert before the first day cell so header row stays at the top\n this.grid.insertBefore(weekdayEl, this.grid.children[i] || null);\n });\n this.updateView();\n }\n static {\n __runInitializers(_classThis, _classExtraInitializers);\n }\n };\n return SniceCalendar = _classThis;\n})();\n\nexport { SniceCalendar };\n//# sourceMappingURL=snice-calendar.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","_classDescriptor","_classThis","_src_decorators","_alt_decorators","_name_decorators","_size_decorators","_shape_decorators","_loading_decorators","_fallbackColor_decorators","_fallbackBackground_decorators","_imageElement_decorators","_fallbackElement_decorators","_imageError_decorators","_render_decorators","_styles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_src_initializers","_src_extraInitializers","_alt_initializers","_alt_extraInitializers","_name_initializers","_name_extraInitializers","_size_initializers","_size_extraInitializers","_shape_initializers","_shape_extraInitializers","_loading_initializers","_loading_extraInitializers","_fallbackColor_initializers","_fallbackColor_extraInitializers","_fallbackBackground_initializers","_fallbackBackground_extraInitializers","_imageElement_initializers","_imageElement_extraInitializers","_fallbackElement_initializers","_fallbackElement_extraInitializers","_imageError_initializers","_imageError_extraInitializers","this","constructor","super","src","alt","size","shape","loading","fallbackColor","fallbackBackground","imageElement","fallbackElement","imageError","handleImageLoad","handleImageError","_metadata","Symbol","metadata","create","property","attribute","query","type","Boolean","render","styles","static","private","has","obj","enumerable","configurable","writable","colorClass","getColorClass","bgStyle","initials","getInitials","avatarClasses","filter","join","imageClasses","fallbackClasses","html","css","words","trim","split","w","toUpperCase","colors","hash","charCodeAt","Math","abs","renderIcon","SniceCalendar","_value_decorators","_view_decorators","_events_decorators","_minDate_decorators","_maxDate_decorators","_disabledDates_decorators","_highlightToday_decorators","_showWeekNumbers_decorators","_firstDayOfWeek_decorators","_locale_decorators","_noDaySelect_decorators","_cellSizing_decorators","_eventTooltip_decorators","_eventPopover_decorators","_dispatchChange_decorators","_dispatchEventClick_decorators","_initialize_decorators","_requestEventPopoverContent_decorators","_cleanupPopover_decorators","_handlePropertyChange_decorators","_handleWeekdayInputsChange_decorators","_value_initializers","_value_extraInitializers","_view_initializers","_view_extraInitializers","_events_initializers","_events_extraInitializers","_minDate_initializers","_minDate_extraInitializers","_maxDate_initializers","_maxDate_extraInitializers","_disabledDates_initializers","_disabledDates_extraInitializers","_highlightToday_initializers","_highlightToday_extraInitializers","_showWeekNumbers_initializers","_showWeekNumbers_extraInitializers","_firstDayOfWeek_initializers","_firstDayOfWeek_extraInitializers","_locale_initializers","_locale_extraInitializers","_noDaySelect_initializers","_noDaySelect_extraInitializers","_cellSizing_initializers","_cellSizing_extraInitializers","_eventTooltip_initializers","_eventTooltip_extraInitializers","_eventPopover_initializers","_eventPopover_extraInitializers","Date","view","events","minDate","maxDate","disabledDates","highlightToday","showWeekNumbers","firstDayOfWeek","locale","noDaySelect","cellSizing","eventTooltip","eventPopover","displayDate","tooltipToken","tooltipBar","popoverToken","popoverBar","boundPopoverEscape","e","closeEventPopover","boundPopoverOutside","composedPath","includes","popoverEl","returnFocus","dayCells","focusedDate","handleGridKeydown","currentDate","__date","delta","monthStep","getDay","preventDefault","handleDayClick","next","setDate","getDate","setMonth","getMonth","getFullYear","updateView","requestAnimationFrame","cell","find","c","sameAs","e2","d","focus","Array","Number","dispatch","bubbles","composed","ready","request","dispose","watch","dispatchChange","dispatchEventClick","initialize","requestEventPopoverContent","cleanupPopover","handlePropertyChange","handleWeekdayInputsChange","computeRovingIndex","days","same","a","b","idx","findIndex","s","isNaN","getTime","today","tIdx","calendar","event","createDOM","shadow","shadowRoot","container","document","createElement","className","setAttribute","header","title","nav","todayBtn","textContent","onclick","goToToday","prevBtn","previousMonth","nextBtn","nextMonth","appendChild","grid","getWeekdays","forEach","day","weekdayEl","style","gridRow","gridColumn","String","addEventListener","dayCell","floor","dayNumber","tooltipEl","id","hidden","tabIndex","openEventPopover","bar","token","hideEventTooltip","replaceChildren","content","positionPopover","popover","undefined","console","warn","rect","getBoundingClientRect","left","max","top","bottom","options","removeEventListener","isConnected","showEventTooltip","provider","tooltip","offsetHeight","removeAttribute","monthName","toLocaleDateString","month","year","titleEl","querySelector","getMonthDays","currentMonth","rovingIndex","date","isOtherMonth","isToday","isSelected","isDisabled","classList","add","dateStyle","renderEventStripes","MAX_EVENT_LANES","querySelectorAll","el","remove","removeProperty","dayTimes","map","dayIndex","Map","t","gridStart","gridEnd","normalize","resolved","order","start","startTime","endTime","end","startsBeforeGrid","endsAfterGrid","startIdx","endIdx","duration","sort","hiddenPerDay","fill","weekCount","weekLaneCounts","week","weekStart","weekEnd","lanes","item","segStart","segEnd","min","startCol","endCol","lane","some","continuesLeft","continuesRight","customClasses","setProperty","color","background","avatar","spec","onmouseenter","onmouseleave","onkeydown","stopPropagation","handleEventClick","count","more","weekHasMore","slice","goToDate","previousWeek","nextWeek","previousDay","nextDay","getDisplayedMonth","getEventsForDate","targetDate","targetTime","startDate","isSameDay","endDate","formatDate","padStart","date1","date2","valueDate","disabledDate","weekdays","baseDate","weekday","insertBefore","children"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-calendar.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/avatar/snice-avatar.js","../../components/calendar/snice-calendar.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","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, query, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host([hidden]){display:none}:host{display:inline-block;--avatar-size:2.5rem;--avatar-bg:var(--snice-color-text-tertiary, rgb(115 115 115));--avatar-color:var(--snice-color-text-inverse, rgb(255 255 255))}case,default,if,when{display:contents}.avatar{position:relative;width:var(--avatar-size);height:var(--avatar-size);overflow:hidden;background:var(--avatar-bg);color:var(--avatar-color);display:flex;align-items:center;justify-content:center;font-weight:var(--snice-font-weight-semibold,600);user-select:none}:host([shape=circle]) .avatar{border-radius:50%}:host([shape=square]) .avatar{border-radius:0}:host([shape=rounded]) .avatar{border-radius:var(--snice-border-radius-lg,.5rem)}:host([size=xs]){--avatar-size:1.5rem;font-size:.625rem}:host([size=small]){--avatar-size:2rem;font-size:.75rem}:host([size=medium]){--avatar-size:2.5rem;font-size:.875rem}:host([size=large]){--avatar-size:3rem;font-size:1rem}:host([size=xl]){--avatar-size:4rem;font-size:1.25rem}:host([size=xxl]){--avatar-size:6rem;font-size:2rem}.avatar-image{width:100%;height:100%;object-fit:cover;display:block}.avatar-image--error{display:none}.avatar-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s}.avatar-fallback--visible{opacity:1;visibility:visible}.avatar-icon{width:60%;height:60%;opacity:.9;display:block}.avatar--red{background:var(--avatar-palette-red,rgb(239 68 68))}.avatar--orange{background:var(--avatar-palette-orange,rgb(251 146 60))}.avatar--yellow{background:var(--avatar-palette-yellow,rgb(234 179 8))}.avatar--lime{background:var(--avatar-palette-lime,rgb(163 230 53))}.avatar--green{background:var(--avatar-palette-green,rgb(34 197 94))}.avatar--teal{background:var(--avatar-palette-teal,rgb(20 184 166))}.avatar--cyan{background:var(--avatar-palette-cyan,rgb(6 182 212))}.avatar--sky{background:var(--avatar-palette-sky,rgb(14 165 233))}.avatar--blue{background:var(--avatar-palette-blue,rgb(59 130 246))}.avatar--indigo{background:var(--avatar-palette-indigo,rgb(99 102 241))}.avatar--violet{background:var(--avatar-palette-violet,rgb(139 92 246))}.avatar--purple{background:var(--avatar-palette-purple,rgb(168 85 247))}.avatar--fuchsia{background:var(--avatar-palette-fuchsia,rgb(217 70 239))}.avatar--pink{background:var(--avatar-palette-pink,rgb(236 72 153))}.avatar--rose{background:var(--avatar-palette-rose,rgb(244 63 94))}:host(.avatar-group-item){margin-left:-.5rem;border:2px solid var(--snice-color-surface,rgb(255 255 255));border-radius:50%}:host(.avatar-group-item:first-child){margin-left:0}:host(.avatar-group-item) .avatar{border:2px solid var(--snice-color-surface,rgb(255 255 255))}\";\n\nlet SniceAvatar = (() => {\n let _classDecorators = [element('snice-avatar')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _src_decorators;\n let _src_initializers = [];\n let _src_extraInitializers = [];\n let _alt_decorators;\n let _alt_initializers = [];\n let _alt_extraInitializers = [];\n let _name_decorators;\n let _name_initializers = [];\n let _name_extraInitializers = [];\n let _size_decorators;\n let _size_initializers = [];\n let _size_extraInitializers = [];\n let _shape_decorators;\n let _shape_initializers = [];\n let _shape_extraInitializers = [];\n let _loading_decorators;\n let _loading_initializers = [];\n let _loading_extraInitializers = [];\n let _fallbackColor_decorators;\n let _fallbackColor_initializers = [];\n let _fallbackColor_extraInitializers = [];\n let _fallbackBackground_decorators;\n let _fallbackBackground_initializers = [];\n let _fallbackBackground_extraInitializers = [];\n let _imageElement_decorators;\n let _imageElement_initializers = [];\n let _imageElement_extraInitializers = [];\n let _fallbackElement_decorators;\n let _fallbackElement_initializers = [];\n let _fallbackElement_extraInitializers = [];\n let _imageError_decorators;\n let _imageError_initializers = [];\n let _imageError_extraInitializers = [];\n let _render_decorators;\n let _styles_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.src = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _src_initializers, ''));\n this.alt = (__runInitializers(this, _src_extraInitializers), __runInitializers(this, _alt_initializers, ''));\n this.name = (__runInitializers(this, _alt_extraInitializers), __runInitializers(this, _name_initializers, ''));\n this.size = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _size_initializers, 'medium'));\n this.shape = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _shape_initializers, 'circle'));\n this.loading = (__runInitializers(this, _shape_extraInitializers), __runInitializers(this, _loading_initializers, 'lazy'));\n this.fallbackColor = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _fallbackColor_initializers, '#ffffff'));\n this.fallbackBackground = (__runInitializers(this, _fallbackColor_extraInitializers), __runInitializers(this, _fallbackBackground_initializers, ''));\n this.imageElement = (__runInitializers(this, _fallbackBackground_extraInitializers), __runInitializers(this, _imageElement_initializers, void 0));\n this.fallbackElement = (__runInitializers(this, _imageElement_extraInitializers), __runInitializers(this, _fallbackElement_initializers, void 0));\n this.imageError = (__runInitializers(this, _fallbackElement_extraInitializers), __runInitializers(this, _imageError_initializers, false));\n this.handleImageLoad = (__runInitializers(this, _imageError_extraInitializers), () => {\n this.imageError = false;\n });\n this.handleImageError = () => {\n this.imageError = true;\n };\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _src_decorators = [property({})];\n _alt_decorators = [property({})];\n _name_decorators = [property({})];\n _size_decorators = [property({})];\n _shape_decorators = [property({})];\n _loading_decorators = [property({})];\n _fallbackColor_decorators = [property({ attribute: 'fallback-color', })];\n _fallbackBackground_decorators = [property({ attribute: 'fallback-background', })];\n _imageElement_decorators = [query('.avatar-image')];\n _fallbackElement_decorators = [query('.avatar-fallback')];\n _imageError_decorators = [property({ type: Boolean, attribute: false })];\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, _src_decorators, { kind: \"field\", name: \"src\", static: false, private: false, access: { has: obj => \"src\" in obj, get: obj => obj.src, set: (obj, value) => { obj.src = value; } }, metadata: _metadata }, _src_initializers, _src_extraInitializers);\n __esDecorate(null, null, _alt_decorators, { kind: \"field\", name: \"alt\", static: false, private: false, access: { has: obj => \"alt\" in obj, get: obj => obj.alt, set: (obj, value) => { obj.alt = value; } }, metadata: _metadata }, _alt_initializers, _alt_extraInitializers);\n __esDecorate(null, null, _name_decorators, { kind: \"field\", name: \"name\", static: false, private: false, access: { has: obj => \"name\" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_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, _shape_decorators, { kind: \"field\", name: \"shape\", static: false, private: false, access: { has: obj => \"shape\" in obj, get: obj => obj.shape, set: (obj, value) => { obj.shape = value; } }, metadata: _metadata }, _shape_initializers, _shape_extraInitializers);\n __esDecorate(null, null, _loading_decorators, { kind: \"field\", name: \"loading\", static: false, private: false, access: { has: obj => \"loading\" in obj, get: obj => obj.loading, set: (obj, value) => { obj.loading = value; } }, metadata: _metadata }, _loading_initializers, _loading_extraInitializers);\n __esDecorate(null, null, _fallbackColor_decorators, { kind: \"field\", name: \"fallbackColor\", static: false, private: false, access: { has: obj => \"fallbackColor\" in obj, get: obj => obj.fallbackColor, set: (obj, value) => { obj.fallbackColor = value; } }, metadata: _metadata }, _fallbackColor_initializers, _fallbackColor_extraInitializers);\n __esDecorate(null, null, _fallbackBackground_decorators, { kind: \"field\", name: \"fallbackBackground\", static: false, private: false, access: { has: obj => \"fallbackBackground\" in obj, get: obj => obj.fallbackBackground, set: (obj, value) => { obj.fallbackBackground = value; } }, metadata: _metadata }, _fallbackBackground_initializers, _fallbackBackground_extraInitializers);\n __esDecorate(null, null, _imageElement_decorators, { kind: \"field\", name: \"imageElement\", static: false, private: false, access: { has: obj => \"imageElement\" in obj, get: obj => obj.imageElement, set: (obj, value) => { obj.imageElement = value; } }, metadata: _metadata }, _imageElement_initializers, _imageElement_extraInitializers);\n __esDecorate(null, null, _fallbackElement_decorators, { kind: \"field\", name: \"fallbackElement\", static: false, private: false, access: { has: obj => \"fallbackElement\" in obj, get: obj => obj.fallbackElement, set: (obj, value) => { obj.fallbackElement = value; } }, metadata: _metadata }, _fallbackElement_initializers, _fallbackElement_extraInitializers);\n __esDecorate(null, null, _imageError_decorators, { kind: \"field\", name: \"imageError\", static: false, private: false, access: { has: obj => \"imageError\" in obj, get: obj => obj.imageError, set: (obj, value) => { obj.imageError = value; } }, metadata: _metadata }, _imageError_initializers, _imageError_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 colorClass = this.fallbackBackground ? '' : this.getColorClass(this.name);\n const bgStyle = this.fallbackBackground ? `--avatar-bg: ${this.fallbackBackground}; --avatar-color: ${this.fallbackColor}` : '';\n const initials = this.getInitials(this.name);\n const avatarClasses = ['avatar', colorClass].filter(Boolean).join(' ');\n const imageClasses = ['avatar-image', this.imageError ? 'avatar-image--error' : ''].filter(Boolean).join(' ');\n const fallbackClasses = ['avatar-fallback', !this.src || this.imageError ? 'avatar-fallback--visible' : ''].filter(Boolean).join(' ');\n return html /*html*/ `\n <div part=\"base\" class=\"${avatarClasses}\" style=\"${bgStyle}\">\n <if ${this.src}>\n <img part=\"image\" class=\"${imageClasses}\"\n src=\"${this.src}\"\n alt=\"${this.alt || this.name}\"\n loading=\"${this.loading}\"\n @load=${this.handleImageLoad}\n @error=${this.handleImageError}>\n </if>\n <div part=\"fallback\" class=\"${fallbackClasses}\">\n <case ${initials}>\n <when value=\"\">\n <svg class=\"avatar-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"/>\n </svg>\n </when>\n <default>\n ${initials}\n </default>\n </case>\n </div>\n </div>\n `;\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n getInitials(name) {\n if (!name)\n return '';\n const words = name.trim().split(/\\s+/).filter(w => w.length > 0);\n if (words.length === 0)\n return '';\n if (words.length === 1) {\n return words[0][0].toUpperCase();\n }\n // Use first and second word (not first and last)\n return (words[0][0] + words[1][0]).toUpperCase();\n }\n getColorClass(name) {\n if (!name)\n return '';\n const colors = [\n 'red', 'orange', 'yellow', 'lime', 'green',\n 'teal', 'cyan', 'sky', 'blue', 'indigo',\n 'violet', 'purple', 'fuchsia', 'pink', 'rose'\n ];\n // Hash the name to get a consistent index\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash = name.charCodeAt(i) + ((hash << 5) - hash);\n }\n const colorIndex = Math.abs(hash) % colors.length;\n return `avatar--${colors[colorIndex]}`;\n }\n renderIcon() {\n return html /*html*/ `\n <svg class=\"avatar-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"/>\n </svg>\n `;\n }\n });\n return _classThis;\n})();\n\nexport { SniceAvatar };\n//# sourceMappingURL=snice-avatar.js.map\n","import { __runInitializers, __esDecorate } from 'tslib';\nimport { element, property, dispatch, styles, ready, request, dispose, watch, css } from 'snice';\nimport '../avatar/snice-avatar.js';\n\nvar cssContent = \":host([hidden]){display:none}:host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style}.calendar{width:100%;max-width:37.5rem}.calendar__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem);background:var(--snice-color-surface,rgb(255 255 255));border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__title{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))}.calendar__nav{display:flex;gap:var(--snice-spacing-xs,.5rem)}.calendar__nav-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));background:var(--snice-color-surface,rgb(255 255 255));border-radius:var(--snice-border-radius-md,.25rem);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease,border-color var(--snice-transition-fast, 150ms) ease;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text,rgb(23 23 23));font-family:inherit}.calendar__nav-button:hover{background:var(--snice-color-surface-container-low,rgb(250 250 250));border-color:var(--snice-color-border-hover,rgb(204 204 204))}.calendar__nav-button:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--snice-color-surface,rgb(255 255 255));container-type:inline-size}.calendar__weekday{padding:var(--snice-spacing-sm,.75rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--snice-color-text-secondary,rgb(82 82 82));text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em);border-bottom:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day{box-sizing:border-box;min-width:0;min-height:max(calc(100cqw / 7),3rem,calc(2.125rem + var(--calendar-week-lanes,0) * 1.375rem + var(--calendar-week-more,0rem)));padding:var(--snice-spacing-xs,.5rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-top:none;border-left:none;cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;position:relative;background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));overflow:hidden}.calendar__day:hover{background:var(--snice-color-surface-container-low,rgb(250 250 250))}.calendar__day:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__day:nth-child(7n+1){border-left:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar__day--stretch{min-height:max(3rem,calc(2.125rem + var(--calendar-week-lanes,0) * 1.375rem + var(--calendar-week-more,0rem)))}.calendar__day--static{cursor:default}.calendar__day--static:hover{background:var(--snice-color-surface,rgb(255 255 255))}.calendar__day--static.calendar__day--today:hover{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.calendar__day--other-month{background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5}.calendar__day--other-month:hover{opacity:.7}.calendar__day--today{background:var(--snice-color-primary-subtle,rgb(239 246 255))}.calendar__day--today:hover{background:var(--snice-color-primary-subtle-hover,rgb(219 234 254))}.calendar__day--selected{background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__day--selected:hover{background:var(--snice-color-primary-hover,rgb(29 78 216))}.calendar__day--disabled{background:var(--snice-color-surface-container,rgb(241 241 241));color:var(--snice-color-text-tertiary,rgb(115 115 115));opacity:.5;cursor:not-allowed}.calendar__day--disabled:hover{background:var(--snice-color-surface-container,rgb(241 241 241))}.calendar__day-number{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);margin-bottom:var(--snice-spacing-2xs,.25rem)}.calendar__day--selected .calendar__day-number{color:var(--snice-color-text-inverse,rgb(250 250 250))}.calendar__event-bar{display:flex;align-items:center;gap:var(--snice-spacing-3xs,.125rem);align-self:start;margin-top:calc(1.875rem + var(--calendar-event-lane,0) * 1.375rem);margin-inline:var(--snice-spacing-3xs,0.125rem);height:1.125rem;line-height:1.125rem;font-size:var(--snice-font-size-2xs, .625rem);padding:0 var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-sm,.125rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));white-space:nowrap;overflow:hidden;cursor:pointer;z-index:1;transition:opacity var(--snice-transition-fast, 150ms) ease}.calendar__event-title{overflow:hidden;text-overflow:ellipsis;min-width:0}.calendar__event-avatar{flex:none;--avatar-size:0.875rem;font-size:.375rem;border-radius:50%;overflow:hidden}.calendar__popover{position:fixed;z-index:var(--snice-z-floating,1000);min-width:14rem;max-width:22rem;padding:var(--snice-spacing-sm,.75rem);border:1px solid var(--snice-color-border,rgb(226 226 226));border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-color-surface,rgb(255 255 255));color:var(--snice-color-text,rgb(23 23 23));font-size:var(--snice-font-size-sm, .875rem);line-height:1.5;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1))}.calendar__popover:focus-visible{outline:0;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1)),0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__popover-loading{color:var(--snice-color-text-secondary,rgb(82 82 82));font-size:var(--snice-font-size-xs, .75rem)}.calendar__tooltip{position:fixed;z-index:var(--snice-z-floating,1000);max-width:18rem;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);background:var(--snice-tooltip-bg,rgb(51 51 51));color:var(--snice-color-text-inverse,rgb(250 250 250));font-size:var(--snice-font-size-xs, .75rem);line-height:1.4;box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1));pointer-events:none}.calendar__event-bar:hover{opacity:.8}.calendar__event-bar--continues-left{border-top-left-radius:0;border-bottom-left-radius:0;margin-inline-start:0}.calendar__event-bar--continues-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-inline-end:0}.calendar__more{position:absolute;bottom:var(--snice-spacing-3xs,.125rem);left:var(--snice-spacing-2xs,.25rem);font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-medium,500);color:var(--snice-color-text,rgb(23 23 23));cursor:pointer}.calendar__more:hover{text-decoration:underline}.calendar__more:focus-visible{outline:0;box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.calendar__week-number{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem);text-align:center;font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115));background:var(--snice-color-surface-container-low,rgb(250 250 250));border-right:1px solid var(--snice-color-border,rgb(226 226 226))}.calendar--week .calendar__grid{grid-template-columns:repeat(7,1fr)}.calendar--week .calendar__day{min-height:7.5rem}.calendar--day .calendar__grid{grid-template-columns:1fr}.calendar--day .calendar__day{min-height:25rem}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nlet SniceCalendar = (() => {\n let _classDecorators = [element('snice-calendar')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _value_decorators;\n let _value_initializers = [];\n let _value_extraInitializers = [];\n let _view_decorators;\n let _view_initializers = [];\n let _view_extraInitializers = [];\n let _events_decorators;\n let _events_initializers = [];\n let _events_extraInitializers = [];\n let _minDate_decorators;\n let _minDate_initializers = [];\n let _minDate_extraInitializers = [];\n let _maxDate_decorators;\n let _maxDate_initializers = [];\n let _maxDate_extraInitializers = [];\n let _disabledDates_decorators;\n let _disabledDates_initializers = [];\n let _disabledDates_extraInitializers = [];\n let _highlightToday_decorators;\n let _highlightToday_initializers = [];\n let _highlightToday_extraInitializers = [];\n let _showWeekNumbers_decorators;\n let _showWeekNumbers_initializers = [];\n let _showWeekNumbers_extraInitializers = [];\n let _firstDayOfWeek_decorators;\n let _firstDayOfWeek_initializers = [];\n let _firstDayOfWeek_extraInitializers = [];\n let _locale_decorators;\n let _locale_initializers = [];\n let _locale_extraInitializers = [];\n let _noDaySelect_decorators;\n let _noDaySelect_initializers = [];\n let _noDaySelect_extraInitializers = [];\n let _cellSizing_decorators;\n let _cellSizing_initializers = [];\n let _cellSizing_extraInitializers = [];\n let _eventTooltip_decorators;\n let _eventTooltip_initializers = [];\n let _eventTooltip_extraInitializers = [];\n let _eventPopover_decorators;\n let _eventPopover_initializers = [];\n let _eventPopover_extraInitializers = [];\n let _dispatchChange_decorators;\n let _dispatchEventClick_decorators;\n let _dispatchMoreClick_decorators;\n let _styles_decorators;\n let _initialize_decorators;\n let _requestEventPopoverContent_decorators;\n let _cleanupPopover_decorators;\n let _handlePropertyChange_decorators;\n let _handleWeekdayInputsChange_decorators;\n var SniceCalendar = class extends _classSuper {\n static { _classThis = this; }\n constructor() {\n super(...arguments);\n this.value = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _value_initializers, new Date()));\n this.view = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _view_initializers, 'month'));\n this.events = (__runInitializers(this, _view_extraInitializers), __runInitializers(this, _events_initializers, []));\n this.minDate = (__runInitializers(this, _events_extraInitializers), __runInitializers(this, _minDate_initializers, ''));\n this.maxDate = (__runInitializers(this, _minDate_extraInitializers), __runInitializers(this, _maxDate_initializers, ''));\n this.disabledDates = (__runInitializers(this, _maxDate_extraInitializers), __runInitializers(this, _disabledDates_initializers, []));\n this.highlightToday = (__runInitializers(this, _disabledDates_extraInitializers), __runInitializers(this, _highlightToday_initializers, true));\n this.showWeekNumbers = (__runInitializers(this, _highlightToday_extraInitializers), __runInitializers(this, _showWeekNumbers_initializers, false));\n this.firstDayOfWeek = (__runInitializers(this, _showWeekNumbers_extraInitializers), __runInitializers(this, _firstDayOfWeek_initializers, 0)); // 0 = Sunday, 1 = Monday\n this.locale = (__runInitializers(this, _firstDayOfWeek_extraInitializers), __runInitializers(this, _locale_initializers, 'en-US'));\n this.noDaySelect = (__runInitializers(this, _locale_extraInitializers), __runInitializers(this, _noDaySelect_initializers, false));\n this.cellSizing = (__runInitializers(this, _noDaySelect_extraInitializers), __runInitializers(this, _cellSizing_initializers, 'square'));\n this.eventTooltip = (__runInitializers(this, _cellSizing_extraInitializers), __runInitializers(this, _eventTooltip_initializers, null));\n this.eventPopover = (__runInitializers(this, _eventTooltip_extraInitializers), __runInitializers(this, _eventPopover_initializers, null));\n this.displayDate = (__runInitializers(this, _eventPopover_extraInitializers), new Date());\n this.tooltipToken = 0;\n this.tooltipBar = null;\n this.popoverToken = 0;\n this.popoverBar = null;\n this.boundPopoverEscape = (e) => {\n if (e.key === 'Escape' && this.popoverBar)\n this.closeEventPopover();\n };\n this.boundPopoverOutside = (e) => {\n if (!this.popoverBar)\n return;\n if (e.composedPath().includes(this.popoverEl))\n return;\n this.closeEventPopover({ returnFocus: false });\n };\n this.dayCells = [];\n this.focusedDate = null;\n this.handleGridKeydown = (e) => {\n const target = e.target;\n const currentDate = target.__date;\n if (!currentDate)\n return;\n let delta = null;\n let monthStep = null;\n switch (e.key) {\n case 'ArrowLeft':\n delta = -1;\n break;\n case 'ArrowRight':\n delta = 1;\n break;\n case 'ArrowUp':\n delta = -7;\n break;\n case 'ArrowDown':\n delta = 7;\n break;\n case 'Home':\n delta = -currentDate.getDay();\n break;\n case 'End':\n delta = 6 - currentDate.getDay();\n break;\n case 'PageUp':\n monthStep = -1;\n break;\n case 'PageDown':\n monthStep = 1;\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n this.handleDayClick(currentDate);\n return;\n default: return;\n }\n e.preventDefault();\n const next = new Date(currentDate);\n if (delta !== null)\n next.setDate(currentDate.getDate() + delta);\n if (monthStep !== null)\n next.setMonth(currentDate.getMonth() + monthStep);\n // If moved outside the displayed month, navigate.\n if (next.getMonth() !== this.displayDate.getMonth() ||\n next.getFullYear() !== this.displayDate.getFullYear()) {\n this.displayDate = new Date(next.getFullYear(), next.getMonth(), 1);\n }\n this.focusedDate = next;\n this.updateView();\n // Move focus to the newly-selected cell after DOM update.\n const sameAs = (d, e2) => d.getFullYear() === e2.getFullYear() &&\n d.getMonth() === e2.getMonth() &&\n d.getDate() === e2.getDate();\n requestAnimationFrame(() => {\n const cell = this.dayCells.find(c => sameAs(c.__date, next));\n cell?.focus();\n });\n };\n }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _value_decorators = [property({ type: Date })];\n _view_decorators = [property({ attribute: 'view' })];\n _events_decorators = [property({ type: Array, attribute: false })];\n _minDate_decorators = [property({ type: Date, attribute: 'min-date' })];\n _maxDate_decorators = [property({ type: Date, attribute: 'max-date' })];\n _disabledDates_decorators = [property({ type: Array, attribute: false })];\n _highlightToday_decorators = [property({ type: Boolean, attribute: 'highlight-today' })];\n _showWeekNumbers_decorators = [property({ type: Boolean, attribute: 'show-week-numbers' })];\n _firstDayOfWeek_decorators = [property({ type: Number, attribute: 'first-day-of-week' })];\n _locale_decorators = [property({ attribute: 'locale' })];\n _noDaySelect_decorators = [property({ type: Boolean, attribute: 'no-day-select' })];\n _cellSizing_decorators = [property({ attribute: 'cell-sizing' })];\n _eventTooltip_decorators = [property({ attribute: false })];\n _eventPopover_decorators = [property({ attribute: false })];\n _dispatchChange_decorators = [dispatch('calendar-change', { bubbles: true, composed: true })];\n _dispatchEventClick_decorators = [dispatch('calendar-event-click', { bubbles: true, composed: true })];\n _dispatchMoreClick_decorators = [dispatch('calendar-more-click', { bubbles: true, composed: true })];\n _styles_decorators = [styles()];\n _initialize_decorators = [ready()];\n _requestEventPopoverContent_decorators = [request('calendar/event-popover')];\n _cleanupPopover_decorators = [dispose()];\n _handlePropertyChange_decorators = [watch('value'), watch('events'), watch('eventTooltip'), watch('noDaySelect'), watch('cellSizing')];\n _handleWeekdayInputsChange_decorators = [watch('locale'), watch('firstDayOfWeek')];\n __esDecorate(this, null, _dispatchChange_decorators, { kind: \"method\", name: \"dispatchChange\", static: false, private: false, access: { has: obj => \"dispatchChange\" in obj, get: obj => obj.dispatchChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _dispatchEventClick_decorators, { kind: \"method\", name: \"dispatchEventClick\", static: false, private: false, access: { has: obj => \"dispatchEventClick\" in obj, get: obj => obj.dispatchEventClick }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _dispatchMoreClick_decorators, { kind: \"method\", name: \"dispatchMoreClick\", static: false, private: false, access: { has: obj => \"dispatchMoreClick\" in obj, get: obj => obj.dispatchMoreClick }, 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, _initialize_decorators, { kind: \"method\", name: \"initialize\", static: false, private: false, access: { has: obj => \"initialize\" in obj, get: obj => obj.initialize }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _requestEventPopoverContent_decorators, { kind: \"method\", name: \"requestEventPopoverContent\", static: false, private: false, access: { has: obj => \"requestEventPopoverContent\" in obj, get: obj => obj.requestEventPopoverContent }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanupPopover_decorators, { kind: \"method\", name: \"cleanupPopover\", static: false, private: false, access: { has: obj => \"cleanupPopover\" in obj, get: obj => obj.cleanupPopover }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handlePropertyChange_decorators, { kind: \"method\", name: \"handlePropertyChange\", static: false, private: false, access: { has: obj => \"handlePropertyChange\" in obj, get: obj => obj.handlePropertyChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleWeekdayInputsChange_decorators, { kind: \"method\", name: \"handleWeekdayInputsChange\", static: false, private: false, access: { has: obj => \"handleWeekdayInputsChange\" in obj, get: obj => obj.handleWeekdayInputsChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(null, null, _value_decorators, { kind: \"field\", name: \"value\", static: false, private: false, access: { has: obj => \"value\" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);\n __esDecorate(null, null, _view_decorators, { kind: \"field\", name: \"view\", static: false, private: false, access: { has: obj => \"view\" in obj, get: obj => obj.view, set: (obj, value) => { obj.view = value; } }, metadata: _metadata }, _view_initializers, _view_extraInitializers);\n __esDecorate(null, null, _events_decorators, { kind: \"field\", name: \"events\", static: false, private: false, access: { has: obj => \"events\" in obj, get: obj => obj.events, set: (obj, value) => { obj.events = value; } }, metadata: _metadata }, _events_initializers, _events_extraInitializers);\n __esDecorate(null, null, _minDate_decorators, { kind: \"field\", name: \"minDate\", static: false, private: false, access: { has: obj => \"minDate\" in obj, get: obj => obj.minDate, set: (obj, value) => { obj.minDate = value; } }, metadata: _metadata }, _minDate_initializers, _minDate_extraInitializers);\n __esDecorate(null, null, _maxDate_decorators, { kind: \"field\", name: \"maxDate\", static: false, private: false, access: { has: obj => \"maxDate\" in obj, get: obj => obj.maxDate, set: (obj, value) => { obj.maxDate = value; } }, metadata: _metadata }, _maxDate_initializers, _maxDate_extraInitializers);\n __esDecorate(null, null, _disabledDates_decorators, { kind: \"field\", name: \"disabledDates\", static: false, private: false, access: { has: obj => \"disabledDates\" in obj, get: obj => obj.disabledDates, set: (obj, value) => { obj.disabledDates = value; } }, metadata: _metadata }, _disabledDates_initializers, _disabledDates_extraInitializers);\n __esDecorate(null, null, _highlightToday_decorators, { kind: \"field\", name: \"highlightToday\", static: false, private: false, access: { has: obj => \"highlightToday\" in obj, get: obj => obj.highlightToday, set: (obj, value) => { obj.highlightToday = value; } }, metadata: _metadata }, _highlightToday_initializers, _highlightToday_extraInitializers);\n __esDecorate(null, null, _showWeekNumbers_decorators, { kind: \"field\", name: \"showWeekNumbers\", static: false, private: false, access: { has: obj => \"showWeekNumbers\" in obj, get: obj => obj.showWeekNumbers, set: (obj, value) => { obj.showWeekNumbers = value; } }, metadata: _metadata }, _showWeekNumbers_initializers, _showWeekNumbers_extraInitializers);\n __esDecorate(null, null, _firstDayOfWeek_decorators, { kind: \"field\", name: \"firstDayOfWeek\", static: false, private: false, access: { has: obj => \"firstDayOfWeek\" in obj, get: obj => obj.firstDayOfWeek, set: (obj, value) => { obj.firstDayOfWeek = value; } }, metadata: _metadata }, _firstDayOfWeek_initializers, _firstDayOfWeek_extraInitializers);\n __esDecorate(null, null, _locale_decorators, { kind: \"field\", name: \"locale\", static: false, private: false, access: { has: obj => \"locale\" in obj, get: obj => obj.locale, set: (obj, value) => { obj.locale = value; } }, metadata: _metadata }, _locale_initializers, _locale_extraInitializers);\n __esDecorate(null, null, _noDaySelect_decorators, { kind: \"field\", name: \"noDaySelect\", static: false, private: false, access: { has: obj => \"noDaySelect\" in obj, get: obj => obj.noDaySelect, set: (obj, value) => { obj.noDaySelect = value; } }, metadata: _metadata }, _noDaySelect_initializers, _noDaySelect_extraInitializers);\n __esDecorate(null, null, _cellSizing_decorators, { kind: \"field\", name: \"cellSizing\", static: false, private: false, access: { has: obj => \"cellSizing\" in obj, get: obj => obj.cellSizing, set: (obj, value) => { obj.cellSizing = value; } }, metadata: _metadata }, _cellSizing_initializers, _cellSizing_extraInitializers);\n __esDecorate(null, null, _eventTooltip_decorators, { kind: \"field\", name: \"eventTooltip\", static: false, private: false, access: { has: obj => \"eventTooltip\" in obj, get: obj => obj.eventTooltip, set: (obj, value) => { obj.eventTooltip = value; } }, metadata: _metadata }, _eventTooltip_initializers, _eventTooltip_extraInitializers);\n __esDecorate(null, null, _eventPopover_decorators, { kind: \"field\", name: \"eventPopover\", static: false, private: false, access: { has: obj => \"eventPopover\" in obj, get: obj => obj.eventPopover, set: (obj, value) => { obj.eventPopover = value; } }, metadata: _metadata }, _eventPopover_initializers, _eventPopover_extraInitializers);\n __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: \"class\", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);\n SniceCalendar = _classThis = _classDescriptor.value;\n if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });\n }\n computeRovingIndex(days) {\n // Prefer: focused → selected → today → first in-month day\n const same = (a, b) => a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n if (this.focusedDate) {\n const idx = days.findIndex(d => same(d, this.focusedDate));\n if (idx >= 0)\n return idx;\n }\n if (this.value) {\n const s = this.value instanceof Date ? this.value : new Date(this.value);\n if (!isNaN(s.getTime())) {\n const idx = days.findIndex(d => same(d, s));\n if (idx >= 0)\n return idx;\n }\n }\n const today = new Date();\n const tIdx = days.findIndex(d => same(d, today));\n if (tIdx >= 0)\n return tIdx;\n return days.findIndex(d => d.getMonth() === this.displayDate.getMonth());\n }\n dispatchChange() {\n return { value: this.value, calendar: this };\n }\n dispatchEventClick(event) {\n return { event, calendar: this };\n }\n dispatchMoreClick(date, count) {\n return { date, count, calendar: this };\n }\n styles() {\n return css /*css*/ `${cssContent}`;\n }\n initialize() {\n this.createDOM();\n this.updateView();\n }\n createDOM() {\n const shadow = this.shadowRoot;\n // Create container\n this.container = document.createElement('div');\n this.container.className = `calendar calendar--${this.view}`;\n this.container.setAttribute('part', 'base');\n // Create header\n this.header = document.createElement('div');\n this.header.className = 'calendar__header';\n this.header.setAttribute('part', 'header');\n const title = document.createElement('div');\n title.className = 'calendar__title';\n const nav = document.createElement('div');\n nav.className = 'calendar__nav';\n const todayBtn = document.createElement('button');\n todayBtn.className = 'calendar__nav-button';\n todayBtn.textContent = 'Today';\n todayBtn.onclick = () => this.goToToday();\n const prevBtn = document.createElement('button');\n prevBtn.className = 'calendar__nav-button';\n prevBtn.textContent = '‹';\n prevBtn.onclick = () => this.previousMonth();\n const nextBtn = document.createElement('button');\n nextBtn.className = 'calendar__nav-button';\n nextBtn.textContent = '›';\n nextBtn.onclick = () => this.nextMonth();\n nav.appendChild(todayBtn);\n nav.appendChild(prevBtn);\n nav.appendChild(nextBtn);\n this.header.appendChild(title);\n this.header.appendChild(nav);\n // Create grid\n this.grid = document.createElement('div');\n this.grid.className = 'calendar__grid';\n this.grid.setAttribute('part', 'grid');\n // Add weekday headers. Every grid child gets an explicit position —\n // event stripe bars are placed explicitly, and mixing explicit items\n // with auto-flow would push auto-placed cells out of their slots.\n const weekdays = this.getWeekdays();\n weekdays.forEach((day, i) => {\n const weekdayEl = document.createElement('div');\n weekdayEl.className = 'calendar__weekday';\n weekdayEl.textContent = day;\n weekdayEl.style.gridRow = '1';\n weekdayEl.style.gridColumn = String(i + 1);\n this.grid.appendChild(weekdayEl);\n });\n // Mark grid for a11y\n this.grid.setAttribute('role', 'grid');\n this.grid.setAttribute('aria-label', 'Calendar');\n this.grid.addEventListener('keydown', this.handleGridKeydown);\n // Create 42 day cells\n for (let i = 0; i < 42; i++) {\n const dayCell = document.createElement('div');\n dayCell.className = 'calendar__day';\n dayCell.setAttribute('role', 'gridcell');\n // Roving tabindex: only one cell is tabbable at a time. Start by\n // making the first cell tabbable; updateView re-targets the focused\n // date so today/selected gets the 0.\n dayCell.setAttribute('tabindex', i === 0 ? '0' : '-1');\n dayCell.style.gridRow = String(Math.floor(i / 7) + 2);\n dayCell.style.gridColumn = String((i % 7) + 1);\n const dayNumber = document.createElement('div');\n dayNumber.className = 'calendar__day-number';\n dayCell.appendChild(dayNumber);\n this.grid.appendChild(dayCell);\n this.dayCells.push(dayCell);\n }\n // Shared tooltip overlay for event bars — one element, repositioned per\n // bar, so rich content can load lazily without a tooltip instance per bar.\n this.tooltipEl = document.createElement('div');\n this.tooltipEl.className = 'calendar__tooltip';\n this.tooltipEl.setAttribute('part', 'event-tooltip');\n this.tooltipEl.setAttribute('role', 'tooltip');\n this.tooltipEl.id = 'calendar-event-tooltip';\n this.tooltipEl.hidden = true;\n // Interactive click-to-open popover for event details. One shared panel,\n // anchored per bar; content may load lazily (provider or the\n // calendar/event-popover request channel).\n this.popoverEl = document.createElement('div');\n this.popoverEl.className = 'calendar__popover';\n this.popoverEl.setAttribute('part', 'event-popover');\n this.popoverEl.setAttribute('role', 'dialog');\n this.popoverEl.setAttribute('aria-label', 'Event details');\n this.popoverEl.tabIndex = -1;\n this.popoverEl.hidden = true;\n this.container.appendChild(this.header);\n this.container.appendChild(this.grid);\n this.container.appendChild(this.tooltipEl);\n this.container.appendChild(this.popoverEl);\n shadow.appendChild(this.container);\n }\n /**\n * Dynamic popover channel: yields `{ event }` so any\n * `@respond('calendar/event-popover')` controller can return the content.\n */\n async *requestEventPopoverContent(event) {\n return await (yield { event });\n }\n async openEventPopover(bar, event) {\n const token = ++this.popoverToken;\n this.hideEventTooltip();\n // Anchor + loading shell first, so slow content still feels responsive.\n this.popoverBar = bar;\n this.popoverEl.replaceChildren();\n const loading = document.createElement('div');\n loading.className = 'calendar__popover-loading';\n loading.textContent = 'Loading…';\n this.popoverEl.appendChild(loading);\n this.popoverEl.hidden = false;\n this.positionPopover(bar);\n document.addEventListener('keydown', this.boundPopoverEscape, true);\n document.addEventListener('mousedown', this.boundPopoverOutside, true);\n let content;\n try {\n if (event.popover !== true && event.popover) {\n content = typeof event.popover === 'function' ? event.popover() : event.popover;\n }\n else if (this.eventPopover) {\n content = await this.eventPopover(event);\n }\n else {\n content = await this.requestEventPopoverContent(event);\n }\n }\n catch {\n // No responder discovered (or the provider failed) — close quietly.\n content = undefined;\n }\n if (token !== this.popoverToken)\n return; // closed (or replaced) meanwhile\n if (content == null) {\n console.warn(`[snice-calendar] event \"${String(event.id)}\" enables a popover but no content was provided — set eventPopover, event.popover content, or a @respond('calendar/event-popover') handler.`);\n this.closeEventPopover({ returnFocus: false });\n return;\n }\n if (typeof content === 'string')\n this.popoverEl.textContent = content;\n else\n this.popoverEl.replaceChildren(content);\n this.positionPopover(bar);\n this.popoverEl.focus();\n }\n positionPopover(bar) {\n const rect = bar.getBoundingClientRect();\n this.popoverEl.style.left = `${Math.max(4, rect.left)}px`;\n this.popoverEl.style.top = `${rect.bottom + 6}px`;\n }\n closeEventPopover(options = {}) {\n if (!this.popoverBar)\n return;\n this.popoverToken++;\n const bar = this.popoverBar;\n this.popoverBar = null;\n this.popoverEl.hidden = true;\n this.popoverEl.replaceChildren();\n document.removeEventListener('keydown', this.boundPopoverEscape, true);\n document.removeEventListener('mousedown', this.boundPopoverOutside, true);\n if (options.returnFocus !== false && bar.isConnected)\n bar.focus();\n }\n cleanupPopover() {\n document.removeEventListener('keydown', this.boundPopoverEscape, true);\n document.removeEventListener('mousedown', this.boundPopoverOutside, true);\n }\n async showEventTooltip(bar, event) {\n const token = ++this.tooltipToken;\n const provider = this.eventTooltip;\n let content;\n if (provider) {\n try {\n content = await provider(event);\n }\n catch {\n content = event.tooltip;\n }\n }\n else {\n content = event.tooltip;\n }\n // Pointer already left (or moved to another bar) while loading.\n if (token !== this.tooltipToken || content == null)\n return;\n if (typeof content === 'string')\n this.tooltipEl.textContent = content;\n else\n this.tooltipEl.replaceChildren(content);\n this.tooltipEl.hidden = false;\n this.tooltipBar = bar;\n bar.setAttribute('aria-describedby', this.tooltipEl.id);\n // Fixed positioning above the bar, clamped to the viewport.\n const rect = bar.getBoundingClientRect();\n this.tooltipEl.style.left = `${Math.max(4, rect.left)}px`;\n this.tooltipEl.style.top = `${Math.max(4, rect.top - this.tooltipEl.offsetHeight - 6)}px`;\n }\n hideEventTooltip() {\n this.tooltipToken++;\n this.tooltipEl.hidden = true;\n this.tooltipBar?.removeAttribute('aria-describedby');\n this.tooltipBar = null;\n }\n updateView() {\n // Update header title\n const monthName = this.displayDate.toLocaleDateString(this.locale, { month: 'long', year: 'numeric' });\n const titleEl = this.header.querySelector('.calendar__title');\n if (titleEl)\n titleEl.textContent = monthName;\n // Update day cells\n const days = this.getMonthDays();\n const currentMonth = this.displayDate.getMonth();\n // Resolve which cell should be tab-stoppable (roving tabindex).\n const rovingIndex = this.computeRovingIndex(days);\n days.forEach((date, i) => {\n const cell = this.dayCells[i];\n if (!cell)\n return;\n const isOtherMonth = date.getMonth() !== currentMonth;\n const isToday = this.highlightToday && this.isToday(date);\n // Display-only mode never shows a selection highlight.\n const isSelected = !this.noDaySelect && this.isSelected(date);\n const isDisabled = this.isDisabled(date);\n // Update classes (preserving role)\n cell.className = 'calendar__day';\n if (isOtherMonth)\n cell.classList.add('calendar__day--other-month');\n if (isToday)\n cell.classList.add('calendar__day--today');\n if (isSelected)\n cell.classList.add('calendar__day--selected');\n if (isDisabled)\n cell.classList.add('calendar__day--disabled');\n if (this.noDaySelect)\n cell.classList.add('calendar__day--static');\n if (this.cellSizing === 'stretch')\n cell.classList.add('calendar__day--stretch');\n cell.setAttribute('role', 'gridcell');\n cell.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n cell.setAttribute('aria-disabled', isDisabled ? 'true' : 'false');\n cell.setAttribute('aria-current', isToday && !isOtherMonth ? 'date' : 'false');\n cell.setAttribute('tabindex', i === rovingIndex ? '0' : '-1');\n cell.setAttribute('aria-label', date.toLocaleDateString(this.locale, { dateStyle: 'full' }));\n cell.__date = date;\n // Update day number\n const dayNumber = cell.querySelector('.calendar__day-number');\n if (dayNumber)\n dayNumber.textContent = String(date.getDate());\n // Update click handler\n cell.onclick = () => this.handleDayClick(date);\n });\n this.renderEventStripes(days);\n }\n /** Visible stacking depth for event stripes; deeper lanes collapse into a\n * per-day \"+N more\" chip. */\n static { this.MAX_EVENT_LANES = 3; }\n /**\n * Render events as continuous stripes: one bar per (event × week row),\n * spanning the event's days in that week and chopped at week boundaries\n * with continues-left/right styling. Overlapping events stack into lanes\n * per week — earlier start first, longer event first on ties — like\n * professional calendars.\n */\n renderEventStripes(days) {\n this.closeEventPopover({ returnFocus: false }); // anchors are re-created\n this.grid.querySelectorAll('.calendar__event-bar').forEach(el => el.remove());\n this.dayCells.forEach(cell => {\n cell.querySelector('.calendar__more')?.remove();\n cell.style.removeProperty('--calendar-week-lanes');\n cell.style.removeProperty('--calendar-week-more');\n });\n if (!this.events || this.events.length === 0)\n return;\n // Local-midnight timestamps for the visible grid; events normalize to the\n // same construction so lookups are exact (and DST-safe).\n const dayTimes = days.map(d => new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime());\n const dayIndex = new Map(dayTimes.map((t, i) => [t, i]));\n const gridStart = dayTimes[0];\n const gridEnd = dayTimes[dayTimes.length - 1];\n const normalize = (d) => {\n const date = typeof d === 'string' ? new Date(d) : d;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();\n };\n const resolved = [];\n this.events.forEach((event, order) => {\n if (!event.start)\n return;\n const startTime = normalize(event.start);\n if (isNaN(startTime))\n return;\n const endTime = event.end ? Math.max(normalize(event.end), startTime) : startTime;\n if (isNaN(endTime) || endTime < gridStart || startTime > gridEnd)\n return;\n const startsBeforeGrid = startTime < gridStart;\n const endsAfterGrid = endTime > gridEnd;\n const startIdx = startsBeforeGrid ? 0 : dayIndex.get(startTime);\n const endIdx = endsAfterGrid ? dayTimes.length - 1 : dayIndex.get(endTime);\n resolved.push({\n event, startIdx, endIdx, startsBeforeGrid, endsAfterGrid,\n startTime, duration: endTime - startTime, order,\n });\n });\n resolved.sort((a, b) => a.startTime - b.startTime || b.duration - a.duration || a.order - b.order);\n const hiddenPerDay = new Array(dayTimes.length).fill(0);\n const weekCount = Math.floor(dayTimes.length / 7);\n const weekLaneCounts = new Array(weekCount).fill(0);\n for (let week = 0; week < weekCount; week++) {\n const weekStart = week * 7;\n const weekEnd = weekStart + 6;\n // lanes[lane] holds the occupied [startCol, endCol] ranges in this week.\n const lanes = [];\n for (const item of resolved) {\n if (item.endIdx < weekStart || item.startIdx > weekEnd)\n continue;\n const segStart = Math.max(item.startIdx, weekStart);\n const segEnd = Math.min(item.endIdx, weekEnd);\n const startCol = segStart - weekStart;\n const endCol = segEnd - weekStart;\n let lane = 0;\n while (lanes[lane]?.some(([s, e]) => startCol <= e && endCol >= s))\n lane++;\n (lanes[lane] ??= []).push([startCol, endCol]);\n weekLaneCounts[week] = Math.min(Math.max(weekLaneCounts[week], lane + 1), SniceCalendar.MAX_EVENT_LANES);\n if (lane >= SniceCalendar.MAX_EVENT_LANES) {\n for (let i = segStart; i <= segEnd; i++)\n hiddenPerDay[i]++;\n continue;\n }\n const continuesLeft = segStart > item.startIdx\n || (segStart === item.startIdx && item.startsBeforeGrid);\n const continuesRight = segEnd < item.endIdx\n || (segEnd === item.endIdx && item.endsAfterGrid);\n const bar = document.createElement('div');\n bar.className = 'calendar__event-bar';\n if (continuesLeft)\n bar.classList.add('calendar__event-bar--continues-left');\n if (continuesRight)\n bar.classList.add('calendar__event-bar--continues-right');\n // A custom className rides along on both the class list and the part\n // attribute, so events are styleable from outside via\n // ::part(<className>).\n const customClasses = item.event.className\n ? item.event.className.split(/\\s+/).filter(Boolean)\n : [];\n bar.classList.add(...customClasses);\n bar.setAttribute('part', ['event-bar', ...customClasses].join(' '));\n bar.setAttribute('data-event-id', String(item.event.id));\n bar.setAttribute('data-lane', String(lane));\n bar.style.gridRow = String(week + 2); // row 1 is the weekday header\n bar.style.gridColumn = `${startCol + 1} / ${endCol + 2}`;\n bar.style.setProperty('--calendar-event-lane', String(lane));\n if (item.event.color)\n bar.style.background = item.event.color;\n if (item.event.avatar) {\n const spec = typeof item.event.avatar === 'string'\n ? { src: item.event.avatar }\n : item.event.avatar;\n const avatar = document.createElement('snice-avatar');\n avatar.className = 'calendar__event-avatar';\n avatar.setAttribute('part', 'event-avatar');\n // Attributes, not property assignments: the avatar's shape/size CSS\n // matches on :host([shape])/:host([size]) attribute selectors.\n avatar.setAttribute('size', 'xs');\n avatar.setAttribute('shape', 'circle');\n // Tiny thumbnail — eager: lazy-load buys nothing at this size and\n // stalls on very tall pages.\n avatar.setAttribute('loading', 'eager');\n if (spec.src)\n avatar.src = spec.src;\n if (spec.name)\n avatar.name = spec.name;\n if (spec.alt)\n avatar.alt = spec.alt;\n bar.appendChild(avatar);\n }\n const titleEl = document.createElement('span');\n titleEl.className = 'calendar__event-title';\n titleEl.textContent = item.event.title;\n bar.appendChild(titleEl);\n // Tooltip: static string, or lazy/rich content from eventTooltip.\n // The native title attribute stays only when no tooltip is configured.\n if (item.event.tooltip || this.eventTooltip) {\n bar.onmouseenter = () => this.showEventTooltip(bar, item.event);\n bar.onmouseleave = () => this.hideEventTooltip();\n }\n else {\n bar.title = item.event.title;\n }\n // Popover: strictly per-event opt-in — without `popover`, a click\n // only dispatches calendar-event-click and no request is issued.\n if (item.event.popover) {\n bar.setAttribute('role', 'button');\n bar.setAttribute('tabindex', '0');\n bar.setAttribute('aria-haspopup', 'dialog');\n bar.onkeydown = (e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.openEventPopover(bar, item.event);\n }\n };\n bar.onclick = (e) => {\n this.handleEventClick(item.event, e);\n this.openEventPopover(bar, item.event);\n };\n }\n else {\n bar.onclick = (e) => this.handleEventClick(item.event, e);\n }\n this.grid.appendChild(bar);\n }\n }\n hiddenPerDay.forEach((count, i) => {\n if (count === 0)\n return;\n const cell = this.dayCells[i];\n if (!cell)\n return;\n const date = days[i];\n const more = document.createElement('div');\n more.className = 'calendar__more';\n more.setAttribute('part', 'more-chip');\n more.textContent = `+${count} more`;\n // The chip is its own control: it reports its day and hidden count, and\n // its clicks never fall through to the day cell's selection handler.\n more.setAttribute('role', 'button');\n more.setAttribute('tabindex', '0');\n more.setAttribute('aria-label', `${count} more event${count === 1 ? '' : 's'} on ${date.toLocaleDateString(this.locale, { dateStyle: 'full' })}`);\n more.onclick = (e) => this.handleMoreClick(date, count, e);\n more.onkeydown = (e) => {\n if (e.key !== 'Enter' && e.key !== ' ')\n return;\n e.preventDefault();\n this.handleMoreClick(date, count, e);\n };\n cell.appendChild(more);\n });\n // Reserve row height for the lane stack (and the \"+N more\" chip) so\n // stripes never spill past their week row — every cell in a week shares\n // the reservation, since the grid row is as tall as its tallest cell.\n for (let week = 0; week < weekCount; week++) {\n if (weekLaneCounts[week] === 0)\n continue;\n const weekHasMore = hiddenPerDay\n .slice(week * 7, week * 7 + 7).some(count => count > 0);\n for (let i = week * 7; i < week * 7 + 7; i++) {\n const cell = this.dayCells[i];\n if (!cell)\n continue;\n cell.style.setProperty('--calendar-week-lanes', String(weekLaneCounts[week]));\n if (weekHasMore)\n cell.style.setProperty('--calendar-week-more', '1rem');\n }\n }\n }\n goToToday() {\n this.displayDate = new Date();\n this.value = new Date();\n this.updateView();\n this.dispatchChange();\n }\n goToDate(date) {\n this.displayDate = typeof date === 'string' ? new Date(date) : date;\n this.value = this.displayDate;\n this.updateView();\n this.dispatchChange();\n }\n previousMonth() {\n this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() - 1);\n this.updateView();\n }\n nextMonth() {\n this.displayDate = new Date(this.displayDate.getFullYear(), this.displayDate.getMonth() + 1);\n this.updateView();\n }\n previousWeek() {\n this.displayDate = new Date(this.displayDate.getTime() - 7 * 24 * 60 * 60 * 1000);\n this.updateView();\n }\n nextWeek() {\n this.displayDate = new Date(this.displayDate.getTime() + 7 * 24 * 60 * 60 * 1000);\n this.updateView();\n }\n previousDay() {\n this.displayDate = new Date(this.displayDate.getTime() - 24 * 60 * 60 * 1000);\n this.updateView();\n }\n nextDay() {\n this.displayDate = new Date(this.displayDate.getTime() + 24 * 60 * 60 * 1000);\n this.updateView();\n }\n getDisplayedMonth() {\n return {\n month: this.displayDate.getMonth(),\n year: this.displayDate.getFullYear()\n };\n }\n getEventsForDate(date) {\n const targetDate = typeof date === 'string' ? new Date(date) : date;\n const targetTime = targetDate.getTime();\n return this.events.filter(event => {\n if (!event.start)\n return false;\n const startDate = typeof event.start === 'string' ? new Date(event.start) : event.start;\n const startTime = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate()).getTime();\n // If no end date, event is single day\n if (!event.end) {\n return this.isSameDay(targetDate, startDate);\n }\n // Multi-day event: check if target date falls between start and end\n const endDate = typeof event.end === 'string' ? new Date(event.end) : event.end;\n const endTime = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate()).getTime();\n return targetTime >= startTime && targetTime <= endTime;\n });\n }\n formatDate(date) {\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n }\n isSameDay(date1, date2) {\n return this.formatDate(date1) === this.formatDate(date2);\n }\n isToday(date) {\n return this.isSameDay(date, new Date());\n }\n isSelected(date) {\n const valueDate = typeof this.value === 'string' ? new Date(this.value) : this.value;\n return this.isSameDay(date, valueDate);\n }\n isDisabled(date) {\n if (this.minDate) {\n const min = typeof this.minDate === 'string' ? new Date(this.minDate) : this.minDate;\n if (date < min)\n return true;\n }\n if (this.maxDate) {\n const max = typeof this.maxDate === 'string' ? new Date(this.maxDate) : this.maxDate;\n if (date > max)\n return true;\n }\n return this.disabledDates.some(d => {\n const disabledDate = typeof d === 'string' ? new Date(d) : d;\n return this.isSameDay(date, disabledDate);\n });\n }\n handleDayClick(date) {\n // Display-only calendars: days are not selectable at all.\n if (this.noDaySelect)\n return;\n if (this.isDisabled(date))\n return;\n this.value = date;\n this.updateView();\n this.dispatchChange();\n }\n handleEventClick(event, e) {\n e.stopPropagation();\n this.dispatchEventClick(event);\n }\n handleMoreClick(date, count, e) {\n e.stopPropagation();\n this.dispatchMoreClick(date, count);\n }\n getMonthDays() {\n const year = this.displayDate.getFullYear();\n const month = this.displayDate.getMonth();\n // First day of the month\n const firstDay = new Date(year, month, 1);\n const firstDayOfWeek = firstDay.getDay();\n // Adjust for first day of week setting\n const daysToSubtract = (firstDayOfWeek - this.firstDayOfWeek + 7) % 7;\n const startDate = new Date(year, month, 1 - daysToSubtract);\n // Generate 42 days (6 weeks)\n const days = [];\n for (let i = 0; i < 42; i++) {\n days.push(new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i));\n }\n return days;\n }\n getWeekdays() {\n const weekdays = [];\n const baseDate = new Date(2024, 0, this.firstDayOfWeek); // Start from a Sunday\n for (let i = 0; i < 7; i++) {\n const date = new Date(baseDate);\n date.setDate(baseDate.getDate() + i);\n weekdays.push(date.toLocaleDateString(this.locale, { weekday: 'short' }));\n }\n return weekdays;\n }\n handlePropertyChange() {\n if (this.grid) {\n this.updateView();\n }\n }\n handleWeekdayInputsChange() {\n if (!this.grid)\n return;\n // Rebuild the weekday header row so the new locale / start-of-week is reflected.\n const existing = this.grid.querySelectorAll('.calendar__weekday');\n existing.forEach(el => el.remove());\n const weekdays = this.getWeekdays();\n weekdays.forEach((day, i) => {\n const weekdayEl = document.createElement('div');\n weekdayEl.className = 'calendar__weekday';\n weekdayEl.textContent = day;\n weekdayEl.style.gridRow = '1';\n weekdayEl.style.gridColumn = String(i + 1);\n // Insert before the first day cell so header row stays at the top\n this.grid.insertBefore(weekdayEl, this.grid.children[i] || null);\n });\n this.updateView();\n }\n static {\n __runInitializers(_classThis, _classExtraInitializers);\n }\n };\n return SniceCalendar = _classThis;\n})();\n\nexport { SniceCalendar };\n//# sourceMappingURL=snice-calendar.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","_classDescriptor","_classThis","_src_decorators","_alt_decorators","_name_decorators","_size_decorators","_shape_decorators","_loading_decorators","_fallbackColor_decorators","_fallbackBackground_decorators","_imageElement_decorators","_fallbackElement_decorators","_imageError_decorators","_render_decorators","_styles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_src_initializers","_src_extraInitializers","_alt_initializers","_alt_extraInitializers","_name_initializers","_name_extraInitializers","_size_initializers","_size_extraInitializers","_shape_initializers","_shape_extraInitializers","_loading_initializers","_loading_extraInitializers","_fallbackColor_initializers","_fallbackColor_extraInitializers","_fallbackBackground_initializers","_fallbackBackground_extraInitializers","_imageElement_initializers","_imageElement_extraInitializers","_fallbackElement_initializers","_fallbackElement_extraInitializers","_imageError_initializers","_imageError_extraInitializers","this","constructor","super","src","alt","size","shape","loading","fallbackColor","fallbackBackground","imageElement","fallbackElement","imageError","handleImageLoad","handleImageError","_metadata","Symbol","metadata","create","property","attribute","query","type","Boolean","render","styles","static","private","has","obj","enumerable","configurable","writable","colorClass","getColorClass","bgStyle","initials","getInitials","avatarClasses","filter","join","imageClasses","fallbackClasses","html","css","words","trim","split","w","toUpperCase","colors","hash","charCodeAt","Math","abs","renderIcon","SniceCalendar","_value_decorators","_view_decorators","_events_decorators","_minDate_decorators","_maxDate_decorators","_disabledDates_decorators","_highlightToday_decorators","_showWeekNumbers_decorators","_firstDayOfWeek_decorators","_locale_decorators","_noDaySelect_decorators","_cellSizing_decorators","_eventTooltip_decorators","_eventPopover_decorators","_dispatchChange_decorators","_dispatchEventClick_decorators","_dispatchMoreClick_decorators","_initialize_decorators","_requestEventPopoverContent_decorators","_cleanupPopover_decorators","_handlePropertyChange_decorators","_handleWeekdayInputsChange_decorators","_value_initializers","_value_extraInitializers","_view_initializers","_view_extraInitializers","_events_initializers","_events_extraInitializers","_minDate_initializers","_minDate_extraInitializers","_maxDate_initializers","_maxDate_extraInitializers","_disabledDates_initializers","_disabledDates_extraInitializers","_highlightToday_initializers","_highlightToday_extraInitializers","_showWeekNumbers_initializers","_showWeekNumbers_extraInitializers","_firstDayOfWeek_initializers","_firstDayOfWeek_extraInitializers","_locale_initializers","_locale_extraInitializers","_noDaySelect_initializers","_noDaySelect_extraInitializers","_cellSizing_initializers","_cellSizing_extraInitializers","_eventTooltip_initializers","_eventTooltip_extraInitializers","_eventPopover_initializers","_eventPopover_extraInitializers","Date","view","events","minDate","maxDate","disabledDates","highlightToday","showWeekNumbers","firstDayOfWeek","locale","noDaySelect","cellSizing","eventTooltip","eventPopover","displayDate","tooltipToken","tooltipBar","popoverToken","popoverBar","boundPopoverEscape","e","closeEventPopover","boundPopoverOutside","composedPath","includes","popoverEl","returnFocus","dayCells","focusedDate","handleGridKeydown","currentDate","__date","delta","monthStep","getDay","preventDefault","handleDayClick","next","setDate","getDate","setMonth","getMonth","getFullYear","updateView","requestAnimationFrame","cell","find","c","sameAs","e2","d","focus","Array","Number","dispatch","bubbles","composed","ready","request","dispose","watch","dispatchChange","dispatchEventClick","dispatchMoreClick","initialize","requestEventPopoverContent","cleanupPopover","handlePropertyChange","handleWeekdayInputsChange","computeRovingIndex","days","same","a","b","idx","findIndex","s","isNaN","getTime","today","tIdx","calendar","event","date","count","createDOM","shadow","shadowRoot","container","document","createElement","className","setAttribute","header","title","nav","todayBtn","textContent","onclick","goToToday","prevBtn","previousMonth","nextBtn","nextMonth","appendChild","grid","getWeekdays","forEach","day","weekdayEl","style","gridRow","gridColumn","String","addEventListener","dayCell","floor","dayNumber","tooltipEl","id","hidden","tabIndex","openEventPopover","bar","token","hideEventTooltip","replaceChildren","content","positionPopover","popover","undefined","console","warn","rect","getBoundingClientRect","left","max","top","bottom","options","removeEventListener","isConnected","showEventTooltip","provider","tooltip","offsetHeight","removeAttribute","monthName","toLocaleDateString","month","year","titleEl","querySelector","getMonthDays","currentMonth","rovingIndex","isOtherMonth","isToday","isSelected","isDisabled","classList","add","dateStyle","renderEventStripes","MAX_EVENT_LANES","querySelectorAll","el","remove","removeProperty","dayTimes","map","dayIndex","Map","t","gridStart","gridEnd","normalize","resolved","order","start","startTime","endTime","end","startsBeforeGrid","endsAfterGrid","startIdx","endIdx","duration","sort","hiddenPerDay","fill","weekCount","weekLaneCounts","week","weekStart","weekEnd","lanes","item","segStart","segEnd","min","startCol","endCol","lane","some","continuesLeft","continuesRight","customClasses","setProperty","color","background","avatar","spec","onmouseenter","onmouseleave","onkeydown","stopPropagation","handleEventClick","more","handleMoreClick","weekHasMore","slice","goToDate","previousWeek","nextWeek","previousDay","nextDay","getDisplayedMonth","getEventsForDate","targetDate","targetTime","startDate","isSameDay","endDate","formatDate","padStart","date1","date2","valueDate","disabledDate","weekdays","baseDate","weekday","insertBefore","children"],"mappings":"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","x_google_ignoreList":[0]}