snice 4.20.1 → 4.22.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 (362) hide show
  1. package/adapters/react/drawer.d.ts +4 -0
  2. package/adapters/react/drawer.d.ts.map +1 -1
  3. package/adapters/react/drawer.js +1 -1
  4. package/adapters/react/drawer.js.map +1 -1
  5. package/adapters/react/drawer.tsx +5 -1
  6. package/adapters/react/notification-center.d.ts +1 -0
  7. package/adapters/react/notification-center.d.ts.map +1 -1
  8. package/adapters/react/notification-center.js +1 -1
  9. package/adapters/react/notification-center.js.map +1 -1
  10. package/adapters/react/notification-center.tsx +2 -1
  11. package/dist/cdn/accordion/snice-accordion.js +1 -1
  12. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  13. package/dist/cdn/activity-feed/snice-activity-feed.js +1 -1
  14. package/dist/cdn/activity-feed/snice-activity-feed.min.js +1 -1
  15. package/dist/cdn/alert/snice-alert.js +1 -1
  16. package/dist/cdn/alert/snice-alert.min.js +1 -1
  17. package/dist/cdn/app-tiles/README.md +2 -2
  18. package/dist/cdn/app-tiles/snice-app-tiles.js +2 -2
  19. package/dist/cdn/app-tiles/snice-app-tiles.js.map +1 -1
  20. package/dist/cdn/app-tiles/snice-app-tiles.min.js +3 -3
  21. package/dist/cdn/app-tiles/snice-app-tiles.min.js.map +1 -1
  22. package/dist/cdn/approval-flow/snice-approval-flow.js +1 -1
  23. package/dist/cdn/approval-flow/snice-approval-flow.min.js +1 -1
  24. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  25. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  26. package/dist/cdn/availability/snice-availability.js +1 -1
  27. package/dist/cdn/availability/snice-availability.min.js +1 -1
  28. package/dist/cdn/avatar/snice-avatar.js +1 -1
  29. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  30. package/dist/cdn/avatar-group/snice-avatar-group.js +1 -1
  31. package/dist/cdn/avatar-group/snice-avatar-group.min.js +1 -1
  32. package/dist/cdn/badge/snice-badge.js +1 -1
  33. package/dist/cdn/badge/snice-badge.min.js +1 -1
  34. package/dist/cdn/banner/snice-banner.js +1 -1
  35. package/dist/cdn/banner/snice-banner.min.js +1 -1
  36. package/dist/cdn/book/snice-book.js +1 -1
  37. package/dist/cdn/book/snice-book.min.js +1 -1
  38. package/dist/cdn/booking/snice-booking.js +1 -1
  39. package/dist/cdn/booking/snice-booking.min.js +1 -1
  40. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  41. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  42. package/dist/cdn/button/snice-button.js +1 -1
  43. package/dist/cdn/button/snice-button.min.js +1 -1
  44. package/dist/cdn/calendar/snice-calendar.js +1 -1
  45. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  46. package/dist/cdn/camera/snice-camera.js +1 -1
  47. package/dist/cdn/camera/snice-camera.min.js +1 -1
  48. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  49. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  50. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  51. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  52. package/dist/cdn/card/snice-card.js +1 -1
  53. package/dist/cdn/card/snice-card.min.js +1 -1
  54. package/dist/cdn/carousel/snice-carousel.js +1 -1
  55. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  56. package/dist/cdn/cart/README.md +1 -1
  57. package/dist/cdn/cart/snice-cart.js +24 -20
  58. package/dist/cdn/cart/snice-cart.js.map +1 -1
  59. package/dist/cdn/cart/snice-cart.min.js +24 -20
  60. package/dist/cdn/cart/snice-cart.min.js.map +1 -1
  61. package/dist/cdn/chart/snice-chart.js +1 -1
  62. package/dist/cdn/chart/snice-chart.min.js +1 -1
  63. package/dist/cdn/chat/README.md +2 -2
  64. package/dist/cdn/chat/snice-chat.js +177 -10
  65. package/dist/cdn/chat/snice-chat.js.map +1 -1
  66. package/dist/cdn/chat/snice-chat.min.js +49 -17
  67. package/dist/cdn/chat/snice-chat.min.js.map +1 -1
  68. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  69. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  70. package/dist/cdn/chip/snice-chip.js +1 -1
  71. package/dist/cdn/chip/snice-chip.min.js +1 -1
  72. package/dist/cdn/code-block/README.md +1 -1
  73. package/dist/cdn/code-block/snice-code-block.js +2 -2
  74. package/dist/cdn/code-block/snice-code-block.js.map +1 -1
  75. package/dist/cdn/code-block/snice-code-block.min.js +3 -3
  76. package/dist/cdn/code-block/snice-code-block.min.js.map +1 -1
  77. package/dist/cdn/color-display/snice-color-display.js +1 -1
  78. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  79. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  80. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  81. package/dist/cdn/command-palette/snice-command-palette.js +2 -2
  82. package/dist/cdn/command-palette/snice-command-palette.js.map +1 -1
  83. package/dist/cdn/command-palette/snice-command-palette.min.js +2 -2
  84. package/dist/cdn/command-palette/snice-command-palette.min.js.map +1 -1
  85. package/dist/cdn/comments/snice-comments.js +1 -1
  86. package/dist/cdn/comments/snice-comments.min.js +1 -1
  87. package/dist/cdn/countdown/snice-countdown.js +1 -1
  88. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  89. package/dist/cdn/cropper/snice-cropper.js +1 -1
  90. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  91. package/dist/cdn/data-card/snice-data-card.js +1 -1
  92. package/dist/cdn/data-card/snice-data-card.min.js +1 -1
  93. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  94. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  95. package/dist/cdn/date-time-picker/snice-date-time-picker.js +1 -1
  96. package/dist/cdn/date-time-picker/snice-date-time-picker.min.js +1 -1
  97. package/dist/cdn/diff/snice-diff.js +1 -1
  98. package/dist/cdn/diff/snice-diff.min.js +1 -1
  99. package/dist/cdn/divider/snice-divider.js +1 -1
  100. package/dist/cdn/divider/snice-divider.min.js +1 -1
  101. package/dist/cdn/doc/snice-doc.js +1 -1
  102. package/dist/cdn/doc/snice-doc.min.js +1 -1
  103. package/dist/cdn/draw/snice-draw.js +1 -1
  104. package/dist/cdn/draw/snice-draw.min.js +1 -1
  105. package/dist/cdn/drawer/README.md +2 -2
  106. package/dist/cdn/drawer/snice-drawer.js +129 -22
  107. package/dist/cdn/drawer/snice-drawer.js.map +1 -1
  108. package/dist/cdn/drawer/snice-drawer.min.js +22 -18
  109. package/dist/cdn/drawer/snice-drawer.min.js.map +1 -1
  110. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  111. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  112. package/dist/cdn/estimate/snice-estimate.js +1 -1
  113. package/dist/cdn/estimate/snice-estimate.min.js +1 -1
  114. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  115. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  116. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  117. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  118. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  119. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  120. package/dist/cdn/flow/snice-flow.js +1 -1
  121. package/dist/cdn/flow/snice-flow.min.js +1 -1
  122. package/dist/cdn/form-layout/snice-form-layout.js +1 -1
  123. package/dist/cdn/form-layout/snice-form-layout.min.js +1 -1
  124. package/dist/cdn/funnel/snice-funnel.js +1 -1
  125. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  126. package/dist/cdn/gantt/snice-gantt.js +1 -1
  127. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  128. package/dist/cdn/gauge/snice-gauge.js +1 -1
  129. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  130. package/dist/cdn/heatmap/README.md +2 -2
  131. package/dist/cdn/heatmap/snice-heatmap.js +2 -2
  132. package/dist/cdn/heatmap/snice-heatmap.js.map +1 -1
  133. package/dist/cdn/heatmap/snice-heatmap.min.js +5 -5
  134. package/dist/cdn/heatmap/snice-heatmap.min.js.map +1 -1
  135. package/dist/cdn/image/snice-image.js +1 -1
  136. package/dist/cdn/image/snice-image.min.js +1 -1
  137. package/dist/cdn/input/snice-input.js +1 -1
  138. package/dist/cdn/input/snice-input.min.js +1 -1
  139. package/dist/cdn/invoice/snice-invoice.js +1 -1
  140. package/dist/cdn/invoice/snice-invoice.min.js +1 -1
  141. package/dist/cdn/kanban/snice-kanban.js +1 -1
  142. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  143. package/dist/cdn/key-value/snice-key-value.js +1 -1
  144. package/dist/cdn/key-value/snice-key-value.min.js +1 -1
  145. package/dist/cdn/kpi/snice-kpi.js +1 -1
  146. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  147. package/dist/cdn/layout/snice-layout.js +1 -1
  148. package/dist/cdn/layout/snice-layout.min.js +1 -1
  149. package/dist/cdn/leaderboard/snice-leaderboard.js +1 -1
  150. package/dist/cdn/leaderboard/snice-leaderboard.min.js +1 -1
  151. package/dist/cdn/link/snice-link.js +1 -1
  152. package/dist/cdn/link/snice-link.min.js +1 -1
  153. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  154. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  155. package/dist/cdn/list/README.md +2 -2
  156. package/dist/cdn/list/snice-list.js +179 -8
  157. package/dist/cdn/list/snice-list.js.map +1 -1
  158. package/dist/cdn/list/snice-list.min.js +45 -9
  159. package/dist/cdn/list/snice-list.min.js.map +1 -1
  160. package/dist/cdn/location/snice-location.js +1 -1
  161. package/dist/cdn/location/snice-location.min.js +1 -1
  162. package/dist/cdn/login/snice-login.js +1 -1
  163. package/dist/cdn/login/snice-login.min.js +1 -1
  164. package/dist/cdn/map/snice-map.js +1 -1
  165. package/dist/cdn/map/snice-map.min.js +1 -1
  166. package/dist/cdn/markdown/snice-markdown.js +1 -1
  167. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  168. package/dist/cdn/masonry/snice-masonry.js +1 -1
  169. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  170. package/dist/cdn/menu/snice-menu.js +1 -1
  171. package/dist/cdn/menu/snice-menu.min.js +1 -1
  172. package/dist/cdn/message-strip/snice-message-strip.js +1 -1
  173. package/dist/cdn/message-strip/snice-message-strip.min.js +1 -1
  174. package/dist/cdn/metric-table/snice-metric-table.js +1 -1
  175. package/dist/cdn/metric-table/snice-metric-table.min.js +1 -1
  176. package/dist/cdn/modal/snice-modal.js +1 -1
  177. package/dist/cdn/modal/snice-modal.min.js +1 -1
  178. package/dist/cdn/music-player/snice-music-player.js +1 -1
  179. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  180. package/dist/cdn/nav/snice-nav.js +1 -1
  181. package/dist/cdn/nav/snice-nav.min.js +1 -1
  182. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  183. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  184. package/dist/cdn/notification-center/README.md +2 -2
  185. package/dist/cdn/notification-center/snice-notification-center.js +191 -7
  186. package/dist/cdn/notification-center/snice-notification-center.js.map +1 -1
  187. package/dist/cdn/notification-center/snice-notification-center.min.js +57 -14
  188. package/dist/cdn/notification-center/snice-notification-center.min.js.map +1 -1
  189. package/dist/cdn/order-tracker/snice-order-tracker.js +1 -1
  190. package/dist/cdn/order-tracker/snice-order-tracker.min.js +1 -1
  191. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  192. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  193. package/dist/cdn/pagination/snice-pagination.js +1 -1
  194. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  195. package/dist/cdn/paint/snice-paint.js +1 -1
  196. package/dist/cdn/paint/snice-paint.min.js +1 -1
  197. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  198. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  199. package/dist/cdn/permission-matrix/snice-permission-matrix.js +1 -1
  200. package/dist/cdn/permission-matrix/snice-permission-matrix.min.js +1 -1
  201. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  202. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  203. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  204. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  205. package/dist/cdn/product-card/README.md +1 -1
  206. package/dist/cdn/product-card/snice-product-card.js +2 -2
  207. package/dist/cdn/product-card/snice-product-card.js.map +1 -1
  208. package/dist/cdn/product-card/snice-product-card.min.js +18 -18
  209. package/dist/cdn/product-card/snice-product-card.min.js.map +1 -1
  210. package/dist/cdn/progress/snice-progress.js +1 -1
  211. package/dist/cdn/progress/snice-progress.min.js +1 -1
  212. package/dist/cdn/progress-ring/snice-progress-ring.js +1 -1
  213. package/dist/cdn/progress-ring/snice-progress-ring.min.js +1 -1
  214. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  215. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  216. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  217. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  218. package/dist/cdn/radio/snice-radio.js +1 -1
  219. package/dist/cdn/radio/snice-radio.min.js +1 -1
  220. package/dist/cdn/range-slider/snice-range-slider.js +1 -1
  221. package/dist/cdn/range-slider/snice-range-slider.min.js +1 -1
  222. package/dist/cdn/rating/snice-rating.js +1 -1
  223. package/dist/cdn/rating/snice-rating.min.js +1 -1
  224. package/dist/cdn/receipt/snice-receipt.js +1 -1
  225. package/dist/cdn/receipt/snice-receipt.min.js +1 -1
  226. package/dist/cdn/recipe/snice-recipe.js +1 -1
  227. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  228. package/dist/cdn/runtime/snice-runtime.esm.js +4 -4
  229. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  230. package/dist/cdn/runtime/snice-runtime.esm.min.js +4 -4
  231. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  232. package/dist/cdn/runtime/snice-runtime.js +4 -4
  233. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  234. package/dist/cdn/runtime/snice-runtime.min.js +4 -4
  235. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  236. package/dist/cdn/sankey/snice-sankey.js +1 -1
  237. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  238. package/dist/cdn/segmented-control/snice-segmented-control.js +1 -1
  239. package/dist/cdn/segmented-control/snice-segmented-control.min.js +1 -1
  240. package/dist/cdn/select/snice-select.js +1 -1
  241. package/dist/cdn/select/snice-select.min.js +1 -1
  242. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  243. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  244. package/dist/cdn/slider/snice-slider.js +1 -1
  245. package/dist/cdn/slider/snice-slider.min.js +1 -1
  246. package/dist/cdn/sortable/snice-sortable.js +1 -1
  247. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  248. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  249. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  250. package/dist/cdn/spinner/snice-spinner.js +1 -1
  251. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  252. package/dist/cdn/split-button/snice-split-button.js +1 -1
  253. package/dist/cdn/split-button/snice-split-button.min.js +1 -1
  254. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  255. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  256. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  257. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  258. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  259. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  260. package/dist/cdn/stat-group/snice-stat-group.js +1 -1
  261. package/dist/cdn/stat-group/snice-stat-group.min.js +1 -1
  262. package/dist/cdn/step-input/snice-step-input.js +1 -1
  263. package/dist/cdn/step-input/snice-step-input.min.js +1 -1
  264. package/dist/cdn/stepper/snice-stepper.js +1 -1
  265. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  266. package/dist/cdn/switch/snice-switch.js +1 -1
  267. package/dist/cdn/switch/snice-switch.min.js +1 -1
  268. package/dist/cdn/table/snice-table.js +1 -1
  269. package/dist/cdn/table/snice-table.min.js +1 -1
  270. package/dist/cdn/tabs/snice-tabs.js +1 -1
  271. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  272. package/dist/cdn/tag/snice-tag.js +1 -1
  273. package/dist/cdn/tag/snice-tag.min.js +1 -1
  274. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  275. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  276. package/dist/cdn/terminal/snice-terminal.js +1 -1
  277. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  278. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  279. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  280. package/dist/cdn/textarea/snice-textarea.js +1 -1
  281. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  282. package/dist/cdn/time-picker/snice-time-picker.js +1 -1
  283. package/dist/cdn/time-picker/snice-time-picker.min.js +1 -1
  284. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  285. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  286. package/dist/cdn/timeline/snice-timeline.js +1 -1
  287. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  288. package/dist/cdn/timer/snice-timer.js +1 -1
  289. package/dist/cdn/timer/snice-timer.min.js +1 -1
  290. package/dist/cdn/toast/README.md +2 -2
  291. package/dist/cdn/toast/snice-toast.js +9 -9
  292. package/dist/cdn/toast/snice-toast.js.map +1 -1
  293. package/dist/cdn/toast/snice-toast.min.js +12 -12
  294. package/dist/cdn/toast/snice-toast.min.js.map +1 -1
  295. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  296. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  297. package/dist/cdn/tree/snice-tree.js +1 -1
  298. package/dist/cdn/tree/snice-tree.min.js +1 -1
  299. package/dist/cdn/treemap/snice-treemap.js +1 -1
  300. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  301. package/dist/cdn/user-card/snice-user-card.js +1 -1
  302. package/dist/cdn/user-card/snice-user-card.min.js +1 -1
  303. package/dist/cdn/video-player/snice-video-player.js +1 -1
  304. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  305. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  306. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  307. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  308. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  309. package/dist/cdn/weather/snice-weather.js +1 -1
  310. package/dist/cdn/weather/snice-weather.min.js +1 -1
  311. package/dist/cdn/work-order/snice-work-order.js +1 -1
  312. package/dist/cdn/work-order/snice-work-order.min.js +1 -1
  313. package/dist/components/app-tiles/snice-app-tiles.d.ts +1 -1
  314. package/dist/components/app-tiles/snice-app-tiles.js +1 -1
  315. package/dist/components/app-tiles/snice-app-tiles.js.map +1 -1
  316. package/dist/components/app-tiles/snice-app-tiles.types.d.ts +1 -1
  317. package/dist/components/cart/snice-cart.js +23 -19
  318. package/dist/components/cart/snice-cart.js.map +1 -1
  319. package/dist/components/chat/snice-chat.d.ts +1 -0
  320. package/dist/components/chat/snice-chat.js +10 -9
  321. package/dist/components/chat/snice-chat.js.map +1 -1
  322. package/dist/components/code-block/snice-code-block.js +1 -1
  323. package/dist/components/code-block/snice-code-block.js.map +1 -1
  324. package/dist/components/command-palette/snice-command-palette.js +1 -1
  325. package/dist/components/command-palette/snice-command-palette.js.map +1 -1
  326. package/dist/components/drawer/snice-drawer.d.ts +13 -0
  327. package/dist/components/drawer/snice-drawer.js +128 -21
  328. package/dist/components/drawer/snice-drawer.js.map +1 -1
  329. package/dist/components/drawer/snice-drawer.types.d.ts +4 -0
  330. package/dist/components/heatmap/snice-heatmap.js +1 -1
  331. package/dist/components/heatmap/snice-heatmap.js.map +1 -1
  332. package/dist/components/list/snice-list.d.ts +1 -0
  333. package/dist/components/list/snice-list.js +10 -5
  334. package/dist/components/list/snice-list.js.map +1 -1
  335. package/dist/components/notification-center/snice-notification-center.d.ts +2 -0
  336. package/dist/components/notification-center/snice-notification-center.js +24 -6
  337. package/dist/components/notification-center/snice-notification-center.js.map +1 -1
  338. package/dist/components/notification-center/snice-notification-center.types.d.ts +1 -0
  339. package/dist/components/product-card/snice-product-card.js +1 -1
  340. package/dist/components/product-card/snice-product-card.js.map +1 -1
  341. package/dist/components/toast/snice-toast.js +8 -8
  342. package/dist/index.cjs +1 -1
  343. package/dist/index.esm.js +1 -1
  344. package/dist/index.iife.js +1 -1
  345. package/dist/symbols.cjs +1 -1
  346. package/dist/symbols.esm.js +1 -1
  347. package/dist/transitions.cjs +1 -1
  348. package/dist/transitions.esm.js +1 -1
  349. package/docs/ai/components/app-tiles.md +12 -1
  350. package/docs/ai/components/drawer.md +45 -1
  351. package/docs/components/app-tiles.md +24 -8
  352. package/docs/components/drawer.md +65 -0
  353. package/package.json +1 -1
  354. package/adapters/react/icon.d.ts +0 -29
  355. package/adapters/react/icon.d.ts.map +0 -1
  356. package/adapters/react/icon.js +0 -24
  357. package/adapters/react/icon.js.map +0 -1
  358. package/adapters/react/icon.tsx +0 -37
  359. package/dist/components/icon/snice-icon.d.ts +0 -18
  360. package/dist/components/icon/snice-icon.types.d.ts +0 -11
  361. package/docs/ai/components/icon.md +0 -63
  362. package/docs/components/icon.md +0 -186
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * snice v4.20.0
2
+ * snice v4.21.0
3
3
  * Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.
4
4
  * (c) 2024
5
5
  * Released under the MIT License.
6
6
  */
7
- void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-product-card.min.js");var SniceProductCard=function(r,t){"use strict";function e(r,t,e,a,i,c){function o(r){if(void 0!==r&&"function"!=typeof r)throw new TypeError("Function expected");return r}for(var n,s=a.kind,d="getter"===s?"get":"setter"===s?"set":"value",l=!t&&r?a.static?r:r.prototype:null,p=t||(l?Object.getOwnPropertyDescriptor(l,a.name):{}),u=!1,g=e.length-1;g>=0;g--){var m={};for(var h in a)m[h]="access"===h?{}:a[h];for(var h in a.access)m.access[h]=a.access[h];m.addInitializer=function(r){if(u)throw new TypeError("Cannot add initializers after decoration has completed");c.push(o(r||null))};var v=(0,e[g])("accessor"===s?{get:p.get,set:p.set}:p[d],m);if("accessor"===s){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(n=o(v.get))&&(p.get=n),(n=o(v.set))&&(p.set=n),(n=o(v.init))&&i.unshift(n)}else(n=o(v))&&("field"===s?i.unshift(n):p[d]=n)}l&&Object.defineProperty(l,a.name,p),u=!0}function a(r,t,e){for(var a=arguments.length>2,i=0;i<t.length;i++)e=a?t[i].call(r,e):t[i].call(r);return a?e:void 0}"function"==typeof SuppressedError&&SuppressedError;let i=(()=>{let r,i,c,o,n,s,d,l,p,u,g,m,h,v,_,f,b,y,k,x,w,$,z,C,I,S,V,P,j,A=[t.element("snice-product-card")],B=[],M=HTMLElement,F=[],T=[],q=[],O=[],Q=[],N=[],D=[],L=[],E=[],R=[],Y=[],G=[],H=[],U=[],X=[],J=[],K=[],W=[],Z=[],rr=[],tr=[],er=[],ar=[],ir=[],cr=[],or=[],nr=[],sr=[],dr=[],lr=[],pr=[],ur=[],gr=[],mr=[],hr=[],vr=[],_r=[];return class extends M{static{i=this}static{const fr="function"==typeof Symbol&&Symbol.metadata?Object.create(M[Symbol.metadata]??null):void 0;c=[t.property()],o=[t.property({type:Number})],n=[t.property({type:Number,attribute:"sale-price"})],s=[t.property()],d=[t.property({type:Array,attribute:!1})],l=[t.property({type:Number})],p=[t.property({type:Number,attribute:"review-count"})],u=[t.property({type:Array,attribute:!1})],g=[t.property({type:Boolean,attribute:"in-stock"})],m=[t.property()],h=[t.property()],v=[t.property({attribute:"badge-variant"})],_=[t.property({type:Boolean})],f=[t.property({type:Boolean})],b=[t.property({type:Number,attribute:"stock-count"})],y=[t.property({type:Number,attribute:!1})],k=[t.property({type:Object,attribute:!1})],x=[t.property({type:Boolean,attribute:!1})],w=[t.ready()],$=[t.watch("variants")],z=[t.dispatch("add-to-cart",{bubbles:!0,composed:!0})],C=[t.dispatch("variant-select",{bubbles:!0,composed:!0})],I=[t.dispatch("image-click",{bubbles:!0,composed:!0})],S=[t.dispatch("favorite",{bubbles:!0,composed:!0})],V=[t.dispatch("quick-view",{bubbles:!0,composed:!0})],P=[t.render()],j=[t.styles()],e(this,null,w,{kind:"method",name:"init",static:!1,private:!1,access:{has:r=>"init"in r,get:r=>r.init},metadata:fr},null,F),e(this,null,$,{kind:"method",name:"handleVariantsChange",static:!1,private:!1,access:{has:r=>"handleVariantsChange"in r,get:r=>r.handleVariantsChange},metadata:fr},null,F),e(this,null,z,{kind:"method",name:"emitAddToCart",static:!1,private:!1,access:{has:r=>"emitAddToCart"in r,get:r=>r.emitAddToCart},metadata:fr},null,F),e(this,null,C,{kind:"method",name:"emitVariantSelect",static:!1,private:!1,access:{has:r=>"emitVariantSelect"in r,get:r=>r.emitVariantSelect},metadata:fr},null,F),e(this,null,I,{kind:"method",name:"emitImageClick",static:!1,private:!1,access:{has:r=>"emitImageClick"in r,get:r=>r.emitImageClick},metadata:fr},null,F),e(this,null,S,{kind:"method",name:"emitFavorite",static:!1,private:!1,access:{has:r=>"emitFavorite"in r,get:r=>r.emitFavorite},metadata:fr},null,F),e(this,null,V,{kind:"method",name:"emitQuickView",static:!1,private:!1,access:{has:r=>"emitQuickView"in r,get:r=>r.emitQuickView},metadata:fr},null,F),e(this,null,P,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:r=>"renderContent"in r,get:r=>r.renderContent},metadata:fr},null,F),e(this,null,j,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:r=>"componentStyles"in r,get:r=>r.componentStyles},metadata:fr},null,F),e(null,null,c,{kind:"field",name:"name",static:!1,private:!1,access:{has:r=>"name"in r,get:r=>r.name,set:(r,t)=>{r.name=t}},metadata:fr},T,q),e(null,null,o,{kind:"field",name:"price",static:!1,private:!1,access:{has:r=>"price"in r,get:r=>r.price,set:(r,t)=>{r.price=t}},metadata:fr},O,Q),e(null,null,n,{kind:"field",name:"salePrice",static:!1,private:!1,access:{has:r=>"salePrice"in r,get:r=>r.salePrice,set:(r,t)=>{r.salePrice=t}},metadata:fr},N,D),e(null,null,s,{kind:"field",name:"currency",static:!1,private:!1,access:{has:r=>"currency"in r,get:r=>r.currency,set:(r,t)=>{r.currency=t}},metadata:fr},L,E),e(null,null,d,{kind:"field",name:"images",static:!1,private:!1,access:{has:r=>"images"in r,get:r=>r.images,set:(r,t)=>{r.images=t}},metadata:fr},R,Y),e(null,null,l,{kind:"field",name:"rating",static:!1,private:!1,access:{has:r=>"rating"in r,get:r=>r.rating,set:(r,t)=>{r.rating=t}},metadata:fr},G,H),e(null,null,p,{kind:"field",name:"reviewCount",static:!1,private:!1,access:{has:r=>"reviewCount"in r,get:r=>r.reviewCount,set:(r,t)=>{r.reviewCount=t}},metadata:fr},U,X),e(null,null,u,{kind:"field",name:"variants",static:!1,private:!1,access:{has:r=>"variants"in r,get:r=>r.variants,set:(r,t)=>{r.variants=t}},metadata:fr},J,K),e(null,null,g,{kind:"field",name:"inStock",static:!1,private:!1,access:{has:r=>"inStock"in r,get:r=>r.inStock,set:(r,t)=>{r.inStock=t}},metadata:fr},W,Z),e(null,null,m,{kind:"field",name:"variant",static:!1,private:!1,access:{has:r=>"variant"in r,get:r=>r.variant,set:(r,t)=>{r.variant=t}},metadata:fr},rr,tr),e(null,null,h,{kind:"field",name:"badge",static:!1,private:!1,access:{has:r=>"badge"in r,get:r=>r.badge,set:(r,t)=>{r.badge=t}},metadata:fr},er,ar),e(null,null,v,{kind:"field",name:"badgeVariant",static:!1,private:!1,access:{has:r=>"badgeVariant"in r,get:r=>r.badgeVariant,set:(r,t)=>{r.badgeVariant=t}},metadata:fr},ir,cr),e(null,null,_,{kind:"field",name:"loading",static:!1,private:!1,access:{has:r=>"loading"in r,get:r=>r.loading,set:(r,t)=>{r.loading=t}},metadata:fr},or,nr),e(null,null,f,{kind:"field",name:"favorite",static:!1,private:!1,access:{has:r=>"favorite"in r,get:r=>r.favorite,set:(r,t)=>{r.favorite=t}},metadata:fr},sr,dr),e(null,null,b,{kind:"field",name:"stockCount",static:!1,private:!1,access:{has:r=>"stockCount"in r,get:r=>r.stockCount,set:(r,t)=>{r.stockCount=t}},metadata:fr},lr,pr),e(null,null,y,{kind:"field",name:"currentImageIndex",static:!1,private:!1,access:{has:r=>"currentImageIndex"in r,get:r=>r.currentImageIndex,set:(r,t)=>{r.currentImageIndex=t}},metadata:fr},ur,gr),e(null,null,k,{kind:"field",name:"selectedVariants",static:!1,private:!1,access:{has:r=>"selectedVariants"in r,get:r=>r.selectedVariants,set:(r,t)=>{r.selectedVariants=t}},metadata:fr},mr,hr),e(null,null,x,{kind:"field",name:"heartAnimating",static:!1,private:!1,access:{has:r=>"heartAnimating"in r,get:r=>r.heartAnimating,set:(r,t)=>{r.heartAnimating=t}},metadata:fr},vr,_r),e(null,r={value:i},A,{kind:"class",name:i.name,metadata:fr},null,B),i=r.value,fr&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:fr}),a(i,B)}init(){this.initializeVariantSelections()}handleVariantsChange(){this.initializeVariantSelections()}initializeVariantSelections(){const r={};for(const t of this.variants)t.options.length>0&&(r[t.type]=t.options[0]);this.selectedVariants=r}handlePrevImage(){this.images.length<=1||(this.currentImageIndex=0===this.currentImageIndex?this.images.length-1:this.currentImageIndex-1)}handleNextImage(){this.images.length<=1||(this.currentImageIndex=this.currentImageIndex===this.images.length-1?0:this.currentImageIndex+1)}handleDotClick(r){this.currentImageIndex=r}handleImageClick(){0!==this.images.length&&this.emitImageClick({index:this.currentImageIndex,src:this.images[this.currentImageIndex]})}handleVariantSelect(r,t){this.selectedVariants={...this.selectedVariants,[r]:t},this.emitVariantSelect({type:r,value:t})}handleAddToCart(){this.inStock&&!this.loading&&this.emitAddToCart({name:this.name,price:this.salePrice??this.price,salePrice:this.salePrice,selectedVariants:{...this.selectedVariants}})}handleFavoriteClick(r){r.stopPropagation(),this.favorite=!this.favorite,this.heartAnimating=!0,setTimeout(()=>{this.heartAnimating=!1},300),this.emitFavorite({favorited:this.favorite})}handleQuickView(r){r.stopPropagation(),this.emitQuickView()}emitAddToCart(r){return r}emitVariantSelect(r){return r}emitImageClick(r){return r}emitFavorite(r){return r}emitQuickView(){}formatPrice(r){return r.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}getDiscountPercent(){return!this.salePrice||this.salePrice>=this.price?0:Math.round((this.price-this.salePrice)/this.price*100)}renderStarIcon(r){return"filled"===r?t.html`
7
+ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be loaded before snice-product-card.min.js");var SniceProductCard=function(r,t){"use strict";function a(r,t,a,e,i,c){function o(r){if(void 0!==r&&"function"!=typeof r)throw new TypeError("Function expected");return r}for(var n,s=e.kind,d="getter"===s?"get":"setter"===s?"set":"value",l=!t&&r?e.static?r:r.prototype:null,p=t||(l?Object.getOwnPropertyDescriptor(l,e.name):{}),u=!1,g=a.length-1;g>=0;g--){var m={};for(var h in e)m[h]="access"===h?{}:e[h];for(var h in e.access)m.access[h]=e.access[h];m.addInitializer=function(r){if(u)throw new TypeError("Cannot add initializers after decoration has completed");c.push(o(r||null))};var v=(0,a[g])("accessor"===s?{get:p.get,set:p.set}:p[d],m);if("accessor"===s){if(void 0===v)continue;if(null===v||"object"!=typeof v)throw new TypeError("Object expected");(n=o(v.get))&&(p.get=n),(n=o(v.set))&&(p.set=n),(n=o(v.init))&&i.unshift(n)}else(n=o(v))&&("field"===s?i.unshift(n):p[d]=n)}l&&Object.defineProperty(l,e.name,p),u=!0}function e(r,t,a){for(var e=arguments.length>2,i=0;i<t.length;i++)a=e?t[i].call(r,a):t[i].call(r);return e?a:void 0}"function"==typeof SuppressedError&&SuppressedError;let i=(()=>{let r,i,c,o,n,s,d,l,p,u,g,m,h,v,_,f,b,y,k,x,w,$,z,C,I,S,V,P,j,A=[t.element("snice-product-card")],B=[],M=HTMLElement,F=[],T=[],q=[],O=[],Q=[],N=[],D=[],L=[],E=[],R=[],Y=[],G=[],H=[],U=[],X=[],J=[],K=[],W=[],Z=[],rr=[],tr=[],ar=[],er=[],ir=[],cr=[],or=[],nr=[],sr=[],dr=[],lr=[],pr=[],ur=[],gr=[],mr=[],hr=[],vr=[],_r=[];return class extends M{static{i=this}static{const fr="function"==typeof Symbol&&Symbol.metadata?Object.create(M[Symbol.metadata]??null):void 0;c=[t.property()],o=[t.property({type:Number})],n=[t.property({type:Number,attribute:"sale-price"})],s=[t.property()],d=[t.property({type:Array,attribute:!1})],l=[t.property({type:Number})],p=[t.property({type:Number,attribute:"review-count"})],u=[t.property({type:Array,attribute:!1})],g=[t.property({type:Boolean,attribute:"in-stock"})],m=[t.property()],h=[t.property()],v=[t.property({attribute:"badge-variant"})],_=[t.property({type:Boolean})],f=[t.property({type:Boolean})],b=[t.property({type:Number,attribute:"stock-count"})],y=[t.property({type:Number,attribute:!1})],k=[t.property({type:Object,attribute:!1})],x=[t.property({type:Boolean,attribute:!1})],w=[t.ready()],$=[t.watch("variants")],z=[t.dispatch("add-to-cart",{bubbles:!0,composed:!0})],C=[t.dispatch("variant-select",{bubbles:!0,composed:!0})],I=[t.dispatch("image-click",{bubbles:!0,composed:!0})],S=[t.dispatch("favorite",{bubbles:!0,composed:!0})],V=[t.dispatch("quick-view",{bubbles:!0,composed:!0})],P=[t.render()],j=[t.styles()],a(this,null,w,{kind:"method",name:"init",static:!1,private:!1,access:{has:r=>"init"in r,get:r=>r.init},metadata:fr},null,F),a(this,null,$,{kind:"method",name:"handleVariantsChange",static:!1,private:!1,access:{has:r=>"handleVariantsChange"in r,get:r=>r.handleVariantsChange},metadata:fr},null,F),a(this,null,z,{kind:"method",name:"emitAddToCart",static:!1,private:!1,access:{has:r=>"emitAddToCart"in r,get:r=>r.emitAddToCart},metadata:fr},null,F),a(this,null,C,{kind:"method",name:"emitVariantSelect",static:!1,private:!1,access:{has:r=>"emitVariantSelect"in r,get:r=>r.emitVariantSelect},metadata:fr},null,F),a(this,null,I,{kind:"method",name:"emitImageClick",static:!1,private:!1,access:{has:r=>"emitImageClick"in r,get:r=>r.emitImageClick},metadata:fr},null,F),a(this,null,S,{kind:"method",name:"emitFavorite",static:!1,private:!1,access:{has:r=>"emitFavorite"in r,get:r=>r.emitFavorite},metadata:fr},null,F),a(this,null,V,{kind:"method",name:"emitQuickView",static:!1,private:!1,access:{has:r=>"emitQuickView"in r,get:r=>r.emitQuickView},metadata:fr},null,F),a(this,null,P,{kind:"method",name:"renderContent",static:!1,private:!1,access:{has:r=>"renderContent"in r,get:r=>r.renderContent},metadata:fr},null,F),a(this,null,j,{kind:"method",name:"componentStyles",static:!1,private:!1,access:{has:r=>"componentStyles"in r,get:r=>r.componentStyles},metadata:fr},null,F),a(null,null,c,{kind:"field",name:"name",static:!1,private:!1,access:{has:r=>"name"in r,get:r=>r.name,set:(r,t)=>{r.name=t}},metadata:fr},T,q),a(null,null,o,{kind:"field",name:"price",static:!1,private:!1,access:{has:r=>"price"in r,get:r=>r.price,set:(r,t)=>{r.price=t}},metadata:fr},O,Q),a(null,null,n,{kind:"field",name:"salePrice",static:!1,private:!1,access:{has:r=>"salePrice"in r,get:r=>r.salePrice,set:(r,t)=>{r.salePrice=t}},metadata:fr},N,D),a(null,null,s,{kind:"field",name:"currency",static:!1,private:!1,access:{has:r=>"currency"in r,get:r=>r.currency,set:(r,t)=>{r.currency=t}},metadata:fr},L,E),a(null,null,d,{kind:"field",name:"images",static:!1,private:!1,access:{has:r=>"images"in r,get:r=>r.images,set:(r,t)=>{r.images=t}},metadata:fr},R,Y),a(null,null,l,{kind:"field",name:"rating",static:!1,private:!1,access:{has:r=>"rating"in r,get:r=>r.rating,set:(r,t)=>{r.rating=t}},metadata:fr},G,H),a(null,null,p,{kind:"field",name:"reviewCount",static:!1,private:!1,access:{has:r=>"reviewCount"in r,get:r=>r.reviewCount,set:(r,t)=>{r.reviewCount=t}},metadata:fr},U,X),a(null,null,u,{kind:"field",name:"variants",static:!1,private:!1,access:{has:r=>"variants"in r,get:r=>r.variants,set:(r,t)=>{r.variants=t}},metadata:fr},J,K),a(null,null,g,{kind:"field",name:"inStock",static:!1,private:!1,access:{has:r=>"inStock"in r,get:r=>r.inStock,set:(r,t)=>{r.inStock=t}},metadata:fr},W,Z),a(null,null,m,{kind:"field",name:"variant",static:!1,private:!1,access:{has:r=>"variant"in r,get:r=>r.variant,set:(r,t)=>{r.variant=t}},metadata:fr},rr,tr),a(null,null,h,{kind:"field",name:"badge",static:!1,private:!1,access:{has:r=>"badge"in r,get:r=>r.badge,set:(r,t)=>{r.badge=t}},metadata:fr},ar,er),a(null,null,v,{kind:"field",name:"badgeVariant",static:!1,private:!1,access:{has:r=>"badgeVariant"in r,get:r=>r.badgeVariant,set:(r,t)=>{r.badgeVariant=t}},metadata:fr},ir,cr),a(null,null,_,{kind:"field",name:"loading",static:!1,private:!1,access:{has:r=>"loading"in r,get:r=>r.loading,set:(r,t)=>{r.loading=t}},metadata:fr},or,nr),a(null,null,f,{kind:"field",name:"favorite",static:!1,private:!1,access:{has:r=>"favorite"in r,get:r=>r.favorite,set:(r,t)=>{r.favorite=t}},metadata:fr},sr,dr),a(null,null,b,{kind:"field",name:"stockCount",static:!1,private:!1,access:{has:r=>"stockCount"in r,get:r=>r.stockCount,set:(r,t)=>{r.stockCount=t}},metadata:fr},lr,pr),a(null,null,y,{kind:"field",name:"currentImageIndex",static:!1,private:!1,access:{has:r=>"currentImageIndex"in r,get:r=>r.currentImageIndex,set:(r,t)=>{r.currentImageIndex=t}},metadata:fr},ur,gr),a(null,null,k,{kind:"field",name:"selectedVariants",static:!1,private:!1,access:{has:r=>"selectedVariants"in r,get:r=>r.selectedVariants,set:(r,t)=>{r.selectedVariants=t}},metadata:fr},mr,hr),a(null,null,x,{kind:"field",name:"heartAnimating",static:!1,private:!1,access:{has:r=>"heartAnimating"in r,get:r=>r.heartAnimating,set:(r,t)=>{r.heartAnimating=t}},metadata:fr},vr,_r),a(null,r={value:i},A,{kind:"class",name:i.name,metadata:fr},null,B),i=r.value,fr&&Object.defineProperty(i,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:fr}),e(i,B)}init(){this.initializeVariantSelections()}handleVariantsChange(){this.initializeVariantSelections()}initializeVariantSelections(){const r={};for(const t of this.variants)t.options.length>0&&(r[t.type]=t.options[0]);this.selectedVariants=r}handlePrevImage(){this.images.length<=1||(this.currentImageIndex=0===this.currentImageIndex?this.images.length-1:this.currentImageIndex-1)}handleNextImage(){this.images.length<=1||(this.currentImageIndex=this.currentImageIndex===this.images.length-1?0:this.currentImageIndex+1)}handleDotClick(r){this.currentImageIndex=r}handleImageClick(){0!==this.images.length&&this.emitImageClick({index:this.currentImageIndex,src:this.images[this.currentImageIndex]})}handleVariantSelect(r,t){this.selectedVariants={...this.selectedVariants,[r]:t},this.emitVariantSelect({type:r,value:t})}handleAddToCart(){this.inStock&&!this.loading&&this.emitAddToCart({name:this.name,price:this.salePrice??this.price,salePrice:this.salePrice,selectedVariants:{...this.selectedVariants}})}handleFavoriteClick(r){r.stopPropagation(),this.favorite=!this.favorite,this.heartAnimating=!0,setTimeout(()=>{this.heartAnimating=!1},300),this.emitFavorite({favorited:this.favorite})}handleQuickView(r){r.stopPropagation(),this.emitQuickView()}emitAddToCart(r){return r}emitVariantSelect(r){return r}emitImageClick(r){return r}emitFavorite(r){return r}emitQuickView(){}formatPrice(r){return r.toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2})}getDiscountPercent(){return!this.salePrice||this.salePrice>=this.price?0:Math.round((this.price-this.salePrice)/this.price*100)}renderStarIcon(r){return"filled"===r?t.html`
8
8
  <svg class="product-card__star product-card__star--filled" viewBox="0 0 20 20" fill="currentColor">
9
9
  <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"/>
10
10
  </svg>
@@ -68,11 +68,11 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
68
68
  ${this.renderBadge()}
69
69
  ${this.renderFavoriteButton()}
70
70
  </div>
71
- `;const e=this.images.length>1;return t.html`
71
+ `;const a=this.images.length>1;return t.html`
72
72
  <div class="product-card__gallery" part="gallery">
73
73
  <div class="product-card__gallery-image-wrapper" @click=${()=>this.handleImageClick()}>
74
- ${this.images.map((r,e)=>t.html`
75
- <img class="product-card__gallery-image ${e===this.currentImageIndex?"product-card__gallery-image--active":""}"
74
+ ${this.images.map((r,a)=>t.html`
75
+ <img class="product-card__gallery-image ${a===this.currentImageIndex?"product-card__gallery-image--active":""}"
76
76
  src="${r}"
77
77
  alt="${this.name}"
78
78
  part="image"
@@ -85,7 +85,7 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
85
85
  ${this.renderBadge()}
86
86
  ${this.renderFavoriteButton()}
87
87
  ${this.renderQuickView()}
88
- <if ${e}>
88
+ <if ${a}>
89
89
  <button class="product-card__gallery-nav product-card__gallery-nav--prev"
90
90
  @click=${r=>{r.stopPropagation(),this.handlePrevImage()}}
91
91
  aria-label="Previous image">&#8249;</button>
@@ -93,39 +93,39 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
93
93
  @click=${r=>{r.stopPropagation(),this.handleNextImage()}}
94
94
  aria-label="Next image">&#8250;</button>
95
95
  <div class="product-card__gallery-dots">
96
- ${this.images.map((r,e)=>t.html`
97
- <button class="product-card__gallery-dot ${e===this.currentImageIndex?"product-card__gallery-dot--active":""}"
98
- @click=${r=>{r.stopPropagation(),this.handleDotClick(e)}}
99
- aria-label="View image ${e+1}"></button>
96
+ ${this.images.map((r,a)=>t.html`
97
+ <button class="product-card__gallery-dot ${a===this.currentImageIndex?"product-card__gallery-dot--active":""}"
98
+ @click=${r=>{r.stopPropagation(),this.handleDotClick(a)}}
99
+ aria-label="View image ${a+1}"></button>
100
100
  `)}
101
101
  </div>
102
102
  </if>
103
103
  </div>
104
- `}renderPrice(){const r=null!==this.salePrice&&this.salePrice<this.price,e=this.getDiscountPercent();return t.html`
104
+ `}renderPrice(){const r=null!==this.salePrice&&this.salePrice<this.price,a=this.getDiscountPercent();return t.html`
105
105
  <div class="product-card__price" part="price">
106
106
  <span class="product-card__price-current ${r?"product-card__price-current--sale":""}" part="price-current">
107
107
  ${this.currency}${this.formatPrice(r?this.salePrice:this.price)}
108
108
  </span>
109
109
  <if ${r}>
110
110
  <span class="product-card__price-original" part="price-original">${this.currency}${this.formatPrice(this.price)}</span>
111
- <span class="product-card__price-discount" part="discount">-${e}%</span>
111
+ <span class="product-card__price-discount" part="discount">-${a}%</span>
112
112
  </if>
113
113
  </div>
114
114
  `}renderVariants(){return 0===this.variants.length?t.html``:t.html`
115
115
  <div class="product-card__variants" part="variants">
116
- ${this.variants.map(r=>{const e="color"===r.type.toLowerCase();return t.html`
116
+ ${this.variants.map(r=>{const a="color"===r.type.toLowerCase();return t.html`
117
117
  <div class="product-card__variant-group" part="variant-group">
118
118
  <span class="product-card__variant-label">${r.type}</span>
119
119
  <div class="product-card__variant-options" role="radiogroup" aria-label="${r.type}">
120
- ${r.options.map(a=>{const i=this.selectedVariants[r.type]===a,c=["product-card__variant-option",e?"product-card__variant-option--color":"",i?"product-card__variant-option--selected":""].filter(Boolean).join(" "),o=e?`background-color: ${a}`:"";return t.html`
120
+ ${r.options.map(e=>{const i=this.selectedVariants[r.type]===e,c=["product-card__variant-option",a?"product-card__variant-option--color":"",i?"product-card__variant-option--selected":""].filter(Boolean).join(" "),o=a?`background-color: ${e}`:"";return t.html`
121
121
  <button class="${c}"
122
122
  part="variant-option"
123
123
  style="${o}"
124
124
  role="radio"
125
125
  aria-checked="${i}"
126
- aria-label="${e?a:""}"
127
- @click=${()=>this.handleVariantSelect(r.type,a)}>
128
- <if ${!e}>${a}</if>
126
+ aria-label="${a?e:""}"
127
+ @click=${()=>this.handleVariantSelect(r.type,e)}>
128
+ <if ${!a}>${e}</if>
129
129
  </button>
130
130
  `})}
131
131
  </div>
@@ -185,5 +185,5 @@ void 0===globalThis.Snice&&console.warn("[snice] snice-runtime.min.js must be lo
185
185
  ${this.renderCta()}
186
186
  </div>
187
187
  </div>
188
- `}componentStyles(){return t.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style;color:var(--snice-color-text,rgb(23 23 23));--pc-bg:var(--snice-color-background, rgb(255 255 255));--pc-bg-element:var(--snice-color-background-element, rgb(252 251 249));--pc-border:var(--snice-color-border, rgb(226 226 226));--pc-text:var(--snice-color-text, rgb(23 23 23));--pc-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--pc-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--pc-primary:var(--snice-color-primary, rgb(37 99 235));--pc-success:var(--snice-color-success, rgb(22 163 74));--pc-danger:var(--snice-color-danger, rgb(220 38 38));--pc-shadow:var(--snice-shadow-sm, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1));--pc-shadow-hover:var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1));--pc-radius:var(--product-card-radius, var(--snice-border-radius-lg, 0.5rem));--pc-image-ratio:var(--product-card-image-ratio, 4 / 3);--pc-title-size:var(--product-card-title-size, var(--snice-font-size-lg, 1.125rem));--pc-price-size:var(--product-card-price-size, var(--snice-font-size-2xl, 1.5rem));--pc-badge-bg:var(--product-card-badge-bg, var(--snice-color-danger, rgb(220 38 38)));--pc-badge-color:var(--product-card-badge-color, rgb(255 255 255));--pc-cta-bg:var(--product-card-cta-bg, var(--snice-color-primary, rgb(37 99 235)));--pc-cta-color:var(--product-card-cta-color, rgb(255 255 255));--pc-cta-radius:var(--product-card-cta-radius, var(--snice-border-radius-md, 0.25rem));--pc-favorite-color:var(--product-card-favorite-color, rgb(239 68 68))}*{box-sizing:border-box}.product-card{background:var(--pc-bg);border:1px solid var(--pc-border);border-radius:var(--pc-radius);overflow:hidden;transition:box-shadow var(--snice-transition-medium, 250ms),transform var(--snice-transition-medium, 250ms);position:relative}.product-card:hover{box-shadow:var(--pc-shadow-hover);transform:translateY(-2px)}.product-card--vertical{display:flex;flex-direction:column}.product-card--vertical .product-card__gallery{width:100%;aspect-ratio:var(--pc-image-ratio)}.product-card--horizontal{display:flex;flex-direction:row}.product-card--horizontal .product-card__gallery{width:40%;min-width:10rem;flex-shrink:0}.product-card--horizontal .product-card__body{flex:1}.product-card--compact{display:flex;flex-direction:row;align-items:center;gap:var(--snice-spacing-sm,.75rem)}.product-card--compact .product-card__gallery{width:5rem;height:5rem;flex-shrink:0;border-radius:var(--snice-border-radius-md,.25rem);overflow:hidden}.product-card--compact .product-card__body{flex:1;padding:var(--snice-spacing-md,1rem)}.product-card--compact .product-card__badge,.product-card--compact .product-card__favorite-btn,.product-card--compact .product-card__gallery-dots,.product-card--compact .product-card__quick-view,.product-card--compact .product-card__variants{display:none}.product-card--compact .product-card__title{font-size:.875rem}.product-card--compact .product-card__price-current{font-size:var(--snice-font-size-md, 1rem)}.product-card--featured{display:flex;flex-direction:column;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))}.product-card--featured:hover{box-shadow:0 20px 25px -5px rgb(0 0 0 / .1),0 8px 10px -6px rgb(0 0 0 / .1);transform:translateY(-4px)}.product-card--featured .product-card__gallery{width:100%;aspect-ratio:16/9}.product-card--featured .product-card__gallery-gradient{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgb(0 0 0 / .6),transparent);pointer-events:none;z-index:1}.product-card--featured .product-card__body{padding:var(--snice-spacing-lg,1.5rem)}.product-card--featured .product-card__title{font-size:var(--snice-font-size-2xl, 1.5rem);font-weight:var(--snice-font-weight-bold,700);letter-spacing:-.02em}.product-card--featured .product-card__price-current{font-size:2rem}.product-card--featured .product-card__badge{font-size:.875rem;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-md,1rem)}.product-card--minimal{display:flex;flex-direction:column;border:none;box-shadow:none;background:0 0}.product-card--minimal:hover{box-shadow:none;transform:none}.product-card--minimal .product-card__gallery{width:100%;aspect-ratio:3/4;border-radius:var(--pc-radius);overflow:hidden;box-shadow:0 1px 3px 0 rgb(0 0 0 / .05)}.product-card--minimal .product-card__body{padding:var(--snice-spacing-md,1rem) 0;gap:var(--snice-spacing-2xs,.25rem)}.product-card--minimal .product-card__title{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);letter-spacing:.01em}.product-card--minimal .product-card__price-current{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600)}.product-card--minimal .product-card__stock{display:none}.product-card--minimal .product-card__cta{background:0 0;color:var(--pc-text);border:1px solid var(--pc-border);font-weight:var(--snice-font-weight-medium,500)}.product-card--minimal .product-card__cta:hover{background:var(--pc-text);color:var(--pc-bg);opacity:1}.product-card--grid{display:flex;flex-direction:column}.product-card--grid .product-card__gallery{width:100%;aspect-ratio:1/1}.product-card--grid .product-card__body{padding:var(--snice-spacing-md,1rem);gap:var(--snice-spacing-xs,.5rem)}.product-card--grid .product-card__title{font-size:.875rem;font-weight:var(--snice-font-weight-medium,500);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card--grid .product-card__price-current{font-size:var(--snice-font-size-lg, 1.125rem)}.product-card--grid .product-card__variants{display:none}.product-card--grid .product-card__cta{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);font-size:.875rem}.product-card__gallery{position:relative;overflow:hidden;background:var(--pc-bg-element);cursor:pointer}.product-card__gallery-image-wrapper{width:100%;height:100%;position:relative}.product-card__gallery-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--snice-transition-medium, 250ms),opacity .4s ease;position:absolute;top:0;left:0;opacity:0}.product-card__gallery-image--active{opacity:1;position:relative}.product-card__gallery:hover .product-card__gallery-image--active{transform:scale(1.05)}.product-card__gallery-gradient{display:none}.product-card__gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:50%;border:none;background:rgb(255 255 255 / .85);color:var(--pc-text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.875rem;opacity:0;transition:opacity var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms);z-index:3}.product-card__gallery:hover .product-card__gallery-nav{opacity:1}.product-card__gallery-nav:hover{background:rgb(255 255 255)}.product-card__gallery-nav: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);opacity:1}.product-card__gallery-nav--prev{left:var(--snice-spacing-xs,.5rem)}.product-card__gallery-nav--next{right:var(--snice-spacing-xs,.5rem)}.product-card__gallery-dots{position:absolute;bottom:var(--snice-spacing-xs,.5rem);left:50%;transform:translateX(-50%);display:flex;gap:var(--snice-spacing-2xs,.25rem);z-index:3}.product-card__gallery-dot{width:6px;height:6px;border-radius:50%;background:rgb(255 255 255 / .5);border:none;padding:0;cursor:pointer;transition:background var(--snice-transition-fast, 150ms),transform var(--snice-transition-fast, 150ms)}.product-card__gallery-dot--active{background:rgb(255 255 255);transform:scale(1.3)}.product-card__badge{position:absolute;top:var(--snice-spacing-sm,.75rem);left:var(--snice-spacing-sm,.75rem);background:var(--pc-badge-bg);color:var(--pc-badge-color);font-size:.6875rem;font-weight:var(--snice-font-weight-bold,700);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);text-transform:uppercase;letter-spacing:.05em;z-index:3;line-height:1.5}.product-card__badge--sale{background:var(--pc-danger)}.product-card__badge--new{background:var(--pc-primary)}.product-card__badge--featured{background:linear-gradient(135deg,rgb(168 85 247),rgb(236 72 153))}.product-card__favorite-btn{position:absolute;top:var(--snice-spacing-sm,.75rem);right:var(--snice-spacing-sm,.75rem);width:2rem;height:2rem;border-radius:50%;border:none;background:rgb(255 255 255 / .85);backdrop-filter:blur(4px);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:transform var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms);padding:0}.product-card__favorite-btn:hover{transform:scale(1.1);background:rgb(255 255 255)}.product-card__favorite-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)}.product-card__favorite-icon{width:1rem;height:1rem;color:var(--pc-text-tertiary);transition:color var(--snice-transition-fast, 150ms),transform .3s cubic-bezier(.175, .885, .32, 1.275)}.product-card__favorite-btn:hover .product-card__favorite-icon,.product-card__favorite-icon--active{color:var(--pc-favorite-color)}.product-card__favorite-icon--active{transform:scale(1.1)}@keyframes pc-heart-pop{0%{transform:scale(1)}50%{transform:scale(1.35)}100%{transform:scale(1.1)}}.product-card__favorite-icon--animate{animation:.3s cubic-bezier(.175,.885,.32,1.275) pc-heart-pop}.product-card__quick-view{position:absolute;inset:0;background:rgb(0 0 0 / .35);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--snice-transition-medium, 250ms);z-index:2;cursor:pointer;border:none;padding:0}.product-card__gallery:hover .product-card__quick-view{opacity:1}.product-card__quick-view-label{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);background:rgb(255 255 255 / .92);color:var(--pc-text);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:2rem;font-size:.8125rem;font-weight:var(--snice-font-weight-semibold,600);font-family:inherit;backdrop-filter:blur(4px);transition:transform var(--snice-transition-fast, 150ms)}.product-card__quick-view:hover .product-card__quick-view-label{transform:scale(1.05)}.product-card__quick-view-icon{width:1rem;height:1rem}.product-card__body{padding:var(--snice-spacing-lg,1.25rem);display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem)}.product-card__title{font-size:var(--pc-title-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--pc-text);margin:0;line-height:var(--snice-line-height-normal, 1.5)}.product-card__rating{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.product-card__stars{display:flex;gap:1px}.product-card__star{width:1rem;height:1rem}.product-card__star--filled,.product-card__star--half{color:rgb(250 204 21)}.product-card__star--empty{color:var(--pc-border)}.product-card__review-count{font-size:.75rem;color:var(--pc-text-tertiary)}.product-card__price{display:flex;align-items:baseline;gap:var(--snice-spacing-xs,.5rem);flex-wrap:wrap}.product-card__price-current{font-size:var(--pc-price-size);font-weight:var(--snice-font-weight-bold,700);color:var(--pc-text)}.product-card__price-current--sale{color:var(--pc-danger)}.product-card__price-original{font-size:.875rem;color:var(--pc-text-tertiary);text-decoration:line-through}.product-card__price-discount{font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);color:var(--pc-success);background:rgb(22 163 74 / .1);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-md,.25rem)}.product-card__stock{font-size:.75rem;font-weight:var(--snice-font-weight-medium,500);display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.product-card__stock--in{color:var(--pc-success)}.product-card__stock--out{color:var(--pc-danger)}.product-card__stock-dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.product-card__stock--in .product-card__stock-dot{background:var(--pc-success);animation:2s ease-in-out infinite pc-pulse}.product-card__stock--out .product-card__stock-dot{background:var(--pc-danger)}@keyframes pc-pulse{0%,100%{opacity:1}50%{opacity:.4}}.product-card__stock-urgency{color:rgb(217 119 6);font-weight:var(--snice-font-weight-semibold,600)}.product-card__variants{display:flex;flex-direction:column;gap:var(--snice-spacing-xs,.5rem)}.product-card__variant-group{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.product-card__variant-label{font-size:.75rem;font-weight:var(--snice-font-weight-medium,500);color:var(--pc-text-secondary);text-transform:uppercase;letter-spacing:.05em}.product-card__variant-options{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-2xs,.25rem)}.product-card__variant-option{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--pc-border);border-radius:var(--snice-border-radius-md,.25rem);background:var(--pc-bg);color:var(--pc-text);font-size:.75rem;font-family:inherit;cursor:pointer;transition:border-color var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms);position:relative}.product-card__variant-option:hover{border-color:var(--pc-primary)}.product-card__variant-option--selected{border-color:var(--pc-primary);background:rgb(37 99 235 / .05);color:var(--pc-primary);font-weight:var(--snice-font-weight-medium,500);box-shadow:0 0 0 1px var(--pc-primary)}.product-card__variant-option: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)}.product-card__variant-option--color{width:1.75rem;height:1.75rem;border-radius:50%;padding:0;position:relative;transition:transform var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.product-card__variant-option--color:hover{transform:scale(1.1)}.product-card__variant-option--color.product-card__variant-option--selected{box-shadow:0 0 0 2px var(--pc-bg),0 0 0 4px var(--pc-primary);transform:scale(1.1)}.product-card__cta{width:100%;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);border:none;border-radius:var(--pc-cta-radius);background:var(--pc-cta-bg);color:var(--pc-cta-color);font-family:inherit;font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms),transform var(--snice-transition-fast, 150ms);margin-top:auto;display:flex;align-items:center;justify-content:center;gap:var(--snice-spacing-xs,.5rem)}.product-card__cta:hover{opacity:.9;transform:translateY(-1px)}.product-card__cta:active{opacity:.8;transform:translateY(0)}.product-card__cta: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)}.product-card__cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.product-card__cta-icon{width:1.125rem;height:1.125rem;transition:transform var(--snice-transition-fast, 150ms)}.product-card__cta:not(:disabled):hover .product-card__cta-icon{transform:scale(1.1)}.product-card__cta--loading{pointer-events:none;opacity:.7}.product-card__cta-spinner{width:1rem;height:1rem;border:2px solid;border-top-color:rgb(255 255 255);border-radius:50%;animation:.6s linear infinite pc-spin}@keyframes pc-spin{to{transform:rotate(360deg)}}:host([in-stock=false]) .product-card__gallery::after{content:'Out of Stock';position:absolute;top:var(--snice-spacing-xs,.5rem);right:var(--snice-spacing-xs,.5rem);background:rgb(0 0 0 / .7);color:rgb(255 255 255);font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);z-index:3}.product-card--skeleton .product-card__gallery{background:var(--pc-bg-element)}.product-card__skeleton-image{width:100%;height:100%;background:linear-gradient(90deg,var(--pc-bg-element) 25%,rgb(226 226 226 / .4) 50%,var(--pc-bg-element) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite pc-shimmer}.product-card__skeleton-line{border-radius:var(--snice-border-radius-md,.25rem);background:linear-gradient(90deg,var(--pc-bg-element) 25%,rgb(226 226 226 / .4) 50%,var(--pc-bg-element) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite pc-shimmer}.product-card__skeleton-line--title{height:1.25rem;width:75%}.product-card__skeleton-line--rating{height:1rem;width:40%}.product-card__skeleton-line--price{height:1.5rem;width:35%}.product-card__skeleton-line--stock{height:.75rem;width:25%}.product-card__skeleton-line--cta{height:2.75rem;width:100%;border-radius:var(--pc-cta-radius);margin-top:auto}@keyframes pc-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (max-width:480px){.product-card--horizontal{flex-direction:column}.product-card--horizontal .product-card__gallery{width:100%;aspect-ratio:var(--pc-image-ratio)}}"}`}constructor(){super(...arguments),this.name=(a(this,F),a(this,T,"")),this.price=(a(this,q),a(this,O,0)),this.salePrice=(a(this,Q),a(this,N,null)),this.currency=(a(this,D),a(this,L,"$")),this.images=(a(this,E),a(this,R,[])),this.rating=(a(this,Y),a(this,G,0)),this.reviewCount=(a(this,H),a(this,U,0)),this.variants=(a(this,X),a(this,J,[])),this.inStock=(a(this,K),a(this,W,!0)),this.variant=(a(this,Z),a(this,rr,"vertical")),this.badge=(a(this,tr),a(this,er,"")),this.badgeVariant=(a(this,ar),a(this,ir,"sale")),this.loading=(a(this,cr),a(this,or,!1)),this.favorite=(a(this,nr),a(this,sr,!1)),this.stockCount=(a(this,dr),a(this,lr,-1)),this.currentImageIndex=(a(this,pr),a(this,ur,0)),this.selectedVariants=(a(this,gr),a(this,mr,{})),this.heartAnimating=(a(this,hr),a(this,vr,!1)),a(this,_r)}},i})();return r.SniceProductCard=i,r}({},Snice);
188
+ `}componentStyles(){return t.css`${":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style;color:var(--snice-color-text,rgb(23 23 23));--pc-bg:var(--snice-color-background, rgb(255 255 255));--pc-bg-element:var(--snice-color-background-element, rgb(252 251 249));--pc-border:var(--snice-color-border, rgb(226 226 226));--pc-text:var(--snice-color-text, rgb(23 23 23));--pc-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--pc-text-tertiary:var(--snice-color-text-tertiary, rgb(115 115 115));--pc-primary:var(--snice-color-primary, rgb(37 99 235));--pc-success:var(--snice-color-success, rgb(22 163 74));--pc-danger:var(--snice-color-danger, rgb(220 38 38));--pc-shadow:var(--snice-shadow-sm, 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1));--pc-shadow-hover:var(--snice-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1));--pc-radius:var(--product-card-radius, var(--snice-border-radius-lg, 0.5rem));--pc-image-ratio:var(--product-card-image-ratio, 4 / 3);--pc-title-size:var(--product-card-title-size, var(--snice-font-size-lg, 1.125rem));--pc-price-size:var(--product-card-price-size, var(--snice-font-size-2xl, 1.5rem));--pc-badge-bg:var(--product-card-badge-bg, var(--snice-color-danger, rgb(220 38 38)));--pc-badge-color:var(--product-card-badge-color, rgb(255 255 255));--pc-cta-bg:var(--product-card-cta-bg, var(--snice-color-primary, rgb(37 99 235)));--pc-cta-color:var(--product-card-cta-color, rgb(255 255 255));--pc-cta-radius:var(--product-card-cta-radius, var(--snice-border-radius-md, 0.25rem));--pc-favorite-color:var(--product-card-favorite-color, rgb(239 68 68))}*{box-sizing:border-box}.product-card{background:var(--pc-bg);border:1px solid var(--pc-border);border-radius:var(--pc-radius);transition:box-shadow var(--snice-transition-medium, 250ms),transform var(--snice-transition-medium, 250ms);position:relative}.product-card:hover{box-shadow:var(--pc-shadow-hover);transform:translateY(-2px)}.product-card--vertical{display:flex;flex-direction:column}.product-card--vertical .product-card__gallery{width:100%;aspect-ratio:var(--pc-image-ratio)}.product-card--horizontal{display:flex;flex-direction:row}.product-card--horizontal .product-card__gallery{width:40%;min-width:10rem;flex-shrink:0;border-radius:var(--pc-radius) 0 0 var(--pc-radius)}.product-card--horizontal .product-card__body{flex:1}.product-card--compact{display:flex;flex-direction:row;align-items:center;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-sm,.75rem)}.product-card--compact .product-card__gallery{width:5rem;height:5rem;flex-shrink:0;border-radius:var(--snice-border-radius-md,.25rem);overflow:hidden}.product-card--compact .product-card__body{flex:1;padding:var(--snice-spacing-2xs,.25rem) 0}.product-card--compact .product-card__badge,.product-card--compact .product-card__favorite-btn,.product-card--compact .product-card__gallery-dots,.product-card--compact .product-card__quick-view,.product-card--compact .product-card__variants{display:none}.product-card--compact .product-card__title{font-size:.875rem}.product-card--compact .product-card__price-current{font-size:var(--snice-font-size-md, 1rem)}.product-card--featured{display:flex;flex-direction:column;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))}.product-card--featured:hover{box-shadow:0 20px 25px -5px rgb(0 0 0 / .1),0 8px 10px -6px rgb(0 0 0 / .1);transform:translateY(-4px)}.product-card--featured .product-card__gallery{width:100%;aspect-ratio:16/9}.product-card--featured .product-card__gallery-gradient{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(to top,rgb(0 0 0 / .6),transparent);pointer-events:none;z-index:1}.product-card--featured .product-card__body{padding:var(--snice-spacing-lg,1.5rem)}.product-card--featured .product-card__title{font-size:var(--snice-font-size-2xl, 1.5rem);font-weight:var(--snice-font-weight-bold,700);letter-spacing:-.02em}.product-card--featured .product-card__price-current{font-size:2rem}.product-card--featured .product-card__badge{font-size:.875rem;padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-md,1rem)}.product-card--minimal{display:flex;flex-direction:column;border:none;box-shadow:none;background:0 0}.product-card--minimal:hover{box-shadow:none;transform:none}.product-card--minimal .product-card__gallery{width:100%;aspect-ratio:3/4;border-radius:var(--pc-radius);overflow:hidden;box-shadow:0 1px 3px 0 rgb(0 0 0 / .05)}.product-card--minimal .product-card__body{padding:var(--snice-spacing-md,1rem) 0;gap:var(--snice-spacing-md,1rem)}.product-card--minimal .product-card__title{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);letter-spacing:.01em}.product-card--minimal .product-card__price-current{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600)}.product-card--minimal .product-card__stock{display:none}.product-card--minimal .product-card__cta{background:0 0;color:var(--pc-text);border:1px solid var(--pc-border);font-weight:var(--snice-font-weight-medium,500)}.product-card--minimal .product-card__cta:hover{background:var(--pc-text);color:var(--pc-bg);opacity:1}.product-card--grid{display:flex;flex-direction:column}.product-card--grid .product-card__gallery{width:100%;aspect-ratio:1/1}.product-card--grid .product-card__body{padding:var(--snice-spacing-md,1rem);gap:var(--snice-spacing-sm,.75rem)}.product-card--grid .product-card__title{font-size:.875rem;font-weight:var(--snice-font-weight-medium,500);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-card--grid .product-card__price-current{font-size:var(--snice-font-size-lg, 1.125rem)}.product-card--grid .product-card__variants{display:none}.product-card--grid .product-card__cta{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);font-size:.875rem}.product-card__gallery{position:relative;overflow:hidden;background:var(--pc-bg-element);cursor:pointer;border-radius:var(--pc-radius) var(--pc-radius) 0 0}.product-card__gallery-image-wrapper{width:100%;height:100%;position:relative}.product-card__gallery-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--snice-transition-medium, 250ms),opacity .4s ease;position:absolute;top:0;left:0;opacity:0}.product-card__gallery-image--active{opacity:1;position:relative}.product-card__gallery:hover .product-card__gallery-image--active{transform:scale(1.05)}.product-card__gallery-gradient{display:none}.product-card__gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:50%;border:none;background:var(--pc-bg);opacity:0;color:var(--pc-text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.875rem;backdrop-filter:blur(4px);transition:opacity var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms);z-index:3}.product-card__gallery:hover .product-card__gallery-nav{opacity:.9}.product-card__gallery-nav:hover{opacity:1;background:var(--pc-bg)}.product-card__gallery-nav: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);opacity:1}.product-card__gallery-nav--prev{left:var(--snice-spacing-xs,.5rem)}.product-card__gallery-nav--next{right:var(--snice-spacing-xs,.5rem)}.product-card__gallery-dots{position:absolute;bottom:var(--snice-spacing-xs,.5rem);left:50%;transform:translateX(-50%);display:flex;gap:var(--snice-spacing-2xs,.25rem);z-index:3}.product-card__gallery-dot{width:6px;height:6px;border-radius:50%;background:var(--pc-bg);opacity:.5;border:none;padding:0;cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms),transform var(--snice-transition-fast, 150ms)}.product-card__gallery-dot--active{opacity:1;transform:scale(1.3)}.product-card__badge{position:absolute;top:var(--snice-spacing-sm,.75rem);left:var(--snice-spacing-sm,.75rem);background:var(--pc-badge-bg);color:var(--pc-badge-color);font-size:.6875rem;font-weight:var(--snice-font-weight-bold,700);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);text-transform:uppercase;letter-spacing:.05em;z-index:3;line-height:1.5}.product-card__badge--sale{background:var(--pc-danger)}.product-card__badge--new{background:var(--pc-primary)}.product-card__badge--featured{background:linear-gradient(135deg,rgb(168 85 247),rgb(236 72 153))}.product-card__favorite-btn{position:absolute;top:var(--snice-spacing-sm,.75rem);right:var(--snice-spacing-sm,.75rem);width:2rem;height:2rem;border-radius:50%;border:none;background:var(--pc-bg);backdrop-filter:blur(4px);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;opacity:.9;transition:transform var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms),opacity var(--snice-transition-fast, 150ms);padding:0}.product-card__favorite-btn:hover{transform:scale(1.1);opacity:1;background:var(--pc-bg)}.product-card__favorite-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)}.product-card__favorite-icon{width:1rem;height:1rem;color:var(--pc-text-tertiary);transition:color var(--snice-transition-fast, 150ms),transform .3s cubic-bezier(.175, .885, .32, 1.275)}.product-card__favorite-btn:hover .product-card__favorite-icon,.product-card__favorite-icon--active{color:var(--pc-favorite-color)}.product-card__favorite-icon--active{transform:scale(1.1)}@keyframes pc-heart-pop{0%{transform:scale(1)}50%{transform:scale(1.35)}100%{transform:scale(1.1)}}.product-card__favorite-icon--animate{animation:.3s cubic-bezier(.175,.885,.32,1.275) pc-heart-pop}.product-card__quick-view{position:absolute;inset:0;background:rgb(0 0 0 / .35);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--snice-transition-medium, 250ms);z-index:2;cursor:pointer;border:none;padding:0}.product-card__gallery:hover .product-card__quick-view{opacity:1}.product-card__quick-view-label{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);background:var(--pc-bg);color:var(--pc-text);padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-radius:2rem;font-size:.8125rem;font-weight:var(--snice-font-weight-semibold,600);font-family:inherit;backdrop-filter:blur(4px);transition:transform var(--snice-transition-fast, 150ms)}.product-card__quick-view:hover .product-card__quick-view-label{transform:scale(1.05)}.product-card__quick-view-icon{width:1rem;height:1rem}.product-card__body{padding:var(--snice-spacing-lg,1.5rem);display:flex;flex-direction:column;gap:var(--snice-spacing-md,1rem)}.product-card__title{font-size:var(--pc-title-size);font-weight:var(--snice-font-weight-semibold,600);color:var(--pc-text);margin:0;line-height:var(--snice-line-height-normal, 1.5)}.product-card__rating{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.product-card__stars{display:flex;gap:1px}.product-card__star{width:1rem;height:1rem}.product-card__star--filled,.product-card__star--half{color:rgb(250 204 21)}.product-card__star--empty{color:var(--pc-border)}.product-card__review-count{font-size:.75rem;color:var(--pc-text-tertiary)}.product-card__price{display:flex;align-items:baseline;gap:var(--snice-spacing-xs,.5rem);flex-wrap:wrap}.product-card__price-current{font-size:var(--pc-price-size);font-weight:var(--snice-font-weight-bold,700);color:var(--pc-text)}.product-card__price-current--sale{color:var(--pc-danger)}.product-card__price-original{font-size:.875rem;color:var(--pc-text-tertiary);text-decoration:line-through}.product-card__price-discount{font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);color:var(--pc-success);background:rgb(22 163 74 / .1);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);border-radius:var(--snice-border-radius-md,.25rem)}.product-card__stock{font-size:.75rem;font-weight:var(--snice-font-weight-medium,500);display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem)}.product-card__stock--in{color:var(--pc-success)}.product-card__stock--out{color:var(--pc-danger)}.product-card__stock-dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.product-card__stock--in .product-card__stock-dot{background:var(--pc-success);animation:2s ease-in-out infinite pc-pulse}.product-card__stock--out .product-card__stock-dot{background:var(--pc-danger)}@keyframes pc-pulse{0%,100%{opacity:1}50%{opacity:.4}}.product-card__stock-urgency{color:rgb(217 119 6);font-weight:var(--snice-font-weight-semibold,600)}.product-card__variants{display:flex;flex-direction:column;gap:var(--snice-spacing-sm,.75rem);padding:var(--snice-spacing-xs,.5rem) 0}.product-card__variant-group{display:flex;flex-direction:column;gap:var(--snice-spacing-2xs,.25rem)}.product-card__variant-label{font-size:.75rem;font-weight:var(--snice-font-weight-medium,500);color:var(--pc-text-secondary);text-transform:uppercase;letter-spacing:.05em}.product-card__variant-options{display:flex;flex-wrap:wrap;gap:var(--snice-spacing-2xs,.25rem)}.product-card__variant-option{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);border:1px solid var(--pc-border);border-radius:var(--snice-border-radius-md,.25rem);background:var(--pc-bg);color:var(--pc-text);font-size:.75rem;font-family:inherit;cursor:pointer;transition:border-color var(--snice-transition-fast, 150ms),background var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms);position:relative}.product-card__variant-option:hover{border-color:var(--pc-primary)}.product-card__variant-option--selected{border-color:var(--pc-primary);background:rgb(37 99 235 / .05);color:var(--pc-primary);font-weight:var(--snice-font-weight-medium,500);box-shadow:0 0 0 1px var(--pc-primary)}.product-card__variant-option: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)}.product-card__variant-option--color{width:1.75rem;height:1.75rem;border-radius:50%;padding:0;position:relative;transition:transform var(--snice-transition-fast, 150ms),box-shadow var(--snice-transition-fast, 150ms)}.product-card__variant-option--color:hover{transform:scale(1.1)}.product-card__variant-option--color.product-card__variant-option--selected{box-shadow:0 0 0 2px var(--pc-bg),0 0 0 4px var(--pc-primary);transform:scale(1.1)}.product-card__cta{width:100%;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);border:none;border-radius:var(--pc-cta-radius);background:var(--pc-cta-bg);color:var(--pc-cta-color);font-family:inherit;font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-semibold,600);cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms),transform var(--snice-transition-fast, 150ms);margin-top:auto;display:flex;align-items:center;justify-content:center;gap:var(--snice-spacing-xs,.5rem)}.product-card__cta:hover{opacity:.9;transform:translateY(-1px)}.product-card__cta:active{opacity:.8;transform:translateY(0)}.product-card__cta: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)}.product-card__cta:disabled{opacity:.5;cursor:not-allowed;transform:none}.product-card__cta-icon{width:1.125rem;height:1.125rem;transition:transform var(--snice-transition-fast, 150ms)}.product-card__cta:not(:disabled):hover .product-card__cta-icon{transform:scale(1.1)}.product-card__cta--loading{pointer-events:none;opacity:.7}.product-card__cta-spinner{width:1rem;height:1rem;border:2px solid;border-top-color:rgb(255 255 255);border-radius:50%;animation:.6s linear infinite pc-spin}@keyframes pc-spin{to{transform:rotate(360deg)}}:host([in-stock=false]) .product-card__gallery::after{content:'Out of Stock';position:absolute;top:var(--snice-spacing-xs,.5rem);right:var(--snice-spacing-xs,.5rem);background:rgb(0 0 0 / .7);color:rgb(255 255 255);font-size:.75rem;font-weight:var(--snice-font-weight-semibold,600);padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);z-index:3}.product-card--skeleton .product-card__gallery{background:var(--pc-bg-element)}.product-card__skeleton-image{width:100%;height:100%;background:linear-gradient(90deg,var(--pc-bg-element) 25%,rgb(226 226 226 / .4) 50%,var(--pc-bg-element) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite pc-shimmer}.product-card__skeleton-line{border-radius:var(--snice-border-radius-md,.25rem);background:linear-gradient(90deg,var(--pc-bg-element) 25%,rgb(226 226 226 / .4) 50%,var(--pc-bg-element) 75%);background-size:200% 100%;animation:1.5s ease-in-out infinite pc-shimmer}.product-card__skeleton-line--title{height:1.25rem;width:75%}.product-card__skeleton-line--rating{height:1rem;width:40%}.product-card__skeleton-line--price{height:1.5rem;width:35%}.product-card__skeleton-line--stock{height:.75rem;width:25%}.product-card__skeleton-line--cta{height:2.75rem;width:100%;border-radius:var(--pc-cta-radius);margin-top:auto}@keyframes pc-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@media (max-width:480px){.product-card--horizontal{flex-direction:column}.product-card--horizontal .product-card__gallery{width:100%;aspect-ratio:var(--pc-image-ratio)}}"}`}constructor(){super(...arguments),this.name=(e(this,F),e(this,T,"")),this.price=(e(this,q),e(this,O,0)),this.salePrice=(e(this,Q),e(this,N,null)),this.currency=(e(this,D),e(this,L,"$")),this.images=(e(this,E),e(this,R,[])),this.rating=(e(this,Y),e(this,G,0)),this.reviewCount=(e(this,H),e(this,U,0)),this.variants=(e(this,X),e(this,J,[])),this.inStock=(e(this,K),e(this,W,!0)),this.variant=(e(this,Z),e(this,rr,"vertical")),this.badge=(e(this,tr),e(this,ar,"")),this.badgeVariant=(e(this,er),e(this,ir,"sale")),this.loading=(e(this,cr),e(this,or,!1)),this.favorite=(e(this,nr),e(this,sr,!1)),this.stockCount=(e(this,dr),e(this,lr,-1)),this.currentImageIndex=(e(this,pr),e(this,ur,0)),this.selectedVariants=(e(this,gr),e(this,mr,{})),this.heartAnimating=(e(this,hr),e(this,vr,!1)),e(this,_r)}},i})();return r.SniceProductCard=i,r}({},Snice);
189
189
  //# sourceMappingURL=snice-product-card.min.js.map