snice 4.14.0 → 4.16.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 (384) hide show
  1. package/adapters/react/doc.d.ts +1 -0
  2. package/adapters/react/doc.d.ts.map +1 -1
  3. package/adapters/react/doc.js +1 -1
  4. package/adapters/react/doc.js.map +1 -1
  5. package/adapters/react/doc.tsx +2 -1
  6. package/adapters/react/input.d.ts +3 -0
  7. package/adapters/react/input.d.ts.map +1 -1
  8. package/adapters/react/input.js +1 -1
  9. package/adapters/react/input.js.map +1 -1
  10. package/adapters/react/input.tsx +4 -1
  11. package/adapters/react/modal.d.ts +2 -0
  12. package/adapters/react/modal.d.ts.map +1 -1
  13. package/adapters/react/modal.js +1 -1
  14. package/adapters/react/modal.js.map +1 -1
  15. package/adapters/react/modal.tsx +3 -1
  16. package/dist/cdn/accordion/snice-accordion.js +1 -1
  17. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  18. package/dist/cdn/alert/snice-alert.js +1 -1
  19. package/dist/cdn/alert/snice-alert.min.js +1 -1
  20. package/dist/cdn/app-tiles/snice-app-tiles.js +1 -1
  21. package/dist/cdn/app-tiles/snice-app-tiles.min.js +1 -1
  22. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  23. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  24. package/dist/cdn/avatar/snice-avatar.js +1 -1
  25. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  26. package/dist/cdn/badge/snice-badge.js +1 -1
  27. package/dist/cdn/badge/snice-badge.min.js +1 -1
  28. package/dist/cdn/banner/snice-banner.js +1 -1
  29. package/dist/cdn/banner/snice-banner.min.js +1 -1
  30. package/dist/cdn/book/README.md +2 -2
  31. package/dist/cdn/book/snice-book.js +29 -8
  32. package/dist/cdn/book/snice-book.js.map +1 -1
  33. package/dist/cdn/book/snice-book.min.js +3 -3
  34. package/dist/cdn/book/snice-book.min.js.map +1 -1
  35. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +1 -1
  36. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +1 -1
  37. package/dist/cdn/button/snice-button.js +1 -1
  38. package/dist/cdn/button/snice-button.min.js +1 -1
  39. package/dist/cdn/calendar/snice-calendar.js +1 -1
  40. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  41. package/dist/cdn/camera/snice-camera.js +1 -1
  42. package/dist/cdn/camera/snice-camera.min.js +1 -1
  43. package/dist/cdn/camera-annotate/snice-camera-annotate.js +1 -1
  44. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +1 -1
  45. package/dist/cdn/candlestick/snice-candlestick.js +1 -1
  46. package/dist/cdn/candlestick/snice-candlestick.min.js +1 -1
  47. package/dist/cdn/card/snice-card.js +1 -1
  48. package/dist/cdn/card/snice-card.min.js +1 -1
  49. package/dist/cdn/carousel/snice-carousel.js +1 -1
  50. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  51. package/dist/cdn/chart/snice-chart.js +1 -1
  52. package/dist/cdn/chart/snice-chart.min.js +1 -1
  53. package/dist/cdn/chat/snice-chat.js +1 -1
  54. package/dist/cdn/chat/snice-chat.min.js +1 -1
  55. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  56. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  57. package/dist/cdn/chip/snice-chip.js +1 -1
  58. package/dist/cdn/chip/snice-chip.min.js +1 -1
  59. package/dist/cdn/code-block/snice-code-block.js +4 -4
  60. package/dist/cdn/code-block/snice-code-block.js.map +1 -1
  61. package/dist/cdn/code-block/snice-code-block.min.js +2 -2
  62. package/dist/cdn/code-block/snice-code-block.min.js.map +1 -1
  63. package/dist/cdn/color-display/snice-color-display.js +1 -1
  64. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  65. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  66. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  67. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  68. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  69. package/dist/cdn/comments/snice-comments.js +1 -1
  70. package/dist/cdn/comments/snice-comments.min.js +1 -1
  71. package/dist/cdn/countdown/snice-countdown.js +1 -1
  72. package/dist/cdn/countdown/snice-countdown.min.js +1 -1
  73. package/dist/cdn/cropper/snice-cropper.js +1 -1
  74. package/dist/cdn/cropper/snice-cropper.min.js +1 -1
  75. package/dist/cdn/date-picker/README.md +1 -1
  76. package/dist/cdn/date-picker/snice-date-picker.js +49 -39
  77. package/dist/cdn/date-picker/snice-date-picker.js.map +1 -1
  78. package/dist/cdn/date-picker/snice-date-picker.min.js +4 -4
  79. package/dist/cdn/date-picker/snice-date-picker.min.js.map +1 -1
  80. package/dist/cdn/diff/snice-diff.js +1 -1
  81. package/dist/cdn/diff/snice-diff.min.js +1 -1
  82. package/dist/cdn/divider/snice-divider.js +1 -1
  83. package/dist/cdn/divider/snice-divider.min.js +1 -1
  84. package/dist/cdn/doc/README.md +2 -2
  85. package/dist/cdn/doc/snice-doc.js +221 -35
  86. package/dist/cdn/doc/snice-doc.js.map +1 -1
  87. package/dist/cdn/doc/snice-doc.min.js +2 -2
  88. package/dist/cdn/doc/snice-doc.min.js.map +1 -1
  89. package/dist/cdn/draw/snice-draw.js +1 -1
  90. package/dist/cdn/draw/snice-draw.min.js +1 -1
  91. package/dist/cdn/drawer/snice-drawer.js +1 -1
  92. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  93. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  94. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  95. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  96. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  97. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  98. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  99. package/dist/cdn/flip-card/snice-flip-card.js +1 -1
  100. package/dist/cdn/flip-card/snice-flip-card.min.js +1 -1
  101. package/dist/cdn/flow/snice-flow.js +1 -1
  102. package/dist/cdn/flow/snice-flow.min.js +1 -1
  103. package/dist/cdn/funnel/snice-funnel.js +1 -1
  104. package/dist/cdn/funnel/snice-funnel.min.js +1 -1
  105. package/dist/cdn/gantt/snice-gantt.js +1 -1
  106. package/dist/cdn/gantt/snice-gantt.min.js +1 -1
  107. package/dist/cdn/gauge/snice-gauge.js +1 -1
  108. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  109. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  110. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  111. package/dist/cdn/image/snice-image.js +1 -1
  112. package/dist/cdn/image/snice-image.min.js +1 -1
  113. package/dist/cdn/input/README.md +2 -2
  114. package/dist/cdn/input/snice-input.js +21 -3
  115. package/dist/cdn/input/snice-input.js.map +1 -1
  116. package/dist/cdn/input/snice-input.min.js +3 -3
  117. package/dist/cdn/input/snice-input.min.js.map +1 -1
  118. package/dist/cdn/kanban/snice-kanban.js +1 -1
  119. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  120. package/dist/cdn/kpi/snice-kpi.js +1 -1
  121. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  122. package/dist/cdn/layout/snice-layout.js +1 -1
  123. package/dist/cdn/layout/snice-layout.min.js +1 -1
  124. package/dist/cdn/link/snice-link.js +1 -1
  125. package/dist/cdn/link/snice-link.min.js +1 -1
  126. package/dist/cdn/link-preview/snice-link-preview.js +2 -2
  127. package/dist/cdn/link-preview/snice-link-preview.js.map +1 -1
  128. package/dist/cdn/link-preview/snice-link-preview.min.js +2 -2
  129. package/dist/cdn/link-preview/snice-link-preview.min.js.map +1 -1
  130. package/dist/cdn/list/snice-list.js +4 -4
  131. package/dist/cdn/list/snice-list.js.map +1 -1
  132. package/dist/cdn/list/snice-list.min.js +2 -2
  133. package/dist/cdn/list/snice-list.min.js.map +1 -1
  134. package/dist/cdn/location/snice-location.js +1 -1
  135. package/dist/cdn/location/snice-location.min.js +1 -1
  136. package/dist/cdn/login/snice-login.js +1 -1
  137. package/dist/cdn/login/snice-login.min.js +1 -1
  138. package/dist/cdn/map/snice-map.js +1 -1
  139. package/dist/cdn/map/snice-map.min.js +1 -1
  140. package/dist/cdn/markdown/snice-markdown.js +1 -1
  141. package/dist/cdn/markdown/snice-markdown.min.js +1 -1
  142. package/dist/cdn/masonry/snice-masonry.js +1 -1
  143. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  144. package/dist/cdn/menu/snice-menu.js +2 -2
  145. package/dist/cdn/menu/snice-menu.js.map +1 -1
  146. package/dist/cdn/menu/snice-menu.min.js +2 -2
  147. package/dist/cdn/menu/snice-menu.min.js.map +1 -1
  148. package/dist/cdn/modal/README.md +2 -2
  149. package/dist/cdn/modal/snice-modal.js +34 -18
  150. package/dist/cdn/modal/snice-modal.js.map +1 -1
  151. package/dist/cdn/modal/snice-modal.min.js +24 -20
  152. package/dist/cdn/modal/snice-modal.min.js.map +1 -1
  153. package/dist/cdn/music-player/README.md +2 -2
  154. package/dist/cdn/music-player/snice-music-player.js +8 -1
  155. package/dist/cdn/music-player/snice-music-player.js.map +1 -1
  156. package/dist/cdn/music-player/snice-music-player.min.js +3 -3
  157. package/dist/cdn/music-player/snice-music-player.min.js.map +1 -1
  158. package/dist/cdn/nav/snice-nav.js +1 -1
  159. package/dist/cdn/nav/snice-nav.min.js +1 -1
  160. package/dist/cdn/network-graph/snice-network-graph.js +1 -1
  161. package/dist/cdn/network-graph/snice-network-graph.min.js +1 -1
  162. package/dist/cdn/notification-center/snice-notification-center.js +1 -1
  163. package/dist/cdn/notification-center/snice-notification-center.min.js +1 -1
  164. package/dist/cdn/org-chart/snice-org-chart.js +1 -1
  165. package/dist/cdn/org-chart/snice-org-chart.min.js +1 -1
  166. package/dist/cdn/pagination/snice-pagination.js +1 -1
  167. package/dist/cdn/pagination/snice-pagination.min.js +1 -1
  168. package/dist/cdn/paint/snice-paint.js +1 -1
  169. package/dist/cdn/paint/snice-paint.min.js +1 -1
  170. package/dist/cdn/pdf-viewer/snice-pdf-viewer.js +1 -1
  171. package/dist/cdn/pdf-viewer/snice-pdf-viewer.min.js +1 -1
  172. package/dist/cdn/podcast-player/snice-podcast-player.js +1 -1
  173. package/dist/cdn/podcast-player/snice-podcast-player.min.js +1 -1
  174. package/dist/cdn/pricing-table/snice-pricing-table.js +1 -1
  175. package/dist/cdn/pricing-table/snice-pricing-table.min.js +1 -1
  176. package/dist/cdn/progress/snice-progress.js +1 -1
  177. package/dist/cdn/progress/snice-progress.min.js +1 -1
  178. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  179. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  180. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  181. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  182. package/dist/cdn/radio/README.md +2 -2
  183. package/dist/cdn/radio/snice-radio.js +23 -3
  184. package/dist/cdn/radio/snice-radio.js.map +1 -1
  185. package/dist/cdn/radio/snice-radio.min.js +3 -3
  186. package/dist/cdn/radio/snice-radio.min.js.map +1 -1
  187. package/dist/cdn/rating/snice-rating.js +1 -1
  188. package/dist/cdn/rating/snice-rating.min.js +1 -1
  189. package/dist/cdn/recipe/snice-recipe.js +1 -1
  190. package/dist/cdn/recipe/snice-recipe.min.js +1 -1
  191. package/dist/cdn/runtime/README.md +2 -2
  192. package/dist/cdn/runtime/snice-runtime.esm.js +513 -46
  193. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  194. package/dist/cdn/runtime/snice-runtime.esm.min.js +6 -6
  195. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  196. package/dist/cdn/runtime/snice-runtime.js +6420 -5951
  197. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  198. package/dist/cdn/runtime/snice-runtime.min.js +18 -18
  199. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  200. package/dist/cdn/sankey/snice-sankey.js +1 -1
  201. package/dist/cdn/sankey/snice-sankey.min.js +1 -1
  202. package/dist/cdn/select/README.md +2 -2
  203. package/dist/cdn/select/snice-select.js +46 -92
  204. package/dist/cdn/select/snice-select.js.map +1 -1
  205. package/dist/cdn/select/snice-select.min.js +5 -13
  206. package/dist/cdn/select/snice-select.min.js.map +1 -1
  207. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  208. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  209. package/dist/cdn/slider/snice-slider.js +1 -1
  210. package/dist/cdn/slider/snice-slider.min.js +1 -1
  211. package/dist/cdn/sortable/snice-sortable.js +1 -1
  212. package/dist/cdn/sortable/snice-sortable.min.js +1 -1
  213. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  214. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  215. package/dist/cdn/spinner/snice-spinner.js +1 -1
  216. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  217. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  218. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  219. package/dist/cdn/spotlight/snice-spotlight.js +1 -1
  220. package/dist/cdn/spotlight/snice-spotlight.min.js +1 -1
  221. package/dist/cdn/spreadsheet/snice-spreadsheet.js +1 -1
  222. package/dist/cdn/spreadsheet/snice-spreadsheet.min.js +1 -1
  223. package/dist/cdn/stepper/snice-stepper.js +1 -1
  224. package/dist/cdn/stepper/snice-stepper.min.js +1 -1
  225. package/dist/cdn/switch/README.md +1 -1
  226. package/dist/cdn/switch/snice-switch.js +33 -23
  227. package/dist/cdn/switch/snice-switch.js.map +1 -1
  228. package/dist/cdn/switch/snice-switch.min.js +3 -3
  229. package/dist/cdn/switch/snice-switch.min.js.map +1 -1
  230. package/dist/cdn/table/README.md +2 -2
  231. package/dist/cdn/table/snice-table.js +2876 -111
  232. package/dist/cdn/table/snice-table.js.map +1 -1
  233. package/dist/cdn/table/snice-table.min.js +187 -47
  234. package/dist/cdn/table/snice-table.min.js.map +1 -1
  235. package/dist/cdn/tabs/snice-tabs.js +1 -1
  236. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  237. package/dist/cdn/tag-input/snice-tag-input.js +1 -1
  238. package/dist/cdn/tag-input/snice-tag-input.min.js +1 -1
  239. package/dist/cdn/terminal/snice-terminal.js +1 -1
  240. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  241. package/dist/cdn/testimonial/snice-testimonial.js +1 -1
  242. package/dist/cdn/testimonial/snice-testimonial.min.js +1 -1
  243. package/dist/cdn/textarea/snice-textarea.js +1 -1
  244. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  245. package/dist/cdn/time-range-picker/snice-time-range-picker.js +1 -1
  246. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +1 -1
  247. package/dist/cdn/timeline/snice-timeline.js +1 -1
  248. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  249. package/dist/cdn/timer/snice-timer.js +1 -1
  250. package/dist/cdn/timer/snice-timer.min.js +1 -1
  251. package/dist/cdn/toast/README.md +1 -1
  252. package/dist/cdn/toast/snice-toast.js +3 -3
  253. package/dist/cdn/toast/snice-toast.js.map +1 -1
  254. package/dist/cdn/toast/snice-toast.min.js +2 -2
  255. package/dist/cdn/toast/snice-toast.min.js.map +1 -1
  256. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  257. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  258. package/dist/cdn/tree/snice-tree.js +1 -1
  259. package/dist/cdn/tree/snice-tree.min.js +1 -1
  260. package/dist/cdn/treemap/snice-treemap.js +1 -1
  261. package/dist/cdn/treemap/snice-treemap.min.js +1 -1
  262. package/dist/cdn/video-player/snice-video-player.js +1 -1
  263. package/dist/cdn/video-player/snice-video-player.min.js +1 -1
  264. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +1 -1
  265. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +1 -1
  266. package/dist/cdn/waterfall/snice-waterfall.js +1 -1
  267. package/dist/cdn/waterfall/snice-waterfall.min.js +1 -1
  268. package/dist/cdn/weather/snice-weather.js +1 -1
  269. package/dist/cdn/weather/snice-weather.min.js +1 -1
  270. package/dist/components/book/snice-book.d.ts +2 -0
  271. package/dist/components/book/snice-book.js +28 -7
  272. package/dist/components/book/snice-book.js.map +1 -1
  273. package/dist/components/book/snice-book.types.d.ts +7 -0
  274. package/dist/components/code-block/snice-code-block.js +3 -3
  275. package/dist/components/code-block/snice-code-block.js.map +1 -1
  276. package/dist/components/code-block/snice-code-block.types.d.ts +3 -3
  277. package/dist/components/date-picker/snice-date-picker.d.ts +2 -0
  278. package/dist/components/date-picker/snice-date-picker.js +49 -39
  279. package/dist/components/date-picker/snice-date-picker.js.map +1 -1
  280. package/dist/components/doc/snice-doc.d.ts +20 -0
  281. package/dist/components/doc/snice-doc.js +220 -34
  282. package/dist/components/doc/snice-doc.js.map +1 -1
  283. package/dist/components/input/snice-input.d.ts +3 -0
  284. package/dist/components/input/snice-input.js +20 -2
  285. package/dist/components/input/snice-input.js.map +1 -1
  286. package/dist/components/input/snice-input.types.d.ts +3 -0
  287. package/dist/components/link-preview/snice-link-preview.js +1 -1
  288. package/dist/components/link-preview/snice-link-preview.js.map +1 -1
  289. package/dist/components/list/snice-list.js +3 -3
  290. package/dist/components/list/snice-list.js.map +1 -1
  291. package/dist/components/menu/snice-menu.js +1 -1
  292. package/dist/components/menu/snice-menu.js.map +1 -1
  293. package/dist/components/modal/snice-modal.d.ts +2 -0
  294. package/dist/components/modal/snice-modal.js +33 -17
  295. package/dist/components/modal/snice-modal.js.map +1 -1
  296. package/dist/components/modal/snice-modal.types.d.ts +2 -0
  297. package/dist/components/music-player/snice-music-player.d.ts +1 -0
  298. package/dist/components/music-player/snice-music-player.js +7 -0
  299. package/dist/components/music-player/snice-music-player.js.map +1 -1
  300. package/dist/components/notification-center/snice-notification-center.d.ts +1 -1
  301. package/dist/components/notification-center/snice-notification-center.js.map +1 -1
  302. package/dist/components/notification-center/snice-notification-center.types.d.ts +1 -0
  303. package/dist/components/radio/snice-radio.d.ts +1 -0
  304. package/dist/components/radio/snice-radio.js +22 -2
  305. package/dist/components/radio/snice-radio.js.map +1 -1
  306. package/dist/components/select/snice-select.d.ts +2 -4
  307. package/dist/components/select/snice-select.js +46 -92
  308. package/dist/components/select/snice-select.js.map +1 -1
  309. package/dist/components/switch/snice-switch.d.ts +2 -0
  310. package/dist/components/switch/snice-switch.js +32 -22
  311. package/dist/components/switch/snice-switch.js.map +1 -1
  312. package/dist/components/table/snice-table.d.ts +2 -0
  313. package/dist/components/table/snice-table.js +17 -3
  314. package/dist/components/table/snice-table.js.map +1 -1
  315. package/dist/components/toast/snice-toast-container.js +2 -2
  316. package/dist/components/toast/snice-toast-container.js.map +1 -1
  317. package/dist/index.cjs +512 -43
  318. package/dist/index.cjs.map +1 -1
  319. package/dist/index.d.ts +1 -0
  320. package/dist/index.esm.js +511 -44
  321. package/dist/index.esm.js.map +1 -1
  322. package/dist/index.iife.js +512 -43
  323. package/dist/index.iife.js.map +1 -1
  324. package/dist/symbols.cjs +1 -1
  325. package/dist/symbols.esm.js +1 -1
  326. package/dist/tooltip-observer.d.ts +11 -0
  327. package/dist/transitions.cjs +1 -1
  328. package/dist/transitions.esm.js +1 -1
  329. package/docs/ai/DEVELOPMENT.md +1 -1
  330. package/docs/ai/api.md +14 -10
  331. package/docs/ai/architecture.md +18 -5
  332. package/docs/ai/components/app-tiles.md +1 -1
  333. package/docs/ai/components/book.md +5 -6
  334. package/docs/ai/components/camera-annotate.md +3 -3
  335. package/docs/ai/components/candlestick.md +3 -3
  336. package/docs/ai/components/chart.md +1 -1
  337. package/docs/ai/components/code-block.md +3 -3
  338. package/docs/ai/components/doc.md +26 -15
  339. package/docs/ai/components/file-gallery.md +1 -1
  340. package/docs/ai/components/input.md +10 -0
  341. package/docs/ai/components/link-preview.md +1 -1
  342. package/docs/ai/components/list.md +2 -2
  343. package/docs/ai/components/markdown.md +13 -6
  344. package/docs/ai/components/modal.md +2 -0
  345. package/docs/ai/components/music-player.md +3 -2
  346. package/docs/ai/components/network-graph.md +5 -5
  347. package/docs/ai/components/notification-center.md +1 -0
  348. package/docs/ai/components/pdf-viewer.md +1 -1
  349. package/docs/ai/components/radio.md +2 -2
  350. package/docs/ai/components/sankey.md +3 -3
  351. package/docs/ai/components/select.md +1 -1
  352. package/docs/ai/components/tooltip.md +54 -0
  353. package/docs/ai/decorators.md +4 -4
  354. package/docs/code-block.md +4 -4
  355. package/docs/components/app-tiles.md +1 -1
  356. package/docs/components/book.md +3 -4
  357. package/docs/components/button.md +2 -2
  358. package/docs/components/camera-annotate.md +6 -6
  359. package/docs/components/candlestick.md +6 -6
  360. package/docs/components/chart.md +4 -6
  361. package/docs/components/checkbox.md +3 -3
  362. package/docs/components/chip.md +4 -4
  363. package/docs/components/code-block.md +4 -3
  364. package/docs/components/doc.md +99 -58
  365. package/docs/components/file-gallery.md +25 -3
  366. package/docs/components/input.md +20 -0
  367. package/docs/components/kpi.md +2 -3
  368. package/docs/components/link-preview.md +2 -2
  369. package/docs/components/list.md +3 -3
  370. package/docs/components/markdown.md +14 -36
  371. package/docs/components/modal.md +2 -0
  372. package/docs/components/music-player.md +3 -2
  373. package/docs/components/network-graph.md +7 -7
  374. package/docs/components/notification-center.md +1 -0
  375. package/docs/components/pdf-viewer.md +1 -1
  376. package/docs/components/sankey.md +6 -6
  377. package/docs/components/switch.md +1 -1
  378. package/docs/components/table.md +2 -2
  379. package/docs/components/tooltip.md +133 -0
  380. package/docs/controllers.md +3 -14
  381. package/docs/elements.md +0 -1
  382. package/docs/events.md +3 -0
  383. package/docs/request-response.md +2 -0
  384. package/package.json +1 -1
@@ -22,7 +22,7 @@ import 'snice/components/markdown/snice-markdown';
22
22
  ```
23
23
 
24
24
  ```html
25
- <snice-markdown content="# Hello World"></snice-markdown>
25
+ <snice-markdown># Hello World</snice-markdown>
26
26
  ```
27
27
 
28
28
  ## Importing
@@ -42,7 +42,6 @@ import 'snice/components/markdown/snice-markdown';
42
42
 
43
43
  | Property | Type | Default | Description |
44
44
  |----------|------|---------|-------------|
45
- | `content` | `string` | `''` | The markdown source text to render |
46
45
  | `sanitize` | `boolean` | `true` | Whether to sanitize the HTML output to prevent XSS |
47
46
  | `theme` | `'default' \| 'github'` | `'default'` | Visual theme for the rendered output |
48
47
 
@@ -88,23 +87,22 @@ The component supports GitHub Flavored Markdown (GFM):
88
87
 
89
88
  ### Rendering Static Content
90
89
 
91
- Use the `content` attribute to render a markdown string.
90
+ Use slotted text to render markdown:
92
91
 
93
92
  ```html
94
- <snice-markdown
95
- content="# Welcome
93
+ <snice-markdown># Welcome
96
94
 
97
95
  This is **bold** and *italic* text.
98
96
 
99
97
  - Item one
100
98
  - Item two
101
- - Item three"
102
- ></snice-markdown>
99
+ - Item three
100
+ </snice-markdown>
103
101
  ```
104
102
 
105
103
  ### Dynamic Content Updates
106
104
 
107
- Set the `content` property via JavaScript to update the rendered markdown dynamically.
105
+ Use `setContent()` to update the rendered markdown programmatically:
108
106
 
109
107
  ```html
110
108
  <snice-markdown id="preview"></snice-markdown>
@@ -119,11 +117,11 @@ Type some **markdown** and see it render in real time.</textarea>
119
117
  const editor = document.getElementById('editor');
120
118
 
121
119
  // Set initial content
122
- preview.content = editor.value;
120
+ preview.setContent(editor.value);
123
121
 
124
122
  // Update on input
125
123
  editor.addEventListener('input', () => {
126
- preview.content = editor.value;
124
+ preview.setContent(editor.value);
127
125
  });
128
126
  </script>
129
127
  ```
@@ -133,9 +131,7 @@ Type some **markdown** and see it render in real time.</textarea>
133
131
  Use the `theme="github"` attribute for GitHub-style markdown rendering.
134
132
 
135
133
  ```html
136
- <snice-markdown
137
- theme="github"
138
- content="# GitHub Style
134
+ <snice-markdown theme="github"># GitHub Style
139
135
 
140
136
  > This blockquote uses GitHub-style rendering.
141
137
 
@@ -143,11 +139,7 @@ Use the `theme="github"` attribute for GitHub-style markdown rendering.
143
139
  |---------|-----------|
144
140
  | Tables | Yes |
145
141
  | GFM | Yes |
146
-
147
- ```javascript
148
- console.log('Syntax highlighting');
149
- ```"
150
- ></snice-markdown>
142
+ </snice-markdown>
151
143
  ```
152
144
 
153
145
  ### Intercepting Link Clicks
@@ -155,10 +147,7 @@ console.log('Syntax highlighting');
155
147
  Listen for the `link-click` event to handle navigation within your application instead of following the default link behavior.
156
148
 
157
149
  ```html
158
- <snice-markdown
159
- id="docs"
160
- content="Check out [the documentation](/docs) or visit [our website](https://example.com)."
161
- ></snice-markdown>
150
+ <snice-markdown id="docs">Check out [the documentation](/docs) or visit [our website](https://example.com).</snice-markdown>
162
151
 
163
152
  <script type="module">
164
153
  import 'snice/components/markdown/snice-markdown';
@@ -184,21 +173,10 @@ Listen for the `link-click` event to handle navigation within your application i
184
173
  Render markdown that includes fenced code blocks and GFM tables.
185
174
 
186
175
  ```html
187
- <snice-markdown
188
- content="## API Response
176
+ <snice-markdown>## API Response
189
177
 
190
178
  The endpoint returns the following JSON:
191
179
 
192
- ```json
193
- {
194
- &quot;id&quot;: 1,
195
- &quot;name&quot;: &quot;Example&quot;,
196
- &quot;active&quot;: true
197
- }
198
- ```
199
-
200
- ### Status Codes
201
-
202
180
  | Code | Meaning |
203
181
  |------|---------|
204
182
  | 200 | Success |
@@ -207,8 +185,8 @@ The endpoint returns the following JSON:
207
185
 
208
186
  - [x] GET endpoint
209
187
  - [x] POST endpoint
210
- - [ ] DELETE endpoint"
211
- ></snice-markdown>
188
+ - [ ] DELETE endpoint
189
+ </snice-markdown>
212
190
  ```
213
191
 
214
192
  ## Accessibility
@@ -188,6 +188,8 @@ modal.addEventListener('modal-close', () => console.log('Closed'));
188
188
  | `noEscapeDismiss` (attr: `no-escape-dismiss`) | `boolean` | `false` | Prevent closing with Escape key |
189
189
  | `noFocusTrap` (attr: `no-focus-trap`) | `boolean` | `false` | Disable focus trapping |
190
190
  | `noCloseButton` (attr: `no-close-button`) | `boolean` | `false` | Hide the close button |
191
+ | `noHeader` (attr: `no-header`) | `boolean` | `false` | Hide the header section entirely |
192
+ | `noFooter` (attr: `no-footer`) | `boolean` | `false` | Hide the footer section entirely |
191
193
  | `label` | `string` | `''` | Accessible label for screen readers |
192
194
 
193
195
  ## Events
@@ -183,13 +183,14 @@ interface Track {
183
183
  |-------|--------|-------------|
184
184
  | `player-play` | `{ track: Track }` | Playback started |
185
185
  | `player-pause` | `{ track: Track }` | Playback paused |
186
- | `player-stop` | `{ track: Track }` | Playback stopped |
186
+ | `player-stop` | `{ player: SniceMusicPlayerElement }` | Playback stopped |
187
187
  | `player-track-change` | `{ track: Track }` | Track changed |
188
188
  | `player-track-ended` | `{ track: Track }` | Track finished playing |
189
189
  | `player-shuffle-change` | `{ shuffle: boolean }` | Shuffle mode toggled |
190
190
  | `player-repeat-change` | `{ repeat: string }` | Repeat mode changed |
191
191
  | `player-volume-change` | `{ volume: number }` | Volume level changed |
192
- | `@snice/player-time-update` | `{ currentTime: number, duration: number }` | Playback time updated |
192
+ | `player-seek` | `{ time: number }` | Seeked to a new position |
193
+ | `player-time-update` | `{ currentTime: number, duration: number }` | Playback time updated |
193
194
  | `player-error` | `{ error: any }` | An error occurred |
194
195
 
195
196
  ## Methods
@@ -116,15 +116,15 @@ graph.data = {
116
116
  ### Event Handling
117
117
 
118
118
  ```typescript
119
- graph.addEventListener('@snice/node-click', (e) => {
119
+ graph.addEventListener('node-click', (e) => {
120
120
  console.log('Clicked:', e.detail.node.label);
121
121
  });
122
122
 
123
- graph.addEventListener('@snice/node-drag', (e) => {
123
+ graph.addEventListener('node-drag', (e) => {
124
124
  console.log(`Dragged ${e.detail.node.id} to (${e.detail.x}, ${e.detail.y})`);
125
125
  });
126
126
 
127
- graph.addEventListener('@snice/graph-zoom', (e) => {
127
+ graph.addEventListener('graph-zoom', (e) => {
128
128
  console.log('Zoom:', e.detail.scale);
129
129
  });
130
130
  ```
@@ -181,7 +181,7 @@ interface NetworkEdge {
181
181
 
182
182
  | Event | Detail | Description |
183
183
  |-------|--------|-------------|
184
- | `@snice/node-click` | `{ node: NetworkNode }` | Node clicked |
185
- | `@snice/edge-click` | `{ edge: NetworkEdge }` | Edge clicked |
186
- | `@snice/node-drag` | `{ node: NetworkNode, x: number, y: number }` | Node dragged |
187
- | `@snice/graph-zoom` | `{ scale: number, x: number, y: number }` | Zoom changed |
184
+ | `node-click` | `{ node: NetworkNode }` | Node clicked |
185
+ | `edge-click` | `{ edge: NetworkEdge }` | Edge clicked |
186
+ | `node-drag` | `{ node: NetworkNode, x: number, y: number }` | Node dragged |
187
+ | `graph-zoom` | `{ scale: number, x: number, y: number }` | Zoom changed |
@@ -44,6 +44,7 @@ import 'snice/components/notification-center/snice-notification-center';
44
44
  | Property | Type | Default | Description |
45
45
  |----------|------|---------|-------------|
46
46
  | `notifications` | `NotificationItem[]` | `[]` | Array of notification objects to display |
47
+ | `open` | `boolean` | `false` | Whether the dropdown panel is visible |
47
48
 
48
49
  ## Methods
49
50
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  `<snice-pdf-viewer>`
6
6
 
7
- A PDF document viewer with a built-in toolbar for page navigation, zoom control, fit modes, printing, and downloading. Uses PDF.js loaded from CDN for rendering.
7
+ A PDF document viewer with a built-in toolbar for page navigation, zoom control, fit modes, printing, and downloading. Uses a vendored PDF.js bundle included with the component.
8
8
 
9
9
  ## Table of Contents
10
10
  - [Basic Usage](#basic-usage)
@@ -120,15 +120,15 @@ Set the `animation` attribute for animated rendering.
120
120
  ```typescript
121
121
  const sankey = document.querySelector('snice-sankey');
122
122
 
123
- sankey.addEventListener('@snice/sankey-node-click', (e) => {
123
+ sankey.addEventListener('sankey-node-click', (e) => {
124
124
  console.log('Node:', e.detail.node.label);
125
125
  });
126
126
 
127
- sankey.addEventListener('@snice/sankey-link-click', (e) => {
127
+ sankey.addEventListener('sankey-link-click', (e) => {
128
128
  console.log('Link:', e.detail.link.source, '->', e.detail.link.target);
129
129
  });
130
130
 
131
- sankey.addEventListener('@snice/sankey-hover', (e) => {
131
+ sankey.addEventListener('sankey-hover', (e) => {
132
132
  if (e.detail) {
133
133
  console.log('Hovering:', e.detail.type, e.detail.item);
134
134
  }
@@ -173,6 +173,6 @@ interface SankeyLink {
173
173
 
174
174
  | Event | Detail | Description |
175
175
  |-------|--------|-------------|
176
- | `@snice/sankey-node-click` | `{ node: SankeyNode }` | Node clicked |
177
- | `@snice/sankey-link-click` | `{ link: SankeyLink }` | Link clicked |
178
- | `@snice/sankey-hover` | `{ type: 'node' \| 'link', item } \| null` | Hover state changed |
176
+ | `sankey-node-click` | `{ node: SankeyNode }` | Node clicked |
177
+ | `sankey-link-click` | `{ link: SankeyLink }` | Link clicked |
178
+ | `sankey-hover` | `{ type: 'node' \| 'link', item } \| null` | Hover state changed |
@@ -58,7 +58,7 @@ Use the `label-on` and `label-off` attributes for text inside the switch track.
58
58
 
59
59
  ### In a Form
60
60
 
61
- The switch is form-associated and participates in form submission.
61
+ The switch contains a native `<input type="checkbox">` internally, which participates in form submission when `name` is set.
62
62
 
63
63
  ```html
64
64
  <form id="settings-form">
@@ -167,7 +167,7 @@ Use the `@request`/`@respond` pattern to load data from an external source.
167
167
 
168
168
  @element('my-table-controller')
169
169
  class MyTableController extends HTMLElement {
170
- @respond('@snice/table/config')
170
+ @respond('table/config')
171
171
  getConfig() {
172
172
  return {
173
173
  columns: [
@@ -177,7 +177,7 @@ Use the `@request`/`@respond` pattern to load data from an external source.
177
177
  };
178
178
  }
179
179
 
180
- @respond('@snice/table/data')
180
+ @respond('table/data')
181
181
  async getData(params) {
182
182
  const response = await fetch(`/api/users?search=${params.search}`);
183
183
  const data = await response.json();
@@ -177,3 +177,136 @@ Set the `strict-positioning` attribute to disable automatic repositioning when n
177
177
  | `hide()` | -- | Hide the tooltip |
178
178
  | `toggle()` | -- | Toggle visibility |
179
179
  | `updatePosition()` | -- | Recalculate position |
180
+
181
+ ## Attribute-Based Tooltips (`useTooltips`)
182
+
183
+ Wrapping elements in `<snice-tooltip>` can break parent-child relationships in components that require direct children (accordion, tabs, stepper, breadcrumbs, table, etc.). The attribute-based approach uses a plain `tooltip` attribute on any element, avoiding DOM disruption entirely.
184
+
185
+ ### Setup
186
+
187
+ Call `useTooltips()` once in your app entry point. It's idempotent — safe to call multiple times.
188
+
189
+ ```typescript
190
+ import { useTooltips } from 'snice';
191
+ useTooltips();
192
+ ```
193
+
194
+ ### Basic Usage
195
+
196
+ ```html
197
+ <button tooltip="Save changes">Save</button>
198
+
199
+ <button tooltip="Below the button" style="--tooltip-position: bottom">
200
+ Bottom tooltip
201
+ </button>
202
+
203
+ <button tooltip="With delay" style="--tooltip-delay: 300">
204
+ Hover and wait
205
+ </button>
206
+ ```
207
+
208
+ ### Inside Strict-Children Components
209
+
210
+ This is the primary use case — adding tooltips without disrupting component structure:
211
+
212
+ ```html
213
+ <snice-tabs>
214
+ <snice-tab slot="nav" tooltip="User settings">Settings</snice-tab>
215
+ <snice-tab slot="nav" tooltip="Account info">Profile</snice-tab>
216
+ </snice-tabs>
217
+
218
+ <snice-accordion>
219
+ <snice-accordion-item tooltip="Click to expand">
220
+ <span slot="header">Section 1</span>
221
+ <p>Content here</p>
222
+ </snice-accordion-item>
223
+ </snice-accordion>
224
+
225
+ <snice-breadcrumbs>
226
+ <a href="/" tooltip="Go to homepage">Home</a>
227
+ <a href="/docs" tooltip="Documentation">Docs</a>
228
+ </snice-breadcrumbs>
229
+ ```
230
+
231
+ ### Scoped Configuration via CSS
232
+
233
+ Use CSS custom properties to configure tooltips. Properties cascade, so you can scope config with CSS selectors:
234
+
235
+ ```html
236
+ <style>
237
+ /* All toolbar tooltips appear below with a delay */
238
+ .toolbar [tooltip] {
239
+ --tooltip-position: bottom;
240
+ --tooltip-delay: 200;
241
+ }
242
+
243
+ /* Sidebar tooltips appear to the right */
244
+ .sidebar [tooltip] {
245
+ --tooltip-position: right;
246
+ --tooltip-offset: 16;
247
+ }
248
+
249
+ /* Custom themed tooltips */
250
+ .dark-section [tooltip] {
251
+ --tooltip-bg: hsl(220 20% 15%);
252
+ --tooltip-color: hsl(220 20% 90%);
253
+ --tooltip-radius: 8px;
254
+ --tooltip-font-size: 13px;
255
+ }
256
+ </style>
257
+
258
+ <div class="toolbar">
259
+ <button tooltip="Bold (Ctrl+B)"><b>B</b></button>
260
+ <button tooltip="Italic (Ctrl+I)"><i>I</i></button>
261
+ </div>
262
+ ```
263
+
264
+ ### Click Trigger
265
+
266
+ ```html
267
+ <button tooltip="Click to toggle" style="--tooltip-trigger: click">
268
+ Click me
269
+ </button>
270
+ ```
271
+
272
+ ### Focus Trigger
273
+
274
+ ```html
275
+ <input tooltip="Enter your email" style="--tooltip-trigger: focus" type="email">
276
+ ```
277
+
278
+ ### Without Arrow
279
+
280
+ ```html
281
+ <button tooltip="No arrow" style="--tooltip-arrow: none">
282
+ Hover me
283
+ </button>
284
+ ```
285
+
286
+ ### CSS Variable Reference
287
+
288
+ | Variable | Default | Description |
289
+ |----------|---------|-------------|
290
+ | `--tooltip-position` | `top` | Position: `top`, `top-start`, `top-end`, `bottom`, `bottom-start`, `bottom-end`, `left`, `left-start`, `left-end`, `right`, `right-start`, `right-end` |
291
+ | `--tooltip-trigger` | `hover` | Trigger: `hover`, `click`, `focus` |
292
+ | `--tooltip-delay` | `0` | Show delay in milliseconds |
293
+ | `--tooltip-hide-delay` | `0` | Hide delay in milliseconds |
294
+ | `--tooltip-offset` | `12` | Distance from trigger element in pixels |
295
+ | `--tooltip-arrow` | *(shown)* | Set to `none` to hide the arrow |
296
+ | `--tooltip-max-width` | `250` | Maximum tooltip width in pixels |
297
+ | `--tooltip-z-index` | `10000` | Z-index stacking order |
298
+ | `--tooltip-strict-positioning` | *(false)* | Set to `true` to disable automatic repositioning when near viewport edges |
299
+ | `--tooltip-bg` | `hsl(0 0% 20%)` | Background color |
300
+ | `--tooltip-color` | `white` | Text color |
301
+ | `--tooltip-padding` | `8px 12px` | Content padding |
302
+ | `--tooltip-radius` | `6px` | Border radius |
303
+ | `--tooltip-font-size` | `14px` | Font size |
304
+
305
+ ### Cleanup
306
+
307
+ To disconnect the observer and remove all tooltip portals:
308
+
309
+ ```typescript
310
+ import { cleanupTooltips } from 'snice';
311
+ cleanupTooltips();
312
+ ```
@@ -68,7 +68,7 @@ interface IController<T extends HTMLElement = HTMLElement> {
68
68
  6. Observers are set up
69
69
  7. Channel/response handlers are set up
70
70
  8. Event handlers are set up
71
- 9. `@snice/controller-attached` event is dispatched
71
+ 9. `controller-attached` event is dispatched
72
72
 
73
73
  ### Detachment Flow
74
74
 
@@ -78,7 +78,7 @@ interface IController<T extends HTMLElement = HTMLElement> {
78
78
  4. Channel/response handlers are cleaned up
79
79
  5. Event handlers are cleaned up
80
80
  6. Controller scope is cleaned up
81
- 7. `@snice/controller-detached` event is dispatched
81
+ 7. `controller-detached` event is dispatched
82
82
 
83
83
  ### Example with Lifecycle Logging
84
84
 
@@ -428,23 +428,12 @@ class WebSocketController implements IController {
428
428
  Listen for attachment on the element itself (the event does **not** bubble):
429
429
 
430
430
  ```typescript
431
- element.addEventListener('@snice/controller-attached', (e: CustomEvent) => {
431
+ element.addEventListener('controller-attached', (e: CustomEvent) => {
432
432
  console.log('Name:', e.detail.name); // controller name string
433
433
  console.log('Instance:', e.detail.controller); // IController instance
434
434
  });
435
435
  ```
436
436
 
437
- ### Via getController()
438
-
439
- ```typescript
440
- import { getController } from 'snice';
441
-
442
- const ctrl = getController<MyController>(element);
443
- if (ctrl) {
444
- ctrl.doSomething();
445
- }
446
- ```
447
-
448
437
  ### Auto-Cleanup
449
438
 
450
439
  The framework automatically cleans up `@on` handlers, observers, and `@respond` handlers during detach. Manual cleanup in `detach()` is only needed for resources you manage yourself (WebSockets, intervals, manual event listeners).
package/docs/elements.md CHANGED
@@ -345,7 +345,6 @@ interface PropertyOptions {
345
345
  type?: String | Number | Boolean | Array | Object | Date | BigInt | SimpleArray;
346
346
  attribute?: string | boolean; // Custom attribute name, or false to disable attribute sync
347
347
  converter?: PropertyConverter; // Custom converter
348
- hasChanged?: (value: any, oldValue: any) => boolean;
349
348
  }
350
349
  ```
351
350
 
package/docs/events.md CHANGED
@@ -381,6 +381,9 @@ interface OnOptions {
381
381
  // Timing controls
382
382
  debounce?: number; // Debounce the handler by specified milliseconds
383
383
  throttle?: number; // Throttle the handler by specified milliseconds
384
+
385
+ // Shadow DOM delegation
386
+ target?: string; // CSS selector to target specific elements within shadow root
384
387
  }
385
388
  ```
386
389
 
@@ -47,6 +47,8 @@ interface RequestOptions extends EventInit {
47
47
  discoveryTimeout?: number; // Handler discovery timeout in ms (default: 50ms)
48
48
  debounce?: number; // Debounce requests by specified ms
49
49
  throttle?: number; // Throttle requests by specified ms
50
+ // Note: `composed` is always forced to `true` (crosses shadow DOM boundaries)
51
+ // `bubbles` defaults to true, `cancelable` defaults to false
50
52
  }
51
53
 
52
54
  interface RespondOptions {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "snice",
3
- "version": "4.14.0",
3
+ "version": "4.16.0",
4
4
  "type": "module",
5
5
  "description": "Imperative TypeScript framework for building vanilla web components with decorators, differential rendering, routing, and controllers. No virtual DOM, no build complexity.",
6
6
  "main": "dist/index.cjs",