@ixfx/components 0.2.3 → 0.2.5

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 (291) hide show
  1. package/LICENSE +1 -1
  2. package/bundle/chunk-pbuEa-1d.js +13 -0
  3. package/bundle/index.d.ts +4702 -569
  4. package/bundle/index.d.ts.map +1 -1
  5. package/bundle/index.js +34929 -2800
  6. package/bundle/index.js.map +1 -1
  7. package/bundle/style.css +133 -0
  8. package/dist/ac-text.d.ts +97 -0
  9. package/dist/ac-text.d.ts.map +1 -0
  10. package/dist/ac-text.js +484 -0
  11. package/dist/ac-text.js.map +1 -0
  12. package/dist/button-DgKUzE5o.js +121 -0
  13. package/dist/button-DgKUzE5o.js.map +1 -0
  14. package/dist/button.d.ts +21 -0
  15. package/dist/button.d.ts.map +1 -0
  16. package/dist/button.js +3 -0
  17. package/dist/checkbox.d.ts +34 -0
  18. package/dist/checkbox.d.ts.map +1 -0
  19. package/dist/checkbox.js +251 -0
  20. package/dist/checkbox.js.map +1 -0
  21. package/dist/chunk-pbuEa-1d.js +13 -0
  22. package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
  23. package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
  24. package/dist/colour-picker-Bw-AZoWx.js +922 -0
  25. package/dist/colour-picker-Bw-AZoWx.js.map +1 -0
  26. package/dist/colour-picker.d.ts +2 -0
  27. package/dist/colour-picker.js +2 -0
  28. package/dist/crumbs.d.ts +92 -0
  29. package/dist/crumbs.d.ts.map +1 -0
  30. package/dist/crumbs.js +789 -0
  31. package/dist/crumbs.js.map +1 -0
  32. package/dist/data-display.d.ts +24 -12
  33. package/dist/data-display.d.ts.map +1 -1
  34. package/dist/data-display.js +96 -105
  35. package/dist/data-display.js.map +1 -1
  36. package/dist/decorate-BZbkqIhA.js +9 -0
  37. package/dist/defaults-FEZaGiYZ.js +38 -0
  38. package/dist/defaults-FEZaGiYZ.js.map +1 -0
  39. package/dist/dist-By5URG0Y.js +1290 -0
  40. package/dist/dist-By5URG0Y.js.map +1 -0
  41. package/dist/dist-D7kJgnSE.js +1039 -0
  42. package/dist/dist-D7kJgnSE.js.map +1 -0
  43. package/dist/editable-label.d.ts +71 -0
  44. package/dist/editable-label.d.ts.map +1 -0
  45. package/dist/editable-label.js +279 -0
  46. package/dist/editable-label.js.map +1 -0
  47. package/dist/hex-editor-Gib1Grg2.d.ts +131 -0
  48. package/dist/hex-editor-Gib1Grg2.d.ts.map +1 -0
  49. package/dist/hex-editor-Wd6ZtZA2.js +1147 -0
  50. package/dist/hex-editor-Wd6ZtZA2.js.map +1 -0
  51. package/dist/hex.d.ts +2 -0
  52. package/dist/hex.js +2 -0
  53. package/dist/highlight-CAjwQ4GE.js +50 -0
  54. package/dist/highlight-CAjwQ4GE.js.map +1 -0
  55. package/dist/icon-BR5aTIiP.js +100 -0
  56. package/dist/icon-BR5aTIiP.js.map +1 -0
  57. package/dist/icon-DQKdfR7U.d.ts +36 -0
  58. package/dist/icon-DQKdfR7U.d.ts.map +1 -0
  59. package/dist/icons.d.ts +3 -0
  60. package/dist/icons.js +9 -0
  61. package/dist/icons.js.map +1 -0
  62. package/dist/incr-search-BjCNClnC.js +311 -0
  63. package/dist/incr-search-BjCNClnC.js.map +1 -0
  64. package/dist/incr-search.d.ts +2 -0
  65. package/dist/incr-search.js +3 -0
  66. package/dist/index-B1hNR7Z9.d.ts +36 -0
  67. package/dist/index-B1hNR7Z9.d.ts.map +1 -0
  68. package/dist/index-C5dK8RZa.d.ts +23 -0
  69. package/dist/index-C5dK8RZa.d.ts.map +1 -0
  70. package/dist/index-C9iBN908.d.ts +160 -0
  71. package/dist/index-C9iBN908.d.ts.map +1 -0
  72. package/dist/index-CPVcTTXo.d.ts +396 -0
  73. package/dist/index-CPVcTTXo.d.ts.map +1 -0
  74. package/dist/index-CQxanqXF.d.ts +183 -0
  75. package/dist/index-CQxanqXF.d.ts.map +1 -0
  76. package/dist/index-CpbBI3n7.d.ts +1239 -0
  77. package/dist/index-CpbBI3n7.d.ts.map +1 -0
  78. package/dist/index.d.ts +422 -13
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +5729 -14
  81. package/dist/index.js.map +1 -1
  82. package/dist/interaction-CQDQJf2Q.js +1 -0
  83. package/dist/keyboard-De_vOHLg.js +20 -0
  84. package/dist/keyboard-De_vOHLg.js.map +1 -0
  85. package/dist/labelled-input-base-DS6-6C0r.js +155 -0
  86. package/dist/labelled-input-base-DS6-6C0r.js.map +1 -0
  87. package/dist/labelled-input-base-DnRh4reU.d.ts +43 -0
  88. package/dist/labelled-input-base-DnRh4reU.d.ts.map +1 -0
  89. package/dist/labelled-radial-input.d.ts +34 -0
  90. package/dist/labelled-radial-input.d.ts.map +1 -0
  91. package/dist/labelled-radial-input.js +188 -0
  92. package/dist/labelled-radial-input.js.map +1 -0
  93. package/dist/labelled-range-input.d.ts +2 -0
  94. package/dist/labelled-range-input.js +132 -0
  95. package/dist/labelled-range-input.js.map +1 -0
  96. package/dist/led.d.ts +25 -0
  97. package/dist/led.d.ts.map +1 -0
  98. package/dist/led.js +92 -0
  99. package/dist/led.js.map +1 -0
  100. package/dist/menu-BV6UFx_z.js +813 -0
  101. package/dist/menu-BV6UFx_z.js.map +1 -0
  102. package/dist/menu-item-Cikacp4F.d.ts +128 -0
  103. package/dist/menu-item-Cikacp4F.d.ts.map +1 -0
  104. package/dist/menu-item-DEzL_Yjk.js +766 -0
  105. package/dist/menu-item-DEzL_Yjk.js.map +1 -0
  106. package/dist/menu.d.ts +3 -0
  107. package/dist/menu.js +3 -0
  108. package/dist/miller.d.ts +324 -0
  109. package/dist/miller.d.ts.map +1 -0
  110. package/dist/miller.js +1343 -0
  111. package/dist/miller.js.map +1 -0
  112. package/dist/narrowed-text.d.ts +72 -0
  113. package/dist/narrowed-text.d.ts.map +1 -0
  114. package/dist/narrowed-text.js +571 -0
  115. package/dist/narrowed-text.js.map +1 -0
  116. package/dist/panel.d.ts +43 -0
  117. package/dist/panel.d.ts.map +1 -0
  118. package/dist/panel.js +408 -0
  119. package/dist/panel.js.map +1 -0
  120. package/dist/plots.d.ts +2 -0
  121. package/dist/plots.js +2 -0
  122. package/dist/polar-pad.d.ts +67 -0
  123. package/dist/polar-pad.d.ts.map +1 -0
  124. package/dist/polar-pad.js +537 -0
  125. package/dist/polar-pad.js.map +1 -0
  126. package/dist/popup-Ddx9LCzY.js +24 -0
  127. package/dist/popup-Ddx9LCzY.js.map +1 -0
  128. package/dist/prominence-CreDBdCs.js +98 -0
  129. package/dist/prominence-CreDBdCs.js.map +1 -0
  130. package/dist/radial-input-CNJ8asY2.js +849 -0
  131. package/dist/radial-input-CNJ8asY2.js.map +1 -0
  132. package/dist/radial-input-xSTd4kEz.d.ts +70 -0
  133. package/dist/radial-input-xSTd4kEz.d.ts.map +1 -0
  134. package/dist/radial-input.d.ts +2 -0
  135. package/dist/radial-input.js +2 -0
  136. package/dist/range-input.d.ts +43 -0
  137. package/dist/range-input.d.ts.map +1 -0
  138. package/dist/range-input.js +459 -0
  139. package/dist/range-input.js.map +1 -0
  140. package/dist/range.d.ts +28 -0
  141. package/dist/range.d.ts.map +1 -0
  142. package/dist/range.js +136 -0
  143. package/dist/range.js.map +1 -0
  144. package/dist/registry-CZEB1YI9.js +21 -0
  145. package/dist/registry-CZEB1YI9.js.map +1 -0
  146. package/dist/selecthorizontal.d.ts +13 -8
  147. package/dist/selecthorizontal.d.ts.map +1 -1
  148. package/dist/selecthorizontal.js +21 -25
  149. package/dist/selecthorizontal.js.map +1 -1
  150. package/dist/snap-container.d.ts +50 -0
  151. package/dist/snap-container.d.ts.map +1 -0
  152. package/dist/snap-container.js +297 -0
  153. package/dist/snap-container.js.map +1 -0
  154. package/dist/split-layout.d.ts +56 -0
  155. package/dist/split-layout.d.ts.map +1 -0
  156. package/dist/split-layout.js +545 -0
  157. package/dist/split-layout.js.map +1 -0
  158. package/dist/style.css +133 -0
  159. package/dist/swipe.d.ts +48 -0
  160. package/dist/swipe.d.ts.map +1 -0
  161. package/dist/swipe.js +204 -0
  162. package/dist/swipe.js.map +1 -0
  163. package/dist/tab-list-CFF7uSYH.d.ts +66 -0
  164. package/dist/tab-list-CFF7uSYH.d.ts.map +1 -0
  165. package/dist/tabs.d.ts +2 -0
  166. package/dist/tabs.js +203 -0
  167. package/dist/tabs.js.map +1 -0
  168. package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
  169. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
  170. package/dist/tickled-styles-Bg3QbcrD.js +327 -0
  171. package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
  172. package/dist/timeline-DBWJsSjd.js +1748 -0
  173. package/dist/timeline-DBWJsSjd.js.map +1 -0
  174. package/dist/timeline.d.ts +2 -0
  175. package/dist/timeline.js +2 -0
  176. package/dist/tooltip-DMxmBNky.js +104 -0
  177. package/dist/tooltip-DMxmBNky.js.map +1 -0
  178. package/dist/tooltip-kfUBWYVB.d.ts +26 -0
  179. package/dist/tooltip-kfUBWYVB.d.ts.map +1 -0
  180. package/dist/tree-component-CQpoPo4s.d.ts +326 -0
  181. package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
  182. package/dist/tree-data-model-DGvRVOFY.js +190 -0
  183. package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
  184. package/dist/tree.d.ts +100 -0
  185. package/dist/tree.d.ts.map +1 -0
  186. package/dist/tree.js +1144 -0
  187. package/dist/tree.js.map +1 -0
  188. package/dist/types-BKaqnpwx.d.ts +8 -0
  189. package/dist/types-BKaqnpwx.d.ts.map +1 -0
  190. package/dist/xy-axis-BANbgrI5.js +6243 -0
  191. package/dist/xy-axis-BANbgrI5.js.map +1 -0
  192. package/dist/xy-axis-CIFok7MF.d.ts +141 -0
  193. package/dist/xy-axis-CIFok7MF.d.ts.map +1 -0
  194. package/dist/xy-pad.d.ts +81 -0
  195. package/dist/xy-pad.d.ts.map +1 -0
  196. package/dist/xy-pad.js +435 -0
  197. package/dist/xy-pad.js.map +1 -0
  198. package/package.json +48 -39
  199. package/README.md +0 -14
  200. package/dist/charts/frequency-histogram-plot.d.ts +0 -33
  201. package/dist/charts/frequency-histogram-plot.d.ts.map +0 -1
  202. package/dist/charts/frequency-histogram-plot.js +0 -54
  203. package/dist/charts/frequency-histogram-plot.js.map +0 -1
  204. package/dist/charts/histogram-vis.d.ts +0 -57
  205. package/dist/charts/histogram-vis.d.ts.map +0 -1
  206. package/dist/charts/histogram-vis.js +0 -222
  207. package/dist/charts/histogram-vis.js.map +0 -1
  208. package/dist/charts/plot.d.ts +0 -199
  209. package/dist/charts/plot.d.ts.map +0 -1
  210. package/dist/charts/plot.js +0 -914
  211. package/dist/charts/plot.js.map +0 -1
  212. package/dist/crumb-nav.d.ts +0 -41
  213. package/dist/crumb-nav.d.ts.map +0 -1
  214. package/dist/crumb-nav.js +0 -198
  215. package/dist/crumb-nav.js.map +0 -1
  216. package/dist/crumb-navigation.d.ts +0 -30
  217. package/dist/crumb-navigation.d.ts.map +0 -1
  218. package/dist/crumb-navigation.js +0 -307
  219. package/dist/crumb-navigation.js.map +0 -1
  220. package/dist/dial.d.ts +0 -89
  221. package/dist/dial.d.ts.map +0 -1
  222. package/dist/dial.js +0 -506
  223. package/dist/dial.js.map +0 -1
  224. package/dist/my-element.d.ts +0 -14
  225. package/dist/my-element.d.ts.map +0 -1
  226. package/dist/my-element.js +0 -44
  227. package/dist/my-element.js.map +0 -1
  228. package/dist/split-layout/split-layout.d.ts +0 -35
  229. package/dist/split-layout/split-layout.d.ts.map +0 -1
  230. package/dist/split-layout/split-layout.js +0 -220
  231. package/dist/split-layout/split-layout.js.map +0 -1
  232. package/dist/svg-edit-label.d.ts +0 -2
  233. package/dist/svg-edit-label.d.ts.map +0 -1
  234. package/dist/svg-edit-label.js +0 -110
  235. package/dist/svg-edit-label.js.map +0 -1
  236. package/dist/tabs/tab-layout-item.d.ts +0 -10
  237. package/dist/tabs/tab-layout-item.d.ts.map +0 -1
  238. package/dist/tabs/tab-layout-item.js +0 -20
  239. package/dist/tabs/tab-layout-item.js.map +0 -1
  240. package/dist/tabs/tab-layout.d.ts +0 -10
  241. package/dist/tabs/tab-layout.d.ts.map +0 -1
  242. package/dist/tabs/tab-layout.js +0 -25
  243. package/dist/tabs/tab-layout.js.map +0 -1
  244. package/dist/tabs/tab-list-item.d.ts +0 -18
  245. package/dist/tabs/tab-list-item.d.ts.map +0 -1
  246. package/dist/tabs/tab-list-item.js +0 -63
  247. package/dist/tabs/tab-list-item.js.map +0 -1
  248. package/dist/tabs/tab-list.d.ts +0 -21
  249. package/dist/tabs/tab-list.d.ts.map +0 -1
  250. package/dist/tabs/tab-list.js +0 -148
  251. package/dist/tabs/tab-list.js.map +0 -1
  252. package/dist/tabs/tab-panel.d.ts +0 -11
  253. package/dist/tabs/tab-panel.d.ts.map +0 -1
  254. package/dist/tabs/tab-panel.js +0 -30
  255. package/dist/tabs/tab-panel.js.map +0 -1
  256. package/dist/tabs/tab-panels.d.ts +0 -30
  257. package/dist/tabs/tab-panels.d.ts.map +0 -1
  258. package/dist/tabs/tab-panels.js +0 -80
  259. package/dist/tabs/tab-panels.js.map +0 -1
  260. package/dist/util/circle-arc.d.ts +0 -34
  261. package/dist/util/circle-arc.d.ts.map +0 -1
  262. package/dist/util/circle-arc.js +0 -77
  263. package/dist/util/circle-arc.js.map +0 -1
  264. package/dist/util/compare.d.ts +0 -53
  265. package/dist/util/compare.d.ts.map +0 -1
  266. package/dist/util/compare.js +0 -91
  267. package/dist/util/compare.js.map +0 -1
  268. package/dist/util/content-editable.d.ts +0 -2
  269. package/dist/util/content-editable.d.ts.map +0 -1
  270. package/dist/util/content-editable.js +0 -13
  271. package/dist/util/content-editable.js.map +0 -1
  272. package/dist/util/drag-controller.d.ts +0 -13
  273. package/dist/util/drag-controller.d.ts.map +0 -1
  274. package/dist/util/drag-controller.js +0 -21
  275. package/dist/util/drag-controller.js.map +0 -1
  276. package/dist/util/key-value.d.ts +0 -5
  277. package/dist/util/key-value.d.ts.map +0 -1
  278. package/dist/util/key-value.js +0 -30
  279. package/dist/util/key-value.js.map +0 -1
  280. package/dist/util/primitive-types.d.ts +0 -6
  281. package/dist/util/primitive-types.d.ts.map +0 -1
  282. package/dist/util/primitive-types.js +0 -2
  283. package/dist/util/primitive-types.js.map +0 -1
  284. package/dist/util/svg-editable-text.d.ts +0 -22
  285. package/dist/util/svg-editable-text.d.ts.map +0 -1
  286. package/dist/util/svg-editable-text.js +0 -121
  287. package/dist/util/svg-editable-text.js.map +0 -1
  288. package/dist/util/time.d.ts +0 -2
  289. package/dist/util/time.d.ts.map +0 -1
  290. package/dist/util/time.js +0 -2
  291. package/dist/util/time.js.map +0 -1
@@ -0,0 +1,459 @@
1
+ import { t as __decorate } from "./decorate-BZbkqIhA.js";
2
+ import { t as tooltipValueStyles } from "./tooltip-DMxmBNky.js";
3
+ import { LitElement, css, html, nothing } from "lit";
4
+ import { customElement, property, query } from "lit/decorators.js";
5
+ //#region src/range-input/range-input.ts
6
+ function normalize(value, min, max) {
7
+ return max === min ? 0 : (value - min) / (max - min);
8
+ }
9
+ let RangeInput = class RangeInput extends LitElement {
10
+ constructor(..._args) {
11
+ super(..._args);
12
+ this.min = 0;
13
+ this.max = 1;
14
+ this.value = 0;
15
+ this.step = .01;
16
+ this.orientation = `horizontal`;
17
+ this.swipeable = false;
18
+ this.tooltip = false;
19
+ this.tooltipOrientation = `top`;
20
+ this._swipeModified = false;
21
+ this._onPointerDown = (e) => {
22
+ if (!this.swipeable) return;
23
+ e.preventDefault();
24
+ this._swipeModified = false;
25
+ this._applySwipeValue(this._valueFromPointer(e));
26
+ window.addEventListener(`pointerup`, this._onWindowPointerUp, { once: true });
27
+ };
28
+ this._onPointerMove = (e) => {
29
+ if (!this.swipeable || e.buttons === 0) return;
30
+ this._applySwipeValue(this._valueFromPointer(e));
31
+ };
32
+ this._onPointerEnter = (e) => {
33
+ if (!this.swipeable || e.buttons === 0) return;
34
+ this._swipeModified = false;
35
+ this._applySwipeValue(this._valueFromPointer(e));
36
+ window.addEventListener(`pointerup`, this._onWindowPointerUp, { once: true });
37
+ };
38
+ this._onPointerLeave = (_e) => {
39
+ if (!this.swipeable || !this._swipeModified) return;
40
+ this._swipeModified = false;
41
+ this.dispatchEvent(new CustomEvent(`change`, {
42
+ detail: { value: this.value },
43
+ bubbles: true,
44
+ composed: true
45
+ }));
46
+ };
47
+ this._onWindowPointerUp = () => {
48
+ if (!this._swipeModified) return;
49
+ this._swipeModified = false;
50
+ this.dispatchEvent(new CustomEvent(`change`, {
51
+ detail: { value: this.value },
52
+ bubbles: true,
53
+ composed: true
54
+ }));
55
+ };
56
+ this._handleInput = (e) => {
57
+ e.preventDefault();
58
+ e.stopImmediatePropagation();
59
+ const target = e.target;
60
+ const value = Number.parseFloat(target.value);
61
+ this.value = value;
62
+ this.style.setProperty(`--value`, String(normalize(value, this.min, this.max)));
63
+ this.dispatchEvent(new CustomEvent(`input`, {
64
+ detail: { value },
65
+ bubbles: true,
66
+ composed: true
67
+ }));
68
+ };
69
+ this._handleChange = () => {
70
+ const value = Number.parseFloat(this._inputEl.value);
71
+ this.dispatchEvent(new CustomEvent(`change`, {
72
+ detail: { value },
73
+ bubbles: true,
74
+ composed: true
75
+ }));
76
+ };
77
+ }
78
+ connectedCallback() {
79
+ super.connectedCallback();
80
+ this.addEventListener(`pointerdown`, this._onPointerDown);
81
+ this.addEventListener(`pointermove`, this._onPointerMove);
82
+ this.addEventListener(`pointerenter`, this._onPointerEnter);
83
+ this.addEventListener(`pointerleave`, this._onPointerLeave);
84
+ }
85
+ disconnectedCallback() {
86
+ super.disconnectedCallback();
87
+ this.removeEventListener(`pointerdown`, this._onPointerDown);
88
+ this.removeEventListener(`pointermove`, this._onPointerMove);
89
+ this.removeEventListener(`pointerenter`, this._onPointerEnter);
90
+ this.removeEventListener(`pointerleave`, this._onPointerLeave);
91
+ window.removeEventListener(`pointerup`, this._onWindowPointerUp);
92
+ }
93
+ _valueFromPointer(e) {
94
+ const rect = this.getBoundingClientRect();
95
+ const normalized = this.orientation === `vertical` ? Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height)) : Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));
96
+ const raw = this.min + normalized * (this.max - this.min);
97
+ const snapped = Math.round((raw - this.min) / this.step) * this.step + this.min;
98
+ return Math.max(this.min, Math.min(this.max, snapped));
99
+ }
100
+ _applySwipeValue(value) {
101
+ this.value = value;
102
+ if (this._inputEl) this._inputEl.value = String(value);
103
+ this.style.setProperty(`--value`, String(normalize(value, this.min, this.max)));
104
+ this.dispatchEvent(new CustomEvent(`input`, {
105
+ detail: { value },
106
+ bubbles: true,
107
+ composed: true
108
+ }));
109
+ this._swipeModified = true;
110
+ }
111
+ updated(changedProperties) {
112
+ super.updated(changedProperties);
113
+ if (changedProperties.has(`value`) || changedProperties.has(`min`) || changedProperties.has(`max`)) this.style.setProperty(`--value`, String(normalize(this.value, this.min, this.max)));
114
+ if (this._tooltipEl) this._tooltipEl.valueFormatTooltip = (v) => {
115
+ const num = typeof v === `number` ? v : Number(v);
116
+ if (this.labelFormatter) return this.labelFormatter(num, normalize(num, this.min, this.max));
117
+ const decimals = this.step >= 1 ? 0 : this.step >= .1 ? 1 : 2;
118
+ return num.toFixed(decimals);
119
+ };
120
+ }
121
+ _formatTooltipLabel() {
122
+ const normalized = normalize(this.value, this.min, this.max);
123
+ if (this.labelFormatter) return this.labelFormatter(this.value, normalized);
124
+ const decimals = this.step >= 1 ? 0 : this.step >= .1 ? 1 : 2;
125
+ return this.value.toFixed(decimals);
126
+ }
127
+ render() {
128
+ const tooltipEl = this.tooltip ? html`
129
+ <ixfx-tooltip
130
+ style="--tooltip-background: var(--surface-5); --tooltip-color: var(--surface-5-text)"
131
+ .orientation=${this.tooltipOrientation}
132
+ anchor="--ixfx-ri-thumb"
133
+ .value=${this.value}
134
+ ></ixfx-tooltip>
135
+ ` : nothing;
136
+ return html`
137
+ <div class="wrap">
138
+ <div class="range-bg"></div>
139
+ <input
140
+ type="range"
141
+ .min=${String(this.min)}
142
+ .max=${String(this.max)}
143
+ .step=${String(this.step)}
144
+ .value=${String(this.value)}
145
+ @input=${this._handleInput}
146
+ @change=${this._handleChange}
147
+ >${tooltipEl}
148
+ </div>
149
+ `;
150
+ }
151
+ static {
152
+ this.styles = [tooltipValueStyles, css`
153
+ :host {
154
+ display: block;
155
+ container-type: size;
156
+ user-select: none;
157
+ touch-action: none;
158
+ -webkit-touch-action: none;
159
+ width: var(--width, 200px);
160
+ height: var(--height, 2em);
161
+
162
+ /*
163
+ * Internal resolved vars — read public vars and apply defaults here.
164
+ * Public vars are NOT defined in :host {}, only read via fallback.
165
+ * This lets inherited values from ancestor elements flow through.
166
+ */
167
+ --_track-thickness: var(--track-thickness, 100%);
168
+ --_thumb-thickness: var(--thumb-thickness, 2em);
169
+ --_thumb-color: var(--thumb-color, var(--surface-2-text));
170
+ --_thumb-color-active: var(--thumb-color-active, var(--surface-2-text));
171
+ --_thumb-opacity: var(--thumb-opacity, 0.7);
172
+ --_thumb-opacity-hover: var(--thumb-opacity-hover, 0.8);
173
+ --_thumb-opacity-active: var(--thumb-opacity-active, 1);
174
+ --_thumb-size: var(--thumb-size, var(--_track-thickness));
175
+ --_thumb-radius: var(--thumb-radius, 0);
176
+ --_thumb-border: var(--thumb-border, none);
177
+ --_thumb-shadow: var(--thumb-shadow, none);
178
+ --_track-radius: var(--track-radius, none);
179
+ --_track-corner-shape: var(--track-corner-shape, none);
180
+ --_bg-track: var(--background-track, var(--surface-4));
181
+ --_bg-track-hover: var(--background-track-hover, var(--_bg-track));
182
+ --_bg-track-value: var(--background-track-value, var(--surface-6));
183
+ --_bg-track-value-hover: var(--background-track-value-hover, var(--accent));
184
+ --_bg-track-value-active: var(--background-track-value-active, var(--accent));
185
+
186
+ --value: 0;
187
+ --sx1: calc(var(--_thumb-thickness) + var(--value) * (100% - var(--_thumb-thickness)));
188
+ --track-avail: calc(100% - var(--_thumb-thickness));
189
+ --sx: calc(var(--_thumb-thickness) + (var(--value) * var(--track-avail)));
190
+ --track-mask: linear-gradient(to right, rgba(0,0,0,1) var(--sx), rgba(0,0,0,0) var(--sx) 100%);
191
+ --track-mask-vertical: linear-gradient(to top, rgba(0,0,0,1) var(--sx), rgba(0,0,0,0) var(--sx) 100%);
192
+ }
193
+
194
+ :host([orientation="vertical"]) {
195
+ width: var(--width, 2em);
196
+ height: var(--height, 200px);
197
+ }
198
+
199
+ .wrap {
200
+ display: grid;
201
+ width: 100%;
202
+ height: 100%;
203
+ }
204
+
205
+ .wrap > * {
206
+ grid-area: 1 / 1;
207
+ }
208
+
209
+ .range-bg {
210
+ background: var(--_bg-track);
211
+ width: 100%;
212
+ height: 100%;
213
+ margin: 0;
214
+ padding: 0;
215
+ border-radius: var(--_track-radius);
216
+ corner-shape: var(--_track-corner-shape);
217
+ }
218
+
219
+ .wrap:hover .range-bg {
220
+ background: var(--_bg-track-hover);
221
+ }
222
+
223
+ input[type=range] {
224
+ margin: 0;
225
+ padding: 0;
226
+ -webkit-appearance: none;
227
+ background: unset;
228
+ box-shadow: none;
229
+ width: 100%;
230
+ height: var(--_track-thickness);
231
+ align-self: center;
232
+ }
233
+
234
+ input[type=range]:focus {
235
+ outline: none;
236
+ }
237
+
238
+ /* Vertical layout */
239
+ :host([orientation="vertical"]) .range-bg {
240
+ background: var(--background-track-vertical, var(--_bg-track));
241
+ width: var(--_track-thickness);
242
+ height: 100%;
243
+ justify-self: center;
244
+ }
245
+
246
+ :host([orientation="vertical"]) .wrap:hover .range-bg {
247
+ background: var(--background-track-hover-vertical, var(--_bg-track-hover));
248
+ }
249
+
250
+ :host([orientation="vertical"]) input[type=range] {
251
+ writing-mode: vertical-rl;
252
+ direction: rtl;
253
+ width: var(--_track-thickness);
254
+ height: 100%;
255
+ justify-self: center;
256
+ }
257
+
258
+ /* ── Webkit thumb ── */
259
+ input[type=range]::-webkit-slider-thumb {
260
+ -webkit-appearance: none;
261
+ opacity: var(--_thumb-opacity);
262
+ box-sizing: border-box;
263
+ anchor-name: --ixfx-ri-thumb;
264
+ width: var(--_thumb-thickness);
265
+ height: var(--_thumb-size);
266
+ border-radius: var(--_thumb-radius);
267
+ background: var(--_thumb-color);
268
+ border: var(--_thumb-border);
269
+ box-shadow: var(--_thumb-shadow);
270
+ margin-top: calc(max((var(--_thumb-thickness) - 1px - 1px) * 0.5, 0px) - var(--_thumb-thickness) * 0.5);
271
+ }
272
+
273
+ :host([orientation="vertical"]) input[type=range]::-webkit-slider-thumb {
274
+ width: var(--_thumb-size);
275
+ height: var(--_thumb-thickness);
276
+ margin-top: 0;
277
+ margin-left: calc(max((1em - 1px - 1px) * 0.5, 0px) - 1.2em * 0.5);
278
+ }
279
+
280
+ input[type=range]::-webkit-slider-thumb:hover {
281
+ opacity: var(--_thumb-opacity-hover);
282
+ }
283
+
284
+ input[type=range]::-webkit-slider-thumb:active {
285
+ opacity: var(--_thumb-opacity-active);
286
+ }
287
+ input[type=range]::-webkit-slider-thumb:hover,
288
+ input[type=range]::-webkit-slider-thumb:active {
289
+ background: var(--_thumb-color-active);
290
+ }
291
+
292
+ /* ── Webkit track ── */
293
+ input[type=range]::-webkit-slider-runnable-track {
294
+ height: var(--_track-thickness);
295
+ background: var(--_bg-track-value);
296
+ mask-image: var(--track-mask);
297
+ box-shadow: none;
298
+ margin: 0;
299
+ padding: 0;
300
+ border-radius: var(--_track-radius);
301
+ corner-shape: var(--_track-corner-shape);
302
+ }
303
+
304
+ input[type=range]:hover::-webkit-slider-runnable-track {
305
+ background: var(--_bg-track-value-hover);
306
+ mask-image: var(--track-mask);
307
+ }
308
+
309
+ input[type=range]:active::-webkit-slider-runnable-track {
310
+ background: var(--_bg-track-value-active);
311
+ mask-image: var(--track-mask);
312
+ }
313
+
314
+ :host([orientation="vertical"]) input[type=range]::-webkit-slider-runnable-track {
315
+ background: var(--background-track-value-vertical, var(--_bg-track-value));
316
+ mask-image: var(--track-mask-vertical);
317
+ width: var(--_track-thickness);
318
+ height: unset;
319
+ }
320
+
321
+ :host([orientation="vertical"]) input[type=range]:hover::-webkit-slider-runnable-track {
322
+ background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));
323
+ mask-image: var(--track-mask-vertical);
324
+ }
325
+
326
+ :host([orientation="vertical"]) input[type=range]:active::-webkit-slider-runnable-track {
327
+ background: var(--background-track-value-active-vertical, var(--_bg-track-value-active));
328
+ mask-image: var(--track-mask-vertical);
329
+ }
330
+
331
+ /* ── Mozilla thumb ── */
332
+ input[type=range]::-moz-range-thumb {
333
+ box-sizing: border-box;
334
+ width: var(--_thumb-thickness);
335
+ height: var(--_thumb-size);
336
+ border-radius: var(--_thumb-radius);
337
+ background: var(--_thumb-color);
338
+ border: var(--_thumb-border);
339
+ box-shadow: var(--_thumb-shadow);
340
+ }
341
+
342
+ :host([orientation="vertical"]) input[type=range]::-moz-range-thumb {
343
+ width: var(--_thumb-size);
344
+ height: var(--_thumb-thickness);
345
+ }
346
+
347
+ input[type=range]::-moz-range-thumb:hover,
348
+ input[type=range]::-moz-range-thumb:active {
349
+ background: var(--_thumb-color-active);
350
+ }
351
+
352
+ /* ── Mozilla track ── */
353
+ input[type=range]::-moz-range-track {
354
+ height: var(--_track-thickness);
355
+ background: var(--_bg-track-value);
356
+ mask-image: var(--track-mask);
357
+ box-shadow: none;
358
+ margin: 0;
359
+ padding: 0;
360
+ }
361
+
362
+ input[type=range]:hover::-moz-range-track {
363
+ background: var(--_bg-track-value-hover);
364
+ mask-image: var(--track-mask);
365
+ }
366
+
367
+ input[type=range]:active::-moz-range-track {
368
+ background: var(--_bg-track-value-active);
369
+ mask-image: var(--track-mask);
370
+ }
371
+
372
+ :host([orientation="vertical"]) input[type=range]::-moz-range-track {
373
+ background: var(--background-track-value-vertical, var(--_bg-track-value));
374
+ mask-image: var(--track-mask-vertical);
375
+ height: unset;
376
+ width: var(--_track-thickness);
377
+ }
378
+
379
+ :host([orientation="vertical"]) input[type=range]:hover::-moz-range-track {
380
+ background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));
381
+ mask-image: var(--track-mask-vertical);
382
+ }
383
+
384
+ :host([orientation="vertical"]) input[type=range]:active::-moz-range-track {
385
+ background: var(--background-track-value-active-vertical, var(--_bg-track-value-active));
386
+ mask-image: var(--track-mask-vertical);
387
+ }
388
+
389
+ /* ── Swipeable mode ── */
390
+ /* Disable native pointer capture so the cursor can move freely between sliders */
391
+ :host([swipeable]) input {
392
+ pointer-events: none;
393
+ }
394
+
395
+ /* In swipeable mode, disable pointer events on wrap so host receives hover */
396
+ :host([swipeable]) .wrap {
397
+ pointer-events: none;
398
+ }
399
+
400
+ /* In swipeable mode, use host hover to trigger track/thumb hover styles */
401
+ :host([swipeable]):hover input[type=range]::-webkit-slider-runnable-track {
402
+ background: var(--_bg-track-value-hover);
403
+ }
404
+
405
+ :host([swipeable]):hover input[type=range]::-webkit-slider-thumb {
406
+ background: var(--_thumb-color-active);
407
+ }
408
+
409
+ :host([swipeable][orientation="vertical"]):hover input[type=range]::-webkit-slider-runnable-track {
410
+ background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));
411
+ }
412
+
413
+ :host([swipeable]):hover input[type=range]::-moz-range-track {
414
+ background: var(--_bg-track-value-hover);
415
+ }
416
+
417
+ :host([swipeable]):hover input[type=range]::-moz-range-thumb {
418
+ background: var(--_thumb-color-active);
419
+ }
420
+
421
+ :host([swipeable][orientation="vertical"]):hover input[type=range]::-moz-range-track {
422
+ background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));
423
+ }
424
+
425
+ :host([swipeable]):hover .range-bg {
426
+ background: var(--_bg-track-hover);
427
+ }
428
+
429
+ :host([swipeable][orientation="vertical"]):hover .range-bg {
430
+ background: var(--background-track-hover-vertical, var(--_bg-track-hover));
431
+ }
432
+ `];
433
+ }
434
+ };
435
+ __decorate([property({ type: Number })], RangeInput.prototype, "min", void 0);
436
+ __decorate([property({ type: Number })], RangeInput.prototype, "max", void 0);
437
+ __decorate([property({ type: Number })], RangeInput.prototype, "value", void 0);
438
+ __decorate([property({ type: Number })], RangeInput.prototype, "step", void 0);
439
+ __decorate([property({
440
+ type: String,
441
+ reflect: true
442
+ })], RangeInput.prototype, "orientation", void 0);
443
+ __decorate([property({
444
+ type: Boolean,
445
+ reflect: true
446
+ })], RangeInput.prototype, "swipeable", void 0);
447
+ __decorate([property({ type: Boolean })], RangeInput.prototype, "tooltip", void 0);
448
+ __decorate([property({
449
+ type: String,
450
+ attribute: `tooltip-orientation`
451
+ })], RangeInput.prototype, "tooltipOrientation", void 0);
452
+ __decorate([property({ attribute: false })], RangeInput.prototype, "labelFormatter", void 0);
453
+ __decorate([query(`input`)], RangeInput.prototype, "_inputEl", void 0);
454
+ __decorate([query(`ixfx-tooltip`)], RangeInput.prototype, "_tooltipEl", void 0);
455
+ RangeInput = __decorate([customElement(`ixfx-range-input`)], RangeInput);
456
+ //#endregion
457
+ export { RangeInput };
458
+
459
+ //# sourceMappingURL=range-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range-input.js","names":[],"sources":["../src/range-input/range-input.ts"],"sourcesContent":["/**\n * <ixfx-range-input> — styled range input with no label.\n *\n * A thin wrapper around <input type=\"range\"> that adds the same\n * fancy track/thumb/fill styling as the linear-value components,\n * without the label display.\n *\n * Supports horizontal (default) and vertical orientation in a single element.\n * Set orientation=\"vertical\" attribute to switch.\n *\n * CSS Variables:\n * --track-thickness Track cross-axis size (default 1.5em)\n * --thumb-color Thumb fill (default var(--surface-2-text))\n * --thumb-color-active Thumb fill on hover/active (default var(--accent))\n * --thumb-size Thumb cross-axis size (default var(--track-thickness))\n * --thumb-thickness Thumb inline size (default 2em)\n * --thumb-radius Thumb border-radius (default 0)\n * --thumb-border Thumb border (default none)\n * --thumb-shadow Thumb box-shadow (default none)\n * --background-track Unfilled track background (default var(--surface-4))\n * --background-track-hover Unfilled track on hover (default --background-track)\n * --background-track-value Filled track color (default var(--surface-6))\n * --background-track-value-hover Filled track on hover (default var(--accent))\n * --background-track-value-active Filled track on active (default var(--accent))\n *\n * Optional vertical-specific overrides (fall back to horizontal vars when unset):\n * --background-track-vertical\n * --background-track-value-vertical\n * --background-track-value-hover-vertical\n * --background-track-value-active-vertical\n *\n * Tooltip:\n * tooltip Boolean attribute — enables value tooltip on hover/focus\n * tooltip-orientation 'top' (default) | 'right'\n * labelFormatter Function property (not attribute): (rawValue: number, scaledValue: number) => string\n * rawValue = native input value within min..max\n * scaledValue = normalised 0..1 position\n *\n * Swipeable mode:\n * swipeable Boolean attribute — enables swipe-to-draw gesture.\n * When active, pressing down on the slider or entering it while the\n * pointer is pressed sets the value from the cursor coordinate.\n * Pointer capture is NOT held, so the cursor can move to adjacent\n * swipeable sliders and update them too (step-sequencer style).\n * Kill-axis exit (above/below for horizontal, left/right for vertical)\n * freezes the value; re-entering re-engages.\n *\n * Events:\n * input — CustomEvent<{ value: number }>\n * change — CustomEvent<{ value: number }>\n * In swipeable mode fires on pointerleave (or pointerup if released\n * while still inside). In normal mode delegates to native change.\n */\nimport type { CSSResultGroup } from 'lit';\nimport type { TooltipElement, TooltipOrientations } from '../util/tooltip.js';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { tooltipValueStyles } from '../styles/tooltip.js';\n\nfunction normalize(value: number, min: number, max: number): number {\n return max === min ? 0 : (value - min) / (max - min);\n}\n\n@customElement(`ixfx-range-input`)\nexport class RangeInput extends LitElement {\n @property({ type: Number }) min = 0;\n @property({ type: Number }) max = 1;\n @property({ type: Number }) value = 0;\n @property({ type: Number }) step = 0.01;\n @property({ type: String, reflect: true }) orientation: `horizontal` | `vertical` = `horizontal`;\n @property({ type: Boolean, reflect: true }) swipeable = false;\n @property({ type: Boolean }) tooltip = false;\n @property({ type: String, attribute: `tooltip-orientation` }) tooltipOrientation: TooltipOrientations = `top`;\n @property({ attribute: false }) labelFormatter?: (rawValue: number, scaledValue: number) => string;\n\n @query(`input`)\n _inputEl!: HTMLInputElement;\n\n @query(`ixfx-tooltip`)\n _tooltipEl?: TooltipElement | null;\n\n /** True if this slider changed its value during the current pointer visit. */\n private _swipeModified = false;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener(`pointerdown`, this._onPointerDown);\n this.addEventListener(`pointermove`, this._onPointerMove);\n this.addEventListener(`pointerenter`, this._onPointerEnter);\n this.addEventListener(`pointerleave`, this._onPointerLeave);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener(`pointerdown`, this._onPointerDown);\n this.removeEventListener(`pointermove`, this._onPointerMove);\n this.removeEventListener(`pointerenter`, this._onPointerEnter);\n this.removeEventListener(`pointerleave`, this._onPointerLeave);\n window.removeEventListener(`pointerup`, this._onWindowPointerUp);\n }\n\n private _valueFromPointer(e: PointerEvent): number {\n const rect = this.getBoundingClientRect();\n // vertical: top = max, bottom = min (writing-mode: vertical-rl; direction: rtl)\n const normalized = this.orientation === `vertical`\n ? Math.max(0, Math.min(1, 1 - (e.clientY - rect.top) / rect.height))\n : Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n const raw = this.min + normalized * (this.max - this.min);\n const snapped = Math.round((raw - this.min) / this.step) * this.step + this.min;\n return Math.max(this.min, Math.min(this.max, snapped));\n }\n\n private _applySwipeValue(value: number): void {\n this.value = value;\n if (this._inputEl)\n this._inputEl.value = String(value);\n this.style.setProperty(`--value`, String(normalize(value, this.min, this.max)));\n this.dispatchEvent(new CustomEvent(`input`, { detail: { value }, bubbles: true, composed: true }));\n this._swipeModified = true;\n }\n\n private _onPointerDown = (e: PointerEvent): void => {\n if (!this.swipeable)\n return;\n e.preventDefault();\n this._swipeModified = false;\n this._applySwipeValue(this._valueFromPointer(e));\n window.addEventListener(`pointerup`, this._onWindowPointerUp, { once: true });\n };\n\n private _onPointerMove = (e: PointerEvent): void => {\n if (!this.swipeable || e.buttons === 0)\n return;\n this._applySwipeValue(this._valueFromPointer(e));\n };\n\n private _onPointerEnter = (e: PointerEvent): void => {\n if (!this.swipeable || e.buttons === 0)\n return;\n this._swipeModified = false;\n this._applySwipeValue(this._valueFromPointer(e));\n window.addEventListener(`pointerup`, this._onWindowPointerUp, { once: true });\n };\n\n private _onPointerLeave = (_e: PointerEvent): void => {\n if (!this.swipeable || !this._swipeModified)\n return;\n this._swipeModified = false;\n this.dispatchEvent(new CustomEvent(`change`, { detail: { value: this.value }, bubbles: true, composed: true }));\n };\n\n private _onWindowPointerUp = (): void => {\n if (!this._swipeModified)\n return;\n this._swipeModified = false;\n this.dispatchEvent(new CustomEvent(`change`, { detail: { value: this.value }, bubbles: true, composed: true }));\n };\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has(`value`) || changedProperties.has(`min`) || changedProperties.has(`max`)) {\n this.style.setProperty(`--value`, String(normalize(this.value, this.min, this.max)));\n }\n if (this._tooltipEl) {\n this._tooltipEl.valueFormatTooltip = (v: unknown) => {\n const num = typeof v === `number` ? v : Number(v);\n if (this.labelFormatter)\n return this.labelFormatter(num, normalize(num, this.min, this.max));\n const decimals = this.step >= 1 ? 0 : this.step >= 0.1 ? 1 : 2;\n return num.toFixed(decimals);\n };\n }\n }\n\n _handleInput = (e: Event): void => {\n e.preventDefault();\n e.stopImmediatePropagation();\n const target = e.target as HTMLInputElement;\n const value = Number.parseFloat(target.value);\n this.value = value;\n this.style.setProperty(`--value`, String(normalize(value, this.min, this.max)));\n this.dispatchEvent(new CustomEvent(`input`, { detail: { value }, bubbles: true, composed: true }));\n };\n\n _formatTooltipLabel(): string {\n const normalized = normalize(this.value, this.min, this.max);\n if (this.labelFormatter)\n return this.labelFormatter(this.value, normalized);\n const decimals = this.step >= 1 ? 0 : this.step >= 0.1 ? 1 : 2;\n return this.value.toFixed(decimals);\n }\n\n _handleChange = (): void => {\n const value = Number.parseFloat(this._inputEl.value);\n this.dispatchEvent(new CustomEvent(`change`, { detail: { value }, bubbles: true, composed: true }));\n };\n\n override render() {\n const tooltipEl = this.tooltip\n ? html`\n <ixfx-tooltip\n style=\"--tooltip-background: var(--surface-5); --tooltip-color: var(--surface-5-text)\"\n .orientation=${this.tooltipOrientation}\n anchor=\"--ixfx-ri-thumb\"\n .value=${this.value}\n ></ixfx-tooltip>\n `\n : nothing;\n\n return html`\n <div class=\"wrap\">\n <div class=\"range-bg\"></div>\n <input\n type=\"range\"\n .min=${String(this.min)}\n .max=${String(this.max)}\n .step=${String(this.step)}\n .value=${String(this.value)}\n @input=${this._handleInput}\n @change=${this._handleChange}\n >${tooltipEl}\n </div>\n `;\n }\n\n static styles: CSSResultGroup = [tooltipValueStyles, css`\n :host {\n display: block;\n container-type: size;\n user-select: none;\n touch-action: none;\n -webkit-touch-action: none;\n width: var(--width, 200px);\n height: var(--height, 2em);\n\n /*\n * Internal resolved vars — read public vars and apply defaults here.\n * Public vars are NOT defined in :host {}, only read via fallback.\n * This lets inherited values from ancestor elements flow through.\n */\n --_track-thickness: var(--track-thickness, 100%);\n --_thumb-thickness: var(--thumb-thickness, 2em);\n --_thumb-color: var(--thumb-color, var(--surface-2-text));\n --_thumb-color-active: var(--thumb-color-active, var(--surface-2-text));\n --_thumb-opacity: var(--thumb-opacity, 0.7);\n --_thumb-opacity-hover: var(--thumb-opacity-hover, 0.8);\n --_thumb-opacity-active: var(--thumb-opacity-active, 1); \n --_thumb-size: var(--thumb-size, var(--_track-thickness));\n --_thumb-radius: var(--thumb-radius, 0);\n --_thumb-border: var(--thumb-border, none);\n --_thumb-shadow: var(--thumb-shadow, none);\n --_track-radius: var(--track-radius, none);\n --_track-corner-shape: var(--track-corner-shape, none);\n --_bg-track: var(--background-track, var(--surface-4));\n --_bg-track-hover: var(--background-track-hover, var(--_bg-track));\n --_bg-track-value: var(--background-track-value, var(--surface-6));\n --_bg-track-value-hover: var(--background-track-value-hover, var(--accent));\n --_bg-track-value-active: var(--background-track-value-active, var(--accent));\n\n --value: 0;\n --sx1: calc(var(--_thumb-thickness) + var(--value) * (100% - var(--_thumb-thickness)));\n --track-avail: calc(100% - var(--_thumb-thickness));\n --sx: calc(var(--_thumb-thickness) + (var(--value) * var(--track-avail)));\n --track-mask: linear-gradient(to right, rgba(0,0,0,1) var(--sx), rgba(0,0,0,0) var(--sx) 100%);\n --track-mask-vertical: linear-gradient(to top, rgba(0,0,0,1) var(--sx), rgba(0,0,0,0) var(--sx) 100%);\n }\n\n :host([orientation=\"vertical\"]) {\n width: var(--width, 2em);\n height: var(--height, 200px);\n }\n\n .wrap {\n display: grid;\n width: 100%;\n height: 100%;\n }\n\n .wrap > * {\n grid-area: 1 / 1;\n }\n\n .range-bg {\n background: var(--_bg-track);\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n border-radius: var(--_track-radius);\n corner-shape: var(--_track-corner-shape);\n }\n\n .wrap:hover .range-bg {\n background: var(--_bg-track-hover);\n }\n\n input[type=range] {\n margin: 0;\n padding: 0;\n -webkit-appearance: none;\n background: unset;\n box-shadow: none;\n width: 100%;\n height: var(--_track-thickness);\n align-self: center;\n }\n\n input[type=range]:focus {\n outline: none;\n }\n\n /* Vertical layout */\n :host([orientation=\"vertical\"]) .range-bg {\n background: var(--background-track-vertical, var(--_bg-track));\n width: var(--_track-thickness);\n height: 100%;\n justify-self: center;\n }\n\n :host([orientation=\"vertical\"]) .wrap:hover .range-bg {\n background: var(--background-track-hover-vertical, var(--_bg-track-hover));\n }\n\n :host([orientation=\"vertical\"]) input[type=range] {\n writing-mode: vertical-rl;\n direction: rtl;\n width: var(--_track-thickness);\n height: 100%;\n justify-self: center;\n }\n\n /* ── Webkit thumb ── */\n input[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n opacity: var(--_thumb-opacity);\n box-sizing: border-box;\n anchor-name: --ixfx-ri-thumb;\n width: var(--_thumb-thickness);\n height: var(--_thumb-size);\n border-radius: var(--_thumb-radius);\n background: var(--_thumb-color);\n border: var(--_thumb-border);\n box-shadow: var(--_thumb-shadow);\n margin-top: calc(max((var(--_thumb-thickness) - 1px - 1px) * 0.5, 0px) - var(--_thumb-thickness) * 0.5);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]::-webkit-slider-thumb {\n width: var(--_thumb-size);\n height: var(--_thumb-thickness);\n margin-top: 0;\n margin-left: calc(max((1em - 1px - 1px) * 0.5, 0px) - 1.2em * 0.5);\n }\n\n input[type=range]::-webkit-slider-thumb:hover {\n opacity: var(--_thumb-opacity-hover);\n }\n\n input[type=range]::-webkit-slider-thumb:active {\n opacity: var(--_thumb-opacity-active);\n }\n input[type=range]::-webkit-slider-thumb:hover,\n input[type=range]::-webkit-slider-thumb:active {\n background: var(--_thumb-color-active);\n }\n\n /* ── Webkit track ── */\n input[type=range]::-webkit-slider-runnable-track {\n height: var(--_track-thickness);\n background: var(--_bg-track-value);\n mask-image: var(--track-mask);\n box-shadow: none;\n margin: 0;\n padding: 0;\n border-radius: var(--_track-radius);\n corner-shape: var(--_track-corner-shape);\n }\n\n input[type=range]:hover::-webkit-slider-runnable-track {\n background: var(--_bg-track-value-hover);\n mask-image: var(--track-mask);\n }\n\n input[type=range]:active::-webkit-slider-runnable-track {\n background: var(--_bg-track-value-active);\n mask-image: var(--track-mask);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]::-webkit-slider-runnable-track {\n background: var(--background-track-value-vertical, var(--_bg-track-value));\n mask-image: var(--track-mask-vertical);\n width: var(--_track-thickness);\n height: unset;\n }\n\n :host([orientation=\"vertical\"]) input[type=range]:hover::-webkit-slider-runnable-track {\n background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));\n mask-image: var(--track-mask-vertical);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]:active::-webkit-slider-runnable-track {\n background: var(--background-track-value-active-vertical, var(--_bg-track-value-active));\n mask-image: var(--track-mask-vertical);\n }\n\n /* ── Mozilla thumb ── */\n input[type=range]::-moz-range-thumb {\n box-sizing: border-box;\n width: var(--_thumb-thickness);\n height: var(--_thumb-size);\n border-radius: var(--_thumb-radius);\n background: var(--_thumb-color);\n border: var(--_thumb-border);\n box-shadow: var(--_thumb-shadow);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]::-moz-range-thumb {\n width: var(--_thumb-size);\n height: var(--_thumb-thickness);\n }\n\n input[type=range]::-moz-range-thumb:hover,\n input[type=range]::-moz-range-thumb:active {\n background: var(--_thumb-color-active);\n }\n\n /* ── Mozilla track ── */\n input[type=range]::-moz-range-track {\n height: var(--_track-thickness);\n background: var(--_bg-track-value);\n mask-image: var(--track-mask);\n box-shadow: none;\n margin: 0;\n padding: 0;\n }\n\n input[type=range]:hover::-moz-range-track {\n background: var(--_bg-track-value-hover);\n mask-image: var(--track-mask);\n }\n\n input[type=range]:active::-moz-range-track {\n background: var(--_bg-track-value-active);\n mask-image: var(--track-mask);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]::-moz-range-track {\n background: var(--background-track-value-vertical, var(--_bg-track-value));\n mask-image: var(--track-mask-vertical);\n height: unset;\n width: var(--_track-thickness);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]:hover::-moz-range-track {\n background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));\n mask-image: var(--track-mask-vertical);\n }\n\n :host([orientation=\"vertical\"]) input[type=range]:active::-moz-range-track {\n background: var(--background-track-value-active-vertical, var(--_bg-track-value-active));\n mask-image: var(--track-mask-vertical);\n }\n\n /* ── Swipeable mode ── */\n /* Disable native pointer capture so the cursor can move freely between sliders */\n :host([swipeable]) input {\n pointer-events: none;\n }\n\n /* In swipeable mode, disable pointer events on wrap so host receives hover */\n :host([swipeable]) .wrap {\n pointer-events: none;\n }\n\n /* In swipeable mode, use host hover to trigger track/thumb hover styles */\n :host([swipeable]):hover input[type=range]::-webkit-slider-runnable-track {\n background: var(--_bg-track-value-hover);\n }\n\n :host([swipeable]):hover input[type=range]::-webkit-slider-thumb {\n background: var(--_thumb-color-active);\n }\n\n :host([swipeable][orientation=\"vertical\"]):hover input[type=range]::-webkit-slider-runnable-track {\n background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));\n }\n\n :host([swipeable]):hover input[type=range]::-moz-range-track {\n background: var(--_bg-track-value-hover);\n }\n\n :host([swipeable]):hover input[type=range]::-moz-range-thumb {\n background: var(--_thumb-color-active);\n }\n\n :host([swipeable][orientation=\"vertical\"]):hover input[type=range]::-moz-range-track {\n background: var(--background-track-value-hover-vertical, var(--_bg-track-value-hover));\n }\n\n :host([swipeable]):hover .range-bg {\n background: var(--_bg-track-hover);\n }\n\n :host([swipeable][orientation=\"vertical\"]):hover .range-bg {\n background: var(--background-track-hover-vertical, var(--_bg-track-hover));\n }\n `];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-range-input': RangeInput;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { r as TooltipOrientations } from "./tooltip-kfUBWYVB.js";
2
+ import * as _$lit from "lit";
3
+ import { LitElement } from "lit";
4
+
5
+ //#region src/range/range.d.ts
6
+ declare class RangeElement extends LitElement {
7
+ #private;
8
+ tooltip: boolean;
9
+ tooltipOrientation: TooltipOrientations;
10
+ orientation: `horizontal` | `vertical`;
11
+ disabled: boolean;
12
+ min: number;
13
+ max: number;
14
+ set value(v: number);
15
+ get value(): number;
16
+ step: number;
17
+ onRangeInput(event: InputEvent): void;
18
+ protected render(): unknown;
19
+ static styles: _$lit.CSSResult[];
20
+ }
21
+ declare global {
22
+ interface HTMLElementMap {
23
+ "ixfx-range": RangeElement;
24
+ }
25
+ } //# sourceMappingURL=range.d.ts.map
26
+ //#endregion
27
+ export { RangeElement };
28
+ //# sourceMappingURL=range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.d.ts","names":[],"sources":["../src/range/range.ts"],"mappings":";;;;;cAOa,YAAA,SAAqB,UAAA;EAAA;EAEhC,OAAA;EAGA,kBAAA,EAAoB,mBAAA;EAGpB,WAAA;EAGA,QAAA;EAGA,GAAA;EAGA,GAAA;EAAA,IAGI,KAAA,CAAM,CAAA;EAAA,IAIN,KAAA,CAAA;EAOJ,IAAA;EAEA,YAAA,CAAa,KAAA,EAAO,UAAA;EAAA,UAeV,MAAA,CAAA;EAAA,OAiBH,MAAA,EAhCuB,KAAA,CAgCjB,SAAA;AAAA;AAAA,QAkEP,MAAA;EAAA,UACI,cAAA;IACR,YAAA,EAAc,YAAA;EAAA;AAAA"}
package/dist/range.js ADDED
@@ -0,0 +1,136 @@
1
+ import { t as __decorate } from "./decorate-BZbkqIhA.js";
2
+ import { t as prominenceStyles } from "./prominence-CreDBdCs.js";
3
+ import { t as tooltipValueStyles } from "./tooltip-DMxmBNky.js";
4
+ import { LitElement, css, html, nothing } from "lit";
5
+ import { customElement, property } from "lit/decorators.js";
6
+ //#region src/range/range.ts
7
+ let RangeElement = class RangeElement extends LitElement {
8
+ constructor(..._args) {
9
+ super(..._args);
10
+ this.tooltip = true;
11
+ this.tooltipOrientation = `top`;
12
+ this.orientation = `horizontal`;
13
+ this.disabled = false;
14
+ this.min = 0;
15
+ this.max = 100;
16
+ this.#value = 0;
17
+ this.step = 0;
18
+ }
19
+ set value(v) {
20
+ this.#value = v;
21
+ }
22
+ get value() {
23
+ return this.#value;
24
+ }
25
+ #value;
26
+ onRangeInput(event) {
27
+ const valueNum = event.target.valueAsNumber;
28
+ const valueStr = event.target.value;
29
+ this.#value = valueNum;
30
+ if (this.tooltip) {
31
+ const o = this.shadowRoot?.querySelector(`output`);
32
+ if (o) o.value = valueStr;
33
+ else console.warn(`Output element not found`);
34
+ }
35
+ }
36
+ render() {
37
+ const tt = this.tooltip ? html`<ixfx-tooltip
38
+ style="--tooltip-background: var(--surface-5); --tooltip-color: var(--surface-5-text)"
39
+ .orientation=${this.tooltipOrientation}
40
+ anchor="--thumb-tooltip"
41
+ .value=${this.value}></ixfx-tooltip>` : nothing;
42
+ const verticalStyle = this.orientation === `vertical` ? `writing-mode: vertical-lr; direction: rtl;` : nothing;
43
+ return html`
44
+ <input ?disabled=${this.disabled} step=${this.step} min=${this.min} max=${this.max} value=${this.value} @input=${this.onRangeInput} type="range" style=${verticalStyle}>
45
+ ${tt}
46
+ `;
47
+ }
48
+ static {
49
+ this.styles = [
50
+ prominenceStyles,
51
+ tooltipValueStyles,
52
+ css`
53
+ :host {
54
+ display: inline-block;
55
+ --value-label-color: unset;
56
+ --thumb-background: ButtonFace;
57
+ --thumb-radius: 50%;
58
+ --thumb-width: 1em;
59
+ --thumb-height: 1em;
60
+ }
61
+
62
+ :host([orientation="vertical"]) {
63
+ display: block;
64
+ width: 1.5em;
65
+ height: 200px;
66
+ }
67
+
68
+ [type="range"] {
69
+ width: 100%;
70
+ height: 1.5em;
71
+ accent-color: var(--accent, AccentColor);
72
+ }
73
+
74
+ :host([orientation="vertical"]) [type="range"] {
75
+ writing-mode: vertical-lr;
76
+ direction: rtl;
77
+ width: 1.5em;
78
+ height: 100%;
79
+ }
80
+
81
+ [type="range"]::-webkit-slider-thumb {
82
+ width: var(--thumb-width);
83
+ height: var(--thumb-height);
84
+ border-radius: var(--thumb-radius);
85
+ background: var(--thumb-background);
86
+ anchor-name: --thumb-tooltip;
87
+ }
88
+
89
+ :host([orientation="vertical"]) [type="range"]::-webkit-slider-thumb {
90
+ width: var(--thumb-height);
91
+ height: var(--thumb-width);
92
+ }
93
+
94
+ [type="range"]::-moz-range-thumb {
95
+ width: var(--thumb-width);
96
+ height: var(--thumb-height);
97
+ border-radius: var(--thumb-radius);
98
+ background: var(--thumb-background);
99
+ box-shadow: var(--shadow-m);
100
+ anchor-name: --thumb-tooltip;
101
+ }
102
+
103
+ :host([orientation="vertical"]) [type="range"]::-moz-range-thumb {
104
+ width: var(--thumb-height);
105
+ height: var(--thumb-width);
106
+ }
107
+
108
+ [type="range"]:focus {
109
+ outline: none;
110
+ }
111
+ `
112
+ ];
113
+ }
114
+ };
115
+ __decorate([property({ type: Boolean })], RangeElement.prototype, "tooltip", void 0);
116
+ __decorate([property({
117
+ type: String,
118
+ attribute: `tooltip-orientation`
119
+ })], RangeElement.prototype, "tooltipOrientation", void 0);
120
+ __decorate([property({
121
+ type: String,
122
+ reflect: true
123
+ })], RangeElement.prototype, "orientation", void 0);
124
+ __decorate([property({
125
+ type: Boolean,
126
+ attribute: true
127
+ })], RangeElement.prototype, "disabled", void 0);
128
+ __decorate([property({ type: Number })], RangeElement.prototype, "min", void 0);
129
+ __decorate([property({ type: Number })], RangeElement.prototype, "max", void 0);
130
+ __decorate([property({ type: Number })], RangeElement.prototype, "value", null);
131
+ __decorate([property({ type: Number })], RangeElement.prototype, "step", void 0);
132
+ RangeElement = __decorate([customElement(`ixfx-range`)], RangeElement);
133
+ //#endregion
134
+ export { RangeElement };
135
+
136
+ //# sourceMappingURL=range.js.map