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,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
  */
@@ -151,5 +151,5 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
151
151
  ${this.renderQrFooter()}
152
152
  ${this.renderFooter()}
153
153
  </div>
154
- `}componentStyles(){return e.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);color:var(--snice-color-text,rgb(23 23 23));contain:layout style paint;--estimate-max-width:50rem;--estimate-bg:var(--snice-color-background, rgb(255 255 255));--estimate-bg-element:var(--snice-color-background-element, rgb(252 251 249));--estimate-border:var(--snice-color-border, rgb(226 226 226));--estimate-text:var(--snice-color-text, rgb(23 23 23));--estimate-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--estimate-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-accent:var(--snice-color-primary, rgb(37 99 235));--estimate-header-bg:var(--snice-color-background, rgb(255 255 255));--estimate-header-text:var(--snice-color-text, rgb(23 23 23));--estimate-header-padding:var(--snice-spacing-lg, 1.5rem);--estimate-title-size:var(--snice-font-size-2xl, 1.5rem);--estimate-title-weight:var(--snice-font-weight-bold, 700);--estimate-body-size:0.875rem;--estimate-label-size:0.75rem;--estimate-section-padding:var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.5rem);--estimate-gap:var(--snice-spacing-md, 1rem);--estimate-accept-bg:var(--snice-color-success, rgb(22 163 74));--estimate-accept-text:rgb(255 255 255);--estimate-decline-bg:transparent;--estimate-decline-text:var(--snice-color-danger, rgb(220 38 38));--estimate-decline-border:var(--snice-color-danger, rgb(220 38 38));--estimate-optional-bg:rgb(245 158 11 / 0.1);--estimate-optional-text:rgb(217 119 6);--estimate-optional-border:rgb(245 158 11 / 0.3);--estimate-status-draft-bg:rgb(107 114 128 / 0.1);--estimate-status-draft-text:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-status-sent-bg:rgb(59 130 246 / 0.1);--estimate-status-sent-text:rgb(37 99 235);--estimate-status-accepted-bg:rgb(22 163 74 / 0.1);--estimate-status-accepted-text:var(--snice-color-success, rgb(22 163 74));--estimate-status-declined-bg:rgb(220 38 38 / 0.1);--estimate-status-declined-text:var(--snice-color-danger, rgb(220 38 38));--estimate-status-expired-bg:rgb(245 158 11 / 0.1);--estimate-status-expired-text:rgb(217 119 6);--estimate-radius:var(--snice-border-radius-lg, 0.5rem);--estimate-shadow:none;--estimate-total-bg:var(--snice-color-background-element, rgb(252 251 249));--estimate-total-border:var(--snice-color-border, rgb(226 226 226));--estimate-total-weight:var(--snice-font-weight-bold, 700);--estimate-qr-size:5rem}*{box-sizing:border-box}.est{max-width:var(--estimate-max-width);border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);background:var(--estimate-bg);box-shadow:var(--estimate-shadow);overflow:hidden;position:relative}.est__header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--estimate-header-padding);background:var(--estimate-header-bg);border-bottom:1px solid var(--estimate-border);gap:var(--estimate-gap);flex-wrap:wrap;position:relative}.est__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__title{font-size:var(--estimate-title-size);font-weight:var(--estimate-title-weight);color:var(--estimate-header-text);margin:0;line-height:1.2}.est__meta{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--snice-spacing-2xs,.25rem)}.est__logo{max-height:2.5rem;margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__badge{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-sm,.75rem);border-radius:999px;font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.est__status--draft{background:var(--estimate-status-draft-bg);color:var(--estimate-status-draft-text)}.est__status--sent{background:var(--estimate-status-sent-bg);color:var(--estimate-status-sent-text)}.est__status--accepted{background:var(--estimate-status-accepted-bg);color:var(--estimate-status-accepted-text)}.est__status--declined{background:var(--estimate-status-declined-bg);color:var(--estimate-status-declined-text)}.est__status--expired{background:var(--estimate-status-expired-bg);color:var(--estimate-status-expired-text)}.est__expiry{font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__expiry-date{font-weight:var(--snice-font-weight-semibold,600)}.est__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__party{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__party-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__party-name{font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__party-detail{font-size:.8125rem;color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.est__table-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__table{width:100%;border-collapse:collapse;font-size:var(--estimate-body-size)}.est__table-header{text-align:left;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:2px solid var(--estimate-border);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text-secondary);font-size:var(--estimate-label-size);text-transform:uppercase;letter-spacing:.03em}.est__table-cell{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--estimate-border);color:var(--estimate-text);vertical-align:middle}.est__table-cell:nth-child(n+2),.est__table-header:nth-child(n+2){text-align:right}.est__table tbody tr:last-child .est__table-cell{border-bottom:none}.est__row--optional{opacity:.7}.est__row--optional.est__row--included{opacity:1}.est__optional-tag{display:inline-block;font-size:.6875rem;padding:.0625rem .375rem;border-radius:999px;background:var(--estimate-optional-bg);color:var(--estimate-optional-text);font-weight:var(--snice-font-weight-medium,500);margin-left:var(--snice-spacing-xs,.5rem)}.est__toggle{position:relative;display:inline-flex;width:2rem;height:1.125rem;background:var(--estimate-border);border-radius:999px;cursor:pointer;border:none;padding:0;transition:background var(--snice-transition-fast, 150ms)}.est__toggle--active{background:var(--estimate-accept-bg)}.est__toggle::after{content:'';position:absolute;left:2px;top:2px;width:.875rem;height:.875rem;background:rgb(255 255 255);border-radius:50%;transition:transform var(--snice-transition-fast, 150ms)}.est__toggle--active::after{transform:translateX(.875rem)}.est__toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__summary{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);padding:var(--estimate-section-padding);background:var(--estimate-total-bg)}.est__summary-inner{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);align-self:flex-end;min-width:14rem}.est__discount-row,.est__subtotal-row,.est__tax-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__total-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);border-top:2px solid var(--estimate-total-border);padding-top:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-2xs,.25rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__notes-section,.est__terms-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__notes-section:last-child,.est__terms-section:last-child{border-bottom:none}.est__notes-label,.est__terms-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin:0 0 var(--snice-spacing-sm,.75rem) 0}.est__notes-content,.est__terms-content{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin:0;white-space:pre-wrap}.est__actions{display:flex;gap:var(--snice-spacing-sm,.75rem);padding:var(--estimate-section-padding);justify-content:flex-end}.est__btn{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.est__btn:hover{opacity:.9}.est__btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__btn--accept{background:var(--estimate-accept-bg);color:var(--estimate-accept-text);border:none}.est__btn--decline{background:var(--estimate-decline-bg);color:var(--estimate-decline-text);border:1px solid var(--estimate-decline-border)}.est__qr{display:flex;align-items:center;justify-content:center}.est__qr ::slotted(*){width:var(--estimate-qr-size);height:var(--estimate-qr-size)}.est__qr--top-right{position:absolute;top:var(--estimate-header-padding);right:var(--estimate-header-padding)}.est__qr--bottom-right{position:absolute;bottom:var(--snice-spacing-md,1rem);right:var(--snice-spacing-lg,1.5rem)}.est__qr--footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center;border-top:1px solid var(--estimate-border)}.est__footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--estimate-border);text-align:center;font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--estimate-gap);padding:var(--estimate-section-padding)}.est__option{border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);padding:var(--snice-spacing-lg,1.5rem);display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);background:var(--estimate-bg);transition:border-color var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.est__option:hover{border-color:var(--estimate-accent);box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.est__option-title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text);margin:0}.est__option-total{display:flex;justify-content:space-between;border-top:2px solid var(--estimate-border);padding-top:var(--snice-spacing-sm,.75rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__option-btn{width:100%;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;border:1px solid var(--estimate-accent);background:0 0;color:var(--estimate-accent);transition:background var(--snice-transition-fast, 150ms),color var(--snice-transition-fast, 150ms)}.est__option-btn:hover{background:var(--estimate-accent);color:rgb(255 255 255)}.est__option-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}:host([variant=professional]) .est{border:none;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));border-radius:8px}:host([variant=professional]) .est__header{background:linear-gradient(135deg,rgb(15 23 42) 0,rgb(30 41 59) 100%);color:rgb(255 255 255);border-bottom:none;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem)}:host([variant=professional]) .est__title{color:rgb(255 255 255);font-size:1.75rem;letter-spacing:-.01em}:host([variant=professional]) .est__meta{color:rgb(148 163 184)}:host([variant=professional]) .est__badge{border:1px solid}:host([variant=professional]) .est__status--draft{background:rgb(255 255 255 / .1);color:rgb(203 213 225)}:host([variant=professional]) .est__status--sent{background:rgb(59 130 246 / .2);color:rgb(147 197 253)}:host([variant=professional]) .est__status--accepted{background:rgb(22 163 74 / .2);color:rgb(134 239 172)}:host([variant=professional]) .est__status--declined{background:rgb(220 38 38 / .2);color:rgb(252 165 165)}:host([variant=professional]) .est__status--expired{background:rgb(245 158 11 / .2);color:rgb(253 224 71)}:host([variant=professional]) .est__expiry{color:rgb(148 163 184)}:host([variant=professional]) .est__party-label{color:var(--estimate-accent)}:host([variant=professional]) .est__total-row{color:var(--estimate-accent)}:host([variant=professional]) .est__btn--accept{background:linear-gradient(135deg,rgb(22 163 74) 0,rgb(21 128 61) 100%);border-radius:6px}:host([variant=professional]) .est__btn--decline{border-radius:6px}:host([variant=creative]) .est{border:none;border-radius:12px;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));overflow:visible}:host([variant=creative]) .est__header{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 50%,rgb(245 158 11) 100%);border-bottom:none;border-radius:12px 12px 0 0;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem);position:relative}:host([variant=creative]) .est__title{color:rgb(255 255 255);font-size:1.75rem;font-weight:800}:host([variant=creative]) .est__meta{color:rgb(255 255 255 / .8)}:host([variant=creative]) .est__badge{background:rgb(255 255 255 / .2);backdrop-filter:blur(8px);border:1px solid}:host([variant=creative]) .est__status--accepted,:host([variant=creative]) .est__status--declined,:host([variant=creative]) .est__status--draft,:host([variant=creative]) .est__status--expired,:host([variant=creative]) .est__status--sent{color:rgb(255 255 255);background:rgb(255 255 255 / .2)}:host([variant=creative]) .est__expiry{color:rgb(255 255 255 / .7)}:host([variant=creative]) .est__table-header{border-bottom-color:rgb(124 58 237 / .2);color:rgb(124 58 237)}:host([variant=creative]) .est__total-row{border-top-color:rgb(124 58 237 / .3);color:rgb(124 58 237)}:host([variant=creative]) .est__btn--accept{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);border:none;border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__btn--decline{border-color:rgb(124 58 237);color:rgb(124 58 237);border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__option{border-radius:12px;border:2px solid transparent;background:linear-gradient(var(--estimate-bg),var(--estimate-bg)) padding-box,linear-gradient(135deg,rgb(124 58 237),rgb(219 39 119)) border-box}:host([variant=creative]) .est__option:hover{box-shadow:0 8px 24px rgb(124 58 237 / .15);border-color:transparent}:host([variant=creative]) .est__option-btn{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);color:rgb(255 255 255);border:none;border-radius:999px}:host([variant=creative]) .est__option-btn:hover{opacity:.9;background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%)}:host([variant=minimal]) .est{border:none;border-radius:0;box-shadow:none}:host([variant=minimal]) .est__header{border-bottom:none;padding:var(--snice-spacing-xl,2rem) 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__title{font-weight:400;font-size:1.75rem;letter-spacing:-.02em}:host([variant=minimal]) .est__badge{border-radius:2px;font-size:.6875rem;padding:.125rem .375rem}:host([variant=minimal]) .est__parties{border-bottom:none;padding:0 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__party-label{font-size:.6875rem;letter-spacing:.08em}:host([variant=minimal]) .est__table-section{padding:0;border-bottom:none}:host([variant=minimal]) .est__table-header{border-bottom-width:1px;font-size:.6875rem}:host([variant=minimal]) .est__table-cell{border-bottom-color:rgb(0 0 0 / .05)}:host([variant=minimal]) .est__summary{background:0 0;padding:var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__total-row{border-top-width:1px}:host([variant=minimal]) .est__notes-section,:host([variant=minimal]) .est__terms-section{padding:var(--snice-spacing-md,1rem) 0;border-bottom:none}:host([variant=minimal]) .est__actions{padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .est__btn{border-radius:0}:host([variant=minimal]) .est__btn--accept{background:var(--estimate-text);color:var(--estimate-bg)}:host([variant=minimal]) .est__btn--decline{border-color:var(--estimate-text);color:var(--estimate-text)}:host([variant=minimal]) .est__footer{border-top:none;padding:var(--snice-spacing-md,1rem) 0}@media print{:host{--estimate-shadow:none}.est{border:none;box-shadow:none;border-radius:0}.est__actions,.est__toggle{display:none!important}.est__row--optional .est__optional-tag{border:1px solid;background:0 0;color:rgb(0 0 0 / .6)}.est__row--optional:not(.est__row--included){text-decoration:line-through;opacity:.5}.est__badge{border:1px solid currentColor;background:0 0!important}.est__expiry{font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__notes-section,.est__summary,.est__terms-section{page-break-inside:avoid}:host([variant=creative]) .est__header,:host([variant=professional]) .est__header{background:rgb(30 41 59)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:480px){.est__header{flex-direction:column}.est__header-right{align-items:flex-start}.est__comparison,.est__parties{grid-template-columns:1fr}.est__actions{flex-direction:column}.est__btn{width:100%;text-align:center}.est__table{font-size:.8125rem}.est__qr--bottom-right,.est__qr--top-right{position:static;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center}}"}`}constructor(){super(...arguments),this.estimateNumber=(s(this,A),s(this,E,"")),this.date=(s(this,C),s(this,P,"")),this.expiryDate=(s(this,j),s(this,N,"")),this.status=(s(this,I),s(this,Q,"draft")),this.from=(s(this,R),s(this,O,null)),this.to=(s(this,F),s(this,H,null)),this.items=(s(this,B),s(this,V,[])),this.currency=(s(this,L),s(this,M,"$")),this.taxRate=(s(this,U),s(this,J,0)),this.discount=(s(this,X),s(this,G,0)),this.notes=(s(this,K),s(this,W,"")),this.terms=(s(this,Y),s(this,Z,"")),this.variant=(s(this,tt),s(this,et,"standard")),this.showQr=(s(this,at),s(this,st,!1)),this.qrData=(s(this,rt),s(this,it,"")),this.qrPosition=(s(this,nt),s(this,ot,"top-right")),s(this,ct)}},r})();return t.SniceEstimate=r,t}({},Snice);
154
+ `}componentStyles(){return e.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);color:var(--snice-color-text,rgb(23 23 23));--estimate-max-width:50rem;--estimate-bg:var(--snice-color-background, rgb(255 255 255));--estimate-bg-element:var(--snice-color-background-element, rgb(252 251 249));--estimate-border:var(--snice-color-border, rgb(226 226 226));--estimate-text:var(--snice-color-text, rgb(23 23 23));--estimate-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--estimate-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-accent:var(--snice-color-primary, rgb(37 99 235));--estimate-header-bg:var(--snice-color-background, rgb(255 255 255));--estimate-header-text:var(--snice-color-text, rgb(23 23 23));--estimate-header-padding:var(--snice-spacing-lg, 1.5rem);--estimate-title-size:var(--snice-font-size-2xl, 1.5rem);--estimate-title-weight:var(--snice-font-weight-bold, 700);--estimate-body-size:0.875rem;--estimate-label-size:0.75rem;--estimate-section-padding:var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.5rem);--estimate-gap:var(--snice-spacing-md, 1rem);--estimate-accept-bg:var(--snice-color-success, rgb(22 163 74));--estimate-accept-text:rgb(255 255 255);--estimate-decline-bg:transparent;--estimate-decline-text:var(--snice-color-danger, rgb(220 38 38));--estimate-decline-border:var(--snice-color-danger, rgb(220 38 38));--estimate-optional-bg:rgb(245 158 11 / 0.1);--estimate-optional-text:rgb(217 119 6);--estimate-optional-border:rgb(245 158 11 / 0.3);--estimate-status-draft-bg:rgb(107 114 128 / 0.1);--estimate-status-draft-text:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-status-sent-bg:rgb(59 130 246 / 0.1);--estimate-status-sent-text:rgb(37 99 235);--estimate-status-accepted-bg:rgb(22 163 74 / 0.1);--estimate-status-accepted-text:var(--snice-color-success, rgb(22 163 74));--estimate-status-declined-bg:rgb(220 38 38 / 0.1);--estimate-status-declined-text:var(--snice-color-danger, rgb(220 38 38));--estimate-status-expired-bg:rgb(245 158 11 / 0.1);--estimate-status-expired-text:rgb(217 119 6);--estimate-radius:var(--snice-border-radius-lg, 0.5rem);--estimate-shadow:none;--estimate-total-bg:var(--snice-color-background-element, rgb(252 251 249));--estimate-total-border:var(--snice-color-border, rgb(226 226 226));--estimate-total-weight:var(--snice-font-weight-bold, 700);--estimate-qr-size:5rem}*{box-sizing:border-box}.est{max-width:var(--estimate-max-width);border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);background:var(--estimate-bg);box-shadow:var(--estimate-shadow);overflow:hidden;position:relative}.est__header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--estimate-header-padding);background:var(--estimate-header-bg);border-bottom:1px solid var(--estimate-border);gap:var(--estimate-gap);flex-wrap:wrap;position:relative}.est__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__title{font-size:var(--estimate-title-size);font-weight:var(--estimate-title-weight);color:var(--estimate-header-text);margin:0;line-height:1.2}.est__meta{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--snice-spacing-2xs,.25rem)}.est__logo{max-height:2.5rem;margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__badge{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-sm,.75rem);border-radius:999px;font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.est__status--draft{background:var(--estimate-status-draft-bg);color:var(--estimate-status-draft-text)}.est__status--sent{background:var(--estimate-status-sent-bg);color:var(--estimate-status-sent-text)}.est__status--accepted{background:var(--estimate-status-accepted-bg);color:var(--estimate-status-accepted-text)}.est__status--declined{background:var(--estimate-status-declined-bg);color:var(--estimate-status-declined-text)}.est__status--expired{background:var(--estimate-status-expired-bg);color:var(--estimate-status-expired-text)}.est__expiry{font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__expiry-date{font-weight:var(--snice-font-weight-semibold,600)}.est__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__party{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__party-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__party-name{font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__party-detail{font-size:.8125rem;color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.est__table-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__table{width:100%;border-collapse:collapse;font-size:var(--estimate-body-size)}.est__table-header{text-align:left;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:2px solid var(--estimate-border);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text-secondary);font-size:var(--estimate-label-size);text-transform:uppercase;letter-spacing:.03em}.est__table-cell{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--estimate-border);color:var(--estimate-text);vertical-align:middle}.est__table-cell:nth-child(n+2),.est__table-header:nth-child(n+2){text-align:right}.est__table tbody tr:last-child .est__table-cell{border-bottom:none}.est__row--optional{opacity:.7}.est__row--optional.est__row--included{opacity:1}.est__optional-tag{display:inline-block;font-size:.6875rem;padding:.0625rem .375rem;border-radius:999px;background:var(--estimate-optional-bg);color:var(--estimate-optional-text);font-weight:var(--snice-font-weight-medium,500);margin-left:var(--snice-spacing-xs,.5rem)}.est__toggle{position:relative;display:inline-flex;width:2rem;height:1.125rem;background:var(--estimate-border);border-radius:999px;cursor:pointer;border:none;padding:0;transition:background var(--snice-transition-fast, 150ms)}.est__toggle--active{background:var(--estimate-accept-bg)}.est__toggle::after{content:'';position:absolute;left:2px;top:2px;width:.875rem;height:.875rem;background:rgb(255 255 255);border-radius:50%;transition:transform var(--snice-transition-fast, 150ms)}.est__toggle--active::after{transform:translateX(.875rem)}.est__toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__summary{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);padding:var(--estimate-section-padding);background:var(--estimate-total-bg)}.est__summary-inner{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);align-self:flex-end;min-width:14rem}.est__discount-row,.est__subtotal-row,.est__tax-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__total-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);border-top:2px solid var(--estimate-total-border);padding-top:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-2xs,.25rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__notes-section,.est__terms-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__notes-section:last-child,.est__terms-section:last-child{border-bottom:none}.est__notes-label,.est__terms-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin:0 0 var(--snice-spacing-sm,.75rem) 0}.est__notes-content,.est__terms-content{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin:0;white-space:pre-wrap}.est__actions{display:flex;gap:var(--snice-spacing-sm,.75rem);padding:var(--estimate-section-padding);justify-content:flex-end}.est__btn{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.est__btn:hover{opacity:.9}.est__btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__btn--accept{background:var(--estimate-accept-bg);color:var(--estimate-accept-text);border:none}.est__btn--decline{background:var(--estimate-decline-bg);color:var(--estimate-decline-text);border:1px solid var(--estimate-decline-border)}.est__qr{display:flex;align-items:center;justify-content:center}.est__qr ::slotted(*){width:var(--estimate-qr-size);height:var(--estimate-qr-size)}.est__qr--top-right{position:absolute;top:var(--estimate-header-padding);right:var(--estimate-header-padding)}.est__qr--bottom-right{position:absolute;bottom:var(--snice-spacing-md,1rem);right:var(--snice-spacing-lg,1.5rem)}.est__qr--footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center;border-top:1px solid var(--estimate-border)}.est__footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--estimate-border);text-align:center;font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--estimate-gap);padding:var(--estimate-section-padding)}.est__option{border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);padding:var(--snice-spacing-lg,1.5rem);display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);background:var(--estimate-bg);transition:border-color var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.est__option:hover{border-color:var(--estimate-accent);box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.est__option-title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text);margin:0}.est__option-total{display:flex;justify-content:space-between;border-top:2px solid var(--estimate-border);padding-top:var(--snice-spacing-sm,.75rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__option-btn{width:100%;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;border:1px solid var(--estimate-accent);background:0 0;color:var(--estimate-accent);transition:background var(--snice-transition-fast, 150ms),color var(--snice-transition-fast, 150ms)}.est__option-btn:hover{background:var(--estimate-accent);color:rgb(255 255 255)}.est__option-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}:host([variant=professional]) .est{border:none;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));border-radius:8px}:host([variant=professional]) .est__header{background:linear-gradient(135deg,rgb(15 23 42) 0,rgb(30 41 59) 100%);color:rgb(255 255 255);border-bottom:none;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem)}:host([variant=professional]) .est__title{color:rgb(255 255 255);font-size:1.75rem;letter-spacing:-.01em}:host([variant=professional]) .est__meta{color:rgb(148 163 184)}:host([variant=professional]) .est__badge{border:1px solid}:host([variant=professional]) .est__status--draft{background:rgb(255 255 255 / .1);color:rgb(203 213 225)}:host([variant=professional]) .est__status--sent{background:rgb(59 130 246 / .2);color:rgb(147 197 253)}:host([variant=professional]) .est__status--accepted{background:rgb(22 163 74 / .2);color:rgb(134 239 172)}:host([variant=professional]) .est__status--declined{background:rgb(220 38 38 / .2);color:rgb(252 165 165)}:host([variant=professional]) .est__status--expired{background:rgb(245 158 11 / .2);color:rgb(253 224 71)}:host([variant=professional]) .est__expiry{color:rgb(148 163 184)}:host([variant=professional]) .est__party-label{color:var(--estimate-accent)}:host([variant=professional]) .est__total-row{color:var(--estimate-accent)}:host([variant=professional]) .est__btn--accept{background:linear-gradient(135deg,rgb(22 163 74) 0,rgb(21 128 61) 100%);border-radius:6px}:host([variant=professional]) .est__btn--decline{border-radius:6px}:host([variant=creative]) .est{border:none;border-radius:12px;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));overflow:visible}:host([variant=creative]) .est__header{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 50%,rgb(245 158 11) 100%);border-bottom:none;border-radius:12px 12px 0 0;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem);position:relative}:host([variant=creative]) .est__title{color:rgb(255 255 255);font-size:1.75rem;font-weight:800}:host([variant=creative]) .est__meta{color:rgb(255 255 255 / .8)}:host([variant=creative]) .est__badge{background:rgb(255 255 255 / .2);backdrop-filter:blur(8px);border:1px solid}:host([variant=creative]) .est__status--accepted,:host([variant=creative]) .est__status--declined,:host([variant=creative]) .est__status--draft,:host([variant=creative]) .est__status--expired,:host([variant=creative]) .est__status--sent{color:rgb(255 255 255);background:rgb(255 255 255 / .2)}:host([variant=creative]) .est__expiry{color:rgb(255 255 255 / .7)}:host([variant=creative]) .est__table-header{border-bottom-color:rgb(124 58 237 / .2);color:rgb(124 58 237)}:host([variant=creative]) .est__total-row{border-top-color:rgb(124 58 237 / .3);color:rgb(124 58 237)}:host([variant=creative]) .est__btn--accept{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);border:none;border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__btn--decline{border-color:rgb(124 58 237);color:rgb(124 58 237);border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__option{border-radius:12px;border:2px solid transparent;background:linear-gradient(var(--estimate-bg),var(--estimate-bg)) padding-box,linear-gradient(135deg,rgb(124 58 237),rgb(219 39 119)) border-box}:host([variant=creative]) .est__option:hover{box-shadow:0 8px 24px rgb(124 58 237 / .15);border-color:transparent}:host([variant=creative]) .est__option-btn{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);color:rgb(255 255 255);border:none;border-radius:999px}:host([variant=creative]) .est__option-btn:hover{opacity:.9;background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%)}:host([variant=minimal]) .est{border:none;border-radius:0;box-shadow:none}:host([variant=minimal]) .est__header{border-bottom:none;padding:var(--snice-spacing-xl,2rem) 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__title{font-weight:400;font-size:1.75rem;letter-spacing:-.02em}:host([variant=minimal]) .est__badge{border-radius:2px;font-size:.6875rem;padding:.125rem .375rem}:host([variant=minimal]) .est__parties{border-bottom:none;padding:0 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__party-label{font-size:.6875rem;letter-spacing:.08em}:host([variant=minimal]) .est__table-section{padding:0;border-bottom:none}:host([variant=minimal]) .est__table-header{border-bottom-width:1px;font-size:.6875rem}:host([variant=minimal]) .est__table-cell{border-bottom-color:rgb(0 0 0 / .05)}:host([variant=minimal]) .est__summary{background:0 0;padding:var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__total-row{border-top-width:1px}:host([variant=minimal]) .est__notes-section,:host([variant=minimal]) .est__terms-section{padding:var(--snice-spacing-md,1rem) 0;border-bottom:none}:host([variant=minimal]) .est__actions{padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .est__btn{border-radius:0}:host([variant=minimal]) .est__btn--accept{background:var(--estimate-text);color:var(--estimate-bg)}:host([variant=minimal]) .est__btn--decline{border-color:var(--estimate-text);color:var(--estimate-text)}:host([variant=minimal]) .est__footer{border-top:none;padding:var(--snice-spacing-md,1rem) 0}@media print{:host{--estimate-shadow:none}.est{border:none;box-shadow:none;border-radius:0}.est__actions,.est__toggle{display:none!important}.est__row--optional .est__optional-tag{border:1px solid;background:0 0;color:rgb(0 0 0 / .6)}.est__row--optional:not(.est__row--included){text-decoration:line-through;opacity:.5}.est__badge{border:1px solid currentColor;background:0 0!important}.est__expiry{font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__notes-section,.est__summary,.est__terms-section{page-break-inside:avoid}:host([variant=creative]) .est__header,:host([variant=professional]) .est__header{background:rgb(30 41 59)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:480px){.est__header{flex-direction:column}.est__header-right{align-items:flex-start}.est__comparison,.est__parties{grid-template-columns:1fr}.est__actions{flex-direction:column}.est__btn{width:100%;text-align:center}.est__table{font-size:.8125rem}.est__qr--bottom-right,.est__qr--top-right{position:static;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center}}"}`}constructor(){super(...arguments),this.estimateNumber=(s(this,A),s(this,E,"")),this.date=(s(this,C),s(this,P,"")),this.expiryDate=(s(this,j),s(this,N,"")),this.status=(s(this,I),s(this,Q,"draft")),this.from=(s(this,R),s(this,O,null)),this.to=(s(this,F),s(this,H,null)),this.items=(s(this,B),s(this,V,[])),this.currency=(s(this,L),s(this,M,"$")),this.taxRate=(s(this,U),s(this,J,0)),this.discount=(s(this,X),s(this,G,0)),this.notes=(s(this,K),s(this,W,"")),this.terms=(s(this,Y),s(this,Z,"")),this.variant=(s(this,tt),s(this,et,"standard")),this.showQr=(s(this,at),s(this,st,!1)),this.qrData=(s(this,rt),s(this,it,"")),this.qrPosition=(s(this,nt),s(this,ot,"top-right")),s(this,ct)}},r})();return t.SniceEstimate=r,t}({},Snice);
155
155
  //# sourceMappingURL=snice-estimate.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snice-estimate.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/estimate/snice-estimate.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, dispatch, watch, 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);color:var(--snice-color-text,rgb(23 23 23));contain:layout style paint;--estimate-max-width:50rem;--estimate-bg:var(--snice-color-background, rgb(255 255 255));--estimate-bg-element:var(--snice-color-background-element, rgb(252 251 249));--estimate-border:var(--snice-color-border, rgb(226 226 226));--estimate-text:var(--snice-color-text, rgb(23 23 23));--estimate-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--estimate-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-accent:var(--snice-color-primary, rgb(37 99 235));--estimate-header-bg:var(--snice-color-background, rgb(255 255 255));--estimate-header-text:var(--snice-color-text, rgb(23 23 23));--estimate-header-padding:var(--snice-spacing-lg, 1.5rem);--estimate-title-size:var(--snice-font-size-2xl, 1.5rem);--estimate-title-weight:var(--snice-font-weight-bold, 700);--estimate-body-size:0.875rem;--estimate-label-size:0.75rem;--estimate-section-padding:var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.5rem);--estimate-gap:var(--snice-spacing-md, 1rem);--estimate-accept-bg:var(--snice-color-success, rgb(22 163 74));--estimate-accept-text:rgb(255 255 255);--estimate-decline-bg:transparent;--estimate-decline-text:var(--snice-color-danger, rgb(220 38 38));--estimate-decline-border:var(--snice-color-danger, rgb(220 38 38));--estimate-optional-bg:rgb(245 158 11 / 0.1);--estimate-optional-text:rgb(217 119 6);--estimate-optional-border:rgb(245 158 11 / 0.3);--estimate-status-draft-bg:rgb(107 114 128 / 0.1);--estimate-status-draft-text:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-status-sent-bg:rgb(59 130 246 / 0.1);--estimate-status-sent-text:rgb(37 99 235);--estimate-status-accepted-bg:rgb(22 163 74 / 0.1);--estimate-status-accepted-text:var(--snice-color-success, rgb(22 163 74));--estimate-status-declined-bg:rgb(220 38 38 / 0.1);--estimate-status-declined-text:var(--snice-color-danger, rgb(220 38 38));--estimate-status-expired-bg:rgb(245 158 11 / 0.1);--estimate-status-expired-text:rgb(217 119 6);--estimate-radius:var(--snice-border-radius-lg, 0.5rem);--estimate-shadow:none;--estimate-total-bg:var(--snice-color-background-element, rgb(252 251 249));--estimate-total-border:var(--snice-color-border, rgb(226 226 226));--estimate-total-weight:var(--snice-font-weight-bold, 700);--estimate-qr-size:5rem}*{box-sizing:border-box}.est{max-width:var(--estimate-max-width);border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);background:var(--estimate-bg);box-shadow:var(--estimate-shadow);overflow:hidden;position:relative}.est__header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--estimate-header-padding);background:var(--estimate-header-bg);border-bottom:1px solid var(--estimate-border);gap:var(--estimate-gap);flex-wrap:wrap;position:relative}.est__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__title{font-size:var(--estimate-title-size);font-weight:var(--estimate-title-weight);color:var(--estimate-header-text);margin:0;line-height:1.2}.est__meta{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--snice-spacing-2xs,.25rem)}.est__logo{max-height:2.5rem;margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__badge{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-sm,.75rem);border-radius:999px;font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.est__status--draft{background:var(--estimate-status-draft-bg);color:var(--estimate-status-draft-text)}.est__status--sent{background:var(--estimate-status-sent-bg);color:var(--estimate-status-sent-text)}.est__status--accepted{background:var(--estimate-status-accepted-bg);color:var(--estimate-status-accepted-text)}.est__status--declined{background:var(--estimate-status-declined-bg);color:var(--estimate-status-declined-text)}.est__status--expired{background:var(--estimate-status-expired-bg);color:var(--estimate-status-expired-text)}.est__expiry{font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__expiry-date{font-weight:var(--snice-font-weight-semibold,600)}.est__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__party{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__party-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__party-name{font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__party-detail{font-size:.8125rem;color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.est__table-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__table{width:100%;border-collapse:collapse;font-size:var(--estimate-body-size)}.est__table-header{text-align:left;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:2px solid var(--estimate-border);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text-secondary);font-size:var(--estimate-label-size);text-transform:uppercase;letter-spacing:.03em}.est__table-cell{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--estimate-border);color:var(--estimate-text);vertical-align:middle}.est__table-cell:nth-child(n+2),.est__table-header:nth-child(n+2){text-align:right}.est__table tbody tr:last-child .est__table-cell{border-bottom:none}.est__row--optional{opacity:.7}.est__row--optional.est__row--included{opacity:1}.est__optional-tag{display:inline-block;font-size:.6875rem;padding:.0625rem .375rem;border-radius:999px;background:var(--estimate-optional-bg);color:var(--estimate-optional-text);font-weight:var(--snice-font-weight-medium,500);margin-left:var(--snice-spacing-xs,.5rem)}.est__toggle{position:relative;display:inline-flex;width:2rem;height:1.125rem;background:var(--estimate-border);border-radius:999px;cursor:pointer;border:none;padding:0;transition:background var(--snice-transition-fast, 150ms)}.est__toggle--active{background:var(--estimate-accept-bg)}.est__toggle::after{content:'';position:absolute;left:2px;top:2px;width:.875rem;height:.875rem;background:rgb(255 255 255);border-radius:50%;transition:transform var(--snice-transition-fast, 150ms)}.est__toggle--active::after{transform:translateX(.875rem)}.est__toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__summary{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);padding:var(--estimate-section-padding);background:var(--estimate-total-bg)}.est__summary-inner{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);align-self:flex-end;min-width:14rem}.est__discount-row,.est__subtotal-row,.est__tax-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__total-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);border-top:2px solid var(--estimate-total-border);padding-top:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-2xs,.25rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__notes-section,.est__terms-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__notes-section:last-child,.est__terms-section:last-child{border-bottom:none}.est__notes-label,.est__terms-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin:0 0 var(--snice-spacing-sm,.75rem) 0}.est__notes-content,.est__terms-content{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin:0;white-space:pre-wrap}.est__actions{display:flex;gap:var(--snice-spacing-sm,.75rem);padding:var(--estimate-section-padding);justify-content:flex-end}.est__btn{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.est__btn:hover{opacity:.9}.est__btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__btn--accept{background:var(--estimate-accept-bg);color:var(--estimate-accept-text);border:none}.est__btn--decline{background:var(--estimate-decline-bg);color:var(--estimate-decline-text);border:1px solid var(--estimate-decline-border)}.est__qr{display:flex;align-items:center;justify-content:center}.est__qr ::slotted(*){width:var(--estimate-qr-size);height:var(--estimate-qr-size)}.est__qr--top-right{position:absolute;top:var(--estimate-header-padding);right:var(--estimate-header-padding)}.est__qr--bottom-right{position:absolute;bottom:var(--snice-spacing-md,1rem);right:var(--snice-spacing-lg,1.5rem)}.est__qr--footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center;border-top:1px solid var(--estimate-border)}.est__footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--estimate-border);text-align:center;font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--estimate-gap);padding:var(--estimate-section-padding)}.est__option{border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);padding:var(--snice-spacing-lg,1.5rem);display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);background:var(--estimate-bg);transition:border-color var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.est__option:hover{border-color:var(--estimate-accent);box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.est__option-title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text);margin:0}.est__option-total{display:flex;justify-content:space-between;border-top:2px solid var(--estimate-border);padding-top:var(--snice-spacing-sm,.75rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__option-btn{width:100%;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;border:1px solid var(--estimate-accent);background:0 0;color:var(--estimate-accent);transition:background var(--snice-transition-fast, 150ms),color var(--snice-transition-fast, 150ms)}.est__option-btn:hover{background:var(--estimate-accent);color:rgb(255 255 255)}.est__option-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}:host([variant=professional]) .est{border:none;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));border-radius:8px}:host([variant=professional]) .est__header{background:linear-gradient(135deg,rgb(15 23 42) 0,rgb(30 41 59) 100%);color:rgb(255 255 255);border-bottom:none;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem)}:host([variant=professional]) .est__title{color:rgb(255 255 255);font-size:1.75rem;letter-spacing:-.01em}:host([variant=professional]) .est__meta{color:rgb(148 163 184)}:host([variant=professional]) .est__badge{border:1px solid}:host([variant=professional]) .est__status--draft{background:rgb(255 255 255 / .1);color:rgb(203 213 225)}:host([variant=professional]) .est__status--sent{background:rgb(59 130 246 / .2);color:rgb(147 197 253)}:host([variant=professional]) .est__status--accepted{background:rgb(22 163 74 / .2);color:rgb(134 239 172)}:host([variant=professional]) .est__status--declined{background:rgb(220 38 38 / .2);color:rgb(252 165 165)}:host([variant=professional]) .est__status--expired{background:rgb(245 158 11 / .2);color:rgb(253 224 71)}:host([variant=professional]) .est__expiry{color:rgb(148 163 184)}:host([variant=professional]) .est__party-label{color:var(--estimate-accent)}:host([variant=professional]) .est__total-row{color:var(--estimate-accent)}:host([variant=professional]) .est__btn--accept{background:linear-gradient(135deg,rgb(22 163 74) 0,rgb(21 128 61) 100%);border-radius:6px}:host([variant=professional]) .est__btn--decline{border-radius:6px}:host([variant=creative]) .est{border:none;border-radius:12px;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));overflow:visible}:host([variant=creative]) .est__header{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 50%,rgb(245 158 11) 100%);border-bottom:none;border-radius:12px 12px 0 0;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem);position:relative}:host([variant=creative]) .est__title{color:rgb(255 255 255);font-size:1.75rem;font-weight:800}:host([variant=creative]) .est__meta{color:rgb(255 255 255 / .8)}:host([variant=creative]) .est__badge{background:rgb(255 255 255 / .2);backdrop-filter:blur(8px);border:1px solid}:host([variant=creative]) .est__status--accepted,:host([variant=creative]) .est__status--declined,:host([variant=creative]) .est__status--draft,:host([variant=creative]) .est__status--expired,:host([variant=creative]) .est__status--sent{color:rgb(255 255 255);background:rgb(255 255 255 / .2)}:host([variant=creative]) .est__expiry{color:rgb(255 255 255 / .7)}:host([variant=creative]) .est__table-header{border-bottom-color:rgb(124 58 237 / .2);color:rgb(124 58 237)}:host([variant=creative]) .est__total-row{border-top-color:rgb(124 58 237 / .3);color:rgb(124 58 237)}:host([variant=creative]) .est__btn--accept{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);border:none;border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__btn--decline{border-color:rgb(124 58 237);color:rgb(124 58 237);border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__option{border-radius:12px;border:2px solid transparent;background:linear-gradient(var(--estimate-bg),var(--estimate-bg)) padding-box,linear-gradient(135deg,rgb(124 58 237),rgb(219 39 119)) border-box}:host([variant=creative]) .est__option:hover{box-shadow:0 8px 24px rgb(124 58 237 / .15);border-color:transparent}:host([variant=creative]) .est__option-btn{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);color:rgb(255 255 255);border:none;border-radius:999px}:host([variant=creative]) .est__option-btn:hover{opacity:.9;background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%)}:host([variant=minimal]) .est{border:none;border-radius:0;box-shadow:none}:host([variant=minimal]) .est__header{border-bottom:none;padding:var(--snice-spacing-xl,2rem) 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__title{font-weight:400;font-size:1.75rem;letter-spacing:-.02em}:host([variant=minimal]) .est__badge{border-radius:2px;font-size:.6875rem;padding:.125rem .375rem}:host([variant=minimal]) .est__parties{border-bottom:none;padding:0 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__party-label{font-size:.6875rem;letter-spacing:.08em}:host([variant=minimal]) .est__table-section{padding:0;border-bottom:none}:host([variant=minimal]) .est__table-header{border-bottom-width:1px;font-size:.6875rem}:host([variant=minimal]) .est__table-cell{border-bottom-color:rgb(0 0 0 / .05)}:host([variant=minimal]) .est__summary{background:0 0;padding:var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__total-row{border-top-width:1px}:host([variant=minimal]) .est__notes-section,:host([variant=minimal]) .est__terms-section{padding:var(--snice-spacing-md,1rem) 0;border-bottom:none}:host([variant=minimal]) .est__actions{padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .est__btn{border-radius:0}:host([variant=minimal]) .est__btn--accept{background:var(--estimate-text);color:var(--estimate-bg)}:host([variant=minimal]) .est__btn--decline{border-color:var(--estimate-text);color:var(--estimate-text)}:host([variant=minimal]) .est__footer{border-top:none;padding:var(--snice-spacing-md,1rem) 0}@media print{:host{--estimate-shadow:none}.est{border:none;box-shadow:none;border-radius:0}.est__actions,.est__toggle{display:none!important}.est__row--optional .est__optional-tag{border:1px solid;background:0 0;color:rgb(0 0 0 / .6)}.est__row--optional:not(.est__row--included){text-decoration:line-through;opacity:.5}.est__badge{border:1px solid currentColor;background:0 0!important}.est__expiry{font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__notes-section,.est__summary,.est__terms-section{page-break-inside:avoid}:host([variant=creative]) .est__header,:host([variant=professional]) .est__header{background:rgb(30 41 59)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:480px){.est__header{flex-direction:column}.est__header-right{align-items:flex-start}.est__comparison,.est__parties{grid-template-columns:1fr}.est__actions{flex-direction:column}.est__btn{width:100%;text-align:center}.est__table{font-size:.8125rem}.est__qr--bottom-right,.est__qr--top-right{position:static;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center}}\";\n\nlet SniceEstimate = (() => {\n let _classDecorators = [element('snice-estimate')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _estimateNumber_decorators;\n let _estimateNumber_initializers = [];\n let _estimateNumber_extraInitializers = [];\n let _date_decorators;\n let _date_initializers = [];\n let _date_extraInitializers = [];\n let _expiryDate_decorators;\n let _expiryDate_initializers = [];\n let _expiryDate_extraInitializers = [];\n let _status_decorators;\n let _status_initializers = [];\n let _status_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 _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 _notes_decorators;\n let _notes_initializers = [];\n let _notes_extraInitializers = [];\n let _terms_decorators;\n let _terms_initializers = [];\n let _terms_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 _emitEstimateAccept_decorators;\n let _emitEstimateDecline_decorators;\n let _emitItemToggle_decorators;\n let _handleItemsChange_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 _estimateNumber_decorators = [property()];\n _date_decorators = [property()];\n _expiryDate_decorators = [property()];\n _status_decorators = [property()];\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 _currency_decorators = [property()];\n _taxRate_decorators = [property({ type: Number })];\n _discount_decorators = [property({ type: Number })];\n _notes_decorators = [property()];\n _terms_decorators = [property()];\n _variant_decorators = [property()];\n _showQr_decorators = [property({ type: Boolean })];\n _qrData_decorators = [property()];\n _qrPosition_decorators = [property()];\n _emitEstimateAccept_decorators = [dispatch('estimate-accept', { bubbles: true, composed: true })];\n _emitEstimateDecline_decorators = [dispatch('estimate-decline', { bubbles: true, composed: true })];\n _emitItemToggle_decorators = [dispatch('item-toggle', { bubbles: true, composed: true })];\n _handleItemsChange_decorators = [watch('items')];\n _renderContent_decorators = [render()];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _emitEstimateAccept_decorators, { kind: \"method\", name: \"emitEstimateAccept\", static: false, private: false, access: { has: obj => \"emitEstimateAccept\" in obj, get: obj => obj.emitEstimateAccept }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEstimateDecline_decorators, { kind: \"method\", name: \"emitEstimateDecline\", static: false, private: false, access: { has: obj => \"emitEstimateDecline\" in obj, get: obj => obj.emitEstimateDecline }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitItemToggle_decorators, { kind: \"method\", name: \"emitItemToggle\", static: false, private: false, access: { has: obj => \"emitItemToggle\" in obj, get: obj => obj.emitItemToggle }, 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, _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, _estimateNumber_decorators, { kind: \"field\", name: \"estimateNumber\", static: false, private: false, access: { has: obj => \"estimateNumber\" in obj, get: obj => obj.estimateNumber, set: (obj, value) => { obj.estimateNumber = value; } }, metadata: _metadata }, _estimateNumber_initializers, _estimateNumber_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, _expiryDate_decorators, { kind: \"field\", name: \"expiryDate\", static: false, private: false, access: { has: obj => \"expiryDate\" in obj, get: obj => obj.expiryDate, set: (obj, value) => { obj.expiryDate = value; } }, metadata: _metadata }, _expiryDate_initializers, _expiryDate_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, _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, _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, _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, _terms_decorators, { kind: \"field\", name: \"terms\", static: false, private: false, access: { has: obj => \"terms\" in obj, get: obj => obj.terms, set: (obj, value) => { obj.terms = value; } }, metadata: _metadata }, _terms_initializers, _terms_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 emitEstimateAccept(detail) {\n return detail;\n }\n emitEstimateDecline(detail) {\n return detail;\n }\n emitItemToggle(detail) {\n return detail;\n }\n handleItemsChange() {\n // Re-render on items change\n }\n handleItemToggle(index) {\n const item = this.items[index];\n if (!item || !item.optional)\n return;\n const updatedItems = [...this.items];\n const newIncluded = !(item.included !== false);\n updatedItems[index] = { ...item, included: newIncluded };\n this.items = updatedItems;\n this.emitItemToggle({\n index,\n item: updatedItems[index],\n included: newIncluded\n });\n }\n handleAccept() {\n this.emitEstimateAccept({\n estimateNumber: this.estimateNumber,\n items: this.getIncludedItems(),\n total: this.getTotal()\n });\n }\n handleDecline() {\n this.emitEstimateDecline({\n estimateNumber: this.estimateNumber\n });\n }\n getIncludedItems() {\n return this.items.filter(item => !item.optional || item.included !== false);\n }\n getSubtotal() {\n return this.getIncludedItems().reduce((sum, item) => sum + (item.quantity * item.unitPrice), 0);\n }\n getDiscountAmount() {\n return this.getSubtotal() * (this.discount / 100);\n }\n getTaxableAmount() {\n return this.getSubtotal() - this.getDiscountAmount();\n }\n getTaxAmount() {\n return this.getTaxableAmount() * (this.taxRate / 100);\n }\n getTotal() {\n return this.getTaxableAmount() + this.getTaxAmount();\n }\n formatCurrency(amount) {\n return this.currency + amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n print() {\n window.print();\n }\n toJSON() {\n return {\n estimateNumber: this.estimateNumber,\n date: this.date,\n expiryDate: this.expiryDate,\n status: this.status,\n from: this.from,\n to: this.to,\n items: [...this.items],\n currency: this.currency,\n taxRate: this.taxRate,\n discount: this.discount,\n notes: this.notes,\n terms: this.terms,\n subtotal: this.getSubtotal(),\n discountAmount: this.getDiscountAmount(),\n taxAmount: this.getTaxAmount(),\n total: this.getTotal()\n };\n }\n renderQr(position) {\n if (!this.showQr)\n return '';\n const posClass = `est__qr est__qr--${position}`;\n return html /*html*/ `\n <div class=\"${posClass}\" part=\"qr-container\">\n <slot name=\"qr\" part=\"qr\"></slot>\n </div>\n `;\n }\n renderParty(party, label) {\n if (!party)\n return '';\n const address = party.address ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.address}</span>` : '';\n const phone = party.phone ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.phone}</span>` : '';\n const email = party.email ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.email}</span>` : '';\n return html /*html*/ `\n <div class=\"est__party\" part=\"party\">\n <span class=\"est__party-label\" part=\"party-label\">${label}</span>\n <span class=\"est__party-name\" part=\"party-name\">${party.name}</span>\n ${address}\n ${phone}\n ${email}\n </div>\n `;\n }\n renderHeaderQr() {\n if (!this.showQr || this.qrPosition !== 'top-right')\n return '';\n return this.renderQr('top-right');\n }\n renderDate() {\n if (!this.date)\n return '';\n return html /*html*/ `<span class=\"est__meta\" part=\"meta\">${this.date}</span>`;\n }\n renderExpiry() {\n if (!this.expiryDate)\n return '';\n return html /*html*/ `<span class=\"est__expiry\" part=\"expiry\">Valid until <span class=\"est__expiry-date\" part=\"expiry-date\">${this.expiryDate}</span></span>`;\n }\n renderHeader() {\n return html /*html*/ `\n <div class=\"est__header\" part=\"header\">\n <div class=\"est__header-left\">\n <slot name=\"logo\" part=\"logo\" class=\"est__logo\"></slot>\n <h2 class=\"est__title\" part=\"title\">Estimate ${this.estimateNumber ? '#' + this.estimateNumber : ''}</h2>\n ${this.renderDate()}\n </div>\n <div class=\"est__header-right\">\n <span class=\"est__badge est__status--${this.status}\" part=\"status\">${this.status}</span>\n ${this.renderExpiry()}\n </div>\n ${this.renderHeaderQr()}\n </div>\n `;\n }\n renderParties() {\n if (!this.from && !this.to)\n return '';\n return html /*html*/ `\n <div class=\"est__parties\" part=\"parties\">\n ${this.renderParty(this.from, 'From')}\n ${this.renderParty(this.to, 'To')}\n </div>\n `;\n }\n renderTable() {\n if (this.items.length === 0)\n return '';\n return html /*html*/ `\n <div class=\"est__table-section\" part=\"table\">\n <table class=\"est__table\">\n <thead>\n <tr part=\"table-header\">\n <th class=\"est__table-header\">Description</th>\n <th class=\"est__table-header\">Qty</th>\n <th class=\"est__table-header\">Unit Price</th>\n <th class=\"est__table-header\">Total</th>\n <th class=\"est__table-header\"></th>\n </tr>\n </thead>\n <tbody>\n ${this.items.map((item, index) => {\n const isOptional = item.optional === true;\n const isIncluded = !isOptional || item.included !== false;\n const rowClasses = [\n isOptional ? 'est__row--optional' : '',\n isIncluded ? 'est__row--included' : ''\n ].filter(Boolean).join(' ');\n const optionalTag = isOptional ? html /*html*/ `<span class=\"est__optional-tag\">optional</span>` : '';\n const toggleBtn = isOptional ? html /*html*/ `\n <button\n class=\"est__toggle ${isIncluded ? 'est__toggle--active' : ''}\"\n @click=${() => this.handleItemToggle(index)}\n aria-label=\"${isIncluded ? 'Exclude item' : 'Include item'}\"\n part=\"item-toggle\">\n </button>\n ` : '';\n return html /*html*/ `\n <tr class=\"${rowClasses}\" part=\"table-row\">\n <td class=\"est__table-cell\" part=\"table-cell\">\n ${item.description}\n ${optionalTag}\n </td>\n <td class=\"est__table-cell\" part=\"table-cell\">${item.quantity}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">${this.formatCurrency(item.unitPrice)}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">${this.formatCurrency(item.quantity * item.unitPrice)}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">\n ${toggleBtn}\n </td>\n </tr>\n `;\n })}\n </tbody>\n </table>\n </div>\n `;\n }\n renderSummary() {\n const subtotal = this.getSubtotal();\n const discountAmount = this.getDiscountAmount();\n const taxAmount = this.getTaxAmount();\n const total = this.getTotal();\n const discountRow = this.discount > 0 ? html /*html*/ `\n <div class=\"est__discount-row\" part=\"discount-row\">\n <span>Discount (${this.discount}%)</span>\n <span>-${this.formatCurrency(discountAmount)}</span>\n </div>\n ` : '';\n const taxRow = this.taxRate > 0 ? html /*html*/ `\n <div class=\"est__tax-row\" part=\"tax-row\">\n <span>Tax (${this.taxRate}%)</span>\n <span>${this.formatCurrency(taxAmount)}</span>\n </div>\n ` : '';\n return html /*html*/ `\n <div class=\"est__summary\" part=\"summary\">\n <div class=\"est__summary-inner\">\n <div class=\"est__subtotal-row\" part=\"subtotal\">\n <span>Subtotal</span>\n <span>${this.formatCurrency(subtotal)}</span>\n </div>\n ${discountRow}\n ${taxRow}\n <div class=\"est__total-row\" part=\"total\">\n <span>Total</span>\n <span>${this.formatCurrency(total)}</span>\n </div>\n </div>\n </div>\n `;\n }\n renderNotes() {\n if (!this.notes)\n return '';\n return html /*html*/ `\n <div class=\"est__notes-section\" part=\"notes\">\n <h3 class=\"est__notes-label\" part=\"notes-label\">Notes</h3>\n <p class=\"est__notes-content\" part=\"notes-content\">${this.notes}</p>\n </div>\n `;\n }\n renderTerms() {\n if (!this.terms)\n return '';\n return html /*html*/ `\n <div class=\"est__terms-section\" part=\"terms\">\n <h3 class=\"est__terms-label\">Terms & Conditions</h3>\n <p class=\"est__terms-content\">${this.terms}</p>\n </div>\n `;\n }\n renderActions() {\n const isActionable = this.status === 'sent' || this.status === 'draft';\n if (!isActionable)\n return '';\n return html /*html*/ `\n <div class=\"est__actions\" part=\"actions\">\n <button class=\"est__btn est__btn--decline\" @click=${() => this.handleDecline()} part=\"decline-button\">\n Decline\n </button>\n <button class=\"est__btn est__btn--accept\" @click=${() => this.handleAccept()} part=\"accept-button\">\n Accept Estimate\n </button>\n </div>\n `;\n }\n renderFooter() {\n return html /*html*/ `\n <div class=\"est__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n renderComparisonView() {\n return html /*html*/ `\n <div class=\"est__comparison\" part=\"comparison\">\n ${this.items.map((item, index) => html /*html*/ `\n <div class=\"est__option\" part=\"option\">\n <h3 class=\"est__option-title\">${item.description}</h3>\n <div class=\"est__option-total\">\n <span>Total</span>\n <span>${this.formatCurrency(item.quantity * item.unitPrice)}</span>\n </div>\n <button\n class=\"est__option-btn\"\n @click=${() => {\n this.emitEstimateAccept({\n estimateNumber: this.estimateNumber,\n items: [item],\n total: item.quantity * item.unitPrice\n });\n }}\n part=\"option-button\">\n Select Option\n </button>\n </div>\n `)}\n </div>\n `;\n }\n renderComparisonSection() {\n if (this.variant !== 'comparison')\n return '';\n return this.renderComparisonView();\n }\n renderTableSection() {\n if (this.variant === 'comparison')\n return '';\n return this.renderTable();\n }\n renderQrBottom() {\n if (!this.showQr || this.qrPosition !== 'bottom-right' || this.variant === 'comparison')\n return '';\n return this.renderQr('bottom-right');\n }\n renderQrFooter() {\n if (!this.showQr || this.qrPosition !== 'footer' || this.variant === 'comparison')\n return '';\n return this.renderQr('footer');\n }\n renderSummarySection() {\n if (this.variant === 'comparison')\n return '';\n return this.renderSummary();\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"est\" part=\"base\">\n ${this.renderHeader()}\n ${this.renderParties()}\n ${this.renderComparisonSection()}\n ${this.renderTableSection()}\n ${this.renderSummarySection()}\n ${this.renderNotes()}\n ${this.renderTerms()}\n ${this.renderActions()}\n ${this.renderQrBottom()}\n ${this.renderQrFooter()}\n ${this.renderFooter()}\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.estimateNumber = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _estimateNumber_initializers, ''));\n this.date = (__runInitializers(this, _estimateNumber_extraInitializers), __runInitializers(this, _date_initializers, ''));\n this.expiryDate = (__runInitializers(this, _date_extraInitializers), __runInitializers(this, _expiryDate_initializers, ''));\n this.status = (__runInitializers(this, _expiryDate_extraInitializers), __runInitializers(this, _status_initializers, 'draft'));\n this.from = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _from_initializers, null));\n this.to = (__runInitializers(this, _from_extraInitializers), __runInitializers(this, _to_initializers, null));\n this.items = (__runInitializers(this, _to_extraInitializers), __runInitializers(this, _items_initializers, []));\n this.currency = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _currency_initializers, '$'));\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.notes = (__runInitializers(this, _discount_extraInitializers), __runInitializers(this, _notes_initializers, ''));\n this.terms = (__runInitializers(this, _notes_extraInitializers), __runInitializers(this, _terms_initializers, ''));\n this.variant = (__runInitializers(this, _terms_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, 'top-right'));\n __runInitializers(this, _qrPosition_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceEstimate };\n//# sourceMappingURL=snice-estimate.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","SniceEstimate","_classDescriptor","_classThis","_estimateNumber_decorators","_date_decorators","_expiryDate_decorators","_status_decorators","_from_decorators","_to_decorators","_items_decorators","_currency_decorators","_taxRate_decorators","_discount_decorators","_notes_decorators","_terms_decorators","_variant_decorators","_showQr_decorators","_qrData_decorators","_qrPosition_decorators","_emitEstimateAccept_decorators","_emitEstimateDecline_decorators","_emitItemToggle_decorators","_handleItemsChange_decorators","_renderContent_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_estimateNumber_initializers","_estimateNumber_extraInitializers","_date_initializers","_date_extraInitializers","_expiryDate_initializers","_expiryDate_extraInitializers","_status_initializers","_status_extraInitializers","_from_initializers","_from_extraInitializers","_to_initializers","_to_extraInitializers","_items_initializers","_items_extraInitializers","_currency_initializers","_currency_extraInitializers","_taxRate_initializers","_taxRate_extraInitializers","_discount_initializers","_discount_extraInitializers","_notes_initializers","_notes_extraInitializers","_terms_initializers","_terms_extraInitializers","_variant_initializers","_variant_extraInitializers","_showQr_initializers","_showQr_extraInitializers","_qrData_initializers","_qrData_extraInitializers","_qrPosition_initializers","_qrPosition_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","attribute","Array","Number","Boolean","dispatch","bubbles","composed","watch","render","styles","static","private","has","obj","emitEstimateAccept","emitEstimateDecline","emitItemToggle","handleItemsChange","renderContent","componentStyles","estimateNumber","date","expiryDate","status","from","to","items","currency","taxRate","discount","notes","terms","variant","showQr","qrData","qrPosition","enumerable","configurable","writable","detail","handleItemToggle","index","item","optional","updatedItems","newIncluded","included","handleAccept","getIncludedItems","total","getTotal","handleDecline","filter","getSubtotal","reduce","sum","quantity","unitPrice","getDiscountAmount","getTaxableAmount","getTaxAmount","formatCurrency","amount","toLocaleString","undefined","minimumFractionDigits","maximumFractionDigits","print","window","toJSON","subtotal","discountAmount","taxAmount","renderQr","position","posClass","html","renderParty","party","label","address","phone","email","renderHeaderQr","renderDate","renderExpiry","renderHeader","renderParties","renderTable","map","isOptional","isIncluded","rowClasses","join","optionalTag","toggleBtn","description","renderSummary","discountRow","taxRow","renderNotes","renderTerms","renderActions","renderFooter","renderComparisonView","renderComparisonSection","renderTableSection","renderQrBottom","renderQrFooter","renderSummarySection","css","constructor","super"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"snice-estimate.min.js","sources":["../../../node_modules/tslib/tslib.es6.mjs","../../components/estimate/snice-estimate.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, dispatch, watch, 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);color:var(--snice-color-text,rgb(23 23 23));--estimate-max-width:50rem;--estimate-bg:var(--snice-color-background, rgb(255 255 255));--estimate-bg-element:var(--snice-color-background-element, rgb(252 251 249));--estimate-border:var(--snice-color-border, rgb(226 226 226));--estimate-text:var(--snice-color-text, rgb(23 23 23));--estimate-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--estimate-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-accent:var(--snice-color-primary, rgb(37 99 235));--estimate-header-bg:var(--snice-color-background, rgb(255 255 255));--estimate-header-text:var(--snice-color-text, rgb(23 23 23));--estimate-header-padding:var(--snice-spacing-lg, 1.5rem);--estimate-title-size:var(--snice-font-size-2xl, 1.5rem);--estimate-title-weight:var(--snice-font-weight-bold, 700);--estimate-body-size:0.875rem;--estimate-label-size:0.75rem;--estimate-section-padding:var(--snice-spacing-md, 1rem) var(--snice-spacing-lg, 1.5rem);--estimate-gap:var(--snice-spacing-md, 1rem);--estimate-accept-bg:var(--snice-color-success, rgb(22 163 74));--estimate-accept-text:rgb(255 255 255);--estimate-decline-bg:transparent;--estimate-decline-text:var(--snice-color-danger, rgb(220 38 38));--estimate-decline-border:var(--snice-color-danger, rgb(220 38 38));--estimate-optional-bg:rgb(245 158 11 / 0.1);--estimate-optional-text:rgb(217 119 6);--estimate-optional-border:rgb(245 158 11 / 0.3);--estimate-status-draft-bg:rgb(107 114 128 / 0.1);--estimate-status-draft-text:var(--snice-color-text-tertiary, rgb(115 115 115));--estimate-status-sent-bg:rgb(59 130 246 / 0.1);--estimate-status-sent-text:rgb(37 99 235);--estimate-status-accepted-bg:rgb(22 163 74 / 0.1);--estimate-status-accepted-text:var(--snice-color-success, rgb(22 163 74));--estimate-status-declined-bg:rgb(220 38 38 / 0.1);--estimate-status-declined-text:var(--snice-color-danger, rgb(220 38 38));--estimate-status-expired-bg:rgb(245 158 11 / 0.1);--estimate-status-expired-text:rgb(217 119 6);--estimate-radius:var(--snice-border-radius-lg, 0.5rem);--estimate-shadow:none;--estimate-total-bg:var(--snice-color-background-element, rgb(252 251 249));--estimate-total-border:var(--snice-color-border, rgb(226 226 226));--estimate-total-weight:var(--snice-font-weight-bold, 700);--estimate-qr-size:5rem}*{box-sizing:border-box}.est{max-width:var(--estimate-max-width);border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);background:var(--estimate-bg);box-shadow:var(--estimate-shadow);overflow:hidden;position:relative}.est__header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--estimate-header-padding);background:var(--estimate-header-bg);border-bottom:1px solid var(--estimate-border);gap:var(--estimate-gap);flex-wrap:wrap;position:relative}.est__header-left{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__title{font-size:var(--estimate-title-size);font-weight:var(--estimate-title-weight);color:var(--estimate-header-text);margin:0;line-height:1.2}.est__meta{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__header-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--snice-spacing-2xs,.25rem)}.est__logo{max-height:2.5rem;margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__badge{display:inline-flex;align-items:center;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-sm,.75rem);border-radius:999px;font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.est__status--draft{background:var(--estimate-status-draft-bg);color:var(--estimate-status-draft-text)}.est__status--sent{background:var(--estimate-status-sent-bg);color:var(--estimate-status-sent-text)}.est__status--accepted{background:var(--estimate-status-accepted-bg);color:var(--estimate-status-accepted-text)}.est__status--declined{background:var(--estimate-status-declined-bg);color:var(--estimate-status-declined-text)}.est__status--expired{background:var(--estimate-status-expired-bg);color:var(--estimate-status-expired-text)}.est__expiry{font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__expiry-date{font-weight:var(--snice-font-weight-semibold,600)}.est__parties{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-lg,1.5rem);padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__party{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.est__party-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin-bottom:var(--snice-spacing-2xs,.25rem)}.est__party-name{font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__party-detail{font-size:.8125rem;color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5)}.est__table-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__table{width:100%;border-collapse:collapse;font-size:var(--estimate-body-size)}.est__table-header{text-align:left;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:2px solid var(--estimate-border);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text-secondary);font-size:var(--estimate-label-size);text-transform:uppercase;letter-spacing:.03em}.est__table-cell{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-sm,.75rem);border-bottom:1px solid var(--estimate-border);color:var(--estimate-text);vertical-align:middle}.est__table-cell:nth-child(n+2),.est__table-header:nth-child(n+2){text-align:right}.est__table tbody tr:last-child .est__table-cell{border-bottom:none}.est__row--optional{opacity:.7}.est__row--optional.est__row--included{opacity:1}.est__optional-tag{display:inline-block;font-size:.6875rem;padding:.0625rem .375rem;border-radius:999px;background:var(--estimate-optional-bg);color:var(--estimate-optional-text);font-weight:var(--snice-font-weight-medium,500);margin-left:var(--snice-spacing-xs,.5rem)}.est__toggle{position:relative;display:inline-flex;width:2rem;height:1.125rem;background:var(--estimate-border);border-radius:999px;cursor:pointer;border:none;padding:0;transition:background var(--snice-transition-fast, 150ms)}.est__toggle--active{background:var(--estimate-accept-bg)}.est__toggle::after{content:'';position:absolute;left:2px;top:2px;width:.875rem;height:.875rem;background:rgb(255 255 255);border-radius:50%;transition:transform var(--snice-transition-fast, 150ms)}.est__toggle--active::after{transform:translateX(.875rem)}.est__toggle:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__summary{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);padding:var(--estimate-section-padding);background:var(--estimate-total-bg)}.est__summary-inner{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem);align-self:flex-end;min-width:14rem}.est__discount-row,.est__subtotal-row,.est__tax-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);font-size:var(--estimate-body-size);color:var(--estimate-text-secondary)}.est__total-row{display:flex;justify-content:space-between;gap:var(--snice-spacing-lg,1.5rem);border-top:2px solid var(--estimate-total-border);padding-top:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-2xs,.25rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__notes-section,.est__terms-section{padding:var(--estimate-section-padding);border-bottom:1px solid var(--estimate-border)}.est__notes-section:last-child,.est__terms-section:last-child{border-bottom:none}.est__notes-label,.est__terms-label{font-size:var(--estimate-label-size);font-weight:var(--snice-font-weight-semibold,600);text-transform:uppercase;letter-spacing:.05em;color:var(--estimate-text-tertiary);margin:0 0 var(--snice-spacing-sm,.75rem) 0}.est__notes-content,.est__terms-content{font-size:var(--estimate-body-size);color:var(--estimate-text-secondary);line-height:var(--snice-line-height-normal, 1.5);margin:0;white-space:pre-wrap}.est__actions{display:flex;gap:var(--snice-spacing-sm,.75rem);padding:var(--estimate-section-padding);justify-content:flex-end}.est__btn{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-lg,1.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms)}.est__btn:hover{opacity:.9}.est__btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}.est__btn--accept{background:var(--estimate-accept-bg);color:var(--estimate-accept-text);border:none}.est__btn--decline{background:var(--estimate-decline-bg);color:var(--estimate-decline-text);border:1px solid var(--estimate-decline-border)}.est__qr{display:flex;align-items:center;justify-content:center}.est__qr ::slotted(*){width:var(--estimate-qr-size);height:var(--estimate-qr-size)}.est__qr--top-right{position:absolute;top:var(--estimate-header-padding);right:var(--estimate-header-padding)}.est__qr--bottom-right{position:absolute;bottom:var(--snice-spacing-md,1rem);right:var(--snice-spacing-lg,1.5rem)}.est__qr--footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center;border-top:1px solid var(--estimate-border)}.est__footer{padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);border-top:1px solid var(--estimate-border);text-align:center;font-size:var(--estimate-label-size);color:var(--estimate-text-tertiary)}.est__comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--estimate-gap);padding:var(--estimate-section-padding)}.est__option{border:1px solid var(--estimate-border);border-radius:var(--estimate-radius);padding:var(--snice-spacing-lg,1.5rem);display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);background:var(--estimate-bg);transition:border-color var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.est__option:hover{border-color:var(--estimate-accent);box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1))}.est__option-title{font-size:var(--snice-font-size-lg, 1.125rem);font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text);margin:0}.est__option-total{display:flex;justify-content:space-between;border-top:2px solid var(--estimate-border);padding-top:var(--snice-spacing-sm,.75rem);font-weight:var(--estimate-total-weight);font-size:var(--snice-font-size-lg, 1.125rem);color:var(--estimate-text)}.est__option-btn{width:100%;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:var(--snice-border-radius-md,.25rem);font-family:inherit;font-size:var(--estimate-body-size);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;border:1px solid var(--estimate-accent);background:0 0;color:var(--estimate-accent);transition:background var(--snice-transition-fast, 150ms),color var(--snice-transition-fast, 150ms)}.est__option-btn:hover{background:var(--estimate-accent);color:rgb(255 255 255)}.est__option-btn:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:var(--snice-focus-ring-offset,2px)}:host([variant=professional]) .est{border:none;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));border-radius:8px}:host([variant=professional]) .est__header{background:linear-gradient(135deg,rgb(15 23 42) 0,rgb(30 41 59) 100%);color:rgb(255 255 255);border-bottom:none;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem)}:host([variant=professional]) .est__title{color:rgb(255 255 255);font-size:1.75rem;letter-spacing:-.01em}:host([variant=professional]) .est__meta{color:rgb(148 163 184)}:host([variant=professional]) .est__badge{border:1px solid}:host([variant=professional]) .est__status--draft{background:rgb(255 255 255 / .1);color:rgb(203 213 225)}:host([variant=professional]) .est__status--sent{background:rgb(59 130 246 / .2);color:rgb(147 197 253)}:host([variant=professional]) .est__status--accepted{background:rgb(22 163 74 / .2);color:rgb(134 239 172)}:host([variant=professional]) .est__status--declined{background:rgb(220 38 38 / .2);color:rgb(252 165 165)}:host([variant=professional]) .est__status--expired{background:rgb(245 158 11 / .2);color:rgb(253 224 71)}:host([variant=professional]) .est__expiry{color:rgb(148 163 184)}:host([variant=professional]) .est__party-label{color:var(--estimate-accent)}:host([variant=professional]) .est__total-row{color:var(--estimate-accent)}:host([variant=professional]) .est__btn--accept{background:linear-gradient(135deg,rgb(22 163 74) 0,rgb(21 128 61) 100%);border-radius:6px}:host([variant=professional]) .est__btn--decline{border-radius:6px}:host([variant=creative]) .est{border:none;border-radius:12px;box-shadow:var(--snice-shadow-lg,0 10px 15px -3px rgb(0 0 0 / .1),0 4px 6px -4px rgb(0 0 0 / .1));overflow:visible}:host([variant=creative]) .est__header{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 50%,rgb(245 158 11) 100%);border-bottom:none;border-radius:12px 12px 0 0;padding:var(--snice-spacing-xl,2rem) var(--snice-spacing-lg,1.5rem);position:relative}:host([variant=creative]) .est__title{color:rgb(255 255 255);font-size:1.75rem;font-weight:800}:host([variant=creative]) .est__meta{color:rgb(255 255 255 / .8)}:host([variant=creative]) .est__badge{background:rgb(255 255 255 / .2);backdrop-filter:blur(8px);border:1px solid}:host([variant=creative]) .est__status--accepted,:host([variant=creative]) .est__status--declined,:host([variant=creative]) .est__status--draft,:host([variant=creative]) .est__status--expired,:host([variant=creative]) .est__status--sent{color:rgb(255 255 255);background:rgb(255 255 255 / .2)}:host([variant=creative]) .est__expiry{color:rgb(255 255 255 / .7)}:host([variant=creative]) .est__table-header{border-bottom-color:rgb(124 58 237 / .2);color:rgb(124 58 237)}:host([variant=creative]) .est__total-row{border-top-color:rgb(124 58 237 / .3);color:rgb(124 58 237)}:host([variant=creative]) .est__btn--accept{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);border:none;border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__btn--decline{border-color:rgb(124 58 237);color:rgb(124 58 237);border-radius:999px;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-xl,2rem)}:host([variant=creative]) .est__option{border-radius:12px;border:2px solid transparent;background:linear-gradient(var(--estimate-bg),var(--estimate-bg)) padding-box,linear-gradient(135deg,rgb(124 58 237),rgb(219 39 119)) border-box}:host([variant=creative]) .est__option:hover{box-shadow:0 8px 24px rgb(124 58 237 / .15);border-color:transparent}:host([variant=creative]) .est__option-btn{background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%);color:rgb(255 255 255);border:none;border-radius:999px}:host([variant=creative]) .est__option-btn:hover{opacity:.9;background:linear-gradient(135deg,rgb(124 58 237) 0,rgb(219 39 119) 100%)}:host([variant=minimal]) .est{border:none;border-radius:0;box-shadow:none}:host([variant=minimal]) .est__header{border-bottom:none;padding:var(--snice-spacing-xl,2rem) 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__title{font-weight:400;font-size:1.75rem;letter-spacing:-.02em}:host([variant=minimal]) .est__badge{border-radius:2px;font-size:.6875rem;padding:.125rem .375rem}:host([variant=minimal]) .est__parties{border-bottom:none;padding:0 0 var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__party-label{font-size:.6875rem;letter-spacing:.08em}:host([variant=minimal]) .est__table-section{padding:0;border-bottom:none}:host([variant=minimal]) .est__table-header{border-bottom-width:1px;font-size:.6875rem}:host([variant=minimal]) .est__table-cell{border-bottom-color:rgb(0 0 0 / .05)}:host([variant=minimal]) .est__summary{background:0 0;padding:var(--snice-spacing-lg,1.5rem) 0}:host([variant=minimal]) .est__total-row{border-top-width:1px}:host([variant=minimal]) .est__notes-section,:host([variant=minimal]) .est__terms-section{padding:var(--snice-spacing-md,1rem) 0;border-bottom:none}:host([variant=minimal]) .est__actions{padding:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .est__btn{border-radius:0}:host([variant=minimal]) .est__btn--accept{background:var(--estimate-text);color:var(--estimate-bg)}:host([variant=minimal]) .est__btn--decline{border-color:var(--estimate-text);color:var(--estimate-text)}:host([variant=minimal]) .est__footer{border-top:none;padding:var(--snice-spacing-md,1rem) 0}@media print{:host{--estimate-shadow:none}.est{border:none;box-shadow:none;border-radius:0}.est__actions,.est__toggle{display:none!important}.est__row--optional .est__optional-tag{border:1px solid;background:0 0;color:rgb(0 0 0 / .6)}.est__row--optional:not(.est__row--included){text-decoration:line-through;opacity:.5}.est__badge{border:1px solid currentColor;background:0 0!important}.est__expiry{font-weight:var(--snice-font-weight-semibold,600);color:var(--estimate-text)}.est__notes-section,.est__summary,.est__terms-section{page-break-inside:avoid}:host([variant=creative]) .est__header,:host([variant=professional]) .est__header{background:rgb(30 41 59)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media (max-width:480px){.est__header{flex-direction:column}.est__header-right{align-items:flex-start}.est__comparison,.est__parties{grid-template-columns:1fr}.est__actions{flex-direction:column}.est__btn{width:100%;text-align:center}.est__table{font-size:.8125rem}.est__qr--bottom-right,.est__qr--top-right{position:static;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-lg,1.5rem);justify-content:center}}\";\n\nlet SniceEstimate = (() => {\n let _classDecorators = [element('snice-estimate')];\n let _classDescriptor;\n let _classExtraInitializers = [];\n let _classThis;\n let _classSuper = HTMLElement;\n let _instanceExtraInitializers = [];\n let _estimateNumber_decorators;\n let _estimateNumber_initializers = [];\n let _estimateNumber_extraInitializers = [];\n let _date_decorators;\n let _date_initializers = [];\n let _date_extraInitializers = [];\n let _expiryDate_decorators;\n let _expiryDate_initializers = [];\n let _expiryDate_extraInitializers = [];\n let _status_decorators;\n let _status_initializers = [];\n let _status_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 _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 _notes_decorators;\n let _notes_initializers = [];\n let _notes_extraInitializers = [];\n let _terms_decorators;\n let _terms_initializers = [];\n let _terms_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 _emitEstimateAccept_decorators;\n let _emitEstimateDecline_decorators;\n let _emitItemToggle_decorators;\n let _handleItemsChange_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 _estimateNumber_decorators = [property()];\n _date_decorators = [property()];\n _expiryDate_decorators = [property()];\n _status_decorators = [property()];\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 _currency_decorators = [property()];\n _taxRate_decorators = [property({ type: Number })];\n _discount_decorators = [property({ type: Number })];\n _notes_decorators = [property()];\n _terms_decorators = [property()];\n _variant_decorators = [property()];\n _showQr_decorators = [property({ type: Boolean })];\n _qrData_decorators = [property()];\n _qrPosition_decorators = [property()];\n _emitEstimateAccept_decorators = [dispatch('estimate-accept', { bubbles: true, composed: true })];\n _emitEstimateDecline_decorators = [dispatch('estimate-decline', { bubbles: true, composed: true })];\n _emitItemToggle_decorators = [dispatch('item-toggle', { bubbles: true, composed: true })];\n _handleItemsChange_decorators = [watch('items')];\n _renderContent_decorators = [render()];\n _componentStyles_decorators = [styles()];\n __esDecorate(this, null, _emitEstimateAccept_decorators, { kind: \"method\", name: \"emitEstimateAccept\", static: false, private: false, access: { has: obj => \"emitEstimateAccept\" in obj, get: obj => obj.emitEstimateAccept }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitEstimateDecline_decorators, { kind: \"method\", name: \"emitEstimateDecline\", static: false, private: false, access: { has: obj => \"emitEstimateDecline\" in obj, get: obj => obj.emitEstimateDecline }, metadata: _metadata }, null, _instanceExtraInitializers);\n __esDecorate(this, null, _emitItemToggle_decorators, { kind: \"method\", name: \"emitItemToggle\", static: false, private: false, access: { has: obj => \"emitItemToggle\" in obj, get: obj => obj.emitItemToggle }, 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, _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, _estimateNumber_decorators, { kind: \"field\", name: \"estimateNumber\", static: false, private: false, access: { has: obj => \"estimateNumber\" in obj, get: obj => obj.estimateNumber, set: (obj, value) => { obj.estimateNumber = value; } }, metadata: _metadata }, _estimateNumber_initializers, _estimateNumber_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, _expiryDate_decorators, { kind: \"field\", name: \"expiryDate\", static: false, private: false, access: { has: obj => \"expiryDate\" in obj, get: obj => obj.expiryDate, set: (obj, value) => { obj.expiryDate = value; } }, metadata: _metadata }, _expiryDate_initializers, _expiryDate_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, _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, _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, _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, _terms_decorators, { kind: \"field\", name: \"terms\", static: false, private: false, access: { has: obj => \"terms\" in obj, get: obj => obj.terms, set: (obj, value) => { obj.terms = value; } }, metadata: _metadata }, _terms_initializers, _terms_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 emitEstimateAccept(detail) {\n return detail;\n }\n emitEstimateDecline(detail) {\n return detail;\n }\n emitItemToggle(detail) {\n return detail;\n }\n handleItemsChange() {\n // Re-render on items change\n }\n handleItemToggle(index) {\n const item = this.items[index];\n if (!item || !item.optional)\n return;\n const updatedItems = [...this.items];\n const newIncluded = !(item.included !== false);\n updatedItems[index] = { ...item, included: newIncluded };\n this.items = updatedItems;\n this.emitItemToggle({\n index,\n item: updatedItems[index],\n included: newIncluded\n });\n }\n handleAccept() {\n this.emitEstimateAccept({\n estimateNumber: this.estimateNumber,\n items: this.getIncludedItems(),\n total: this.getTotal()\n });\n }\n handleDecline() {\n this.emitEstimateDecline({\n estimateNumber: this.estimateNumber\n });\n }\n getIncludedItems() {\n return this.items.filter(item => !item.optional || item.included !== false);\n }\n getSubtotal() {\n return this.getIncludedItems().reduce((sum, item) => sum + (item.quantity * item.unitPrice), 0);\n }\n getDiscountAmount() {\n return this.getSubtotal() * (this.discount / 100);\n }\n getTaxableAmount() {\n return this.getSubtotal() - this.getDiscountAmount();\n }\n getTaxAmount() {\n return this.getTaxableAmount() * (this.taxRate / 100);\n }\n getTotal() {\n return this.getTaxableAmount() + this.getTaxAmount();\n }\n formatCurrency(amount) {\n return this.currency + amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n print() {\n window.print();\n }\n toJSON() {\n return {\n estimateNumber: this.estimateNumber,\n date: this.date,\n expiryDate: this.expiryDate,\n status: this.status,\n from: this.from,\n to: this.to,\n items: [...this.items],\n currency: this.currency,\n taxRate: this.taxRate,\n discount: this.discount,\n notes: this.notes,\n terms: this.terms,\n subtotal: this.getSubtotal(),\n discountAmount: this.getDiscountAmount(),\n taxAmount: this.getTaxAmount(),\n total: this.getTotal()\n };\n }\n renderQr(position) {\n if (!this.showQr)\n return '';\n const posClass = `est__qr est__qr--${position}`;\n return html /*html*/ `\n <div class=\"${posClass}\" part=\"qr-container\">\n <slot name=\"qr\" part=\"qr\"></slot>\n </div>\n `;\n }\n renderParty(party, label) {\n if (!party)\n return '';\n const address = party.address ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.address}</span>` : '';\n const phone = party.phone ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.phone}</span>` : '';\n const email = party.email ? html /*html*/ `<span class=\"est__party-detail\" part=\"party-detail\">${party.email}</span>` : '';\n return html /*html*/ `\n <div class=\"est__party\" part=\"party\">\n <span class=\"est__party-label\" part=\"party-label\">${label}</span>\n <span class=\"est__party-name\" part=\"party-name\">${party.name}</span>\n ${address}\n ${phone}\n ${email}\n </div>\n `;\n }\n renderHeaderQr() {\n if (!this.showQr || this.qrPosition !== 'top-right')\n return '';\n return this.renderQr('top-right');\n }\n renderDate() {\n if (!this.date)\n return '';\n return html /*html*/ `<span class=\"est__meta\" part=\"meta\">${this.date}</span>`;\n }\n renderExpiry() {\n if (!this.expiryDate)\n return '';\n return html /*html*/ `<span class=\"est__expiry\" part=\"expiry\">Valid until <span class=\"est__expiry-date\" part=\"expiry-date\">${this.expiryDate}</span></span>`;\n }\n renderHeader() {\n return html /*html*/ `\n <div class=\"est__header\" part=\"header\">\n <div class=\"est__header-left\">\n <slot name=\"logo\" part=\"logo\" class=\"est__logo\"></slot>\n <h2 class=\"est__title\" part=\"title\">Estimate ${this.estimateNumber ? '#' + this.estimateNumber : ''}</h2>\n ${this.renderDate()}\n </div>\n <div class=\"est__header-right\">\n <span class=\"est__badge est__status--${this.status}\" part=\"status\">${this.status}</span>\n ${this.renderExpiry()}\n </div>\n ${this.renderHeaderQr()}\n </div>\n `;\n }\n renderParties() {\n if (!this.from && !this.to)\n return '';\n return html /*html*/ `\n <div class=\"est__parties\" part=\"parties\">\n ${this.renderParty(this.from, 'From')}\n ${this.renderParty(this.to, 'To')}\n </div>\n `;\n }\n renderTable() {\n if (this.items.length === 0)\n return '';\n return html /*html*/ `\n <div class=\"est__table-section\" part=\"table\">\n <table class=\"est__table\">\n <thead>\n <tr part=\"table-header\">\n <th class=\"est__table-header\">Description</th>\n <th class=\"est__table-header\">Qty</th>\n <th class=\"est__table-header\">Unit Price</th>\n <th class=\"est__table-header\">Total</th>\n <th class=\"est__table-header\"></th>\n </tr>\n </thead>\n <tbody>\n ${this.items.map((item, index) => {\n const isOptional = item.optional === true;\n const isIncluded = !isOptional || item.included !== false;\n const rowClasses = [\n isOptional ? 'est__row--optional' : '',\n isIncluded ? 'est__row--included' : ''\n ].filter(Boolean).join(' ');\n const optionalTag = isOptional ? html /*html*/ `<span class=\"est__optional-tag\">optional</span>` : '';\n const toggleBtn = isOptional ? html /*html*/ `\n <button\n class=\"est__toggle ${isIncluded ? 'est__toggle--active' : ''}\"\n @click=${() => this.handleItemToggle(index)}\n aria-label=\"${isIncluded ? 'Exclude item' : 'Include item'}\"\n part=\"item-toggle\">\n </button>\n ` : '';\n return html /*html*/ `\n <tr class=\"${rowClasses}\" part=\"table-row\">\n <td class=\"est__table-cell\" part=\"table-cell\">\n ${item.description}\n ${optionalTag}\n </td>\n <td class=\"est__table-cell\" part=\"table-cell\">${item.quantity}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">${this.formatCurrency(item.unitPrice)}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">${this.formatCurrency(item.quantity * item.unitPrice)}</td>\n <td class=\"est__table-cell\" part=\"table-cell\">\n ${toggleBtn}\n </td>\n </tr>\n `;\n })}\n </tbody>\n </table>\n </div>\n `;\n }\n renderSummary() {\n const subtotal = this.getSubtotal();\n const discountAmount = this.getDiscountAmount();\n const taxAmount = this.getTaxAmount();\n const total = this.getTotal();\n const discountRow = this.discount > 0 ? html /*html*/ `\n <div class=\"est__discount-row\" part=\"discount-row\">\n <span>Discount (${this.discount}%)</span>\n <span>-${this.formatCurrency(discountAmount)}</span>\n </div>\n ` : '';\n const taxRow = this.taxRate > 0 ? html /*html*/ `\n <div class=\"est__tax-row\" part=\"tax-row\">\n <span>Tax (${this.taxRate}%)</span>\n <span>${this.formatCurrency(taxAmount)}</span>\n </div>\n ` : '';\n return html /*html*/ `\n <div class=\"est__summary\" part=\"summary\">\n <div class=\"est__summary-inner\">\n <div class=\"est__subtotal-row\" part=\"subtotal\">\n <span>Subtotal</span>\n <span>${this.formatCurrency(subtotal)}</span>\n </div>\n ${discountRow}\n ${taxRow}\n <div class=\"est__total-row\" part=\"total\">\n <span>Total</span>\n <span>${this.formatCurrency(total)}</span>\n </div>\n </div>\n </div>\n `;\n }\n renderNotes() {\n if (!this.notes)\n return '';\n return html /*html*/ `\n <div class=\"est__notes-section\" part=\"notes\">\n <h3 class=\"est__notes-label\" part=\"notes-label\">Notes</h3>\n <p class=\"est__notes-content\" part=\"notes-content\">${this.notes}</p>\n </div>\n `;\n }\n renderTerms() {\n if (!this.terms)\n return '';\n return html /*html*/ `\n <div class=\"est__terms-section\" part=\"terms\">\n <h3 class=\"est__terms-label\">Terms & Conditions</h3>\n <p class=\"est__terms-content\">${this.terms}</p>\n </div>\n `;\n }\n renderActions() {\n const isActionable = this.status === 'sent' || this.status === 'draft';\n if (!isActionable)\n return '';\n return html /*html*/ `\n <div class=\"est__actions\" part=\"actions\">\n <button class=\"est__btn est__btn--decline\" @click=${() => this.handleDecline()} part=\"decline-button\">\n Decline\n </button>\n <button class=\"est__btn est__btn--accept\" @click=${() => this.handleAccept()} part=\"accept-button\">\n Accept Estimate\n </button>\n </div>\n `;\n }\n renderFooter() {\n return html /*html*/ `\n <div class=\"est__footer\" part=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n `;\n }\n renderComparisonView() {\n return html /*html*/ `\n <div class=\"est__comparison\" part=\"comparison\">\n ${this.items.map((item, index) => html /*html*/ `\n <div class=\"est__option\" part=\"option\">\n <h3 class=\"est__option-title\">${item.description}</h3>\n <div class=\"est__option-total\">\n <span>Total</span>\n <span>${this.formatCurrency(item.quantity * item.unitPrice)}</span>\n </div>\n <button\n class=\"est__option-btn\"\n @click=${() => {\n this.emitEstimateAccept({\n estimateNumber: this.estimateNumber,\n items: [item],\n total: item.quantity * item.unitPrice\n });\n }}\n part=\"option-button\">\n Select Option\n </button>\n </div>\n `)}\n </div>\n `;\n }\n renderComparisonSection() {\n if (this.variant !== 'comparison')\n return '';\n return this.renderComparisonView();\n }\n renderTableSection() {\n if (this.variant === 'comparison')\n return '';\n return this.renderTable();\n }\n renderQrBottom() {\n if (!this.showQr || this.qrPosition !== 'bottom-right' || this.variant === 'comparison')\n return '';\n return this.renderQr('bottom-right');\n }\n renderQrFooter() {\n if (!this.showQr || this.qrPosition !== 'footer' || this.variant === 'comparison')\n return '';\n return this.renderQr('footer');\n }\n renderSummarySection() {\n if (this.variant === 'comparison')\n return '';\n return this.renderSummary();\n }\n renderContent() {\n return html /*html*/ `\n <div class=\"est\" part=\"base\">\n ${this.renderHeader()}\n ${this.renderParties()}\n ${this.renderComparisonSection()}\n ${this.renderTableSection()}\n ${this.renderSummarySection()}\n ${this.renderNotes()}\n ${this.renderTerms()}\n ${this.renderActions()}\n ${this.renderQrBottom()}\n ${this.renderQrFooter()}\n ${this.renderFooter()}\n </div>\n `;\n }\n componentStyles() {\n return css /*css*/ `${cssContent}`;\n }\n constructor() {\n super(...arguments);\n this.estimateNumber = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _estimateNumber_initializers, ''));\n this.date = (__runInitializers(this, _estimateNumber_extraInitializers), __runInitializers(this, _date_initializers, ''));\n this.expiryDate = (__runInitializers(this, _date_extraInitializers), __runInitializers(this, _expiryDate_initializers, ''));\n this.status = (__runInitializers(this, _expiryDate_extraInitializers), __runInitializers(this, _status_initializers, 'draft'));\n this.from = (__runInitializers(this, _status_extraInitializers), __runInitializers(this, _from_initializers, null));\n this.to = (__runInitializers(this, _from_extraInitializers), __runInitializers(this, _to_initializers, null));\n this.items = (__runInitializers(this, _to_extraInitializers), __runInitializers(this, _items_initializers, []));\n this.currency = (__runInitializers(this, _items_extraInitializers), __runInitializers(this, _currency_initializers, '$'));\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.notes = (__runInitializers(this, _discount_extraInitializers), __runInitializers(this, _notes_initializers, ''));\n this.terms = (__runInitializers(this, _notes_extraInitializers), __runInitializers(this, _terms_initializers, ''));\n this.variant = (__runInitializers(this, _terms_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, 'top-right'));\n __runInitializers(this, _qrPosition_extraInitializers);\n }\n });\n return _classThis;\n})();\n\nexport { SniceEstimate };\n//# sourceMappingURL=snice-estimate.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","SniceEstimate","_classDescriptor","_classThis","_estimateNumber_decorators","_date_decorators","_expiryDate_decorators","_status_decorators","_from_decorators","_to_decorators","_items_decorators","_currency_decorators","_taxRate_decorators","_discount_decorators","_notes_decorators","_terms_decorators","_variant_decorators","_showQr_decorators","_qrData_decorators","_qrPosition_decorators","_emitEstimateAccept_decorators","_emitEstimateDecline_decorators","_emitItemToggle_decorators","_handleItemsChange_decorators","_renderContent_decorators","_componentStyles_decorators","_classDecorators","element","_classExtraInitializers","_classSuper","HTMLElement","_instanceExtraInitializers","_estimateNumber_initializers","_estimateNumber_extraInitializers","_date_initializers","_date_extraInitializers","_expiryDate_initializers","_expiryDate_extraInitializers","_status_initializers","_status_extraInitializers","_from_initializers","_from_extraInitializers","_to_initializers","_to_extraInitializers","_items_initializers","_items_extraInitializers","_currency_initializers","_currency_extraInitializers","_taxRate_initializers","_taxRate_extraInitializers","_discount_initializers","_discount_extraInitializers","_notes_initializers","_notes_extraInitializers","_terms_initializers","_terms_extraInitializers","_variant_initializers","_variant_extraInitializers","_showQr_initializers","_showQr_extraInitializers","_qrData_initializers","_qrData_extraInitializers","_qrPosition_initializers","_qrPosition_extraInitializers","this","_metadata","Symbol","metadata","create","property","type","attribute","Array","Number","Boolean","dispatch","bubbles","composed","watch","render","styles","static","private","has","obj","emitEstimateAccept","emitEstimateDecline","emitItemToggle","handleItemsChange","renderContent","componentStyles","estimateNumber","date","expiryDate","status","from","to","items","currency","taxRate","discount","notes","terms","variant","showQr","qrData","qrPosition","enumerable","configurable","writable","detail","handleItemToggle","index","item","optional","updatedItems","newIncluded","included","handleAccept","getIncludedItems","total","getTotal","handleDecline","filter","getSubtotal","reduce","sum","quantity","unitPrice","getDiscountAmount","getTaxableAmount","getTaxAmount","formatCurrency","amount","toLocaleString","undefined","minimumFractionDigits","maximumFractionDigits","print","window","toJSON","subtotal","discountAmount","taxAmount","renderQr","position","posClass","html","renderParty","party","label","address","phone","email","renderHeaderQr","renderDate","renderExpiry","renderHeader","renderParties","renderTable","map","isOptional","isIncluded","rowClasses","join","optionalTag","toggleBtn","description","renderSummary","discountRow","taxRow","renderNotes","renderTerms","renderActions","renderFooter","renderComparisonView","renderComparisonSection","renderTableSection","renderQrBottom","renderQrFooter","renderSummarySection","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
  */
@@ -64,7 +64,7 @@ var SniceFileUpload = (function (exports, snice) {
64
64
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
65
65
  };
66
66
 
67
- 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}.file-upload-wrapper{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.label{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);color:var(--snice-color-text,rgb(23 23 23));margin-bottom:var(--snice-spacing-2xs,.25rem)}.label--required::after{content:' *';color:var(--snice-color-danger,rgb(220 38 38))}.upload-area{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xl,2rem);border:2px dashed var(--snice-color-border,rgb(226 226 226));border-radius:var(--snice-border-radius-md,.375rem);background:var(--snice-color-background,rgb(255 255 255));cursor:pointer;transition:all var(--snice-transition-fast, 150ms);text-align:center}.upload-area:hover:not(.upload-area--disabled){border-color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-background-hover,rgb(249 250 251))}.upload-area--drag-over{border-color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-primary-alpha,rgb(59 130 246 / .05))}.upload-area--disabled{opacity:.5;cursor:not-allowed}.upload-area--filled{background:var(--snice-color-background-secondary,rgb(243 244 246));border-style:solid}.upload-area--small{padding:var(--snice-spacing-md,1rem)}.upload-area--medium{padding:var(--snice-spacing-xl,2rem)}.upload-area--large{padding:var(--snice-spacing-2xl,3rem)}.upload-area--invalid{border-color:var(--snice-color-danger,rgb(220 38 38))}.upload-icon{font-size:var(--snice-font-size-3xl, 3rem);color:var(--snice-color-text-tertiary,rgb(115 115 115))}.upload-icon--small{font-size:var(--snice-font-size-2xl, 2rem)}.upload-icon--large{font-size:var(--snice-font-size-4xl, 4rem)}.upload-text{font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82))}.upload-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));border:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.upload-button:hover{background:var(--snice-color-primary-dark,rgb(29 78 216))}.upload-button--small{padding:var(--snice-spacing-2xs,.375rem) var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-xs, .75rem)}.upload-button--large{padding:var(--snice-spacing-sm,.625rem) var(--snice-spacing-lg,1.25rem);font-size:var(--snice-font-size-md, 1rem)}.file-input{position:absolute;opacity:0;pointer-events:none}.file-list{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-md,1rem)}.file-item{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem);background:var(--snice-color-background-secondary,rgb(243 244 246));border-radius:var(--snice-border-radius-md,.375rem);border:1px solid var(--snice-color-border,rgb(226 226 226))}.file-preview{width:40px;height:40px;border-radius:var(--snice-border-radius-sm,.25rem);object-fit:cover;background:var(--snice-color-background,rgb(255 255 255))}.file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.5rem);background:var(--snice-color-background,rgb(255 255 255));border-radius:var(--snice-border-radius-sm,.25rem);border:1px solid var(--snice-color-border,rgb(226 226 226))}.file-info{flex:1;min-width:0}.file-name{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);color:var(--snice-color-text,rgb(23 23 23));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115))}.file-remove{padding:var(--snice-spacing-2xs,.25rem);background:0 0;border:none;color:var(--snice-color-text-tertiary,rgb(115 115 115));cursor:pointer;border-radius:var(--snice-border-radius-sm,.25rem);transition:all var(--snice-transition-fast, 150ms)}.file-remove:hover{background:var(--snice-color-background-hover,rgb(229 231 235));color:var(--snice-color-danger,rgb(220 38 38))}.error-text,.helper-text{font-size:var(--snice-font-size-xs, .75rem);margin-top:var(--snice-spacing-2xs,.25rem)}.helper-text{color:var(--snice-color-text-secondary,rgb(82 82 82))}.error-text{color:var(--snice-color-danger,rgb(220 38 38))}";
67
+ var cssContent = ":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)}.file-upload-wrapper{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.label{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);color:var(--snice-color-text,rgb(23 23 23));margin-bottom:var(--snice-spacing-2xs,.25rem)}.label--required::after{content:' *';color:var(--snice-color-danger,rgb(220 38 38))}.upload-area{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xl,2rem);border:2px dashed var(--snice-color-border,rgb(226 226 226));border-radius:var(--snice-border-radius-md,.375rem);background:var(--snice-color-background,rgb(255 255 255));cursor:pointer;transition:all var(--snice-transition-fast, 150ms);text-align:center}.upload-area:hover:not(.upload-area--disabled){border-color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-background-hover,rgb(249 250 251))}.upload-area--drag-over{border-color:var(--snice-color-primary,rgb(37 99 235));background:var(--snice-color-primary-alpha,rgb(59 130 246 / .05))}.upload-area--disabled{opacity:.5;cursor:not-allowed}.upload-area--filled{background:var(--snice-color-background-secondary,rgb(243 244 246));border-style:solid}.upload-area--small{padding:var(--snice-spacing-md,1rem)}.upload-area--medium{padding:var(--snice-spacing-xl,2rem)}.upload-area--large{padding:var(--snice-spacing-2xl,3rem)}.upload-area--invalid{border-color:var(--snice-color-danger,rgb(220 38 38))}.upload-icon{font-size:var(--snice-font-size-3xl, 3rem);color:var(--snice-color-text-tertiary,rgb(115 115 115))}.upload-icon--small{font-size:var(--snice-font-size-2xl, 2rem)}.upload-icon--large{font-size:var(--snice-font-size-4xl, 4rem)}.upload-text{font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82))}.upload-button{padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);background:var(--snice-color-primary,rgb(37 99 235));color:var(--snice-color-text-inverse,rgb(250 250 250));border:none;border-radius:var(--snice-border-radius-md,.375rem);font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);cursor:pointer;transition:background var(--snice-transition-fast, 150ms)}.upload-button:hover{background:var(--snice-color-primary-dark,rgb(29 78 216))}.upload-button--small{padding:var(--snice-spacing-2xs,.375rem) var(--snice-spacing-sm,.75rem);font-size:var(--snice-font-size-xs, .75rem)}.upload-button--large{padding:var(--snice-spacing-sm,.625rem) var(--snice-spacing-lg,1.25rem);font-size:var(--snice-font-size-md, 1rem)}.file-input{position:absolute;opacity:0;pointer-events:none}.file-list{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem);margin-top:var(--snice-spacing-md,1rem)}.file-item{display:flex;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem);background:var(--snice-color-background-secondary,rgb(243 244 246));border-radius:var(--snice-border-radius-md,.375rem);border:1px solid var(--snice-color-border,rgb(226 226 226))}.file-preview{width:40px;height:40px;border-radius:var(--snice-border-radius-sm,.25rem);object-fit:cover;background:var(--snice-color-background,rgb(255 255 255))}.file-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:var(--snice-font-size-lg, 1.5rem);background:var(--snice-color-background,rgb(255 255 255));border-radius:var(--snice-border-radius-sm,.25rem);border:1px solid var(--snice-color-border,rgb(226 226 226))}.file-info{flex:1;min-width:0}.file-name{font-size:var(--snice-font-size-sm, .875rem);font-weight:var(--snice-font-weight-medium,500);color:var(--snice-color-text,rgb(23 23 23));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:var(--snice-font-size-xs, .75rem);color:var(--snice-color-text-tertiary,rgb(115 115 115))}.file-remove{padding:var(--snice-spacing-2xs,.25rem);background:0 0;border:none;color:var(--snice-color-text-tertiary,rgb(115 115 115));cursor:pointer;border-radius:var(--snice-border-radius-sm,.25rem);transition:all var(--snice-transition-fast, 150ms)}.file-remove:hover{background:var(--snice-color-background-hover,rgb(229 231 235));color:var(--snice-color-danger,rgb(220 38 38))}.error-text,.helper-text{font-size:var(--snice-font-size-xs, .75rem);margin-top:var(--snice-spacing-2xs,.25rem)}.helper-text{color:var(--snice-color-text-secondary,rgb(82 82 82))}.error-text{color:var(--snice-color-danger,rgb(220 38 38))}";
68
68
 
69
69
  let SniceFileUpload = (() => {
70
70
  let _classDecorators = [snice.element('snice-file-upload', { formAssociated: true })];