snice 7.0.2 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/.agents/skills/snice/SKILL.md +4 -0
  2. package/.agents/skills/snice/references/core-kitchen-sink.ts +39 -1
  3. package/README.md +59 -14
  4. package/adapters/react/SniceProvider.js +2 -2
  5. package/adapters/react/SniceRouter.js +2 -2
  6. package/adapters/react/matchRoute.js +2 -2
  7. package/adapters/react/useRequestHandler.js +2 -2
  8. package/bin/analyzer-contracts.js +6 -1
  9. package/bin/postinstall.js +59 -0
  10. package/bin/project-analyzer.js +466 -5
  11. package/bin/snice.js +3 -0
  12. package/dist/app-context.d.ts +11 -0
  13. package/dist/cdn/accordion/snice-accordion.js +2 -2
  14. package/dist/cdn/action-bar/snice-action-bar.js +2 -2
  15. package/dist/cdn/activity-feed/snice-activity-feed.js +2 -2
  16. package/dist/cdn/alert/snice-alert.js +2 -2
  17. package/dist/cdn/app-tiles/snice-app-tiles.js +2 -2
  18. package/dist/cdn/approval-flow/snice-approval-flow.js +2 -2
  19. package/dist/cdn/audio-recorder/snice-audio-recorder.js +2 -2
  20. package/dist/cdn/availability/snice-availability.js +2 -2
  21. package/dist/cdn/avatar/snice-avatar.js +2 -2
  22. package/dist/cdn/avatar-group/snice-avatar-group.js +2 -2
  23. package/dist/cdn/badge/snice-badge.js +2 -2
  24. package/dist/cdn/banner/snice-banner.js +2 -2
  25. package/dist/cdn/binpack/snice-binpack.js +2 -2
  26. package/dist/cdn/book/snice-book.js +2 -2
  27. package/dist/cdn/booking/snice-booking.js +2 -2
  28. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +2 -2
  29. package/dist/cdn/button/snice-button.js +2 -2
  30. package/dist/cdn/calendar/snice-calendar.js +2 -2
  31. package/dist/cdn/camera/snice-camera.js +2 -2
  32. package/dist/cdn/camera-annotate/snice-camera-annotate.js +2 -2
  33. package/dist/cdn/candlestick/snice-candlestick.js +2 -2
  34. package/dist/cdn/card/snice-card.js +2 -2
  35. package/dist/cdn/carousel/snice-carousel.js +2 -2
  36. package/dist/cdn/cart/snice-cart.js +2 -2
  37. package/dist/cdn/chart/snice-chart.js +2 -2
  38. package/dist/cdn/chat/snice-chat.js +2 -2
  39. package/dist/cdn/checkbox/snice-checkbox.js +2 -2
  40. package/dist/cdn/chip/snice-chip.js +2 -2
  41. package/dist/cdn/code-block/snice-code-block.js +2 -2
  42. package/dist/cdn/color-display/snice-color-display.js +2 -2
  43. package/dist/cdn/color-picker/snice-color-picker.js +2 -2
  44. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  45. package/dist/cdn/comments/snice-comments.js +2 -2
  46. package/dist/cdn/countdown/snice-countdown.js +2 -2
  47. package/dist/cdn/cropper/snice-cropper.js +2 -2
  48. package/dist/cdn/data-card/snice-data-card.js +2 -2
  49. package/dist/cdn/date-picker/snice-date-picker.js +2 -2
  50. package/dist/cdn/date-range-picker/snice-date-range-picker.js +2 -2
  51. package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
  52. package/dist/cdn/diff/snice-diff.js +2 -2
  53. package/dist/cdn/divider/snice-divider.js +2 -2
  54. package/dist/cdn/doc/snice-doc.js +2 -2
  55. package/dist/cdn/draw/snice-draw.js +2 -2
  56. package/dist/cdn/drawer/snice-drawer.js +2 -2
  57. package/dist/cdn/empty-state/snice-empty-state.js +2 -2
  58. package/dist/cdn/estimate/snice-estimate.js +2 -2
  59. package/dist/cdn/file-gallery/snice-file-gallery.js +2 -2
  60. package/dist/cdn/file-upload/snice-file-upload.js +2 -2
  61. package/dist/cdn/flip-card/snice-flip-card.js +2 -2
  62. package/dist/cdn/flow/snice-flow.js +2 -2
  63. package/dist/cdn/form-layout/snice-form-layout.js +2 -2
  64. package/dist/cdn/funnel/snice-funnel.js +2 -2
  65. package/dist/cdn/gantt/snice-gantt.js +2 -2
  66. package/dist/cdn/gauge/snice-gauge.js +2 -2
  67. package/dist/cdn/grid/snice-grid.js +2 -2
  68. package/dist/cdn/heatmap/snice-heatmap.js +2 -2
  69. package/dist/cdn/image/snice-image.js +2 -2
  70. package/dist/cdn/input/snice-input.js +2 -2
  71. package/dist/cdn/invoice/snice-invoice.js +2 -2
  72. package/dist/cdn/kanban/snice-kanban.js +2 -2
  73. package/dist/cdn/key-value/snice-key-value.js +2 -2
  74. package/dist/cdn/kpi/snice-kpi.js +2 -2
  75. package/dist/cdn/layout/README.md +17 -2
  76. package/dist/cdn/layout/snice-layout.js +1656 -11
  77. package/dist/cdn/layout/snice-layout.js.map +1 -1
  78. package/dist/cdn/layout/snice-layout.min.js +379 -2
  79. package/dist/cdn/layout/snice-layout.min.js.map +1 -1
  80. package/dist/cdn/leaderboard/snice-leaderboard.js +2 -2
  81. package/dist/cdn/link/snice-link.js +2 -2
  82. package/dist/cdn/link-preview/snice-link-preview.js +2 -2
  83. package/dist/cdn/list/snice-list.js +2 -2
  84. package/dist/cdn/location/snice-location.js +2 -2
  85. package/dist/cdn/login/snice-login.js +2 -2
  86. package/dist/cdn/map/snice-map.js +2 -2
  87. package/dist/cdn/markdown/snice-markdown.js +2 -2
  88. package/dist/cdn/masonry/snice-masonry.js +2 -2
  89. package/dist/cdn/menu/snice-menu.js +2 -2
  90. package/dist/cdn/message-strip/snice-message-strip.js +2 -2
  91. package/dist/cdn/modal/snice-modal.js +2 -2
  92. package/dist/cdn/music-player/snice-music-player.js +2 -2
  93. package/dist/cdn/nav/snice-nav.js +2 -2
  94. package/dist/cdn/network-graph/snice-network-graph.js +2 -2
  95. package/dist/cdn/notification-center/snice-notification-center.js +2 -2
  96. package/dist/cdn/order-tracker/snice-order-tracker.js +2 -2
  97. package/dist/cdn/org-chart/snice-org-chart.js +2 -2
  98. package/dist/cdn/pagination/snice-pagination.js +2 -2
  99. package/dist/cdn/paint/snice-paint.js +2 -2
  100. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +2 -2
  101. package/dist/cdn/permission-matrix/snice-permission-matrix.js +2 -2
  102. package/dist/cdn/podcast-player/snice-podcast-player.js +2 -2
  103. package/dist/cdn/popover/snice-popover.js +2 -2
  104. package/dist/cdn/pricing-table/snice-pricing-table.js +2 -2
  105. package/dist/cdn/product-card/snice-product-card.js +2 -2
  106. package/dist/cdn/progress/snice-progress.js +2 -2
  107. package/dist/cdn/progress-ring/snice-progress-ring.js +2 -2
  108. package/dist/cdn/qr-code/snice-qr-code.js +2 -2
  109. package/dist/cdn/qr-reader/snice-qr-reader.js +2 -2
  110. package/dist/cdn/radio/snice-radio.js +2 -2
  111. package/dist/cdn/range-slider/snice-range-slider.js +2 -2
  112. package/dist/cdn/rating/snice-rating.js +2 -2
  113. package/dist/cdn/receipt/snice-receipt.js +2 -2
  114. package/dist/cdn/recipe/snice-recipe.js +3 -3
  115. package/dist/cdn/recipe/snice-recipe.js.map +1 -1
  116. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  117. package/dist/cdn/recipe/snice-recipe.min.js.map +1 -1
  118. package/dist/cdn/runtime/README.md +2 -2
  119. package/dist/cdn/runtime/snice-runtime.esm.js +3725 -3336
  120. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  121. package/dist/cdn/runtime/snice-runtime.esm.min.js +1 -1
  122. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  123. package/dist/cdn/runtime/snice-runtime.js +3727 -3335
  124. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  125. package/dist/cdn/runtime/snice-runtime.min.js +1 -1
  126. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  127. package/dist/cdn/sankey/snice-sankey.js +2 -2
  128. package/dist/cdn/segmented-control/snice-segmented-control.js +2 -2
  129. package/dist/cdn/select/snice-select.js +2 -2
  130. package/dist/cdn/skeleton/snice-skeleton.js +2 -2
  131. package/dist/cdn/slider/snice-slider.js +2 -2
  132. package/dist/cdn/sortable/snice-sortable.js +2 -2
  133. package/dist/cdn/sparkline/snice-sparkline.js +2 -2
  134. package/dist/cdn/spinner/snice-spinner.js +2 -2
  135. package/dist/cdn/split-button/snice-split-button.js +2 -2
  136. package/dist/cdn/split-pane/snice-split-pane.js +2 -2
  137. package/dist/cdn/spotlight/snice-spotlight.js +2 -2
  138. package/dist/cdn/stat-group/snice-stat-group.js +2 -2
  139. package/dist/cdn/step-input/snice-step-input.js +2 -2
  140. package/dist/cdn/stepper/snice-stepper.js +2 -2
  141. package/dist/cdn/switch/snice-switch.js +2 -2
  142. package/dist/cdn/table/README.md +6 -2
  143. package/dist/cdn/table/snice-table.esm.js +366 -56
  144. package/dist/cdn/table/snice-table.esm.js.map +1 -1
  145. package/dist/cdn/table/snice-table.esm.min.js +107 -46
  146. package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
  147. package/dist/cdn/table/snice-table.js +367 -59
  148. package/dist/cdn/table/snice-table.js.map +1 -1
  149. package/dist/cdn/table/snice-table.min.js +155 -94
  150. package/dist/cdn/table/snice-table.min.js.map +1 -1
  151. package/dist/cdn/tabs/snice-tabs.js +2 -2
  152. package/dist/cdn/tag/snice-tag.js +2 -2
  153. package/dist/cdn/tag-input/snice-tag-input.js +2 -2
  154. package/dist/cdn/terminal/snice-terminal.js +3 -2
  155. package/dist/cdn/terminal/snice-terminal.js.map +1 -1
  156. package/dist/cdn/terminal/snice-terminal.min.js +1 -0
  157. package/dist/cdn/terminal/snice-terminal.min.js.map +1 -1
  158. package/dist/cdn/testimonial/snice-testimonial.js +2 -2
  159. package/dist/cdn/textarea/snice-textarea.js +2 -2
  160. package/dist/cdn/time-picker/snice-time-picker.js +2 -2
  161. package/dist/cdn/time-range-picker/snice-time-range-picker.js +2 -2
  162. package/dist/cdn/timeline/snice-timeline.js +2 -2
  163. package/dist/cdn/timer/snice-timer.js +2 -2
  164. package/dist/cdn/toast/snice-toast.js +2 -2
  165. package/dist/cdn/tooltip/snice-tooltip.js +2 -2
  166. package/dist/cdn/tree/snice-tree.js +2 -2
  167. package/dist/cdn/treemap/snice-treemap.js +2 -2
  168. package/dist/cdn/user-card/snice-user-card.js +2 -2
  169. package/dist/cdn/video-player/README.md +1 -1
  170. package/dist/cdn/video-player/snice-video-player.js +3 -2
  171. package/dist/cdn/video-player/snice-video-player.js.map +1 -1
  172. package/dist/cdn/video-player/snice-video-player.min.js +1 -0
  173. package/dist/cdn/video-player/snice-video-player.min.js.map +1 -1
  174. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +2 -2
  175. package/dist/cdn/waterfall/snice-waterfall.js +2 -2
  176. package/dist/cdn/weather/snice-weather.js +2 -2
  177. package/dist/cdn/work-order/snice-work-order.js +2 -2
  178. package/dist/components/recipe/snice-recipe.js +1 -1
  179. package/dist/components/recipe/snice-recipe.js.map +1 -1
  180. package/dist/components/table/snice-table.d.ts +1 -0
  181. package/dist/components/table/snice-table.js +18 -2
  182. package/dist/components/table/snice-table.js.map +1 -1
  183. package/dist/components/table/table-tree-data.js +1 -0
  184. package/dist/components/table/table-tree-data.js.map +1 -1
  185. package/dist/components/terminal/snice-terminal.js +1 -0
  186. package/dist/components/terminal/snice-terminal.js.map +1 -1
  187. package/dist/components/video-player/snice-video-player.js +1 -0
  188. package/dist/components/video-player/snice-video-player.js.map +1 -1
  189. package/dist/context-provider.d.ts +16 -0
  190. package/dist/daemon-target.d.ts +10 -0
  191. package/dist/daemon.d.ts +10 -0
  192. package/dist/index.cjs +3721 -3329
  193. package/dist/index.cjs.map +1 -1
  194. package/dist/index.d.ts +3 -0
  195. package/dist/index.esm.js +3719 -3330
  196. package/dist/index.esm.js.map +1 -1
  197. package/dist/index.iife.js +3721 -3329
  198. package/dist/index.iife.js.map +1 -1
  199. package/dist/keyboard-filter.d.ts +25 -0
  200. package/dist/on.d.ts +1 -1
  201. package/dist/parts.d.ts +0 -17
  202. package/dist/react/SniceProvider.js +2 -2
  203. package/dist/react/SniceRouter.js +2 -2
  204. package/dist/react/index.js +2 -2
  205. package/dist/react/matchRoute.js +2 -2
  206. package/dist/react/useRequestHandler.js +2 -2
  207. package/dist/request-response.d.ts +9 -1
  208. package/dist/symbols.cjs +11 -2
  209. package/dist/symbols.cjs.map +1 -1
  210. package/dist/symbols.d.ts +3 -0
  211. package/dist/symbols.esm.js +9 -3
  212. package/dist/symbols.esm.js.map +1 -1
  213. package/dist/testing.d.ts +1 -1
  214. package/dist/transitions.cjs +2 -2
  215. package/dist/transitions.esm.js +2 -2
  216. package/dist/types/app-context.d.ts +9 -58
  217. package/dist/types/daemon.d.ts +8 -0
  218. package/dist/types/dispatch-options.d.ts +2 -0
  219. package/dist/types/index.d.ts +1 -0
  220. package/dist/types/on-options.d.ts +5 -0
  221. package/dist/types/request-options.d.ts +2 -0
  222. package/dist/types/respond-options.d.ts +2 -0
  223. package/docs/ai/DEVELOPMENT.md +15 -1
  224. package/docs/ai/README.md +5 -1
  225. package/docs/ai/api.md +13 -4
  226. package/docs/ai/architecture.md +50 -1
  227. package/docs/ai/cli.md +9 -0
  228. package/docs/ai/components/avatar.md +8 -8
  229. package/docs/ai/components/breadcrumbs.md +2 -1
  230. package/docs/ai/components/button.md +2 -7
  231. package/docs/ai/components/calendar.md +1 -1
  232. package/docs/ai/components/camera.md +1 -1
  233. package/docs/ai/components/chart.md +3 -1
  234. package/docs/ai/components/code-block.md +2 -2
  235. package/docs/ai/components/date-picker.md +5 -19
  236. package/docs/ai/components/date-range-picker.md +4 -12
  237. package/docs/ai/components/draw.md +5 -5
  238. package/docs/ai/components/drawer.md +4 -4
  239. package/docs/ai/components/form-layout.md +2 -0
  240. package/docs/ai/components/icons.md +7 -16
  241. package/docs/ai/components/key-value.md +3 -22
  242. package/docs/ai/components/layout.md +8 -12
  243. package/docs/ai/components/leaderboard.md +2 -2
  244. package/docs/ai/components/link-preview.md +4 -3
  245. package/docs/ai/components/login.md +11 -0
  246. package/docs/ai/components/markdown.md +7 -0
  247. package/docs/ai/components/masonry.md +6 -0
  248. package/docs/ai/components/menu.md +1 -1
  249. package/docs/ai/components/modal.md +7 -0
  250. package/docs/ai/components/notification-center.md +5 -4
  251. package/docs/ai/components/radio.md +7 -0
  252. package/docs/ai/components/rating.md +3 -3
  253. package/docs/ai/components/select.md +4 -13
  254. package/docs/ai/components/spotlight.md +2 -0
  255. package/docs/ai/components/table.md +1 -4
  256. package/docs/ai/components/tag-input.md +6 -0
  257. package/docs/ai/components/terminal.md +6 -0
  258. package/docs/ai/components/tooltip.md +10 -16
  259. package/docs/ai/components/tree.md +2 -2
  260. package/docs/ai/components/video-player.md +5 -0
  261. package/docs/ai/components/waterfall.md +7 -0
  262. package/docs/ai/daemons.md +80 -0
  263. package/docs/ai/decorators.md +6 -4
  264. package/docs/ai/events.md +35 -0
  265. package/docs/ai/patterns.md +45 -1
  266. package/docs/ai/request-response.md +26 -9
  267. package/docs/ai/routing.md +16 -1
  268. package/docs/cli.md +7 -0
  269. package/docs/components/breadcrumbs.md +2 -1
  270. package/docs/components/calendar.md +1 -1
  271. package/docs/components/camera.md +1 -1
  272. package/docs/components/chart.md +1 -1
  273. package/docs/components/code-block.md +13 -4
  274. package/docs/components/color-picker.md +6 -5
  275. package/docs/components/date-time-picker.md +14 -0
  276. package/docs/components/diff.md +2 -1
  277. package/docs/components/draw.md +5 -5
  278. package/docs/components/drawer.md +4 -4
  279. package/docs/components/input.md +1 -0
  280. package/docs/components/layout.md +20 -22
  281. package/docs/components/leaderboard.md +10 -3
  282. package/docs/components/link-preview.md +11 -9
  283. package/docs/components/login.md +4 -0
  284. package/docs/components/menu.md +1 -1
  285. package/docs/components/modal.md +1 -0
  286. package/docs/components/nav.md +1 -0
  287. package/docs/components/network-graph.md +1 -0
  288. package/docs/components/notification-center.md +2 -1
  289. package/docs/components/product-card.md +1 -0
  290. package/docs/components/qr-reader.md +1 -0
  291. package/docs/components/rating.md +4 -4
  292. package/docs/components/select.md +1 -0
  293. package/docs/components/spotlight.md +2 -0
  294. package/docs/components/tabs.md +1 -0
  295. package/docs/components/terminal.md +3 -0
  296. package/docs/components/textarea.md +1 -1
  297. package/docs/components/time-picker.md +14 -0
  298. package/docs/components/tooltip.md +2 -0
  299. package/docs/components/tree.md +2 -2
  300. package/docs/daemons.md +200 -0
  301. package/docs/events.md +92 -2
  302. package/docs/request-response.md +20 -13
  303. package/docs/routing.md +25 -1
  304. package/package.json +6 -4
@@ -1 +1 @@
1
- {"version":3,"file":"snice-video-player.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/video-player/snice-video-player.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 { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, query, styles, ready, dispose, watch, on, dispatch, render, css, html } from 'snice';\n\nvar playerStyles = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%;--video-overlay-bg:var(--snice-video-overlay-bg, rgb(0 0 0));--video-overlay-alpha:var(--snice-video-overlay-alpha, rgb(0 0 0 / 0.5));--video-controls-color:var(--snice-video-controls-color, rgb(255 255 255));--video-controls-hover-bg:var(--snice-video-controls-hover-bg, rgb(255 255 255 / 0.15));--video-controls-active-bg:var(--snice-video-controls-active-bg, rgb(255 255 255 / 0.25));--video-progress-track:var(--snice-video-progress-track, rgb(255 255 255 / 0.3));--video-progress-buffered:var(--snice-video-progress-buffered, rgb(255 255 255 / 0.4))}.video-container{position:relative;background:var(--video-overlay-bg);border-radius:var(--snice-border-radius-lg,.5rem);overflow:hidden;width:100%}.video-container:-webkit-full-screen,.video-container:fullscreen{border-radius:0}video{display:block;width:100%;height:auto;cursor:pointer}.video-poster{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-color:var(--video-overlay-bg);cursor:pointer;z-index:1}.video-poster-play{width:4.5rem;height:4.5rem;background:var(--snice-video-poster-play-bg,rgb(0 0 0 / .6));border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.video-poster-play:hover{transform:scale(1.1);background:var(--snice-video-poster-play-hover-bg,rgb(0 0 0 / .8))}.video-poster-play svg{color:var(--video-controls-color);margin-left:.25rem}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,var(--snice-video-controls-gradient,rgb(0 0 0 / .7)));padding:var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);opacity:0;transition:opacity var(--snice-transition-medium, 250ms) ease;z-index:2;display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.video-container.controls-visible .video-controls,.video-container.paused .video-controls,.video-container:hover .video-controls{opacity:1}.video-progress-container{width:100%;height:.25rem;cursor:pointer;position:relative;padding:.25rem 0}.video-progress-container:hover{height:.375rem}.video-progress-track{width:100%;height:100%;background:var(--video-progress-track);border-radius:9999px;position:relative;overflow:hidden}.video-progress-buffered{position:absolute;top:0;left:0;height:100%;background:var(--video-progress-buffered);border-radius:9999px}.video-progress-bar{position:absolute;top:0;left:0;height:100%;background:var(--snice-color-primary,rgb(37 99 235));border-radius:9999px;transition:width var(--snice-transition-fast, 150ms) linear}.video-progress-container:hover .video-progress-bar::after{content:'';position:absolute;right:-.375rem;top:50%;transform:translateY(-50%);width:.75rem;height:.75rem;background:var(--snice-color-primary,rgb(37 99 235));border-radius:50%}.video-controls-left,.video-controls-row{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem)}.video-controls-right{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);margin-left:auto}.video-btn{background:0 0;border:none;cursor:pointer;padding:var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-md,.25rem);color:var(--video-controls-color);display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--snice-transition-fast, 150ms) ease;line-height:0}.video-btn:hover{background:var(--video-controls-hover-bg)}.video-btn:active{background:var(--video-controls-active-bg)}.video-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.video-btn svg{width:1.25rem;height:1.25rem}.video-btn-play svg{width:1.5rem;height:1.5rem}.video-time{font-size:var(--snice-font-size-xs, .75rem);color:var(--video-controls-color);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap}.video-volume{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.video-volume-slider{-webkit-appearance:none;appearance:none;width:0;height:.25rem;background:var(--video-progress-track);border-radius:9999px;outline:0;cursor:pointer;transition:width var(--snice-transition-fast, 150ms) ease;overflow:hidden}.video-volume-slider:focus-visible,.video-volume:hover .video-volume-slider{width:4rem}.video-volume-slider::-webkit-slider-runnable-track{width:100%;height:.25rem;background:0 0;border-radius:9999px}.video-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:.75rem;height:.75rem;background:var(--video-controls-color);border-radius:50%;cursor:pointer;margin-top:-.25rem}.video-volume-slider::-moz-range-track{width:100%;height:.25rem;background:var(--video-progress-track);border-radius:9999px}.video-volume-slider::-moz-range-progress{height:.25rem;background:var(--video-controls-color);border-radius:9999px}.video-volume-slider::-moz-range-thumb{width:.75rem;height:.75rem;background:var(--video-controls-color);border:none;border-radius:50%;cursor:pointer}.video-rate-btn{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-medium,500);min-width:2rem;text-align:center}.video-center-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4rem;height:4rem;background:var(--video-overlay-alpha);border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;z-index:1}.video-container.paused .video-center-play{opacity:1}.video-center-play svg{color:var(--video-controls-color);width:2rem;height:2rem;margin-left:.25rem}:host([variant=minimal]) .video-controls{background:var(--video-overlay-alpha);padding:var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .video-center-play{display:none}:host([variant=minimal]) .video-btn-pip,:host([variant=minimal]) .video-rate-btn{display:none}:host([variant=cinema]) .video-container{border-radius:0;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}:host([variant=cinema]) .video-controls{padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem)}:host([variant=cinema]) .video-btn svg{width:1.5rem;height:1.5rem}:host([variant=cinema]) .video-btn-play svg{width:2rem;height:2rem}:host([variant=cinema]) .video-time{font-size:var(--snice-font-size-sm, .875rem)}.video-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.video-loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--snice-video-spinner-track,rgb(255 255 255 / .3));border-top-color:var(--video-controls-color);border-radius:50%;animation:.8s linear infinite video-spin}@keyframes video-spin{to{transform:rotate(360deg)}}@container (max-width:400px){.video-controls-row{gap:var(--snice-spacing-3xs,.125rem)}.video-btn{padding:var(--snice-spacing-3xs,.125rem)}.video-btn svg{width:1rem;height:1rem}.video-btn-play svg{width:1.25rem;height:1.25rem}.video-rate-btn{display:none}.video-time{font-size:.625rem}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nconst PLAYBACK_RATES = [0.5, 0.75, 1, 1.25, 1.5, 2];\n// Encode user-supplied URLs for use inside a CSS `url('...')` context.\n// Escapes single quotes, backslashes, and newlines so the attacker cannot\n// break out of the url() literal and inject additional CSS declarations.\nfunction encodePosterUrl(src) {\n return String(src ?? '')\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, ' ')\n .replace(/\\r/g, ' ');\n}\nconst SEEK_STEP = 5;\nconst VOLUME_STEP = 0.1;\nconst CONTROLS_HIDE_DELAY = 3000;\nlet SniceVideoPlayer = (() => {\n let _classDecorators = [element('snice-video-player')];\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 _poster_decorators;\n let _poster_initializers = [];\n let _poster_extraInitializers = [];\n let _autoplay_decorators;\n let _autoplay_initializers = [];\n let _autoplay_extraInitializers = [];\n let _muted_decorators;\n let _muted_initializers = [];\n let _muted_extraInitializers = [];\n let _loop_decorators;\n let _loop_initializers = [];\n let _loop_extraInitializers = [];\n let _controls_decorators;\n let _controls_initializers = [];\n let _controls_extraInitializers = [];\n let _playbackRate_decorators;\n let _playbackRate_initializers = [];\n let _playbackRate_extraInitializers = [];\n let _currentTime_decorators;\n let _currentTime_initializers = [];\n let _currentTime_extraInitializers = [];\n let _volume_decorators;\n let _volume_initializers = [];\n let _volume_extraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _duration_decorators;\n let _duration_initializers = [];\n let _duration_extraInitializers = [];\n let _playing_decorators;\n let _playing_initializers = [];\n let _playing_extraInitializers = [];\n let _loading_decorators;\n let _loading_initializers = [];\n let _loading_extraInitializers = [];\n let _showPoster_decorators;\n let _showPoster_initializers = [];\n let _showPoster_extraInitializers = [];\n let _controlsVisible_decorators;\n let _controlsVisible_initializers = [];\n let _controlsVisible_extraInitializers = [];\n let _bufferedPercent_decorators;\n let _bufferedPercent_initializers = [];\n let _bufferedPercent_extraInitializers = [];\n let _isSeeking_decorators;\n let _isSeeking_initializers = [];\n let _isSeeking_extraInitializers = [];\n let _container_decorators;\n let _container_initializers = [];\n let _container_extraInitializers = [];\n let _videoEl_decorators;\n let _videoEl_initializers = [];\n let _videoEl_extraInitializers = [];\n let _progressContainer_decorators;\n let _progressContainer_initializers = [];\n let _progressContainer_extraInitializers = [];\n let _componentStyles_decorators;\n let _init_decorators;\n let _cleanup_decorators;\n let _handleSrcChange_decorators;\n let _handleVolumeChange_decorators;\n let _handleMutedChange_decorators;\n let _handlePlaybackRateChange_decorators;\n let _handleLoopChange_decorators;\n let _handleKeydown_decorators;\n let _emitPlay_decorators;\n let _emitPause_decorators;\n let _emitEnded_decorators;\n let _emitTimeUpdate_decorators;\n let _emitFullscreenChange_decorators;\n let _emitVolumeChange_decorators;\n let _renderPlayer_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _src_decorators = [property()];\n _poster_decorators = [property()];\n _autoplay_decorators = [property({ type: Boolean })];\n _muted_decorators = [property({ type: Boolean })];\n _loop_decorators = [property({ type: Boolean })];\n _controls_decorators = [property({ type: Boolean })];\n _playbackRate_decorators = [property({ type: Number, attribute: 'playback-rate' })];\n _currentTime_decorators = [property({ type: Number, attribute: 'current-time' })];\n _volume_decorators = [property({ type: Number })];\n _variant_decorators = [property()];\n _duration_decorators = [property({ type: Number, attribute: false })];\n _playing_decorators = [property({ type: Boolean, attribute: false })];\n _loading_decorators = [property({ type: Boolean, attribute: false })];\n _showPoster_decorators = [property({ type: Boolean, attribute: false })];\n _controlsVisible_decorators = [property({ type: Boolean, attribute: false })];\n _bufferedPercent_decorators = [property({ type: Number, attribute: false })];\n _isSeeking_decorators = [property({ type: Boolean, attribute: false })];\n _container_decorators = [query('.video-container')];\n _videoEl_decorators = [query('video')];\n _progressContainer_decorators = [query('.video-progress-container')];\n _componentStyles_decorators = [styles()];\n _init_decorators = [ready()];\n _cleanup_decorators = [dispose()];\n _handleSrcChange_decorators = [watch('src')];\n _handleVolumeChange_decorators = [watch('volume')];\n _handleMutedChange_decorators = [watch('muted')];\n _handlePlaybackRateChange_decorators = [watch('playbackRate')];\n _handleLoopChange_decorators = [watch('loop')];\n _handleKeydown_decorators = [on('keydown')];\n _emitPlay_decorators = [dispatch('video-play', { bubbles: true, composed: true })];\n _emitPause_decorators = [dispatch('video-pause', { bubbles: true, composed: true })];\n _emitEnded_decorators = [dispatch('video-ended', { bubbles: true, composed: true })];\n _emitTimeUpdate_decorators = [dispatch('video-time-update', { bubbles: true, composed: true })];\n _emitFullscreenChange_decorators = [dispatch('video-fullscreen-change', { bubbles: true, composed: true })];\n _emitVolumeChange_decorators = [dispatch('video-volume-change', { bubbles: true, composed: true })];\n _renderPlayer_decorators = [render()];\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleSrcChange_decorators, { kind: \"method\", name: \"handleSrcChange\", static: false, private: false, access: { has: obj => \"handleSrcChange\" in obj, get: obj => obj.handleSrcChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleVolumeChange_decorators, { kind: \"method\", name: \"handleVolumeChange\", static: false, private: false, access: { has: obj => \"handleVolumeChange\" in obj, get: obj => obj.handleVolumeChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleMutedChange_decorators, { kind: \"method\", name: \"handleMutedChange\", static: false, private: false, access: { has: obj => \"handleMutedChange\" in obj, get: obj => obj.handleMutedChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handlePlaybackRateChange_decorators, { kind: \"method\", name: \"handlePlaybackRateChange\", static: false, private: false, access: { has: obj => \"handlePlaybackRateChange\" in obj, get: obj => obj.handlePlaybackRateChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleLoopChange_decorators, { kind: \"method\", name: \"handleLoopChange\", static: false, private: false, access: { has: obj => \"handleLoopChange\" in obj, get: obj => obj.handleLoopChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleKeydown_decorators, { kind: \"method\", name: \"handleKeydown\", static: false, private: false, access: { has: obj => \"handleKeydown\" in obj, get: obj => obj.handleKeydown }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitPlay_decorators, { kind: \"method\", name: \"emitPlay\", static: false, private: false, access: { has: obj => \"emitPlay\" in obj, get: obj => obj.emitPlay }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitPause_decorators, { kind: \"method\", name: \"emitPause\", static: false, private: false, access: { has: obj => \"emitPause\" in obj, get: obj => obj.emitPause }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEnded_decorators, { kind: \"method\", name: \"emitEnded\", static: false, private: false, access: { has: obj => \"emitEnded\" in obj, get: obj => obj.emitEnded }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitTimeUpdate_decorators, { kind: \"method\", name: \"emitTimeUpdate\", static: false, private: false, access: { has: obj => \"emitTimeUpdate\" in obj, get: obj => obj.emitTimeUpdate }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitFullscreenChange_decorators, { kind: \"method\", name: \"emitFullscreenChange\", static: false, private: false, access: { has: obj => \"emitFullscreenChange\" in obj, get: obj => obj.emitFullscreenChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitVolumeChange_decorators, { kind: \"method\", name: \"emitVolumeChange\", static: false, private: false, access: { has: obj => \"emitVolumeChange\" in obj, get: obj => obj.emitVolumeChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderPlayer_decorators, { kind: \"method\", name: \"renderPlayer\", static: false, private: false, access: { has: obj => \"renderPlayer\" in obj, get: obj => obj.renderPlayer }, 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, _poster_decorators, { kind: \"field\", name: \"poster\", static: false, private: false, access: { has: obj => \"poster\" in obj, get: obj => obj.poster, set: (obj, value) => { obj.poster = value; } }, metadata: _metadata }, _poster_initializers, _poster_extraInitializers);\n __esDecorate(null, null, _autoplay_decorators, { kind: \"field\", name: \"autoplay\", static: false, private: false, access: { has: obj => \"autoplay\" in obj, get: obj => obj.autoplay, set: (obj, value) => { obj.autoplay = value; } }, metadata: _metadata }, _autoplay_initializers, _autoplay_extraInitializers);\n __esDecorate(null, null, _muted_decorators, { kind: \"field\", name: \"muted\", static: false, private: false, access: { has: obj => \"muted\" in obj, get: obj => obj.muted, set: (obj, value) => { obj.muted = value; } }, metadata: _metadata }, _muted_initializers, _muted_extraInitializers);\n __esDecorate(null, null, _loop_decorators, { kind: \"field\", name: \"loop\", static: false, private: false, access: { has: obj => \"loop\" in obj, get: obj => obj.loop, set: (obj, value) => { obj.loop = value; } }, metadata: _metadata }, _loop_initializers, _loop_extraInitializers);\n __esDecorate(null, null, _controls_decorators, { kind: \"field\", name: \"controls\", static: false, private: false, access: { has: obj => \"controls\" in obj, get: obj => obj.controls, set: (obj, value) => { obj.controls = value; } }, metadata: _metadata }, _controls_initializers, _controls_extraInitializers);\n __esDecorate(null, null, _playbackRate_decorators, { kind: \"field\", name: \"playbackRate\", static: false, private: false, access: { has: obj => \"playbackRate\" in obj, get: obj => obj.playbackRate, set: (obj, value) => { obj.playbackRate = value; } }, metadata: _metadata }, _playbackRate_initializers, _playbackRate_extraInitializers);\n __esDecorate(null, null, _currentTime_decorators, { kind: \"field\", name: \"currentTime\", static: false, private: false, access: { has: obj => \"currentTime\" in obj, get: obj => obj.currentTime, set: (obj, value) => { obj.currentTime = value; } }, metadata: _metadata }, _currentTime_initializers, _currentTime_extraInitializers);\n __esDecorate(null, null, _volume_decorators, { kind: \"field\", name: \"volume\", static: false, private: false, access: { has: obj => \"volume\" in obj, get: obj => obj.volume, set: (obj, value) => { obj.volume = value; } }, metadata: _metadata }, _volume_initializers, _volume_extraInitializers);\n __esDecorate(null, null, _variant_decorators, { kind: \"field\", name: \"variant\", static: false, private: false, access: { has: obj => \"variant\" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);\n __esDecorate(null, null, _duration_decorators, { kind: \"field\", name: \"duration\", static: false, private: false, access: { has: obj => \"duration\" in obj, get: obj => obj.duration, set: (obj, value) => { obj.duration = value; } }, metadata: _metadata }, _duration_initializers, _duration_extraInitializers);\n __esDecorate(null, null, _playing_decorators, { kind: \"field\", name: \"playing\", static: false, private: false, access: { has: obj => \"playing\" in obj, get: obj => obj.playing, set: (obj, value) => { obj.playing = value; } }, metadata: _metadata }, _playing_initializers, _playing_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, _showPoster_decorators, { kind: \"field\", name: \"showPoster\", static: false, private: false, access: { has: obj => \"showPoster\" in obj, get: obj => obj.showPoster, set: (obj, value) => { obj.showPoster = value; } }, metadata: _metadata }, _showPoster_initializers, _showPoster_extraInitializers);\n __esDecorate(null, null, _controlsVisible_decorators, { kind: \"field\", name: \"controlsVisible\", static: false, private: false, access: { has: obj => \"controlsVisible\" in obj, get: obj => obj.controlsVisible, set: (obj, value) => { obj.controlsVisible = value; } }, metadata: _metadata }, _controlsVisible_initializers, _controlsVisible_extraInitializers);\n __esDecorate(null, null, _bufferedPercent_decorators, { kind: \"field\", name: \"bufferedPercent\", static: false, private: false, access: { has: obj => \"bufferedPercent\" in obj, get: obj => obj.bufferedPercent, set: (obj, value) => { obj.bufferedPercent = value; } }, metadata: _metadata }, _bufferedPercent_initializers, _bufferedPercent_extraInitializers);\n __esDecorate(null, null, _isSeeking_decorators, { kind: \"field\", name: \"isSeeking\", static: false, private: false, access: { has: obj => \"isSeeking\" in obj, get: obj => obj.isSeeking, set: (obj, value) => { obj.isSeeking = value; } }, metadata: _metadata }, _isSeeking_initializers, _isSeeking_extraInitializers);\n __esDecorate(null, null, _container_decorators, { kind: \"field\", name: \"container\", static: false, private: false, access: { has: obj => \"container\" in obj, get: obj => obj.container, set: (obj, value) => { obj.container = value; } }, metadata: _metadata }, _container_initializers, _container_extraInitializers);\n __esDecorate(null, null, _videoEl_decorators, { kind: \"field\", name: \"videoEl\", static: false, private: false, access: { has: obj => \"videoEl\" in obj, get: obj => obj.videoEl, set: (obj, value) => { obj.videoEl = value; } }, metadata: _metadata }, _videoEl_initializers, _videoEl_extraInitializers);\n __esDecorate(null, null, _progressContainer_decorators, { kind: \"field\", name: \"progressContainer\", static: false, private: false, access: { has: obj => \"progressContainer\" in obj, get: obj => obj.progressContainer, set: (obj, value) => { obj.progressContainer = value; } }, metadata: _metadata }, _progressContainer_initializers, _progressContainer_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 componentStyles() {\n return css /*css*/ `${playerStyles}`;\n }\n init() {\n this.showPoster = !!this.poster && !this.autoplay;\n }\n cleanup() {\n this.clearControlsTimer();\n if (this.videoEl) {\n this.videoEl.pause();\n }\n }\n handleSrcChange() {\n this.showPoster = !!this.poster;\n this.playing = false;\n this.currentTime = 0;\n this.duration = 0;\n this.loading = false;\n this.bufferedPercent = 0;\n }\n handleVolumeChange(_oldVal, newVal) {\n if (this.videoEl && newVal >= 0 && newVal <= 1) {\n this.videoEl.volume = newVal;\n }\n }\n handleMutedChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.muted = newVal;\n }\n }\n handlePlaybackRateChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.playbackRate = newVal;\n }\n }\n handleLoopChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.loop = newVal;\n }\n }\n // --- Video event handlers via template bindings ---\n handleVideoLoadedMetadata() {\n if (!this.videoEl)\n return;\n this.duration = this.videoEl.duration;\n this.loading = false;\n }\n handleVideoPlay() {\n this.playing = true;\n this.loading = false;\n this.showPoster = false;\n this.emitPlay();\n this.startControlsTimer();\n }\n handleVideoPause() {\n if (!this.videoEl?.ended) {\n this.playing = false;\n this.emitPause();\n }\n this.clearControlsTimer();\n this.controlsVisible = true;\n }\n handleVideoEnded() {\n this.playing = false;\n this.controlsVisible = true;\n this.emitEnded();\n }\n handleVideoTimeUpdate() {\n if (!this.videoEl || this.isSeeking)\n return;\n this.currentTime = this.videoEl.currentTime;\n this.emitTimeUpdate();\n }\n handleVideoProgress() {\n if (!this.videoEl || this.videoEl.buffered.length === 0)\n return;\n const end = this.videoEl.buffered.end(this.videoEl.buffered.length - 1);\n this.bufferedPercent = this.duration > 0 ? (end / this.duration) * 100 : 0;\n }\n handleVideoWaiting() {\n this.loading = true;\n }\n handleVideoCanPlay() {\n this.loading = false;\n }\n handleVideoVolumeChange() {\n if (!this.videoEl)\n return;\n this.volume = this.videoEl.volume;\n this.muted = this.videoEl.muted;\n this.emitVolumeChange();\n }\n // --- User interaction handlers ---\n handleVideoClick() {\n this.toggle();\n }\n handleVideoDblClick() {\n this.toggleFullscreen();\n }\n handlePosterClick() {\n this.showPoster = false;\n this.play();\n }\n handleProgressClick(e) {\n if (!this.progressContainer || this.duration === 0)\n return;\n const rect = this.progressContainer.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n this.seekTo(percent * this.duration);\n }\n handleProgressMouseDown(e) {\n this.isSeeking = true;\n this.handleProgressClick(e);\n const handleMove = (ev) => {\n if (!this.progressContainer || this.duration === 0)\n return;\n const rect = this.progressContainer.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (ev.clientX - rect.left) / rect.width));\n this.currentTime = percent * this.duration;\n };\n const handleUp = () => {\n this.isSeeking = false;\n if (this.videoEl) {\n this.videoEl.currentTime = this.currentTime;\n }\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n }\n handleVolumeSlider(e) {\n const input = e.target;\n const vol = parseFloat(input.value);\n this.volume = vol;\n if (vol > 0 && this.muted) {\n this.muted = false;\n }\n this.emitVolumeChange();\n }\n toggleMute() {\n if (this.muted) {\n this.muted = false;\n this.volume = this.previousVolume || 1;\n }\n else {\n this.previousVolume = this.volume;\n this.muted = true;\n }\n this.emitVolumeChange();\n }\n cyclePlaybackRate() {\n const currentIdx = PLAYBACK_RATES.indexOf(this.playbackRate);\n const nextIdx = (currentIdx + 1) % PLAYBACK_RATES.length;\n this.setPlaybackRate(PLAYBACK_RATES[nextIdx]);\n }\n handleContainerMouseMove() {\n this.controlsVisible = true;\n this.startControlsTimer();\n }\n handleContainerMouseLeave() {\n if (this.playing) {\n this.controlsVisible = false;\n }\n }\n handleKeydown(e) {\n if (!this.controls)\n return;\n switch (e.key) {\n case ' ':\n case 'k':\n e.preventDefault();\n this.toggle();\n break;\n case 'f':\n e.preventDefault();\n this.toggleFullscreen();\n break;\n case 'm':\n e.preventDefault();\n this.toggleMute();\n break;\n case 'ArrowRight':\n e.preventDefault();\n this.seekTo(Math.min(this.duration, this.currentTime + SEEK_STEP));\n break;\n case 'ArrowLeft':\n e.preventDefault();\n this.seekTo(Math.max(0, this.currentTime - SEEK_STEP));\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.volume = Math.min(1, this.volume + VOLUME_STEP);\n break;\n case 'ArrowDown':\n e.preventDefault();\n this.volume = Math.max(0, this.volume - VOLUME_STEP);\n break;\n }\n }\n // --- Controls timer ---\n startControlsTimer() {\n this.clearControlsTimer();\n if (this.playing) {\n this.controlsTimer = window.setTimeout(() => {\n this.controlsVisible = false;\n }, CONTROLS_HIDE_DELAY);\n }\n }\n clearControlsTimer() {\n if (this.controlsTimer !== null) {\n clearTimeout(this.controlsTimer);\n this.controlsTimer = null;\n }\n }\n // --- Public methods ---\n async play() {\n if (!this.videoEl)\n return;\n this.showPoster = false;\n try {\n await this.videoEl.play();\n }\n catch {\n // Autoplay may be blocked\n }\n }\n pause() {\n if (!this.videoEl)\n return;\n this.videoEl.pause();\n }\n toggle() {\n if (this.playing) {\n this.pause();\n }\n else {\n this.play();\n }\n }\n seekTo(time) {\n if (!this.videoEl)\n return;\n const clamped = Math.max(0, Math.min(this.duration || 0, time));\n this.videoEl.currentTime = clamped;\n this.currentTime = clamped;\n }\n async requestFullscreen() {\n if (!this.container)\n return;\n try {\n await this.container.requestFullscreen();\n }\n catch {\n // Fullscreen may not be available\n }\n }\n async exitFullscreen() {\n if (!document.fullscreenElement)\n return;\n try {\n await document.exitFullscreen();\n }\n catch {\n // May not be in fullscreen\n }\n }\n async requestPictureInPicture() {\n if (!this.videoEl)\n return;\n try {\n if (document.pictureInPictureElement) {\n await document.exitPictureInPicture();\n }\n else {\n await this.videoEl.requestPictureInPicture();\n }\n }\n catch {\n // PiP may not be available\n }\n }\n setPlaybackRate(rate) {\n this.playbackRate = rate;\n }\n async toggleFullscreen() {\n if (document.fullscreenElement) {\n await this.exitFullscreen();\n }\n else {\n await this.requestFullscreen();\n }\n }\n handleFullscreenChange() {\n this.emitFullscreenChange();\n }\n // --- Helpers ---\n formatTime(seconds) {\n if (isNaN(seconds) || !isFinite(seconds))\n return '0:00';\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor(seconds % 60);\n if (h > 0) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return `${m}:${s.toString().padStart(2, '0')}`;\n }\n // --- Dispatch events ---\n emitPlay() {\n return { player: this };\n }\n emitPause() {\n return { player: this };\n }\n emitEnded() {\n return { player: this };\n }\n emitTimeUpdate() {\n return { player: this, currentTime: this.currentTime, duration: this.duration };\n }\n emitFullscreenChange() {\n return { player: this, fullscreen: !!document.fullscreenElement };\n }\n emitVolumeChange() {\n return { player: this, volume: this.volume, muted: this.muted };\n }\n // --- Render ---\n renderPlayer() {\n const progress = this.duration > 0 ? (this.currentTime / this.duration) * 100 : 0;\n const isPlaying = this.playing;\n const containerClass = [\n 'video-container',\n !isPlaying ? 'paused' : '',\n this.controlsVisible ? 'controls-visible' : '',\n ].filter(Boolean).join(' ');\n const isMutedOrZero = this.muted || this.volume === 0;\n return html `\n <div\n part=\"base\"\n class=\"${containerClass}\"\n tabindex=\"0\"\n @mousemove=${() => this.handleContainerMouseMove()}\n @mouseleave=${() => this.handleContainerMouseLeave()}\n @fullscreenchange=${() => this.handleFullscreenChange()}\n >\n <video\n part=\"video\"\n .src=${this.src}\n ?autoplay=${this.autoplay}\n ?muted=${this.muted}\n ?loop=${this.loop}\n playsinline\n preload=\"metadata\"\n @loadedmetadata=${() => this.handleVideoLoadedMetadata()}\n @play=${() => this.handleVideoPlay()}\n @pause=${() => this.handleVideoPause()}\n @ended=${() => this.handleVideoEnded()}\n @timeupdate=${() => this.handleVideoTimeUpdate()}\n @progress=${() => this.handleVideoProgress()}\n @waiting=${() => this.handleVideoWaiting()}\n @canplay=${() => this.handleVideoCanPlay()}\n @volumechange=${() => this.handleVideoVolumeChange()}\n @click=${() => this.handleVideoClick()}\n @dblclick=${() => this.handleVideoDblClick()}\n >\n <slot></slot>\n </video>\n\n <if ${this.showPoster && this.poster}>\n <div\n class=\"video-poster\"\n style=\"background-image: url('${encodePosterUrl(this.poster)}')\"\n @click=${() => this.handlePosterClick()}\n >\n <div class=\"video-poster-play\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </div>\n </div>\n </if>\n\n <if ${this.loading}>\n <div class=\"video-loading\">\n <div class=\"video-loading-spinner\"></div>\n </div>\n </if>\n\n <if ${!isPlaying && !this.showPoster && this.src}>\n <div class=\"video-center-play\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </div>\n </if>\n\n <if ${this.controls && this.src}>\n <div part=\"controls\" class=\"video-controls\">\n <div\n class=\"video-progress-container\"\n @click=${(e) => this.handleProgressClick(e)}\n @mousedown=${(e) => this.handleProgressMouseDown(e)}\n >\n <div part=\"progress\" class=\"video-progress-track\">\n <div class=\"video-progress-buffered\" style=\"width: ${this.bufferedPercent}%\"></div>\n <div class=\"video-progress-bar\" style=\"width: ${progress}%\"></div>\n </div>\n </div>\n\n <div class=\"video-controls-row\">\n <div class=\"video-controls-left\">\n <button class=\"video-btn video-btn-play\" @click=${() => this.toggle()} aria-label=\"${isPlaying ? \"Pause\" : \"Play\"}\" title=\"${isPlaying ? \"Pause\" : \"Play\"}\">\n <if ${isPlaying}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"></rect>\n <rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"></rect>\n </svg>\n </if>\n <if ${!isPlaying}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </if>\n </button>\n\n <div class=\"video-volume\">\n <button class=\"video-btn video-btn-volume\" @click=${() => this.toggleMute()} aria-label=\"${isMutedOrZero ? 'Unmute' : 'Mute'}\" title=\"${isMutedOrZero ? 'Unmute' : 'Mute'}\">\n <if ${isMutedOrZero}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"/>\n <line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"/>\n </svg>\n </if>\n <if ${!isMutedOrZero && this.volume > 0.5}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"/>\n </svg>\n </if>\n <if ${!isMutedOrZero && this.volume > 0 && this.volume <= 0.5}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"/>\n </svg>\n </if>\n </button>\n <input\n class=\"video-volume-slider\"\n type=\"range\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n .value=${this.muted ? '0' : this.volume.toString()}\n @input=${(e) => this.handleVolumeSlider(e)}\n />\n </div>\n\n <span class=\"video-time\">${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}</span>\n </div>\n\n <div class=\"video-controls-right\">\n <button class=\"video-btn video-rate-btn\" @click=${() => this.cyclePlaybackRate()} aria-label=\"Playback speed\" title=\"Playback speed\">\n ${this.playbackRate}x\n </button>\n\n <button class=\"video-btn video-btn-pip\" @click=${() => this.requestPictureInPicture()} aria-label=\"Picture-in-Picture\" title=\"Picture-in-Picture\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>\n <rect x=\"11\" y=\"9\" width=\"9\" height=\"7\" rx=\"1\" fill=\"currentColor\" opacity=\"0.5\"/>\n </svg>\n </button>\n\n <button class=\"video-btn video-btn-fullscreen\" @click=${() => this.toggleFullscreen()} aria-label=\"Fullscreen\" title=\"Fullscreen\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/>\n </svg>\n </button>\n </div>\n </div>\n </div>\n </if>\n </div>\n `;\n }\n constructor() {\n super(...arguments);\n this.src = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _src_initializers, ''));\n this.poster = (__runInitializers(this, _src_extraInitializers), __runInitializers(this, _poster_initializers, ''));\n this.autoplay = (__runInitializers(this, _poster_extraInitializers), __runInitializers(this, _autoplay_initializers, false));\n this.muted = (__runInitializers(this, _autoplay_extraInitializers), __runInitializers(this, _muted_initializers, false));\n this.loop = (__runInitializers(this, _muted_extraInitializers), __runInitializers(this, _loop_initializers, false));\n this.controls = (__runInitializers(this, _loop_extraInitializers), __runInitializers(this, _controls_initializers, true));\n this.playbackRate = (__runInitializers(this, _controls_extraInitializers), __runInitializers(this, _playbackRate_initializers, 1));\n this.currentTime = (__runInitializers(this, _playbackRate_extraInitializers), __runInitializers(this, _currentTime_initializers, 0));\n this.volume = (__runInitializers(this, _currentTime_extraInitializers), __runInitializers(this, _volume_initializers, 1));\n this.variant = (__runInitializers(this, _volume_extraInitializers), __runInitializers(this, _variant_initializers, 'default'));\n this.duration = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _duration_initializers, 0));\n this.playing = (__runInitializers(this, _duration_extraInitializers), __runInitializers(this, _playing_initializers, false));\n this.loading = (__runInitializers(this, _playing_extraInitializers), __runInitializers(this, _loading_initializers, false));\n this.showPoster = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _showPoster_initializers, true));\n this.controlsVisible = (__runInitializers(this, _showPoster_extraInitializers), __runInitializers(this, _controlsVisible_initializers, false));\n this.controlsTimer = (__runInitializers(this, _controlsVisible_extraInitializers), null);\n this.bufferedPercent = __runInitializers(this, _bufferedPercent_initializers, 0);\n this.previousVolume = (__runInitializers(this, _bufferedPercent_extraInitializers), 1);\n this.isSeeking = __runInitializers(this, _isSeeking_initializers, false);\n this.container = (__runInitializers(this, _isSeeking_extraInitializers), __runInitializers(this, _container_initializers, void 0));\n this.videoEl = (__runInitializers(this, _container_extraInitializers), __runInitializers(this, _videoEl_initializers, void 0));\n this.progressContainer = (__runInitializers(this, _videoEl_extraInitializers), __runInitializers(this, _progressContainer_initializers, void 0));\n __runInitializers(this, _progressContainer_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceVideoPlayer };\n//# sourceMappingURL=snice-video-player.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","PLAYBACK_RATES","SniceVideoPlayer","_classDescriptor","_classThis","_src_decorators","_poster_decorators","_autoplay_decorators","_muted_decorators","_loop_decorators","_controls_decorators","_playbackRate_decorators","_currentTime_decorators","_volume_decorators","_variant_decorators","_duration_decorators","_playing_decorators","_loading_decorators","_showPoster_decorators","_controlsVisible_decorators","_bufferedPercent_decorators","_isSeeking_decorators","_container_decorators","_videoEl_decorators","_progressContainer_decorators","_componentStyles_decorators","_init_decorators","_cleanup_decorators","_handleSrcChange_decorators","_handleVolumeChange_decorators","_handleMutedChange_decorators","_handlePlaybackRateChange_decorators","_handleLoopChange_decorators","_handleKeydown_decorators","_emitPlay_decorators","_emitPause_decorators","_emitEnded_decorators","_emitTimeUpdate_decorators","_emitFullscreenChange_decorators","_emitVolumeChange_decorators","_renderPlayer_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_src_initializers","_src_extraInitializers","_poster_initializers","_poster_extraInitializers","_autoplay_initializers","_autoplay_extraInitializers","_muted_initializers","_muted_extraInitializers","_loop_initializers","_loop_extraInitializers","_controls_initializers","_controls_extraInitializers","_playbackRate_initializers","_playbackRate_extraInitializers","_currentTime_initializers","_currentTime_extraInitializers","_volume_initializers","_volume_extraInitializers","_variant_initializers","_variant_extraInitializers","_duration_initializers","_duration_extraInitializers","_playing_initializers","_playing_extraInitializers","_loading_initializers","_loading_extraInitializers","_showPoster_initializers","_showPoster_extraInitializers","_controlsVisible_initializers","_controlsVisible_extraInitializers","_bufferedPercent_initializers","_bufferedPercent_extraInitializers","_isSeeking_initializers","_isSeeking_extraInitializers","_container_initializers","_container_extraInitializers","_videoEl_initializers","_videoEl_extraInitializers","_progressContainer_initializers","_progressContainer_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","Boolean","Number","attribute","query","styles","ready","dispose","watch","on","dispatch","bubbles","composed","render","static","private","has","obj","componentStyles","cleanup","handleSrcChange","handleVolumeChange","handleMutedChange","handlePlaybackRateChange","handleLoopChange","handleKeydown","emitPlay","emitPause","emitEnded","emitTimeUpdate","emitFullscreenChange","emitVolumeChange","renderPlayer","src","poster","autoplay","muted","loop","controls","playbackRate","currentTime","volume","variant","duration","playing","loading","showPoster","controlsVisible","bufferedPercent","isSeeking","container","videoEl","progressContainer","enumerable","configurable","writable","css","clearControlsTimer","pause","_oldVal","newVal","handleVideoLoadedMetadata","handleVideoPlay","startControlsTimer","handleVideoPause","ended","handleVideoEnded","handleVideoTimeUpdate","handleVideoProgress","buffered","end","handleVideoWaiting","handleVideoCanPlay","handleVideoVolumeChange","handleVideoClick","toggle","handleVideoDblClick","toggleFullscreen","handlePosterClick","play","handleProgressClick","e","rect","getBoundingClientRect","percent","Math","max","min","clientX","left","width","seekTo","handleProgressMouseDown","handleMove","ev","handleUp","document","removeEventListener","addEventListener","handleVolumeSlider","vol","parseFloat","toggleMute","previousVolume","cyclePlaybackRate","currentIdx","indexOf","setPlaybackRate","handleContainerMouseMove","handleContainerMouseLeave","preventDefault","controlsTimer","window","setTimeout","clearTimeout","time","clamped","requestFullscreen","exitFullscreen","fullscreenElement","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","rate","handleFullscreenChange","formatTime","seconds","isNaN","isFinite","h","floor","m","s","toString","padStart","player","fullscreen","progress","isPlaying","containerClass","filter","join","isMutedOrZero","html","String","replace","constructor","super"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-video-player.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/video-player/snice-video-player.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 { __esDecorate, __runInitializers } from 'tslib';\nimport { element, property, query, styles, ready, dispose, watch, on, dispatch, render, css, html } from 'snice';\n\nvar playerStyles = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%;--video-overlay-bg:var(--snice-video-overlay-bg, rgb(0 0 0));--video-overlay-alpha:var(--snice-video-overlay-alpha, rgb(0 0 0 / 0.5));--video-controls-color:var(--snice-video-controls-color, rgb(255 255 255));--video-controls-hover-bg:var(--snice-video-controls-hover-bg, rgb(255 255 255 / 0.15));--video-controls-active-bg:var(--snice-video-controls-active-bg, rgb(255 255 255 / 0.25));--video-progress-track:var(--snice-video-progress-track, rgb(255 255 255 / 0.3));--video-progress-buffered:var(--snice-video-progress-buffered, rgb(255 255 255 / 0.4))}.video-container{position:relative;background:var(--video-overlay-bg);border-radius:var(--snice-border-radius-lg,.5rem);overflow:hidden;width:100%}.video-container:-webkit-full-screen,.video-container:fullscreen{border-radius:0}video{display:block;width:100%;height:auto;cursor:pointer}.video-poster{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-color:var(--video-overlay-bg);cursor:pointer;z-index:1}.video-poster-play{width:4.5rem;height:4.5rem;background:var(--snice-video-poster-play-bg,rgb(0 0 0 / .6));border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.video-poster-play:hover{transform:scale(1.1);background:var(--snice-video-poster-play-hover-bg,rgb(0 0 0 / .8))}.video-poster-play svg{color:var(--video-controls-color);margin-left:.25rem}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,var(--snice-video-controls-gradient,rgb(0 0 0 / .7)));padding:var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);opacity:0;transition:opacity var(--snice-transition-medium, 250ms) ease;z-index:2;display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.video-container.controls-visible .video-controls,.video-container.paused .video-controls,.video-container:hover .video-controls{opacity:1}.video-progress-container{width:100%;height:.25rem;cursor:pointer;position:relative;padding:.25rem 0}.video-progress-container:hover{height:.375rem}.video-progress-track{width:100%;height:100%;background:var(--video-progress-track);border-radius:9999px;position:relative;overflow:hidden}.video-progress-buffered{position:absolute;top:0;left:0;height:100%;background:var(--video-progress-buffered);border-radius:9999px}.video-progress-bar{position:absolute;top:0;left:0;height:100%;background:var(--snice-color-primary,rgb(37 99 235));border-radius:9999px;transition:width var(--snice-transition-fast, 150ms) linear}.video-progress-container:hover .video-progress-bar::after{content:'';position:absolute;right:-.375rem;top:50%;transform:translateY(-50%);width:.75rem;height:.75rem;background:var(--snice-color-primary,rgb(37 99 235));border-radius:50%}.video-controls-left,.video-controls-row{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem)}.video-controls-right{display:flex;align-items:center;gap:var(--snice-spacing-xs,.5rem);margin-left:auto}.video-btn{background:0 0;border:none;cursor:pointer;padding:var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-md,.25rem);color:var(--video-controls-color);display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--snice-transition-fast, 150ms) ease;line-height:0}.video-btn:hover{background:var(--video-controls-hover-bg)}.video-btn:active{background:var(--video-controls-active-bg)}.video-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.video-btn svg{width:1.25rem;height:1.25rem}.video-btn-play svg{width:1.5rem;height:1.5rem}.video-time{font-size:var(--snice-font-size-xs, .75rem);color:var(--video-controls-color);font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap}.video-volume{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.video-volume-slider{-webkit-appearance:none;appearance:none;width:0;height:.25rem;background:var(--video-progress-track);border-radius:9999px;outline:0;cursor:pointer;transition:width var(--snice-transition-fast, 150ms) ease;overflow:hidden}.video-volume-slider:focus-visible,.video-volume:hover .video-volume-slider{width:4rem}.video-volume-slider::-webkit-slider-runnable-track{width:100%;height:.25rem;background:0 0;border-radius:9999px}.video-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:.75rem;height:.75rem;background:var(--video-controls-color);border-radius:50%;cursor:pointer;margin-top:-.25rem}.video-volume-slider::-moz-range-track{width:100%;height:.25rem;background:var(--video-progress-track);border-radius:9999px}.video-volume-slider::-moz-range-progress{height:.25rem;background:var(--video-controls-color);border-radius:9999px}.video-volume-slider::-moz-range-thumb{width:.75rem;height:.75rem;background:var(--video-controls-color);border:none;border-radius:50%;cursor:pointer}.video-rate-btn{font-size:var(--snice-font-size-xs, .75rem);font-weight:var(--snice-font-weight-medium,500);min-width:2rem;text-align:center}.video-center-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4rem;height:4rem;background:var(--video-overlay-alpha);border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;z-index:1}.video-container.paused .video-center-play{opacity:1}.video-center-play svg{color:var(--video-controls-color);width:2rem;height:2rem;margin-left:.25rem}:host([variant=minimal]) .video-controls{background:var(--video-overlay-alpha);padding:var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .video-center-play{display:none}:host([variant=minimal]) .video-btn-pip,:host([variant=minimal]) .video-rate-btn{display:none}:host([variant=cinema]) .video-container{border-radius:0;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1))}:host([variant=cinema]) .video-controls{padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem) var(--snice-spacing-md,1rem)}:host([variant=cinema]) .video-btn svg{width:1.5rem;height:1.5rem}:host([variant=cinema]) .video-btn-play svg{width:2rem;height:2rem}:host([variant=cinema]) .video-time{font-size:var(--snice-font-size-sm, .875rem)}.video-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1}.video-loading-spinner{width:2.5rem;height:2.5rem;border:3px solid var(--snice-video-spinner-track,rgb(255 255 255 / .3));border-top-color:var(--video-controls-color);border-radius:50%;animation:.8s linear infinite video-spin}@keyframes video-spin{to{transform:rotate(360deg)}}@container (max-width:400px){.video-controls-row{gap:var(--snice-spacing-3xs,.125rem)}.video-btn{padding:var(--snice-spacing-3xs,.125rem)}.video-btn svg{width:1rem;height:1rem}.video-btn-play svg{width:1.25rem;height:1.25rem}.video-rate-btn{display:none}.video-time{font-size:.625rem}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}\";\n\nconst PLAYBACK_RATES = [0.5, 0.75, 1, 1.25, 1.5, 2];\n// Encode user-supplied URLs for use inside a CSS `url('...')` context.\n// Escapes single quotes, backslashes, and newlines so the attacker cannot\n// break out of the url() literal and inject additional CSS declarations.\nfunction encodePosterUrl(src) {\n return String(src ?? '')\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, ' ')\n .replace(/\\r/g, ' ');\n}\nconst SEEK_STEP = 5;\nconst VOLUME_STEP = 0.1;\nconst CONTROLS_HIDE_DELAY = 3000;\nlet SniceVideoPlayer = (() => {\n let _classDecorators = [element('snice-video-player')];\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 _poster_decorators;\n let _poster_initializers = [];\n let _poster_extraInitializers = [];\n let _autoplay_decorators;\n let _autoplay_initializers = [];\n let _autoplay_extraInitializers = [];\n let _muted_decorators;\n let _muted_initializers = [];\n let _muted_extraInitializers = [];\n let _loop_decorators;\n let _loop_initializers = [];\n let _loop_extraInitializers = [];\n let _controls_decorators;\n let _controls_initializers = [];\n let _controls_extraInitializers = [];\n let _playbackRate_decorators;\n let _playbackRate_initializers = [];\n let _playbackRate_extraInitializers = [];\n let _currentTime_decorators;\n let _currentTime_initializers = [];\n let _currentTime_extraInitializers = [];\n let _volume_decorators;\n let _volume_initializers = [];\n let _volume_extraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _duration_decorators;\n let _duration_initializers = [];\n let _duration_extraInitializers = [];\n let _playing_decorators;\n let _playing_initializers = [];\n let _playing_extraInitializers = [];\n let _loading_decorators;\n let _loading_initializers = [];\n let _loading_extraInitializers = [];\n let _showPoster_decorators;\n let _showPoster_initializers = [];\n let _showPoster_extraInitializers = [];\n let _controlsVisible_decorators;\n let _controlsVisible_initializers = [];\n let _controlsVisible_extraInitializers = [];\n let _bufferedPercent_decorators;\n let _bufferedPercent_initializers = [];\n let _bufferedPercent_extraInitializers = [];\n let _isSeeking_decorators;\n let _isSeeking_initializers = [];\n let _isSeeking_extraInitializers = [];\n let _container_decorators;\n let _container_initializers = [];\n let _container_extraInitializers = [];\n let _videoEl_decorators;\n let _videoEl_initializers = [];\n let _videoEl_extraInitializers = [];\n let _progressContainer_decorators;\n let _progressContainer_initializers = [];\n let _progressContainer_extraInitializers = [];\n let _componentStyles_decorators;\n let _init_decorators;\n let _cleanup_decorators;\n let _handleSrcChange_decorators;\n let _handleVolumeChange_decorators;\n let _handleMutedChange_decorators;\n let _handlePlaybackRateChange_decorators;\n let _handleLoopChange_decorators;\n let _handleKeydown_decorators;\n let _emitPlay_decorators;\n let _emitPause_decorators;\n let _emitEnded_decorators;\n let _emitTimeUpdate_decorators;\n let _emitFullscreenChange_decorators;\n let _emitVolumeChange_decorators;\n let _renderPlayer_decorators;\n (class extends _classSuper {\n static { _classThis = this; }\n static {\n const _metadata = typeof Symbol === \"function\" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;\n _src_decorators = [property()];\n _poster_decorators = [property()];\n _autoplay_decorators = [property({ type: Boolean })];\n _muted_decorators = [property({ type: Boolean })];\n _loop_decorators = [property({ type: Boolean })];\n _controls_decorators = [property({ type: Boolean })];\n _playbackRate_decorators = [property({ type: Number, attribute: 'playback-rate' })];\n _currentTime_decorators = [property({ type: Number, attribute: 'current-time' })];\n _volume_decorators = [property({ type: Number })];\n _variant_decorators = [property()];\n _duration_decorators = [property({ type: Number, attribute: false })];\n _playing_decorators = [property({ type: Boolean, attribute: false })];\n _loading_decorators = [property({ type: Boolean, attribute: false })];\n _showPoster_decorators = [property({ type: Boolean, attribute: false })];\n _controlsVisible_decorators = [property({ type: Boolean, attribute: false })];\n _bufferedPercent_decorators = [property({ type: Number, attribute: false })];\n _isSeeking_decorators = [property({ type: Boolean, attribute: false })];\n _container_decorators = [query('.video-container')];\n _videoEl_decorators = [query('video')];\n _progressContainer_decorators = [query('.video-progress-container')];\n _componentStyles_decorators = [styles()];\n _init_decorators = [ready()];\n _cleanup_decorators = [dispose()];\n _handleSrcChange_decorators = [watch('src')];\n _handleVolumeChange_decorators = [watch('volume')];\n _handleMutedChange_decorators = [watch('muted')];\n _handlePlaybackRateChange_decorators = [watch('playbackRate')];\n _handleLoopChange_decorators = [watch('loop')];\n _handleKeydown_decorators = [on('keydown')];\n _emitPlay_decorators = [dispatch('video-play', { bubbles: true, composed: true })];\n _emitPause_decorators = [dispatch('video-pause', { bubbles: true, composed: true })];\n _emitEnded_decorators = [dispatch('video-ended', { bubbles: true, composed: true })];\n _emitTimeUpdate_decorators = [dispatch('video-time-update', { bubbles: true, composed: true })];\n _emitFullscreenChange_decorators = [dispatch('video-fullscreen-change', { bubbles: true, composed: true })];\n _emitVolumeChange_decorators = [dispatch('video-volume-change', { bubbles: true, composed: true })];\n _renderPlayer_decorators = [render()];\n __esDecorate(this, null, _componentStyles_decorators, { kind: \"method\", name: \"componentStyles\", static: false, private: false, access: { has: obj => \"componentStyles\" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _init_decorators, { kind: \"method\", name: \"init\", static: false, private: false, access: { has: obj => \"init\" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _cleanup_decorators, { kind: \"method\", name: \"cleanup\", static: false, private: false, access: { has: obj => \"cleanup\" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleSrcChange_decorators, { kind: \"method\", name: \"handleSrcChange\", static: false, private: false, access: { has: obj => \"handleSrcChange\" in obj, get: obj => obj.handleSrcChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleVolumeChange_decorators, { kind: \"method\", name: \"handleVolumeChange\", static: false, private: false, access: { has: obj => \"handleVolumeChange\" in obj, get: obj => obj.handleVolumeChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleMutedChange_decorators, { kind: \"method\", name: \"handleMutedChange\", static: false, private: false, access: { has: obj => \"handleMutedChange\" in obj, get: obj => obj.handleMutedChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handlePlaybackRateChange_decorators, { kind: \"method\", name: \"handlePlaybackRateChange\", static: false, private: false, access: { has: obj => \"handlePlaybackRateChange\" in obj, get: obj => obj.handlePlaybackRateChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleLoopChange_decorators, { kind: \"method\", name: \"handleLoopChange\", static: false, private: false, access: { has: obj => \"handleLoopChange\" in obj, get: obj => obj.handleLoopChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleKeydown_decorators, { kind: \"method\", name: \"handleKeydown\", static: false, private: false, access: { has: obj => \"handleKeydown\" in obj, get: obj => obj.handleKeydown }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitPlay_decorators, { kind: \"method\", name: \"emitPlay\", static: false, private: false, access: { has: obj => \"emitPlay\" in obj, get: obj => obj.emitPlay }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitPause_decorators, { kind: \"method\", name: \"emitPause\", static: false, private: false, access: { has: obj => \"emitPause\" in obj, get: obj => obj.emitPause }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEnded_decorators, { kind: \"method\", name: \"emitEnded\", static: false, private: false, access: { has: obj => \"emitEnded\" in obj, get: obj => obj.emitEnded }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitTimeUpdate_decorators, { kind: \"method\", name: \"emitTimeUpdate\", static: false, private: false, access: { has: obj => \"emitTimeUpdate\" in obj, get: obj => obj.emitTimeUpdate }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitFullscreenChange_decorators, { kind: \"method\", name: \"emitFullscreenChange\", static: false, private: false, access: { has: obj => \"emitFullscreenChange\" in obj, get: obj => obj.emitFullscreenChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitVolumeChange_decorators, { kind: \"method\", name: \"emitVolumeChange\", static: false, private: false, access: { has: obj => \"emitVolumeChange\" in obj, get: obj => obj.emitVolumeChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderPlayer_decorators, { kind: \"method\", name: \"renderPlayer\", static: false, private: false, access: { has: obj => \"renderPlayer\" in obj, get: obj => obj.renderPlayer }, 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, _poster_decorators, { kind: \"field\", name: \"poster\", static: false, private: false, access: { has: obj => \"poster\" in obj, get: obj => obj.poster, set: (obj, value) => { obj.poster = value; } }, metadata: _metadata }, _poster_initializers, _poster_extraInitializers);\n __esDecorate(null, null, _autoplay_decorators, { kind: \"field\", name: \"autoplay\", static: false, private: false, access: { has: obj => \"autoplay\" in obj, get: obj => obj.autoplay, set: (obj, value) => { obj.autoplay = value; } }, metadata: _metadata }, _autoplay_initializers, _autoplay_extraInitializers);\n __esDecorate(null, null, _muted_decorators, { kind: \"field\", name: \"muted\", static: false, private: false, access: { has: obj => \"muted\" in obj, get: obj => obj.muted, set: (obj, value) => { obj.muted = value; } }, metadata: _metadata }, _muted_initializers, _muted_extraInitializers);\n __esDecorate(null, null, _loop_decorators, { kind: \"field\", name: \"loop\", static: false, private: false, access: { has: obj => \"loop\" in obj, get: obj => obj.loop, set: (obj, value) => { obj.loop = value; } }, metadata: _metadata }, _loop_initializers, _loop_extraInitializers);\n __esDecorate(null, null, _controls_decorators, { kind: \"field\", name: \"controls\", static: false, private: false, access: { has: obj => \"controls\" in obj, get: obj => obj.controls, set: (obj, value) => { obj.controls = value; } }, metadata: _metadata }, _controls_initializers, _controls_extraInitializers);\n __esDecorate(null, null, _playbackRate_decorators, { kind: \"field\", name: \"playbackRate\", static: false, private: false, access: { has: obj => \"playbackRate\" in obj, get: obj => obj.playbackRate, set: (obj, value) => { obj.playbackRate = value; } }, metadata: _metadata }, _playbackRate_initializers, _playbackRate_extraInitializers);\n __esDecorate(null, null, _currentTime_decorators, { kind: \"field\", name: \"currentTime\", static: false, private: false, access: { has: obj => \"currentTime\" in obj, get: obj => obj.currentTime, set: (obj, value) => { obj.currentTime = value; } }, metadata: _metadata }, _currentTime_initializers, _currentTime_extraInitializers);\n __esDecorate(null, null, _volume_decorators, { kind: \"field\", name: \"volume\", static: false, private: false, access: { has: obj => \"volume\" in obj, get: obj => obj.volume, set: (obj, value) => { obj.volume = value; } }, metadata: _metadata }, _volume_initializers, _volume_extraInitializers);\n __esDecorate(null, null, _variant_decorators, { kind: \"field\", name: \"variant\", static: false, private: false, access: { has: obj => \"variant\" in obj, get: obj => obj.variant, set: (obj, value) => { obj.variant = value; } }, metadata: _metadata }, _variant_initializers, _variant_extraInitializers);\n __esDecorate(null, null, _duration_decorators, { kind: \"field\", name: \"duration\", static: false, private: false, access: { has: obj => \"duration\" in obj, get: obj => obj.duration, set: (obj, value) => { obj.duration = value; } }, metadata: _metadata }, _duration_initializers, _duration_extraInitializers);\n __esDecorate(null, null, _playing_decorators, { kind: \"field\", name: \"playing\", static: false, private: false, access: { has: obj => \"playing\" in obj, get: obj => obj.playing, set: (obj, value) => { obj.playing = value; } }, metadata: _metadata }, _playing_initializers, _playing_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, _showPoster_decorators, { kind: \"field\", name: \"showPoster\", static: false, private: false, access: { has: obj => \"showPoster\" in obj, get: obj => obj.showPoster, set: (obj, value) => { obj.showPoster = value; } }, metadata: _metadata }, _showPoster_initializers, _showPoster_extraInitializers);\n __esDecorate(null, null, _controlsVisible_decorators, { kind: \"field\", name: \"controlsVisible\", static: false, private: false, access: { has: obj => \"controlsVisible\" in obj, get: obj => obj.controlsVisible, set: (obj, value) => { obj.controlsVisible = value; } }, metadata: _metadata }, _controlsVisible_initializers, _controlsVisible_extraInitializers);\n __esDecorate(null, null, _bufferedPercent_decorators, { kind: \"field\", name: \"bufferedPercent\", static: false, private: false, access: { has: obj => \"bufferedPercent\" in obj, get: obj => obj.bufferedPercent, set: (obj, value) => { obj.bufferedPercent = value; } }, metadata: _metadata }, _bufferedPercent_initializers, _bufferedPercent_extraInitializers);\n __esDecorate(null, null, _isSeeking_decorators, { kind: \"field\", name: \"isSeeking\", static: false, private: false, access: { has: obj => \"isSeeking\" in obj, get: obj => obj.isSeeking, set: (obj, value) => { obj.isSeeking = value; } }, metadata: _metadata }, _isSeeking_initializers, _isSeeking_extraInitializers);\n __esDecorate(null, null, _container_decorators, { kind: \"field\", name: \"container\", static: false, private: false, access: { has: obj => \"container\" in obj, get: obj => obj.container, set: (obj, value) => { obj.container = value; } }, metadata: _metadata }, _container_initializers, _container_extraInitializers);\n __esDecorate(null, null, _videoEl_decorators, { kind: \"field\", name: \"videoEl\", static: false, private: false, access: { has: obj => \"videoEl\" in obj, get: obj => obj.videoEl, set: (obj, value) => { obj.videoEl = value; } }, metadata: _metadata }, _videoEl_initializers, _videoEl_extraInitializers);\n __esDecorate(null, null, _progressContainer_decorators, { kind: \"field\", name: \"progressContainer\", static: false, private: false, access: { has: obj => \"progressContainer\" in obj, get: obj => obj.progressContainer, set: (obj, value) => { obj.progressContainer = value; } }, metadata: _metadata }, _progressContainer_initializers, _progressContainer_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 componentStyles() {\n return css /*css*/ `${playerStyles}`;\n }\n init() {\n this.showPoster = !!this.poster && !this.autoplay;\n }\n cleanup() {\n this.clearControlsTimer();\n if (this.videoEl) {\n this.videoEl.pause();\n }\n }\n handleSrcChange() {\n this.showPoster = !!this.poster;\n this.playing = false;\n this.currentTime = 0;\n this.duration = 0;\n this.loading = false;\n this.bufferedPercent = 0;\n }\n handleVolumeChange(_oldVal, newVal) {\n if (this.videoEl && newVal >= 0 && newVal <= 1) {\n this.videoEl.volume = newVal;\n }\n }\n handleMutedChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.muted = newVal;\n }\n }\n handlePlaybackRateChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.playbackRate = newVal;\n }\n }\n handleLoopChange(_oldVal, newVal) {\n if (this.videoEl) {\n this.videoEl.loop = newVal;\n }\n }\n // --- Video event handlers via template bindings ---\n handleVideoLoadedMetadata() {\n if (!this.videoEl)\n return;\n this.duration = this.videoEl.duration;\n this.loading = false;\n }\n handleVideoPlay() {\n this.playing = true;\n this.loading = false;\n this.showPoster = false;\n this.emitPlay();\n this.startControlsTimer();\n }\n handleVideoPause() {\n if (!this.videoEl?.ended) {\n this.playing = false;\n this.emitPause();\n }\n this.clearControlsTimer();\n this.controlsVisible = true;\n }\n handleVideoEnded() {\n this.playing = false;\n this.controlsVisible = true;\n this.emitEnded();\n }\n handleVideoTimeUpdate() {\n if (!this.videoEl || this.isSeeking)\n return;\n this.currentTime = this.videoEl.currentTime;\n this.emitTimeUpdate();\n }\n handleVideoProgress() {\n if (!this.videoEl || this.videoEl.buffered.length === 0)\n return;\n const end = this.videoEl.buffered.end(this.videoEl.buffered.length - 1);\n this.bufferedPercent = this.duration > 0 ? (end / this.duration) * 100 : 0;\n }\n handleVideoWaiting() {\n this.loading = true;\n }\n handleVideoCanPlay() {\n this.loading = false;\n }\n handleVideoVolumeChange() {\n if (!this.videoEl)\n return;\n this.volume = this.videoEl.volume;\n this.muted = this.videoEl.muted;\n this.emitVolumeChange();\n }\n // --- User interaction handlers ---\n handleVideoClick() {\n this.toggle();\n }\n handleVideoDblClick() {\n this.toggleFullscreen();\n }\n handlePosterClick() {\n this.showPoster = false;\n this.play();\n }\n handleProgressClick(e) {\n if (!this.progressContainer || this.duration === 0)\n return;\n const rect = this.progressContainer.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n this.seekTo(percent * this.duration);\n }\n handleProgressMouseDown(e) {\n this.isSeeking = true;\n this.handleProgressClick(e);\n const handleMove = (ev) => {\n if (!this.progressContainer || this.duration === 0)\n return;\n const rect = this.progressContainer.getBoundingClientRect();\n const percent = Math.max(0, Math.min(1, (ev.clientX - rect.left) / rect.width));\n this.currentTime = percent * this.duration;\n };\n const handleUp = () => {\n this.isSeeking = false;\n if (this.videoEl) {\n this.videoEl.currentTime = this.currentTime;\n }\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('mouseup', handleUp);\n };\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('mouseup', handleUp);\n }\n handleVolumeSlider(e) {\n const input = e.target;\n const vol = parseFloat(input.value);\n this.volume = vol;\n if (vol > 0 && this.muted) {\n this.muted = false;\n }\n this.emitVolumeChange();\n }\n toggleMute() {\n if (this.muted) {\n this.muted = false;\n this.volume = this.previousVolume || 1;\n }\n else {\n this.previousVolume = this.volume;\n this.muted = true;\n }\n this.emitVolumeChange();\n }\n cyclePlaybackRate() {\n const currentIdx = PLAYBACK_RATES.indexOf(this.playbackRate);\n const nextIdx = (currentIdx + 1) % PLAYBACK_RATES.length;\n this.setPlaybackRate(PLAYBACK_RATES[nextIdx]);\n }\n handleContainerMouseMove() {\n this.controlsVisible = true;\n this.startControlsTimer();\n }\n handleContainerMouseLeave() {\n if (this.playing) {\n this.controlsVisible = false;\n }\n }\n handleKeydown(e) {\n if (!this.controls)\n return;\n switch (e.key) {\n case ' ':\n case 'k':\n e.preventDefault();\n this.toggle();\n break;\n case 'f':\n e.preventDefault();\n this.toggleFullscreen();\n break;\n case 'm':\n e.preventDefault();\n this.toggleMute();\n break;\n case 'ArrowRight':\n e.preventDefault();\n this.seekTo(Math.min(this.duration, this.currentTime + SEEK_STEP));\n break;\n case 'ArrowLeft':\n e.preventDefault();\n this.seekTo(Math.max(0, this.currentTime - SEEK_STEP));\n break;\n case 'ArrowUp':\n e.preventDefault();\n this.volume = Math.min(1, this.volume + VOLUME_STEP);\n break;\n case 'ArrowDown':\n e.preventDefault();\n this.volume = Math.max(0, this.volume - VOLUME_STEP);\n break;\n }\n }\n // --- Controls timer ---\n startControlsTimer() {\n this.clearControlsTimer();\n if (this.playing) {\n this.controlsTimer = window.setTimeout(() => {\n this.controlsVisible = false;\n }, CONTROLS_HIDE_DELAY);\n }\n }\n clearControlsTimer() {\n if (this.controlsTimer !== null) {\n clearTimeout(this.controlsTimer);\n this.controlsTimer = null;\n }\n }\n // --- Public methods ---\n async play() {\n if (!this.videoEl)\n return;\n this.showPoster = false;\n try {\n await this.videoEl.play();\n }\n catch {\n // Autoplay may be blocked\n }\n }\n pause() {\n if (!this.videoEl)\n return;\n this.videoEl.pause();\n }\n toggle() {\n if (this.playing) {\n this.pause();\n }\n else {\n this.play();\n }\n }\n seekTo(time) {\n if (!this.videoEl)\n return;\n const clamped = Math.max(0, Math.min(this.duration || 0, time));\n this.videoEl.currentTime = clamped;\n this.currentTime = clamped;\n }\n async requestFullscreen() {\n if (!this.container)\n return;\n try {\n await this.container.requestFullscreen();\n }\n catch {\n // Fullscreen may not be available\n }\n }\n async exitFullscreen() {\n if (!document.fullscreenElement)\n return;\n try {\n await document.exitFullscreen();\n }\n catch {\n // May not be in fullscreen\n }\n }\n async requestPictureInPicture() {\n if (!this.videoEl)\n return;\n try {\n if (document.pictureInPictureElement) {\n await document.exitPictureInPicture();\n }\n else {\n await this.videoEl.requestPictureInPicture();\n }\n }\n catch {\n // PiP may not be available\n }\n }\n setPlaybackRate(rate) {\n this.playbackRate = rate;\n }\n async toggleFullscreen() {\n if (document.fullscreenElement) {\n await this.exitFullscreen();\n }\n else {\n await this.requestFullscreen();\n }\n }\n handleFullscreenChange() {\n this.emitFullscreenChange();\n }\n // --- Helpers ---\n formatTime(seconds) {\n if (isNaN(seconds) || !isFinite(seconds))\n return '0:00';\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor(seconds % 60);\n if (h > 0) {\n return `${h}:${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\n }\n return `${m}:${s.toString().padStart(2, '0')}`;\n }\n // --- Dispatch events ---\n emitPlay() {\n return { player: this };\n }\n emitPause() {\n return { player: this };\n }\n emitEnded() {\n return { player: this };\n }\n emitTimeUpdate() {\n return { player: this, currentTime: this.currentTime, duration: this.duration };\n }\n emitFullscreenChange() {\n return { player: this, fullscreen: !!document.fullscreenElement };\n }\n emitVolumeChange() {\n return { player: this, volume: this.volume, muted: this.muted };\n }\n // --- Render ---\n renderPlayer() {\n const progress = this.duration > 0 ? (this.currentTime / this.duration) * 100 : 0;\n const isPlaying = this.playing;\n const containerClass = [\n 'video-container',\n !isPlaying ? 'paused' : '',\n this.controlsVisible ? 'controls-visible' : '',\n ].filter(Boolean).join(' ');\n const isMutedOrZero = this.muted || this.volume === 0;\n return html `\n <div\n part=\"base\"\n class=\"${containerClass}\"\n tabindex=\"0\"\n @mousemove=${() => this.handleContainerMouseMove()}\n @mouseleave=${() => this.handleContainerMouseLeave()}\n @fullscreenchange=${() => this.handleFullscreenChange()}\n >\n <video\n part=\"video\"\n .src=${this.src}\n ?autoplay=${this.autoplay}\n ?muted=${this.muted}\n ?loop=${this.loop}\n playsinline\n preload=\"metadata\"\n @loadedmetadata=${() => this.handleVideoLoadedMetadata()}\n @play=${() => this.handleVideoPlay()}\n @pause=${() => this.handleVideoPause()}\n @ended=${() => this.handleVideoEnded()}\n @timeupdate=${() => this.handleVideoTimeUpdate()}\n @progress=${() => this.handleVideoProgress()}\n @waiting=${() => this.handleVideoWaiting()}\n @canplay=${() => this.handleVideoCanPlay()}\n @volumechange=${() => this.handleVideoVolumeChange()}\n @click=${() => this.handleVideoClick()}\n @dblclick=${() => this.handleVideoDblClick()}\n >\n <slot></slot>\n </video>\n\n <if ${this.showPoster && this.poster}>\n <div\n class=\"video-poster\"\n style=\"background-image: url('${encodePosterUrl(this.poster)}')\"\n @click=${() => this.handlePosterClick()}\n >\n <div class=\"video-poster-play\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </div>\n </div>\n </if>\n\n <if ${this.loading}>\n <div class=\"video-loading\">\n <div class=\"video-loading-spinner\"></div>\n </div>\n </if>\n\n <if ${!isPlaying && !this.showPoster && this.src}>\n <div class=\"video-center-play\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </div>\n </if>\n\n <if ${this.controls && this.src}>\n <div part=\"controls\" class=\"video-controls\">\n <div\n class=\"video-progress-container\"\n @click=${(e) => this.handleProgressClick(e)}\n @mousedown=${(e) => this.handleProgressMouseDown(e)}\n >\n <div part=\"progress\" class=\"video-progress-track\">\n <div class=\"video-progress-buffered\" style=\"width: ${this.bufferedPercent}%\"></div>\n <div class=\"video-progress-bar\" style=\"width: ${progress}%\"></div>\n </div>\n </div>\n\n <div class=\"video-controls-row\">\n <div class=\"video-controls-left\">\n <button class=\"video-btn video-btn-play\" @click=${() => this.toggle()} aria-label=\"${isPlaying ? \"Pause\" : \"Play\"}\" title=\"${isPlaying ? \"Pause\" : \"Play\"}\">\n <if ${isPlaying}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"></rect>\n <rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"></rect>\n </svg>\n </if>\n <if ${!isPlaying}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M8 5v14l11-7z\"/>\n </svg>\n </if>\n </button>\n\n <div class=\"video-volume\">\n <button class=\"video-btn video-btn-volume\" @click=${() => this.toggleMute()} aria-label=\"${isMutedOrZero ? 'Unmute' : 'Mute'}\" title=\"${isMutedOrZero ? 'Unmute' : 'Mute'}\">\n <if ${isMutedOrZero}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"/>\n <line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"/>\n </svg>\n </if>\n <if ${!isMutedOrZero && this.volume > 0.5}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"/>\n </svg>\n </if>\n <if ${!isMutedOrZero && this.volume > 0 && this.volume <= 0.5}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M11 5L6 9H2v6h4l5 4V5z\"/>\n <path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"/>\n </svg>\n </if>\n </button>\n <input\n class=\"video-volume-slider\"\n type=\"range\"\n aria-label=\"Volume\"\n min=\"0\"\n max=\"1\"\n step=\"0.01\"\n .value=${this.muted ? '0' : this.volume.toString()}\n @input=${(e) => this.handleVolumeSlider(e)}\n />\n </div>\n\n <span class=\"video-time\">${this.formatTime(this.currentTime)} / ${this.formatTime(this.duration)}</span>\n </div>\n\n <div class=\"video-controls-right\">\n <button class=\"video-btn video-rate-btn\" @click=${() => this.cyclePlaybackRate()} aria-label=\"Playback speed\" title=\"Playback speed\">\n ${this.playbackRate}x\n </button>\n\n <button class=\"video-btn video-btn-pip\" @click=${() => this.requestPictureInPicture()} aria-label=\"Picture-in-Picture\" title=\"Picture-in-Picture\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"/>\n <rect x=\"11\" y=\"9\" width=\"9\" height=\"7\" rx=\"1\" fill=\"currentColor\" opacity=\"0.5\"/>\n </svg>\n </button>\n\n <button class=\"video-btn video-btn-fullscreen\" @click=${() => this.toggleFullscreen()} aria-label=\"Fullscreen\" title=\"Fullscreen\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n <path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"/>\n </svg>\n </button>\n </div>\n </div>\n </div>\n </if>\n </div>\n `;\n }\n constructor() {\n super(...arguments);\n this.src = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _src_initializers, ''));\n this.poster = (__runInitializers(this, _src_extraInitializers), __runInitializers(this, _poster_initializers, ''));\n this.autoplay = (__runInitializers(this, _poster_extraInitializers), __runInitializers(this, _autoplay_initializers, false));\n this.muted = (__runInitializers(this, _autoplay_extraInitializers), __runInitializers(this, _muted_initializers, false));\n this.loop = (__runInitializers(this, _muted_extraInitializers), __runInitializers(this, _loop_initializers, false));\n this.controls = (__runInitializers(this, _loop_extraInitializers), __runInitializers(this, _controls_initializers, true));\n this.playbackRate = (__runInitializers(this, _controls_extraInitializers), __runInitializers(this, _playbackRate_initializers, 1));\n this.currentTime = (__runInitializers(this, _playbackRate_extraInitializers), __runInitializers(this, _currentTime_initializers, 0));\n this.volume = (__runInitializers(this, _currentTime_extraInitializers), __runInitializers(this, _volume_initializers, 1));\n this.variant = (__runInitializers(this, _volume_extraInitializers), __runInitializers(this, _variant_initializers, 'default'));\n this.duration = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _duration_initializers, 0));\n this.playing = (__runInitializers(this, _duration_extraInitializers), __runInitializers(this, _playing_initializers, false));\n this.loading = (__runInitializers(this, _playing_extraInitializers), __runInitializers(this, _loading_initializers, false));\n this.showPoster = (__runInitializers(this, _loading_extraInitializers), __runInitializers(this, _showPoster_initializers, true));\n this.controlsVisible = (__runInitializers(this, _showPoster_extraInitializers), __runInitializers(this, _controlsVisible_initializers, false));\n this.controlsTimer = (__runInitializers(this, _controlsVisible_extraInitializers), null);\n this.bufferedPercent = __runInitializers(this, _bufferedPercent_initializers, 0);\n this.previousVolume = (__runInitializers(this, _bufferedPercent_extraInitializers), 1);\n this.isSeeking = __runInitializers(this, _isSeeking_initializers, false);\n this.container = (__runInitializers(this, _isSeeking_extraInitializers), __runInitializers(this, _container_initializers, void 0));\n this.videoEl = (__runInitializers(this, _container_extraInitializers), __runInitializers(this, _videoEl_initializers, void 0));\n this.progressContainer = (__runInitializers(this, _videoEl_extraInitializers), __runInitializers(this, _progressContainer_initializers, void 0));\n __runInitializers(this, _progressContainer_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceVideoPlayer };\n//# sourceMappingURL=snice-video-player.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","PLAYBACK_RATES","SniceVideoPlayer","_classDescriptor","_classThis","_src_decorators","_poster_decorators","_autoplay_decorators","_muted_decorators","_loop_decorators","_controls_decorators","_playbackRate_decorators","_currentTime_decorators","_volume_decorators","_variant_decorators","_duration_decorators","_playing_decorators","_loading_decorators","_showPoster_decorators","_controlsVisible_decorators","_bufferedPercent_decorators","_isSeeking_decorators","_container_decorators","_videoEl_decorators","_progressContainer_decorators","_componentStyles_decorators","_init_decorators","_cleanup_decorators","_handleSrcChange_decorators","_handleVolumeChange_decorators","_handleMutedChange_decorators","_handlePlaybackRateChange_decorators","_handleLoopChange_decorators","_handleKeydown_decorators","_emitPlay_decorators","_emitPause_decorators","_emitEnded_decorators","_emitTimeUpdate_decorators","_emitFullscreenChange_decorators","_emitVolumeChange_decorators","_renderPlayer_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_src_initializers","_src_extraInitializers","_poster_initializers","_poster_extraInitializers","_autoplay_initializers","_autoplay_extraInitializers","_muted_initializers","_muted_extraInitializers","_loop_initializers","_loop_extraInitializers","_controls_initializers","_controls_extraInitializers","_playbackRate_initializers","_playbackRate_extraInitializers","_currentTime_initializers","_currentTime_extraInitializers","_volume_initializers","_volume_extraInitializers","_variant_initializers","_variant_extraInitializers","_duration_initializers","_duration_extraInitializers","_playing_initializers","_playing_extraInitializers","_loading_initializers","_loading_extraInitializers","_showPoster_initializers","_showPoster_extraInitializers","_controlsVisible_initializers","_controlsVisible_extraInitializers","_bufferedPercent_initializers","_bufferedPercent_extraInitializers","_isSeeking_initializers","_isSeeking_extraInitializers","_container_initializers","_container_extraInitializers","_videoEl_initializers","_videoEl_extraInitializers","_progressContainer_initializers","_progressContainer_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","Boolean","Number","attribute","query","styles","ready","dispose","watch","on","dispatch","bubbles","composed","render","static","private","has","obj","componentStyles","cleanup","handleSrcChange","handleVolumeChange","handleMutedChange","handlePlaybackRateChange","handleLoopChange","handleKeydown","emitPlay","emitPause","emitEnded","emitTimeUpdate","emitFullscreenChange","emitVolumeChange","renderPlayer","src","poster","autoplay","muted","loop","controls","playbackRate","currentTime","volume","variant","duration","playing","loading","showPoster","controlsVisible","bufferedPercent","isSeeking","container","videoEl","progressContainer","enumerable","configurable","writable","css","clearControlsTimer","pause","_oldVal","newVal","handleVideoLoadedMetadata","handleVideoPlay","startControlsTimer","handleVideoPause","ended","handleVideoEnded","handleVideoTimeUpdate","handleVideoProgress","buffered","end","handleVideoWaiting","handleVideoCanPlay","handleVideoVolumeChange","handleVideoClick","toggle","handleVideoDblClick","toggleFullscreen","handlePosterClick","play","handleProgressClick","e","rect","getBoundingClientRect","percent","Math","max","min","clientX","left","width","seekTo","handleProgressMouseDown","handleMove","ev","handleUp","document","removeEventListener","addEventListener","handleVolumeSlider","vol","parseFloat","toggleMute","previousVolume","cyclePlaybackRate","currentIdx","indexOf","setPlaybackRate","handleContainerMouseMove","handleContainerMouseLeave","preventDefault","controlsTimer","window","setTimeout","clearTimeout","time","clamped","requestFullscreen","exitFullscreen","fullscreenElement","requestPictureInPicture","pictureInPictureElement","exitPictureInPicture","rate","handleFullscreenChange","formatTime","seconds","isNaN","isFinite","h","floor","m","s","toString","padStart","player","fullscreen","progress","isPlaying","containerClass","filter","join","isMutedOrZero","html","String","replace","constructor","super"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v7.0.2
3
- * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
2
+ * snice v7.1.0
3
+ * A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v7.0.2
3
- * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
2
+ * snice v7.1.0
3
+ * A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v7.0.2
3
- * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
2
+ * snice v7.1.0
3
+ * A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v7.0.2
3
- * A decorator-driven web component library with differential rendering, routing, controllers, and 130+ ready-made UI components. Use as much or as little as you want. Zero dependencies, works anywhere.
2
+ * snice v7.1.0
3
+ * A decorator-driven web component library with routing, controllers, daemons, and 130+ UI components. For better coding-agent results, run npx snice init-ai.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -363,7 +363,7 @@ let SniceRecipe = (() => {
363
363
  const checkedClass = isChecked ? 'recipe__ingredient--checked' : '';
364
364
  ingredientItems.push(html `
365
365
  <li class="recipe__ingredient ${checkedClass}" @click=${() => this.toggleIngredient(index)}>
366
- <input type="checkbox" class="recipe__ingredient-checkbox" ?checked=${isChecked} @click=${(e) => e.stopPropagation()} @change=${() => this.toggleIngredient(index)} />
366
+ <input type="checkbox" class="recipe__ingredient-checkbox" aria-label="${ingredient.name}" ?checked=${isChecked} @click=${(e) => e.stopPropagation()} @change=${() => this.toggleIngredient(index)} />
367
367
  <span class="recipe__ingredient-amount">${this.formatAmount(ingredient.amount)} ${ingredient.unit}</span>
368
368
  <span class="recipe__ingredient-text">${ingredient.name}</span>
369
369
  </li>