snice 4.8.0 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/adapters/react/camera-annotate.d.ts +27 -0
  2. package/adapters/react/camera-annotate.d.ts.map +1 -0
  3. package/adapters/react/camera-annotate.js +24 -0
  4. package/adapters/react/camera-annotate.js.map +1 -0
  5. package/adapters/react/camera-annotate.tsx +35 -0
  6. package/adapters/react/candlestick.d.ts +34 -0
  7. package/adapters/react/candlestick.d.ts.map +1 -0
  8. package/adapters/react/candlestick.js +24 -0
  9. package/adapters/react/candlestick.js.map +1 -0
  10. package/adapters/react/candlestick.tsx +42 -0
  11. package/adapters/react/components.d.ts +14 -0
  12. package/adapters/react/components.d.ts.map +1 -1
  13. package/adapters/react/components.js +7 -0
  14. package/adapters/react/components.js.map +1 -1
  15. package/adapters/react/components.ts +14 -0
  16. package/adapters/react/funnel.d.ts +31 -0
  17. package/adapters/react/funnel.d.ts.map +1 -0
  18. package/adapters/react/funnel.js +24 -0
  19. package/adapters/react/funnel.js.map +1 -0
  20. package/adapters/react/funnel.tsx +39 -0
  21. package/adapters/react/network-graph.d.ts +32 -0
  22. package/adapters/react/network-graph.d.ts.map +1 -0
  23. package/adapters/react/network-graph.js +24 -0
  24. package/adapters/react/network-graph.js.map +1 -0
  25. package/adapters/react/network-graph.tsx +40 -0
  26. package/adapters/react/sankey.d.ts +31 -0
  27. package/adapters/react/sankey.d.ts.map +1 -0
  28. package/adapters/react/sankey.js +24 -0
  29. package/adapters/react/sankey.js.map +1 -0
  30. package/adapters/react/sankey.tsx +39 -0
  31. package/adapters/react/time-range-picker.d.ts +33 -0
  32. package/adapters/react/time-range-picker.d.ts.map +1 -0
  33. package/adapters/react/time-range-picker.js +24 -0
  34. package/adapters/react/time-range-picker.js.map +1 -0
  35. package/adapters/react/time-range-picker.tsx +41 -0
  36. package/adapters/react/treemap.d.ts +30 -0
  37. package/adapters/react/treemap.d.ts.map +1 -0
  38. package/adapters/react/treemap.js +24 -0
  39. package/adapters/react/treemap.js.map +1 -0
  40. package/adapters/react/treemap.tsx +38 -0
  41. package/adapters/react/virtual-scroller.d.ts +1 -0
  42. package/adapters/react/virtual-scroller.d.ts.map +1 -1
  43. package/adapters/react/virtual-scroller.js +1 -1
  44. package/adapters/react/virtual-scroller.js.map +1 -1
  45. package/adapters/react/virtual-scroller.tsx +2 -1
  46. package/dist/cdn/accordion/snice-accordion.js +1 -1
  47. package/dist/cdn/accordion/snice-accordion.min.js +1 -1
  48. package/dist/cdn/alert/snice-alert.js +1 -1
  49. package/dist/cdn/alert/snice-alert.min.js +1 -1
  50. package/dist/cdn/audio-recorder/snice-audio-recorder.js +1 -1
  51. package/dist/cdn/audio-recorder/snice-audio-recorder.min.js +1 -1
  52. package/dist/cdn/avatar/snice-avatar.js +1 -1
  53. package/dist/cdn/avatar/snice-avatar.min.js +1 -1
  54. package/dist/cdn/badge/snice-badge.js +1 -1
  55. package/dist/cdn/badge/snice-badge.min.js +1 -1
  56. package/dist/cdn/banner/snice-banner.js +1 -1
  57. package/dist/cdn/banner/snice-banner.min.js +1 -1
  58. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js +2 -2
  59. package/dist/cdn/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  60. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js +13 -13
  61. package/dist/cdn/breadcrumbs/snice-breadcrumbs.min.js.map +1 -1
  62. package/dist/cdn/button/snice-button.js +1 -1
  63. package/dist/cdn/button/snice-button.min.js +1 -1
  64. package/dist/cdn/calendar/snice-calendar.js +1 -1
  65. package/dist/cdn/calendar/snice-calendar.min.js +1 -1
  66. package/dist/cdn/camera/snice-camera.js +1 -1
  67. package/dist/cdn/camera/snice-camera.min.js +1 -1
  68. package/dist/cdn/camera-annotate/README.md +27 -0
  69. package/dist/cdn/camera-annotate/snice-camera-annotate.js +730 -0
  70. package/dist/cdn/camera-annotate/snice-camera-annotate.js.map +1 -0
  71. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js +144 -0
  72. package/dist/cdn/camera-annotate/snice-camera-annotate.min.js.map +1 -0
  73. package/dist/cdn/candlestick/README.md +27 -0
  74. package/dist/cdn/candlestick/snice-candlestick.js +717 -0
  75. package/dist/cdn/candlestick/snice-candlestick.js.map +1 -0
  76. package/dist/cdn/candlestick/snice-candlestick.min.js +22 -0
  77. package/dist/cdn/candlestick/snice-candlestick.min.js.map +1 -0
  78. package/dist/cdn/card/snice-card.js +1 -1
  79. package/dist/cdn/card/snice-card.min.js +1 -1
  80. package/dist/cdn/carousel/snice-carousel.js +1 -1
  81. package/dist/cdn/carousel/snice-carousel.min.js +1 -1
  82. package/dist/cdn/chart/snice-chart.js +1 -1
  83. package/dist/cdn/chart/snice-chart.min.js +1 -1
  84. package/dist/cdn/chat/snice-chat.js +1 -1
  85. package/dist/cdn/chat/snice-chat.min.js +1 -1
  86. package/dist/cdn/checkbox/snice-checkbox.js +1 -1
  87. package/dist/cdn/checkbox/snice-checkbox.min.js +1 -1
  88. package/dist/cdn/chip/snice-chip.js +1 -1
  89. package/dist/cdn/chip/snice-chip.min.js +1 -1
  90. package/dist/cdn/code-block/snice-code-block.js +1 -1
  91. package/dist/cdn/code-block/snice-code-block.min.js +1 -1
  92. package/dist/cdn/color-display/snice-color-display.js +1 -1
  93. package/dist/cdn/color-display/snice-color-display.min.js +1 -1
  94. package/dist/cdn/color-picker/snice-color-picker.js +1 -1
  95. package/dist/cdn/color-picker/snice-color-picker.min.js +1 -1
  96. package/dist/cdn/command-palette/snice-command-palette.js +1 -1
  97. package/dist/cdn/command-palette/snice-command-palette.min.js +1 -1
  98. package/dist/cdn/date-picker/snice-date-picker.js +1 -1
  99. package/dist/cdn/date-picker/snice-date-picker.min.js +1 -1
  100. package/dist/cdn/divider/snice-divider.js +1 -1
  101. package/dist/cdn/divider/snice-divider.min.js +1 -1
  102. package/dist/cdn/doc/snice-doc.js +1 -1
  103. package/dist/cdn/doc/snice-doc.min.js +1 -1
  104. package/dist/cdn/draw/snice-draw.js +1 -1
  105. package/dist/cdn/draw/snice-draw.min.js +1 -1
  106. package/dist/cdn/drawer/snice-drawer.js +1 -1
  107. package/dist/cdn/drawer/snice-drawer.min.js +1 -1
  108. package/dist/cdn/empty-state/snice-empty-state.js +1 -1
  109. package/dist/cdn/empty-state/snice-empty-state.min.js +1 -1
  110. package/dist/cdn/file-gallery/snice-file-gallery.js +1 -1
  111. package/dist/cdn/file-gallery/snice-file-gallery.min.js +1 -1
  112. package/dist/cdn/file-upload/snice-file-upload.js +1 -1
  113. package/dist/cdn/file-upload/snice-file-upload.min.js +1 -1
  114. package/dist/cdn/funnel/README.md +27 -0
  115. package/dist/cdn/funnel/snice-funnel.js +424 -0
  116. package/dist/cdn/funnel/snice-funnel.js.map +1 -0
  117. package/dist/cdn/funnel/snice-funnel.min.js +20 -0
  118. package/dist/cdn/funnel/snice-funnel.min.js.map +1 -0
  119. package/dist/cdn/gauge/snice-gauge.js +1 -1
  120. package/dist/cdn/gauge/snice-gauge.min.js +1 -1
  121. package/dist/cdn/heatmap/snice-heatmap.js +1 -1
  122. package/dist/cdn/heatmap/snice-heatmap.min.js +1 -1
  123. package/dist/cdn/image/snice-image.js +1 -1
  124. package/dist/cdn/image/snice-image.min.js +1 -1
  125. package/dist/cdn/input/snice-input.js +1 -1
  126. package/dist/cdn/input/snice-input.min.js +1 -1
  127. package/dist/cdn/kanban/snice-kanban.js +1 -1
  128. package/dist/cdn/kanban/snice-kanban.min.js +1 -1
  129. package/dist/cdn/kpi/snice-kpi.js +1 -1
  130. package/dist/cdn/kpi/snice-kpi.min.js +1 -1
  131. package/dist/cdn/layout/README.md +2 -2
  132. package/dist/cdn/layout/snice-layout.js +23 -6
  133. package/dist/cdn/layout/snice-layout.js.map +1 -1
  134. package/dist/cdn/layout/snice-layout.min.js +2 -2
  135. package/dist/cdn/layout/snice-layout.min.js.map +1 -1
  136. package/dist/cdn/link/snice-link.js +1 -1
  137. package/dist/cdn/link/snice-link.min.js +1 -1
  138. package/dist/cdn/link-preview/snice-link-preview.js +1 -1
  139. package/dist/cdn/link-preview/snice-link-preview.min.js +1 -1
  140. package/dist/cdn/list/README.md +6 -2
  141. package/dist/cdn/list/snice-list.js +87 -10
  142. package/dist/cdn/list/snice-list.js.map +1 -1
  143. package/dist/cdn/list/snice-list.min.js +20 -6
  144. package/dist/cdn/list/snice-list.min.js.map +1 -1
  145. package/dist/cdn/location/snice-location.js +1 -1
  146. package/dist/cdn/location/snice-location.min.js +1 -1
  147. package/dist/cdn/login/snice-login.js +1 -1
  148. package/dist/cdn/login/snice-login.min.js +1 -1
  149. package/dist/cdn/masonry/snice-masonry.js +1 -1
  150. package/dist/cdn/masonry/snice-masonry.min.js +1 -1
  151. package/dist/cdn/menu/snice-menu.js +1 -1
  152. package/dist/cdn/menu/snice-menu.min.js +1 -1
  153. package/dist/cdn/modal/snice-modal.js +1 -1
  154. package/dist/cdn/modal/snice-modal.min.js +1 -1
  155. package/dist/cdn/music-player/snice-music-player.js +1 -1
  156. package/dist/cdn/music-player/snice-music-player.min.js +1 -1
  157. package/dist/cdn/nav/README.md +2 -2
  158. package/dist/cdn/nav/snice-nav.js +23 -6
  159. package/dist/cdn/nav/snice-nav.js.map +1 -1
  160. package/dist/cdn/nav/snice-nav.min.js +2 -2
  161. package/dist/cdn/nav/snice-nav.min.js.map +1 -1
  162. package/dist/cdn/network-graph/README.md +27 -0
  163. package/dist/cdn/network-graph/snice-network-graph.js +788 -0
  164. package/dist/cdn/network-graph/snice-network-graph.js.map +1 -0
  165. package/dist/cdn/network-graph/snice-network-graph.min.js +13 -0
  166. package/dist/cdn/network-graph/snice-network-graph.min.js.map +1 -0
  167. package/dist/cdn/pagination/README.md +2 -2
  168. package/dist/cdn/pagination/snice-pagination.js +13 -13
  169. package/dist/cdn/pagination/snice-pagination.js.map +1 -1
  170. package/dist/cdn/pagination/snice-pagination.min.js +14 -14
  171. package/dist/cdn/pagination/snice-pagination.min.js.map +1 -1
  172. package/dist/cdn/paint/snice-paint.js +1 -1
  173. package/dist/cdn/paint/snice-paint.min.js +1 -1
  174. package/dist/cdn/progress/snice-progress.js +1 -1
  175. package/dist/cdn/progress/snice-progress.min.js +1 -1
  176. package/dist/cdn/qr-code/snice-qr-code.js +1 -1
  177. package/dist/cdn/qr-code/snice-qr-code.min.js +1 -1
  178. package/dist/cdn/qr-reader/snice-qr-reader.js +1 -1
  179. package/dist/cdn/qr-reader/snice-qr-reader.min.js +1 -1
  180. package/dist/cdn/radio/snice-radio.js +1 -1
  181. package/dist/cdn/radio/snice-radio.min.js +1 -1
  182. package/dist/cdn/runtime/snice-runtime.esm.js +3 -3
  183. package/dist/cdn/runtime/snice-runtime.esm.js.map +1 -1
  184. package/dist/cdn/runtime/snice-runtime.esm.min.js +3 -3
  185. package/dist/cdn/runtime/snice-runtime.esm.min.js.map +1 -1
  186. package/dist/cdn/runtime/snice-runtime.js +3 -3
  187. package/dist/cdn/runtime/snice-runtime.js.map +1 -1
  188. package/dist/cdn/runtime/snice-runtime.min.js +3 -3
  189. package/dist/cdn/runtime/snice-runtime.min.js.map +1 -1
  190. package/dist/cdn/sankey/README.md +27 -0
  191. package/dist/cdn/sankey/snice-sankey.js +679 -0
  192. package/dist/cdn/sankey/snice-sankey.js.map +1 -0
  193. package/dist/cdn/sankey/snice-sankey.min.js +21 -0
  194. package/dist/cdn/sankey/snice-sankey.min.js.map +1 -0
  195. package/dist/cdn/select/snice-select.js +1 -1
  196. package/dist/cdn/select/snice-select.min.js +1 -1
  197. package/dist/cdn/skeleton/snice-skeleton.js +1 -1
  198. package/dist/cdn/skeleton/snice-skeleton.min.js +1 -1
  199. package/dist/cdn/slider/snice-slider.js +1 -1
  200. package/dist/cdn/slider/snice-slider.min.js +1 -1
  201. package/dist/cdn/sparkline/snice-sparkline.js +1 -1
  202. package/dist/cdn/sparkline/snice-sparkline.min.js +1 -1
  203. package/dist/cdn/spinner/snice-spinner.js +1 -1
  204. package/dist/cdn/spinner/snice-spinner.min.js +1 -1
  205. package/dist/cdn/split-pane/snice-split-pane.js +1 -1
  206. package/dist/cdn/split-pane/snice-split-pane.min.js +1 -1
  207. package/dist/cdn/stepper/README.md +6 -2
  208. package/dist/cdn/stepper/snice-stepper.js +77 -10
  209. package/dist/cdn/stepper/snice-stepper.js.map +1 -1
  210. package/dist/cdn/stepper/snice-stepper.min.js +13 -9
  211. package/dist/cdn/stepper/snice-stepper.min.js.map +1 -1
  212. package/dist/cdn/switch/snice-switch.js +1 -1
  213. package/dist/cdn/switch/snice-switch.min.js +1 -1
  214. package/dist/cdn/table/snice-table.js +1 -1
  215. package/dist/cdn/table/snice-table.min.js +1 -1
  216. package/dist/cdn/tabs/snice-tabs.js +1 -1
  217. package/dist/cdn/tabs/snice-tabs.min.js +1 -1
  218. package/dist/cdn/terminal/snice-terminal.js +1 -1
  219. package/dist/cdn/terminal/snice-terminal.min.js +1 -1
  220. package/dist/cdn/textarea/snice-textarea.js +1 -1
  221. package/dist/cdn/textarea/snice-textarea.min.js +1 -1
  222. package/dist/cdn/time-range-picker/README.md +27 -0
  223. package/dist/cdn/time-range-picker/snice-time-range-picker.js +635 -0
  224. package/dist/cdn/time-range-picker/snice-time-range-picker.js.map +1 -0
  225. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js +34 -0
  226. package/dist/cdn/time-range-picker/snice-time-range-picker.min.js.map +1 -0
  227. package/dist/cdn/timeline/snice-timeline.js +1 -1
  228. package/dist/cdn/timeline/snice-timeline.min.js +1 -1
  229. package/dist/cdn/timer/snice-timer.js +1 -1
  230. package/dist/cdn/timer/snice-timer.min.js +1 -1
  231. package/dist/cdn/toast/snice-toast.js +1 -1
  232. package/dist/cdn/toast/snice-toast.min.js +1 -1
  233. package/dist/cdn/tooltip/snice-tooltip.js +1 -1
  234. package/dist/cdn/tooltip/snice-tooltip.min.js +1 -1
  235. package/dist/cdn/tree/README.md +5 -1
  236. package/dist/cdn/tree/snice-tree.js +4 -8
  237. package/dist/cdn/tree/snice-tree.js.map +1 -1
  238. package/dist/cdn/tree/snice-tree.min.js +5 -5
  239. package/dist/cdn/tree/snice-tree.min.js.map +1 -1
  240. package/dist/cdn/treemap/README.md +27 -0
  241. package/dist/cdn/treemap/snice-treemap.js +522 -0
  242. package/dist/cdn/treemap/snice-treemap.js.map +1 -0
  243. package/dist/cdn/treemap/snice-treemap.min.js +14 -0
  244. package/dist/cdn/treemap/snice-treemap.min.js.map +1 -0
  245. package/dist/cdn/virtual-scroller/README.md +2 -2
  246. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js +47 -16
  247. package/dist/cdn/virtual-scroller/snice-virtual-scroller.js.map +1 -1
  248. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js +9 -9
  249. package/dist/cdn/virtual-scroller/snice-virtual-scroller.min.js.map +1 -1
  250. package/dist/components/breadcrumbs/snice-breadcrumbs.js +1 -1
  251. package/dist/components/breadcrumbs/snice-breadcrumbs.js.map +1 -1
  252. package/dist/components/camera-annotate/snice-camera-annotate.d.ts +68 -0
  253. package/dist/components/camera-annotate/snice-camera-annotate.js +663 -0
  254. package/dist/components/camera-annotate/snice-camera-annotate.js.map +1 -0
  255. package/dist/components/camera-annotate/snice-camera-annotate.types.d.ts +50 -0
  256. package/dist/components/candlestick/snice-candlestick.d.ts +78 -0
  257. package/dist/components/candlestick/snice-candlestick.js +650 -0
  258. package/dist/components/candlestick/snice-candlestick.js.map +1 -0
  259. package/dist/components/candlestick/snice-candlestick.types.d.ts +40 -0
  260. package/dist/components/funnel/snice-funnel.d.ts +37 -0
  261. package/dist/components/funnel/snice-funnel.js +357 -0
  262. package/dist/components/funnel/snice-funnel.js.map +1 -0
  263. package/dist/components/funnel/snice-funnel.types.d.ts +28 -0
  264. package/dist/components/list/snice-list-item.d.ts +2 -0
  265. package/dist/components/list/snice-list-item.js +20 -2
  266. package/dist/components/list/snice-list-item.js.map +1 -1
  267. package/dist/components/nav/snice-nav.js +22 -5
  268. package/dist/components/nav/snice-nav.js.map +1 -1
  269. package/dist/components/network-graph/snice-network-graph.d.ts +80 -0
  270. package/dist/components/network-graph/snice-network-graph.js +721 -0
  271. package/dist/components/network-graph/snice-network-graph.js.map +1 -0
  272. package/dist/components/network-graph/snice-network-graph.types.d.ts +49 -0
  273. package/dist/components/pagination/snice-pagination.js +12 -12
  274. package/dist/components/sankey/snice-sankey.d.ts +46 -0
  275. package/dist/components/sankey/snice-sankey.js +612 -0
  276. package/dist/components/sankey/snice-sankey.js.map +1 -0
  277. package/dist/components/sankey/snice-sankey.types.d.ts +59 -0
  278. package/dist/components/stepper/snice-stepper.js +9 -3
  279. package/dist/components/stepper/snice-stepper.js.map +1 -1
  280. package/dist/components/time-range-picker/snice-time-range-picker.d.ts +67 -0
  281. package/dist/components/time-range-picker/snice-time-range-picker.js +568 -0
  282. package/dist/components/time-range-picker/snice-time-range-picker.js.map +1 -0
  283. package/dist/components/time-range-picker/snice-time-range-picker.types.d.ts +39 -0
  284. package/dist/components/treemap/snice-treemap.d.ts +49 -0
  285. package/dist/components/treemap/snice-treemap.js +455 -0
  286. package/dist/components/treemap/snice-treemap.js.map +1 -0
  287. package/dist/components/treemap/snice-treemap.types.d.ts +42 -0
  288. package/dist/components/virtual-scroller/snice-virtual-scroller.d.ts +5 -0
  289. package/dist/components/virtual-scroller/snice-virtual-scroller.js +47 -16
  290. package/dist/components/virtual-scroller/snice-virtual-scroller.js.map +1 -1
  291. package/dist/index.cjs +1 -1
  292. package/dist/index.cjs.map +1 -1
  293. package/dist/index.esm.js +1 -1
  294. package/dist/index.esm.js.map +1 -1
  295. package/dist/index.iife.js +1 -1
  296. package/dist/index.iife.js.map +1 -1
  297. package/dist/symbols.cjs +1 -1
  298. package/dist/symbols.esm.js +1 -1
  299. package/dist/transitions.cjs +1 -1
  300. package/dist/transitions.esm.js +1 -1
  301. package/docs/ai/components/camera-annotate.md +82 -0
  302. package/docs/ai/components/candlestick.md +79 -0
  303. package/docs/ai/components/funnel.md +86 -0
  304. package/docs/ai/components/network-graph.md +87 -0
  305. package/docs/ai/components/sankey.md +63 -0
  306. package/docs/ai/components/time-range-picker.md +78 -0
  307. package/docs/ai/components/treemap.md +78 -0
  308. package/docs/components/camera-annotate.md +186 -0
  309. package/docs/components/candlestick.md +196 -0
  310. package/docs/components/funnel.md +191 -0
  311. package/docs/components/network-graph.md +215 -0
  312. package/docs/components/sankey.md +201 -0
  313. package/docs/components/time-range-picker.md +213 -0
  314. package/docs/components/treemap.md +198 -0
  315. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ export type TimeRangeGranularity = 5 | 15 | 30 | 60;
2
+ export type TimeFormat = '12h' | '24h';
3
+ export interface TimeRange {
4
+ start: string;
5
+ end: string;
6
+ }
7
+ export interface SniceTimeRangePickerElement extends HTMLElement {
8
+ granularity: TimeRangeGranularity;
9
+ startTime: string;
10
+ endTime: string;
11
+ value: string;
12
+ disabledRanges: string;
13
+ format: TimeFormat;
14
+ multiple: boolean;
15
+ readonly: boolean;
16
+ disabled: boolean;
17
+ getSelectedRanges(): TimeRange[];
18
+ setSelectedRanges(ranges: TimeRange[]): void;
19
+ clearSelection(): void;
20
+ isSlotDisabled(time: string): boolean;
21
+ }
22
+ export interface TimeRangeChangeDetail {
23
+ ranges: TimeRange[];
24
+ component: SniceTimeRangePickerElement;
25
+ }
26
+ export interface TimeRangeSelectDetail {
27
+ start: string;
28
+ component: SniceTimeRangePickerElement;
29
+ }
30
+ export interface TimeRangeCompleteDetail {
31
+ range: TimeRange;
32
+ ranges: TimeRange[];
33
+ component: SniceTimeRangePickerElement;
34
+ }
35
+ export interface SniceTimeRangePickerEventMap {
36
+ 'time-range-change': CustomEvent<TimeRangeChangeDetail>;
37
+ 'time-range-select': CustomEvent<TimeRangeSelectDetail>;
38
+ 'time-range-complete': CustomEvent<TimeRangeCompleteDetail>;
39
+ }
@@ -0,0 +1,49 @@
1
+ import type { TreemapNode, TreemapColorScheme, SniceTreemapElement } from './snice-treemap.types';
2
+ export declare class SniceTreemap extends HTMLElement implements SniceTreemapElement {
3
+ data: TreemapNode;
4
+ showLabels: boolean;
5
+ showValues: boolean;
6
+ colorScheme: TreemapColorScheme;
7
+ padding: number;
8
+ animation: boolean;
9
+ private containerEl?;
10
+ private chartEl?;
11
+ private tooltipEl?;
12
+ private breadcrumbsEl?;
13
+ private _drillPathState;
14
+ private _tooltipText;
15
+ private _tooltipX;
16
+ private _tooltipY;
17
+ private _tooltipVisible;
18
+ private _width;
19
+ private _height;
20
+ private _resizeObserver;
21
+ private _rects;
22
+ private _cachedData;
23
+ get drillPath(): TreemapNode[];
24
+ private emitClick;
25
+ private emitHover;
26
+ private emitDrill;
27
+ init(): void;
28
+ onDataChange(): void;
29
+ onDisplayChange(): void;
30
+ cleanup(): void;
31
+ drillDown(node: TreemapNode): void;
32
+ drillUp(): void;
33
+ drillToRoot(): void;
34
+ private getCurrentNode;
35
+ private getColor;
36
+ private computeRects;
37
+ private canFitLabel;
38
+ private canFitValue;
39
+ private getLabelFontSize;
40
+ /** Rebuild the entire SVG chart via innerHTML on the chart container */
41
+ private rebuildChart;
42
+ private buildRectGroup;
43
+ /** Update tooltip element directly */
44
+ private updateTooltipDOM;
45
+ /** Rebuild breadcrumbs via innerHTML */
46
+ private rebuildBreadcrumbs;
47
+ renderContent(): import("snice").TemplateResult;
48
+ componentStyles(): import("snice").CSSResult;
49
+ }
@@ -0,0 +1,455 @@
1
+ import { __runInitializers, __esDecorate } from 'tslib';
2
+ import { element, property, query, dispatch, ready, watch, dispose, render, styles, html, css } from 'snice';
3
+
4
+ var cssContent = ":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.treemap{position:relative;width:100%;overflow:hidden}.treemap__svg{display:block;width:100%;height:100%}.treemap__rect{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.treemap__rect:hover{opacity:.85}.treemap__rect-stroke{fill:none;stroke:var(--snice-color-background,rgb(255 255 255));stroke-width:2px;pointer-events:none}.treemap__label{fill:rgb(255 255 255);font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);pointer-events:none;text-anchor:middle;dominant-baseline:central}.treemap__value{fill:rgb(255 255 255 / 0.85);font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);pointer-events:none;text-anchor:middle;dominant-baseline:central;font-size:.75rem}.treemap__breadcrumbs{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-xs,.5rem) 0;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82));min-height:2rem}.treemap__breadcrumb{background:0 0;border:none;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);font-family:inherit;font-size:inherit;color:var(--snice-color-primary,rgb(37 99 235));cursor:pointer;border-radius:var(--snice-border-radius-md,.25rem);transition:background var(--snice-transition-fast, 150ms) ease}.treemap__breadcrumb:hover{background:var(--snice-color-background-element,rgb(252 251 249))}.treemap__breadcrumb--current{color:var(--snice-color-text,rgb(23 23 23));cursor:default;font-weight:var(--snice-font-weight-semibold,600)}.treemap__breadcrumb--current:hover{background:0 0}.treemap__separator{color:var(--snice-color-text-tertiary,rgb(115 115 115));user-select:none}.treemap__tooltip{position:absolute;pointer-events:none;background:var(--snice-color-text,rgb(23 23 23));color:var(--snice-color-text-inverse,rgb(250 250 250));padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:.75rem;white-space:nowrap;z-index:10;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1));transform:translate(-50%,-100%);margin-top:-.5rem}.treemap__tooltip--visible{opacity:1}:host([animation]) .treemap__rect{transition:x var(--snice-transition-medium, 250ms) ease,y var(--snice-transition-medium, 250ms) ease,width var(--snice-transition-medium, 250ms) ease,height var(--snice-transition-medium, 250ms) ease,opacity var(--snice-transition-fast, 150ms) ease}";
5
+
6
+ const COLOR_SCHEMES = {
7
+ default: ['#4e79a7', '#f28e2b', '#e15759', '#76b7b2', '#59a14f', '#edc948', '#b07aa1', '#ff9da7', '#9c755f', '#bab0ac'],
8
+ blue: ['#08519c', '#3182bd', '#6baed6', '#9ecae1', '#2171b5', '#4292c6', '#6baed6', '#c6dbef'],
9
+ green: ['#006d2c', '#31a354', '#74c476', '#a1d99b', '#238b45', '#41ab5d', '#74c476', '#c7e9c0'],
10
+ purple: ['#54278f', '#756bb1', '#9e9ac8', '#bcbddc', '#6a51a3', '#807dba', '#9e9ac8', '#dadaeb'],
11
+ orange: ['#d94701', '#fd8d3c', '#fdae6b', '#fdd0a2', '#e6550d', '#f16913', '#fd8d3c', '#fee6ce'],
12
+ warm: ['#b30000', '#e34a33', '#fc8d59', '#fdcc8a', '#d7301f', '#ef6548', '#fc8d59', '#fef0d9'],
13
+ cool: ['#016c59', '#1c9099', '#67a9cf', '#a6bddb', '#02818a', '#3690c0', '#67a9cf', '#d0d1e6'],
14
+ rainbow: ['#e41a1c', '#ff7f00', '#ffff33', '#4daf4a', '#377eb8', '#984ea3', '#a65628', '#f781bf'],
15
+ };
16
+ function sumValues(node) {
17
+ if (node.children && node.children.length > 0) {
18
+ return node.children.reduce((sum, child) => sum + sumValues(child), 0);
19
+ }
20
+ return Math.max(0, node.value);
21
+ }
22
+ function squarify(children, x, y, w, h, depth, colorOffset, padding) {
23
+ const totalValue = children.reduce((sum, c) => sum + sumValues(c), 0);
24
+ if (totalValue <= 0 || w <= 0 || h <= 0)
25
+ return [];
26
+ const sorted = [...children].sort((a, b) => sumValues(b) - sumValues(a));
27
+ const rects = [];
28
+ let remaining = sorted.slice();
29
+ let cx = x;
30
+ let cy = y;
31
+ let cw = w;
32
+ let ch = h;
33
+ while (remaining.length > 0) {
34
+ const isWide = cw >= ch;
35
+ const side = isWide ? ch : cw;
36
+ const totalRemaining = remaining.reduce((s, c) => s + sumValues(c), 0);
37
+ const row = [];
38
+ let rowSum = 0;
39
+ let worstRatio = Infinity;
40
+ for (const child of remaining) {
41
+ const childVal = sumValues(child);
42
+ const testSum = rowSum + childVal;
43
+ const testRow = [...row, child];
44
+ const rowArea = (testSum / totalRemaining) * (cw * ch);
45
+ const rowSide = rowArea / side;
46
+ let testWorst = 0;
47
+ for (const r of testRow) {
48
+ const rArea = (sumValues(r) / testSum) * rowArea;
49
+ const rSide = rArea / rowSide;
50
+ const ratio = Math.max(rSide / rowSide, rowSide / rSide);
51
+ testWorst = Math.max(testWorst, ratio);
52
+ }
53
+ if (testWorst <= worstRatio || row.length === 0) {
54
+ row.push(child);
55
+ rowSum = testSum;
56
+ worstRatio = testWorst;
57
+ }
58
+ else {
59
+ break;
60
+ }
61
+ }
62
+ const rowArea = (rowSum / totalRemaining) * (cw * ch);
63
+ const rowSide = side > 0 ? rowArea / side : 0;
64
+ let offset = 0;
65
+ for (let i = 0; i < row.length; i++) {
66
+ const node = row[i];
67
+ const nodeVal = sumValues(node);
68
+ const nodeSize = rowSum > 0 ? (nodeVal / rowSum) * side : 0;
69
+ let rx, ry, rw, rh;
70
+ if (isWide) {
71
+ rx = cx;
72
+ ry = cy + offset;
73
+ rw = rowSide;
74
+ rh = nodeSize;
75
+ }
76
+ else {
77
+ rx = cx + offset;
78
+ ry = cy;
79
+ rw = nodeSize;
80
+ rh = rowSide;
81
+ }
82
+ const colorIndex = colorOffset + rects.length + i;
83
+ const px = Math.min(padding, rw / 4);
84
+ const py = Math.min(padding, rh / 4);
85
+ rects.push({
86
+ x: rx + px,
87
+ y: ry + py,
88
+ width: Math.max(0, rw - px * 2),
89
+ height: Math.max(0, rh - py * 2),
90
+ node,
91
+ depth,
92
+ colorIndex,
93
+ });
94
+ offset += nodeSize;
95
+ }
96
+ if (isWide) {
97
+ cx += rowSide;
98
+ cw -= rowSide;
99
+ }
100
+ else {
101
+ cy += rowSide;
102
+ ch -= rowSide;
103
+ }
104
+ remaining = remaining.slice(row.length);
105
+ }
106
+ return rects;
107
+ }
108
+ let SniceTreemap = (() => {
109
+ let _classDecorators = [element('snice-treemap')];
110
+ let _classDescriptor;
111
+ let _classExtraInitializers = [];
112
+ let _classThis;
113
+ let _classSuper = HTMLElement;
114
+ let _instanceExtraInitializers = [];
115
+ let _data_decorators;
116
+ let _data_initializers = [];
117
+ let _data_extraInitializers = [];
118
+ let _showLabels_decorators;
119
+ let _showLabels_initializers = [];
120
+ let _showLabels_extraInitializers = [];
121
+ let _showValues_decorators;
122
+ let _showValues_initializers = [];
123
+ let _showValues_extraInitializers = [];
124
+ let _colorScheme_decorators;
125
+ let _colorScheme_initializers = [];
126
+ let _colorScheme_extraInitializers = [];
127
+ let _padding_decorators;
128
+ let _padding_initializers = [];
129
+ let _padding_extraInitializers = [];
130
+ let _animation_decorators;
131
+ let _animation_initializers = [];
132
+ let _animation_extraInitializers = [];
133
+ let _containerEl_decorators;
134
+ let _containerEl_initializers = [];
135
+ let _containerEl_extraInitializers = [];
136
+ let _chartEl_decorators;
137
+ let _chartEl_initializers = [];
138
+ let _chartEl_extraInitializers = [];
139
+ let _tooltipEl_decorators;
140
+ let _tooltipEl_initializers = [];
141
+ let _tooltipEl_extraInitializers = [];
142
+ let _breadcrumbsEl_decorators;
143
+ let _breadcrumbsEl_initializers = [];
144
+ let _breadcrumbsEl_extraInitializers = [];
145
+ let _emitClick_decorators;
146
+ let _emitHover_decorators;
147
+ let _emitDrill_decorators;
148
+ let _init_decorators;
149
+ let _onDataChange_decorators;
150
+ let _onDisplayChange_decorators;
151
+ let _cleanup_decorators;
152
+ let _renderContent_decorators;
153
+ let _componentStyles_decorators;
154
+ (class extends _classSuper {
155
+ static { _classThis = this; }
156
+ constructor() {
157
+ super(...arguments);
158
+ this.data = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _data_initializers, { label: '', value: 0 }));
159
+ this.showLabels = (__runInitializers(this, _data_extraInitializers), __runInitializers(this, _showLabels_initializers, true));
160
+ this.showValues = (__runInitializers(this, _showLabels_extraInitializers), __runInitializers(this, _showValues_initializers, false));
161
+ this.colorScheme = (__runInitializers(this, _showValues_extraInitializers), __runInitializers(this, _colorScheme_initializers, 'default'));
162
+ this.padding = (__runInitializers(this, _colorScheme_extraInitializers), __runInitializers(this, _padding_initializers, 2));
163
+ this.animation = (__runInitializers(this, _padding_extraInitializers), __runInitializers(this, _animation_initializers, true));
164
+ this.containerEl = (__runInitializers(this, _animation_extraInitializers), __runInitializers(this, _containerEl_initializers, void 0));
165
+ this.chartEl = (__runInitializers(this, _containerEl_extraInitializers), __runInitializers(this, _chartEl_initializers, void 0));
166
+ this.tooltipEl = (__runInitializers(this, _chartEl_extraInitializers), __runInitializers(this, _tooltipEl_initializers, void 0));
167
+ this.breadcrumbsEl = (__runInitializers(this, _tooltipEl_extraInitializers), __runInitializers(this, _breadcrumbsEl_initializers, void 0));
168
+ // Plain private fields — no @property, no re-renders
169
+ this._drillPathState = (__runInitializers(this, _breadcrumbsEl_extraInitializers), []);
170
+ this._tooltipText = '';
171
+ this._tooltipX = 0;
172
+ this._tooltipY = 0;
173
+ this._tooltipVisible = false;
174
+ this._width = 600;
175
+ this._height = 400;
176
+ this._resizeObserver = null;
177
+ this._rects = [];
178
+ this._cachedData = { label: '', value: 0 };
179
+ }
180
+ static {
181
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
182
+ _data_decorators = [property({ type: Object, attribute: false })];
183
+ _showLabels_decorators = [property({ type: Boolean, attribute: 'show-labels' })];
184
+ _showValues_decorators = [property({ type: Boolean, attribute: 'show-values' })];
185
+ _colorScheme_decorators = [property({ attribute: 'color-scheme' })];
186
+ _padding_decorators = [property({ type: Number })];
187
+ _animation_decorators = [property({ type: Boolean })];
188
+ _containerEl_decorators = [query('.treemap')];
189
+ _chartEl_decorators = [query('.treemap__chart')];
190
+ _tooltipEl_decorators = [query('.treemap__tooltip')];
191
+ _breadcrumbsEl_decorators = [query('.treemap__breadcrumbs')];
192
+ _emitClick_decorators = [dispatch('treemap-click', { bubbles: true, composed: true })];
193
+ _emitHover_decorators = [dispatch('treemap-hover', { bubbles: true, composed: true })];
194
+ _emitDrill_decorators = [dispatch('treemap-drill', { bubbles: true, composed: true })];
195
+ _init_decorators = [ready()];
196
+ _onDataChange_decorators = [watch('data')];
197
+ _onDisplayChange_decorators = [watch('showLabels', 'showValues', 'colorScheme', 'padding', 'animation')];
198
+ _cleanup_decorators = [dispose()];
199
+ _renderContent_decorators = [render({ once: true })];
200
+ _componentStyles_decorators = [styles()];
201
+ __esDecorate(this, null, _emitClick_decorators, { kind: "method", name: "emitClick", static: false, private: false, access: { has: obj => "emitClick" in obj, get: obj => obj.emitClick }, metadata: _metadata }, null, _instanceExtraInitializers);
202
+ __esDecorate(this, null, _emitHover_decorators, { kind: "method", name: "emitHover", static: false, private: false, access: { has: obj => "emitHover" in obj, get: obj => obj.emitHover }, metadata: _metadata }, null, _instanceExtraInitializers);
203
+ __esDecorate(this, null, _emitDrill_decorators, { kind: "method", name: "emitDrill", static: false, private: false, access: { has: obj => "emitDrill" in obj, get: obj => obj.emitDrill }, metadata: _metadata }, null, _instanceExtraInitializers);
204
+ __esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
205
+ __esDecorate(this, null, _onDataChange_decorators, { kind: "method", name: "onDataChange", static: false, private: false, access: { has: obj => "onDataChange" in obj, get: obj => obj.onDataChange }, metadata: _metadata }, null, _instanceExtraInitializers);
206
+ __esDecorate(this, null, _onDisplayChange_decorators, { kind: "method", name: "onDisplayChange", static: false, private: false, access: { has: obj => "onDisplayChange" in obj, get: obj => obj.onDisplayChange }, metadata: _metadata }, null, _instanceExtraInitializers);
207
+ __esDecorate(this, null, _cleanup_decorators, { kind: "method", name: "cleanup", static: false, private: false, access: { has: obj => "cleanup" in obj, get: obj => obj.cleanup }, metadata: _metadata }, null, _instanceExtraInitializers);
208
+ __esDecorate(this, null, _renderContent_decorators, { kind: "method", name: "renderContent", static: false, private: false, access: { has: obj => "renderContent" in obj, get: obj => obj.renderContent }, metadata: _metadata }, null, _instanceExtraInitializers);
209
+ __esDecorate(this, null, _componentStyles_decorators, { kind: "method", name: "componentStyles", static: false, private: false, access: { has: obj => "componentStyles" in obj, get: obj => obj.componentStyles }, metadata: _metadata }, null, _instanceExtraInitializers);
210
+ __esDecorate(null, null, _data_decorators, { kind: "field", name: "data", static: false, private: false, access: { has: obj => "data" in obj, get: obj => obj.data, set: (obj, value) => { obj.data = value; } }, metadata: _metadata }, _data_initializers, _data_extraInitializers);
211
+ __esDecorate(null, null, _showLabels_decorators, { kind: "field", name: "showLabels", static: false, private: false, access: { has: obj => "showLabels" in obj, get: obj => obj.showLabels, set: (obj, value) => { obj.showLabels = value; } }, metadata: _metadata }, _showLabels_initializers, _showLabels_extraInitializers);
212
+ __esDecorate(null, null, _showValues_decorators, { kind: "field", name: "showValues", static: false, private: false, access: { has: obj => "showValues" in obj, get: obj => obj.showValues, set: (obj, value) => { obj.showValues = value; } }, metadata: _metadata }, _showValues_initializers, _showValues_extraInitializers);
213
+ __esDecorate(null, null, _colorScheme_decorators, { kind: "field", name: "colorScheme", static: false, private: false, access: { has: obj => "colorScheme" in obj, get: obj => obj.colorScheme, set: (obj, value) => { obj.colorScheme = value; } }, metadata: _metadata }, _colorScheme_initializers, _colorScheme_extraInitializers);
214
+ __esDecorate(null, null, _padding_decorators, { kind: "field", name: "padding", static: false, private: false, access: { has: obj => "padding" in obj, get: obj => obj.padding, set: (obj, value) => { obj.padding = value; } }, metadata: _metadata }, _padding_initializers, _padding_extraInitializers);
215
+ __esDecorate(null, null, _animation_decorators, { kind: "field", name: "animation", static: false, private: false, access: { has: obj => "animation" in obj, get: obj => obj.animation, set: (obj, value) => { obj.animation = value; } }, metadata: _metadata }, _animation_initializers, _animation_extraInitializers);
216
+ __esDecorate(null, null, _containerEl_decorators, { kind: "field", name: "containerEl", static: false, private: false, access: { has: obj => "containerEl" in obj, get: obj => obj.containerEl, set: (obj, value) => { obj.containerEl = value; } }, metadata: _metadata }, _containerEl_initializers, _containerEl_extraInitializers);
217
+ __esDecorate(null, null, _chartEl_decorators, { kind: "field", name: "chartEl", static: false, private: false, access: { has: obj => "chartEl" in obj, get: obj => obj.chartEl, set: (obj, value) => { obj.chartEl = value; } }, metadata: _metadata }, _chartEl_initializers, _chartEl_extraInitializers);
218
+ __esDecorate(null, null, _tooltipEl_decorators, { kind: "field", name: "tooltipEl", static: false, private: false, access: { has: obj => "tooltipEl" in obj, get: obj => obj.tooltipEl, set: (obj, value) => { obj.tooltipEl = value; } }, metadata: _metadata }, _tooltipEl_initializers, _tooltipEl_extraInitializers);
219
+ __esDecorate(null, null, _breadcrumbsEl_decorators, { kind: "field", name: "breadcrumbsEl", static: false, private: false, access: { has: obj => "breadcrumbsEl" in obj, get: obj => obj.breadcrumbsEl, set: (obj, value) => { obj.breadcrumbsEl = value; } }, metadata: _metadata }, _breadcrumbsEl_initializers, _breadcrumbsEl_extraInitializers);
220
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
221
+ _classThis = _classDescriptor.value;
222
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
223
+ __runInitializers(_classThis, _classExtraInitializers);
224
+ }
225
+ get drillPath() {
226
+ return this._drillPathState;
227
+ }
228
+ emitClick(node, depth) {
229
+ return { node, depth };
230
+ }
231
+ emitHover(detail) {
232
+ return detail;
233
+ }
234
+ emitDrill(node, path) {
235
+ return { node, path };
236
+ }
237
+ init() {
238
+ this._cachedData = this.data;
239
+ this._resizeObserver = new ResizeObserver((entries) => {
240
+ for (const entry of entries) {
241
+ const cr = entry.contentRect;
242
+ if (cr.width > 0 && cr.height > 0) {
243
+ this._width = cr.width;
244
+ this._height = cr.height;
245
+ }
246
+ else if (cr.width > 0) {
247
+ this._width = cr.width;
248
+ this._height = cr.width * 0.667;
249
+ }
250
+ }
251
+ this.rebuildChart();
252
+ });
253
+ this._resizeObserver.observe(this);
254
+ this.rebuildChart();
255
+ }
256
+ onDataChange() {
257
+ this._cachedData = this.data;
258
+ this._drillPathState = [];
259
+ this.rebuildChart();
260
+ }
261
+ onDisplayChange() {
262
+ this.rebuildChart();
263
+ }
264
+ cleanup() {
265
+ this._resizeObserver?.disconnect();
266
+ this._resizeObserver = null;
267
+ }
268
+ drillDown(node) {
269
+ if (node.children && node.children.length > 0) {
270
+ this._drillPathState = [...this._drillPathState, node];
271
+ this.emitDrill(node, this._drillPathState);
272
+ this.rebuildChart();
273
+ }
274
+ }
275
+ drillUp() {
276
+ if (this._drillPathState.length > 0) {
277
+ this._drillPathState = this._drillPathState.slice(0, -1);
278
+ const current = this._drillPathState.length > 0
279
+ ? this._drillPathState[this._drillPathState.length - 1]
280
+ : this._cachedData;
281
+ this.emitDrill(current, this._drillPathState);
282
+ this.rebuildChart();
283
+ }
284
+ }
285
+ drillToRoot() {
286
+ this._drillPathState = [];
287
+ this.emitDrill(this._cachedData, []);
288
+ this.rebuildChart();
289
+ }
290
+ getCurrentNode() {
291
+ if (this._drillPathState.length > 0) {
292
+ return this._drillPathState[this._drillPathState.length - 1];
293
+ }
294
+ return this._cachedData;
295
+ }
296
+ getColor(index) {
297
+ const colors = COLOR_SCHEMES[this.colorScheme] || COLOR_SCHEMES.default;
298
+ return colors[index % colors.length];
299
+ }
300
+ computeRects() {
301
+ const current = this.getCurrentNode();
302
+ const children = current.children;
303
+ if (!children || children.length === 0)
304
+ return [];
305
+ return squarify(children, 0, 0, this._width, this._height, 0, 0, this.padding);
306
+ }
307
+ canFitLabel(rect) {
308
+ return rect.width > 30 && rect.height > 16;
309
+ }
310
+ canFitValue(rect) {
311
+ return rect.width > 30 && rect.height > 30;
312
+ }
313
+ getLabelFontSize(rect) {
314
+ const maxByWidth = rect.width / 8;
315
+ const maxByHeight = rect.height / 3;
316
+ return Math.min(Math.max(Math.min(maxByWidth, maxByHeight), 8), 16);
317
+ }
318
+ /** Rebuild the entire SVG chart via innerHTML on the chart container */
319
+ rebuildChart() {
320
+ if (!this.chartEl) {
321
+ requestAnimationFrame(() => this.rebuildChart());
322
+ return;
323
+ }
324
+ this._rects = this.computeRects();
325
+ let svg = '';
326
+ svg += `<svg class="treemap__svg" viewBox="0 0 ${this._width} ${this._height}" preserveAspectRatio="none">`;
327
+ for (let i = 0; i < this._rects.length; i++) {
328
+ svg += this.buildRectGroup(this._rects[i], i);
329
+ }
330
+ svg += '</svg>';
331
+ this.chartEl.innerHTML = svg;
332
+ // Attach event listeners to rects
333
+ const rectEls = this.chartEl.querySelectorAll('.treemap__rect');
334
+ rectEls.forEach((el) => {
335
+ const index = Number(el.dataset.index);
336
+ const rect = this._rects[index];
337
+ if (!rect)
338
+ return;
339
+ el.addEventListener('click', (e) => {
340
+ e.stopPropagation();
341
+ this.emitClick(rect.node, rect.depth);
342
+ if (rect.node.children && rect.node.children.length > 0) {
343
+ this.drillDown(rect.node);
344
+ }
345
+ });
346
+ el.addEventListener('mouseenter', () => {
347
+ this._tooltipText = `${rect.node.label}: ${sumValues(rect.node).toLocaleString()}`;
348
+ this._tooltipX = rect.x + rect.width / 2;
349
+ this._tooltipY = rect.y;
350
+ this._tooltipVisible = true;
351
+ this.updateTooltipDOM();
352
+ this.emitHover({ node: rect.node, depth: rect.depth });
353
+ });
354
+ el.addEventListener('mouseleave', () => {
355
+ this._tooltipVisible = false;
356
+ this.updateTooltipDOM();
357
+ this.emitHover(null);
358
+ });
359
+ });
360
+ this.rebuildBreadcrumbs();
361
+ }
362
+ buildRectGroup(rect, index) {
363
+ const color = rect.node.color || this.getColor(rect.colorIndex);
364
+ const showLabel = this.showLabels && this.canFitLabel(rect);
365
+ const showValue = this.showValues && this.canFitValue(rect);
366
+ const fontSize = this.getLabelFontSize(rect);
367
+ const cx = rect.x + rect.width / 2;
368
+ const labelY = showValue ? rect.y + rect.height / 2 - fontSize * 0.4 : rect.y + rect.height / 2;
369
+ const valueY = showLabel ? rect.y + rect.height / 2 + fontSize * 0.8 : rect.y + rect.height / 2;
370
+ let parts = '';
371
+ parts += `<rect class="treemap__rect" data-index="${index}" x="${rect.x}" y="${rect.y}" width="${rect.width}" height="${rect.height}" fill="${color}" />`;
372
+ parts += `<rect class="treemap__rect-stroke" x="${rect.x}" y="${rect.y}" width="${rect.width}" height="${rect.height}" />`;
373
+ if (showLabel) {
374
+ parts += `<text class="treemap__label" x="${cx}" y="${labelY}" style="font-size: ${fontSize}px">${rect.node.label}</text>`;
375
+ }
376
+ if (showValue) {
377
+ parts += `<text class="treemap__value" x="${cx}" y="${valueY}">${sumValues(rect.node).toLocaleString()}</text>`;
378
+ }
379
+ return parts;
380
+ }
381
+ /** Update tooltip element directly */
382
+ updateTooltipDOM() {
383
+ const tooltip = this.tooltipEl;
384
+ if (!tooltip)
385
+ return;
386
+ if (!this._tooltipVisible) {
387
+ tooltip.classList.remove('treemap__tooltip--visible');
388
+ return;
389
+ }
390
+ const tooltipLeft = `${(this._tooltipX / this._width) * 100}%`;
391
+ const tooltipTop = `${(this._tooltipY / this._height) * 100}%`;
392
+ tooltip.style.left = tooltipLeft;
393
+ tooltip.style.top = tooltipTop;
394
+ tooltip.textContent = this._tooltipText;
395
+ tooltip.classList.add('treemap__tooltip--visible');
396
+ }
397
+ /** Rebuild breadcrumbs via innerHTML */
398
+ rebuildBreadcrumbs() {
399
+ const el = this.breadcrumbsEl;
400
+ if (!el)
401
+ return;
402
+ if (this._drillPathState.length === 0) {
403
+ el.innerHTML = '';
404
+ el.style.display = 'none';
405
+ return;
406
+ }
407
+ el.style.display = '';
408
+ let html = '';
409
+ html += `<button class="treemap__breadcrumb" data-drill-root>${this._cachedData.label || 'Root'}</button>`;
410
+ for (let i = 0; i < this._drillPathState.length; i++) {
411
+ const node = this._drillPathState[i];
412
+ const isLast = i === this._drillPathState.length - 1;
413
+ html += '<span class="treemap__separator">/</span>';
414
+ if (isLast) {
415
+ html += `<span class="treemap__breadcrumb treemap__breadcrumb--current">${node.label}</span>`;
416
+ }
417
+ else {
418
+ html += `<button class="treemap__breadcrumb" data-drill-index="${i}">${node.label}</button>`;
419
+ }
420
+ }
421
+ el.innerHTML = html;
422
+ // Attach breadcrumb event listeners
423
+ const rootBtn = el.querySelector('[data-drill-root]');
424
+ if (rootBtn) {
425
+ rootBtn.addEventListener('click', () => this.drillToRoot());
426
+ }
427
+ el.querySelectorAll('[data-drill-index]').forEach((btn) => {
428
+ const idx = Number(btn.dataset.drillIndex);
429
+ btn.addEventListener('click', () => {
430
+ const node = this._drillPathState[idx];
431
+ this._drillPathState = this._drillPathState.slice(0, idx + 1);
432
+ this.emitDrill(node, this._drillPathState);
433
+ this.rebuildChart();
434
+ });
435
+ });
436
+ }
437
+ renderContent() {
438
+ const dataLabel = this._cachedData?.label || 'Treemap';
439
+ return html /*html*/ `
440
+ <div class="treemap__breadcrumbs" style="display: none"></div>
441
+ <div class="treemap" role="img" aria-label="${dataLabel}">
442
+ <div class="treemap__chart"></div>
443
+ <div class="treemap__tooltip"></div>
444
+ </div>
445
+ `;
446
+ }
447
+ componentStyles() {
448
+ return css /*css*/ `${cssContent}`;
449
+ }
450
+ });
451
+ return _classThis;
452
+ })();
453
+
454
+ export { SniceTreemap };
455
+ //# sourceMappingURL=snice-treemap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-treemap.js","sources":["../../../components/treemap/snice-treemap.css?inline","../../../../components/treemap/snice-treemap.ts"],"sourcesContent":["export default \":host{display:block;font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);contain:layout style paint;width:100%}.treemap{position:relative;width:100%;overflow:hidden}.treemap__svg{display:block;width:100%;height:100%}.treemap__rect{cursor:pointer;transition:opacity var(--snice-transition-fast, 150ms) ease}.treemap__rect:hover{opacity:.85}.treemap__rect-stroke{fill:none;stroke:var(--snice-color-background,rgb(255 255 255));stroke-width:2px;pointer-events:none}.treemap__label{fill:rgb(255 255 255);font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);pointer-events:none;text-anchor:middle;dominant-baseline:central}.treemap__value{fill:rgb(255 255 255 / 0.85);font-family:var(--snice-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif);font-weight:var(--snice-font-weight-medium,500);pointer-events:none;text-anchor:middle;dominant-baseline:central;font-size:.75rem}.treemap__breadcrumbs{display:flex;align-items:center;gap:var(--snice-spacing-2xs,.25rem);padding:var(--snice-spacing-xs,.5rem) 0;font-size:var(--snice-font-size-sm, .875rem);color:var(--snice-color-text-secondary,rgb(82 82 82));min-height:2rem}.treemap__breadcrumb{background:0 0;border:none;padding:var(--snice-spacing-3xs,.125rem) var(--snice-spacing-2xs,.25rem);font-family:inherit;font-size:inherit;color:var(--snice-color-primary,rgb(37 99 235));cursor:pointer;border-radius:var(--snice-border-radius-md,.25rem);transition:background var(--snice-transition-fast, 150ms) ease}.treemap__breadcrumb:hover{background:var(--snice-color-background-element,rgb(252 251 249))}.treemap__breadcrumb--current{color:var(--snice-color-text,rgb(23 23 23));cursor:default;font-weight:var(--snice-font-weight-semibold,600)}.treemap__breadcrumb--current:hover{background:0 0}.treemap__separator{color:var(--snice-color-text-tertiary,rgb(115 115 115));user-select:none}.treemap__tooltip{position:absolute;pointer-events:none;background:var(--snice-color-text,rgb(23 23 23));color:var(--snice-color-text-inverse,rgb(250 250 250));padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-xs,.5rem);border-radius:var(--snice-border-radius-md,.25rem);font-size:.75rem;white-space:nowrap;z-index:10;opacity:0;transition:opacity var(--snice-transition-fast, 150ms) ease;box-shadow:var(--snice-shadow-md,0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1));transform:translate(-50%,-100%);margin-top:-.5rem}.treemap__tooltip--visible{opacity:1}:host([animation]) .treemap__rect{transition:x var(--snice-transition-medium, 250ms) ease,y var(--snice-transition-medium, 250ms) ease,width var(--snice-transition-medium, 250ms) ease,height var(--snice-transition-medium, 250ms) ease,opacity var(--snice-transition-fast, 150ms) ease}\";",null],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface TreemapNode {
2
+ label: string;
3
+ value: number;
4
+ children?: TreemapNode[];
5
+ color?: string;
6
+ }
7
+ export type TreemapColorScheme = 'default' | 'blue' | 'green' | 'purple' | 'orange' | 'warm' | 'cool' | 'rainbow';
8
+ export interface TreemapRect {
9
+ x: number;
10
+ y: number;
11
+ width: number;
12
+ height: number;
13
+ node: TreemapNode;
14
+ depth: number;
15
+ colorIndex: number;
16
+ }
17
+ export interface SniceTreemapElement extends HTMLElement {
18
+ data: TreemapNode;
19
+ showLabels: boolean;
20
+ showValues: boolean;
21
+ colorScheme: TreemapColorScheme;
22
+ padding: number;
23
+ animation: boolean;
24
+ drillPath: TreemapNode[];
25
+ drillDown(node: TreemapNode): void;
26
+ drillUp(): void;
27
+ drillToRoot(): void;
28
+ }
29
+ export interface SniceTreemapEventMap {
30
+ 'treemap-click': CustomEvent<{
31
+ node: TreemapNode;
32
+ depth: number;
33
+ }>;
34
+ 'treemap-hover': CustomEvent<{
35
+ node: TreemapNode;
36
+ depth: number;
37
+ } | null>;
38
+ 'treemap-drill': CustomEvent<{
39
+ node: TreemapNode;
40
+ path: TreemapNode[];
41
+ }>;
42
+ }