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,568 @@
1
+ import { __esDecorate, __runInitializers } from 'tslib';
2
+ import { element, property, query, styles, render, ready, dispose, watch, dispatch, css, html } 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%;--trp-bg:var(--snice-color-background, rgb(255 255 255));--trp-text:var(--snice-color-text, rgb(23 23 23));--trp-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--trp-border:var(--snice-color-border, rgb(226 226 226));--trp-primary:var(--snice-color-primary, rgb(37 99 235));--trp-primary-hover:var(--snice-color-primary-hover, rgb(29 78 216));--trp-slot-hover:var(--snice-color-background-element, rgb(252 251 249));--trp-disabled-bg:var(--snice-color-background-element, rgb(252 251 249));--trp-disabled-text:var(--snice-color-text-tertiary, rgb(115 115 115));--trp-selected-bg:var(--snice-color-primary, rgb(37 99 235));--trp-selected-text:var(--snice-color-text-inverse, rgb(250 250 250))}:host([disabled]){opacity:.6;pointer-events:none}:host([readonly]) .slot:not(.slot--selected){cursor:default}.wrapper{border:1px solid var(--trp-border);border-radius:var(--snice-border-radius-lg,.5rem);overflow:hidden;background:var(--trp-bg)}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--trp-border);background:var(--trp-bg);min-height:2.5rem}.header-label{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);color:var(--trp-text)}.header-value{font-size:var(--snice-font-size-md, 1rem);color:var(--trp-primary);font-weight:var(--snice-font-weight-semibold,600)}.header-value--empty{color:var(--trp-text-secondary);font-weight:var(--snice-font-weight-medium,500);font-style:italic}.slots-container{max-height:25rem;overflow-y:auto;overscroll-behavior:contain}.slots-container::-webkit-scrollbar{width:6px}.slots-container::-webkit-scrollbar-track{background:0 0}.slots-container::-webkit-scrollbar-thumb{background:var(--trp-border);border-radius:3px}.slot{display:flex;align-items:center;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--trp-border);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;user-select:none;-webkit-user-select:none;position:relative;min-height:2.25rem}.slot:last-child{border-bottom:none}.slot:hover:not(.slot--disabled):not(.slot--selected){background:var(--trp-slot-hover)}.slot--selected{background:var(--trp-selected-bg);color:var(--trp-selected-text)}.slot--selected:hover{background:var(--trp-primary-hover)}.slot--disabled{background:var(--trp-disabled-bg);color:var(--trp-disabled-text);cursor:not-allowed;text-decoration:line-through;opacity:.65}.slot--dragging{background:color-mix(in srgb,var(--trp-selected-bg) 80%,transparent);color:var(--trp-selected-text)}.slot--range-start{border-top-left-radius:4px;border-top-right-radius:4px}.slot--range-end{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.slot-time{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);min-width:5rem;font-variant-numeric:tabular-nums}.slot-separator{flex:1;height:1px;background:var(--trp-border);margin:0 var(--snice-spacing-sm,.75rem);opacity:.5}.slot--dragging .slot-separator,.slot--selected .slot-separator{background:var(--trp-selected-text);opacity:.3}.slot--hour-start{border-top:2px solid var(--trp-border)}.slot--hour-start.slot--dragging,.slot--hour-start.slot--selected{border-top-color:color-mix(in srgb,var(--trp-selected-text) 30%,transparent)}.slot:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:-2px;z-index:1}@media (max-width:480px){.slot{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);min-height:2rem}.slot-time{font-size:var(--snice-font-size-sm, .875rem);min-width:4rem}}";
5
+
6
+ let SniceTimeRangePicker = (() => {
7
+ let _classDecorators = [element('snice-time-range-picker')];
8
+ let _classDescriptor;
9
+ let _classExtraInitializers = [];
10
+ let _classThis;
11
+ let _classSuper = HTMLElement;
12
+ let _instanceExtraInitializers = [];
13
+ let _granularity_decorators;
14
+ let _granularity_initializers = [];
15
+ let _granularity_extraInitializers = [];
16
+ let _startTime_decorators;
17
+ let _startTime_initializers = [];
18
+ let _startTime_extraInitializers = [];
19
+ let _endTime_decorators;
20
+ let _endTime_initializers = [];
21
+ let _endTime_extraInitializers = [];
22
+ let _value_decorators;
23
+ let _value_initializers = [];
24
+ let _value_extraInitializers = [];
25
+ let _disabledRanges_decorators;
26
+ let _disabledRanges_initializers = [];
27
+ let _disabledRanges_extraInitializers = [];
28
+ let _format_decorators;
29
+ let _format_initializers = [];
30
+ let _format_extraInitializers = [];
31
+ let _multiple_decorators;
32
+ let _multiple_initializers = [];
33
+ let _multiple_extraInitializers = [];
34
+ let _readonly_decorators;
35
+ let _readonly_initializers = [];
36
+ let _readonly_extraInitializers = [];
37
+ let _disabled_decorators;
38
+ let _disabled_initializers = [];
39
+ let _disabled_extraInitializers = [];
40
+ let _slotsContainer_decorators;
41
+ let _slotsContainer_initializers = [];
42
+ let _slotsContainer_extraInitializers = [];
43
+ let _componentStyles_decorators;
44
+ let _renderContent_decorators;
45
+ let _init_decorators;
46
+ let _cleanup_decorators;
47
+ let _handleValueChange_decorators;
48
+ let _handleDisabledRangesChange_decorators;
49
+ let _handleGranularityChange_decorators;
50
+ let _handleStartTimeChange_decorators;
51
+ let _handleEndTimeChange_decorators;
52
+ let _emitChange_decorators;
53
+ let _emitSelect_decorators;
54
+ let _emitComplete_decorators;
55
+ (class extends _classSuper {
56
+ static { _classThis = this; }
57
+ static {
58
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
59
+ _granularity_decorators = [property({ type: Number })];
60
+ _startTime_decorators = [property({ attribute: 'start-time' })];
61
+ _endTime_decorators = [property({ attribute: 'end-time' })];
62
+ _value_decorators = [property()];
63
+ _disabledRanges_decorators = [property({ attribute: 'disabled-ranges' })];
64
+ _format_decorators = [property()];
65
+ _multiple_decorators = [property({ type: Boolean })];
66
+ _readonly_decorators = [property({ type: Boolean })];
67
+ _disabled_decorators = [property({ type: Boolean })];
68
+ _slotsContainer_decorators = [query('.slots-container')];
69
+ _componentStyles_decorators = [styles()];
70
+ _renderContent_decorators = [render()];
71
+ _init_decorators = [ready()];
72
+ _cleanup_decorators = [dispose()];
73
+ _handleValueChange_decorators = [watch('value')];
74
+ _handleDisabledRangesChange_decorators = [watch('disabled-ranges')];
75
+ _handleGranularityChange_decorators = [watch('granularity')];
76
+ _handleStartTimeChange_decorators = [watch('start-time')];
77
+ _handleEndTimeChange_decorators = [watch('end-time')];
78
+ _emitChange_decorators = [dispatch('time-range-change', { bubbles: true, composed: true })];
79
+ _emitSelect_decorators = [dispatch('time-range-select', { bubbles: true, composed: true })];
80
+ _emitComplete_decorators = [dispatch('time-range-complete', { bubbles: true, composed: true })];
81
+ __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);
82
+ __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);
83
+ __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);
84
+ __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);
85
+ __esDecorate(this, null, _handleValueChange_decorators, { kind: "method", name: "handleValueChange", static: false, private: false, access: { has: obj => "handleValueChange" in obj, get: obj => obj.handleValueChange }, metadata: _metadata }, null, _instanceExtraInitializers);
86
+ __esDecorate(this, null, _handleDisabledRangesChange_decorators, { kind: "method", name: "handleDisabledRangesChange", static: false, private: false, access: { has: obj => "handleDisabledRangesChange" in obj, get: obj => obj.handleDisabledRangesChange }, metadata: _metadata }, null, _instanceExtraInitializers);
87
+ __esDecorate(this, null, _handleGranularityChange_decorators, { kind: "method", name: "handleGranularityChange", static: false, private: false, access: { has: obj => "handleGranularityChange" in obj, get: obj => obj.handleGranularityChange }, metadata: _metadata }, null, _instanceExtraInitializers);
88
+ __esDecorate(this, null, _handleStartTimeChange_decorators, { kind: "method", name: "handleStartTimeChange", static: false, private: false, access: { has: obj => "handleStartTimeChange" in obj, get: obj => obj.handleStartTimeChange }, metadata: _metadata }, null, _instanceExtraInitializers);
89
+ __esDecorate(this, null, _handleEndTimeChange_decorators, { kind: "method", name: "handleEndTimeChange", static: false, private: false, access: { has: obj => "handleEndTimeChange" in obj, get: obj => obj.handleEndTimeChange }, metadata: _metadata }, null, _instanceExtraInitializers);
90
+ __esDecorate(this, null, _emitChange_decorators, { kind: "method", name: "emitChange", static: false, private: false, access: { has: obj => "emitChange" in obj, get: obj => obj.emitChange }, metadata: _metadata }, null, _instanceExtraInitializers);
91
+ __esDecorate(this, null, _emitSelect_decorators, { kind: "method", name: "emitSelect", static: false, private: false, access: { has: obj => "emitSelect" in obj, get: obj => obj.emitSelect }, metadata: _metadata }, null, _instanceExtraInitializers);
92
+ __esDecorate(this, null, _emitComplete_decorators, { kind: "method", name: "emitComplete", static: false, private: false, access: { has: obj => "emitComplete" in obj, get: obj => obj.emitComplete }, metadata: _metadata }, null, _instanceExtraInitializers);
93
+ __esDecorate(null, null, _granularity_decorators, { kind: "field", name: "granularity", static: false, private: false, access: { has: obj => "granularity" in obj, get: obj => obj.granularity, set: (obj, value) => { obj.granularity = value; } }, metadata: _metadata }, _granularity_initializers, _granularity_extraInitializers);
94
+ __esDecorate(null, null, _startTime_decorators, { kind: "field", name: "startTime", static: false, private: false, access: { has: obj => "startTime" in obj, get: obj => obj.startTime, set: (obj, value) => { obj.startTime = value; } }, metadata: _metadata }, _startTime_initializers, _startTime_extraInitializers);
95
+ __esDecorate(null, null, _endTime_decorators, { kind: "field", name: "endTime", static: false, private: false, access: { has: obj => "endTime" in obj, get: obj => obj.endTime, set: (obj, value) => { obj.endTime = value; } }, metadata: _metadata }, _endTime_initializers, _endTime_extraInitializers);
96
+ __esDecorate(null, null, _value_decorators, { kind: "field", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
97
+ __esDecorate(null, null, _disabledRanges_decorators, { kind: "field", name: "disabledRanges", static: false, private: false, access: { has: obj => "disabledRanges" in obj, get: obj => obj.disabledRanges, set: (obj, value) => { obj.disabledRanges = value; } }, metadata: _metadata }, _disabledRanges_initializers, _disabledRanges_extraInitializers);
98
+ __esDecorate(null, null, _format_decorators, { kind: "field", name: "format", static: false, private: false, access: { has: obj => "format" in obj, get: obj => obj.format, set: (obj, value) => { obj.format = value; } }, metadata: _metadata }, _format_initializers, _format_extraInitializers);
99
+ __esDecorate(null, null, _multiple_decorators, { kind: "field", name: "multiple", static: false, private: false, access: { has: obj => "multiple" in obj, get: obj => obj.multiple, set: (obj, value) => { obj.multiple = value; } }, metadata: _metadata }, _multiple_initializers, _multiple_extraInitializers);
100
+ __esDecorate(null, null, _readonly_decorators, { kind: "field", name: "readonly", static: false, private: false, access: { has: obj => "readonly" in obj, get: obj => obj.readonly, set: (obj, value) => { obj.readonly = value; } }, metadata: _metadata }, _readonly_initializers, _readonly_extraInitializers);
101
+ __esDecorate(null, null, _disabled_decorators, { kind: "field", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, get: obj => obj.disabled, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, _disabled_initializers, _disabled_extraInitializers);
102
+ __esDecorate(null, null, _slotsContainer_decorators, { kind: "field", name: "slotsContainer", static: false, private: false, access: { has: obj => "slotsContainer" in obj, get: obj => obj.slotsContainer, set: (obj, value) => { obj.slotsContainer = value; } }, metadata: _metadata }, _slotsContainer_initializers, _slotsContainer_extraInitializers);
103
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
104
+ _classThis = _classDescriptor.value;
105
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
106
+ __runInitializers(_classThis, _classExtraInitializers);
107
+ }
108
+ constructor() {
109
+ super();
110
+ this.granularity = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _granularity_initializers, 15));
111
+ this.startTime = (__runInitializers(this, _granularity_extraInitializers), __runInitializers(this, _startTime_initializers, '00:00'));
112
+ this.endTime = (__runInitializers(this, _startTime_extraInitializers), __runInitializers(this, _endTime_initializers, '23:59'));
113
+ this.value = (__runInitializers(this, _endTime_extraInitializers), __runInitializers(this, _value_initializers, ''));
114
+ this.disabledRanges = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _disabledRanges_initializers, ''));
115
+ this.format = (__runInitializers(this, _disabledRanges_extraInitializers), __runInitializers(this, _format_initializers, '24h'));
116
+ this.multiple = (__runInitializers(this, _format_extraInitializers), __runInitializers(this, _multiple_initializers, false));
117
+ this.readonly = (__runInitializers(this, _multiple_extraInitializers), __runInitializers(this, _readonly_initializers, false));
118
+ this.disabled = (__runInitializers(this, _readonly_extraInitializers), __runInitializers(this, _disabled_initializers, false));
119
+ this.slotsContainer = (__runInitializers(this, _disabled_extraInitializers), __runInitializers(this, _slotsContainer_initializers, void 0));
120
+ this.slots = (__runInitializers(this, _slotsContainer_extraInitializers), []);
121
+ this.selectedIndices = new Set();
122
+ this.disabledIndices = new Set();
123
+ this.isDragging = false;
124
+ this.dragStartIndex = -1;
125
+ this.dragEndIndex = -1;
126
+ this.boundHandleMouseMove = this.handleMouseMove.bind(this);
127
+ this.boundHandleMouseUp = this.handleMouseUp.bind(this);
128
+ this.boundHandleTouchMove = this.handleTouchMove.bind(this);
129
+ this.boundHandleTouchEnd = this.handleTouchEnd.bind(this);
130
+ }
131
+ componentStyles() {
132
+ return css /*css*/ `${cssContent}`;
133
+ }
134
+ renderContent() {
135
+ this.buildSlots();
136
+ this.parseDisabledRanges();
137
+ this.parseValue();
138
+ const displayValue = this.getDisplayValue();
139
+ return html `
140
+ <div class="wrapper">
141
+ <div class="header">
142
+ <span class="header-label">Time</span>
143
+ <span class="${displayValue ? 'header-value' : 'header-value header-value--empty'}">
144
+ ${displayValue || 'No selection'}
145
+ </span>
146
+ </div>
147
+ <div class="slots-container"
148
+ @mousedown=${(e) => this.handleMouseDown(e)}
149
+ @touchstart=${(e) => this.handleTouchStart(e)}>
150
+ ${this.slots.map((time, index) => {
151
+ const isSelected = this.selectedIndices.has(index);
152
+ const isDisabled = this.disabledIndices.has(index);
153
+ const isDragging = this.isDragging && this.isInDragRange(index) && !isDisabled;
154
+ const isHourStart = this.isHourBoundary(time);
155
+ const ranges = this.getSelectedRanges();
156
+ const isRangeStart = this.isRangeStart(index, ranges);
157
+ const isRangeEnd = this.isRangeEnd(index, ranges);
158
+ const classes = [
159
+ 'slot',
160
+ isSelected ? 'slot--selected' : '',
161
+ isDisabled ? 'slot--disabled' : '',
162
+ isDragging ? 'slot--dragging' : '',
163
+ isHourStart ? 'slot--hour-start' : '',
164
+ isRangeStart ? 'slot--range-start' : '',
165
+ isRangeEnd ? 'slot--range-end' : '',
166
+ ].filter(Boolean).join(' ');
167
+ return html `
168
+ <div class="${classes}"
169
+ data-index="${index}"
170
+ data-time="${time}"
171
+ tabindex="${isDisabled ? '-1' : '0'}"
172
+ role="option"
173
+ aria-selected="${isSelected || isDragging ? 'true' : 'false'}"
174
+ aria-disabled="${isDisabled ? 'true' : 'false'}"
175
+ @keydown=${(e) => this.handleSlotKeydown(e, index)}>
176
+ <span class="slot-time">${this.formatTime(time)}</span>
177
+ <span class="slot-separator"></span>
178
+ </div>
179
+ `;
180
+ })}
181
+ </div>
182
+ </div>
183
+ `;
184
+ }
185
+ init() {
186
+ this.buildSlots();
187
+ this.parseDisabledRanges();
188
+ this.parseValue();
189
+ }
190
+ cleanup() {
191
+ document.removeEventListener('mousemove', this.boundHandleMouseMove);
192
+ document.removeEventListener('mouseup', this.boundHandleMouseUp);
193
+ document.removeEventListener('touchmove', this.boundHandleTouchMove);
194
+ document.removeEventListener('touchend', this.boundHandleTouchEnd);
195
+ }
196
+ // --- Slot generation ---
197
+ buildSlots() {
198
+ const slots = [];
199
+ const startMinutes = this.timeToMinutes(this.startTime);
200
+ const endMinutes = this.timeToMinutes(this.endTime);
201
+ const gran = this.granularity;
202
+ for (let m = startMinutes; m <= endMinutes; m += gran) {
203
+ slots.push(this.minutesToTime(m));
204
+ }
205
+ this.slots = slots;
206
+ }
207
+ // --- Parsing ---
208
+ parseDisabledRanges() {
209
+ this.disabledIndices.clear();
210
+ if (!this.disabledRanges)
211
+ return;
212
+ try {
213
+ const ranges = JSON.parse(this.disabledRanges);
214
+ for (const range of ranges) {
215
+ const startIdx = this.getSlotIndex(range.start);
216
+ const endIdx = this.getSlotIndex(range.end);
217
+ if (startIdx >= 0 && endIdx >= 0) {
218
+ for (let i = startIdx; i <= endIdx; i++) {
219
+ this.disabledIndices.add(i);
220
+ }
221
+ }
222
+ }
223
+ }
224
+ catch {
225
+ // Invalid JSON - ignore
226
+ }
227
+ }
228
+ parseValue() {
229
+ this.selectedIndices.clear();
230
+ if (!this.value)
231
+ return;
232
+ try {
233
+ const ranges = JSON.parse(this.value);
234
+ for (const range of ranges) {
235
+ const startIdx = this.getSlotIndex(range.start);
236
+ const endIdx = this.getSlotIndex(range.end);
237
+ if (startIdx >= 0 && endIdx >= 0) {
238
+ for (let i = startIdx; i <= endIdx; i++) {
239
+ if (!this.disabledIndices.has(i)) {
240
+ this.selectedIndices.add(i);
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ catch {
247
+ // Invalid JSON - ignore
248
+ }
249
+ }
250
+ // --- Time utilities ---
251
+ timeToMinutes(time) {
252
+ const [h, m] = time.split(':').map(Number);
253
+ return (h || 0) * 60 + (m || 0);
254
+ }
255
+ minutesToTime(minutes) {
256
+ const h = Math.floor(minutes / 60);
257
+ const m = minutes % 60;
258
+ return `${h.toString().padStart(2, '0')}:${m.toString().padStart(2, '0')}`;
259
+ }
260
+ formatTime(time) {
261
+ if (this.format === '24h')
262
+ return time;
263
+ const [h, m] = time.split(':').map(Number);
264
+ const period = h >= 12 ? 'PM' : 'AM';
265
+ const hour12 = h === 0 ? 12 : h > 12 ? h - 12 : h;
266
+ return `${hour12}:${m.toString().padStart(2, '0')} ${period}`;
267
+ }
268
+ getSlotIndex(time) {
269
+ return this.slots.indexOf(time);
270
+ }
271
+ getSlotEndTime(index) {
272
+ const startMinutes = this.timeToMinutes(this.slots[index]);
273
+ return this.minutesToTime(startMinutes + this.granularity);
274
+ }
275
+ isHourBoundary(time) {
276
+ return time.endsWith(':00') && time !== this.slots[0];
277
+ }
278
+ // --- Range helpers ---
279
+ isRangeStart(index, ranges) {
280
+ for (const range of ranges) {
281
+ const startIdx = this.getSlotIndex(range.start);
282
+ if (startIdx === index)
283
+ return true;
284
+ }
285
+ return false;
286
+ }
287
+ isRangeEnd(index, ranges) {
288
+ for (const range of ranges) {
289
+ const endIdx = this.getSlotIndex(range.end);
290
+ if (endIdx === index)
291
+ return true;
292
+ }
293
+ return false;
294
+ }
295
+ isInDragRange(index) {
296
+ if (this.dragStartIndex < 0)
297
+ return false;
298
+ const low = Math.min(this.dragStartIndex, this.dragEndIndex);
299
+ const high = Math.max(this.dragStartIndex, this.dragEndIndex);
300
+ return index >= low && index <= high;
301
+ }
302
+ // --- Mouse/touch handling ---
303
+ getSlotIndexFromEvent(e) {
304
+ const target = e.target.closest('[data-index]');
305
+ if (target) {
306
+ return parseInt(target.getAttribute('data-index') || '-1', 10);
307
+ }
308
+ return -1;
309
+ }
310
+ getSlotIndexFromPoint(x, y) {
311
+ const el = this.shadowRoot?.elementFromPoint(x, y);
312
+ if (!el)
313
+ return -1;
314
+ const slot = el.closest('[data-index]');
315
+ if (slot) {
316
+ return parseInt(slot.getAttribute('data-index') || '-1', 10);
317
+ }
318
+ return -1;
319
+ }
320
+ handleMouseDown(e) {
321
+ if (this.disabled || this.readonly)
322
+ return;
323
+ const index = this.getSlotIndexFromEvent(e);
324
+ if (index < 0 || this.disabledIndices.has(index))
325
+ return;
326
+ e.preventDefault();
327
+ this.startDrag(index);
328
+ document.addEventListener('mousemove', this.boundHandleMouseMove);
329
+ document.addEventListener('mouseup', this.boundHandleMouseUp);
330
+ }
331
+ handleMouseMove(e) {
332
+ if (!this.isDragging)
333
+ return;
334
+ const index = this.getSlotIndexFromPoint(e.clientX, e.clientY);
335
+ if (index >= 0) {
336
+ this.updateDrag(index);
337
+ }
338
+ }
339
+ handleMouseUp(_e) {
340
+ document.removeEventListener('mousemove', this.boundHandleMouseMove);
341
+ document.removeEventListener('mouseup', this.boundHandleMouseUp);
342
+ if (this.isDragging) {
343
+ this.endDrag();
344
+ }
345
+ }
346
+ handleTouchStart(e) {
347
+ if (this.disabled || this.readonly)
348
+ return;
349
+ const touch = e.touches[0];
350
+ const index = this.getSlotIndexFromEvent(touch);
351
+ if (index < 0 || this.disabledIndices.has(index))
352
+ return;
353
+ e.preventDefault();
354
+ this.startDrag(index);
355
+ document.addEventListener('touchmove', this.boundHandleTouchMove, { passive: false });
356
+ document.addEventListener('touchend', this.boundHandleTouchEnd);
357
+ }
358
+ handleTouchMove(e) {
359
+ if (!this.isDragging)
360
+ return;
361
+ e.preventDefault();
362
+ const touch = e.touches[0];
363
+ const index = this.getSlotIndexFromPoint(touch.clientX, touch.clientY);
364
+ if (index >= 0) {
365
+ this.updateDrag(index);
366
+ }
367
+ }
368
+ handleTouchEnd(_e) {
369
+ document.removeEventListener('touchmove', this.boundHandleTouchMove);
370
+ document.removeEventListener('touchend', this.boundHandleTouchEnd);
371
+ if (this.isDragging) {
372
+ this.endDrag();
373
+ }
374
+ }
375
+ startDrag(index) {
376
+ this.isDragging = true;
377
+ this.dragStartIndex = index;
378
+ this.dragEndIndex = index;
379
+ this.emitSelect();
380
+ this.renderContent();
381
+ }
382
+ updateDrag(index) {
383
+ if (index !== this.dragEndIndex) {
384
+ this.dragEndIndex = index;
385
+ this.renderContent();
386
+ }
387
+ }
388
+ endDrag() {
389
+ const low = Math.min(this.dragStartIndex, this.dragEndIndex);
390
+ const high = Math.max(this.dragStartIndex, this.dragEndIndex);
391
+ // Collect new indices, skipping disabled
392
+ const newIndices = [];
393
+ for (let i = low; i <= high; i++) {
394
+ if (!this.disabledIndices.has(i)) {
395
+ newIndices.push(i);
396
+ }
397
+ }
398
+ if (this.multiple) {
399
+ // Toggle: if all in range are already selected, deselect; else select
400
+ const allSelected = newIndices.every(i => this.selectedIndices.has(i));
401
+ if (allSelected) {
402
+ for (const i of newIndices) {
403
+ this.selectedIndices.delete(i);
404
+ }
405
+ }
406
+ else {
407
+ for (const i of newIndices) {
408
+ this.selectedIndices.add(i);
409
+ }
410
+ }
411
+ }
412
+ else {
413
+ // Single range mode: replace selection
414
+ this.selectedIndices.clear();
415
+ for (const i of newIndices) {
416
+ this.selectedIndices.add(i);
417
+ }
418
+ }
419
+ const completedRange = {
420
+ start: this.slots[low],
421
+ end: this.slots[high],
422
+ };
423
+ this.isDragging = false;
424
+ this.dragStartIndex = -1;
425
+ this.dragEndIndex = -1;
426
+ this.syncValueFromSelection();
427
+ this.emitComplete(completedRange);
428
+ this.emitChange();
429
+ this.renderContent();
430
+ }
431
+ // --- Keyboard handling ---
432
+ handleSlotKeydown(e, index) {
433
+ if (this.disabled || this.readonly)
434
+ return;
435
+ if (e.key === 'Enter' || e.key === ' ') {
436
+ e.preventDefault();
437
+ if (this.disabledIndices.has(index))
438
+ return;
439
+ if (this.multiple) {
440
+ if (this.selectedIndices.has(index)) {
441
+ this.selectedIndices.delete(index);
442
+ }
443
+ else {
444
+ this.selectedIndices.add(index);
445
+ }
446
+ }
447
+ else {
448
+ this.selectedIndices.clear();
449
+ this.selectedIndices.add(index);
450
+ }
451
+ const range = { start: this.slots[index], end: this.slots[index] };
452
+ this.syncValueFromSelection();
453
+ this.emitComplete(range);
454
+ this.emitChange();
455
+ this.renderContent();
456
+ }
457
+ else if (e.key === 'ArrowDown') {
458
+ e.preventDefault();
459
+ this.focusSlot(index + 1);
460
+ }
461
+ else if (e.key === 'ArrowUp') {
462
+ e.preventDefault();
463
+ this.focusSlot(index - 1);
464
+ }
465
+ else if (e.key === 'Escape') {
466
+ this.clearSelection();
467
+ }
468
+ }
469
+ focusSlot(index) {
470
+ if (index < 0 || index >= this.slots.length)
471
+ return;
472
+ const slotEl = this.shadowRoot?.querySelector(`[data-index="${index}"]`);
473
+ slotEl?.focus();
474
+ }
475
+ // --- Value synchronization ---
476
+ syncValueFromSelection() {
477
+ const ranges = this.getSelectedRanges();
478
+ this.value = JSON.stringify(ranges);
479
+ }
480
+ getDisplayValue() {
481
+ const ranges = this.getSelectedRanges();
482
+ if (ranges.length === 0)
483
+ return '';
484
+ return ranges.map(r => {
485
+ const startDisplay = this.formatTime(r.start);
486
+ const endTime = this.minutesToTime(this.timeToMinutes(r.end) + this.granularity);
487
+ const endDisplay = this.formatTime(endTime);
488
+ return `${startDisplay} - ${endDisplay}`;
489
+ }).join(', ');
490
+ }
491
+ // --- Public API ---
492
+ getSelectedRanges() {
493
+ const sorted = [...this.selectedIndices].sort((a, b) => a - b);
494
+ if (sorted.length === 0)
495
+ return [];
496
+ const ranges = [];
497
+ let rangeStart = sorted[0];
498
+ let prev = sorted[0];
499
+ for (let i = 1; i < sorted.length; i++) {
500
+ if (sorted[i] !== prev + 1) {
501
+ ranges.push({
502
+ start: this.slots[rangeStart],
503
+ end: this.slots[prev],
504
+ });
505
+ rangeStart = sorted[i];
506
+ }
507
+ prev = sorted[i];
508
+ }
509
+ ranges.push({
510
+ start: this.slots[rangeStart],
511
+ end: this.slots[prev],
512
+ });
513
+ return ranges;
514
+ }
515
+ setSelectedRanges(ranges) {
516
+ this.value = JSON.stringify(ranges);
517
+ this.parseValue();
518
+ this.emitChange();
519
+ this.renderContent();
520
+ }
521
+ clearSelection() {
522
+ this.selectedIndices.clear();
523
+ this.value = '';
524
+ this.emitChange();
525
+ this.renderContent();
526
+ }
527
+ isSlotDisabled(time) {
528
+ const index = this.getSlotIndex(time);
529
+ return index >= 0 && this.disabledIndices.has(index);
530
+ }
531
+ // --- Watchers ---
532
+ handleValueChange() {
533
+ this.parseValue();
534
+ }
535
+ handleDisabledRangesChange() {
536
+ this.parseDisabledRanges();
537
+ }
538
+ handleGranularityChange() {
539
+ this.buildSlots();
540
+ this.parseDisabledRanges();
541
+ this.parseValue();
542
+ }
543
+ handleStartTimeChange() {
544
+ this.buildSlots();
545
+ this.parseDisabledRanges();
546
+ this.parseValue();
547
+ }
548
+ handleEndTimeChange() {
549
+ this.buildSlots();
550
+ this.parseDisabledRanges();
551
+ this.parseValue();
552
+ }
553
+ // --- Event dispatchers ---
554
+ emitChange() {
555
+ return { ranges: this.getSelectedRanges(), component: this };
556
+ }
557
+ emitSelect() {
558
+ return { start: this.slots[this.dragStartIndex], component: this };
559
+ }
560
+ emitComplete(range) {
561
+ return { range, ranges: this.getSelectedRanges(), component: this };
562
+ }
563
+ });
564
+ return _classThis;
565
+ })();
566
+
567
+ export { SniceTimeRangePicker };
568
+ //# sourceMappingURL=snice-time-range-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snice-time-range-picker.js","sources":["../../../components/time-range-picker/snice-time-range-picker.css?inline","../../../../components/time-range-picker/snice-time-range-picker.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%;--trp-bg:var(--snice-color-background, rgb(255 255 255));--trp-text:var(--snice-color-text, rgb(23 23 23));--trp-text-secondary:var(--snice-color-text-secondary, rgb(82 82 82));--trp-border:var(--snice-color-border, rgb(226 226 226));--trp-primary:var(--snice-color-primary, rgb(37 99 235));--trp-primary-hover:var(--snice-color-primary-hover, rgb(29 78 216));--trp-slot-hover:var(--snice-color-background-element, rgb(252 251 249));--trp-disabled-bg:var(--snice-color-background-element, rgb(252 251 249));--trp-disabled-text:var(--snice-color-text-tertiary, rgb(115 115 115));--trp-selected-bg:var(--snice-color-primary, rgb(37 99 235));--trp-selected-text:var(--snice-color-text-inverse, rgb(250 250 250))}:host([disabled]){opacity:.6;pointer-events:none}:host([readonly]) .slot:not(.slot--selected){cursor:default}.wrapper{border:1px solid var(--trp-border);border-radius:var(--snice-border-radius-lg,.5rem);overflow:hidden;background:var(--trp-bg)}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--snice-spacing-sm,.75rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--trp-border);background:var(--trp-bg);min-height:2.5rem}.header-label{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);color:var(--trp-text)}.header-value{font-size:var(--snice-font-size-md, 1rem);color:var(--trp-primary);font-weight:var(--snice-font-weight-semibold,600)}.header-value--empty{color:var(--trp-text-secondary);font-weight:var(--snice-font-weight-medium,500);font-style:italic}.slots-container{max-height:25rem;overflow-y:auto;overscroll-behavior:contain}.slots-container::-webkit-scrollbar{width:6px}.slots-container::-webkit-scrollbar-track{background:0 0}.slots-container::-webkit-scrollbar-thumb{background:var(--trp-border);border-radius:3px}.slot{display:flex;align-items:center;padding:var(--snice-spacing-xs,.5rem) var(--snice-spacing-md,1rem);border-bottom:1px solid var(--trp-border);cursor:pointer;transition:background-color var(--snice-transition-fast, 150ms) ease;user-select:none;-webkit-user-select:none;position:relative;min-height:2.25rem}.slot:last-child{border-bottom:none}.slot:hover:not(.slot--disabled):not(.slot--selected){background:var(--trp-slot-hover)}.slot--selected{background:var(--trp-selected-bg);color:var(--trp-selected-text)}.slot--selected:hover{background:var(--trp-primary-hover)}.slot--disabled{background:var(--trp-disabled-bg);color:var(--trp-disabled-text);cursor:not-allowed;text-decoration:line-through;opacity:.65}.slot--dragging{background:color-mix(in srgb,var(--trp-selected-bg) 80%,transparent);color:var(--trp-selected-text)}.slot--range-start{border-top-left-radius:4px;border-top-right-radius:4px}.slot--range-end{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.slot-time{font-size:var(--snice-font-size-md, 1rem);font-weight:var(--snice-font-weight-medium,500);min-width:5rem;font-variant-numeric:tabular-nums}.slot-separator{flex:1;height:1px;background:var(--trp-border);margin:0 var(--snice-spacing-sm,.75rem);opacity:.5}.slot--dragging .slot-separator,.slot--selected .slot-separator{background:var(--trp-selected-text);opacity:.3}.slot--hour-start{border-top:2px solid var(--trp-border)}.slot--hour-start.slot--dragging,.slot--hour-start.slot--selected{border-top-color:color-mix(in srgb,var(--trp-selected-text) 30%,transparent)}.slot:focus-visible{outline:var(--snice-focus-ring-width,2px) solid var(--snice-focus-ring-color,rgb(59 130 246 / .5));outline-offset:-2px;z-index:1}@media (max-width:480px){.slot{padding:var(--snice-spacing-2xs,.25rem) var(--snice-spacing-sm,.75rem);min-height:2rem}.slot-time{font-size:var(--snice-font-size-sm, .875rem);min-width:4rem}}\";",null],"names":[],"mappings":"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"}