snice 4.24.0 → 4.25.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 (512) hide show
  1. package/README.md +4 -39
  2. package/bin/mcp-server.js +32 -0
  3. package/dist/cdn/accordion/snice-accordion.js +2 -2
  4. package/dist/cdn/accordion/snice-accordion.min.js +2 -2
  5. package/dist/cdn/activity-feed/snice-activity-feed.js +3 -3
  6. package/dist/cdn/activity-feed/snice-activity-feed.js.map +1 -1
  7. package/dist/cdn/activity-feed/snice-activity-feed.min.js +3 -3
  8. package/dist/cdn/activity-feed/snice-activity-feed.min.js.map +1 -1
  9. package/dist/cdn/alert/snice-alert.js +8 -4
  10. package/dist/cdn/alert/snice-alert.js.map +1 -1
  11. package/dist/cdn/alert/snice-alert.min.js +2 -2
  12. package/dist/cdn/alert/snice-alert.min.js.map +1 -1
  13. package/dist/cdn/app-tiles/snice-app-tiles.js +2 -2
  14. package/dist/cdn/app-tiles/snice-app-tiles.min.js +2 -2
  15. package/dist/cdn/approval-flow/snice-approval-flow.js +3 -3
  16. package/dist/cdn/approval-flow/snice-approval-flow.js.map +1 -1
  17. package/dist/cdn/approval-flow/snice-approval-flow.min.js +3 -3
  18. package/dist/cdn/approval-flow/snice-approval-flow.min.js.map +1 -1
  19. package/dist/cdn/audio-recorder/README.md +1 -1
  20. package/dist/cdn/audio-recorder/snice-audio-recorder.js +2 -2
  21. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +2 -2
  22. package/dist/cdn/availability/snice-availability.js +2 -2
  23. package/dist/cdn/availability/snice-availability.min.js +2 -2
  24. package/dist/cdn/avatar/snice-avatar.js +2 -2
  25. package/dist/cdn/avatar/snice-avatar.min.js +2 -2
  26. package/dist/cdn/avatar-group/snice-avatar-group.js +3 -3
  27. package/dist/cdn/avatar-group/snice-avatar-group.js.map +1 -1
  28. package/dist/cdn/avatar-group/snice-avatar-group.min.js +16 -16
  29. package/dist/cdn/avatar-group/snice-avatar-group.min.js.map +1 -1
  30. package/dist/cdn/badge/snice-badge.js +2 -2
  31. package/dist/cdn/badge/snice-badge.min.js +2 -2
  32. package/dist/cdn/banner/snice-banner.js +9 -5
  33. package/dist/cdn/banner/snice-banner.js.map +1 -1
  34. package/dist/cdn/banner/snice-banner.min.js +3 -3
  35. package/dist/cdn/banner/snice-banner.min.js.map +1 -1
  36. package/dist/cdn/book/snice-book.js +2 -2
  37. package/dist/cdn/book/snice-book.min.js +2 -2
  38. package/dist/cdn/booking/snice-booking.js +2 -2
  39. package/dist/cdn/booking/snice-booking.min.js +2 -2
  40. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +8 -4
  41. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  42. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +2 -2
  43. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js.map +1 -1
  44. package/dist/cdn/button/snice-button.js +8 -4
  45. package/dist/cdn/button/snice-button.js.map +1 -1
  46. package/dist/cdn/button/snice-button.min.js +2 -2
  47. package/dist/cdn/button/snice-button.min.js.map +1 -1
  48. package/dist/cdn/calendar/snice-calendar.js +2 -2
  49. package/dist/cdn/calendar/snice-calendar.min.js +2 -2
  50. package/dist/cdn/camera/snice-camera.js +2 -2
  51. package/dist/cdn/camera/snice-camera.min.js +2 -2
  52. package/dist/cdn/camera-annotate/snice-camera-annotate.js +2 -2
  53. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +2 -2
  54. package/dist/cdn/candlestick/snice-candlestick.js +2 -2
  55. package/dist/cdn/candlestick/snice-candlestick.min.js +2 -2
  56. package/dist/cdn/card/README.md +1 -1
  57. package/dist/cdn/card/snice-card.js +2 -2
  58. package/dist/cdn/card/snice-card.min.js +2 -2
  59. package/dist/cdn/carousel/snice-carousel.js +2 -2
  60. package/dist/cdn/carousel/snice-carousel.min.js +2 -2
  61. package/dist/cdn/cart/snice-cart.js +3 -3
  62. package/dist/cdn/cart/snice-cart.js.map +1 -1
  63. package/dist/cdn/cart/snice-cart.min.js +3 -3
  64. package/dist/cdn/cart/snice-cart.min.js.map +1 -1
  65. package/dist/cdn/chart/snice-chart.js +2 -2
  66. package/dist/cdn/chart/snice-chart.min.js +2 -2
  67. package/dist/cdn/chat/snice-chat.js +9 -5
  68. package/dist/cdn/chat/snice-chat.js.map +1 -1
  69. package/dist/cdn/chat/snice-chat.min.js +3 -3
  70. package/dist/cdn/chat/snice-chat.min.js.map +1 -1
  71. package/dist/cdn/checkbox/snice-checkbox.js +2 -2
  72. package/dist/cdn/checkbox/snice-checkbox.min.js +2 -2
  73. package/dist/cdn/chip/README.md +1 -1
  74. package/dist/cdn/chip/snice-chip.js +8 -4
  75. package/dist/cdn/chip/snice-chip.js.map +1 -1
  76. package/dist/cdn/chip/snice-chip.min.js +2 -2
  77. package/dist/cdn/chip/snice-chip.min.js.map +1 -1
  78. package/dist/cdn/code-block/snice-code-block.js +2 -2
  79. package/dist/cdn/code-block/snice-code-block.min.js +2 -2
  80. package/dist/cdn/color-display/snice-color-display.js +3 -3
  81. package/dist/cdn/color-display/snice-color-display.js.map +1 -1
  82. package/dist/cdn/color-display/snice-color-display.min.js +4 -4
  83. package/dist/cdn/color-display/snice-color-display.min.js.map +1 -1
  84. package/dist/cdn/color-picker/snice-color-picker.js +2 -2
  85. package/dist/cdn/color-picker/snice-color-picker.min.js +2 -2
  86. package/dist/cdn/command-palette/README.md +1 -1
  87. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  88. package/dist/cdn/command-palette/snice-command-palette.min.js +2 -2
  89. package/dist/cdn/comments/snice-comments.js +3 -3
  90. package/dist/cdn/comments/snice-comments.js.map +1 -1
  91. package/dist/cdn/comments/snice-comments.min.js +3 -3
  92. package/dist/cdn/comments/snice-comments.min.js.map +1 -1
  93. package/dist/cdn/countdown/README.md +1 -1
  94. package/dist/cdn/countdown/snice-countdown.js +2 -2
  95. package/dist/cdn/countdown/snice-countdown.min.js +2 -2
  96. package/dist/cdn/cropper/snice-cropper.js +2 -2
  97. package/dist/cdn/cropper/snice-cropper.min.js +2 -2
  98. package/dist/cdn/data-card/snice-data-card.js +3 -3
  99. package/dist/cdn/data-card/snice-data-card.js.map +1 -1
  100. package/dist/cdn/data-card/snice-data-card.min.js +3 -3
  101. package/dist/cdn/data-card/snice-data-card.min.js.map +1 -1
  102. package/dist/cdn/date-picker/snice-date-picker.js +2 -2
  103. package/dist/cdn/date-picker/snice-date-picker.min.js +2 -2
  104. package/dist/cdn/date-time-picker/README.md +2 -2
  105. package/dist/cdn/date-time-picker/snice-date-time-picker.js +2 -2
  106. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +2 -2
  107. package/dist/cdn/diff/snice-diff.js +2 -2
  108. package/dist/cdn/diff/snice-diff.min.js +2 -2
  109. package/dist/cdn/divider/snice-divider.js +2 -2
  110. package/dist/cdn/divider/snice-divider.min.js +2 -2
  111. package/dist/cdn/doc/snice-doc.js +2 -2
  112. package/dist/cdn/doc/snice-doc.min.js +2 -2
  113. package/dist/cdn/draw/snice-draw.js +2 -2
  114. package/dist/cdn/draw/snice-draw.min.js +2 -2
  115. package/dist/cdn/drawer/README.md +1 -1
  116. package/dist/cdn/drawer/snice-drawer.js +12 -6
  117. package/dist/cdn/drawer/snice-drawer.js.map +1 -1
  118. package/dist/cdn/drawer/snice-drawer.min.js +4 -4
  119. package/dist/cdn/drawer/snice-drawer.min.js.map +1 -1
  120. package/dist/cdn/empty-state/snice-empty-state.js +9 -5
  121. package/dist/cdn/empty-state/snice-empty-state.js.map +1 -1
  122. package/dist/cdn/empty-state/snice-empty-state.min.js +3 -3
  123. package/dist/cdn/empty-state/snice-empty-state.min.js.map +1 -1
  124. package/dist/cdn/estimate/snice-estimate.js +3 -3
  125. package/dist/cdn/estimate/snice-estimate.js.map +1 -1
  126. package/dist/cdn/estimate/snice-estimate.min.js +3 -3
  127. package/dist/cdn/estimate/snice-estimate.min.js.map +1 -1
  128. package/dist/cdn/file-gallery/snice-file-gallery.js +2 -2
  129. package/dist/cdn/file-gallery/snice-file-gallery.min.js +2 -2
  130. package/dist/cdn/file-upload/snice-file-upload.js +3 -3
  131. package/dist/cdn/file-upload/snice-file-upload.js.map +1 -1
  132. package/dist/cdn/file-upload/snice-file-upload.min.js +3 -3
  133. package/dist/cdn/file-upload/snice-file-upload.min.js.map +1 -1
  134. package/dist/cdn/flip-card/snice-flip-card.js +2 -2
  135. package/dist/cdn/flip-card/snice-flip-card.min.js +2 -2
  136. package/dist/cdn/flow/README.md +1 -1
  137. package/dist/cdn/flow/snice-flow.js +2 -2
  138. package/dist/cdn/flow/snice-flow.min.js +2 -2
  139. package/dist/cdn/form-layout/snice-form-layout.js +3 -3
  140. package/dist/cdn/form-layout/snice-form-layout.js.map +1 -1
  141. package/dist/cdn/form-layout/snice-form-layout.min.js +3 -3
  142. package/dist/cdn/form-layout/snice-form-layout.min.js.map +1 -1
  143. package/dist/cdn/funnel/README.md +2 -2
  144. package/dist/cdn/funnel/snice-funnel.js +2 -2
  145. package/dist/cdn/funnel/snice-funnel.min.js +2 -2
  146. package/dist/cdn/gantt/README.md +1 -1
  147. package/dist/cdn/gantt/snice-gantt.js +2 -2
  148. package/dist/cdn/gantt/snice-gantt.min.js +2 -2
  149. package/dist/cdn/gauge/snice-gauge.js +2 -2
  150. package/dist/cdn/gauge/snice-gauge.min.js +2 -2
  151. package/dist/cdn/heatmap/README.md +1 -1
  152. package/dist/cdn/heatmap/snice-heatmap.js +2 -2
  153. package/dist/cdn/heatmap/snice-heatmap.min.js +2 -2
  154. package/dist/cdn/image/snice-image.js +3 -3
  155. package/dist/cdn/image/snice-image.js.map +1 -1
  156. package/dist/cdn/image/snice-image.min.js +3 -3
  157. package/dist/cdn/image/snice-image.min.js.map +1 -1
  158. package/dist/cdn/input/README.md +1 -1
  159. package/dist/cdn/input/snice-input.js +9 -5
  160. package/dist/cdn/input/snice-input.js.map +1 -1
  161. package/dist/cdn/input/snice-input.min.js +3 -3
  162. package/dist/cdn/input/snice-input.min.js.map +1 -1
  163. package/dist/cdn/invoice/snice-invoice.js +3 -3
  164. package/dist/cdn/invoice/snice-invoice.js.map +1 -1
  165. package/dist/cdn/invoice/snice-invoice.min.js +4 -4
  166. package/dist/cdn/invoice/snice-invoice.min.js.map +1 -1
  167. package/dist/cdn/kanban/snice-kanban.js +2 -2
  168. package/dist/cdn/kanban/snice-kanban.min.js +2 -2
  169. package/dist/cdn/key-value/snice-key-value.js +3 -3
  170. package/dist/cdn/key-value/snice-key-value.js.map +1 -1
  171. package/dist/cdn/key-value/snice-key-value.min.js +3 -3
  172. package/dist/cdn/key-value/snice-key-value.min.js.map +1 -1
  173. package/dist/cdn/kpi/snice-kpi.js +3 -3
  174. package/dist/cdn/kpi/snice-kpi.js.map +1 -1
  175. package/dist/cdn/kpi/snice-kpi.min.js +3 -3
  176. package/dist/cdn/kpi/snice-kpi.min.js.map +1 -1
  177. package/dist/cdn/layout/snice-layout.js +3 -3
  178. package/dist/cdn/layout/snice-layout.js.map +1 -1
  179. package/dist/cdn/layout/snice-layout.min.js +3 -3
  180. package/dist/cdn/layout/snice-layout.min.js.map +1 -1
  181. package/dist/cdn/leaderboard/snice-leaderboard.js +3 -3
  182. package/dist/cdn/leaderboard/snice-leaderboard.js.map +1 -1
  183. package/dist/cdn/leaderboard/snice-leaderboard.min.js +3 -3
  184. package/dist/cdn/leaderboard/snice-leaderboard.min.js.map +1 -1
  185. package/dist/cdn/link/snice-link.js +3 -3
  186. package/dist/cdn/link/snice-link.js.map +1 -1
  187. package/dist/cdn/link/snice-link.min.js +3 -3
  188. package/dist/cdn/link/snice-link.min.js.map +1 -1
  189. package/dist/cdn/link-preview/snice-link-preview.js +3 -3
  190. package/dist/cdn/link-preview/snice-link-preview.js.map +1 -1
  191. package/dist/cdn/link-preview/snice-link-preview.min.js +3 -3
  192. package/dist/cdn/link-preview/snice-link-preview.min.js.map +1 -1
  193. package/dist/cdn/list/snice-list.js +10 -6
  194. package/dist/cdn/list/snice-list.js.map +1 -1
  195. package/dist/cdn/list/snice-list.min.js +4 -4
  196. package/dist/cdn/list/snice-list.min.js.map +1 -1
  197. package/dist/cdn/location/snice-location.js +8 -4
  198. package/dist/cdn/location/snice-location.js.map +1 -1
  199. package/dist/cdn/location/snice-location.min.js +2 -2
  200. package/dist/cdn/location/snice-location.min.js.map +1 -1
  201. package/dist/cdn/login/snice-login.js +8 -4
  202. package/dist/cdn/login/snice-login.js.map +1 -1
  203. package/dist/cdn/login/snice-login.min.js +2 -2
  204. package/dist/cdn/login/snice-login.min.js.map +1 -1
  205. package/dist/cdn/map/README.md +1 -1
  206. package/dist/cdn/map/snice-map.js +2 -2
  207. package/dist/cdn/map/snice-map.min.js +2 -2
  208. package/dist/cdn/markdown/snice-markdown.js +2 -2
  209. package/dist/cdn/markdown/snice-markdown.min.js +2 -2
  210. package/dist/cdn/masonry/snice-masonry.js +2 -2
  211. package/dist/cdn/masonry/snice-masonry.min.js +2 -2
  212. package/dist/cdn/menu/snice-menu.js +2 -2
  213. package/dist/cdn/menu/snice-menu.min.js +2 -2
  214. package/dist/cdn/message-strip/snice-message-strip.js +8 -4
  215. package/dist/cdn/message-strip/snice-message-strip.js.map +1 -1
  216. package/dist/cdn/message-strip/snice-message-strip.min.js +2 -2
  217. package/dist/cdn/message-strip/snice-message-strip.min.js.map +1 -1
  218. package/dist/cdn/metric-table/snice-metric-table.js +3 -3
  219. package/dist/cdn/metric-table/snice-metric-table.js.map +1 -1
  220. package/dist/cdn/metric-table/snice-metric-table.min.js +8 -8
  221. package/dist/cdn/metric-table/snice-metric-table.min.js.map +1 -1
  222. package/dist/cdn/modal/README.md +1 -1
  223. package/dist/cdn/modal/snice-modal.js +2 -2
  224. package/dist/cdn/modal/snice-modal.min.js +2 -2
  225. package/dist/cdn/music-player/snice-music-player.js +2 -2
  226. package/dist/cdn/music-player/snice-music-player.min.js +2 -2
  227. package/dist/cdn/nav/snice-nav.js +3 -3
  228. package/dist/cdn/nav/snice-nav.js.map +1 -1
  229. package/dist/cdn/nav/snice-nav.min.js +3 -3
  230. package/dist/cdn/nav/snice-nav.min.js.map +1 -1
  231. package/dist/cdn/network-graph/snice-network-graph.js +2 -2
  232. package/dist/cdn/network-graph/snice-network-graph.min.js +2 -2
  233. package/dist/cdn/notification-center/snice-notification-center.js +9 -5
  234. package/dist/cdn/notification-center/snice-notification-center.js.map +1 -1
  235. package/dist/cdn/notification-center/snice-notification-center.min.js +3 -3
  236. package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -1
  237. package/dist/cdn/order-tracker/snice-order-tracker.js +3 -3
  238. package/dist/cdn/order-tracker/snice-order-tracker.js.map +1 -1
  239. package/dist/cdn/order-tracker/snice-order-tracker.min.js +3 -3
  240. package/dist/cdn/order-tracker/snice-order-tracker.min.js.map +1 -1
  241. package/dist/cdn/org-chart/README.md +1 -1
  242. package/dist/cdn/org-chart/snice-org-chart.js +2 -2
  243. package/dist/cdn/org-chart/snice-org-chart.min.js +2 -2
  244. package/dist/cdn/pagination/snice-pagination.js +2 -2
  245. package/dist/cdn/pagination/snice-pagination.min.js +2 -2
  246. package/dist/cdn/paint/snice-paint.js +2 -2
  247. package/dist/cdn/paint/snice-paint.min.js +2 -2
  248. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +2 -2
  249. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +2 -2
  250. package/dist/cdn/permission-matrix/snice-permission-matrix.js +3 -3
  251. package/dist/cdn/permission-matrix/snice-permission-matrix.js.map +1 -1
  252. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +12 -12
  253. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js.map +1 -1
  254. package/dist/cdn/podcast-player/snice-podcast-player.js +2 -2
  255. package/dist/cdn/podcast-player/snice-podcast-player.min.js +2 -2
  256. package/dist/cdn/pricing-table/README.md +1 -1
  257. package/dist/cdn/pricing-table/snice-pricing-table.js +3 -3
  258. package/dist/cdn/pricing-table/snice-pricing-table.js.map +1 -1
  259. package/dist/cdn/pricing-table/snice-pricing-table.min.js +3 -3
  260. package/dist/cdn/pricing-table/snice-pricing-table.min.js.map +1 -1
  261. package/dist/cdn/product-card/snice-product-card.js +3 -3
  262. package/dist/cdn/product-card/snice-product-card.js.map +1 -1
  263. package/dist/cdn/product-card/snice-product-card.min.js +3 -3
  264. package/dist/cdn/product-card/snice-product-card.min.js.map +1 -1
  265. package/dist/cdn/progress/README.md +1 -1
  266. package/dist/cdn/progress/snice-progress.js +2 -2
  267. package/dist/cdn/progress/snice-progress.min.js +2 -2
  268. package/dist/cdn/progress-ring/snice-progress-ring.js +2 -2
  269. package/dist/cdn/progress-ring/snice-progress-ring.min.js +2 -2
  270. package/dist/cdn/qr-code/snice-qr-code.js +2 -2
  271. package/dist/cdn/qr-code/snice-qr-code.min.js +2 -2
  272. package/dist/cdn/qr-reader/README.md +1 -1
  273. package/dist/cdn/qr-reader/snice-qr-reader.js +2 -2
  274. package/dist/cdn/qr-reader/snice-qr-reader.min.js +2 -2
  275. package/dist/cdn/radio/snice-radio.js +3 -3
  276. package/dist/cdn/radio/snice-radio.js.map +1 -1
  277. package/dist/cdn/radio/snice-radio.min.js +3 -3
  278. package/dist/cdn/radio/snice-radio.min.js.map +1 -1
  279. package/dist/cdn/range-slider/snice-range-slider.js +2 -2
  280. package/dist/cdn/range-slider/snice-range-slider.min.js +2 -2
  281. package/dist/cdn/rating/snice-rating.js +2 -2
  282. package/dist/cdn/rating/snice-rating.min.js +2 -2
  283. package/dist/cdn/receipt/snice-receipt.js +3 -3
  284. package/dist/cdn/receipt/snice-receipt.js.map +1 -1
  285. package/dist/cdn/receipt/snice-receipt.min.js +7 -7
  286. package/dist/cdn/receipt/snice-receipt.min.js.map +1 -1
  287. package/dist/cdn/recipe/snice-recipe.js +3 -3
  288. package/dist/cdn/recipe/snice-recipe.js.map +1 -1
  289. package/dist/cdn/recipe/snice-recipe.min.js +3 -3
  290. package/dist/cdn/recipe/snice-recipe.min.js.map +1 -1
  291. package/dist/cdn/runtime/README.md +1 -1
  292. package/dist/cdn/runtime/snice-runtime.esm.js +8 -8
  293. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  294. package/dist/cdn/runtime/snice-runtime.esm.min.js +8 -8
  295. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  296. package/dist/cdn/runtime/snice-runtime.js +8 -8
  297. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  298. package/dist/cdn/runtime/snice-runtime.min.js +8 -8
  299. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  300. package/dist/cdn/sankey/README.md +1 -1
  301. package/dist/cdn/sankey/snice-sankey.js +2 -2
  302. package/dist/cdn/sankey/snice-sankey.min.js +2 -2
  303. package/dist/cdn/segmented-control/snice-segmented-control.js +2 -2
  304. package/dist/cdn/segmented-control/snice-segmented-control.min.js +2 -2
  305. package/dist/cdn/select/snice-select.js +2 -2
  306. package/dist/cdn/select/snice-select.min.js +2 -2
  307. package/dist/cdn/skeleton/snice-skeleton.js +2 -2
  308. package/dist/cdn/skeleton/snice-skeleton.min.js +2 -2
  309. package/dist/cdn/slider/README.md +1 -1
  310. package/dist/cdn/slider/snice-slider.js +2 -2
  311. package/dist/cdn/slider/snice-slider.min.js +2 -2
  312. package/dist/cdn/sortable/README.md +1 -1
  313. package/dist/cdn/sortable/snice-sortable.js +2 -2
  314. package/dist/cdn/sortable/snice-sortable.min.js +2 -2
  315. package/dist/cdn/sparkline/README.md +1 -1
  316. package/dist/cdn/sparkline/snice-sparkline.js +2 -2
  317. package/dist/cdn/sparkline/snice-sparkline.min.js +2 -2
  318. package/dist/cdn/spinner/README.md +2 -2
  319. package/dist/cdn/spinner/snice-spinner.js +2 -2
  320. package/dist/cdn/spinner/snice-spinner.min.js +2 -2
  321. package/dist/cdn/split-button/snice-split-button.js +2 -2
  322. package/dist/cdn/split-button/snice-split-button.min.js +2 -2
  323. package/dist/cdn/split-pane/snice-split-pane.js +2 -2
  324. package/dist/cdn/split-pane/snice-split-pane.min.js +2 -2
  325. package/dist/cdn/spotlight/snice-spotlight.js +2 -2
  326. package/dist/cdn/spotlight/snice-spotlight.min.js +2 -2
  327. package/dist/cdn/spreadsheet/README.md +2 -2
  328. package/dist/cdn/spreadsheet/snice-spreadsheet.js +2 -2
  329. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +2 -2
  330. package/dist/cdn/stat-group/snice-stat-group.js +3 -3
  331. package/dist/cdn/stat-group/snice-stat-group.js.map +1 -1
  332. package/dist/cdn/stat-group/snice-stat-group.min.js +4 -4
  333. package/dist/cdn/stat-group/snice-stat-group.min.js.map +1 -1
  334. package/dist/cdn/step-input/snice-step-input.js +3 -3
  335. package/dist/cdn/step-input/snice-step-input.js.map +1 -1
  336. package/dist/cdn/step-input/snice-step-input.min.js +3 -3
  337. package/dist/cdn/step-input/snice-step-input.min.js.map +1 -1
  338. package/dist/cdn/stepper/README.md +1 -1
  339. package/dist/cdn/stepper/snice-stepper.js +3 -3
  340. package/dist/cdn/stepper/snice-stepper.js.map +1 -1
  341. package/dist/cdn/stepper/snice-stepper.min.js +4 -4
  342. package/dist/cdn/stepper/snice-stepper.min.js.map +1 -1
  343. package/dist/cdn/switch/snice-switch.js +2 -2
  344. package/dist/cdn/switch/snice-switch.min.js +2 -2
  345. package/dist/cdn/table/README.md +1 -1
  346. package/dist/cdn/table/snice-table.js +9 -5
  347. package/dist/cdn/table/snice-table.js.map +1 -1
  348. package/dist/cdn/table/snice-table.min.js +3 -3
  349. package/dist/cdn/table/snice-table.min.js.map +1 -1
  350. package/dist/cdn/tabs/README.md +1 -1
  351. package/dist/cdn/tabs/snice-tabs.js +2 -2
  352. package/dist/cdn/tabs/snice-tabs.min.js +2 -2
  353. package/dist/cdn/tag/snice-tag.js +2 -2
  354. package/dist/cdn/tag/snice-tag.min.js +2 -2
  355. package/dist/cdn/tag-input/snice-tag-input.js +3 -3
  356. package/dist/cdn/tag-input/snice-tag-input.js.map +1 -1
  357. package/dist/cdn/tag-input/snice-tag-input.min.js +11 -11
  358. package/dist/cdn/tag-input/snice-tag-input.min.js.map +1 -1
  359. package/dist/cdn/terminal/snice-terminal.js +2 -2
  360. package/dist/cdn/terminal/snice-terminal.min.js +2 -2
  361. package/dist/cdn/testimonial/snice-testimonial.js +2 -2
  362. package/dist/cdn/testimonial/snice-testimonial.min.js +2 -2
  363. package/dist/cdn/textarea/README.md +1 -1
  364. package/dist/cdn/textarea/snice-textarea.js +2 -2
  365. package/dist/cdn/textarea/snice-textarea.min.js +2 -2
  366. package/dist/cdn/time-picker/snice-time-picker.js +2 -2
  367. package/dist/cdn/time-picker/snice-time-picker.min.js +2 -2
  368. package/dist/cdn/time-range-picker/snice-time-range-picker.js +3 -3
  369. package/dist/cdn/time-range-picker/snice-time-range-picker.js.map +1 -1
  370. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +3 -3
  371. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js.map +1 -1
  372. package/dist/cdn/timeline/snice-timeline.js +3 -3
  373. package/dist/cdn/timeline/snice-timeline.js.map +1 -1
  374. package/dist/cdn/timeline/snice-timeline.min.js +4 -4
  375. package/dist/cdn/timeline/snice-timeline.min.js.map +1 -1
  376. package/dist/cdn/timer/snice-timer.js +3 -3
  377. package/dist/cdn/timer/snice-timer.js.map +1 -1
  378. package/dist/cdn/timer/snice-timer.min.js +3 -3
  379. package/dist/cdn/timer/snice-timer.min.js.map +1 -1
  380. package/dist/cdn/toast/snice-toast.js +2 -2
  381. package/dist/cdn/toast/snice-toast.min.js +2 -2
  382. package/dist/cdn/tooltip/snice-tooltip.js +2 -2
  383. package/dist/cdn/tooltip/snice-tooltip.min.js +2 -2
  384. package/dist/cdn/tree/README.md +2 -2
  385. package/dist/cdn/tree/snice-tree.js +2 -2
  386. package/dist/cdn/tree/snice-tree.min.js +2 -2
  387. package/dist/cdn/treemap/snice-treemap.js +2 -2
  388. package/dist/cdn/treemap/snice-treemap.min.js +2 -2
  389. package/dist/cdn/user-card/snice-user-card.js +3 -3
  390. package/dist/cdn/user-card/snice-user-card.js.map +1 -1
  391. package/dist/cdn/user-card/snice-user-card.min.js +7 -7
  392. package/dist/cdn/user-card/snice-user-card.min.js.map +1 -1
  393. package/dist/cdn/video-player/snice-video-player.js +2 -2
  394. package/dist/cdn/video-player/snice-video-player.min.js +2 -2
  395. package/dist/cdn/virtual-scroller/README.md +1 -1
  396. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +2 -2
  397. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +2 -2
  398. package/dist/cdn/waterfall/README.md +1 -1
  399. package/dist/cdn/waterfall/snice-waterfall.js +2 -2
  400. package/dist/cdn/waterfall/snice-waterfall.min.js +2 -2
  401. package/dist/cdn/weather/snice-weather.js +2 -2
  402. package/dist/cdn/weather/snice-weather.min.js +2 -2
  403. package/dist/cdn/work-order/snice-work-order.js +3 -3
  404. package/dist/cdn/work-order/snice-work-order.js.map +1 -1
  405. package/dist/cdn/work-order/snice-work-order.min.js +3 -3
  406. package/dist/cdn/work-order/snice-work-order.min.js.map +1 -1
  407. package/dist/components/activity-feed/snice-activity-feed.js +1 -1
  408. package/dist/components/activity-feed/snice-activity-feed.js.map +1 -1
  409. package/dist/components/approval-flow/snice-approval-flow.js +1 -1
  410. package/dist/components/approval-flow/snice-approval-flow.js.map +1 -1
  411. package/dist/components/avatar-group/snice-avatar-group.js +1 -1
  412. package/dist/components/avatar-group/snice-avatar-group.js.map +1 -1
  413. package/dist/components/banner/snice-banner.js +1 -1
  414. package/dist/components/banner/snice-banner.js.map +1 -1
  415. package/dist/components/cart/snice-cart.js +1 -1
  416. package/dist/components/cart/snice-cart.js.map +1 -1
  417. package/dist/components/color-display/snice-color-display.js +1 -1
  418. package/dist/components/color-display/snice-color-display.js.map +1 -1
  419. package/dist/components/comments/snice-comments.js +1 -1
  420. package/dist/components/comments/snice-comments.js.map +1 -1
  421. package/dist/components/data-card/snice-data-card.js +1 -1
  422. package/dist/components/data-card/snice-data-card.js.map +1 -1
  423. package/dist/components/drawer/snice-drawer.js +10 -4
  424. package/dist/components/drawer/snice-drawer.js.map +1 -1
  425. package/dist/components/empty-state/snice-empty-state.js +1 -1
  426. package/dist/components/empty-state/snice-empty-state.js.map +1 -1
  427. package/dist/components/estimate/snice-estimate.js +1 -1
  428. package/dist/components/estimate/snice-estimate.js.map +1 -1
  429. package/dist/components/file-upload/snice-file-upload.js +1 -1
  430. package/dist/components/file-upload/snice-file-upload.js.map +1 -1
  431. package/dist/components/form-layout/snice-form-layout.js +1 -1
  432. package/dist/components/form-layout/snice-form-layout.js.map +1 -1
  433. package/dist/components/image/snice-image.js +1 -1
  434. package/dist/components/image/snice-image.js.map +1 -1
  435. package/dist/components/input/snice-input.js +1 -1
  436. package/dist/components/input/snice-input.js.map +1 -1
  437. package/dist/components/invoice/snice-invoice.js +1 -1
  438. package/dist/components/invoice/snice-invoice.js.map +1 -1
  439. package/dist/components/key-value/snice-key-value.js +1 -1
  440. package/dist/components/key-value/snice-key-value.js.map +1 -1
  441. package/dist/components/kpi/snice-kpi.js +1 -1
  442. package/dist/components/kpi/snice-kpi.js.map +1 -1
  443. package/dist/components/leaderboard/snice-leaderboard.js +1 -1
  444. package/dist/components/leaderboard/snice-leaderboard.js.map +1 -1
  445. package/dist/components/link/snice-link.js +1 -1
  446. package/dist/components/link/snice-link.js.map +1 -1
  447. package/dist/components/link-preview/snice-link-preview.js +1 -1
  448. package/dist/components/link-preview/snice-link-preview.js.map +1 -1
  449. package/dist/components/list/snice-list-item.js +1 -1
  450. package/dist/components/list/snice-list-item.js.map +1 -1
  451. package/dist/components/metric-table/snice-metric-table.js +1 -1
  452. package/dist/components/metric-table/snice-metric-table.js.map +1 -1
  453. package/dist/components/nav/snice-nav.js +1 -1
  454. package/dist/components/nav/snice-nav.js.map +1 -1
  455. package/dist/components/order-tracker/snice-order-tracker.js +1 -1
  456. package/dist/components/order-tracker/snice-order-tracker.js.map +1 -1
  457. package/dist/components/permission-matrix/snice-permission-matrix.js +1 -1
  458. package/dist/components/permission-matrix/snice-permission-matrix.js.map +1 -1
  459. package/dist/components/pricing-table/snice-pricing-table.js +1 -1
  460. package/dist/components/pricing-table/snice-pricing-table.js.map +1 -1
  461. package/dist/components/product-card/snice-product-card.js +1 -1
  462. package/dist/components/product-card/snice-product-card.js.map +1 -1
  463. package/dist/components/radio/snice-radio.js +1 -1
  464. package/dist/components/radio/snice-radio.js.map +1 -1
  465. package/dist/components/receipt/snice-receipt.js +1 -1
  466. package/dist/components/receipt/snice-receipt.js.map +1 -1
  467. package/dist/components/recipe/snice-recipe.js +1 -1
  468. package/dist/components/recipe/snice-recipe.js.map +1 -1
  469. package/dist/components/stat-group/snice-stat-group.js +1 -1
  470. package/dist/components/stat-group/snice-stat-group.js.map +1 -1
  471. package/dist/components/step-input/snice-step-input.js +1 -1
  472. package/dist/components/step-input/snice-step-input.js.map +1 -1
  473. package/dist/components/stepper/snice-stepper.js +1 -1
  474. package/dist/components/stepper/snice-stepper.js.map +1 -1
  475. package/dist/components/tag-input/snice-tag-input.js +1 -1
  476. package/dist/components/tag-input/snice-tag-input.js.map +1 -1
  477. package/dist/components/time-range-picker/snice-time-range-picker.js +1 -1
  478. package/dist/components/time-range-picker/snice-time-range-picker.js.map +1 -1
  479. package/dist/components/timeline/snice-timeline.js +1 -1
  480. package/dist/components/timeline/snice-timeline.js.map +1 -1
  481. package/dist/components/timer/snice-timer.js +1 -1
  482. package/dist/components/timer/snice-timer.js.map +1 -1
  483. package/dist/components/user-card/snice-user-card.js +1 -1
  484. package/dist/components/user-card/snice-user-card.js.map +1 -1
  485. package/dist/components/utils.d.ts +6 -2
  486. package/dist/components/utils.js +6 -2
  487. package/dist/components/utils.js.map +1 -1
  488. package/dist/components/work-order/snice-work-order.js +1 -1
  489. package/dist/components/work-order/snice-work-order.js.map +1 -1
  490. package/dist/index.cjs +2 -2
  491. package/dist/index.esm.js +2 -2
  492. package/dist/index.iife.js +2 -2
  493. package/dist/symbols.cjs +2 -2
  494. package/dist/symbols.esm.js +2 -2
  495. package/dist/transitions.cjs +2 -2
  496. package/dist/transitions.esm.js +2 -2
  497. package/docs/ai/components/alert.md +10 -9
  498. package/docs/ai/components/banner.md +8 -7
  499. package/docs/ai/components/breadcrumbs.md +4 -3
  500. package/docs/ai/components/button.md +20 -16
  501. package/docs/ai/components/chip.md +9 -8
  502. package/docs/ai/components/empty-state.md +9 -11
  503. package/docs/ai/components/input.md +16 -18
  504. package/docs/ai/components/location.md +1 -1
  505. package/docs/components/alert.md +8 -6
  506. package/docs/components/breadcrumbs.md +2 -2
  507. package/docs/components/button.md +58 -33
  508. package/docs/components/chip.md +8 -6
  509. package/docs/components/empty-state.md +1 -1
  510. package/docs/components/input.md +24 -10
  511. package/docs/components/location.md +1 -1
  512. package/package.json +4 -3
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * snice v4.23.0
3
- * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
2
+ * snice v4.25.0
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.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
7
- void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-invoice.min.js");var SniceInvoice=function(e,i){"use strict";function t(e,i,t,a,n,o){function r(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=a.kind,v="getter"===c?"get":"setter"===c?"set":"value",l=!i&&e?a.static?e:e.prototype:null,d=i||(l?Object.getOwnPropertyDescriptor(l,a.name):{}),m=!1,h=t.length-1;h>=0;h--){var p={};for(var b in a)p[b]="access"===b?{}:a[b];for(var b in a.access)p.access[b]=a.access[b];p.addInitializer=function(e){if(m)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(e||null))};var u=(0,t[h])("accessor"===c?{get:d.get,set:d.set}:d[v],p);if("accessor"===c){if(void 0===u)continue;if(null===u||"object"!=typeof u)throw new TypeError("Object expected");(s=r(u.get))&&(d.get=s),(s=r(u.set))&&(d.set=s),(s=r(u.init))&&n.unshift(s)}else(s=r(u))&&("field"===c?n.unshift(s):d[v]=s)}l&&Object.defineProperty(l,a.name,d),m=!0}function a(e,i,t){for(var a=arguments.length>2,n=0;n<i.length;n++)t=a?i[n].call(e,t):i[n].call(e);return a?t:void 0}"function"==typeof SuppressedError&&SuppressedError;let n=(()=>{let e,n,o,r,s,c,v,l,d,m,h,p,b,u,g,_,f,y,x,w,k,z,$,q=[i.element("snice-invoice")],S=[],C=HTMLElement,D=[],I=[],P=[],Q=[],T=[],R=[],j=[],A=[],N=[],O=[],E=[],F=[],B=[],U=[],H=[],L=[],M=[],G=[],J=[],K=[],V=[],W=[],X=[],Y=[],Z=[],ee=[],ie=[],te=[],ae=[],ne=[],oe=[];return class extends C{static{n=this}static{const re="function"==typeof Symbol&&Symbol.metadata?Object.create(C[Symbol.metadata]??null):void 0;o=[i.property()],r=[i.property()],s=[i.property()],c=[i.property()],v=[i.property()],l=[i.property({type:Number})],d=[i.property({type:Number})],m=[i.property({type:Object,attribute:!1})],h=[i.property({type:Object,attribute:!1})],p=[i.property({type:Array,attribute:!1})],b=[i.property()],u=[i.property()],g=[i.property({type:Boolean})],_=[i.property()],f=[i.property()],y=[i.watch("status")],x=[i.watch("items")],w=[i.dispatch("invoice-item-change",{bubbles:!0,composed:!0})],k=[i.dispatch("invoice-status-change",{bubbles:!0,composed:!0})],z=[i.render()],$=[i.styles()],t(this,null,y,{kind:"method",name:"handleStatusChange",static:!1,private:!1,access:{has:e=>"handleStatusChange"in e,get:e=>e.handleStatusChange},metadata:re},null,D),t(this,null,x,{kind:"method",name:"handleItemsChange",static:!1,private:!1,access:{has:e=>"handleItemsChange"in e,get:e=>e.handleItemsChange},metadata:re},null,D),t(this,null,w,{kind:"method",name:"emitItemChange",static:!1,private:!1,access:{has:e=>"emitItemChange"in e,get:e=>e.emitItemChange},metadata:re},null,D),t(this,null,k,{kind:"method",name:"emitStatusChange",static:!1,private:!1,access:{has:e=>"emitStatusChange"in e,get:e=>e.emitStatusChange},metadata:re},null,D),t(this,null,z,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:e=>"renderContent"in e,get:e=>e.renderContent},metadata:re},null,D),t(this,null,$,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:e=>"componentStyles"in e,get:e=>e.componentStyles},metadata:re},null,D),t(null,null,o,{kind:"field",name:"invoiceNumber",static:!1,private:!1,access:{has:e=>"invoiceNumber"in e,get:e=>e.invoiceNumber,set:(e,i)=>{e.invoiceNumber=i}},metadata:re},I,P),t(null,null,r,{kind:"field",name:"date",static:!1,private:!1,access:{has:e=>"date"in e,get:e=>e.date,set:(e,i)=>{e.date=i}},metadata:re},Q,T),t(null,null,s,{kind:"field",name:"dueDate",static:!1,private:!1,access:{has:e=>"dueDate"in e,get:e=>e.dueDate,set:(e,i)=>{e.dueDate=i}},metadata:re},R,j),t(null,null,c,{kind:"field",name:"status",static:!1,private:!1,access:{has:e=>"status"in e,get:e=>e.status,set:(e,i)=>{e.status=i}},metadata:re},A,N),t(null,null,v,{kind:"field",name:"currency",static:!1,private:!1,access:{has:e=>"currency"in e,get:e=>e.currency,set:(e,i)=>{e.currency=i}},metadata:re},O,E),t(null,null,l,{kind:"field",name:"taxRate",static:!1,private:!1,access:{has:e=>"taxRate"in e,get:e=>e.taxRate,set:(e,i)=>{e.taxRate=i}},metadata:re},F,B),t(null,null,d,{kind:"field",name:"discount",static:!1,private:!1,access:{has:e=>"discount"in e,get:e=>e.discount,set:(e,i)=>{e.discount=i}},metadata:re},U,H),t(null,null,m,{kind:"field",name:"from",static:!1,private:!1,access:{has:e=>"from"in e,get:e=>e.from,set:(e,i)=>{e.from=i}},metadata:re},L,M),t(null,null,h,{kind:"field",name:"to",static:!1,private:!1,access:{has:e=>"to"in e,get:e=>e.to,set:(e,i)=>{e.to=i}},metadata:re},G,J),t(null,null,p,{kind:"field",name:"items",static:!1,private:!1,access:{has:e=>"items"in e,get:e=>e.items,set:(e,i)=>{e.items=i}},metadata:re},K,V),t(null,null,b,{kind:"field",name:"notes",static:!1,private:!1,access:{has:e=>"notes"in e,get:e=>e.notes,set:(e,i)=>{e.notes=i}},metadata:re},W,X),t(null,null,u,{kind:"field",name:"variant",static:!1,private:!1,access:{has:e=>"variant"in e,get:e=>e.variant,set:(e,i)=>{e.variant=i}},metadata:re},Y,Z),t(null,null,g,{kind:"field",name:"showQr",static:!1,private:!1,access:{has:e=>"showQr"in e,get:e=>e.showQr,set:(e,i)=>{e.showQr=i}},metadata:re},ee,ie),t(null,null,_,{kind:"field",name:"qrData",static:!1,private:!1,access:{has:e=>"qrData"in e,get:e=>e.qrData,set:(e,i)=>{e.qrData=i}},metadata:re},te,ae),t(null,null,f,{kind:"field",name:"qrPosition",static:!1,private:!1,access:{has:e=>"qrPosition"in e,get:e=>e.qrPosition,set:(e,i)=>{e.qrPosition=i}},metadata:re},ne,oe),t(null,e={value:n},q,{kind:"class",name:n.name,metadata:re},null,S),n=e.value,re&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:re}),a(n,S)}handleStatusChange(e,i){e&&e!==i&&this.emitStatusChange({oldStatus:e,newStatus:i})}handleItemsChange(){this.emitItemChange({items:this.items,subtotal:this.getSubtotal(),tax:this.getTaxAmount(),total:this.getTotal()})}emitItemChange(e){return e}emitStatusChange(e){return e}getItemAmount(e){return void 0!==e.amount?e.amount:e.quantity*e.unitPrice}getSubtotal(){return this.items.reduce((e,i)=>e+this.getItemAmount(i),0)}getTaxAmount(){return(this.getSubtotal()-this.getDiscountAmount())*(this.taxRate/100)}getDiscountAmount(){return this.getSubtotal()*(this.discount/100)}getTotal(){const e=this.getSubtotal(),i=this.getDiscountAmount();return e-i+(e-i)*(this.taxRate/100)}formatCurrency(e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:this.currency}).format(e)}catch{return`${this.currency} ${e.toFixed(2)}`}}print(){window.print()}toJSON(){return{invoiceNumber:this.invoiceNumber,date:this.date,dueDate:this.dueDate,status:this.status,currency:this.currency,taxRate:this.taxRate,discount:this.discount,from:{...this.from},to:{...this.to},items:this.items.map(e=>({...e})),notes:this.notes,variant:this.variant,showQr:this.showQr,qrData:this.qrData,qrPosition:this.qrPosition,subtotal:this.getSubtotal(),tax:this.getTaxAmount(),discount_amount:this.getDiscountAmount(),total:this.getTotal()}}renderParty(e,t){return t.name||t.address||t.email||t.phone?i.html`
7
+ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-invoice.min.js");var SniceInvoice=function(e,i){"use strict";function t(e,i,t,a,n,o){function r(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=a.kind,v="getter"===c?"get":"setter"===c?"set":"value",l=!i&&e?a.static?e:e.prototype:null,d=i||(l?Object.getOwnPropertyDescriptor(l,a.name):{}),m=!1,h=t.length-1;h>=0;h--){var p={};for(var b in a)p[b]="access"===b?{}:a[b];for(var b in a.access)p.access[b]=a.access[b];p.addInitializer=function(e){if(m)throw new TypeError("Cannot add initializers after decoration has completed");o.push(r(e||null))};var u=(0,t[h])("accessor"===c?{get:d.get,set:d.set}:d[v],p);if("accessor"===c){if(void 0===u)continue;if(null===u||"object"!=typeof u)throw new TypeError("Object expected");(s=r(u.get))&&(d.get=s),(s=r(u.set))&&(d.set=s),(s=r(u.init))&&n.unshift(s)}else(s=r(u))&&("field"===c?n.unshift(s):d[v]=s)}l&&Object.defineProperty(l,a.name,d),m=!0}function a(e,i,t){for(var a=arguments.length>2,n=0;n<i.length;n++)t=a?i[n].call(e,t):i[n].call(e);return a?t:void 0}"function"==typeof SuppressedError&&SuppressedError;let n=(()=>{let e,n,o,r,s,c,v,l,d,m,h,p,b,u,g,_,f,x,y,w,k,z,$,q=[i.element("snice-invoice")],S=[],C=HTMLElement,D=[],I=[],P=[],Q=[],T=[],R=[],j=[],A=[],N=[],O=[],E=[],F=[],B=[],U=[],H=[],L=[],M=[],G=[],J=[],K=[],V=[],W=[],X=[],Y=[],Z=[],ee=[],ie=[],te=[],ae=[],ne=[],oe=[];return class extends C{static{n=this}static{const re="function"==typeof Symbol&&Symbol.metadata?Object.create(C[Symbol.metadata]??null):void 0;o=[i.property()],r=[i.property()],s=[i.property()],c=[i.property()],v=[i.property()],l=[i.property({type:Number})],d=[i.property({type:Number})],m=[i.property({type:Object,attribute:!1})],h=[i.property({type:Object,attribute:!1})],p=[i.property({type:Array,attribute:!1})],b=[i.property()],u=[i.property()],g=[i.property({type:Boolean})],_=[i.property()],f=[i.property()],x=[i.watch("status")],y=[i.watch("items")],w=[i.dispatch("invoice-item-change",{bubbles:!0,composed:!0})],k=[i.dispatch("invoice-status-change",{bubbles:!0,composed:!0})],z=[i.render()],$=[i.styles()],t(this,null,x,{kind:"method",name:"handleStatusChange",static:!1,private:!1,access:{has:e=>"handleStatusChange"in e,get:e=>e.handleStatusChange},metadata:re},null,D),t(this,null,y,{kind:"method",name:"handleItemsChange",static:!1,private:!1,access:{has:e=>"handleItemsChange"in e,get:e=>e.handleItemsChange},metadata:re},null,D),t(this,null,w,{kind:"method",name:"emitItemChange",static:!1,private:!1,access:{has:e=>"emitItemChange"in e,get:e=>e.emitItemChange},metadata:re},null,D),t(this,null,k,{kind:"method",name:"emitStatusChange",static:!1,private:!1,access:{has:e=>"emitStatusChange"in e,get:e=>e.emitStatusChange},metadata:re},null,D),t(this,null,z,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:e=>"renderContent"in e,get:e=>e.renderContent},metadata:re},null,D),t(this,null,$,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:e=>"componentStyles"in e,get:e=>e.componentStyles},metadata:re},null,D),t(null,null,o,{kind:"field",name:"invoiceNumber",static:!1,private:!1,access:{has:e=>"invoiceNumber"in e,get:e=>e.invoiceNumber,set:(e,i)=>{e.invoiceNumber=i}},metadata:re},I,P),t(null,null,r,{kind:"field",name:"date",static:!1,private:!1,access:{has:e=>"date"in e,get:e=>e.date,set:(e,i)=>{e.date=i}},metadata:re},Q,T),t(null,null,s,{kind:"field",name:"dueDate",static:!1,private:!1,access:{has:e=>"dueDate"in e,get:e=>e.dueDate,set:(e,i)=>{e.dueDate=i}},metadata:re},R,j),t(null,null,c,{kind:"field",name:"status",static:!1,private:!1,access:{has:e=>"status"in e,get:e=>e.status,set:(e,i)=>{e.status=i}},metadata:re},A,N),t(null,null,v,{kind:"field",name:"currency",static:!1,private:!1,access:{has:e=>"currency"in e,get:e=>e.currency,set:(e,i)=>{e.currency=i}},metadata:re},O,E),t(null,null,l,{kind:"field",name:"taxRate",static:!1,private:!1,access:{has:e=>"taxRate"in e,get:e=>e.taxRate,set:(e,i)=>{e.taxRate=i}},metadata:re},F,B),t(null,null,d,{kind:"field",name:"discount",static:!1,private:!1,access:{has:e=>"discount"in e,get:e=>e.discount,set:(e,i)=>{e.discount=i}},metadata:re},U,H),t(null,null,m,{kind:"field",name:"from",static:!1,private:!1,access:{has:e=>"from"in e,get:e=>e.from,set:(e,i)=>{e.from=i}},metadata:re},L,M),t(null,null,h,{kind:"field",name:"to",static:!1,private:!1,access:{has:e=>"to"in e,get:e=>e.to,set:(e,i)=>{e.to=i}},metadata:re},G,J),t(null,null,p,{kind:"field",name:"items",static:!1,private:!1,access:{has:e=>"items"in e,get:e=>e.items,set:(e,i)=>{e.items=i}},metadata:re},K,V),t(null,null,b,{kind:"field",name:"notes",static:!1,private:!1,access:{has:e=>"notes"in e,get:e=>e.notes,set:(e,i)=>{e.notes=i}},metadata:re},W,X),t(null,null,u,{kind:"field",name:"variant",static:!1,private:!1,access:{has:e=>"variant"in e,get:e=>e.variant,set:(e,i)=>{e.variant=i}},metadata:re},Y,Z),t(null,null,g,{kind:"field",name:"showQr",static:!1,private:!1,access:{has:e=>"showQr"in e,get:e=>e.showQr,set:(e,i)=>{e.showQr=i}},metadata:re},ee,ie),t(null,null,_,{kind:"field",name:"qrData",static:!1,private:!1,access:{has:e=>"qrData"in e,get:e=>e.qrData,set:(e,i)=>{e.qrData=i}},metadata:re},te,ae),t(null,null,f,{kind:"field",name:"qrPosition",static:!1,private:!1,access:{has:e=>"qrPosition"in e,get:e=>e.qrPosition,set:(e,i)=>{e.qrPosition=i}},metadata:re},ne,oe),t(null,e={value:n},q,{kind:"class",name:n.name,metadata:re},null,S),n=e.value,re&&Object.defineProperty(n,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:re}),a(n,S)}handleStatusChange(e,i){e&&e!==i&&this.emitStatusChange({oldStatus:e,newStatus:i})}handleItemsChange(){this.emitItemChange({items:this.items,subtotal:this.getSubtotal(),tax:this.getTaxAmount(),total:this.getTotal()})}emitItemChange(e){return e}emitStatusChange(e){return e}getItemAmount(e){return void 0!==e.amount?e.amount:e.quantity*e.unitPrice}getSubtotal(){return this.items.reduce((e,i)=>e+this.getItemAmount(i),0)}getTaxAmount(){return(this.getSubtotal()-this.getDiscountAmount())*(this.taxRate/100)}getDiscountAmount(){return this.getSubtotal()*(this.discount/100)}getTotal(){const e=this.getSubtotal(),i=this.getDiscountAmount();return e-i+(e-i)*(this.taxRate/100)}formatCurrency(e){try{return new Intl.NumberFormat(void 0,{style:"currency",currency:this.currency}).format(e)}catch{return`${this.currency} ${e.toFixed(2)}`}}print(){window.print()}toJSON(){return{invoiceNumber:this.invoiceNumber,date:this.date,dueDate:this.dueDate,status:this.status,currency:this.currency,taxRate:this.taxRate,discount:this.discount,from:{...this.from},to:{...this.to},items:this.items.map(e=>({...e})),notes:this.notes,variant:this.variant,showQr:this.showQr,qrData:this.qrData,qrPosition:this.qrPosition,subtotal:this.getSubtotal(),tax:this.getTaxAmount(),discount_amount:this.getDiscountAmount(),total:this.getTotal()}}renderParty(e,t){return t.name||t.address||t.email||t.phone?i.html`
8
8
  <div class="invoice__party" part="party">
9
9
  <div class="invoice__party-label" part="party-label">${e}</div>
10
10
  <if ${t.name}>
@@ -150,5 +150,5 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
150
150
  <slot></slot>
151
151
  </div>
152
152
  </div>
153
- `}componentStyles(){return i.css`${":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%;--invoice-max-width:50rem;--invoice-padding:var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-bg:var(--snice-color-background, rgb(255 255 255));--invoice-text:var(--snice-color-text, rgb(23 23 23));--invoice-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--invoice-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--invoice-accent:var(--snice-color-primary, rgb(37 99 235));--invoice-border:var(--snice-color-border, rgb(226 226 226));--invoice-bg-element:var(--snice-color-background-element, rgb(252 251 249));--invoice-success:var(--snice-color-success, rgb(22 163 74));--invoice-danger:var(--snice-color-danger, rgb(220 38 38));--invoice-header-bg:transparent;--invoice-header-text:var(--invoice-text);--invoice-header-padding:0;--invoice-header-border:none;--invoice-table-header-bg:transparent;--invoice-table-header-text:var(--invoice-text-tertiary);--invoice-table-stripe-bg:var(--invoice-bg-element);--invoice-table-border:var(--invoice-border);--invoice-table-cell-padding:var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-xs, 0.5rem);--invoice-summary-width:16rem;--invoice-total-border:2px solid var(--invoice-border);--invoice-total-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-total-font-weight:var(--snice-font-weight-bold, 700);--invoice-status-draft-bg:rgb(229 231 235);--invoice-status-draft-text:rgb(55 65 81);--invoice-status-sent-bg:rgb(219 234 254);--invoice-status-sent-text:rgb(29 78 216);--invoice-status-paid-bg:rgb(220 252 231);--invoice-status-paid-text:rgb(21 128 61);--invoice-status-overdue-bg:rgb(254 226 226);--invoice-status-overdue-text:rgb(185 28 28);--invoice-status-cancelled-bg:rgb(243 244 246);--invoice-status-cancelled-text:rgb(107 114 128);--invoice-font-family:inherit;--invoice-title-font-size:var(--snice-font-size-2xl, 1.5rem);--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-label-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-body-font-size:var(--snice-font-size-md, 1rem);--invoice-notes-bg:var(--invoice-bg-element);--invoice-notes-border:none;--invoice-notes-padding:var(--snice-spacing-md, 1rem);--invoice-qr-size:6rem;--invoice-qr-border:1px dashed var(--invoice-border);--invoice-shadow:none;--invoice-border-width:1px;--invoice-border-color:var(--invoice-border);--invoice-border-radius:var(--snice-border-radius-lg, 0.5rem)}.invoice{background:var(--invoice-bg);border:var(--invoice-border-width) solid var(--invoice-border-color);border-radius:var(--invoice-border-radius);padding:var(--invoice-padding);color:var(--invoice-text);max-width:var(--invoice-max-width);font-family:var(--invoice-font-family);font-size:var(--invoice-body-font-size);box-shadow:var(--invoice-shadow);position:relative;line-height:var(--snice-line-height-normal, 1.5)}.invoice__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--invoice-section-gap);gap:var(--snice-spacing-lg,1.5rem);background:var(--invoice-header-bg);color:var(--invoice-header-text);padding:var(--invoice-header-padding);border-bottom:var(--invoice-header-border);position:relative}.invoice__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.invoice__title{font-size:var(--invoice-title-font-size);font-weight:var(--invoice-title-font-weight);color:inherit;margin:0;line-height:1.2}.invoice__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__meta{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);text-align:right}.invoice__meta-label{font-size:var(--invoice-label-font-size);color:var(--invoice-text-tertiary)}.invoice__meta-value{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-medium,500);color:var(--invoice-text)}.invoice__status{display:inline-flex;align-items:center;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em}.invoice__status--draft{background:var(--invoice-status-draft-bg);color:var(--invoice-status-draft-text)}.invoice__status--sent{background:var(--invoice-status-sent-bg);color:var(--invoice-status-sent-text)}.invoice__status--paid{background:var(--invoice-status-paid-bg);color:var(--invoice-status-paid-text)}.invoice__status--overdue{background:var(--invoice-status-overdue-bg);color:var(--invoice-status-overdue-text)}.invoice__status--cancelled{background:var(--invoice-status-cancelled-bg);color:var(--invoice-status-cancelled-text);text-decoration:line-through}.invoice__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--invoice-section-gap);margin-bottom:var(--invoice-section-gap)}.invoice__party-label{font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--snice-spacing-xs,.5rem)}.invoice__party-name{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__party-detail{font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line}.invoice__table{width:100%;border-collapse:collapse;margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__table thead{background:var(--invoice-table-header-bg)}.invoice__table th{text-align:left;font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-table-header-text);padding:var(--invoice-table-cell-padding);border-bottom:2px solid var(--invoice-table-border);text-transform:uppercase;letter-spacing:.05em}.invoice__table td:last-child,.invoice__table th:last-child{text-align:right}.invoice__table td.invoice__col-price,.invoice__table td.invoice__col-qty,.invoice__table th.invoice__col-price,.invoice__table th.invoice__col-qty{text-align:right;width:6.5rem}.invoice__table td{font-size:var(--invoice-body-font-size);color:var(--invoice-text);padding:var(--invoice-table-cell-padding);border-bottom:1px solid var(--invoice-table-border)}.invoice__table tbody tr:last-child td{border-bottom:2px solid var(--invoice-table-border)}.invoice__summary{display:flex;justify-content:flex-end;margin-bottom:var(--invoice-section-gap)}.invoice__summary-table{width:var(--invoice-summary-width)}.invoice__summary-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--invoice-body-font-size);color:var(--invoice-text-secondary)}.invoice__summary-row--discount{color:var(--invoice-success)}.invoice__summary-row--total{border-top:var(--invoice-total-border);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--invoice-total-font-size);font-weight:var(--invoice-total-font-weight);color:var(--invoice-text)}.invoice__notes{padding:var(--invoice-notes-padding);background:var(--invoice-notes-bg);border:var(--invoice-notes-border);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__notes-label{font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__qr{width:var(--invoice-qr-size);height:var(--invoice-qr-size);border:var(--invoice-qr-border);border-radius:var(--snice-border-radius-md,.25rem);display:flex;align-items:center;justify-content:center;overflow:hidden}.invoice__qr--top-right{position:absolute;top:0;right:0}.invoice__qr--bottom-right{position:absolute;bottom:var(--invoice-padding);right:var(--invoice-padding)}.invoice__qr--bottom-left{position:absolute;bottom:var(--invoice-padding);left:var(--invoice-padding)}.invoice__qr--footer{position:static;margin-top:var(--snice-spacing-md,1rem)}.invoice__qr-placeholder{font-size:var(--snice-font-size-sm, .875rem);color:var(--invoice-text-tertiary);text-align:center;padding:var(--snice-spacing-xs,.5rem)}.invoice__footer{margin-top:var(--snice-spacing-md,1rem)}:host([variant=modern]){--invoice-shadow:var(--snice-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1));--invoice-header-bg:var(--invoice-accent);--invoice-header-text:rgb(255 255 255);--invoice-header-padding:var(--snice-spacing-lg, 1.5rem);--invoice-border-width:0;--invoice-table-header-bg:var(--invoice-bg-element);--invoice-table-header-text:var(--invoice-text)}:host([variant=modern]) .invoice__header{border-radius:var(--snice-border-radius-md,.25rem);margin:calc(-1 * var(--invoice-padding));margin-bottom:var(--invoice-section-gap);padding:var(--snice-spacing-lg,1.5rem) var(--invoice-padding);border-bottom:none}:host([variant=modern]) .invoice__meta-label{color:rgb(255 255 255 / .7)}:host([variant=modern]) .invoice__meta-value{color:rgb(255 255 255)}:host([variant=modern]) .invoice__status{background:rgb(255 255 255 / .2);color:rgb(255 255 255);text-decoration:none}:host([variant=modern]) .invoice__parties{background:var(--invoice-bg-element);border-radius:var(--snice-border-radius-md,.25rem);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:var(--snice-font-weight-bold,700);border-bottom:3px solid var(--invoice-accent)}:host([variant=modern]) .invoice__summary-row--total{border-top:3px solid var(--invoice-accent);color:var(--invoice-accent)}:host([variant=modern]) .invoice__notes{border-left:3px solid var(--invoice-accent);border-radius:0;background:var(--invoice-bg-element)}:host([variant=classic]){--invoice-font-family:'Georgia','Times New Roman','Palatino Linotype',serif;--invoice-title-font-size:1.75rem;--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-border-radius:0;--invoice-border-width:2px;--invoice-border-color:var(--invoice-text);--invoice-header-border:2px solid var(--invoice-text);--invoice-header-padding:0 0 var(--snice-spacing-md, 1rem) 0}:host([variant=classic]) .invoice__status{border-radius:0;border:1px solid currentColor;background:0 0}:host([variant=classic]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=classic]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=classic]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=classic]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=classic]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=classic]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-style:italic;font-weight:var(--snice-font-weight-medium,500)}:host([variant=classic]) .invoice__table th{text-transform:none;letter-spacing:normal;font-style:italic;border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__table td{border-bottom:1px solid var(--invoice-border)}:host([variant=classic]) .invoice__table tbody tr:last-child td{border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__summary-row--total{border-top:2px double var(--invoice-text)}:host([variant=classic]) .invoice__notes{background:0 0;border-top:1px solid var(--invoice-border);border-radius:0;padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]){--invoice-border-width:0;--invoice-padding:var(--snice-spacing-xl, 2rem) var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-title-font-weight:300;--invoice-title-font-size:2rem;--invoice-table-border:transparent;--invoice-table-header-text:var(--invoice-text-secondary);--invoice-total-border:1px solid var(--invoice-border);--invoice-notes-bg:transparent;--invoice-notes-padding:0;--invoice-shadow:none}:host([variant=minimal]) .invoice__status{background:0 0;padding:0;font-weight:400;text-transform:none;letter-spacing:normal;font-size:var(--invoice-body-font-size)}:host([variant=minimal]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=minimal]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=minimal]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=minimal]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=minimal]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=minimal]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-weight:400}:host([variant=minimal]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:400;border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__table td{border-bottom:none;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .invoice__table tbody tr:last-child td{border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__notes{border-top:1px solid var(--invoice-border);padding-top:var(--snice-spacing-md,1rem)}:host([variant=detailed]){--invoice-padding:var(--snice-spacing-lg, 1.5rem);--invoice-section-gap:var(--snice-spacing-lg, 1.5rem);--invoice-body-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-label-font-size:0.75rem;--invoice-title-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-summary-width:20rem;--invoice-table-cell-padding:var(--snice-spacing-2xs, 0.25rem) var(--snice-spacing-xs, 0.5rem);--invoice-table-header-bg:var(--invoice-bg-element)}:host([variant=detailed]) .invoice__header{margin-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .invoice__table th{font-size:.6875rem}:host([variant=detailed]) .invoice__table tbody tr:nth-child(2n){background:var(--invoice-table-stripe-bg)}:host([variant=detailed]) .invoice__item-line-num{color:var(--invoice-text-tertiary);font-size:.75rem;min-width:1.5rem;text-align:center}:host([variant=detailed]) .invoice__item-tax{display:block;font-size:.75rem;color:var(--invoice-text-tertiary)}:host([variant=detailed]) .invoice__summary-row{font-size:var(--snice-font-size-sm, .875rem)}:host([variant=detailed]) .invoice__notes{font-size:.75rem}:host(:not([variant=detailed])) .invoice__item-line-num{display:none}:host(:not([variant=detailed])) .invoice__item-tax{display:none}:host(:not([variant=detailed])) .invoice__col-line{display:none}@media print{:host{--invoice-shadow:none;--invoice-border-width:0;--invoice-border-radius:0;--invoice-bg:white;--invoice-text:black;--invoice-text-secondary:rgb(60 60 60);--invoice-text-tertiary:rgb(100 100 100);--invoice-accent:black;--invoice-border:rgb(180 180 180)}.invoice{padding:0;border:none;box-shadow:none;border-radius:0;max-width:none}.invoice__header{background:0 0!important;color:#000!important;border-bottom:2px solid #000;padding:0 0 .5rem}:host([variant=modern]) .invoice__header{margin:0 0 1rem}:host([variant=modern]) .invoice__meta-label,:host([variant=modern]) .invoice__meta-value{color:#000!important}.invoice__parties{background:0 0!important;padding:0}.invoice__status{background:0 0!important;border:1px solid currentColor;color:#000!important;text-decoration:none}.invoice__status--cancelled{text-decoration:line-through}.invoice__table th{background:0 0!important;border-bottom:2px solid #000;color:#000}.invoice__table td{border-bottom:1px solid rgb(180 180 180)}.invoice__table tbody tr:last-child td{border-bottom:2px solid #000}.invoice__table tbody tr{background:0 0!important}.invoice__summary-row--total{border-top:2px solid #000;color:#000}.invoice__summary-row--discount{color:#000}.invoice__notes{background:0 0!important;border:1px solid rgb(180 180 180);border-left:3px solid #000}:host([variant=classic]) .invoice__notes,:host([variant=minimal]) .invoice__notes{border:none;border-top:1px solid rgb(180 180 180)}.invoice__header,.invoice__parties{break-inside:avoid}.invoice__table{break-inside:auto}.invoice__table thead{display:table-header-group}.invoice__notes,.invoice__summary,.invoice__table tr{break-inside:avoid}.invoice__qr{border:1px solid rgb(180 180 180);break-inside:avoid}.invoice__print-btn,.invoice__qr-placeholder{display:none}}"}`}constructor(){super(...arguments),this.invoiceNumber=(a(this,D),a(this,I,"")),this.date=(a(this,P),a(this,Q,"")),this.dueDate=(a(this,T),a(this,R,"")),this.status=(a(this,j),a(this,A,"draft")),this.currency=(a(this,N),a(this,O,"USD")),this.taxRate=(a(this,E),a(this,F,0)),this.discount=(a(this,B),a(this,U,0)),this.from=(a(this,H),a(this,L,{name:""})),this.to=(a(this,M),a(this,G,{name:""})),this.items=(a(this,J),a(this,K,[])),this.notes=(a(this,V),a(this,W,"")),this.variant=(a(this,X),a(this,Y,"standard")),this.showQr=(a(this,Z),a(this,ee,!1)),this.qrData=(a(this,ie),a(this,te,"")),this.qrPosition=(a(this,ae),a(this,ne,"bottom-right")),a(this,oe)}},n})();return e.SniceInvoice=n,e}({},Snice);
153
+ `}componentStyles(){return i.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);width:100%;--invoice-max-width:50rem;--invoice-padding:var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-bg:var(--snice-color-background, rgb(255 255 255));--invoice-text:var(--snice-color-text, rgb(23 23 23));--invoice-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--invoice-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--invoice-accent:var(--snice-color-primary, rgb(37 99 235));--invoice-border:var(--snice-color-border, rgb(226 226 226));--invoice-bg-element:var(--snice-color-background-element, rgb(252 251 249));--invoice-success:var(--snice-color-success, rgb(22 163 74));--invoice-danger:var(--snice-color-danger, rgb(220 38 38));--invoice-header-bg:transparent;--invoice-header-text:var(--invoice-text);--invoice-header-padding:0;--invoice-header-border:none;--invoice-table-header-bg:transparent;--invoice-table-header-text:var(--invoice-text-tertiary);--invoice-table-stripe-bg:var(--invoice-bg-element);--invoice-table-border:var(--invoice-border);--invoice-table-cell-padding:var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-xs, 0.5rem);--invoice-summary-width:16rem;--invoice-total-border:2px solid var(--invoice-border);--invoice-total-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-total-font-weight:var(--snice-font-weight-bold, 700);--invoice-status-draft-bg:rgb(229 231 235);--invoice-status-draft-text:rgb(55 65 81);--invoice-status-sent-bg:rgb(219 234 254);--invoice-status-sent-text:rgb(29 78 216);--invoice-status-paid-bg:rgb(220 252 231);--invoice-status-paid-text:rgb(21 128 61);--invoice-status-overdue-bg:rgb(254 226 226);--invoice-status-overdue-text:rgb(185 28 28);--invoice-status-cancelled-bg:rgb(243 244 246);--invoice-status-cancelled-text:rgb(107 114 128);--invoice-font-family:inherit;--invoice-title-font-size:var(--snice-font-size-2xl, 1.5rem);--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-label-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-body-font-size:var(--snice-font-size-md, 1rem);--invoice-notes-bg:var(--invoice-bg-element);--invoice-notes-border:none;--invoice-notes-padding:var(--snice-spacing-md, 1rem);--invoice-qr-size:6rem;--invoice-qr-border:1px dashed var(--invoice-border);--invoice-shadow:none;--invoice-border-width:1px;--invoice-border-color:var(--invoice-border);--invoice-border-radius:var(--snice-border-radius-lg, 0.5rem)}.invoice{background:var(--invoice-bg);border:var(--invoice-border-width) solid var(--invoice-border-color);border-radius:var(--invoice-border-radius);padding:var(--invoice-padding);color:var(--invoice-text);max-width:var(--invoice-max-width);font-family:var(--invoice-font-family);font-size:var(--invoice-body-font-size);box-shadow:var(--invoice-shadow);position:relative;line-height:var(--snice-line-height-normal, 1.5)}.invoice__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--invoice-section-gap);gap:var(--snice-spacing-lg,1.5rem);background:var(--invoice-header-bg);color:var(--invoice-header-text);padding:var(--invoice-header-padding);border-bottom:var(--invoice-header-border);position:relative}.invoice__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.invoice__title{font-size:var(--invoice-title-font-size);font-weight:var(--invoice-title-font-weight);color:inherit;margin:0;line-height:1.2}.invoice__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__meta{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);text-align:right}.invoice__meta-label{font-size:var(--invoice-label-font-size);color:var(--invoice-text-tertiary)}.invoice__meta-value{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-medium,500);color:var(--invoice-text)}.invoice__status{display:inline-flex;align-items:center;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em}.invoice__status--draft{background:var(--invoice-status-draft-bg);color:var(--invoice-status-draft-text)}.invoice__status--sent{background:var(--invoice-status-sent-bg);color:var(--invoice-status-sent-text)}.invoice__status--paid{background:var(--invoice-status-paid-bg);color:var(--invoice-status-paid-text)}.invoice__status--overdue{background:var(--invoice-status-overdue-bg);color:var(--invoice-status-overdue-text)}.invoice__status--cancelled{background:var(--invoice-status-cancelled-bg);color:var(--invoice-status-cancelled-text);text-decoration:line-through}.invoice__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--invoice-section-gap);margin-bottom:var(--invoice-section-gap)}.invoice__party-label{font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--snice-spacing-xs,.5rem)}.invoice__party-name{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__party-detail{font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line}.invoice__table{width:100%;border-collapse:collapse;margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__table thead{background:var(--invoice-table-header-bg)}.invoice__table th{text-align:left;font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-table-header-text);padding:var(--invoice-table-cell-padding);border-bottom:2px solid var(--invoice-table-border);text-transform:uppercase;letter-spacing:.05em}.invoice__table td:last-child,.invoice__table th:last-child{text-align:right}.invoice__table td.invoice__col-price,.invoice__table td.invoice__col-qty,.invoice__table th.invoice__col-price,.invoice__table th.invoice__col-qty{text-align:right;width:6.5rem}.invoice__table td{font-size:var(--invoice-body-font-size);color:var(--invoice-text);padding:var(--invoice-table-cell-padding);border-bottom:1px solid var(--invoice-table-border)}.invoice__table tbody tr:last-child td{border-bottom:2px solid var(--invoice-table-border)}.invoice__summary{display:flex;justify-content:flex-end;margin-bottom:var(--invoice-section-gap)}.invoice__summary-table{width:var(--invoice-summary-width)}.invoice__summary-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--invoice-body-font-size);color:var(--invoice-text-secondary)}.invoice__summary-row--discount{color:var(--invoice-success)}.invoice__summary-row--total{border-top:var(--invoice-total-border);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--invoice-total-font-size);font-weight:var(--invoice-total-font-weight);color:var(--invoice-text)}.invoice__notes{padding:var(--invoice-notes-padding);background:var(--invoice-notes-bg);border:var(--invoice-notes-border);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__notes-label{font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__qr{width:var(--invoice-qr-size);height:var(--invoice-qr-size);border:var(--invoice-qr-border);border-radius:var(--snice-border-radius-md,.25rem);display:flex;align-items:center;justify-content:center;overflow:hidden}.invoice__qr--top-right{position:absolute;top:0;right:0}.invoice__qr--bottom-right{position:absolute;bottom:var(--invoice-padding);right:var(--invoice-padding)}.invoice__qr--bottom-left{position:absolute;bottom:var(--invoice-padding);left:var(--invoice-padding)}.invoice__qr--footer{position:static;margin-top:var(--snice-spacing-md,1rem)}.invoice__qr-placeholder{font-size:var(--snice-font-size-sm, .875rem);color:var(--invoice-text-tertiary);text-align:center;padding:var(--snice-spacing-xs,.5rem)}.invoice__footer{margin-top:var(--snice-spacing-md,1rem)}:host([variant=modern]){--invoice-shadow:var(--snice-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1));--invoice-header-bg:var(--invoice-accent);--invoice-header-text:rgb(255 255 255);--invoice-header-padding:var(--snice-spacing-lg, 1.5rem);--invoice-border-width:0;--invoice-table-header-bg:var(--invoice-bg-element);--invoice-table-header-text:var(--invoice-text)}:host([variant=modern]) .invoice__header{border-radius:var(--snice-border-radius-md,.25rem);margin:calc(-1 * var(--invoice-padding));margin-bottom:var(--invoice-section-gap);padding:var(--snice-spacing-lg,1.5rem) var(--invoice-padding);border-bottom:none}:host([variant=modern]) .invoice__meta-label{color:rgb(255 255 255 / .7)}:host([variant=modern]) .invoice__meta-value{color:rgb(255 255 255)}:host([variant=modern]) .invoice__status{background:rgb(255 255 255 / .2);color:rgb(255 255 255);text-decoration:none}:host([variant=modern]) .invoice__parties{background:var(--invoice-bg-element);border-radius:var(--snice-border-radius-md,.25rem);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:var(--snice-font-weight-bold,700);border-bottom:3px solid var(--invoice-accent)}:host([variant=modern]) .invoice__summary-row--total{border-top:3px solid var(--invoice-accent);color:var(--invoice-accent)}:host([variant=modern]) .invoice__notes{border-left:3px solid var(--invoice-accent);border-radius:0;background:var(--invoice-bg-element)}:host([variant=classic]){--invoice-font-family:'Georgia','Times New Roman','Palatino Linotype',serif;--invoice-title-font-size:1.75rem;--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-border-radius:0;--invoice-border-width:2px;--invoice-border-color:var(--invoice-text);--invoice-header-border:2px solid var(--invoice-text);--invoice-header-padding:0 0 var(--snice-spacing-md, 1rem) 0}:host([variant=classic]) .invoice__status{border-radius:0;border:1px solid currentColor;background:0 0}:host([variant=classic]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=classic]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=classic]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=classic]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=classic]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=classic]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-style:italic;font-weight:var(--snice-font-weight-medium,500)}:host([variant=classic]) .invoice__table th{text-transform:none;letter-spacing:normal;font-style:italic;border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__table td{border-bottom:1px solid var(--invoice-border)}:host([variant=classic]) .invoice__table tbody tr:last-child td{border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__summary-row--total{border-top:2px double var(--invoice-text)}:host([variant=classic]) .invoice__notes{background:0 0;border-top:1px solid var(--invoice-border);border-radius:0;padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]){--invoice-border-width:0;--invoice-padding:var(--snice-spacing-xl, 2rem) var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-title-font-weight:300;--invoice-title-font-size:2rem;--invoice-table-border:transparent;--invoice-table-header-text:var(--invoice-text-secondary);--invoice-total-border:1px solid var(--invoice-border);--invoice-notes-bg:transparent;--invoice-notes-padding:0;--invoice-shadow:none}:host([variant=minimal]) .invoice__status{background:0 0;padding:0;font-weight:400;text-transform:none;letter-spacing:normal;font-size:var(--invoice-body-font-size)}:host([variant=minimal]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=minimal]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=minimal]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=minimal]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=minimal]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=minimal]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-weight:400}:host([variant=minimal]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:400;border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__table td{border-bottom:none;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .invoice__table tbody tr:last-child td{border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__notes{border-top:1px solid var(--invoice-border);padding-top:var(--snice-spacing-md,1rem)}:host([variant=detailed]){--invoice-padding:var(--snice-spacing-lg, 1.5rem);--invoice-section-gap:var(--snice-spacing-lg, 1.5rem);--invoice-body-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-label-font-size:0.75rem;--invoice-title-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-summary-width:20rem;--invoice-table-cell-padding:var(--snice-spacing-2xs, 0.25rem) var(--snice-spacing-xs, 0.5rem);--invoice-table-header-bg:var(--invoice-bg-element)}:host([variant=detailed]) .invoice__header{margin-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .invoice__table th{font-size:.6875rem}:host([variant=detailed]) .invoice__table tbody tr:nth-child(2n){background:var(--invoice-table-stripe-bg)}:host([variant=detailed]) .invoice__item-line-num{color:var(--invoice-text-tertiary);font-size:.75rem;min-width:1.5rem;text-align:center}:host([variant=detailed]) .invoice__item-tax{display:block;font-size:.75rem;color:var(--invoice-text-tertiary)}:host([variant=detailed]) .invoice__summary-row{font-size:var(--snice-font-size-sm, .875rem)}:host([variant=detailed]) .invoice__notes{font-size:.75rem}:host(:not([variant=detailed])) .invoice__item-line-num{display:none}:host(:not([variant=detailed])) .invoice__item-tax{display:none}:host(:not([variant=detailed])) .invoice__col-line{display:none}@media print{:host{--invoice-shadow:none;--invoice-border-width:0;--invoice-border-radius:0;--invoice-bg:white;--invoice-text:black;--invoice-text-secondary:rgb(60 60 60);--invoice-text-tertiary:rgb(100 100 100);--invoice-accent:black;--invoice-border:rgb(180 180 180)}.invoice{padding:0;border:none;box-shadow:none;border-radius:0;max-width:none}.invoice__header{background:0 0!important;color:#000!important;border-bottom:2px solid #000;padding:0 0 .5rem}:host([variant=modern]) .invoice__header{margin:0 0 1rem}:host([variant=modern]) .invoice__meta-label,:host([variant=modern]) .invoice__meta-value{color:#000!important}.invoice__parties{background:0 0!important;padding:0}.invoice__status{background:0 0!important;border:1px solid currentColor;color:#000!important;text-decoration:none}.invoice__status--cancelled{text-decoration:line-through}.invoice__table th{background:0 0!important;border-bottom:2px solid #000;color:#000}.invoice__table td{border-bottom:1px solid rgb(180 180 180)}.invoice__table tbody tr:last-child td{border-bottom:2px solid #000}.invoice__table tbody tr{background:0 0!important}.invoice__summary-row--total{border-top:2px solid #000;color:#000}.invoice__summary-row--discount{color:#000}.invoice__notes{background:0 0!important;border:1px solid rgb(180 180 180);border-left:3px solid #000}:host([variant=classic]) .invoice__notes,:host([variant=minimal]) .invoice__notes{border:none;border-top:1px solid rgb(180 180 180)}.invoice__header,.invoice__parties{break-inside:avoid}.invoice__table{break-inside:auto}.invoice__table thead{display:table-header-group}.invoice__notes,.invoice__summary,.invoice__table tr{break-inside:avoid}.invoice__qr{border:1px solid rgb(180 180 180);break-inside:avoid}.invoice__print-btn,.invoice__qr-placeholder{display:none}}"}`}constructor(){super(...arguments),this.invoiceNumber=(a(this,D),a(this,I,"")),this.date=(a(this,P),a(this,Q,"")),this.dueDate=(a(this,T),a(this,R,"")),this.status=(a(this,j),a(this,A,"draft")),this.currency=(a(this,N),a(this,O,"USD")),this.taxRate=(a(this,E),a(this,F,0)),this.discount=(a(this,B),a(this,U,0)),this.from=(a(this,H),a(this,L,{name:""})),this.to=(a(this,M),a(this,G,{name:""})),this.items=(a(this,J),a(this,K,[])),this.notes=(a(this,V),a(this,W,"")),this.variant=(a(this,X),a(this,Y,"standard")),this.showQr=(a(this,Z),a(this,ee,!1)),this.qrData=(a(this,ie),a(this,te,"")),this.qrPosition=(a(this,ae),a(this,ne,"bottom-right")),a(this,oe)}},n})();return e.SniceInvoice=n,e}({},Snice);
154
154
  //# sourceMappingURL=snice-invoice.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snice-invoice.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/invoice/snice-invoice.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, watch, dispatch, render, styles, html, css } from 'snice';\n\nvar cssContent = \":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%;--invoice-max-width:50rem;--invoice-padding:var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-bg:var(--snice-color-background, rgb(255 255 255));--invoice-text:var(--snice-color-text, rgb(23 23 23));--invoice-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--invoice-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--invoice-accent:var(--snice-color-primary, rgb(37 99 235));--invoice-border:var(--snice-color-border, rgb(226 226 226));--invoice-bg-element:var(--snice-color-background-element, rgb(252 251 249));--invoice-success:var(--snice-color-success, rgb(22 163 74));--invoice-danger:var(--snice-color-danger, rgb(220 38 38));--invoice-header-bg:transparent;--invoice-header-text:var(--invoice-text);--invoice-header-padding:0;--invoice-header-border:none;--invoice-table-header-bg:transparent;--invoice-table-header-text:var(--invoice-text-tertiary);--invoice-table-stripe-bg:var(--invoice-bg-element);--invoice-table-border:var(--invoice-border);--invoice-table-cell-padding:var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-xs, 0.5rem);--invoice-summary-width:16rem;--invoice-total-border:2px solid var(--invoice-border);--invoice-total-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-total-font-weight:var(--snice-font-weight-bold, 700);--invoice-status-draft-bg:rgb(229 231 235);--invoice-status-draft-text:rgb(55 65 81);--invoice-status-sent-bg:rgb(219 234 254);--invoice-status-sent-text:rgb(29 78 216);--invoice-status-paid-bg:rgb(220 252 231);--invoice-status-paid-text:rgb(21 128 61);--invoice-status-overdue-bg:rgb(254 226 226);--invoice-status-overdue-text:rgb(185 28 28);--invoice-status-cancelled-bg:rgb(243 244 246);--invoice-status-cancelled-text:rgb(107 114 128);--invoice-font-family:inherit;--invoice-title-font-size:var(--snice-font-size-2xl, 1.5rem);--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-label-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-body-font-size:var(--snice-font-size-md, 1rem);--invoice-notes-bg:var(--invoice-bg-element);--invoice-notes-border:none;--invoice-notes-padding:var(--snice-spacing-md, 1rem);--invoice-qr-size:6rem;--invoice-qr-border:1px dashed var(--invoice-border);--invoice-shadow:none;--invoice-border-width:1px;--invoice-border-color:var(--invoice-border);--invoice-border-radius:var(--snice-border-radius-lg, 0.5rem)}.invoice{background:var(--invoice-bg);border:var(--invoice-border-width) solid var(--invoice-border-color);border-radius:var(--invoice-border-radius);padding:var(--invoice-padding);color:var(--invoice-text);max-width:var(--invoice-max-width);font-family:var(--invoice-font-family);font-size:var(--invoice-body-font-size);box-shadow:var(--invoice-shadow);position:relative;line-height:var(--snice-line-height-normal, 1.5)}.invoice__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--invoice-section-gap);gap:var(--snice-spacing-lg,1.5rem);background:var(--invoice-header-bg);color:var(--invoice-header-text);padding:var(--invoice-header-padding);border-bottom:var(--invoice-header-border);position:relative}.invoice__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.invoice__title{font-size:var(--invoice-title-font-size);font-weight:var(--invoice-title-font-weight);color:inherit;margin:0;line-height:1.2}.invoice__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__meta{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);text-align:right}.invoice__meta-label{font-size:var(--invoice-label-font-size);color:var(--invoice-text-tertiary)}.invoice__meta-value{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-medium,500);color:var(--invoice-text)}.invoice__status{display:inline-flex;align-items:center;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em}.invoice__status--draft{background:var(--invoice-status-draft-bg);color:var(--invoice-status-draft-text)}.invoice__status--sent{background:var(--invoice-status-sent-bg);color:var(--invoice-status-sent-text)}.invoice__status--paid{background:var(--invoice-status-paid-bg);color:var(--invoice-status-paid-text)}.invoice__status--overdue{background:var(--invoice-status-overdue-bg);color:var(--invoice-status-overdue-text)}.invoice__status--cancelled{background:var(--invoice-status-cancelled-bg);color:var(--invoice-status-cancelled-text);text-decoration:line-through}.invoice__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--invoice-section-gap);margin-bottom:var(--invoice-section-gap)}.invoice__party-label{font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--snice-spacing-xs,.5rem)}.invoice__party-name{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__party-detail{font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line}.invoice__table{width:100%;border-collapse:collapse;margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__table thead{background:var(--invoice-table-header-bg)}.invoice__table th{text-align:left;font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-table-header-text);padding:var(--invoice-table-cell-padding);border-bottom:2px solid var(--invoice-table-border);text-transform:uppercase;letter-spacing:.05em}.invoice__table td:last-child,.invoice__table th:last-child{text-align:right}.invoice__table td.invoice__col-price,.invoice__table td.invoice__col-qty,.invoice__table th.invoice__col-price,.invoice__table th.invoice__col-qty{text-align:right;width:6.5rem}.invoice__table td{font-size:var(--invoice-body-font-size);color:var(--invoice-text);padding:var(--invoice-table-cell-padding);border-bottom:1px solid var(--invoice-table-border)}.invoice__table tbody tr:last-child td{border-bottom:2px solid var(--invoice-table-border)}.invoice__summary{display:flex;justify-content:flex-end;margin-bottom:var(--invoice-section-gap)}.invoice__summary-table{width:var(--invoice-summary-width)}.invoice__summary-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--invoice-body-font-size);color:var(--invoice-text-secondary)}.invoice__summary-row--discount{color:var(--invoice-success)}.invoice__summary-row--total{border-top:var(--invoice-total-border);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--invoice-total-font-size);font-weight:var(--invoice-total-font-weight);color:var(--invoice-text)}.invoice__notes{padding:var(--invoice-notes-padding);background:var(--invoice-notes-bg);border:var(--invoice-notes-border);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__notes-label{font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__qr{width:var(--invoice-qr-size);height:var(--invoice-qr-size);border:var(--invoice-qr-border);border-radius:var(--snice-border-radius-md,.25rem);display:flex;align-items:center;justify-content:center;overflow:hidden}.invoice__qr--top-right{position:absolute;top:0;right:0}.invoice__qr--bottom-right{position:absolute;bottom:var(--invoice-padding);right:var(--invoice-padding)}.invoice__qr--bottom-left{position:absolute;bottom:var(--invoice-padding);left:var(--invoice-padding)}.invoice__qr--footer{position:static;margin-top:var(--snice-spacing-md,1rem)}.invoice__qr-placeholder{font-size:var(--snice-font-size-sm, .875rem);color:var(--invoice-text-tertiary);text-align:center;padding:var(--snice-spacing-xs,.5rem)}.invoice__footer{margin-top:var(--snice-spacing-md,1rem)}:host([variant=modern]){--invoice-shadow:var(--snice-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1));--invoice-header-bg:var(--invoice-accent);--invoice-header-text:rgb(255 255 255);--invoice-header-padding:var(--snice-spacing-lg, 1.5rem);--invoice-border-width:0;--invoice-table-header-bg:var(--invoice-bg-element);--invoice-table-header-text:var(--invoice-text)}:host([variant=modern]) .invoice__header{border-radius:var(--snice-border-radius-md,.25rem);margin:calc(-1 * var(--invoice-padding));margin-bottom:var(--invoice-section-gap);padding:var(--snice-spacing-lg,1.5rem) var(--invoice-padding);border-bottom:none}:host([variant=modern]) .invoice__meta-label{color:rgb(255 255 255 / .7)}:host([variant=modern]) .invoice__meta-value{color:rgb(255 255 255)}:host([variant=modern]) .invoice__status{background:rgb(255 255 255 / .2);color:rgb(255 255 255);text-decoration:none}:host([variant=modern]) .invoice__parties{background:var(--invoice-bg-element);border-radius:var(--snice-border-radius-md,.25rem);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:var(--snice-font-weight-bold,700);border-bottom:3px solid var(--invoice-accent)}:host([variant=modern]) .invoice__summary-row--total{border-top:3px solid var(--invoice-accent);color:var(--invoice-accent)}:host([variant=modern]) .invoice__notes{border-left:3px solid var(--invoice-accent);border-radius:0;background:var(--invoice-bg-element)}:host([variant=classic]){--invoice-font-family:'Georgia','Times New Roman','Palatino Linotype',serif;--invoice-title-font-size:1.75rem;--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-border-radius:0;--invoice-border-width:2px;--invoice-border-color:var(--invoice-text);--invoice-header-border:2px solid var(--invoice-text);--invoice-header-padding:0 0 var(--snice-spacing-md, 1rem) 0}:host([variant=classic]) .invoice__status{border-radius:0;border:1px solid currentColor;background:0 0}:host([variant=classic]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=classic]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=classic]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=classic]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=classic]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=classic]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-style:italic;font-weight:var(--snice-font-weight-medium,500)}:host([variant=classic]) .invoice__table th{text-transform:none;letter-spacing:normal;font-style:italic;border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__table td{border-bottom:1px solid var(--invoice-border)}:host([variant=classic]) .invoice__table tbody tr:last-child td{border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__summary-row--total{border-top:2px double var(--invoice-text)}:host([variant=classic]) .invoice__notes{background:0 0;border-top:1px solid var(--invoice-border);border-radius:0;padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]){--invoice-border-width:0;--invoice-padding:var(--snice-spacing-xl, 2rem) var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-title-font-weight:300;--invoice-title-font-size:2rem;--invoice-table-border:transparent;--invoice-table-header-text:var(--invoice-text-secondary);--invoice-total-border:1px solid var(--invoice-border);--invoice-notes-bg:transparent;--invoice-notes-padding:0;--invoice-shadow:none}:host([variant=minimal]) .invoice__status{background:0 0;padding:0;font-weight:400;text-transform:none;letter-spacing:normal;font-size:var(--invoice-body-font-size)}:host([variant=minimal]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=minimal]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=minimal]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=minimal]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=minimal]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=minimal]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-weight:400}:host([variant=minimal]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:400;border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__table td{border-bottom:none;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .invoice__table tbody tr:last-child td{border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__notes{border-top:1px solid var(--invoice-border);padding-top:var(--snice-spacing-md,1rem)}:host([variant=detailed]){--invoice-padding:var(--snice-spacing-lg, 1.5rem);--invoice-section-gap:var(--snice-spacing-lg, 1.5rem);--invoice-body-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-label-font-size:0.75rem;--invoice-title-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-summary-width:20rem;--invoice-table-cell-padding:var(--snice-spacing-2xs, 0.25rem) var(--snice-spacing-xs, 0.5rem);--invoice-table-header-bg:var(--invoice-bg-element)}:host([variant=detailed]) .invoice__header{margin-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .invoice__table th{font-size:.6875rem}:host([variant=detailed]) .invoice__table tbody tr:nth-child(2n){background:var(--invoice-table-stripe-bg)}:host([variant=detailed]) .invoice__item-line-num{color:var(--invoice-text-tertiary);font-size:.75rem;min-width:1.5rem;text-align:center}:host([variant=detailed]) .invoice__item-tax{display:block;font-size:.75rem;color:var(--invoice-text-tertiary)}:host([variant=detailed]) .invoice__summary-row{font-size:var(--snice-font-size-sm, .875rem)}:host([variant=detailed]) .invoice__notes{font-size:.75rem}:host(:not([variant=detailed])) .invoice__item-line-num{display:none}:host(:not([variant=detailed])) .invoice__item-tax{display:none}:host(:not([variant=detailed])) .invoice__col-line{display:none}@media print{:host{--invoice-shadow:none;--invoice-border-width:0;--invoice-border-radius:0;--invoice-bg:white;--invoice-text:black;--invoice-text-secondary:rgb(60 60 60);--invoice-text-tertiary:rgb(100 100 100);--invoice-accent:black;--invoice-border:rgb(180 180 180)}.invoice{padding:0;border:none;box-shadow:none;border-radius:0;max-width:none}.invoice__header{background:0 0!important;color:#000!important;border-bottom:2px solid #000;padding:0 0 .5rem}:host([variant=modern]) .invoice__header{margin:0 0 1rem}:host([variant=modern]) .invoice__meta-label,:host([variant=modern]) .invoice__meta-value{color:#000!important}.invoice__parties{background:0 0!important;padding:0}.invoice__status{background:0 0!important;border:1px solid currentColor;color:#000!important;text-decoration:none}.invoice__status--cancelled{text-decoration:line-through}.invoice__table th{background:0 0!important;border-bottom:2px solid #000;color:#000}.invoice__table td{border-bottom:1px solid rgb(180 180 180)}.invoice__table tbody tr:last-child td{border-bottom:2px solid #000}.invoice__table tbody tr{background:0 0!important}.invoice__summary-row--total{border-top:2px solid #000;color:#000}.invoice__summary-row--discount{color:#000}.invoice__notes{background:0 0!important;border:1px solid rgb(180 180 180);border-left:3px solid #000}:host([variant=classic]) .invoice__notes,:host([variant=minimal]) .invoice__notes{border:none;border-top:1px solid rgb(180 180 180)}.invoice__header,.invoice__parties{break-inside:avoid}.invoice__table{break-inside:auto}.invoice__table thead{display:table-header-group}.invoice__notes,.invoice__summary,.invoice__table tr{break-inside:avoid}.invoice__qr{border:1px solid rgb(180 180 180);break-inside:avoid}.invoice__print-btn,.invoice__qr-placeholder{display:none}}\";\n\nlet SniceInvoice = (() => {\n let _classDecorators = [element('snice-invoice')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _invoiceNumber_decorators;\n let _invoiceNumber_initializers = [];\n let _invoiceNumber_extraInitializers = [];\n let _date_decorators;\n let _date_initializers = [];\n let _date_extraInitializers = [];\n let _dueDate_decorators;\n let _dueDate_initializers = [];\n let _dueDate_extraInitializers = [];\n let _status_decorators;\n let _status_initializers = [];\n let _status_extraInitializers = [];\n let _currency_decorators;\n let _currency_initializers = [];\n let _currency_extraInitializers = [];\n let _taxRate_decorators;\n let _taxRate_initializers = [];\n let _taxRate_extraInitializers = [];\n let _discount_decorators;\n let _discount_initializers = [];\n let _discount_extraInitializers = [];\n let _from_decorators;\n let _from_initializers = [];\n let _from_extraInitializers = [];\n let _to_decorators;\n let _to_initializers = [];\n let _to_extraInitializers = [];\n let _items_decorators;\n let _items_initializers = [];\n let _items_extraInitializers = [];\n let _notes_decorators;\n let _notes_initializers = [];\n let _notes_extraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _showQr_decorators;\n let _showQr_initializers = [];\n let _showQr_extraInitializers = [];\n let _qrData_decorators;\n let _qrData_initializers = [];\n let _qrData_extraInitializers = [];\n let _qrPosition_decorators;\n let _qrPosition_initializers = [];\n let _qrPosition_extraInitializers = [];\n let _handleStatusChange_decorators;\n let _handleItemsChange_decorators;\n let _emitItemChange_decorators;\n let _emitStatusChange_decorators;\n let _renderContent_decorators;\n let _componentStyles_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 _invoiceNumber_decorators = [property()];\n _date_decorators = [property()];\n _dueDate_decorators = [property()];\n _status_decorators = [property()];\n _currency_decorators = [property()];\n _taxRate_decorators = [property({ type: Number })];\n _discount_decorators = [property({ type: Number })];\n _from_decorators = [property({ type: Object, attribute: false })];\n _to_decorators = [property({ type: Object, attribute: false })];\n _items_decorators = [property({ type: Array, attribute: false })];\n _notes_decorators = [property()];\n _variant_decorators = [property()];\n _showQr_decorators = [property({ type: Boolean })];\n _qrData_decorators = [property()];\n _qrPosition_decorators = [property()];\n _handleStatusChange_decorators = [watch('status')];\n _handleItemsChange_decorators = [watch('items')];\n _emitItemChange_decorators = [dispatch('invoice-item-change', { bubbles: true, composed: true })];\n _emitStatusChange_decorators = [dispatch('invoice-status-change', { bubbles: true, composed: true })];\n _renderContent_decorators = [render()];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _handleStatusChange_decorators, { kind: \"method\", name: \"handleStatusChange\", static: false, private: false, access: { has: obj => \"handleStatusChange\" in obj, get: obj => obj.handleStatusChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleItemsChange_decorators, { kind: \"method\", name: \"handleItemsChange\", static: false, private: false, access: { has: obj => \"handleItemsChange\" in obj, get: obj => obj.handleItemsChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitItemChange_decorators, { kind: \"method\", name: \"emitItemChange\", static: false, private: false, access: { has: obj => \"emitItemChange\" in obj, get: obj => obj.emitItemChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitStatusChange_decorators, { kind: \"method\", name: \"emitStatusChange\", static: false, private: false, access: { has: obj => \"emitStatusChange\" in obj, get: obj => obj.emitStatusChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);\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(null, null, _invoiceNumber_decorators, { kind: \"field\", name: \"invoiceNumber\", static: false, private: false, access: { has: obj => \"invoiceNumber\" in obj, get: obj => obj.invoiceNumber, set: (obj, value) => { obj.invoiceNumber = value; } }, metadata: _metadata }, _invoiceNumber_initializers, _invoiceNumber_extraInitializers);\n __esDecorate(null, null, _date_decorators, { kind: \"field\", name: \"date\", static: false, private: false, access: { has: obj => \"date\" in obj, get: obj => obj.date, set: (obj, value) => { obj.date = value; } }, metadata: _metadata }, _date_initializers, _date_extraInitializers);\n __esDecorate(null, null, _dueDate_decorators, { kind: \"field\", name: \"dueDate\", static: false, private: false, access: { has: obj => \"dueDate\" in obj, get: obj => obj.dueDate, set: (obj, value) => { obj.dueDate = value; } }, metadata: _metadata }, _dueDate_initializers, _dueDate_extraInitializers);\n __esDecorate(null, null, _status_decorators, { kind: \"field\", name: \"status\", static: false, private: false, access: { has: obj => \"status\" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);\n __esDecorate(null, null, _currency_decorators, { kind: \"field\", name: \"currency\", static: false, private: false, access: { has: obj => \"currency\" in obj, get: obj => obj.currency, set: (obj, value) => { obj.currency = value; } }, metadata: _metadata }, _currency_initializers, _currency_extraInitializers);\n __esDecorate(null, null, _taxRate_decorators, { kind: \"field\", name: \"taxRate\", static: false, private: false, access: { has: obj => \"taxRate\" in obj, get: obj => obj.taxRate, set: (obj, value) => { obj.taxRate = value; } }, metadata: _metadata }, _taxRate_initializers, _taxRate_extraInitializers);\n __esDecorate(null, null, _discount_decorators, { kind: \"field\", name: \"discount\", static: false, private: false, access: { has: obj => \"discount\" in obj, get: obj => obj.discount, set: (obj, value) => { obj.discount = value; } }, metadata: _metadata }, _discount_initializers, _discount_extraInitializers);\n __esDecorate(null, null, _from_decorators, { kind: \"field\", name: \"from\", static: false, private: false, access: { has: obj => \"from\" in obj, get: obj => obj.from, set: (obj, value) => { obj.from = value; } }, metadata: _metadata }, _from_initializers, _from_extraInitializers);\n __esDecorate(null, null, _to_decorators, { kind: \"field\", name: \"to\", static: false, private: false, access: { has: obj => \"to\" in obj, get: obj => obj.to, set: (obj, value) => { obj.to = value; } }, metadata: _metadata }, _to_initializers, _to_extraInitializers);\n __esDecorate(null, null, _items_decorators, { kind: \"field\", name: \"items\", static: false, private: false, access: { has: obj => \"items\" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);\n __esDecorate(null, null, _notes_decorators, { kind: \"field\", name: \"notes\", static: false, private: false, access: { has: obj => \"notes\" in obj, get: obj => obj.notes, set: (obj, value) => { obj.notes = value; } }, metadata: _metadata }, _notes_initializers, _notes_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, _showQr_decorators, { kind: \"field\", name: \"showQr\", static: false, private: false, access: { has: obj => \"showQr\" in obj, get: obj => obj.showQr, set: (obj, value) => { obj.showQr = value; } }, metadata: _metadata }, _showQr_initializers, _showQr_extraInitializers);\n __esDecorate(null, null, _qrData_decorators, { kind: \"field\", name: \"qrData\", static: false, private: false, access: { has: obj => \"qrData\" in obj, get: obj => obj.qrData, set: (obj, value) => { obj.qrData = value; } }, metadata: _metadata }, _qrData_initializers, _qrData_extraInitializers);\n __esDecorate(null, null, _qrPosition_decorators, { kind: \"field\", name: \"qrPosition\", static: false, private: false, access: { has: obj => \"qrPosition\" in obj, get: obj => obj.qrPosition, set: (obj, value) => { obj.qrPosition = value; } }, metadata: _metadata }, _qrPosition_initializers, _qrPosition_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 handleStatusChange(oldVal, newVal) {\n if (oldVal && oldVal !== newVal) {\n this.emitStatusChange({ oldStatus: oldVal, newStatus: newVal });\n }\n }\n handleItemsChange() {\n this.emitItemChange({\n items: this.items,\n subtotal: this.getSubtotal(),\n tax: this.getTaxAmount(),\n total: this.getTotal()\n });\n }\n emitItemChange(detail) {\n return detail;\n }\n emitStatusChange(detail) {\n return detail;\n }\n getItemAmount(item) {\n if (item.amount !== undefined)\n return item.amount;\n return item.quantity * item.unitPrice;\n }\n getSubtotal() {\n return this.items.reduce((sum, item) => sum + this.getItemAmount(item), 0);\n }\n getTaxAmount() {\n const subtotal = this.getSubtotal();\n const afterDiscount = subtotal - this.getDiscountAmount();\n return afterDiscount * (this.taxRate / 100);\n }\n getDiscountAmount() {\n return this.getSubtotal() * (this.discount / 100);\n }\n getTotal() {\n const subtotal = this.getSubtotal();\n const discountAmt = this.getDiscountAmount();\n const taxAmt = (subtotal - discountAmt) * (this.taxRate / 100);\n return subtotal - discountAmt + taxAmt;\n }\n formatCurrency(amount) {\n try {\n return new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: this.currency\n }).format(amount);\n }\n catch {\n return `${this.currency} ${amount.toFixed(2)}`;\n }\n }\n print() {\n window.print();\n }\n toJSON() {\n return {\n invoiceNumber: this.invoiceNumber,\n date: this.date,\n dueDate: this.dueDate,\n status: this.status,\n currency: this.currency,\n taxRate: this.taxRate,\n discount: this.discount,\n from: { ...this.from },\n to: { ...this.to },\n items: this.items.map(i => ({ ...i })),\n notes: this.notes,\n variant: this.variant,\n showQr: this.showQr,\n qrData: this.qrData,\n qrPosition: this.qrPosition,\n subtotal: this.getSubtotal(),\n tax: this.getTaxAmount(),\n discount_amount: this.getDiscountAmount(),\n total: this.getTotal()\n };\n }\n renderParty(label, party) {\n const hasContent = party.name || party.address || party.email || party.phone;\n if (!hasContent)\n return html ``;\n return html /*html*/ `\n <div class=\"invoice__party\" part=\"party\">\n <div class=\"invoice__party-label\" part=\"party-label\">${label}</div>\n <if ${party.name}>\n <div class=\"invoice__party-name\" part=\"party-name\">${party.name}</div>\n </if>\n <if ${party.address}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.address}</div>\n </if>\n <if ${party.email}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.email}</div>\n </if>\n <if ${party.phone}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.phone}</div>\n </if>\n </div>\n `;\n }\n renderItemRow(item, index) {\n const amount = this.getItemAmount(item);\n const hasItemTax = item.tax !== undefined;\n return html /*html*/ `\n <tr part=\"table-row\">\n <td class=\"invoice__col-line\" part=\"table-cell\">\n <span class=\"invoice__item-line-num\">${index + 1}</span>\n </td>\n <td part=\"table-cell\">\n ${item.description}\n <if ${hasItemTax}>\n <span class=\"invoice__item-tax\">Tax: ${item.tax}%</span>\n </if>\n </td>\n <td class=\"invoice__col-qty\" part=\"table-cell\">${item.quantity}</td>\n <td class=\"invoice__col-price\" part=\"table-cell\">${this.formatCurrency(item.unitPrice)}</td>\n <td part=\"table-cell\">${this.formatCurrency(amount)}</td>\n </tr>\n `;\n }\n renderQr(position) {\n if (!this.showQr)\n return html ``;\n return html /*html*/ `\n <div class=\"invoice__qr invoice__qr--${position}\" part=\"qr-container\">\n <div part=\"qr\">\n <slot name=\"qr\">\n <div class=\"invoice__qr-placeholder\">QR</div>\n </slot>\n </div>\n </div>\n `;\n }\n renderContent() {\n const subtotal = this.getSubtotal();\n const discountAmt = this.getDiscountAmount();\n const taxAmt = this.getTaxAmount();\n const total = this.getTotal();\n const hasDiscount = this.discount > 0;\n const hasTax = this.taxRate > 0;\n const hasFrom = this.from.name || this.from.address;\n const hasTo = this.to.name || this.to.address;\n const hasParties = hasFrom || hasTo;\n const isDetailed = this.variant === 'detailed';\n const isQrTopRight = this.showQr && this.qrPosition === 'top-right';\n const isQrBottomRight = this.showQr && this.qrPosition === 'bottom-right';\n const isQrBottomLeft = this.showQr && this.qrPosition === 'bottom-left';\n const isQrFooter = this.showQr && this.qrPosition === 'footer';\n return html /*html*/ `\n <div class=\"invoice\" part=\"base\">\n <div class=\"invoice__header\" part=\"header\">\n <div class=\"invoice__header-left\">\n <if ${this.from.logo}>\n <img class=\"invoice__logo\" src=\"${this.from.logo}\" alt=\"${this.from.name}\" part=\"logo\" />\n </if>\n <h2 class=\"invoice__title\" part=\"title\">Invoice</h2>\n <span class=\"invoice__status invoice__status--${this.status}\" part=\"status\">${this.status}</span>\n </div>\n <div class=\"invoice__meta\" part=\"meta\">\n <if ${this.invoiceNumber}>\n <div>\n <span class=\"invoice__meta-label\">Invoice # </span>\n <span class=\"invoice__meta-value\">${this.invoiceNumber}</span>\n </div>\n </if>\n <if ${this.date}>\n <div>\n <span class=\"invoice__meta-label\">Date: </span>\n <span class=\"invoice__meta-value\">${this.date}</span>\n </div>\n </if>\n <if ${this.dueDate}>\n <div>\n <span class=\"invoice__meta-label\">Due Date: </span>\n <span class=\"invoice__meta-value\">${this.dueDate}</span>\n </div>\n </if>\n </div>\n <if ${isQrTopRight}>\n ${this.renderQr('top-right')}\n </if>\n </div>\n\n <if ${hasParties}>\n <div class=\"invoice__parties\" part=\"parties\">\n ${this.renderParty('From', this.from)}\n ${this.renderParty('Bill To', this.to)}\n </div>\n </if>\n\n <if ${this.items.length > 0}>\n <table class=\"invoice__table\" part=\"table\">\n <thead part=\"table-header\">\n <tr>\n <if ${isDetailed}>\n <th class=\"invoice__col-line\">#</th>\n </if>\n <th>Description</th>\n <th class=\"invoice__col-qty\">Qty</th>\n <th class=\"invoice__col-price\">Unit Price</th>\n <th>Amount</th>\n </tr>\n </thead>\n <tbody>\n ${this.items.map((item, i) => this.renderItemRow(item, i))}\n </tbody>\n </table>\n </if>\n\n <div class=\"invoice__summary\" part=\"summary\">\n <div class=\"invoice__summary-table\">\n <div class=\"invoice__summary-row\" part=\"summary-row\">\n <span part=\"summary-label\">Subtotal</span>\n <span part=\"summary-value\">${this.formatCurrency(subtotal)}</span>\n </div>\n <if ${hasDiscount}>\n <div class=\"invoice__summary-row invoice__summary-row--discount\" part=\"discount-row\">\n <span part=\"summary-label\">Discount (${this.discount}%)</span>\n <span part=\"summary-value\">-${this.formatCurrency(discountAmt)}</span>\n </div>\n </if>\n <if ${hasTax}>\n <div class=\"invoice__summary-row\" part=\"tax-row\">\n <span part=\"summary-label\">Tax (${this.taxRate}%)</span>\n <span part=\"summary-value\">${this.formatCurrency(taxAmt)}</span>\n </div>\n </if>\n <div class=\"invoice__summary-row invoice__summary-row--total\" part=\"total\">\n <span part=\"summary-label\">Total</span>\n <span part=\"summary-value\">${this.formatCurrency(total)}</span>\n </div>\n </div>\n </div>\n\n <if ${this.notes}>\n <div class=\"invoice__notes\" part=\"notes\">\n <div class=\"invoice__notes-label\" part=\"notes-label\">Notes</div>\n <div part=\"notes-content\">${this.notes}</div>\n </div>\n </if>\n\n <if ${isQrBottomRight}>\n ${this.renderQr('bottom-right')}\n </if>\n <if ${isQrBottomLeft}>\n ${this.renderQr('bottom-left')}\n </if>\n <if ${isQrFooter}>\n ${this.renderQr('footer')}\n </if>\n\n <div class=\"invoice__footer\" part=\"footer\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.invoiceNumber = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _invoiceNumber_initializers, ''));\n this.date = (__runInitializers(this, _invoiceNumber_extraInitializers), __runInitializers(this, _date_initializers, ''));\n this.dueDate = (__runInitializers(this, _date_extraInitializers), __runInitializers(this, _dueDate_initializers, ''));\n this.status = (__runInitializers(this, _dueDate_extraInitializers), __runInitializers(this, _status_initializers, 'draft'));\n this.currency = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _currency_initializers, 'USD'));\n this.taxRate = (__runInitializers(this, _currency_extraInitializers), __runInitializers(this, _taxRate_initializers, 0));\n this.discount = (__runInitializers(this, _taxRate_extraInitializers), __runInitializers(this, _discount_initializers, 0));\n this.from = (__runInitializers(this, _discount_extraInitializers), __runInitializers(this, _from_initializers, { name: '' }));\n this.to = (__runInitializers(this, _from_extraInitializers), __runInitializers(this, _to_initializers, { name: '' }));\n this.items = (__runInitializers(this, _to_extraInitializers), __runInitializers(this, _items_initializers, []));\n this.notes = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _notes_initializers, ''));\n this.variant = (__runInitializers(this, _notes_extraInitializers), __runInitializers(this, _variant_initializers, 'standard'));\n this.showQr = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _showQr_initializers, false));\n this.qrData = (__runInitializers(this, _showQr_extraInitializers), __runInitializers(this, _qrData_initializers, ''));\n this.qrPosition = (__runInitializers(this, _qrData_extraInitializers), __runInitializers(this, _qrPosition_initializers, 'bottom-right'));\n __runInitializers(this, _qrPosition_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceInvoice };\n//# sourceMappingURL=snice-invoice.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","SniceInvoice","_classDescriptor","_classThis","_invoiceNumber_decorators","_date_decorators","_dueDate_decorators","_status_decorators","_currency_decorators","_taxRate_decorators","_discount_decorators","_from_decorators","_to_decorators","_items_decorators","_notes_decorators","_variant_decorators","_showQr_decorators","_qrData_decorators","_qrPosition_decorators","_handleStatusChange_decorators","_handleItemsChange_decorators","_emitItemChange_decorators","_emitStatusChange_decorators","_renderContent_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_invoiceNumber_initializers","_invoiceNumber_extraInitializers","_date_initializers","_date_extraInitializers","_dueDate_initializers","_dueDate_extraInitializers","_status_initializers","_status_extraInitializers","_currency_initializers","_currency_extraInitializers","_taxRate_initializers","_taxRate_extraInitializers","_discount_initializers","_discount_extraInitializers","_from_initializers","_from_extraInitializers","_to_initializers","_to_extraInitializers","_items_initializers","_items_extraInitializers","_notes_initializers","_notes_extraInitializers","_variant_initializers","_variant_extraInitializers","_showQr_initializers","_showQr_extraInitializers","_qrData_initializers","_qrData_extraInitializers","_qrPosition_initializers","_qrPosition_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","Number","attribute","Array","Boolean","watch","dispatch","bubbles","composed","render","styles","static","private","has","obj","handleStatusChange","handleItemsChange","emitItemChange","emitStatusChange","renderContent","componentStyles","invoiceNumber","date","dueDate","status","currency","taxRate","discount","from","to","items","notes","variant","showQr","qrData","qrPosition","enumerable","configurable","writable","oldVal","newVal","oldStatus","newStatus","subtotal","getSubtotal","tax","getTaxAmount","total","getTotal","detail","getItemAmount","item","undefined","amount","quantity","unitPrice","reduce","sum","getDiscountAmount","discountAmt","formatCurrency","Intl","NumberFormat","style","format","toFixed","print","window","toJSON","map","discount_amount","renderParty","label","party","address","email","phone","html","renderItemRow","index","hasItemTax","description","renderQr","position","taxAmt","hasDiscount","hasTax","hasFrom","hasTo","hasParties","isDetailed","isQrTopRight","isQrBottomRight","isQrBottomLeft","isQrFooter","logo","css","constructor","super"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-invoice.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/invoice/snice-invoice.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, watch, dispatch, render, styles, html, css } from 'snice';\n\nvar cssContent = \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);width:100%;--invoice-max-width:50rem;--invoice-padding:var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-bg:var(--snice-color-background, rgb(255 255 255));--invoice-text:var(--snice-color-text, rgb(23 23 23));--invoice-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--invoice-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--invoice-accent:var(--snice-color-primary, rgb(37 99 235));--invoice-border:var(--snice-color-border, rgb(226 226 226));--invoice-bg-element:var(--snice-color-background-element, rgb(252 251 249));--invoice-success:var(--snice-color-success, rgb(22 163 74));--invoice-danger:var(--snice-color-danger, rgb(220 38 38));--invoice-header-bg:transparent;--invoice-header-text:var(--invoice-text);--invoice-header-padding:0;--invoice-header-border:none;--invoice-table-header-bg:transparent;--invoice-table-header-text:var(--invoice-text-tertiary);--invoice-table-stripe-bg:var(--invoice-bg-element);--invoice-table-border:var(--invoice-border);--invoice-table-cell-padding:var(--snice-spacing-sm, 0.75rem) var(--snice-spacing-xs, 0.5rem);--invoice-summary-width:16rem;--invoice-total-border:2px solid var(--invoice-border);--invoice-total-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-total-font-weight:var(--snice-font-weight-bold, 700);--invoice-status-draft-bg:rgb(229 231 235);--invoice-status-draft-text:rgb(55 65 81);--invoice-status-sent-bg:rgb(219 234 254);--invoice-status-sent-text:rgb(29 78 216);--invoice-status-paid-bg:rgb(220 252 231);--invoice-status-paid-text:rgb(21 128 61);--invoice-status-overdue-bg:rgb(254 226 226);--invoice-status-overdue-text:rgb(185 28 28);--invoice-status-cancelled-bg:rgb(243 244 246);--invoice-status-cancelled-text:rgb(107 114 128);--invoice-font-family:inherit;--invoice-title-font-size:var(--snice-font-size-2xl, 1.5rem);--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-label-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-body-font-size:var(--snice-font-size-md, 1rem);--invoice-notes-bg:var(--invoice-bg-element);--invoice-notes-border:none;--invoice-notes-padding:var(--snice-spacing-md, 1rem);--invoice-qr-size:6rem;--invoice-qr-border:1px dashed var(--invoice-border);--invoice-shadow:none;--invoice-border-width:1px;--invoice-border-color:var(--invoice-border);--invoice-border-radius:var(--snice-border-radius-lg, 0.5rem)}.invoice{background:var(--invoice-bg);border:var(--invoice-border-width) solid var(--invoice-border-color);border-radius:var(--invoice-border-radius);padding:var(--invoice-padding);color:var(--invoice-text);max-width:var(--invoice-max-width);font-family:var(--invoice-font-family);font-size:var(--invoice-body-font-size);box-shadow:var(--invoice-shadow);position:relative;line-height:var(--snice-line-height-normal, 1.5)}.invoice__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--invoice-section-gap);gap:var(--snice-spacing-lg,1.5rem);background:var(--invoice-header-bg);color:var(--invoice-header-text);padding:var(--invoice-header-padding);border-bottom:var(--invoice-header-border);position:relative}.invoice__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.invoice__title{font-size:var(--invoice-title-font-size);font-weight:var(--invoice-title-font-weight);color:inherit;margin:0;line-height:1.2}.invoice__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__meta{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);text-align:right}.invoice__meta-label{font-size:var(--invoice-label-font-size);color:var(--invoice-text-tertiary)}.invoice__meta-value{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-medium,500);color:var(--invoice-text)}.invoice__status{display:inline-flex;align-items:center;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em}.invoice__status--draft{background:var(--invoice-status-draft-bg);color:var(--invoice-status-draft-text)}.invoice__status--sent{background:var(--invoice-status-sent-bg);color:var(--invoice-status-sent-text)}.invoice__status--paid{background:var(--invoice-status-paid-bg);color:var(--invoice-status-paid-text)}.invoice__status--overdue{background:var(--invoice-status-overdue-bg);color:var(--invoice-status-overdue-text)}.invoice__status--cancelled{background:var(--invoice-status-cancelled-bg);color:var(--invoice-status-cancelled-text);text-decoration:line-through}.invoice__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--invoice-section-gap);margin-bottom:var(--invoice-section-gap)}.invoice__party-label{font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--snice-spacing-xs,.5rem)}.invoice__party-name{font-size:var(--invoice-body-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__party-detail{font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line}.invoice__table{width:100%;border-collapse:collapse;margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__table thead{background:var(--invoice-table-header-bg)}.invoice__table th{text-align:left;font-size:var(--invoice-label-font-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-table-header-text);padding:var(--invoice-table-cell-padding);border-bottom:2px solid var(--invoice-table-border);text-transform:uppercase;letter-spacing:.05em}.invoice__table td:last-child,.invoice__table th:last-child{text-align:right}.invoice__table td.invoice__col-price,.invoice__table td.invoice__col-qty,.invoice__table th.invoice__col-price,.invoice__table th.invoice__col-qty{text-align:right;width:6.5rem}.invoice__table td{font-size:var(--invoice-body-font-size);color:var(--invoice-text);padding:var(--invoice-table-cell-padding);border-bottom:1px solid var(--invoice-table-border)}.invoice__table tbody tr:last-child td{border-bottom:2px solid var(--invoice-table-border)}.invoice__summary{display:flex;justify-content:flex-end;margin-bottom:var(--invoice-section-gap)}.invoice__summary-table{width:var(--invoice-summary-width)}.invoice__summary-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--invoice-body-font-size);color:var(--invoice-text-secondary)}.invoice__summary-row--discount{color:var(--invoice-success)}.invoice__summary-row--total{border-top:var(--invoice-total-border);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--invoice-total-font-size);font-weight:var(--invoice-total-font-weight);color:var(--invoice-text)}.invoice__notes{padding:var(--invoice-notes-padding);background:var(--invoice-notes-bg);border:var(--invoice-notes-border);border-radius:var(--snice-border-radius-md,.25rem);font-size:var(--invoice-label-font-size);color:var(--invoice-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin-bottom:var(--snice-spacing-lg,1.5rem)}.invoice__notes-label{font-weight:var(--snice-font-weight-semibold,600);color:var(--invoice-text);margin-bottom:var(--snice-spacing-2xs,.25rem)}.invoice__qr{width:var(--invoice-qr-size);height:var(--invoice-qr-size);border:var(--invoice-qr-border);border-radius:var(--snice-border-radius-md,.25rem);display:flex;align-items:center;justify-content:center;overflow:hidden}.invoice__qr--top-right{position:absolute;top:0;right:0}.invoice__qr--bottom-right{position:absolute;bottom:var(--invoice-padding);right:var(--invoice-padding)}.invoice__qr--bottom-left{position:absolute;bottom:var(--invoice-padding);left:var(--invoice-padding)}.invoice__qr--footer{position:static;margin-top:var(--snice-spacing-md,1rem)}.invoice__qr-placeholder{font-size:var(--snice-font-size-sm, .875rem);color:var(--invoice-text-tertiary);text-align:center;padding:var(--snice-spacing-xs,.5rem)}.invoice__footer{margin-top:var(--snice-spacing-md,1rem)}:host([variant=modern]){--invoice-shadow:var(--snice-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1));--invoice-header-bg:var(--invoice-accent);--invoice-header-text:rgb(255 255 255);--invoice-header-padding:var(--snice-spacing-lg, 1.5rem);--invoice-border-width:0;--invoice-table-header-bg:var(--invoice-bg-element);--invoice-table-header-text:var(--invoice-text)}:host([variant=modern]) .invoice__header{border-radius:var(--snice-border-radius-md,.25rem);margin:calc(-1 * var(--invoice-padding));margin-bottom:var(--invoice-section-gap);padding:var(--snice-spacing-lg,1.5rem) var(--invoice-padding);border-bottom:none}:host([variant=modern]) .invoice__meta-label{color:rgb(255 255 255 / .7)}:host([variant=modern]) .invoice__meta-value{color:rgb(255 255 255)}:host([variant=modern]) .invoice__status{background:rgb(255 255 255 / .2);color:rgb(255 255 255);text-decoration:none}:host([variant=modern]) .invoice__parties{background:var(--invoice-bg-element);border-radius:var(--snice-border-radius-md,.25rem);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:var(--snice-font-weight-bold,700);border-bottom:3px solid var(--invoice-accent)}:host([variant=modern]) .invoice__summary-row--total{border-top:3px solid var(--invoice-accent);color:var(--invoice-accent)}:host([variant=modern]) .invoice__notes{border-left:3px solid var(--invoice-accent);border-radius:0;background:var(--invoice-bg-element)}:host([variant=classic]){--invoice-font-family:'Georgia','Times New Roman','Palatino Linotype',serif;--invoice-title-font-size:1.75rem;--invoice-title-font-weight:var(--snice-font-weight-bold, 700);--invoice-border-radius:0;--invoice-border-width:2px;--invoice-border-color:var(--invoice-text);--invoice-header-border:2px solid var(--invoice-text);--invoice-header-padding:0 0 var(--snice-spacing-md, 1rem) 0}:host([variant=classic]) .invoice__status{border-radius:0;border:1px solid currentColor;background:0 0}:host([variant=classic]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=classic]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=classic]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=classic]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=classic]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=classic]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-style:italic;font-weight:var(--snice-font-weight-medium,500)}:host([variant=classic]) .invoice__table th{text-transform:none;letter-spacing:normal;font-style:italic;border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__table td{border-bottom:1px solid var(--invoice-border)}:host([variant=classic]) .invoice__table tbody tr:last-child td{border-bottom:2px double var(--invoice-text)}:host([variant=classic]) .invoice__summary-row--total{border-top:2px double var(--invoice-text)}:host([variant=classic]) .invoice__notes{background:0 0;border-top:1px solid var(--invoice-border);border-radius:0;padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]){--invoice-border-width:0;--invoice-padding:var(--snice-spacing-xl, 2rem) var(--snice-spacing-xl, 2rem);--invoice-section-gap:var(--snice-spacing-xl, 2rem);--invoice-title-font-weight:300;--invoice-title-font-size:2rem;--invoice-table-border:transparent;--invoice-table-header-text:var(--invoice-text-secondary);--invoice-total-border:1px solid var(--invoice-border);--invoice-notes-bg:transparent;--invoice-notes-padding:0;--invoice-shadow:none}:host([variant=minimal]) .invoice__status{background:0 0;padding:0;font-weight:400;text-transform:none;letter-spacing:normal;font-size:var(--invoice-body-font-size)}:host([variant=minimal]) .invoice__status--draft{color:var(--invoice-status-draft-text)}:host([variant=minimal]) .invoice__status--sent{color:var(--invoice-status-sent-text)}:host([variant=minimal]) .invoice__status--paid{color:var(--invoice-status-paid-text)}:host([variant=minimal]) .invoice__status--overdue{color:var(--invoice-status-overdue-text)}:host([variant=minimal]) .invoice__status--cancelled{color:var(--invoice-status-cancelled-text)}:host([variant=minimal]) .invoice__party-label{text-transform:none;letter-spacing:normal;font-weight:400}:host([variant=minimal]) .invoice__table th{text-transform:none;letter-spacing:normal;font-weight:400;border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__table td{border-bottom:none;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-xs,.5rem)}:host([variant=minimal]) .invoice__table tbody tr:last-child td{border-bottom:1px solid var(--invoice-border)}:host([variant=minimal]) .invoice__notes{border-top:1px solid var(--invoice-border);padding-top:var(--snice-spacing-md,1rem)}:host([variant=detailed]){--invoice-padding:var(--snice-spacing-lg, 1.5rem);--invoice-section-gap:var(--snice-spacing-lg, 1.5rem);--invoice-body-font-size:var(--snice-font-size-sm, 0.875rem);--invoice-label-font-size:0.75rem;--invoice-title-font-size:var(--snice-font-size-lg, 1.125rem);--invoice-summary-width:20rem;--invoice-table-cell-padding:var(--snice-spacing-2xs, 0.25rem) var(--snice-spacing-xs, 0.5rem);--invoice-table-header-bg:var(--invoice-bg-element)}:host([variant=detailed]) .invoice__header{margin-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .invoice__table th{font-size:.6875rem}:host([variant=detailed]) .invoice__table tbody tr:nth-child(2n){background:var(--invoice-table-stripe-bg)}:host([variant=detailed]) .invoice__item-line-num{color:var(--invoice-text-tertiary);font-size:.75rem;min-width:1.5rem;text-align:center}:host([variant=detailed]) .invoice__item-tax{display:block;font-size:.75rem;color:var(--invoice-text-tertiary)}:host([variant=detailed]) .invoice__summary-row{font-size:var(--snice-font-size-sm, .875rem)}:host([variant=detailed]) .invoice__notes{font-size:.75rem}:host(:not([variant=detailed])) .invoice__item-line-num{display:none}:host(:not([variant=detailed])) .invoice__item-tax{display:none}:host(:not([variant=detailed])) .invoice__col-line{display:none}@media print{:host{--invoice-shadow:none;--invoice-border-width:0;--invoice-border-radius:0;--invoice-bg:white;--invoice-text:black;--invoice-text-secondary:rgb(60 60 60);--invoice-text-tertiary:rgb(100 100 100);--invoice-accent:black;--invoice-border:rgb(180 180 180)}.invoice{padding:0;border:none;box-shadow:none;border-radius:0;max-width:none}.invoice__header{background:0 0!important;color:#000!important;border-bottom:2px solid #000;padding:0 0 .5rem}:host([variant=modern]) .invoice__header{margin:0 0 1rem}:host([variant=modern]) .invoice__meta-label,:host([variant=modern]) .invoice__meta-value{color:#000!important}.invoice__parties{background:0 0!important;padding:0}.invoice__status{background:0 0!important;border:1px solid currentColor;color:#000!important;text-decoration:none}.invoice__status--cancelled{text-decoration:line-through}.invoice__table th{background:0 0!important;border-bottom:2px solid #000;color:#000}.invoice__table td{border-bottom:1px solid rgb(180 180 180)}.invoice__table tbody tr:last-child td{border-bottom:2px solid #000}.invoice__table tbody tr{background:0 0!important}.invoice__summary-row--total{border-top:2px solid #000;color:#000}.invoice__summary-row--discount{color:#000}.invoice__notes{background:0 0!important;border:1px solid rgb(180 180 180);border-left:3px solid #000}:host([variant=classic]) .invoice__notes,:host([variant=minimal]) .invoice__notes{border:none;border-top:1px solid rgb(180 180 180)}.invoice__header,.invoice__parties{break-inside:avoid}.invoice__table{break-inside:auto}.invoice__table thead{display:table-header-group}.invoice__notes,.invoice__summary,.invoice__table tr{break-inside:avoid}.invoice__qr{border:1px solid rgb(180 180 180);break-inside:avoid}.invoice__print-btn,.invoice__qr-placeholder{display:none}}\";\n\nlet SniceInvoice = (() => {\n let _classDecorators = [element('snice-invoice')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _invoiceNumber_decorators;\n let _invoiceNumber_initializers = [];\n let _invoiceNumber_extraInitializers = [];\n let _date_decorators;\n let _date_initializers = [];\n let _date_extraInitializers = [];\n let _dueDate_decorators;\n let _dueDate_initializers = [];\n let _dueDate_extraInitializers = [];\n let _status_decorators;\n let _status_initializers = [];\n let _status_extraInitializers = [];\n let _currency_decorators;\n let _currency_initializers = [];\n let _currency_extraInitializers = [];\n let _taxRate_decorators;\n let _taxRate_initializers = [];\n let _taxRate_extraInitializers = [];\n let _discount_decorators;\n let _discount_initializers = [];\n let _discount_extraInitializers = [];\n let _from_decorators;\n let _from_initializers = [];\n let _from_extraInitializers = [];\n let _to_decorators;\n let _to_initializers = [];\n let _to_extraInitializers = [];\n let _items_decorators;\n let _items_initializers = [];\n let _items_extraInitializers = [];\n let _notes_decorators;\n let _notes_initializers = [];\n let _notes_extraInitializers = [];\n let _variant_decorators;\n let _variant_initializers = [];\n let _variant_extraInitializers = [];\n let _showQr_decorators;\n let _showQr_initializers = [];\n let _showQr_extraInitializers = [];\n let _qrData_decorators;\n let _qrData_initializers = [];\n let _qrData_extraInitializers = [];\n let _qrPosition_decorators;\n let _qrPosition_initializers = [];\n let _qrPosition_extraInitializers = [];\n let _handleStatusChange_decorators;\n let _handleItemsChange_decorators;\n let _emitItemChange_decorators;\n let _emitStatusChange_decorators;\n let _renderContent_decorators;\n let _componentStyles_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 _invoiceNumber_decorators = [property()];\n _date_decorators = [property()];\n _dueDate_decorators = [property()];\n _status_decorators = [property()];\n _currency_decorators = [property()];\n _taxRate_decorators = [property({ type: Number })];\n _discount_decorators = [property({ type: Number })];\n _from_decorators = [property({ type: Object, attribute: false })];\n _to_decorators = [property({ type: Object, attribute: false })];\n _items_decorators = [property({ type: Array, attribute: false })];\n _notes_decorators = [property()];\n _variant_decorators = [property()];\n _showQr_decorators = [property({ type: Boolean })];\n _qrData_decorators = [property()];\n _qrPosition_decorators = [property()];\n _handleStatusChange_decorators = [watch('status')];\n _handleItemsChange_decorators = [watch('items')];\n _emitItemChange_decorators = [dispatch('invoice-item-change', { bubbles: true, composed: true })];\n _emitStatusChange_decorators = [dispatch('invoice-status-change', { bubbles: true, composed: true })];\n _renderContent_decorators = [render()];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _handleStatusChange_decorators, { kind: \"method\", name: \"handleStatusChange\", static: false, private: false, access: { has: obj => \"handleStatusChange\" in obj, get: obj => obj.handleStatusChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _handleItemsChange_decorators, { kind: \"method\", name: \"handleItemsChange\", static: false, private: false, access: { has: obj => \"handleItemsChange\" in obj, get: obj => obj.handleItemsChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitItemChange_decorators, { kind: \"method\", name: \"emitItemChange\", static: false, private: false, access: { has: obj => \"emitItemChange\" in obj, get: obj => obj.emitItemChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitStatusChange_decorators, { kind: \"method\", name: \"emitStatusChange\", static: false, private: false, access: { has: obj => \"emitStatusChange\" in obj, get: obj => obj.emitStatusChange }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _renderContent_decorators, { kind: \"method\", name: \"renderContent\", static: false, private: false, access: { has: obj => \"renderContent\" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);\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(null, null, _invoiceNumber_decorators, { kind: \"field\", name: \"invoiceNumber\", static: false, private: false, access: { has: obj => \"invoiceNumber\" in obj, get: obj => obj.invoiceNumber, set: (obj, value) => { obj.invoiceNumber = value; } }, metadata: _metadata }, _invoiceNumber_initializers, _invoiceNumber_extraInitializers);\n __esDecorate(null, null, _date_decorators, { kind: \"field\", name: \"date\", static: false, private: false, access: { has: obj => \"date\" in obj, get: obj => obj.date, set: (obj, value) => { obj.date = value; } }, metadata: _metadata }, _date_initializers, _date_extraInitializers);\n __esDecorate(null, null, _dueDate_decorators, { kind: \"field\", name: \"dueDate\", static: false, private: false, access: { has: obj => \"dueDate\" in obj, get: obj => obj.dueDate, set: (obj, value) => { obj.dueDate = value; } }, metadata: _metadata }, _dueDate_initializers, _dueDate_extraInitializers);\n __esDecorate(null, null, _status_decorators, { kind: \"field\", name: \"status\", static: false, private: false, access: { has: obj => \"status\" in obj, get: obj => obj.status, set: (obj, value) => { obj.status = value; } }, metadata: _metadata }, _status_initializers, _status_extraInitializers);\n __esDecorate(null, null, _currency_decorators, { kind: \"field\", name: \"currency\", static: false, private: false, access: { has: obj => \"currency\" in obj, get: obj => obj.currency, set: (obj, value) => { obj.currency = value; } }, metadata: _metadata }, _currency_initializers, _currency_extraInitializers);\n __esDecorate(null, null, _taxRate_decorators, { kind: \"field\", name: \"taxRate\", static: false, private: false, access: { has: obj => \"taxRate\" in obj, get: obj => obj.taxRate, set: (obj, value) => { obj.taxRate = value; } }, metadata: _metadata }, _taxRate_initializers, _taxRate_extraInitializers);\n __esDecorate(null, null, _discount_decorators, { kind: \"field\", name: \"discount\", static: false, private: false, access: { has: obj => \"discount\" in obj, get: obj => obj.discount, set: (obj, value) => { obj.discount = value; } }, metadata: _metadata }, _discount_initializers, _discount_extraInitializers);\n __esDecorate(null, null, _from_decorators, { kind: \"field\", name: \"from\", static: false, private: false, access: { has: obj => \"from\" in obj, get: obj => obj.from, set: (obj, value) => { obj.from = value; } }, metadata: _metadata }, _from_initializers, _from_extraInitializers);\n __esDecorate(null, null, _to_decorators, { kind: \"field\", name: \"to\", static: false, private: false, access: { has: obj => \"to\" in obj, get: obj => obj.to, set: (obj, value) => { obj.to = value; } }, metadata: _metadata }, _to_initializers, _to_extraInitializers);\n __esDecorate(null, null, _items_decorators, { kind: \"field\", name: \"items\", static: false, private: false, access: { has: obj => \"items\" in obj, get: obj => obj.items, set: (obj, value) => { obj.items = value; } }, metadata: _metadata }, _items_initializers, _items_extraInitializers);\n __esDecorate(null, null, _notes_decorators, { kind: \"field\", name: \"notes\", static: false, private: false, access: { has: obj => \"notes\" in obj, get: obj => obj.notes, set: (obj, value) => { obj.notes = value; } }, metadata: _metadata }, _notes_initializers, _notes_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, _showQr_decorators, { kind: \"field\", name: \"showQr\", static: false, private: false, access: { has: obj => \"showQr\" in obj, get: obj => obj.showQr, set: (obj, value) => { obj.showQr = value; } }, metadata: _metadata }, _showQr_initializers, _showQr_extraInitializers);\n __esDecorate(null, null, _qrData_decorators, { kind: \"field\", name: \"qrData\", static: false, private: false, access: { has: obj => \"qrData\" in obj, get: obj => obj.qrData, set: (obj, value) => { obj.qrData = value; } }, metadata: _metadata }, _qrData_initializers, _qrData_extraInitializers);\n __esDecorate(null, null, _qrPosition_decorators, { kind: \"field\", name: \"qrPosition\", static: false, private: false, access: { has: obj => \"qrPosition\" in obj, get: obj => obj.qrPosition, set: (obj, value) => { obj.qrPosition = value; } }, metadata: _metadata }, _qrPosition_initializers, _qrPosition_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 handleStatusChange(oldVal, newVal) {\n if (oldVal && oldVal !== newVal) {\n this.emitStatusChange({ oldStatus: oldVal, newStatus: newVal });\n }\n }\n handleItemsChange() {\n this.emitItemChange({\n items: this.items,\n subtotal: this.getSubtotal(),\n tax: this.getTaxAmount(),\n total: this.getTotal()\n });\n }\n emitItemChange(detail) {\n return detail;\n }\n emitStatusChange(detail) {\n return detail;\n }\n getItemAmount(item) {\n if (item.amount !== undefined)\n return item.amount;\n return item.quantity * item.unitPrice;\n }\n getSubtotal() {\n return this.items.reduce((sum, item) => sum + this.getItemAmount(item), 0);\n }\n getTaxAmount() {\n const subtotal = this.getSubtotal();\n const afterDiscount = subtotal - this.getDiscountAmount();\n return afterDiscount * (this.taxRate / 100);\n }\n getDiscountAmount() {\n return this.getSubtotal() * (this.discount / 100);\n }\n getTotal() {\n const subtotal = this.getSubtotal();\n const discountAmt = this.getDiscountAmount();\n const taxAmt = (subtotal - discountAmt) * (this.taxRate / 100);\n return subtotal - discountAmt + taxAmt;\n }\n formatCurrency(amount) {\n try {\n return new Intl.NumberFormat(undefined, {\n style: 'currency',\n currency: this.currency\n }).format(amount);\n }\n catch {\n return `${this.currency} ${amount.toFixed(2)}`;\n }\n }\n print() {\n window.print();\n }\n toJSON() {\n return {\n invoiceNumber: this.invoiceNumber,\n date: this.date,\n dueDate: this.dueDate,\n status: this.status,\n currency: this.currency,\n taxRate: this.taxRate,\n discount: this.discount,\n from: { ...this.from },\n to: { ...this.to },\n items: this.items.map(i => ({ ...i })),\n notes: this.notes,\n variant: this.variant,\n showQr: this.showQr,\n qrData: this.qrData,\n qrPosition: this.qrPosition,\n subtotal: this.getSubtotal(),\n tax: this.getTaxAmount(),\n discount_amount: this.getDiscountAmount(),\n total: this.getTotal()\n };\n }\n renderParty(label, party) {\n const hasContent = party.name || party.address || party.email || party.phone;\n if (!hasContent)\n return html ``;\n return html /*html*/ `\n <div class=\"invoice__party\" part=\"party\">\n <div class=\"invoice__party-label\" part=\"party-label\">${label}</div>\n <if ${party.name}>\n <div class=\"invoice__party-name\" part=\"party-name\">${party.name}</div>\n </if>\n <if ${party.address}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.address}</div>\n </if>\n <if ${party.email}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.email}</div>\n </if>\n <if ${party.phone}>\n <div class=\"invoice__party-detail\" part=\"party-detail\">${party.phone}</div>\n </if>\n </div>\n `;\n }\n renderItemRow(item, index) {\n const amount = this.getItemAmount(item);\n const hasItemTax = item.tax !== undefined;\n return html /*html*/ `\n <tr part=\"table-row\">\n <td class=\"invoice__col-line\" part=\"table-cell\">\n <span class=\"invoice__item-line-num\">${index + 1}</span>\n </td>\n <td part=\"table-cell\">\n ${item.description}\n <if ${hasItemTax}>\n <span class=\"invoice__item-tax\">Tax: ${item.tax}%</span>\n </if>\n </td>\n <td class=\"invoice__col-qty\" part=\"table-cell\">${item.quantity}</td>\n <td class=\"invoice__col-price\" part=\"table-cell\">${this.formatCurrency(item.unitPrice)}</td>\n <td part=\"table-cell\">${this.formatCurrency(amount)}</td>\n </tr>\n `;\n }\n renderQr(position) {\n if (!this.showQr)\n return html ``;\n return html /*html*/ `\n <div class=\"invoice__qr invoice__qr--${position}\" part=\"qr-container\">\n <div part=\"qr\">\n <slot name=\"qr\">\n <div class=\"invoice__qr-placeholder\">QR</div>\n </slot>\n </div>\n </div>\n `;\n }\n renderContent() {\n const subtotal = this.getSubtotal();\n const discountAmt = this.getDiscountAmount();\n const taxAmt = this.getTaxAmount();\n const total = this.getTotal();\n const hasDiscount = this.discount > 0;\n const hasTax = this.taxRate > 0;\n const hasFrom = this.from.name || this.from.address;\n const hasTo = this.to.name || this.to.address;\n const hasParties = hasFrom || hasTo;\n const isDetailed = this.variant === 'detailed';\n const isQrTopRight = this.showQr && this.qrPosition === 'top-right';\n const isQrBottomRight = this.showQr && this.qrPosition === 'bottom-right';\n const isQrBottomLeft = this.showQr && this.qrPosition === 'bottom-left';\n const isQrFooter = this.showQr && this.qrPosition === 'footer';\n return html /*html*/ `\n <div class=\"invoice\" part=\"base\">\n <div class=\"invoice__header\" part=\"header\">\n <div class=\"invoice__header-left\">\n <if ${this.from.logo}>\n <img class=\"invoice__logo\" src=\"${this.from.logo}\" alt=\"${this.from.name}\" part=\"logo\" />\n </if>\n <h2 class=\"invoice__title\" part=\"title\">Invoice</h2>\n <span class=\"invoice__status invoice__status--${this.status}\" part=\"status\">${this.status}</span>\n </div>\n <div class=\"invoice__meta\" part=\"meta\">\n <if ${this.invoiceNumber}>\n <div>\n <span class=\"invoice__meta-label\">Invoice # </span>\n <span class=\"invoice__meta-value\">${this.invoiceNumber}</span>\n </div>\n </if>\n <if ${this.date}>\n <div>\n <span class=\"invoice__meta-label\">Date: </span>\n <span class=\"invoice__meta-value\">${this.date}</span>\n </div>\n </if>\n <if ${this.dueDate}>\n <div>\n <span class=\"invoice__meta-label\">Due Date: </span>\n <span class=\"invoice__meta-value\">${this.dueDate}</span>\n </div>\n </if>\n </div>\n <if ${isQrTopRight}>\n ${this.renderQr('top-right')}\n </if>\n </div>\n\n <if ${hasParties}>\n <div class=\"invoice__parties\" part=\"parties\">\n ${this.renderParty('From', this.from)}\n ${this.renderParty('Bill To', this.to)}\n </div>\n </if>\n\n <if ${this.items.length > 0}>\n <table class=\"invoice__table\" part=\"table\">\n <thead part=\"table-header\">\n <tr>\n <if ${isDetailed}>\n <th class=\"invoice__col-line\">#</th>\n </if>\n <th>Description</th>\n <th class=\"invoice__col-qty\">Qty</th>\n <th class=\"invoice__col-price\">Unit Price</th>\n <th>Amount</th>\n </tr>\n </thead>\n <tbody>\n ${this.items.map((item, i) => this.renderItemRow(item, i))}\n </tbody>\n </table>\n </if>\n\n <div class=\"invoice__summary\" part=\"summary\">\n <div class=\"invoice__summary-table\">\n <div class=\"invoice__summary-row\" part=\"summary-row\">\n <span part=\"summary-label\">Subtotal</span>\n <span part=\"summary-value\">${this.formatCurrency(subtotal)}</span>\n </div>\n <if ${hasDiscount}>\n <div class=\"invoice__summary-row invoice__summary-row--discount\" part=\"discount-row\">\n <span part=\"summary-label\">Discount (${this.discount}%)</span>\n <span part=\"summary-value\">-${this.formatCurrency(discountAmt)}</span>\n </div>\n </if>\n <if ${hasTax}>\n <div class=\"invoice__summary-row\" part=\"tax-row\">\n <span part=\"summary-label\">Tax (${this.taxRate}%)</span>\n <span part=\"summary-value\">${this.formatCurrency(taxAmt)}</span>\n </div>\n </if>\n <div class=\"invoice__summary-row invoice__summary-row--total\" part=\"total\">\n <span part=\"summary-label\">Total</span>\n <span part=\"summary-value\">${this.formatCurrency(total)}</span>\n </div>\n </div>\n </div>\n\n <if ${this.notes}>\n <div class=\"invoice__notes\" part=\"notes\">\n <div class=\"invoice__notes-label\" part=\"notes-label\">Notes</div>\n <div part=\"notes-content\">${this.notes}</div>\n </div>\n </if>\n\n <if ${isQrBottomRight}>\n ${this.renderQr('bottom-right')}\n </if>\n <if ${isQrBottomLeft}>\n ${this.renderQr('bottom-left')}\n </if>\n <if ${isQrFooter}>\n ${this.renderQr('footer')}\n </if>\n\n <div class=\"invoice__footer\" part=\"footer\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.invoiceNumber = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _invoiceNumber_initializers, ''));\n this.date = (__runInitializers(this, _invoiceNumber_extraInitializers), __runInitializers(this, _date_initializers, ''));\n this.dueDate = (__runInitializers(this, _date_extraInitializers), __runInitializers(this, _dueDate_initializers, ''));\n this.status = (__runInitializers(this, _dueDate_extraInitializers), __runInitializers(this, _status_initializers, 'draft'));\n this.currency = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _currency_initializers, 'USD'));\n this.taxRate = (__runInitializers(this, _currency_extraInitializers), __runInitializers(this, _taxRate_initializers, 0));\n this.discount = (__runInitializers(this, _taxRate_extraInitializers), __runInitializers(this, _discount_initializers, 0));\n this.from = (__runInitializers(this, _discount_extraInitializers), __runInitializers(this, _from_initializers, { name: '' }));\n this.to = (__runInitializers(this, _from_extraInitializers), __runInitializers(this, _to_initializers, { name: '' }));\n this.items = (__runInitializers(this, _to_extraInitializers), __runInitializers(this, _items_initializers, []));\n this.notes = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _notes_initializers, ''));\n this.variant = (__runInitializers(this, _notes_extraInitializers), __runInitializers(this, _variant_initializers, 'standard'));\n this.showQr = (__runInitializers(this, _variant_extraInitializers), __runInitializers(this, _showQr_initializers, false));\n this.qrData = (__runInitializers(this, _showQr_extraInitializers), __runInitializers(this, _qrData_initializers, ''));\n this.qrPosition = (__runInitializers(this, _qrData_extraInitializers), __runInitializers(this, _qrPosition_initializers, 'bottom-right'));\n __runInitializers(this, _qrPosition_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceInvoice };\n//# sourceMappingURL=snice-invoice.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","SniceInvoice","_classDescriptor","_classThis","_invoiceNumber_decorators","_date_decorators","_dueDate_decorators","_status_decorators","_currency_decorators","_taxRate_decorators","_discount_decorators","_from_decorators","_to_decorators","_items_decorators","_notes_decorators","_variant_decorators","_showQr_decorators","_qrData_decorators","_qrPosition_decorators","_handleStatusChange_decorators","_handleItemsChange_decorators","_emitItemChange_decorators","_emitStatusChange_decorators","_renderContent_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_invoiceNumber_initializers","_invoiceNumber_extraInitializers","_date_initializers","_date_extraInitializers","_dueDate_initializers","_dueDate_extraInitializers","_status_initializers","_status_extraInitializers","_currency_initializers","_currency_extraInitializers","_taxRate_initializers","_taxRate_extraInitializers","_discount_initializers","_discount_extraInitializers","_from_initializers","_from_extraInitializers","_to_initializers","_to_extraInitializers","_items_initializers","_items_extraInitializers","_notes_initializers","_notes_extraInitializers","_variant_initializers","_variant_extraInitializers","_showQr_initializers","_showQr_extraInitializers","_qrData_initializers","_qrData_extraInitializers","_qrPosition_initializers","_qrPosition_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","Number","attribute","Array","Boolean","watch","dispatch","bubbles","composed","render","styles","static","private","has","obj","handleStatusChange","handleItemsChange","emitItemChange","emitStatusChange","renderContent","componentStyles","invoiceNumber","date","dueDate","status","currency","taxRate","discount","from","to","items","notes","variant","showQr","qrData","qrPosition","enumerable","configurable","writable","oldVal","newVal","oldStatus","newStatus","subtotal","getSubtotal","tax","getTaxAmount","total","getTotal","detail","getItemAmount","item","undefined","amount","quantity","unitPrice","reduce","sum","getDiscountAmount","discountAmt","formatCurrency","Intl","NumberFormat","style","format","toFixed","print","window","toJSON","map","discount_amount","renderParty","label","party","address","email","phone","html","renderItemRow","index","hasItemTax","description","renderQr","position","taxAmt","hasDiscount","hasTax","hasFrom","hasTo","hasParties","isDetailed","isQrTopRight","isQrBottomRight","isQrBottomLeft","isQrFooter","logo","css","constructor","super"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v4.23.0
3
- * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
2
+ * snice v4.25.0
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.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v4.23.0
3
- * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
2
+ * snice v4.25.0
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.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
- * snice v4.23.0
3
- * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
2
+ * snice v4.25.0
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.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
@@ -110,7 +110,7 @@ var SniceKeyValue = (function (exports, snice) {
110
110
  return _classThis;
111
111
  })();
112
112
 
113
- var cssContent = ":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%;--kv-bg:var(--snice-color-background, rgb(255 255 255));--kv-text:var(--snice-color-text, rgb(23 23 23));--kv-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--kv-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--kv-border:var(--snice-color-border, rgb(226 226 226));--kv-bg-element:var(--snice-color-background-element, rgb(252 251 249));--kv-primary:var(--snice-color-primary, rgb(37 99 235));--kv-danger:var(--snice-color-danger, rgb(220 38 38));--kv-radius:var(--snice-border-radius-md, 0.25rem);--kv-radius-lg:var(--snice-border-radius-lg, 0.5rem)}.kv{background:var(--kv-bg);border:1px solid var(--kv-border);border-radius:var(--kv-radius-lg);overflow:hidden}.kv__header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem) var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--kv-border)}.kv__title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--kv-text);margin:0}.kv__copy{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:var(--kv-radius);background:0 0;color:var(--kv-text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:color var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.kv__copy:hover{color:var(--kv-primary);background:color-mix(in srgb,var(--kv-primary) 10%,transparent)}.kv__copy--copied{color:var(--snice-color-success,rgb(22 163 74))}.kv__copy--copied:hover{color:var(--snice-color-success,rgb(22 163 74));background:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 10%,transparent)}.kv__copy svg{width:.875rem;height:.875rem}.kv__rows{display:flex;flex-direction:column}.kv__row{display:flex;align-items:flex-start;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem)}.kv__row:first-child{padding-top:var(--snice-spacing-sm,.75rem)}.kv__row:last-child{padding-bottom:var(--snice-spacing-sm,.75rem)}.kv__fields{display:flex;flex:1;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem)}.kv__pair{display:flex;flex:1;gap:var(--snice-spacing-2xs,.25rem)}.kv__input{flex:1;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--kv-border);border-radius:var(--kv-radius);background:var(--kv-bg);color:var(--kv-text);font-family:inherit;font-size:.875rem;line-height:var(--snice-line-height-normal, 1.5);outline:0;transition:border-color var(--snice-transition-fast, 150ms) ease}.kv__input::placeholder{color:var(--kv-text-secondary);opacity:.6}.kv__input:focus{border-color:var(--kv-primary);box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.kv__input:disabled{opacity:.5;cursor:not-allowed;background:var(--kv-bg-element)}.kv__input[readonly]{background:var(--kv-bg-element);cursor:default}.kv__description{flex:1;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--kv-border);border-radius:var(--kv-radius);background:var(--kv-bg);color:var(--kv-text-secondary);font-family:inherit;font-size:.75rem;line-height:var(--snice-line-height-normal, 1.5);outline:0;transition:border-color var(--snice-transition-fast, 150ms) ease}.kv__description::placeholder{color:var(--kv-text-secondary);opacity:.5}.kv__description:focus{border-color:var(--kv-primary);box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.kv__description:disabled{opacity:.5;cursor:not-allowed}.kv__delete{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-top:.125rem;border:none;border-radius:var(--kv-radius);background:0 0;color:var(--kv-text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:color var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.kv__delete:hover{color:var(--kv-danger);background:color-mix(in srgb,var(--kv-danger) 10%,transparent)}.kv__delete svg{width:1rem;height:1rem}::slotted(snice-kv-pair){display:none!important}.kv__view-row{display:flex;align-items:baseline;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--kv-border)}.kv__view-row:last-child{border-bottom:none}.kv__view-key{font-weight:var(--snice-font-weight-medium,500);color:var(--kv-text);min-width:8rem;flex-shrink:0;font-size:.875rem;word-break:break-word}.kv__view-value{flex:1;color:var(--kv-text-secondary);font-size:.875rem;word-break:break-word;font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace}.kv__view-desc{font-size:.75rem;color:var(--kv-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.kv__empty{padding:var(--snice-spacing-xl,2rem);text-align:center;color:var(--kv-text-secondary);font-size:var(--snice-font-size-md, 1rem)}:host([variant=compact]) .kv__input{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);font-size:.8125rem}:host([variant=compact]) .kv__description{padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:.6875rem}:host([variant=compact]) .kv__delete{width:1.5rem;height:1.5rem}:host([variant=compact]) .kv__delete svg{width:.75rem;height:.75rem}:host([variant=compact]) .kv__view-row{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);gap:var(--snice-spacing-xs,.5rem)}:host([variant=compact]) .kv__view-key,:host([variant=compact]) .kv__view-value{font-size:.8125rem}:host([variant=compact]) .kv__view-key{min-width:6rem}:host([disabled]){pointer-events:none;opacity:.6}:host([readonly]) .kv__delete{display:none}";
113
+ var cssContent = ":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);width:100%;--kv-bg:var(--snice-color-background, rgb(255 255 255));--kv-text:var(--snice-color-text, rgb(23 23 23));--kv-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--kv-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--kv-border:var(--snice-color-border, rgb(226 226 226));--kv-bg-element:var(--snice-color-background-element, rgb(252 251 249));--kv-primary:var(--snice-color-primary, rgb(37 99 235));--kv-danger:var(--snice-color-danger, rgb(220 38 38));--kv-radius:var(--snice-border-radius-md, 0.25rem);--kv-radius-lg:var(--snice-border-radius-lg, 0.5rem)}.kv{background:var(--kv-bg);border:1px solid var(--kv-border);border-radius:var(--kv-radius-lg);overflow:hidden}.kv__header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-md,1rem) var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--kv-border)}.kv__title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--kv-text);margin:0}.kv__copy{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:var(--kv-radius);background:0 0;color:var(--kv-text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:color var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.kv__copy:hover{color:var(--kv-primary);background:color-mix(in srgb,var(--kv-primary) 10%,transparent)}.kv__copy--copied{color:var(--snice-color-success,rgb(22 163 74))}.kv__copy--copied:hover{color:var(--snice-color-success,rgb(22 163 74));background:color-mix(in srgb,var(--snice-color-success,rgb(22 163 74)) 10%,transparent)}.kv__copy svg{width:.875rem;height:.875rem}.kv__rows{display:flex;flex-direction:column}.kv__row{display:flex;align-items:flex-start;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem)}.kv__row:first-child{padding-top:var(--snice-spacing-sm,.75rem)}.kv__row:last-child{padding-bottom:var(--snice-spacing-sm,.75rem)}.kv__fields{display:flex;flex:1;flex-direction:column;gap:var(--snice-spacing-3xs,.125rem)}.kv__pair{display:flex;flex:1;gap:var(--snice-spacing-2xs,.25rem)}.kv__input{flex:1;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--kv-border);border-radius:var(--kv-radius);background:var(--kv-bg);color:var(--kv-text);font-family:inherit;font-size:.875rem;line-height:var(--snice-line-height-normal, 1.5);outline:0;transition:border-color var(--snice-transition-fast, 150ms) ease}.kv__input::placeholder{color:var(--kv-text-secondary);opacity:.6}.kv__input:focus{border-color:var(--kv-primary);box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.kv__input:disabled{opacity:.5;cursor:not-allowed;background:var(--kv-bg-element)}.kv__input[readonly]{background:var(--kv-bg-element);cursor:default}.kv__description{flex:1;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--kv-border);border-radius:var(--kv-radius);background:var(--kv-bg);color:var(--kv-text-secondary);font-family:inherit;font-size:.75rem;line-height:var(--snice-line-height-normal, 1.5);outline:0;transition:border-color var(--snice-transition-fast, 150ms) ease}.kv__description::placeholder{color:var(--kv-text-secondary);opacity:.5}.kv__description:focus{border-color:var(--kv-primary);box-shadow:0 0 0 var(--snice-focus-ring-width,2px) var(--snice-focus-ring-color,rgb(59 130 246 / .5))}.kv__description:disabled{opacity:.5;cursor:not-allowed}.kv__delete{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-top:.125rem;border:none;border-radius:var(--kv-radius);background:0 0;color:var(--kv-text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:color var(--snice-transition-fast, 150ms) ease,background var(--snice-transition-fast, 150ms) ease}.kv__delete:hover{color:var(--kv-danger);background:color-mix(in srgb,var(--kv-danger) 10%,transparent)}.kv__delete svg{width:1rem;height:1rem}::slotted(snice-kv-pair){display:none!important}.kv__view-row{display:flex;align-items:baseline;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--kv-border)}.kv__view-row:last-child{border-bottom:none}.kv__view-key{font-weight:var(--snice-font-weight-medium,500);color:var(--kv-text);min-width:8rem;flex-shrink:0;font-size:.875rem;word-break:break-word}.kv__view-value{flex:1;color:var(--kv-text-secondary);font-size:.875rem;word-break:break-word;font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace}.kv__view-desc{font-size:.75rem;color:var(--kv-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.kv__empty{padding:var(--snice-spacing-xl,2rem);text-align:center;color:var(--kv-text-secondary);font-size:var(--snice-font-size-md, 1rem)}:host([variant=compact]) .kv__input{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);font-size:.8125rem}:host([variant=compact]) .kv__description{padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);font-size:.6875rem}:host([variant=compact]) .kv__delete{width:1.5rem;height:1.5rem}:host([variant=compact]) .kv__delete svg{width:.75rem;height:.75rem}:host([variant=compact]) .kv__view-row{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);gap:var(--snice-spacing-xs,.5rem)}:host([variant=compact]) .kv__view-key,:host([variant=compact]) .kv__view-value{font-size:.8125rem}:host([variant=compact]) .kv__view-key{min-width:6rem}:host([disabled]){pointer-events:none;opacity:.6}:host([readonly]) .kv__delete{display:none}";
114
114
 
115
115
  let SniceKeyValue = (() => {
116
116
  let _classDecorators = [snice.element('snice-key-value', { formAssociated: true })];