snice 7.8.0 → 7.9.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 (302) hide show
  1. package/README.md +1 -1
  2. package/adapters/react/SniceProvider.js +1 -1
  3. package/adapters/react/SniceRouter.js +1 -1
  4. package/adapters/react/matchRoute.js +1 -1
  5. package/adapters/react/table.d.ts +1 -0
  6. package/adapters/react/table.d.ts.map +1 -1
  7. package/adapters/react/table.js +1 -1
  8. package/adapters/react/table.js.map +1 -1
  9. package/adapters/react/table.tsx +2 -1
  10. package/adapters/react/useRequestHandler.js +1 -1
  11. package/bin/analyzer-contracts.js +17 -1
  12. package/custom-elements.json +57 -3
  13. package/dist/cdn/accordion/snice-accordion.js +1 -1
  14. package/dist/cdn/action-bar/snice-action-bar.js +1 -1
  15. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  16. package/dist/cdn/alert/snice-alert.js +1 -1
  17. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  18. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  19. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  20. package/dist/cdn/availability/snice-availability.js +1 -1
  21. package/dist/cdn/avatar/snice-avatar.js +1 -1
  22. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  23. package/dist/cdn/badge/snice-badge.js +1 -1
  24. package/dist/cdn/banner/snice-banner.js +1 -1
  25. package/dist/cdn/binpack/snice-binpack.js +1 -1
  26. package/dist/cdn/book/snice-book.js +1 -1
  27. package/dist/cdn/booking/snice-booking.js +1 -1
  28. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  29. package/dist/cdn/button/snice-button.js +1 -1
  30. package/dist/cdn/calendar/README.md +2 -2
  31. package/dist/cdn/calendar/snice-calendar.js +537 -44
  32. package/dist/cdn/calendar/snice-calendar.js.map +1 -1
  33. package/dist/cdn/calendar/snice-calendar.min.js +2 -2
  34. package/dist/cdn/calendar/snice-calendar.min.js.map +1 -1
  35. package/dist/cdn/camera/snice-camera.js +1 -1
  36. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  37. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  38. package/dist/cdn/card/snice-card.js +1 -1
  39. package/dist/cdn/carousel/snice-carousel.js +1 -1
  40. package/dist/cdn/cart/snice-cart.js +1 -1
  41. package/dist/cdn/chart/snice-chart.js +1 -1
  42. package/dist/cdn/chat/snice-chat.js +1 -1
  43. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  44. package/dist/cdn/chip/snice-chip.js +1 -1
  45. package/dist/cdn/code-block/README.md +2 -2
  46. package/dist/cdn/code-block/snice-code-block.js +177 -167
  47. package/dist/cdn/code-block/snice-code-block.js.map +1 -1
  48. package/dist/cdn/code-block/snice-code-block.min.js +2 -2
  49. package/dist/cdn/code-block/snice-code-block.min.js.map +1 -1
  50. package/dist/cdn/color-display/snice-color-display.js +1 -1
  51. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  52. package/dist/cdn/command-palette/README.md +1 -1
  53. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  54. package/dist/cdn/command-palette/snice-command-palette.js.map +1 -1
  55. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  56. package/dist/cdn/command-palette/snice-command-palette.min.js.map +1 -1
  57. package/dist/cdn/comments/snice-comments.js +1 -1
  58. package/dist/cdn/countdown/snice-countdown.js +1 -1
  59. package/dist/cdn/cropper/snice-cropper.js +1 -1
  60. package/dist/cdn/data-card/snice-data-card.js +1 -1
  61. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  62. package/dist/cdn/date-range-picker/snice-date-range-picker.js +1 -1
  63. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  64. package/dist/cdn/diff/snice-diff.js +1 -1
  65. package/dist/cdn/divider/snice-divider.js +1 -1
  66. package/dist/cdn/doc/snice-doc.js +1 -1
  67. package/dist/cdn/draw/snice-draw.js +1 -1
  68. package/dist/cdn/drawer/snice-drawer.js +1 -1
  69. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  70. package/dist/cdn/estimate/snice-estimate.js +1 -1
  71. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  72. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  73. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  74. package/dist/cdn/flow/snice-flow.js +1 -1
  75. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  76. package/dist/cdn/funnel/snice-funnel.js +1 -1
  77. package/dist/cdn/gantt/snice-gantt.js +1 -1
  78. package/dist/cdn/gauge/snice-gauge.js +1 -1
  79. package/dist/cdn/grid/snice-grid.js +1 -1
  80. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  81. package/dist/cdn/image/snice-image.js +1 -1
  82. package/dist/cdn/input/snice-input.js +1 -1
  83. package/dist/cdn/invoice/snice-invoice.js +1 -1
  84. package/dist/cdn/kanban/snice-kanban.js +1 -1
  85. package/dist/cdn/key-value/snice-key-value.js +1 -1
  86. package/dist/cdn/kpi/snice-kpi.js +1 -1
  87. package/dist/cdn/layout/snice-layout.js +1 -1
  88. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  89. package/dist/cdn/link/snice-link.js +1 -1
  90. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  91. package/dist/cdn/list/snice-list.js +1 -1
  92. package/dist/cdn/location/snice-location.js +1 -1
  93. package/dist/cdn/login/snice-login.js +1 -1
  94. package/dist/cdn/map/snice-map.js +1 -1
  95. package/dist/cdn/markdown/snice-markdown.js +1 -1
  96. package/dist/cdn/masonry/snice-masonry.js +1 -1
  97. package/dist/cdn/menu/snice-menu.js +1 -1
  98. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  99. package/dist/cdn/modal/snice-modal.js +1 -1
  100. package/dist/cdn/music-player/snice-music-player.js +1 -1
  101. package/dist/cdn/nav/snice-nav.js +1 -1
  102. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  103. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  104. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  105. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  106. package/dist/cdn/pagination/snice-pagination.js +1 -1
  107. package/dist/cdn/paint/snice-paint.js +1 -1
  108. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  109. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  110. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  111. package/dist/cdn/popover/snice-popover.js +1 -1
  112. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  113. package/dist/cdn/product-card/snice-product-card.js +1 -1
  114. package/dist/cdn/progress/snice-progress.js +2 -2
  115. package/dist/cdn/progress/snice-progress.js.map +1 -1
  116. package/dist/cdn/progress/snice-progress.min.js +1 -1
  117. package/dist/cdn/progress/snice-progress.min.js.map +1 -1
  118. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  119. package/dist/cdn/qr-code/README.md +2 -2
  120. package/dist/cdn/qr-code/snice-qr-code.js +19 -3
  121. package/dist/cdn/qr-code/snice-qr-code.js.map +1 -1
  122. package/dist/cdn/qr-code/snice-qr-code.min.js +2 -2
  123. package/dist/cdn/qr-code/snice-qr-code.min.js.map +1 -1
  124. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  125. package/dist/cdn/radio/snice-radio.js +1 -1
  126. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  127. package/dist/cdn/rating/snice-rating.js +1 -1
  128. package/dist/cdn/receipt/snice-receipt.js +5 -2
  129. package/dist/cdn/receipt/snice-receipt.js.map +1 -1
  130. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  131. package/dist/cdn/receipt/snice-receipt.min.js.map +1 -1
  132. package/dist/cdn/recipe/snice-recipe.js +1 -1
  133. package/dist/cdn/runtime/snice-runtime.esm.js +4 -4
  134. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  135. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  136. package/dist/cdn/runtime/snice-runtime.js +4 -4
  137. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  138. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  139. package/dist/cdn/sankey/snice-sankey.js +1 -1
  140. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  141. package/dist/cdn/select/README.md +2 -2
  142. package/dist/cdn/select/snice-select.js +6 -9
  143. package/dist/cdn/select/snice-select.js.map +1 -1
  144. package/dist/cdn/select/snice-select.min.js +2 -2
  145. package/dist/cdn/select/snice-select.min.js.map +1 -1
  146. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  147. package/dist/cdn/slider/snice-slider.js +1 -1
  148. package/dist/cdn/sortable/snice-sortable.js +1 -1
  149. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  150. package/dist/cdn/spinner/snice-spinner.js +1 -1
  151. package/dist/cdn/split-button/snice-split-button.js +1 -1
  152. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  153. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  154. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  155. package/dist/cdn/step-input/snice-step-input.js +1 -1
  156. package/dist/cdn/stepper/snice-stepper.js +1 -1
  157. package/dist/cdn/switch/snice-switch.js +1 -1
  158. package/dist/cdn/table/README.md +2 -2
  159. package/dist/cdn/table/snice-table.esm.js +1940 -407
  160. package/dist/cdn/table/snice-table.esm.js.map +1 -1
  161. package/dist/cdn/table/snice-table.esm.min.js +242 -53
  162. package/dist/cdn/table/snice-table.esm.min.js.map +1 -1
  163. package/dist/cdn/table/snice-table.js +1940 -407
  164. package/dist/cdn/table/snice-table.js.map +1 -1
  165. package/dist/cdn/table/snice-table.min.js +234 -45
  166. package/dist/cdn/table/snice-table.min.js.map +1 -1
  167. package/dist/cdn/tabs/snice-tabs.js +1 -1
  168. package/dist/cdn/tag/snice-tag.js +1 -1
  169. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  170. package/dist/cdn/terminal/snice-terminal.js +1 -1
  171. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  172. package/dist/cdn/textarea/snice-textarea.js +1 -1
  173. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  174. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  175. package/dist/cdn/timeline/snice-timeline.js +1 -1
  176. package/dist/cdn/timer/snice-timer.js +1 -1
  177. package/dist/cdn/toast/snice-toast.js +1 -1
  178. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  179. package/dist/cdn/tree/snice-tree.js +1 -1
  180. package/dist/cdn/treemap/snice-treemap.js +1 -1
  181. package/dist/cdn/user-card/snice-user-card.js +1 -1
  182. package/dist/cdn/video-player/snice-video-player.js +1 -1
  183. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  184. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  185. package/dist/cdn/weather/snice-weather.js +1 -1
  186. package/dist/cdn/work-order/snice-work-order.js +1 -1
  187. package/dist/components/calendar/snice-calendar.d.ts +187 -5
  188. package/dist/components/calendar/snice-calendar.js +537 -44
  189. package/dist/components/calendar/snice-calendar.js.map +1 -1
  190. package/dist/components/calendar/snice-calendar.types.d.ts +2 -1
  191. package/dist/components/code-block/formatter.d.ts +6 -0
  192. package/dist/components/code-block/formatter.js +174 -164
  193. package/dist/components/code-block/formatter.js.map +1 -1
  194. package/dist/components/code-block/grammars/snice.json +1 -1
  195. package/dist/components/code-block/grammars/typescript.json +1 -1
  196. package/dist/components/command-palette/snice-command-palette.js +1 -1
  197. package/dist/components/command-palette/snice-command-palette.js.map +1 -1
  198. package/dist/components/progress/snice-progress.js +1 -1
  199. package/dist/components/progress/snice-progress.js.map +1 -1
  200. package/dist/components/qr-code/qrcode.d.ts +1 -1
  201. package/dist/components/qr-code/qrcode.js +18 -2
  202. package/dist/components/qr-code/qrcode.js.map +1 -1
  203. package/dist/components/receipt/snice-receipt.js +4 -1
  204. package/dist/components/receipt/snice-receipt.js.map +1 -1
  205. package/dist/components/select/snice-select.d.ts +1 -1
  206. package/dist/components/select/snice-select.js +5 -8
  207. package/dist/components/select/snice-select.js.map +1 -1
  208. package/dist/components/table/snice-cell-actions.js +1 -1
  209. package/dist/components/table/snice-cell-actions.js.map +1 -1
  210. package/dist/components/table/snice-cell-color.js +1 -1
  211. package/dist/components/table/snice-cell-color.js.map +1 -1
  212. package/dist/components/table/snice-cell-date.js +20 -8
  213. package/dist/components/table/snice-cell-date.js.map +1 -1
  214. package/dist/components/table/snice-cell-email.js +1 -1
  215. package/dist/components/table/snice-cell-email.js.map +1 -1
  216. package/dist/components/table/snice-cell-image.js +1 -1
  217. package/dist/components/table/snice-cell-image.js.map +1 -1
  218. package/dist/components/table/snice-cell-json.js +1 -1
  219. package/dist/components/table/snice-cell-json.js.map +1 -1
  220. package/dist/components/table/snice-cell-link.js +1 -1
  221. package/dist/components/table/snice-cell-link.js.map +1 -1
  222. package/dist/components/table/snice-cell-location.js +1 -1
  223. package/dist/components/table/snice-cell-location.js.map +1 -1
  224. package/dist/components/table/snice-cell-phone.js +1 -1
  225. package/dist/components/table/snice-cell-phone.js.map +1 -1
  226. package/dist/components/table/snice-cell-status.js +1 -1
  227. package/dist/components/table/snice-cell-status.js.map +1 -1
  228. package/dist/components/table/snice-cell.d.ts +10 -0
  229. package/dist/components/table/snice-cell.js +59 -13
  230. package/dist/components/table/snice-cell.js.map +1 -1
  231. package/dist/components/table/snice-row.d.ts +0 -1
  232. package/dist/components/table/snice-row.js +4 -10
  233. package/dist/components/table/snice-row.js.map +1 -1
  234. package/dist/components/table/snice-table.d.ts +170 -2
  235. package/dist/components/table/snice-table.js +868 -189
  236. package/dist/components/table/snice-table.js.map +1 -1
  237. package/dist/components/table/snice-table.types.d.ts +17 -0
  238. package/dist/components/table/table-cell-presentation.d.ts +17 -4
  239. package/dist/components/table/table-cell-presentation.js +37 -11
  240. package/dist/components/table/table-cell-presentation.js.map +1 -1
  241. package/dist/components/table/table-column-manager.d.ts +153 -2
  242. package/dist/components/table/table-column-manager.js +364 -43
  243. package/dist/components/table/table-column-manager.js.map +1 -1
  244. package/dist/components/table/table-date.d.ts +29 -0
  245. package/dist/components/table/table-date.js +78 -0
  246. package/dist/components/table/table-date.js.map +1 -0
  247. package/dist/components/table/table-export.js +6 -2
  248. package/dist/components/table/table-export.js.map +1 -1
  249. package/dist/components/table/table-filter-engine.d.ts +9 -0
  250. package/dist/components/table/table-filter-engine.js +58 -14
  251. package/dist/components/table/table-filter-engine.js.map +1 -1
  252. package/dist/components/table/table-keyboard.d.ts +8 -0
  253. package/dist/components/table/table-keyboard.js +14 -3
  254. package/dist/components/table/table-keyboard.js.map +1 -1
  255. package/dist/components/table/table-toolbar.js +1 -0
  256. package/dist/components/table/table-toolbar.js.map +1 -1
  257. package/dist/components/table/table-tree-data.d.ts +2 -0
  258. package/dist/components/table/table-tree-data.js +35 -9
  259. package/dist/components/table/table-tree-data.js.map +1 -1
  260. package/dist/components/table/table-virtualizer.d.ts +44 -7
  261. package/dist/components/table/table-virtualizer.js +101 -54
  262. package/dist/components/table/table-virtualizer.js.map +1 -1
  263. package/dist/components/theme/theme.css +9 -0
  264. package/dist/index.cjs +1 -1
  265. package/dist/index.esm.js +1 -1
  266. package/dist/index.iife.js +1 -1
  267. package/dist/react/SniceProvider.js +1 -1
  268. package/dist/react/SniceRouter.js +1 -1
  269. package/dist/react/index.js +1 -1
  270. package/dist/react/matchRoute.js +1 -1
  271. package/dist/react/useRequestHandler.js +1 -1
  272. package/dist/symbols.cjs +1 -1
  273. package/dist/symbols.esm.js +1 -1
  274. package/dist/testing-dom.cjs +1 -1
  275. package/dist/testing-dom.esm.js +1 -1
  276. package/dist/transitions.cjs +1 -1
  277. package/dist/transitions.esm.js +1 -1
  278. package/docs/ai/DEVELOPMENT.md +93 -2
  279. package/docs/ai/components/calendar.md +113 -10
  280. package/docs/ai/components/code-block.md +4 -0
  281. package/docs/ai/components/doc.md +1 -1
  282. package/docs/ai/components/progress.md +1 -0
  283. package/docs/ai/components/receipt.md +1 -1
  284. package/docs/ai/components/table.md +29 -30
  285. package/docs/ai/components/theme.md +1 -0
  286. package/docs/ai/events.md +30 -0
  287. package/docs/ai/theme.md +1 -0
  288. package/docs/components/calendar.md +171 -11
  289. package/docs/components/code-block.md +2 -0
  290. package/docs/components/doc.md +1 -1
  291. package/docs/components/progress.md +13 -0
  292. package/docs/components/receipt.md +1 -0
  293. package/docs/components/table.md +274 -15
  294. package/docs/components/theme.md +5 -0
  295. package/docs/events.md +49 -0
  296. package/docs/plans/2026-03-06-date-range-picker-plan.md +4 -4
  297. package/docs/plans/2026-03-07-table-mui-parity-design.md +1 -1
  298. package/docs/plans/2026-03-09-action-bar-plan.md +11 -11
  299. package/docs/superpowers/specs/2026-07-09-table-incredible-design.md +1 -1
  300. package/docs/superpowers/specs/2026-07-09-table-phase0-implementation.md +2 -2
  301. package/package.json +3 -1
  302. package/vscode.html-custom-data.json +13 -1
@@ -1 +1 @@
1
- {"version":3,"file":"snice-receipt.js","sources":["../../../components/receipt/snice-receipt.css?inline","../../../../components/receipt/snice-receipt.ts"],"sourcesContent":["export default \":host([hidden]){display:none}:host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);--receipt-max-width:var(--snice-receipt-max-width, 22rem);--receipt-padding:var(--snice-receipt-padding, 1.5rem);--receipt-bg:var(--snice-receipt-bg, var(--snice-color-surface, rgb(255 255 255)));--receipt-text:var(--snice-receipt-text, var(--snice-color-text, rgb(23 23 23)));--receipt-text-secondary:var(--snice-receipt-text-secondary, var(--snice-color-text-secondary, rgb(82 82 82)));--receipt-text-tertiary:var(--snice-receipt-text-tertiary, var(--snice-color-text-tertiary, rgb(115 115 115)));--receipt-border:var(--snice-receipt-border, var(--snice-color-border, rgb(226 226 226)));--receipt-bg-element:var(--snice-receipt-bg-element, var(--snice-color-surface-container-high, rgb(252 251 249)));--receipt-header-bg:var(--snice-receipt-header-bg, transparent);--receipt-accent:var(--snice-receipt-accent, var(--snice-color-primary, rgb(37 99 235)));--receipt-font-family:var(--snice-receipt-font-family, inherit);--receipt-merchant-font-size:var(--snice-receipt-merchant-font-size, 1.25rem);--receipt-item-font-size:var(--snice-receipt-item-font-size, 0.9375rem);--receipt-meta-font-size:var(--snice-receipt-meta-font-size, 0.8125rem);--receipt-total-font-size:var(--snice-receipt-total-font-size, 1.125rem);--receipt-total-font-weight:var(--snice-receipt-total-font-weight, 700);--receipt-footer-font-size:var(--snice-receipt-footer-font-size, 0.8125rem);--receipt-divider-style:var(--snice-receipt-divider-style, dashed);--receipt-divider-color:var(--snice-receipt-divider-color, var(--receipt-border));--receipt-divider-width:var(--snice-receipt-divider-width, 1px);--receipt-border-radius:var(--snice-receipt-border-radius, 8px);--receipt-border-color:var(--snice-receipt-border-color, var(--receipt-border));--receipt-shadow:var(--snice-receipt-shadow, none);--receipt-thermal-font:var(--snice-receipt-thermal-font, 'Courier New', Courier, monospace);--receipt-thermal-width:var(--snice-receipt-thermal-width, 18rem);--receipt-thermal-bg:var(--snice-receipt-thermal-bg, var(--snice-color-surface-container-high, rgb(252 251 249)));--receipt-modern-radius:var(--snice-receipt-modern-radius, 12px);--receipt-modern-shadow:var(--snice-receipt-modern-shadow, 0 4px 24px rgb(0 0 0 / 0.08));--receipt-modern-section-bg:var(--snice-receipt-modern-section-bg, var(--receipt-bg-element));--receipt-modern-section-radius:var(--snice-receipt-modern-section-radius, 8px);--receipt-qr-size:var(--snice-receipt-qr-size, 6rem)}.receipt{background:var(--receipt-bg);border:1px solid var(--receipt-border-color);border-radius:var(--receipt-border-radius);padding:var(--receipt-padding);color:var(--receipt-text);max-width:var(--receipt-max-width);font-family:var(--receipt-font-family);box-shadow:var(--receipt-shadow);line-height:var(--snice-line-height-normal, 1.5)}.receipt__divider{border:none;border-top:var(--receipt-divider-width) var(--receipt-divider-style) var(--receipt-divider-color);margin:var(--snice-spacing-sm,.75rem) 0}.receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);text-align:center;padding-bottom:var(--snice-spacing-sm,.75rem);background:var(--receipt-header-bg)}.receipt__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-xs,.5rem)}.receipt__merchant-name{font-size:var(--receipt-merchant-font-size);font-weight:var(--snice-font-weight-bold,700);color:var(--receipt-text);margin:0;letter-spacing:.01em}.receipt__merchant-address{font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line;margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__merchant-contact{font-size:var(--receipt-meta-font-size);color:var(--receipt-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--snice-spacing-xs,.5rem);font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary)}.receipt__meta-item{display:flex;flex-direction:column;gap:.0625rem}.receipt__meta-label{font-size:.6875rem;color:var(--receipt-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--snice-font-weight-medium,500)}.receipt__meta-value{font-weight:var(--snice-font-weight-medium,500);color:var(--receipt-text)}.receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;justify-content:space-between;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--receipt-text-tertiary);font-weight:var(--snice-font-weight-medium,500);padding-bottom:var(--snice-spacing-2xs,.25rem);border-bottom:1px solid var(--receipt-divider-color);margin-bottom:var(--snice-spacing-2xs,.25rem)}.receipt__items{display:flex;flex-direction:column}.receipt__item{display:flex;justify-content:space-between;align-items:baseline;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--receipt-item-font-size);gap:var(--snice-spacing-xs,.5rem)}.receipt__item-info{flex:1;min-width:0}.receipt__item-name{color:var(--receipt-text);display:block}.receipt__item-sku{font-size:.6875rem;color:var(--receipt-text-tertiary);font-family:var(--receipt-thermal-font)}.receipt__item-note{font-size:.75rem;color:var(--receipt-text-tertiary);font-style:italic}.receipt__item-qty{font-size:.8125rem;color:var(--receipt-text-tertiary);white-space:nowrap}.receipt__item-discount{font-size:.75rem;color:var(--snice-color-danger,rgb(220 38 38))}.receipt__item-price{font-weight:var(--snice-font-weight-medium,500);white-space:nowrap;text-align:right}.receipt__totals{display:flex;flex-direction:column}.receipt__total-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-3xs,.125rem) 0;font-size:var(--receipt-item-font-size);color:var(--receipt-text-secondary)}.receipt__total-row--discount{color:var(--snice-color-danger,rgb(220 38 38))}.receipt__total-row--grand{border-top:2px solid var(--receipt-text);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--receipt-total-font-size);font-weight:var(--receipt-total-font-weight);color:var(--receipt-text)}.receipt__payment{text-align:center;font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary)}.receipt__payment-method{font-weight:var(--snice-font-weight-semibold,600);color:var(--receipt-text)}.receipt__payment-details{font-size:.75rem;color:var(--receipt-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__qr{display:flex;justify-content:center;padding:var(--snice-spacing-xs,.5rem) 0}.receipt__qr ::slotted(*){width:var(--receipt-qr-size);height:var(--receipt-qr-size)}.receipt__barcode{display:flex;justify-content:center;padding:var(--snice-spacing-xs,.5rem) 0}.receipt__barcode ::slotted(*){max-width:100%}.receipt__footer{text-align:center;font-size:var(--receipt-footer-font-size);color:var(--receipt-text-tertiary)}.receipt__thank-you{font-weight:var(--snice-font-weight-medium,500);color:var(--receipt-text-secondary);margin-bottom:var(--snice-spacing-2xs,.25rem)}:host([variant=thermal]){font-family:var(--receipt-thermal-font)}:host([variant=thermal]) .receipt{max-width:var(--receipt-thermal-width);border-radius:0;border:none;background:var(--receipt-thermal-bg);color:var(--receipt-text);padding:var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);box-shadow:var(--snice-shadow-sm,0 2px 8px rgb(0 0 0 / .06));font-family:var(--receipt-thermal-font)}:host([variant=thermal]) .receipt__divider{border-top-style:dotted;border-top-width:2px;border-top-color:var(--receipt-divider-color);margin:var(--snice-spacing-xs,.5rem) 0}:host([variant=thermal]) .receipt__merchant-name{font-size:var(--snice-font-size-md, 1rem);text-transform:uppercase;letter-spacing:.12em;color:var(--receipt-text)}:host([variant=thermal]) .receipt__merchant-address,:host([variant=thermal]) .receipt__merchant-contact{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__meta{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__meta-label{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__meta-value{color:var(--receipt-text)}:host([variant=thermal]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:.625rem;border-bottom-style:dotted;color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__item{font-size:.8125rem;padding:.125rem 0}:host([variant=thermal]) .receipt__item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--receipt-text)}:host([variant=thermal]) .receipt__item-qty{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__item-price{color:var(--receipt-text)}:host([variant=thermal]) .receipt__total-row{font-size:.8125rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__total-row--grand{font-size:.9375rem;border-top-style:double;border-top-width:3px;color:var(--receipt-text)}:host([variant=thermal]) .receipt__payment{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__payment-method{color:var(--receipt-text)}:host([variant=thermal]) .receipt__payment-details{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__footer{font-size:.6875rem;letter-spacing:.04em;color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__thank-you{text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em);font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=modern]) .receipt{border:none;border-radius:var(--receipt-modern-radius);box-shadow:var(--receipt-modern-shadow);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .receipt__divider{border:none;margin:var(--snice-spacing-md,1rem) 0}:host([variant=modern]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=modern]) .receipt__merchant-name{font-size:1.375rem;letter-spacing:var(--snice-tracking-tight, -.02em)}:host([variant=modern]) .receipt__meta{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__items{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);border-bottom-color:var(--receipt-border)}:host([variant=modern]) .receipt__totals{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__total-row--grand{border-top:2px solid var(--receipt-accent);color:var(--receipt-accent)}:host([variant=modern]) .receipt__payment{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__footer{padding-top:var(--snice-spacing-xs,.5rem)}:host([variant=modern]) .receipt__thank-you{color:var(--receipt-accent);font-weight:var(--snice-font-weight-semibold,600)}:host([variant=minimal]) .receipt{border:none;border-radius:0;padding:var(--snice-spacing-md,1rem) 0;box-shadow:none;max-width:20rem}:host([variant=minimal]) .receipt__divider{border-top-style:solid;border-top-color:var(--receipt-border);margin:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=minimal]) .receipt__logo{display:none}:host([variant=minimal]) .receipt__merchant-name{font-size:1rem;text-transform:uppercase;letter-spacing:.15em;font-weight:var(--snice-font-weight-medium,500)}:host([variant=minimal]) .receipt__merchant-address,:host([variant=minimal]) .receipt__merchant-contact{display:none}:host([variant=minimal]) .receipt__meta{font-size:.75rem}:host([variant=minimal]) .receipt__meta-label{display:none}:host([variant=minimal]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:none}:host([variant=minimal]) .receipt__item{font-size:.875rem}:host([variant=minimal]) .receipt__item-discount,:host([variant=minimal]) .receipt__item-note,:host([variant=minimal]) .receipt__item-sku{display:none}:host([variant=minimal]) .receipt__total-row{font-size:.875rem}:host([variant=minimal]) .receipt__total-row--grand{font-size:1rem;border-top-width:1px;border-top-style:solid}:host([variant=minimal]) .receipt__payment{font-size:.75rem}:host([variant=minimal]) .receipt__footer{font-size:.75rem}:host([variant=detailed]) .receipt{max-width:26rem}:host([variant=detailed]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);border-bottom:2px solid var(--receipt-text);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .receipt__merchant-name{font-size:1.5rem}:host([variant=detailed]) .receipt__merchant-contact{font-size:.75rem}:host([variant=detailed]) .receipt__meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-xs,.5rem)}:host([variant=detailed]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;font-weight:var(--snice-font-weight-semibold,600);border-bottom:2px solid var(--receipt-border);padding-bottom:var(--snice-spacing-2xs,.25rem)}:host([variant=detailed]) .receipt__item{border-bottom:1px solid var(--receipt-divider-color);padding:var(--snice-spacing-2xs,.25rem) 0}:host([variant=detailed]) .receipt__item:last-child{border-bottom:none}:host([variant=detailed]) .receipt__item-sku{display:block}:host([variant=detailed]) .receipt__item-note{display:block}:host([variant=detailed]) .receipt__item-discount{display:block}:host([variant=detailed]) .receipt__total-row--grand{font-size:1.25rem;border-top:2px solid var(--receipt-text)}:host([variant=detailed]) .receipt__payment-details{font-size:.8125rem}@media print{.receipt{border:none;box-shadow:none;border-radius:0;padding:0;max-width:none}.receipt__barcode ::slotted(*),.receipt__qr ::slotted(*){-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([variant=thermal]) .receipt{max-width:var(--receipt-thermal-width);background:#fff;box-shadow:none}:host([variant=modern]) .receipt{box-shadow:none}:host([variant=modern]) .receipt__items,:host([variant=modern]) .receipt__meta,:host([variant=modern]) .receipt__payment,:host([variant=modern]) .receipt__totals{background:0 0;border:1px solid var(--receipt-border)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}:host([variant=paper]){--receipt-bg:color-mix(in srgb, var(--snice-color-surface, rgb(255 255 255)) 96%, rgb(196 160 96));--receipt-text:var(--snice-color-text, rgb(43 38 31));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(94 85 72));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(148 136 116));--receipt-border:color-mix(in srgb, var(--snice-color-border, rgb(216 208 192)) 85%, rgb(180 150 90));--receipt-paper-ink:var(--snice-color-text, rgb(43 38 31));--receipt-paper-accent:rgb(186 96 74)}:host([variant=paper]) .receipt{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23d)'/%3E%3C/svg%3E\\\"),url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.03 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23l)'/%3E%3C/svg%3E\\\");background:var(--receipt-bg);color:var(--receipt-text);border:1px solid var(--receipt-paper-ink);border-radius:0;box-shadow:0 1px 2px rgb(56 46 30 / .1),0 18px 40px -20px rgb(56 46 30 / .5)}:host([variant=paper]) .receipt__merchant-name{font-family:Georgia,'Times New Roman',serif;text-transform:uppercase;letter-spacing:.3em;font-weight:var(--snice-font-weight-normal,400)}:host([variant=paper]) .receipt__header{border-bottom:4px double var(--receipt-paper-ink)}:host([variant=paper]) .receipt__total-row--grand{border:1px solid var(--receipt-paper-ink);box-shadow:inset 0 0 0 3px var(--receipt-bg),inset 0 0 0 4px var(--receipt-paper-accent);background:var(--receipt-bg);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}:host([variant=paper]) .receipt__total-row--grand :last-child{font-family:Georgia,'Times New Roman',serif;font-size:1.5rem;font-variant-numeric:tabular-nums lining-nums}:host([variant=paper]) .receipt__thank-you{font-family:Georgia,'Times New Roman',serif;font-style:italic;color:var(--receipt-paper-accent)}:host([variant=ink]){--receipt-bg:var(--snice-color-surface, rgb(250 249 246));--receipt-text:var(--snice-color-text, rgb(32 30 27));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(92 87 79));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(146 139 126));--receipt-border:var(--snice-color-border, rgb(220 214 202));--receipt-ink:var(--snice-color-text, rgb(28 26 23))}:host([variant=ink]) .receipt{background:var(--receipt-bg);color:var(--receipt-text);border:1px solid var(--receipt-ink);border-radius:0;overflow:hidden;position:relative;padding-bottom:2rem;box-shadow:0 18px 40px -20px rgb(30 28 24 / .5)}:host([variant=ink]) .receipt__header{background:var(--receipt-ink);color:var(--snice-color-surface,rgb(249 247 242));margin:-1.25rem -1.25rem 1.25rem;padding:1.25rem;border-bottom:none}:host([variant=ink]) .receipt__merchant-name{text-transform:uppercase;letter-spacing:.4em;font-weight:var(--snice-font-weight-light,300)}:host([variant=ink]) .receipt__merchant-address,:host([variant=ink]) .receipt__merchant-contact{color:color-mix(in srgb,var(--snice-color-surface,rgb(249 247 242)) 60%,transparent)}:host([variant=ink]) .receipt__total-row--grand{border-top:2px solid var(--receipt-ink);align-items:baseline}:host([variant=ink]) .receipt__total-row--grand :last-child{font-size:2rem;font-weight:var(--snice-font-weight-light,300);font-variant-numeric:tabular-nums lining-nums}:host([variant=ink]) .receipt::after{content:'';position:absolute;left:0;right:0;bottom:0;height:.5rem;background:var(--receipt-ink)}:host([variant=ledger]){--receipt-bg:var(--snice-color-surface, rgb(250 250 247));--receipt-text:var(--snice-color-text, rgb(40 40 38));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(105 103 96));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(150 147 138));--receipt-border:var(--snice-color-border, rgb(216 214 205));--receipt-bg-element:transparent}:host([variant=ledger]) [part=base]{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;border:1px solid var(--snice-color-text,rgb(40 40 38));border-radius:0;box-shadow:0 14px 34px -18px rgb(40 40 38 / .45);letter-spacing:.01em}:host([variant=ledger]) [part=base] *{font-family:inherit}:host([variant=ticket]){--receipt-bg:var(--snice-color-surface, rgb(252 251 247));--receipt-text:var(--snice-color-text, rgb(45 42 38));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(110 104 94));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(158 150 136));--receipt-border:var(--snice-color-border, rgb(214 208 194));--receipt-bg-element:var(--snice-color-surface-container-high, rgb(246 243 236))}:host([variant=ticket]) [part=base]{border:1px solid var(--snice-color-text,rgb(45 42 38));border-radius:.75rem;overflow:hidden;position:relative;padding-bottom:3.25rem;box-shadow:0 14px 34px -18px rgb(45 42 38 / .45)}:host([variant=ticket]) [part=header]{position:relative;border-bottom:2px dashed var(--snice-color-border-hover,rgb(178 168 150));padding-bottom:1rem}:host([variant=ticket]) [part=header]::after,:host([variant=ticket]) [part=header]::before{content:'';position:absolute;bottom:-.8125rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--snice-color-surface,rgb(24 24 27));border:1px solid var(--snice-color-text,rgb(45 42 38))}:host([variant=ticket]) [part=header]::before{left:-2.25rem}:host([variant=ticket]) [part=header]::after{right:-2.25rem}:host([variant=ticket]) [part=base]::after{content:'';position:absolute;left:1.5rem;right:1.5rem;bottom:.875rem;height:1.75rem;background:repeating-linear-gradient(90deg,var(--snice-color-text,rgb(45 42 38)) 0 2px,transparent 2px 5px,var(--snice-color-text,rgb(45 42 38)) 5px 6px,transparent 6px 11px,var(--snice-color-text,rgb(45 42 38)) 11px 14px,transparent 14px 17px);opacity:.85}\";","import { element, property, render, styles, html, css } from 'snice';\nimport cssContent from './snice-receipt.css?inline';\nimport type {\n SniceReceiptElement,\n ReceiptVariant,\n ReceiptMerchant,\n ReceiptItem,\n ReceiptTaxLine,\n QrPosition\n} from './snice-receipt.types';\n\n@element('snice-receipt')\nexport class SniceReceipt extends HTMLElement implements SniceReceiptElement {\n @property({ attribute: 'receipt-number' })\n receiptNumber = '';\n\n @property()\n date = '';\n\n @property()\n currency = 'USD';\n\n @property()\n locale = '';\n\n @property({ type: Object, attribute: false })\n merchant: ReceiptMerchant = { name: '' };\n\n @property({ type: Array, attribute: false })\n items: ReceiptItem[] = [];\n\n @property({ type: Number })\n tax = 0;\n\n @property({ type: Array, attribute: false })\n taxes: ReceiptTaxLine[] = [];\n\n @property({ type: Number })\n subtotal = 0;\n\n @property({ type: Number })\n total = 0;\n\n @property({ type: Number })\n tip = 0;\n\n @property({ type: Number })\n discount = 0;\n\n @property({ attribute: 'discount-label' })\n discountLabel = 'Discount';\n\n @property({ attribute: 'payment-method' })\n paymentMethod = '';\n\n @property({ attribute: 'payment-details' })\n paymentDetails = '';\n\n @property()\n variant: ReceiptVariant = 'standard';\n\n @property({ type: Boolean, attribute: 'show-qr' })\n showQr = false;\n\n @property({ attribute: 'qr-data' })\n qrData = '';\n\n @property({ attribute: 'qr-position' })\n qrPosition: QrPosition = 'bottom';\n\n @property({ attribute: 'thank-you' })\n thankYou = 'Thank you for your purchase!';\n\n @property()\n cashier = '';\n\n @property({ attribute: 'terminal-id' })\n terminalId = '';\n\n private getComputedSubtotal(): number {\n if (this.subtotal > 0) return this.subtotal;\n return this.items.reduce((sum, item) => {\n const lineTotal = item.quantity * item.price;\n const itemDiscount = item.discount || 0;\n return sum + lineTotal - itemDiscount;\n }, 0);\n }\n\n private getComputedTax(): number {\n if (this.taxes.length > 0) {\n return this.taxes.reduce((sum, t) => sum + t.amount, 0);\n }\n return this.tax;\n }\n\n private getComputedTotal(): number {\n if (this.total > 0) return this.total;\n const sub = this.getComputedSubtotal();\n const taxAmt = this.getComputedTax();\n return sub + taxAmt - this.discount + this.tip;\n }\n\n private formatCurrency(amount: number): string {\n const loc = this.locale || undefined;\n try {\n return new Intl.NumberFormat(loc, {\n style: 'currency',\n currency: this.currency\n }).format(amount);\n } catch {\n return `${this.currency} ${amount.toFixed(2)}`;\n }\n }\n\n print(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n // Clone the shadow tree and expand each <slot> into its assigned nodes so\n // light-DOM children (slotted QR code, barcode, etc.) are included in the\n // print output. Plain innerHTML drops slotted content entirely.\n const stylesText = Array.from(this.shadowRoot?.querySelectorAll('style') || [])\n .map(s => s.textContent)\n .join('\\n');\n\n const content = this.buildPrintableContent();\n\n printWindow.document.write(\n `<!DOCTYPE html><html><head><style>${stylesText}</style></head><body>${content}</body></html>`\n );\n printWindow.document.close();\n printWindow.print();\n printWindow.close();\n }\n\n private buildPrintableContent(): string {\n if (!this.shadowRoot) return '';\n const container = document.createElement('div');\n for (const node of Array.from(this.shadowRoot.childNodes)) {\n if (node.nodeType === 1 && (node as Element).tagName === 'STYLE') continue;\n container.appendChild(this.cloneExpandingSlots(node));\n }\n return container.innerHTML;\n }\n\n private cloneExpandingSlots(node: Node): Node {\n if (node.nodeType === 1 && (node as Element).tagName === 'SLOT') {\n const slot = node as HTMLSlotElement;\n const assigned = slot.assignedNodes({ flatten: true });\n const frag = document.createDocumentFragment();\n if (assigned.length > 0) {\n for (const n of assigned) frag.appendChild(n.cloneNode(true));\n } else {\n // Fallback content inside the <slot>\n for (const n of Array.from(slot.childNodes)) {\n frag.appendChild(this.cloneExpandingSlots(n));\n }\n }\n return frag;\n }\n const clone = node.cloneNode(false);\n for (const child of Array.from(node.childNodes)) {\n clone.appendChild(this.cloneExpandingSlots(child));\n }\n return clone;\n }\n\n private renderDivider(): unknown {\n return html/*html*/`<hr class=\"receipt__divider\" part=\"divider\" />`;\n }\n\n private renderQrSlot(): unknown {\n const showSlot = this.showQr;\n if (!showSlot) return '';\n return html/*html*/`\n <div class=\"receipt__qr\" part=\"qr-container\">\n <slot name=\"qr\"></slot>\n </div>\n `;\n }\n\n private renderItem(item: ReceiptItem): unknown {\n const lineTotal = item.quantity * item.price;\n const hasDiscount = (item.discount || 0) > 0;\n const showQty = item.quantity !== 1;\n const isDetailed = this.variant === 'detailed';\n const hasSku = isDetailed && item.sku;\n const hasNote = isDetailed && item.note;\n\n return html/*html*/`\n <div class=\"receipt__item\" part=\"item\">\n <div class=\"receipt__item-info\">\n <span class=\"receipt__item-name\" part=\"item-name\">${item.name}</span>\n <if ${hasSku}>\n <span class=\"receipt__item-sku\" part=\"item-sku\">${item.sku}</span>\n </if>\n <if ${hasNote}>\n <span class=\"receipt__item-note\">${item.note}</span>\n </if>\n <if ${hasDiscount}>\n <span class=\"receipt__item-discount\">-${this.formatCurrency(item.discount || 0)}</span>\n </if>\n </div>\n <if ${showQty}>\n <span class=\"receipt__item-qty\" part=\"item-qty\">x${item.quantity}</span>\n </if>\n <span class=\"receipt__item-price\" part=\"item-price\">${this.formatCurrency(lineTotal)}</span>\n </div>\n `;\n }\n\n private renderMerchantContact(): unknown {\n const m = this.merchant;\n const hasPhone = m.phone;\n const hasEmail = m.email;\n const hasWebsite = m.website;\n const hasTaxId = m.taxId;\n const hasAny = hasPhone || hasEmail || hasWebsite || hasTaxId;\n if (!hasAny) return '';\n\n const parts: string[] = [];\n if (m.phone) parts.push(m.phone);\n if (m.email) parts.push(m.email);\n if (m.website) parts.push(m.website);\n if (m.taxId) parts.push(`Tax ID: ${m.taxId}`);\n\n return html/*html*/`\n <div class=\"receipt__merchant-contact\" part=\"merchant-contact\">${parts.join(' | ')}</div>\n `;\n }\n\n @render()\n renderContent() {\n const computedSubtotal = this.getComputedSubtotal();\n const computedTotal = this.getComputedTotal();\n const computedTax = this.getComputedTax();\n const hasMerchant = this.merchant.name;\n const hasTax = computedTax > 0;\n const hasMultipleTaxes = this.taxes.length > 0;\n const hasTip = this.tip > 0;\n const hasDiscount = this.discount > 0;\n const hasItems = this.items.length > 0;\n const hasMeta = this.receiptNumber || this.date || this.cashier || this.terminalId;\n const hasPayment = this.paymentMethod;\n const qrTop = this.showQr && this.qrPosition === 'top';\n const qrBottom = this.showQr && this.qrPosition === 'bottom';\n const qrFooter = this.showQr && this.qrPosition === 'footer';\n\n return html/*html*/`\n <div class=\"receipt\" part=\"base\">\n\n <if ${qrTop}>\n ${this.renderQrSlot()}\n ${this.renderDivider()}\n </if>\n\n <if ${hasMerchant}>\n <div class=\"receipt__header\" part=\"header\">\n <if ${this.merchant.logo}>\n <img class=\"receipt__logo\" src=\"${this.merchant.logo}\" alt=\"${this.merchant.name}\" part=\"logo\" />\n </if>\n <div class=\"receipt__merchant-name\" part=\"merchant-name\">${this.merchant.name}</div>\n <if ${this.merchant.address}>\n <div class=\"receipt__merchant-address\" part=\"merchant-address\">${this.merchant.address}</div>\n </if>\n ${this.renderMerchantContact()}\n </div>\n ${this.renderDivider()}\n </if>\n\n <if ${hasMeta}>\n <div class=\"receipt__meta\" part=\"meta\">\n <if ${this.receiptNumber}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Receipt #</span>\n <span class=\"receipt__meta-value\" part=\"receipt-number\">${this.receiptNumber}</span>\n </div>\n </if>\n <if ${this.date}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Date</span>\n <span class=\"receipt__meta-value\" part=\"date\">${this.date}</span>\n </div>\n </if>\n <if ${this.cashier}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Cashier</span>\n <span class=\"receipt__meta-value\">${this.cashier}</span>\n </div>\n </if>\n <if ${this.terminalId}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Terminal</span>\n <span class=\"receipt__meta-value\">${this.terminalId}</span>\n </div>\n </if>\n </div>\n ${this.renderDivider()}\n </if>\n\n <slot name=\"before-items\"></slot>\n\n <if ${hasItems}>\n <div class=\"receipt__items-header\" part=\"items-header\">\n <span>Item</span>\n <span>Amount</span>\n </div>\n <div class=\"receipt__items\" part=\"items\">\n ${this.items.map(item => this.renderItem(item))}\n </div>\n ${this.renderDivider()}\n </if>\n\n <slot name=\"after-items\"></slot>\n\n <div class=\"receipt__totals\" part=\"totals\">\n <div class=\"receipt__total-row\" part=\"subtotal-row\">\n <span>Subtotal</span>\n <span>${this.formatCurrency(computedSubtotal)}</span>\n </div>\n\n <if ${hasDiscount}>\n <div class=\"receipt__total-row receipt__total-row--discount\" part=\"discount-row\">\n <span>${this.discountLabel}</span>\n <span>-${this.formatCurrency(this.discount)}</span>\n </div>\n </if>\n\n <if ${hasTax && !hasMultipleTaxes}>\n <div class=\"receipt__total-row\" part=\"tax-row\">\n <span>Tax</span>\n <span>${this.formatCurrency(this.tax)}</span>\n </div>\n </if>\n\n <if ${hasMultipleTaxes}>\n ${this.taxes.map(t => {\n const label = t.rate ? `${t.label} (${t.rate}%)` : t.label;\n return html/*html*/`\n <div class=\"receipt__total-row\" part=\"tax-row\">\n <span>${label}</span>\n <span>${this.formatCurrency(t.amount)}</span>\n </div>\n `;\n })}\n </if>\n\n <if ${hasTip}>\n <div class=\"receipt__total-row\" part=\"tip-row\">\n <span>Tip</span>\n <span>${this.formatCurrency(this.tip)}</span>\n </div>\n </if>\n\n <div class=\"receipt__total-row receipt__total-row--grand\" part=\"total-row\">\n <span>Total</span>\n <span>${this.formatCurrency(computedTotal)}</span>\n </div>\n </div>\n\n <if ${hasPayment}>\n ${this.renderDivider()}\n <div class=\"receipt__payment\" part=\"payment\">\n <span>Paid with </span>\n <span class=\"receipt__payment-method\" part=\"payment-method\">${this.paymentMethod}</span>\n <if ${this.paymentDetails}>\n <div class=\"receipt__payment-details\" part=\"payment-details\">${this.paymentDetails}</div>\n </if>\n </div>\n </if>\n\n <if ${qrBottom}>\n ${this.renderDivider()}\n ${this.renderQrSlot()}\n </if>\n\n <div class=\"receipt__barcode\" part=\"barcode-area\">\n <slot name=\"barcode\"></slot>\n </div>\n\n ${this.renderDivider()}\n <div class=\"receipt__footer\" part=\"footer\">\n <slot name=\"thank-you\">\n <if ${this.thankYou}>\n <div class=\"receipt__thank-you\" part=\"thank-you\">${this.thankYou}</div>\n </if>\n </slot>\n <slot></slot>\n <if ${qrFooter}>\n ${this.renderQrSlot()}\n </if>\n </div>\n </div>\n `;\n }\n\n @styles()\n componentStyles() {\n return css/*css*/`${cssContent}`;\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snice-receipt.js","sources":["../../../components/receipt/snice-receipt.css?inline","../../../../components/receipt/snice-receipt.ts"],"sourcesContent":["export default \":host([hidden]){display:none}:host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);--receipt-max-width:var(--snice-receipt-max-width, 22rem);--receipt-padding:var(--snice-receipt-padding, 1.5rem);--receipt-bg:var(--snice-receipt-bg, var(--snice-color-surface, rgb(255 255 255)));--receipt-text:var(--snice-receipt-text, var(--snice-color-text, rgb(23 23 23)));--receipt-text-secondary:var(--snice-receipt-text-secondary, var(--snice-color-text-secondary, rgb(82 82 82)));--receipt-text-tertiary:var(--snice-receipt-text-tertiary, var(--snice-color-text-tertiary, rgb(115 115 115)));--receipt-border:var(--snice-receipt-border, var(--snice-color-border, rgb(226 226 226)));--receipt-bg-element:var(--snice-receipt-bg-element, var(--snice-color-surface-container-high, rgb(252 251 249)));--receipt-header-bg:var(--snice-receipt-header-bg, transparent);--receipt-accent:var(--snice-receipt-accent, var(--snice-color-primary, rgb(37 99 235)));--receipt-font-family:var(--snice-receipt-font-family, inherit);--receipt-merchant-font-size:var(--snice-receipt-merchant-font-size, 1.25rem);--receipt-item-font-size:var(--snice-receipt-item-font-size, 0.9375rem);--receipt-meta-font-size:var(--snice-receipt-meta-font-size, 0.8125rem);--receipt-total-font-size:var(--snice-receipt-total-font-size, 1.125rem);--receipt-total-font-weight:var(--snice-receipt-total-font-weight, 700);--receipt-footer-font-size:var(--snice-receipt-footer-font-size, 0.8125rem);--receipt-divider-style:var(--snice-receipt-divider-style, dashed);--receipt-divider-color:var(--snice-receipt-divider-color, var(--receipt-border));--receipt-divider-width:var(--snice-receipt-divider-width, 1px);--receipt-border-radius:var(--snice-receipt-border-radius, 8px);--receipt-border-color:var(--snice-receipt-border-color, var(--receipt-border));--receipt-shadow:var(--snice-receipt-shadow, none);--receipt-thermal-font:var(--snice-receipt-thermal-font, 'Courier New', Courier, monospace);--receipt-thermal-width:var(--snice-receipt-thermal-width, 18rem);--receipt-thermal-bg:var(--snice-receipt-thermal-bg, var(--snice-color-surface-container-high, rgb(252 251 249)));--receipt-modern-radius:var(--snice-receipt-modern-radius, 12px);--receipt-modern-shadow:var(--snice-receipt-modern-shadow, 0 4px 24px rgb(0 0 0 / 0.08));--receipt-modern-section-bg:var(--snice-receipt-modern-section-bg, var(--receipt-bg-element));--receipt-modern-section-radius:var(--snice-receipt-modern-section-radius, 8px);--receipt-qr-size:var(--snice-receipt-qr-size, 6rem)}.receipt{background:var(--receipt-bg);border:1px solid var(--receipt-border-color);border-radius:var(--receipt-border-radius);padding:var(--receipt-padding);color:var(--receipt-text);max-width:var(--receipt-max-width);font-family:var(--receipt-font-family);box-shadow:var(--receipt-shadow);line-height:var(--snice-line-height-normal, 1.5)}.receipt__divider{border:none;border-top:var(--receipt-divider-width) var(--receipt-divider-style) var(--receipt-divider-color);margin:var(--snice-spacing-sm,.75rem) 0}.receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);text-align:center;padding-bottom:var(--snice-spacing-sm,.75rem);background:var(--receipt-header-bg)}.receipt__logo{max-height:3rem;max-width:10rem;object-fit:contain;margin-bottom:var(--snice-spacing-xs,.5rem)}.receipt__merchant-name{font-size:var(--receipt-merchant-font-size);font-weight:var(--snice-font-weight-bold,700);color:var(--receipt-text);margin:0;letter-spacing:.01em}.receipt__merchant-address{font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary);line-height:var(--snice-line-height-normal, 1.5);white-space:pre-line;margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__merchant-contact{font-size:var(--receipt-meta-font-size);color:var(--receipt-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--snice-spacing-xs,.5rem);font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary)}.receipt__meta-item{display:flex;flex-direction:column;gap:.0625rem}.receipt__meta-label{font-size:.6875rem;color:var(--receipt-text-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--snice-font-weight-medium,500)}.receipt__meta-value{font-weight:var(--snice-font-weight-medium,500);color:var(--receipt-text)}.receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;justify-content:space-between;font-size:.6875rem;text-transform:uppercase;letter-spacing:.06em;color:var(--receipt-text-tertiary);font-weight:var(--snice-font-weight-medium,500);padding-bottom:var(--snice-spacing-2xs,.25rem);border-bottom:1px solid var(--receipt-divider-color);margin-bottom:var(--snice-spacing-2xs,.25rem)}.receipt__items{display:flex;flex-direction:column}.receipt__item{display:flex;justify-content:space-between;align-items:baseline;padding:var(--snice-spacing-2xs,.25rem) 0;font-size:var(--receipt-item-font-size);gap:var(--snice-spacing-xs,.5rem)}.receipt__item-info{flex:1;min-width:0}.receipt__item-name{color:var(--receipt-text);display:block}.receipt__item-sku{font-size:.6875rem;color:var(--receipt-text-tertiary);font-family:var(--receipt-thermal-font)}.receipt__item-note{font-size:.75rem;color:var(--receipt-text-tertiary);font-style:italic}.receipt__item-qty{font-size:.8125rem;color:var(--receipt-text-tertiary);white-space:nowrap}.receipt__item-discount{font-size:.75rem;color:var(--snice-color-danger,rgb(220 38 38))}.receipt__item-price{font-weight:var(--snice-font-weight-medium,500);white-space:nowrap;text-align:right}.receipt__totals{display:flex;flex-direction:column}.receipt__total-row{display:flex;justify-content:space-between;padding:var(--snice-spacing-3xs,.125rem) 0;font-size:var(--receipt-item-font-size);color:var(--receipt-text-secondary)}.receipt__total-row--discount{color:var(--snice-color-danger,rgb(220 38 38))}.receipt__total-row--grand{border-top:2px solid var(--receipt-text);margin-top:var(--snice-spacing-xs,.5rem);padding-top:var(--snice-spacing-xs,.5rem);font-size:var(--receipt-total-font-size);font-weight:var(--receipt-total-font-weight);color:var(--receipt-text)}.receipt__payment{text-align:center;font-size:var(--receipt-meta-font-size);color:var(--receipt-text-secondary)}.receipt__payment-method{font-weight:var(--snice-font-weight-semibold,600);color:var(--receipt-text)}.receipt__payment-details{font-size:.75rem;color:var(--receipt-text-tertiary);margin-top:var(--snice-spacing-3xs,.125rem)}.receipt__qr{display:flex;justify-content:center;padding:var(--snice-spacing-xs,.5rem) 0}.receipt__qr ::slotted(*){width:var(--receipt-qr-size);height:var(--receipt-qr-size)}.receipt__barcode{display:flex;justify-content:center;padding:var(--snice-spacing-xs,.5rem) 0}.receipt__barcode ::slotted(*){max-width:100%}.receipt__footer{text-align:center;font-size:var(--receipt-footer-font-size);color:var(--receipt-text-tertiary)}.receipt__thank-you{font-weight:var(--snice-font-weight-medium,500);color:var(--receipt-text-secondary);margin-bottom:var(--snice-spacing-2xs,.25rem)}:host([variant=thermal]){font-family:var(--receipt-thermal-font)}:host([variant=thermal]) .receipt{max-width:var(--receipt-thermal-width);border-radius:0;border:none;background:var(--receipt-thermal-bg);color:var(--receipt-text);padding:var(--snice-spacing-md,1rem) var(--snice-spacing-sm,.75rem);box-shadow:var(--snice-shadow-sm,0 2px 8px rgb(0 0 0 / .06));font-family:var(--receipt-thermal-font)}:host([variant=thermal]) .receipt__divider{border-top-style:dotted;border-top-width:2px;border-top-color:var(--receipt-divider-color);margin:var(--snice-spacing-xs,.5rem) 0}:host([variant=thermal]) .receipt__merchant-name{font-size:var(--snice-font-size-md, 1rem);text-transform:uppercase;letter-spacing:.12em;color:var(--receipt-text)}:host([variant=thermal]) .receipt__merchant-address,:host([variant=thermal]) .receipt__merchant-contact{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__meta{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__meta-label{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__meta-value{color:var(--receipt-text)}:host([variant=thermal]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-size:.625rem;border-bottom-style:dotted;color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__item{font-size:.8125rem;padding:.125rem 0}:host([variant=thermal]) .receipt__item-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--receipt-text)}:host([variant=thermal]) .receipt__item-qty{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__item-price{color:var(--receipt-text)}:host([variant=thermal]) .receipt__total-row{font-size:.8125rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__total-row--grand{font-size:.9375rem;border-top-style:double;border-top-width:3px;color:var(--receipt-text)}:host([variant=thermal]) .receipt__payment{font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=thermal]) .receipt__payment-method{color:var(--receipt-text)}:host([variant=thermal]) .receipt__payment-details{color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__footer{font-size:.6875rem;letter-spacing:.04em;color:var(--receipt-text-tertiary)}:host([variant=thermal]) .receipt__thank-you{text-transform:uppercase;letter-spacing:var(--snice-tracking-widest, .1em);font-size:.75rem;color:var(--receipt-text-secondary)}:host([variant=modern]) .receipt{border:none;border-radius:var(--receipt-modern-radius);box-shadow:var(--receipt-modern-shadow);padding:var(--snice-spacing-lg,1.5rem)}:host([variant=modern]) .receipt__divider{border:none;margin:var(--snice-spacing-md,1rem) 0}:host([variant=modern]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=modern]) .receipt__merchant-name{font-size:1.375rem;letter-spacing:var(--snice-tracking-tight, -.02em)}:host([variant=modern]) .receipt__meta{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__items{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);border-bottom-color:var(--receipt-border)}:host([variant=modern]) .receipt__totals{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__total-row--grand{border-top:2px solid var(--receipt-accent);color:var(--receipt-accent)}:host([variant=modern]) .receipt__payment{background:var(--receipt-modern-section-bg);border-radius:var(--receipt-modern-section-radius);padding:var(--snice-spacing-sm,.75rem)}:host([variant=modern]) .receipt__footer{padding-top:var(--snice-spacing-xs,.5rem)}:host([variant=modern]) .receipt__thank-you{color:var(--receipt-accent);font-weight:var(--snice-font-weight-semibold,600)}:host([variant=minimal]) .receipt{border:none;border-radius:0;padding:var(--snice-spacing-md,1rem) 0;box-shadow:none;max-width:20rem}:host([variant=minimal]) .receipt__divider{border-top-style:solid;border-top-color:var(--receipt-border);margin:var(--snice-spacing-md,1rem) 0}:host([variant=minimal]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=minimal]) .receipt__logo{display:none}:host([variant=minimal]) .receipt__merchant-name{font-size:1rem;text-transform:uppercase;letter-spacing:.15em;font-weight:var(--snice-font-weight-medium,500)}:host([variant=minimal]) .receipt__merchant-address,:host([variant=minimal]) .receipt__merchant-contact{display:none}:host([variant=minimal]) .receipt__meta{font-size:.75rem}:host([variant=minimal]) .receipt__meta-label{display:none}:host([variant=minimal]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:none}:host([variant=minimal]) .receipt__item{font-size:.875rem}:host([variant=minimal]) .receipt__item-discount,:host([variant=minimal]) .receipt__item-note,:host([variant=minimal]) .receipt__item-sku{display:none}:host([variant=minimal]) .receipt__total-row{font-size:.875rem}:host([variant=minimal]) .receipt__total-row--grand{font-size:1rem;border-top-width:1px;border-top-style:solid}:host([variant=minimal]) .receipt__payment{font-size:.75rem}:host([variant=minimal]) .receipt__footer{font-size:.75rem}:host([variant=detailed]) .receipt{max-width:26rem}:host([variant=detailed]) .receipt__header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);border-bottom:2px solid var(--receipt-text);padding-bottom:var(--snice-spacing-md,1rem)}:host([variant=detailed]) .receipt__merchant-name{font-size:1.5rem}:host([variant=detailed]) .receipt__merchant-contact{font-size:.75rem}:host([variant=detailed]) .receipt__meta{display:grid;grid-template-columns:1fr 1fr;gap:var(--snice-spacing-xs,.5rem)}:host([variant=detailed]) .receipt__items-header{font-family:var(--snice-font-family-display, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);display:flex;font-weight:var(--snice-font-weight-semibold,600);border-bottom:2px solid var(--receipt-border);padding-bottom:var(--snice-spacing-2xs,.25rem)}:host([variant=detailed]) .receipt__item{border-bottom:1px solid var(--receipt-divider-color);padding:var(--snice-spacing-2xs,.25rem) 0}:host([variant=detailed]) .receipt__item:last-child{border-bottom:none}:host([variant=detailed]) .receipt__item-sku{display:block}:host([variant=detailed]) .receipt__item-note{display:block}:host([variant=detailed]) .receipt__item-discount{display:block}:host([variant=detailed]) .receipt__total-row--grand{font-size:1.25rem;border-top:2px solid var(--receipt-text)}:host([variant=detailed]) .receipt__payment-details{font-size:.8125rem}@media print{.receipt{border:none;box-shadow:none;border-radius:0;padding:0;max-width:none}.receipt__barcode ::slotted(*),.receipt__qr ::slotted(*){-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([variant=thermal]) .receipt{max-width:var(--receipt-thermal-width);background:#fff;box-shadow:none}:host([variant=modern]) .receipt{box-shadow:none}:host([variant=modern]) .receipt__items,:host([variant=modern]) .receipt__meta,:host([variant=modern]) .receipt__payment,:host([variant=modern]) .receipt__totals{background:0 0;border:1px solid var(--receipt-border)}}@media (prefers-reduced-motion:reduce){*{transition-duration:0s!important;animation-duration:0s!important}}:host([variant=paper]){--receipt-bg:color-mix(in srgb, var(--snice-color-surface, rgb(255 255 255)) 96%, rgb(196 160 96));--receipt-text:var(--snice-color-text, rgb(43 38 31));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(94 85 72));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(148 136 116));--receipt-border:color-mix(in srgb, var(--snice-color-border, rgb(216 208 192)) 85%, rgb(180 150 90));--receipt-paper-ink:var(--snice-color-text, rgb(43 38 31));--receipt-paper-accent:rgb(186 96 74)}:host([variant=paper]) .receipt{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='d'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23d)'/%3E%3C/svg%3E\\\"),url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='l'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.03 0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23l)'/%3E%3C/svg%3E\\\");background:var(--receipt-bg);color:var(--receipt-text);border:1px solid var(--receipt-paper-ink);border-radius:0;box-shadow:0 1px 2px rgb(56 46 30 / .1),0 18px 40px -20px rgb(56 46 30 / .5)}:host([variant=paper]) .receipt__merchant-name{font-family:Georgia,'Times New Roman',serif;text-transform:uppercase;letter-spacing:.3em;font-weight:var(--snice-font-weight-normal,400)}:host([variant=paper]) .receipt__header{border-bottom:4px double var(--receipt-paper-ink)}:host([variant=paper]) .receipt__total-row--grand{border:1px solid var(--receipt-paper-ink);box-shadow:inset 0 0 0 3px var(--receipt-bg),inset 0 0 0 4px var(--receipt-paper-accent);background:var(--receipt-bg);padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem)}:host([variant=paper]) .receipt__total-row--grand :last-child{font-family:Georgia,'Times New Roman',serif;font-size:1.5rem;font-variant-numeric:tabular-nums lining-nums}:host([variant=paper]) .receipt__thank-you{font-family:Georgia,'Times New Roman',serif;font-style:italic;color:var(--receipt-paper-accent)}:host([variant=ink]){--receipt-bg:var(--snice-color-surface, rgb(250 249 246));--receipt-text:var(--snice-color-text, rgb(32 30 27));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(92 87 79));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(146 139 126));--receipt-border:var(--snice-color-border, rgb(220 214 202));--receipt-ink:var(--snice-color-text, rgb(28 26 23))}:host([variant=ink]) .receipt{background:var(--receipt-bg);color:var(--receipt-text);border:1px solid var(--receipt-ink);border-radius:0;overflow:hidden;position:relative;padding-bottom:2rem;box-shadow:0 18px 40px -20px rgb(30 28 24 / .5)}:host([variant=ink]) .receipt__header{background:var(--receipt-ink);color:var(--snice-color-surface,rgb(249 247 242));margin:-1.25rem -1.25rem 1.25rem;padding:1.25rem;border-bottom:none}:host([variant=ink]) .receipt__merchant-name{text-transform:uppercase;letter-spacing:.4em;font-weight:var(--snice-font-weight-light,300)}:host([variant=ink]) .receipt__merchant-address,:host([variant=ink]) .receipt__merchant-contact{color:color-mix(in srgb,var(--snice-color-surface,rgb(249 247 242)) 60%,transparent)}:host([variant=ink]) .receipt__total-row--grand{border-top:2px solid var(--receipt-ink);align-items:baseline}:host([variant=ink]) .receipt__total-row--grand :last-child{font-size:2rem;font-weight:var(--snice-font-weight-light,300);font-variant-numeric:tabular-nums lining-nums}:host([variant=ink]) .receipt::after{content:'';position:absolute;left:0;right:0;bottom:0;height:.5rem;background:var(--receipt-ink)}:host([variant=ledger]){--receipt-bg:var(--snice-color-surface, rgb(250 250 247));--receipt-text:var(--snice-color-text, rgb(40 40 38));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(105 103 96));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(150 147 138));--receipt-border:var(--snice-color-border, rgb(216 214 205));--receipt-bg-element:transparent}:host([variant=ledger]) [part=base]{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;border:1px solid var(--snice-color-text,rgb(40 40 38));border-radius:0;box-shadow:0 14px 34px -18px rgb(40 40 38 / .45);letter-spacing:.01em}:host([variant=ledger]) [part=base] *{font-family:inherit}:host([variant=ticket]){--receipt-bg:var(--snice-color-surface, rgb(252 251 247));--receipt-text:var(--snice-color-text, rgb(45 42 38));--receipt-text-secondary:var(--snice-color-text-secondary, rgb(110 104 94));--receipt-text-tertiary:var(--snice-color-text-tertiary, rgb(158 150 136));--receipt-border:var(--snice-color-border, rgb(214 208 194));--receipt-bg-element:var(--snice-color-surface-container-high, rgb(246 243 236))}:host([variant=ticket]) [part=base]{border:1px solid var(--snice-color-text,rgb(45 42 38));border-radius:.75rem;overflow:hidden;position:relative;padding-bottom:3.25rem;box-shadow:0 14px 34px -18px rgb(45 42 38 / .45)}:host([variant=ticket]) [part=header]{position:relative;border-bottom:2px dashed var(--snice-color-border-hover,rgb(178 168 150));padding-bottom:1rem}:host([variant=ticket]) [part=header]::after,:host([variant=ticket]) [part=header]::before{content:'';position:absolute;bottom:-.8125rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--snice-color-surface,rgb(24 24 27));border:1px solid var(--snice-color-text,rgb(45 42 38))}:host([variant=ticket]) [part=header]::before{left:-2.25rem}:host([variant=ticket]) [part=header]::after{right:-2.25rem}:host([variant=ticket]) [part=base]::after{content:'';position:absolute;left:1.5rem;right:1.5rem;bottom:.875rem;height:1.75rem;background:repeating-linear-gradient(90deg,var(--snice-color-text,rgb(45 42 38)) 0 2px,transparent 2px 5px,var(--snice-color-text,rgb(45 42 38)) 5px 6px,transparent 6px 11px,var(--snice-color-text,rgb(45 42 38)) 11px 14px,transparent 14px 17px);opacity:.85}\";","import { element, property, render, styles, html, css } from 'snice';\nimport cssContent from './snice-receipt.css?inline';\nimport type {\n SniceReceiptElement,\n ReceiptVariant,\n ReceiptMerchant,\n ReceiptItem,\n ReceiptTaxLine,\n QrPosition\n} from './snice-receipt.types';\n\n@element('snice-receipt')\nexport class SniceReceipt extends HTMLElement implements SniceReceiptElement {\n @property({ attribute: 'receipt-number' })\n receiptNumber = '';\n\n @property()\n date = '';\n\n @property()\n currency = 'USD';\n\n @property()\n locale = '';\n\n @property({ type: Object, attribute: false })\n merchant: ReceiptMerchant = { name: '' };\n\n @property({ type: Array, attribute: false })\n items: ReceiptItem[] = [];\n\n @property({ type: Number })\n tax = 0;\n\n @property({ type: Array, attribute: false })\n taxes: ReceiptTaxLine[] = [];\n\n @property({ type: Number })\n subtotal = 0;\n\n @property({ type: Number })\n total = 0;\n\n @property({ type: Number })\n tip = 0;\n\n @property({ type: Number })\n discount = 0;\n\n @property({ attribute: 'discount-label' })\n discountLabel = 'Discount';\n\n @property({ attribute: 'payment-method' })\n paymentMethod = '';\n\n @property({ attribute: 'payment-details' })\n paymentDetails = '';\n\n @property()\n variant: ReceiptVariant = 'standard';\n\n @property({ type: Boolean, attribute: 'show-qr' })\n showQr = false;\n\n @property({ attribute: 'qr-data' })\n qrData = '';\n\n @property({ attribute: 'qr-position' })\n qrPosition: QrPosition = 'bottom';\n\n @property({ attribute: 'thank-you' })\n thankYou = 'Thank you for your purchase!';\n\n @property()\n cashier = '';\n\n @property({ attribute: 'terminal-id' })\n terminalId = '';\n\n private getComputedSubtotal(): number {\n if (this.subtotal > 0) return this.subtotal;\n return this.items.reduce((sum, item) => {\n const lineTotal = item.quantity * item.price;\n const itemDiscount = item.discount || 0;\n return sum + lineTotal - itemDiscount;\n }, 0);\n }\n\n private getComputedTax(): number {\n if (this.taxes.length > 0) {\n return this.taxes.reduce((sum, t) => sum + t.amount, 0);\n }\n return this.tax;\n }\n\n private getComputedTotal(): number {\n if (this.total > 0) return this.total;\n const sub = this.getComputedSubtotal();\n const taxAmt = this.getComputedTax();\n return sub + taxAmt - this.discount + this.tip;\n }\n\n private formatCurrency(amount: number): string {\n const loc = this.locale || undefined;\n try {\n return new Intl.NumberFormat(loc, {\n style: 'currency',\n currency: this.currency\n }).format(amount);\n } catch {\n return `${this.currency} ${amount.toFixed(2)}`;\n }\n }\n\n print(): void {\n const printWindow = window.open('', '_blank');\n if (!printWindow) return;\n\n // Clone the shadow tree and expand each <slot> into its assigned nodes so\n // light-DOM children (slotted QR code, barcode, etc.) are included in the\n // print output. Plain innerHTML drops slotted content entirely.\n const stylesText = Array.from(this.shadowRoot?.querySelectorAll('style') || [])\n .map(s => s.textContent)\n .join('\\n');\n\n const content = this.buildPrintableContent();\n\n printWindow.document.write(\n `<!DOCTYPE html><html><head><style>${stylesText}</style></head><body>${content}</body></html>`\n );\n printWindow.document.close();\n printWindow.print();\n printWindow.close();\n }\n\n private buildPrintableContent(): string {\n if (!this.shadowRoot) return '';\n const container = document.createElement('div');\n for (const node of Array.from(this.shadowRoot.childNodes)) {\n if (node.nodeType === 1 && (node as Element).tagName === 'STYLE') continue;\n container.appendChild(this.cloneExpandingSlots(node));\n }\n return container.innerHTML;\n }\n\n private cloneExpandingSlots(node: Node): Node {\n if (node.nodeType === 1 && (node as Element).tagName === 'SLOT') {\n const slot = node as HTMLSlotElement;\n const assigned = slot.assignedNodes({ flatten: true });\n const frag = document.createDocumentFragment();\n if (assigned.length > 0) {\n for (const n of assigned) frag.appendChild(n.cloneNode(true));\n } else {\n // Fallback content inside the <slot>\n for (const n of Array.from(slot.childNodes)) {\n frag.appendChild(this.cloneExpandingSlots(n));\n }\n }\n return frag;\n }\n const clone = node.cloneNode(false);\n for (const child of Array.from(node.childNodes)) {\n clone.appendChild(this.cloneExpandingSlots(child));\n }\n return clone;\n }\n\n private renderDivider(): unknown {\n return html/*html*/`<hr class=\"receipt__divider\" part=\"divider\" />`;\n }\n\n private renderQrSlot(): unknown {\n const showSlot = this.showQr;\n if (!showSlot) return '';\n return html/*html*/`\n <div class=\"receipt__qr\" part=\"qr-container\">\n <slot name=\"qr\"></slot>\n </div>\n `;\n }\n\n private renderItem(item: ReceiptItem): unknown {\n const lineTotal = item.quantity * item.price;\n const showQty = item.quantity !== 1;\n const isDetailed = this.variant === 'detailed';\n const hasSku = isDetailed && item.sku;\n const hasNote = isDetailed && item.note;\n // SKU, notes, and per-item discounts are `detailed`-only (receipt.md).\n // The discount still counts toward the subtotal in every variant; only its\n // per-line rendering is gated.\n const hasDiscount = isDetailed && (item.discount || 0) > 0;\n\n return html/*html*/`\n <div class=\"receipt__item\" part=\"item\">\n <div class=\"receipt__item-info\">\n <span class=\"receipt__item-name\" part=\"item-name\">${item.name}</span>\n <if ${hasSku}>\n <span class=\"receipt__item-sku\" part=\"item-sku\">${item.sku}</span>\n </if>\n <if ${hasNote}>\n <span class=\"receipt__item-note\">${item.note}</span>\n </if>\n <if ${hasDiscount}>\n <span class=\"receipt__item-discount\">-${this.formatCurrency(item.discount || 0)}</span>\n </if>\n </div>\n <if ${showQty}>\n <span class=\"receipt__item-qty\" part=\"item-qty\">x${item.quantity}</span>\n </if>\n <span class=\"receipt__item-price\" part=\"item-price\">${this.formatCurrency(lineTotal)}</span>\n </div>\n `;\n }\n\n private renderMerchantContact(): unknown {\n const m = this.merchant;\n const hasPhone = m.phone;\n const hasEmail = m.email;\n const hasWebsite = m.website;\n const hasTaxId = m.taxId;\n const hasAny = hasPhone || hasEmail || hasWebsite || hasTaxId;\n if (!hasAny) return '';\n\n const parts: string[] = [];\n if (m.phone) parts.push(m.phone);\n if (m.email) parts.push(m.email);\n if (m.website) parts.push(m.website);\n if (m.taxId) parts.push(`Tax ID: ${m.taxId}`);\n\n return html/*html*/`\n <div class=\"receipt__merchant-contact\" part=\"merchant-contact\">${parts.join(' | ')}</div>\n `;\n }\n\n @render()\n renderContent() {\n const computedSubtotal = this.getComputedSubtotal();\n const computedTotal = this.getComputedTotal();\n const computedTax = this.getComputedTax();\n const hasMerchant = this.merchant.name;\n const hasTax = computedTax > 0;\n const hasMultipleTaxes = this.taxes.length > 0;\n const hasTip = this.tip > 0;\n const hasDiscount = this.discount > 0;\n const hasItems = this.items.length > 0;\n const hasMeta = this.receiptNumber || this.date || this.cashier || this.terminalId;\n const hasPayment = this.paymentMethod;\n const qrTop = this.showQr && this.qrPosition === 'top';\n const qrBottom = this.showQr && this.qrPosition === 'bottom';\n const qrFooter = this.showQr && this.qrPosition === 'footer';\n\n return html/*html*/`\n <div class=\"receipt\" part=\"base\">\n\n <if ${qrTop}>\n ${this.renderQrSlot()}\n ${this.renderDivider()}\n </if>\n\n <if ${hasMerchant}>\n <div class=\"receipt__header\" part=\"header\">\n <if ${this.merchant.logo}>\n <img class=\"receipt__logo\" src=\"${this.merchant.logo}\" alt=\"${this.merchant.name}\" part=\"logo\" />\n </if>\n <div class=\"receipt__merchant-name\" part=\"merchant-name\">${this.merchant.name}</div>\n <if ${this.merchant.address}>\n <div class=\"receipt__merchant-address\" part=\"merchant-address\">${this.merchant.address}</div>\n </if>\n ${this.renderMerchantContact()}\n </div>\n ${this.renderDivider()}\n </if>\n\n <if ${hasMeta}>\n <div class=\"receipt__meta\" part=\"meta\">\n <if ${this.receiptNumber}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Receipt #</span>\n <span class=\"receipt__meta-value\" part=\"receipt-number\">${this.receiptNumber}</span>\n </div>\n </if>\n <if ${this.date}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Date</span>\n <span class=\"receipt__meta-value\" part=\"date\">${this.date}</span>\n </div>\n </if>\n <if ${this.cashier}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Cashier</span>\n <span class=\"receipt__meta-value\">${this.cashier}</span>\n </div>\n </if>\n <if ${this.terminalId}>\n <div class=\"receipt__meta-item\">\n <span class=\"receipt__meta-label\">Terminal</span>\n <span class=\"receipt__meta-value\">${this.terminalId}</span>\n </div>\n </if>\n </div>\n ${this.renderDivider()}\n </if>\n\n <slot name=\"before-items\"></slot>\n\n <if ${hasItems}>\n <div class=\"receipt__items-header\" part=\"items-header\">\n <span>Item</span>\n <span>Amount</span>\n </div>\n <div class=\"receipt__items\" part=\"items\">\n ${this.items.map(item => this.renderItem(item))}\n </div>\n ${this.renderDivider()}\n </if>\n\n <slot name=\"after-items\"></slot>\n\n <div class=\"receipt__totals\" part=\"totals\">\n <div class=\"receipt__total-row\" part=\"subtotal-row\">\n <span>Subtotal</span>\n <span>${this.formatCurrency(computedSubtotal)}</span>\n </div>\n\n <if ${hasDiscount}>\n <div class=\"receipt__total-row receipt__total-row--discount\" part=\"discount-row\">\n <span>${this.discountLabel}</span>\n <span>-${this.formatCurrency(this.discount)}</span>\n </div>\n </if>\n\n <if ${hasTax && !hasMultipleTaxes}>\n <div class=\"receipt__total-row\" part=\"tax-row\">\n <span>Tax</span>\n <span>${this.formatCurrency(this.tax)}</span>\n </div>\n </if>\n\n <if ${hasMultipleTaxes}>\n ${this.taxes.map(t => {\n const label = t.rate ? `${t.label} (${t.rate}%)` : t.label;\n return html/*html*/`\n <div class=\"receipt__total-row\" part=\"tax-row\">\n <span>${label}</span>\n <span>${this.formatCurrency(t.amount)}</span>\n </div>\n `;\n })}\n </if>\n\n <if ${hasTip}>\n <div class=\"receipt__total-row\" part=\"tip-row\">\n <span>Tip</span>\n <span>${this.formatCurrency(this.tip)}</span>\n </div>\n </if>\n\n <div class=\"receipt__total-row receipt__total-row--grand\" part=\"total-row\">\n <span>Total</span>\n <span>${this.formatCurrency(computedTotal)}</span>\n </div>\n </div>\n\n <if ${hasPayment}>\n ${this.renderDivider()}\n <div class=\"receipt__payment\" part=\"payment\">\n <span>Paid with </span>\n <span class=\"receipt__payment-method\" part=\"payment-method\">${this.paymentMethod}</span>\n <if ${this.paymentDetails}>\n <div class=\"receipt__payment-details\" part=\"payment-details\">${this.paymentDetails}</div>\n </if>\n </div>\n </if>\n\n <if ${qrBottom}>\n ${this.renderDivider()}\n ${this.renderQrSlot()}\n </if>\n\n <div class=\"receipt__barcode\" part=\"barcode-area\">\n <slot name=\"barcode\"></slot>\n </div>\n\n ${this.renderDivider()}\n <div class=\"receipt__footer\" part=\"footer\">\n <slot name=\"thank-you\">\n <if ${this.thankYou}>\n <div class=\"receipt__thank-you\" part=\"thank-you\">${this.thankYou}</div>\n </if>\n </slot>\n <slot></slot>\n <if ${qrFooter}>\n ${this.renderQrSlot()}\n </if>\n </div>\n </div>\n `;\n }\n\n @styles()\n componentStyles() {\n return css/*css*/`${cssContent}`;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ export declare class SniceSelect extends HTMLElement implements SniceSelectEleme
66
66
  private editableInputValue;
67
67
  private remoteSearchTimeout;
68
68
  private remoteSearching;
69
- /** Merged options: programmatic `options` array + child `<snice-option>` elements */
69
+ /** The documented option list: child `<snice-option>` elements win over the `options` array */
70
70
  private get mergedOptions();
71
71
  /**
72
72
  * Options that user interactions resolve against. Remote mode renders the
@@ -347,14 +347,11 @@ let SniceSelect = (() => {
347
347
  get interactionDisabled() {
348
348
  return this.disabled || this.formDisabled || this.loading;
349
349
  }
350
- /** Merged options: programmatic `options` array + child `<snice-option>` elements */
350
+ /** The documented option list: child `<snice-option>` elements win over the `options` array */
351
351
  get mergedOptions() {
352
- // Child options take precedence if both provided (slot wins)
353
- if (this.childOptions.length > 0 && this.options.length > 0) {
354
- // Merge: children first, then programmatic options not already present
355
- const childValues = new Set(this.childOptions.map(o => o.value));
356
- return [...this.childOptions, ...this.options.filter(o => !childValues.has(o.value))];
357
- }
352
+ // "Children take precedence over `options` array" when children are
353
+ // present they are the list, so a later `options` assignment cannot
354
+ // append to or reorder what the author declared in markup.
358
355
  return this.childOptions.length > 0 ? this.childOptions : this.options;
359
356
  }
360
357
  /**
@@ -565,7 +562,7 @@ let SniceSelect = (() => {
565
562
  option.setAttribute('data-value', opt.value);
566
563
  option.setAttribute('role', 'option');
567
564
  option.setAttribute('aria-selected', String(isSelected));
568
- option.setAttribute('aria-disabled', String(opt.disabled));
565
+ option.setAttribute('aria-disabled', String(Boolean(opt.disabled)));
569
566
  option.setAttribute('part', 'option');
570
567
  const check = document.createElement('span');
571
568
  check.className = 'select-option-check';