@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,21 @@
1
+ import * as _$lit from "lit";
2
+ import { LitElement, nothing } from "lit";
3
+
4
+ //#region src/button/button.d.ts
5
+ declare class ButtonElement extends LitElement {
6
+ disabled: boolean;
7
+ icon?: string;
8
+ hideIcon: boolean;
9
+ hideLabel: boolean;
10
+ protected _renderIcon(): typeof nothing | _$lit.TemplateResult<1>;
11
+ protected render(): _$lit.TemplateResult<1>;
12
+ static styles: _$lit.CSSResult[];
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ "ixfx-button": ButtonElement;
17
+ }
18
+ } //# sourceMappingURL=button.d.ts.map
19
+ //#endregion
20
+ export { ButtonElement };
21
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","names":[],"sources":["../src/button/button.ts"],"mappings":";;;;cAQa,aAAA,SAAsB,UAAA;EAEjC,QAAA;EAGA,IAAA;EAGA,QAAA;EAGA,SAAA;EAAA,UAEU,WAAA,CAAA,UAAW,OAAA,GAAA,KAAA,CAAA,cAAA;EAAA,UAgBX,MAAA,CAAA,GAhBW,KAAA,CAgBL,cAAA;EAAA,OAOT,MAAA,EAPS,KAAA,CAOH,SAAA;AAAA;AAAA,QAMP,MAAA;EAAA,UACI,qBAAA;IACR,aAAA,EAAe,aAAA;EAAA;AAAA"}
package/dist/button.js ADDED
@@ -0,0 +1,3 @@
1
+ import "./icons.js";
2
+ import { t as ButtonElement } from "./button-DgKUzE5o.js";
3
+ export { ButtonElement };
@@ -0,0 +1,34 @@
1
+ import * as _$lit from "lit";
2
+ import { LitElement, html } from "lit";
3
+
4
+ //#region src/checkbox.d.ts
5
+ declare class Checkbox extends LitElement {
6
+ #private;
7
+ static styles: _$lit.CSSResult;
8
+ checked: boolean;
9
+ disabled: boolean;
10
+ indeterminate: boolean;
11
+ label: string;
12
+ name: string;
13
+ value: string;
14
+ render(): ReturnType<typeof html>;
15
+ }
16
+ type CheckboxChangeDetail = {
17
+ readonly checked: boolean;
18
+ };
19
+ type CheckboxChangeEvent = CustomEvent<CheckboxChangeDetail>;
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ 'ixfx-checkbox': Checkbox;
23
+ }
24
+ }
25
+ interface CheckboxEventMap {
26
+ 'change': CheckboxChangeEvent;
27
+ }
28
+ interface Checkbox {
29
+ addEventListener<K extends keyof CheckboxEventMap>(type: K, listener: (this: Checkbox, event: CheckboxEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
30
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
31
+ }
32
+ //#endregion
33
+ export { Checkbox, CheckboxChangeDetail, CheckboxChangeEvent, CheckboxEventMap };
34
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../src/checkbox.ts"],"mappings":";;;;cAuCa,QAAA,SAAiB,UAAA;EAAA;SACrB,MAAA,EADa,KAAA,CACP,SAAA;EAiKgB,OAAA;EACA,QAAA;EACA,aAAA;EACD,KAAA;EACA,IAAA;EACA,KAAA;EAanB,MAAA,CAAA,GAAU,UAAA,QAAkB,IAAA;AAAA;AAAA,KAoB3B,oBAAA;EAAA,SACD,OAAA;AAAA;AAAA,KAGC,mBAAA,GAAsB,WAAA,CAAY,oBAAA;AAAA,QAEtC,MAAA;EAAA,UACI,qBAAA;IACR,eAAA,EAAiB,QAAA;EAAA;AAAA;AAAA,UAIJ,gBAAA;EACf,QAAA,EAAU,mBAAA;AAAA;AAAA,UAGK,QAAA;EACf,gBAAA,iBAAiC,gBAAA,EAC/B,IAAA,EAAM,CAAA,EACN,QAAA,GAAW,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,gBAAA,CAAiB,CAAA,YACnD,OAAA,aAAoB,uBAAA;EAEtB,gBAAA,CACE,IAAA,UACA,QAAA,EAAU,kCAAA,EACV,OAAA,aAAoB,uBAAA;AAAA"}
@@ -0,0 +1,251 @@
1
+ import { t as __decorate } from "./decorate-BZbkqIhA.js";
2
+ import { LitElement, css, html } from "lit";
3
+ import { customElement, property } from "lit/decorators.js";
4
+ //#region src/checkbox.ts
5
+ /**
6
+ * <x-checkbox> — Custom checkbox with diagonal line indicator.
7
+ *
8
+ * A brutalist checkbox component featuring a thick diagonal line
9
+ * (top-left to bottom-right) when checked. Uses shadow DOM with
10
+ * CSS variables for appearance customization.
11
+ *
12
+ * Properties
13
+ * checked – checkbox state (default: false)
14
+ * disabled – disabled state (default: false)
15
+ * label – label text
16
+ * name – form field name
17
+ * value – form field value
18
+ *
19
+ * Events
20
+ * change – CustomEvent { detail: { checked: boolean } }, bubbles + composed
21
+ *
22
+ * CSS Variables
23
+ * --box-size – box size (default: 18px)
24
+ * --box-border-width – border width (default: 2px)
25
+ * --box-border-color – border color
26
+ * --box-bg-unchecked – background when unchecked
27
+ * --box-bg-checked – background when checked
28
+ * --check-line-color – diagonal line color
29
+ * --check-line-width – diagonal line thickness (default: 6px)
30
+ * --box-opacity-unchecked – opacity when unchecked (default: 0.5)
31
+ * --box-opacity-checked – opacity when checked (default: 1)
32
+ * --box-opacity-hover – opacity on hover (default: 1)
33
+ * --box-opacity-disabled – opacity when disabled (default: 0.3)
34
+ * --box-label-gap – gap between box and label (default: 8px)
35
+ * --label-font-size – label font size (default: 14px)
36
+ * --label-opacity – label opacity (default: 1)
37
+ * --label-opacity-unchecked – label opacity when unchecked (default: uses --label-opacity)
38
+ * --transition-duration – animation duration (default: 0.2s)
39
+ */
40
+ let Checkbox = class Checkbox extends LitElement {
41
+ constructor(..._args) {
42
+ super(..._args);
43
+ this.checked = false;
44
+ this.disabled = false;
45
+ this.indeterminate = false;
46
+ this.label = ``;
47
+ this.name = ``;
48
+ this.value = ``;
49
+ this.#handleChange = (e) => {
50
+ const target = e.target;
51
+ this.checked = target.checked;
52
+ this.dispatchEvent(new CustomEvent(`change`, {
53
+ detail: { checked: this.checked },
54
+ bubbles: true,
55
+ composed: true
56
+ }));
57
+ };
58
+ }
59
+ static {
60
+ this.styles = css`
61
+ :host {
62
+ /* Box */
63
+ --box-size: 18px;
64
+ --box-border-color: var(--surface-4);
65
+ --box-bg-unchecked: color-mix(in oklch, var(--surface-3) 50%, var(--surface-2));
66
+ --box-bg-checked: color-mix(in oklch, var(--surface-3) 50%, var(--surface-2));
67
+ --box-opacity-checked: 1;
68
+ --box-opacity-hover: 1;
69
+ --box-opacity-disabled: var(--disabled-opacity);
70
+ --box-border-width: 2px;
71
+
72
+ /* Check */
73
+ --check-line-width: 6px;
74
+ --check-line-color: var(--accent);
75
+
76
+ /* Spacing & borders */
77
+ --label-gap: var(--space-m);
78
+
79
+ /* Label */
80
+ --label-opacity: 1;
81
+ --label-opacity-unchecked: var(--label-opacity);
82
+ --label-fg: var(--surface-3-text);
83
+ --label-active: var(--surface-2-text);
84
+ --label-hover: var(--surface-2-text);
85
+
86
+ /* Animation */
87
+ --transition-duration: var(--transition);
88
+
89
+ display: inline-flex;
90
+ user-select: none;
91
+ }
92
+
93
+ label {
94
+ display: inline-flex;
95
+ align-items: center;
96
+ gap: var(--label-gap);
97
+ cursor: pointer;
98
+ position: relative;
99
+ opacity: var(--box-opacity-unchecked);
100
+ transition: opacity var(--transition-duration);
101
+ }
102
+
103
+ label:hover {
104
+ opacity: var(--box-opacity-hover);
105
+ }
106
+
107
+ label:has(input:checked) {
108
+ opacity: var(--box-opacity-checked);
109
+ }
110
+
111
+ input {
112
+ position: absolute;
113
+ opacity: 0;
114
+ width: 1px;
115
+ height: 1px;
116
+ margin: -1px;
117
+ clip: rect(0, 0, 0, 0);
118
+ }
119
+
120
+ .box {
121
+ position: relative;
122
+ width: var(--box-size);
123
+ height: var(--box-size);
124
+ border: var(--border, 1px solid #999);
125
+ background: var(--box-bg-unchecked);
126
+ flex-shrink: 0;
127
+ transition: background var(--transition-duration);
128
+ overflow: hidden;
129
+ box-shadow: inset 1px 1px 0px 1px color-mix(in oklch, var(--surface-2) 60%, transparent);
130
+ }
131
+ label:has(input:not(:disabled)) {
132
+ .box:hover {
133
+ background: color-mix(in oklch, var(--surface-4) 80%, transparent);
134
+ border-color: var(--accent, #666);
135
+ box-shadow: unset;
136
+ }
137
+ }
138
+
139
+ input:checked ~ .box {
140
+ background: var(--box-bg-checked);
141
+ }
142
+
143
+ /* Diagonal line from top-left to bottom-right */
144
+ .box::after {
145
+ content: '';
146
+ position: absolute;
147
+ width: 141.4%; /* sqrt(2) × 100% to span corner-to-corner */
148
+ height: var(--check-line-width);
149
+ background: var(--check-line-color);
150
+ top: 50%;
151
+ left: 50%;
152
+ transform: translate(-50%, -50%) rotate(45deg);
153
+ opacity: 0;
154
+ transition: opacity var(--transition-duration);
155
+ }
156
+
157
+ input:checked ~ .box::after {
158
+ opacity: 1;
159
+ }
160
+
161
+ /* Horizontal line for indeterminate state */
162
+ .box::before {
163
+ content: '';
164
+ position: absolute;
165
+ width: 60%;
166
+ height: var(--check-line-width);
167
+ background: var(--check-line-color);
168
+ top: 50%;
169
+ left: 50%;
170
+ transform: translate(-50%, -50%);
171
+ opacity: 0;
172
+ transition: opacity var(--transition-duration);
173
+ }
174
+
175
+ input:indeterminate ~ .box::before {
176
+ opacity: 1;
177
+ }
178
+
179
+ /* Hide diagonal checkmark when indeterminate (must come after checked rule) */
180
+ input:indeterminate ~ .box::after {
181
+ opacity: 0;
182
+ }
183
+
184
+ /* Focus state */
185
+ input:focus-visible ~ .box {
186
+ outline: 2px solid var(--check-line-color);
187
+ outline-offset: 2px;
188
+ }
189
+
190
+ /* Disabled state */
191
+ label:has(input:disabled) {
192
+ opacity: var(--box-opacity-disabled);
193
+ cursor: not-allowed;
194
+ .box {
195
+ box-shadow: unset;
196
+ }
197
+ }
198
+
199
+ .label {
200
+ color: var(--label-fg);
201
+ opacity: var(--label-opacity);
202
+ transition: opacity var(--transition-duration);
203
+ user-select: none;
204
+ -webkit-user-select: none;
205
+ }
206
+
207
+ .label:hover {
208
+ color: var(--label-hover);
209
+ }
210
+ .label:has(+ :hover) {
211
+ color: var(--label-fg-hover);
212
+ }
213
+ .label:has(+ :active) {
214
+ color: var(--label-fg-active);
215
+ }
216
+ input:not(:checked) ~ .label {
217
+ opacity: var(--label-opacity-unchecked);
218
+ }
219
+ `;
220
+ }
221
+ #handleChange;
222
+ render() {
223
+ return html`
224
+ <label>
225
+ <input
226
+ name="checkbox"
227
+ type="checkbox"
228
+ .checked=${this.checked}
229
+ .disabled=${this.disabled}
230
+ .indeterminate=${this.indeterminate}
231
+ .name=${this.name}
232
+ .value=${this.value}
233
+ @change=${this.#handleChange}
234
+ />
235
+ <span class="box"></span>
236
+ ${this.label ? html`<span class="label">${this.label}</span>` : ``}
237
+ </label>
238
+ `;
239
+ }
240
+ };
241
+ __decorate([property({ type: Boolean })], Checkbox.prototype, "checked", void 0);
242
+ __decorate([property({ type: Boolean })], Checkbox.prototype, "disabled", void 0);
243
+ __decorate([property({ type: Boolean })], Checkbox.prototype, "indeterminate", void 0);
244
+ __decorate([property({ type: String })], Checkbox.prototype, "label", void 0);
245
+ __decorate([property({ type: String })], Checkbox.prototype, "name", void 0);
246
+ __decorate([property({ type: String })], Checkbox.prototype, "value", void 0);
247
+ Checkbox = __decorate([customElement(`ixfx-checkbox`)], Checkbox);
248
+ //#endregion
249
+ export { Checkbox };
250
+
251
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","names":["#handleChange"],"sources":["../src/checkbox.ts"],"sourcesContent":["/**\n * <x-checkbox> — Custom checkbox with diagonal line indicator.\n *\n * A brutalist checkbox component featuring a thick diagonal line\n * (top-left to bottom-right) when checked. Uses shadow DOM with\n * CSS variables for appearance customization.\n *\n * Properties\n * checked – checkbox state (default: false)\n * disabled – disabled state (default: false)\n * label – label text\n * name – form field name\n * value – form field value\n *\n * Events\n * change – CustomEvent { detail: { checked: boolean } }, bubbles + composed\n *\n * CSS Variables\n * --box-size – box size (default: 18px)\n * --box-border-width – border width (default: 2px)\n * --box-border-color – border color\n * --box-bg-unchecked – background when unchecked\n * --box-bg-checked – background when checked\n * --check-line-color – diagonal line color\n * --check-line-width – diagonal line thickness (default: 6px)\n * --box-opacity-unchecked – opacity when unchecked (default: 0.5)\n * --box-opacity-checked – opacity when checked (default: 1)\n * --box-opacity-hover – opacity on hover (default: 1)\n * --box-opacity-disabled – opacity when disabled (default: 0.3)\n * --box-label-gap – gap between box and label (default: 8px)\n * --label-font-size – label font size (default: 14px)\n * --label-opacity – label opacity (default: 1)\n * --label-opacity-unchecked – label opacity when unchecked (default: uses --label-opacity)\n * --transition-duration – animation duration (default: 0.2s)\n */\nimport { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement(`ixfx-checkbox`)\nexport class Checkbox extends LitElement {\n static styles = css`\n :host {\n /* Box */\n --box-size: 18px;\n --box-border-color: var(--surface-4);\n --box-bg-unchecked: color-mix(in oklch, var(--surface-3) 50%, var(--surface-2));\n --box-bg-checked: color-mix(in oklch, var(--surface-3) 50%, var(--surface-2));\n --box-opacity-checked: 1;\n --box-opacity-hover: 1;\n --box-opacity-disabled: var(--disabled-opacity);\n --box-border-width: 2px;\n \n /* Check */\n --check-line-width: 6px;\n --check-line-color: var(--accent);\n\n /* Spacing & borders */\n --label-gap: var(--space-m);\n\n /* Label */\n --label-opacity: 1;\n --label-opacity-unchecked: var(--label-opacity);\n --label-fg: var(--surface-3-text);\n --label-active: var(--surface-2-text);\n --label-hover: var(--surface-2-text);\n\n /* Animation */\n --transition-duration: var(--transition);\n\n display: inline-flex;\n user-select: none;\n }\n\n label {\n display: inline-flex;\n align-items: center;\n gap: var(--label-gap);\n cursor: pointer;\n position: relative;\n opacity: var(--box-opacity-unchecked);\n transition: opacity var(--transition-duration);\n }\n\n label:hover {\n opacity: var(--box-opacity-hover);\n }\n\n label:has(input:checked) {\n opacity: var(--box-opacity-checked);\n }\n\n input {\n position: absolute;\n opacity: 0;\n width: 1px;\n height: 1px;\n margin: -1px;\n clip: rect(0, 0, 0, 0);\n }\n\n .box {\n position: relative;\n width: var(--box-size);\n height: var(--box-size);\n border: var(--border, 1px solid #999);\n background: var(--box-bg-unchecked);\n flex-shrink: 0;\n transition: background var(--transition-duration);\n overflow: hidden;\n box-shadow: inset 1px 1px 0px 1px color-mix(in oklch, var(--surface-2) 60%, transparent);\n }\n label:has(input:not(:disabled)) {\n .box:hover {\n background: color-mix(in oklch, var(--surface-4) 80%, transparent);\n border-color: var(--accent, #666);\n box-shadow: unset;\n }\n }\n\n input:checked ~ .box {\n background: var(--box-bg-checked);\n }\n\n /* Diagonal line from top-left to bottom-right */\n .box::after {\n content: '';\n position: absolute;\n width: 141.4%; /* sqrt(2) × 100% to span corner-to-corner */\n height: var(--check-line-width);\n background: var(--check-line-color);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n opacity: 0;\n transition: opacity var(--transition-duration);\n }\n\n input:checked ~ .box::after {\n opacity: 1;\n }\n\n /* Horizontal line for indeterminate state */\n .box::before {\n content: '';\n position: absolute;\n width: 60%;\n height: var(--check-line-width);\n background: var(--check-line-color);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n opacity: 0;\n transition: opacity var(--transition-duration);\n }\n\n input:indeterminate ~ .box::before {\n opacity: 1;\n }\n\n /* Hide diagonal checkmark when indeterminate (must come after checked rule) */\n input:indeterminate ~ .box::after {\n opacity: 0;\n }\n\n /* Focus state */\n input:focus-visible ~ .box {\n outline: 2px solid var(--check-line-color);\n outline-offset: 2px;\n }\n\n /* Disabled state */\n label:has(input:disabled) {\n opacity: var(--box-opacity-disabled);\n cursor: not-allowed;\n .box {\n box-shadow: unset;\n } \n }\n\n .label {\n color: var(--label-fg);\n opacity: var(--label-opacity);\n transition: opacity var(--transition-duration);\n user-select: none;\n -webkit-user-select: none;\n }\n\n .label:hover {\n color: var(--label-hover);\n }\n .label:has(+ :hover) {\n color: var(--label-fg-hover);\n }\n .label:has(+ :active) {\n color: var(--label-fg-active);\n }\n input:not(:checked) ~ .label {\n opacity: var(--label-opacity-unchecked);\n }\n `;\n\n @property({ type: Boolean }) checked = false;\n @property({ type: Boolean }) disabled = false;\n @property({ type: Boolean }) indeterminate = false;\n @property({ type: String }) label = ``;\n @property({ type: String }) name = ``;\n @property({ type: String }) value = ``;\n\n #handleChange = (e: Event): void => {\n const target = e.target as HTMLInputElement;\n this.checked = target.checked;\n\n this.dispatchEvent(new CustomEvent<CheckboxChangeDetail>(`change`, {\n detail: { checked: this.checked },\n bubbles: true,\n composed: true,\n }));\n };\n\n override render(): ReturnType<typeof html> {\n return html`\n <label>\n <input\n name=\"checkbox\"\n type=\"checkbox\"\n .checked=${this.checked}\n .disabled=${this.disabled}\n .indeterminate=${this.indeterminate}\n .name=${this.name}\n .value=${this.value}\n @change=${this.#handleChange}\n />\n <span class=\"box\"></span>\n ${this.label ? html`<span class=\"label\">${this.label}</span>` : ``}\n </label>\n `;\n }\n}\n\nexport type CheckboxChangeDetail = {\n readonly checked: boolean;\n};\n\nexport type CheckboxChangeEvent = CustomEvent<CheckboxChangeDetail>;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'ixfx-checkbox': Checkbox;\n }\n}\n\nexport interface CheckboxEventMap {\n 'change': CheckboxChangeEvent;\n}\n\nexport interface Checkbox {\n addEventListener<K extends keyof CheckboxEventMap>(\n type: K,\n listener: (this: Checkbox, event: CheckboxEventMap[K]) => void,\n options?: boolean | AddEventListenerOptions\n ): void;\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCO,IAAA,WAAA,MAAM,iBAAiB,WAAW;;;iBAkKA;kBACC;uBACK;eACT;cACD;eACC;wBAEnB,MAAmB;GAClC,MAAM,SAAS,EAAE;AACjB,QAAK,UAAU,OAAO;AAEtB,QAAK,cAAc,IAAI,YAAkC,UAAU;IACjE,QAAQ,EAAE,SAAS,KAAK,SAAS;IACjC,SAAS;IACT,UAAU;IACX,CAAC,CAAC;;;;gBAhLW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwKnB;CAWA,SAA2C;AACzC,SAAO,IAAI;;;;;qBAKM,KAAK,QAAQ;sBACZ,KAAK,SAAS;2BACT,KAAK,cAAc;kBAC5B,KAAK,KAAK;mBACT,KAAK,MAAM;oBACV,MAAA,aAAmB;;;UAG7B,KAAK,QAAQ,IAAI,uBAAuB,KAAK,MAAM,WAAW,GAAG;;;;;YAhCxE,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,SAAA,WAAA,WAAA,KAAA,EAAA;YAC3B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,SAAA,WAAA,YAAA,KAAA,EAAA;YAC3B,SAAS,EAAE,MAAM,SAAS,CAAC,CAAA,EAAA,SAAA,WAAA,iBAAA,KAAA,EAAA;YAC3B,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,SAAA,WAAA,SAAA,KAAA,EAAA;YAC1B,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,SAAA,WAAA,QAAA,KAAA,EAAA;YAC1B,SAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,SAAA,WAAA,SAAA,KAAA,EAAA;uBAxK5B,cAAc,gBAAgB,CAAA,EAAA,SAAA"}
@@ -0,0 +1,13 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) __defProp(target, name, {
6
+ get: all[name],
7
+ enumerable: true
8
+ });
9
+ if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
+ return target;
11
+ };
12
+ //#endregion
13
+ export { __exportAll as t };