@quartzds/core 1.0.0-beta.5 → 1.0.0-beta.51

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 (313) hide show
  1. package/README.md +5 -5
  2. package/components/checkbox.js +208 -0
  3. package/components/checkbox.js.map +1 -0
  4. package/components/controls.js +27 -0
  5. package/components/controls.js.map +1 -0
  6. package/components/floating-ui.dom.esm.js +467 -415
  7. package/components/floating-ui.dom.esm.js.map +1 -1
  8. package/components/helpers.js +114 -126
  9. package/components/helpers.js.map +1 -1
  10. package/components/icon.js +153 -122
  11. package/components/icon.js.map +1 -1
  12. package/components/index.d.ts +38 -0
  13. package/components/index.js +42 -26
  14. package/components/index.js.map +1 -1
  15. package/components/label.js +53 -40
  16. package/components/label.js.map +1 -1
  17. package/components/qds-breadcrumb-item.d.ts +11 -0
  18. package/components/qds-breadcrumb-item.js +55 -0
  19. package/components/qds-breadcrumb-item.js.map +1 -0
  20. package/components/qds-button.d.ts +2 -2
  21. package/components/qds-button.js +187 -128
  22. package/components/qds-button.js.map +1 -1
  23. package/components/qds-checkbox.d.ts +2 -2
  24. package/components/qds-checkbox.js +3 -146
  25. package/components/qds-checkbox.js.map +1 -1
  26. package/components/qds-chip.d.ts +11 -0
  27. package/components/qds-chip.js +224 -0
  28. package/components/qds-chip.js.map +1 -0
  29. package/components/qds-dialog.d.ts +11 -0
  30. package/components/qds-dialog.js +111 -0
  31. package/components/qds-dialog.js.map +1 -0
  32. package/components/qds-divider.d.ts +11 -0
  33. package/components/qds-divider.js +65 -0
  34. package/components/qds-divider.js.map +1 -0
  35. package/components/qds-dropdown.d.ts +2 -2
  36. package/components/qds-dropdown.js +248 -237
  37. package/components/qds-dropdown.js.map +1 -1
  38. package/components/qds-form-message.d.ts +11 -0
  39. package/components/qds-form-message.js +80 -0
  40. package/components/qds-form-message.js.map +1 -0
  41. package/components/qds-icon.d.ts +2 -2
  42. package/components/qds-icon.js +2 -2
  43. package/components/qds-inline-link.d.ts +2 -2
  44. package/components/qds-inline-link.js +90 -70
  45. package/components/qds-inline-link.js.map +1 -1
  46. package/components/qds-input.d.ts +2 -2
  47. package/components/qds-input.js +320 -228
  48. package/components/qds-input.js.map +1 -1
  49. package/components/qds-label.d.ts +2 -2
  50. package/components/qds-label.js +2 -2
  51. package/components/qds-list-item.d.ts +11 -0
  52. package/components/qds-list-item.js +201 -0
  53. package/components/qds-list-item.js.map +1 -0
  54. package/components/qds-nav-list-item.d.ts +11 -0
  55. package/components/qds-nav-list-item.js +135 -0
  56. package/components/qds-nav-list-item.js.map +1 -0
  57. package/components/qds-radio.d.ts +2 -2
  58. package/components/qds-radio.js +117 -90
  59. package/components/qds-radio.js.map +1 -1
  60. package/components/qds-select.d.ts +11 -0
  61. package/components/qds-select.js +259 -0
  62. package/components/qds-select.js.map +1 -0
  63. package/components/qds-standalone-link.d.ts +11 -0
  64. package/components/qds-standalone-link.js +127 -0
  65. package/components/qds-standalone-link.js.map +1 -0
  66. package/components/qds-switch.d.ts +2 -2
  67. package/components/qds-switch.js +123 -99
  68. package/components/qds-switch.js.map +1 -1
  69. package/components/qds-table-body.d.ts +11 -0
  70. package/components/qds-table-body.js +47 -0
  71. package/components/qds-table-body.js.map +1 -0
  72. package/components/qds-table-cell.d.ts +11 -0
  73. package/components/qds-table-cell.js +52 -0
  74. package/components/qds-table-cell.js.map +1 -0
  75. package/components/qds-table-head-cell.d.ts +11 -0
  76. package/components/qds-table-head-cell.js +56 -0
  77. package/components/qds-table-head-cell.js.map +1 -0
  78. package/components/qds-table-head.d.ts +11 -0
  79. package/components/qds-table-head.js +47 -0
  80. package/components/qds-table-head.js.map +1 -0
  81. package/components/qds-table-row.d.ts +11 -0
  82. package/components/qds-table-row.js +47 -0
  83. package/components/qds-table-row.js.map +1 -0
  84. package/components/qds-table.d.ts +11 -0
  85. package/components/qds-table.js +47 -0
  86. package/components/qds-table.js.map +1 -0
  87. package/components/qds-textarea.d.ts +11 -0
  88. package/components/qds-textarea.js +274 -0
  89. package/components/qds-textarea.js.map +1 -0
  90. package/components/qds-title.d.ts +2 -2
  91. package/components/qds-title.js +67 -75
  92. package/components/qds-title.js.map +1 -1
  93. package/components/qds-tooltip.d.ts +2 -2
  94. package/components/qds-tooltip.js +3 -315
  95. package/components/qds-tooltip.js.map +1 -1
  96. package/components/tooltip.js +336 -0
  97. package/components/tooltip.js.map +1 -0
  98. package/dist/cjs/app-globals-b1b0cc3c.js +12 -0
  99. package/dist/cjs/app-globals-b1b0cc3c.js.map +1 -0
  100. package/dist/cjs/controls-41400abc.js +31 -0
  101. package/dist/cjs/controls-41400abc.js.map +1 -0
  102. package/dist/cjs/{floating-ui.dom.esm-71fa96af.js → floating-ui.dom.esm-13b47220.js} +468 -416
  103. package/dist/cjs/floating-ui.dom.esm-13b47220.js.map +1 -0
  104. package/dist/cjs/helpers-fd48f777.js +171 -0
  105. package/dist/cjs/helpers-fd48f777.js.map +1 -0
  106. package/dist/cjs/index-78cd005d.js +1942 -0
  107. package/dist/cjs/index-78cd005d.js.map +1 -0
  108. package/dist/cjs/index.cjs.js +27 -27
  109. package/dist/cjs/index.cjs.js.map +1 -1
  110. package/dist/cjs/library-6ef24d67.js +88 -0
  111. package/dist/cjs/library-6ef24d67.js.map +1 -0
  112. package/dist/cjs/loader.cjs.js +8 -15
  113. package/dist/cjs/loader.cjs.js.map +1 -1
  114. package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +34 -0
  115. package/dist/cjs/qds-breadcrumb-item.cjs.entry.js.map +1 -0
  116. package/dist/cjs/qds-button.cjs.entry.js +147 -94
  117. package/dist/cjs/qds-button.cjs.entry.js.map +1 -1
  118. package/dist/cjs/qds-checkbox.cjs.entry.js +155 -101
  119. package/dist/cjs/qds-checkbox.cjs.entry.js.map +1 -1
  120. package/dist/cjs/qds-chip.cjs.entry.js +191 -0
  121. package/dist/cjs/qds-chip.cjs.entry.js.map +1 -0
  122. package/dist/cjs/qds-dialog.cjs.entry.js +91 -0
  123. package/dist/cjs/qds-dialog.cjs.entry.js.map +1 -0
  124. package/dist/cjs/qds-divider.cjs.entry.js +48 -0
  125. package/dist/cjs/qds-divider.cjs.entry.js.map +1 -0
  126. package/dist/cjs/qds-dropdown.cjs.entry.js +212 -211
  127. package/dist/cjs/qds-dropdown.cjs.entry.js.map +1 -1
  128. package/dist/cjs/qds-form-message.cjs.entry.js +55 -0
  129. package/dist/cjs/qds-form-message.cjs.entry.js.map +1 -0
  130. package/dist/cjs/qds-icon.cjs.entry.js +89 -87
  131. package/dist/cjs/qds-icon.cjs.entry.js.map +1 -1
  132. package/dist/cjs/qds-inline-link.cjs.entry.js +61 -45
  133. package/dist/cjs/qds-inline-link.cjs.entry.js.map +1 -1
  134. package/dist/cjs/qds-input.cjs.entry.js +267 -185
  135. package/dist/cjs/qds-input.cjs.entry.js.map +1 -1
  136. package/dist/cjs/qds-label.cjs.entry.js +37 -24
  137. package/dist/cjs/qds-label.cjs.entry.js.map +1 -1
  138. package/dist/cjs/qds-list-item.cjs.entry.js +152 -0
  139. package/dist/cjs/qds-list-item.cjs.entry.js.map +1 -0
  140. package/dist/cjs/qds-nav-list-item.cjs.entry.js +97 -0
  141. package/dist/cjs/qds-nav-list-item.cjs.entry.js.map +1 -0
  142. package/dist/cjs/qds-radio.cjs.entry.js +83 -59
  143. package/dist/cjs/qds-radio.cjs.entry.js.map +1 -1
  144. package/dist/cjs/qds-select.cjs.entry.js +220 -0
  145. package/dist/cjs/qds-select.cjs.entry.js.map +1 -0
  146. package/dist/cjs/qds-standalone-link.cjs.entry.js +92 -0
  147. package/dist/cjs/qds-standalone-link.cjs.entry.js.map +1 -0
  148. package/dist/cjs/qds-switch.cjs.entry.js +84 -63
  149. package/dist/cjs/qds-switch.cjs.entry.js.map +1 -1
  150. package/dist/cjs/qds-table-body.cjs.entry.js +33 -0
  151. package/dist/cjs/qds-table-body.cjs.entry.js.map +1 -0
  152. package/dist/cjs/qds-table-cell.cjs.entry.js +35 -0
  153. package/dist/cjs/qds-table-cell.cjs.entry.js.map +1 -0
  154. package/dist/cjs/qds-table-head-cell.cjs.entry.js +37 -0
  155. package/dist/cjs/qds-table-head-cell.cjs.entry.js.map +1 -0
  156. package/dist/cjs/qds-table-head.cjs.entry.js +33 -0
  157. package/dist/cjs/qds-table-head.cjs.entry.js.map +1 -0
  158. package/dist/cjs/qds-table-row.cjs.entry.js +33 -0
  159. package/dist/cjs/qds-table-row.cjs.entry.js.map +1 -0
  160. package/dist/cjs/qds-table.cjs.entry.js +33 -0
  161. package/dist/cjs/qds-table.cjs.entry.js.map +1 -0
  162. package/dist/cjs/qds-textarea.cjs.entry.js +229 -0
  163. package/dist/cjs/qds-textarea.cjs.entry.js.map +1 -0
  164. package/dist/cjs/qds-title.cjs.entry.js +42 -51
  165. package/dist/cjs/qds-title.cjs.entry.js.map +1 -1
  166. package/dist/cjs/qds-tooltip.cjs.entry.js +267 -266
  167. package/dist/cjs/qds-tooltip.cjs.entry.js.map +1 -1
  168. package/dist/cjs/qds.cjs.js +15 -16
  169. package/dist/cjs/qds.cjs.js.map +1 -1
  170. package/dist/custom-elements.json +5911 -1232
  171. package/dist/docs.d.ts +375 -88
  172. package/dist/docs.json +7737 -1705
  173. package/dist/esm/app-globals-1f206619.js +10 -0
  174. package/dist/esm/app-globals-1f206619.js.map +1 -0
  175. package/dist/esm/controls-07c4a794.js +27 -0
  176. package/dist/esm/controls-07c4a794.js.map +1 -0
  177. package/dist/esm/{floating-ui.dom.esm-f96ac766.js → floating-ui.dom.esm-0866be8d.js} +468 -416
  178. package/dist/esm/floating-ui.dom.esm-0866be8d.js.map +1 -0
  179. package/dist/esm/helpers-988f0260.js +162 -0
  180. package/dist/esm/helpers-988f0260.js.map +1 -0
  181. package/dist/esm/index-1261248b.js +1911 -0
  182. package/dist/esm/index-1261248b.js.map +1 -0
  183. package/dist/esm/index.js +27 -27
  184. package/dist/esm/index.js.map +1 -1
  185. package/dist/esm/library-5db214cb.js +84 -0
  186. package/dist/esm/library-5db214cb.js.map +1 -0
  187. package/dist/esm/loader.js +9 -16
  188. package/dist/esm/loader.js.map +1 -1
  189. package/dist/esm/qds-breadcrumb-item.entry.js +30 -0
  190. package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -0
  191. package/dist/esm/qds-button.entry.js +147 -94
  192. package/dist/esm/qds-button.entry.js.map +1 -1
  193. package/dist/esm/qds-checkbox.entry.js +155 -101
  194. package/dist/esm/qds-checkbox.entry.js.map +1 -1
  195. package/dist/esm/qds-chip.entry.js +187 -0
  196. package/dist/esm/qds-chip.entry.js.map +1 -0
  197. package/dist/esm/qds-dialog.entry.js +87 -0
  198. package/dist/esm/qds-dialog.entry.js.map +1 -0
  199. package/dist/esm/qds-divider.entry.js +44 -0
  200. package/dist/esm/qds-divider.entry.js.map +1 -0
  201. package/dist/esm/qds-dropdown.entry.js +212 -211
  202. package/dist/esm/qds-dropdown.entry.js.map +1 -1
  203. package/dist/esm/qds-form-message.entry.js +51 -0
  204. package/dist/esm/qds-form-message.entry.js.map +1 -0
  205. package/dist/esm/qds-icon.entry.js +89 -87
  206. package/dist/esm/qds-icon.entry.js.map +1 -1
  207. package/dist/esm/qds-inline-link.entry.js +61 -45
  208. package/dist/esm/qds-inline-link.entry.js.map +1 -1
  209. package/dist/esm/qds-input.entry.js +267 -185
  210. package/dist/esm/qds-input.entry.js.map +1 -1
  211. package/dist/esm/qds-label.entry.js +37 -24
  212. package/dist/esm/qds-label.entry.js.map +1 -1
  213. package/dist/esm/qds-list-item.entry.js +148 -0
  214. package/dist/esm/qds-list-item.entry.js.map +1 -0
  215. package/dist/esm/qds-nav-list-item.entry.js +93 -0
  216. package/dist/esm/qds-nav-list-item.entry.js.map +1 -0
  217. package/dist/esm/qds-radio.entry.js +83 -59
  218. package/dist/esm/qds-radio.entry.js.map +1 -1
  219. package/dist/esm/qds-select.entry.js +216 -0
  220. package/dist/esm/qds-select.entry.js.map +1 -0
  221. package/dist/esm/qds-standalone-link.entry.js +88 -0
  222. package/dist/esm/qds-standalone-link.entry.js.map +1 -0
  223. package/dist/esm/qds-switch.entry.js +84 -63
  224. package/dist/esm/qds-switch.entry.js.map +1 -1
  225. package/dist/esm/qds-table-body.entry.js +29 -0
  226. package/dist/esm/qds-table-body.entry.js.map +1 -0
  227. package/dist/esm/qds-table-cell.entry.js +31 -0
  228. package/dist/esm/qds-table-cell.entry.js.map +1 -0
  229. package/dist/esm/qds-table-head-cell.entry.js +33 -0
  230. package/dist/esm/qds-table-head-cell.entry.js.map +1 -0
  231. package/dist/esm/qds-table-head.entry.js +29 -0
  232. package/dist/esm/qds-table-head.entry.js.map +1 -0
  233. package/dist/esm/qds-table-row.entry.js +29 -0
  234. package/dist/esm/qds-table-row.entry.js.map +1 -0
  235. package/dist/esm/qds-table.entry.js +29 -0
  236. package/dist/esm/qds-table.entry.js.map +1 -0
  237. package/dist/esm/qds-textarea.entry.js +225 -0
  238. package/dist/esm/qds-textarea.entry.js.map +1 -0
  239. package/dist/esm/qds-title.entry.js +42 -51
  240. package/dist/esm/qds-title.entry.js.map +1 -1
  241. package/dist/esm/qds-tooltip.entry.js +267 -266
  242. package/dist/esm/qds-tooltip.entry.js.map +1 -1
  243. package/dist/esm/qds.js +16 -17
  244. package/dist/esm/qds.js.map +1 -1
  245. package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +144 -0
  246. package/dist/types/components/button/button.d.ts +216 -194
  247. package/dist/types/components/checkbox/checkbox.d.ts +147 -124
  248. package/dist/types/components/chip/chip.d.ts +121 -0
  249. package/dist/types/components/controls.d.ts +9 -0
  250. package/dist/types/components/dialog/dialog.d.ts +51 -0
  251. package/dist/types/components/divider/divider.d.ts +27 -0
  252. package/dist/types/components/dropdown/dropdown.d.ts +124 -124
  253. package/dist/types/components/form-message/form-message.d.ts +37 -0
  254. package/dist/types/components/icon/icon.d.ts +24 -24
  255. package/dist/types/components/icon/library.d.ts +2 -2
  256. package/dist/types/components/icon/request.d.ts +4 -4
  257. package/dist/types/components/inline-link/inline-link.d.ts +197 -191
  258. package/dist/types/components/input/input.d.ts +393 -372
  259. package/dist/types/components/label/label.d.ts +25 -24
  260. package/dist/types/components/list-item/list-item.d.ts +108 -0
  261. package/dist/types/components/nav-list-item/nav-list-item.d.ts +72 -0
  262. package/dist/types/components/radio/radio.d.ts +99 -96
  263. package/dist/types/components/select/select.d.ts +221 -0
  264. package/dist/types/components/shared.d.ts +4 -0
  265. package/dist/types/components/standalone-link/standalone-link.d.ts +229 -0
  266. package/dist/types/components/switch/switch.d.ts +111 -108
  267. package/dist/types/components/table/table.d.ts +15 -0
  268. package/dist/types/components/table-body/table-body.d.ts +15 -0
  269. package/dist/types/components/table-cell/table-cell.d.ts +32 -0
  270. package/dist/types/components/table-head/table-head.d.ts +15 -0
  271. package/dist/types/components/table-head-cell/table-head-cell.d.ts +56 -0
  272. package/dist/types/components/table-row/table-row.d.ts +15 -0
  273. package/dist/types/components/textarea/textarea.d.ts +338 -0
  274. package/dist/types/components/title/title.d.ts +36 -32
  275. package/dist/types/components/tooltip/tooltip.d.ts +136 -137
  276. package/dist/types/components.d.ts +2602 -654
  277. package/dist/types/helpers.d.ts +5 -15
  278. package/dist/types/index.d.ts +1 -0
  279. package/dist/types/interface-overrides.d.ts +179 -0
  280. package/dist/types/qds-test.d.ts +20 -9
  281. package/dist/types/stencil-public-runtime.d.ts +51 -13
  282. package/dist/types/utils.d.ts +4 -4
  283. package/dist/vscode.html-custom-data.json +1062 -97
  284. package/hydrate/index.d.ts +7 -7
  285. package/hydrate/index.js +21920 -8801
  286. package/loader/cdn.js +3 -4
  287. package/loader/index.cjs.js +3 -4
  288. package/loader/index.d.ts +1 -1
  289. package/loader/index.es2017.js +3 -4
  290. package/loader/index.js +3 -4
  291. package/package.json +48 -81
  292. package/styles/core.css +137 -14
  293. package/dist/cjs/floating-ui.dom.esm-71fa96af.js.map +0 -1
  294. package/dist/cjs/helpers-0b23af3f.js +0 -184
  295. package/dist/cjs/helpers-0b23af3f.js.map +0 -1
  296. package/dist/cjs/index-f19b2823.js +0 -2030
  297. package/dist/cjs/index-f19b2823.js.map +0 -1
  298. package/dist/cjs/library-4ab80928.js +0 -62
  299. package/dist/cjs/library-4ab80928.js.map +0 -1
  300. package/dist/esm/floating-ui.dom.esm-f96ac766.js.map +0 -1
  301. package/dist/esm/helpers-5c189a19.js +0 -174
  302. package/dist/esm/helpers-5c189a19.js.map +0 -1
  303. package/dist/esm/index-1bc8e218.js +0 -2000
  304. package/dist/esm/index-1bc8e218.js.map +0 -1
  305. package/dist/esm/library-eaf6fb3d.js +0 -58
  306. package/dist/esm/library-eaf6fb3d.js.map +0 -1
  307. package/dist/esm/polyfills/core-js.js +0 -11
  308. package/dist/esm/polyfills/css-shim.js +0 -1
  309. package/dist/esm/polyfills/dom.js +0 -79
  310. package/dist/esm/polyfills/es5-html-element.js +0 -1
  311. package/dist/esm/polyfills/index.js +0 -34
  312. package/dist/esm/polyfills/system.js +0 -6
  313. package/dist/types/components/create-story.d.ts +0 -5
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!--
2
- SPDX-FileCopyrightText: © 2023 Schneider Electric
2
+ SPDX-FileCopyrightText: © 2024 Schneider Electric
3
3
 
4
- SPDX-License-Identifier: LGPL-2.1-only
4
+ SPDX-License-Identifier: Apache-2.0
5
5
  -->
6
6
 
7
7
  # `@quartzds/core`
@@ -40,11 +40,11 @@ Next, the platform and theme CSS custom properties:
40
40
  ```html
41
41
  <link
42
42
  rel="stylesheet"
43
- href="https://unpkg.com/@quartzds/generic-tokens-core/dist/platform/desktop.css"
43
+ href="https://unpkg.com/@quartzds/generic-tokens/core/dist/platform/desktop.css"
44
44
  />
45
45
  <link
46
46
  rel="stylesheet"
47
- href="https://unpkg.com/@quartzds/generic-tokens-core/dist/theme/light.css"
47
+ href="https://unpkg.com/@quartzds/generic-tokens/core/dist/theme/light.css"
48
48
  />
49
49
  ```
50
50
 
@@ -53,7 +53,7 @@ Optionally, the dark theme:
53
53
  ```html
54
54
  <link
55
55
  rel="stylesheet"
56
- href="https://unpkg.com/@quartzds/generic-tokens-core/dist/theme/dark.css"
56
+ href="https://unpkg.com/@quartzds/generic-tokens/core/dist/theme/dark.css"
57
57
  />
58
58
  ```
59
59
 
@@ -0,0 +1,208 @@
1
+ /*!
2
+ * SPDX-FileCopyrightText: © 2024 Schneider Electric
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
7
+ import { p as pickFocusEventAttributes, i as inheritAriaAttributes } from './helpers.js';
8
+ import { C as CUSTOM_ERROR_FLAGS, N as NO_ERROR_FLAGS, V as VALID_STATE } from './controls.js';
9
+ import { d as defineCustomElement$2 } from './icon.js';
10
+ import { d as defineCustomElement$1 } from './label.js';
11
+
12
+ const checkboxCss = ":host([hidden]){display:none !important}:host{display:inline-block;line-height:0}.qds-checkbox,.qds-box,.qds-icon{grid-area:checkbox;place-self:center}.qds-icon,.qds-box{display:none;pointer-events:none}.qds-box{border-radius:var(--qds-control-toggle-indicator-border-radius)}.qds-container{display:grid;align-self:flex-start;grid-template-areas:'checkbox'}.qds-icon{color:var(--qds-theme-signature-color-contrast)}.qds-label{cursor:pointer;display:inline-flex}.qds-checkbox{-webkit-appearance:none;appearance:none;background-color:var(--qds-theme-control-input-background);border-radius:var(--qds-control-border-radius);border:var(--qds-control-border-width) solid var(--qds-theme-control-border);cursor:pointer;margin:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.qds-checkbox:focus-visible{outline:var(--qds-theme-focus-border) solid var(--qds-focus-border-width);outline-offset:var(--qds-focus-border-offset)}.qds-checkbox:hover~.qds-box,.qds-checkbox:active~.qds-box{display:block}.qds-checkbox:hover~.qds-box{background-color:var(--qds-theme-signature-color-hover)}.qds-checkbox:active~.qds-box{background-color:var(--qds-theme-signature-color-pressed)}.qds-checkbox:checked~.qds-checked,.qds-checkbox:indeterminate~.qds-indeterminate{display:block}.qds-checkbox:checked,.qds-checkbox:indeterminate{background-color:var(--qds-theme-signature-color-default);border-color:transparent}.qds-checkbox:checked:hover,.qds-checkbox:indeterminate:hover{background-color:var(--qds-theme-signature-color-hover)}.qds-checkbox:checked:active,.qds-checkbox:indeterminate:active{background-color:var(--qds-theme-signature-color-pressed)}[aria-disabled='true']{opacity:var(--qds-theme-disabled);pointer-events:none}.qds-checkbox[data-size='small']{width:var(--qds-control-toggle-box-small-size);height:var(--qds-control-toggle-box-small-size)}.qds-icon[data-size='small']{font-size:var(--qds-control-small-icon-size)}.qds-box[data-size='small']{width:var(--qds-control-toggle-indicator-small-size);height:var(--qds-control-toggle-indicator-small-size)}.qds-inline[data-size='small']{margin-block:var(--qds-control-small-padding-auto-height)}.qds-label[data-size='small']{gap:var(--qds-control-small-gap-siblings-related)}.qds-checkbox[data-size='standard']{width:var(--qds-control-toggle-box-standard-size);height:var(--qds-control-toggle-box-standard-size)}.qds-icon[data-size='standard']{font-size:var(--qds-control-standard-icon-size)}.qds-box[data-size='standard']{width:var(--qds-control-toggle-indicator-standard-size);height:var(--qds-control-toggle-indicator-standard-size)}.qds-inline[data-size='standard']{margin-block:var(--qds-control-standard-padding-auto-height)}.qds-label[data-size='standard']{gap:var(--qds-control-standard-gap-siblings-related)}.qds-checkbox[data-size='large']{width:var(--qds-control-toggle-box-large-size);height:var(--qds-control-toggle-box-large-size)}.qds-icon[data-size='large']{font-size:var(--qds-control-large-icon-size)}.qds-box[data-size='large']{width:var(--qds-control-toggle-indicator-large-size);height:var(--qds-control-toggle-indicator-large-size)}.qds-inline[data-size='large']{margin-block:var(--qds-control-large-padding-auto-height)}.qds-label[data-size='large']{gap:var(--qds-control-large-gap-siblings-related)}";
13
+ const QdsCheckboxStyle0 = checkboxCss;
14
+
15
+ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLElement {
16
+ constructor() {
17
+ super();
18
+ this.__registerHost();
19
+ this.__attachShadow();
20
+ this.blurEmitter = createEvent(this, "qdsBlur", 2);
21
+ this.changeEmitter = createEvent(this, "qdsChange", 6);
22
+ this.focusEmitter = createEvent(this, "qdsFocus", 2);
23
+ this.internals = this.attachInternals();
24
+ this.inheritedAttributes = {};
25
+ this.ref = (checkbox) => {
26
+ this.input = checkbox;
27
+ };
28
+ this.onBlur = (event) => {
29
+ this.blurEmitter.emit(pickFocusEventAttributes(event));
30
+ };
31
+ this.onFocus = (event) => {
32
+ this.focusEmitter.emit(pickFocusEventAttributes(event));
33
+ };
34
+ this.checkValidity = () => this.internals.checkValidity();
35
+ this.reportValidity = () => this.internals.reportValidity();
36
+ this.setCustomValidity = (error) => {
37
+ if (error)
38
+ this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.input);
39
+ else
40
+ this.internals.setValidity(NO_ERROR_FLAGS);
41
+ };
42
+ this.inline = false;
43
+ this.size = 'standard';
44
+ this.text = undefined;
45
+ this.autoFocus = undefined;
46
+ this.checked = undefined;
47
+ this.disabled = undefined;
48
+ this.form = null;
49
+ this.indeterminate = undefined;
50
+ this.name = undefined;
51
+ this.required = undefined;
52
+ this.validationMessage = '';
53
+ this.validity = VALID_STATE;
54
+ this.value = 'on';
55
+ this.willValidate = false;
56
+ this.tabIndex = undefined;
57
+ }
58
+ get computedChecked() {
59
+ return this.checked ?? false;
60
+ }
61
+ get computedDisabled() {
62
+ return ((this.element.matches(':disabled') || (this.disabled ?? false)) &&
63
+ this.element.getAttribute('disabled') !== 'false');
64
+ }
65
+ get computedIndeterminate() {
66
+ return this.indeterminate ?? false;
67
+ }
68
+ get computedSize() {
69
+ switch (this.size) {
70
+ case 'standard':
71
+ case 'small':
72
+ case 'large': {
73
+ return this.size;
74
+ }
75
+ default: {
76
+ return 'standard';
77
+ }
78
+ }
79
+ }
80
+ get computedValue() {
81
+ // eslint-disable-next-line unicorn/no-null
82
+ return this.value == null ? null : this.value.toString();
83
+ }
84
+ get hasText() {
85
+ return ((this.text !== undefined && this.text !== '') || this.required === true);
86
+ }
87
+ onClick(event) {
88
+ if (this.computedDisabled) {
89
+ event.stopImmediatePropagation();
90
+ return;
91
+ }
92
+ event.preventDefault();
93
+ this.checked = this.computedIndeterminate ? true : !this.computedChecked;
94
+ this.changeEmitter.emit();
95
+ this.indeterminate = false;
96
+ }
97
+ checkedChanged() {
98
+ this.internals.setFormValue(this.computedChecked && !this.computedDisabled
99
+ ? this.computedValue
100
+ : // eslint-disable-next-line unicorn/no-null
101
+ null);
102
+ }
103
+ disabledChanged() {
104
+ if (this.computedChecked && !this.computedDisabled)
105
+ this.internals.setFormValue(this.computedValue);
106
+ // eslint-disable-next-line unicorn/no-null
107
+ else
108
+ this.internals.setFormValue(null);
109
+ }
110
+ tabindexChanged(newValue) {
111
+ const parsedValue = Number.parseInt(newValue, 10);
112
+ this.tabIndex =
113
+ parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue;
114
+ }
115
+ valueChanged() {
116
+ if (this.computedChecked && !this.computedDisabled)
117
+ this.internals.setFormValue(this.computedValue);
118
+ }
119
+ componentWillLoad() {
120
+ this.valueChanged();
121
+ this.defineGetter('form', () => this.internals.form);
122
+ this.defineGetter('willValidate', () => this.internals.willValidate);
123
+ this.defineGetter('validity', () => this.internals.validity);
124
+ this.defineGetter('validationMessage', () => this.internals.validationMessage);
125
+ this.defineGetter('checkValidity', () => this.checkValidity);
126
+ this.defineGetter('reportValidity', () => this.reportValidity);
127
+ this.defineGetter('setCustomValidity', () => this.setCustomValidity);
128
+ this.inheritedAttributes = inheritAriaAttributes(this.element);
129
+ this.tabindexChanged(this.element.getAttribute('tabindex') ?? '0');
130
+ }
131
+ render() {
132
+ return (
133
+ // eslint-disable-next-line jsx-a11y/label-has-associated-control
134
+ h("label", { key: 'cd4689a54ca17ef1544e56cd5cd0e82f3efd84b8', "aria-disabled": this.computedDisabled ? 'true' : undefined, class: {
135
+ 'qds-inline': this.inline,
136
+ 'qds-label': true,
137
+ }, "data-size": this.computedSize }, h("div", { key: '58e279291650ed3f8257f32f1e226062db326c51', class: "qds-container" }, h("input", { key: '470c04f8e97e5b63224f86114940389574171c7b',
138
+ // eslint-disable-next-line jsx-a11y/no-autofocus
139
+ autoFocus: this.autoFocus, checked: this.computedIndeterminate ? false : this.checked, class: "qds-checkbox", "data-size": this.computedSize, disabled: this.computedDisabled, indeterminate: this.indeterminate, onBlur: this.onBlur, onFocus: this.onFocus, ref: this.ref, required: this.required, tabIndex: this.computedDisabled ? undefined : this.tabIndex, type: "checkbox", ...this.inheritedAttributes }), h("qds-icon", { key: 'e44208a9d7fd03be8653cf1c02a4ee11f9cffd63', "aria-hidden": "true", class: {
140
+ 'qds-icon': true,
141
+ 'qds-checked': true,
142
+ }, "data-size": this.computedSize, library: "core", name: "checked" }), h("div", { key: 'd36bf69de5e032cc2d764834292fcc481745d163', class: "qds-box", "data-size": this.computedSize }), h("qds-icon", { key: '3404a948a2ebda3364b0e7b9302437c54ae1e3d3', "aria-hidden": "true", class: {
143
+ 'qds-icon': true,
144
+ 'qds-indeterminate': true,
145
+ }, "data-size": this.computedSize, library: "core", name: "indeterminate" })), this.hasText && (h("qds-label", { key: '636810006f8fd9664e201ee2f5f4d7f9b19a289c', required: this.required, size: this.size, text: this.text }))));
146
+ }
147
+ defineGetter(p, get) {
148
+ Object.defineProperty(this.element, p, { enumerable: true, get });
149
+ }
150
+ static get delegatesFocus() { return true; }
151
+ static get formAssociated() { return true; }
152
+ get element() { return this; }
153
+ static get watchers() { return {
154
+ "checked": ["checkedChanged"],
155
+ "disabled": ["disabledChanged"],
156
+ "tabindex": ["tabindexChanged"],
157
+ "value": ["valueChanged"]
158
+ }; }
159
+ static get style() { return QdsCheckboxStyle0; }
160
+ }, [81, "qds-checkbox", {
161
+ "inline": [4],
162
+ "size": [1],
163
+ "text": [1],
164
+ "autoFocus": [4, "autofocus"],
165
+ "checked": [1028],
166
+ "disabled": [4],
167
+ "form": [1],
168
+ "indeterminate": [1028],
169
+ "name": [1],
170
+ "required": [4],
171
+ "validationMessage": [1, "validation-message"],
172
+ "validity": [16],
173
+ "value": [8],
174
+ "willValidate": [4, "will-validate"],
175
+ "tabIndex": [32]
176
+ }, [[0, "click", "onClick"]], {
177
+ "checked": ["checkedChanged"],
178
+ "disabled": ["disabledChanged"],
179
+ "tabindex": ["tabindexChanged"],
180
+ "value": ["valueChanged"]
181
+ }]);
182
+ function defineCustomElement() {
183
+ if (typeof customElements === "undefined") {
184
+ return;
185
+ }
186
+ const components = ["qds-checkbox", "qds-icon", "qds-label"];
187
+ components.forEach(tagName => { switch (tagName) {
188
+ case "qds-checkbox":
189
+ if (!customElements.get(tagName)) {
190
+ customElements.define(tagName, Checkbox);
191
+ }
192
+ break;
193
+ case "qds-icon":
194
+ if (!customElements.get(tagName)) {
195
+ defineCustomElement$2();
196
+ }
197
+ break;
198
+ case "qds-label":
199
+ if (!customElements.get(tagName)) {
200
+ defineCustomElement$1();
201
+ }
202
+ break;
203
+ } });
204
+ }
205
+
206
+ export { Checkbox as C, defineCustomElement as d };
207
+
208
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"file":"checkbox.js","mappings":"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","names":[],"sources":["src/components/checkbox/checkbox.css?tag=qds-checkbox&encapsulation=shadow","src/components/checkbox/checkbox.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: inline-block;\n line-height: 0;\n}\n\n.qds-checkbox,\n.qds-box,\n.qds-icon {\n grid-area: checkbox;\n place-self: center;\n}\n\n.qds-icon,\n.qds-box {\n display: none;\n pointer-events: none;\n}\n\n.qds-box {\n border-radius: var(--qds-control-toggle-indicator-border-radius);\n}\n\n.qds-container {\n display: grid;\n align-self: flex-start;\n grid-template-areas: 'checkbox';\n}\n\n.qds-icon {\n color: var(--qds-theme-signature-color-contrast);\n}\n\n.qds-label {\n cursor: pointer;\n display: inline-flex;\n}\n\n.qds-checkbox {\n appearance: none;\n background-color: var(--qds-theme-control-input-background);\n border-radius: var(--qds-control-border-radius);\n border: var(--qds-control-border-width) solid var(--qds-theme-control-border);\n cursor: pointer;\n margin: 0;\n print-color-adjust: exact;\n\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n outline-offset: var(--qds-focus-border-offset);\n }\n\n &:hover ~ .qds-box,\n &:active ~ .qds-box {\n display: block;\n }\n\n &:hover ~ .qds-box {\n background-color: var(--qds-theme-signature-color-hover);\n }\n\n &:active ~ .qds-box {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n\n &:checked ~ .qds-checked,\n &:indeterminate ~ .qds-indeterminate {\n display: block;\n }\n\n &:checked,\n &:indeterminate {\n background-color: var(--qds-theme-signature-color-default);\n border-color: transparent;\n\n &:hover {\n background-color: var(--qds-theme-signature-color-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n }\n}\n\n[aria-disabled='true'] {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n[data-size='small'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-small-size);\n height: var(--qds-control-toggle-box-small-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-small-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-small-size);\n height: var(--qds-control-toggle-indicator-small-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-small-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-size='standard'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-standard-size);\n height: var(--qds-control-toggle-box-standard-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-standard-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-standard-size);\n height: var(--qds-control-toggle-indicator-standard-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-standard-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n}\n\n[data-size='large'] {\n &.qds-checkbox {\n width: var(--qds-control-toggle-box-large-size);\n height: var(--qds-control-toggle-box-large-size);\n }\n\n &.qds-icon {\n font-size: var(--qds-control-large-icon-size);\n }\n\n &.qds-box {\n width: var(--qds-control-toggle-indicator-large-size);\n height: var(--qds-control-toggle-indicator-large-size);\n }\n\n &.qds-inline {\n margin-block: var(--qds-control-large-padding-auto-height);\n }\n\n &.qds-label {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport type { Attributes, QdsFocusEventDetail } from '../../helpers'\nimport { inheritAriaAttributes, pickFocusEventAttributes } from '../../helpers'\nimport { CUSTOM_ERROR_FLAGS, NO_ERROR_FLAGS, VALID_STATE } from '../controls'\nimport type { Size } from '../shared'\n\nexport type CheckboxValue = number | string | null\n\n/**\n * `<qds-checkbox>` elements are rendered as boxes that are checked (ticked)\n * when activated, like you might see in an official government paper form. A\n * checkbox allows you to select single values for submission in a form (or not).\n *\n * @see https://quartz.se.com/build/components/checkbox\n */\n@Component({\n tag: 'qds-checkbox',\n formAssociated: true,\n shadow: { delegatesFocus: true },\n styleUrl: 'checkbox.css',\n})\nexport class Checkbox implements ComponentInterface {\n /**\n * Adds vertical margin to the checkbox for alignment.\n *\n * This is useful when creating inline layouts so that the first lines have\n * the correct vertical centering.\n */\n @Prop() public readonly inline: boolean = false\n\n /**\n * The checkbox's size.\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * The checkbox's text.\n */\n @Prop() public readonly text?: string\n\n /**\n * Specify whether the checkbox should have focus when the page loads.\n *\n * @webnative\n */\n @Prop({ attribute: 'autofocus' }) public readonly autoFocus?: boolean\n\n /**\n * Sets the checkbox's state.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public checked?: boolean\n\n /**\n * Prevents the checkbox from being interacted with: it cannot be pressed or\n * focused.\n *\n * @webnative\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * The [`<form>`][] element to associate the checkbox with (its form owner).\n *\n * The value of this attribute must be the id of a `<form>` in the same\n * document. If this attribute is not set, the `<qds-checkbox>` is associated\n * with its ancestor `<form>` element, if any.\n *\n * This attribute lets you associate `<qds-checkbox>` elements to `<form>`s\n * anywhere in the document, not just inside a `<form>`. It can also override\n * an ancestor `<form>` element.\n *\n * [`<form>`]: https://developer.mozilla.org/docs/Web/HTML/Element/form\n *\n * @readonly\n * @webnative\n */\n // eslint-disable-next-line unicorn/no-null\n @Prop() public readonly form: ElementInternals['form'] | string = null\n\n /**\n * Sets the checkbox to an indeterminate state. This is usually applied to\n * checkboxes that represent a \"select all/none\" behavior when associated\n * checkboxes have a mix of checked and unchecked states.\n *\n * @webnative\n */\n @Prop({ mutable: true }) public indeterminate?: boolean\n\n /**\n * The name of the checkbox, which is submitted with the form data.\n *\n * @webnative\n */\n @Prop() public readonly name?: string\n\n /**\n * A value must be specified for the checkbox before the owning form can be\n * submitted.\n *\n * See\n * [Client-side validation](https://developer.mozilla.org/docs/Web/HTML/Element/input#client-side_validation)\n * and the\n * [HTML attribute: `required`](https://developer.mozilla.org/docs/Web/HTML/Attributes/required)\n * for more information.\n *\n * @webnative\n */\n @Prop() public readonly required?: boolean\n\n /**\n * The error message that would be shown to the user if the `<qds-checkbox>`\n * was to be checked for validity.\n *\n * @readonly\n * @webnative\n */\n @Prop()\n public readonly validationMessage: ElementInternals['validationMessage'] = ''\n\n /**\n * The [`ValidityState`][] object for this `<qds-checkbox>`.\n *\n * [`ValidityState`]: https://developer.mozilla.org/docs/Web/API/ValidityState\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly validity: ElementInternals['validity'] = VALID_STATE\n\n /**\n * The value of the checkbox, submitted as a name/value pair with form data.\n *\n * @webnative\n */\n @Prop() public readonly value?: CheckboxValue = 'on'\n\n /**\n * True if `<qds-checkbox>` will be validated when the form is submitted;\n * false otherwise.\n *\n * @readonly\n * @webnative\n */\n @Prop() public readonly willValidate: ElementInternals['willValidate'] = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n /**\n * Emitted when the checkbox loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when a change to the checkbox's state is committed by the user.\n */\n @Event({ eventName: 'qdsChange', cancelable: false })\n private readonly changeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the checkbox gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly element!: HTMLQdsCheckboxElement\n\n @State() private tabIndex?: number\n\n private inheritedAttributes: Attributes = {}\n\n private input?: HTMLInputElement\n\n private get computedChecked(): boolean {\n return this.checked ?? false\n }\n\n private get computedDisabled(): boolean {\n return (\n (this.element.matches(':disabled') || (this.disabled ?? false)) &&\n this.element.getAttribute('disabled') !== 'false'\n )\n }\n\n private get computedIndeterminate(): boolean {\n return this.indeterminate ?? false\n }\n\n private get computedSize(): Size {\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n private get computedValue(): string | null {\n // eslint-disable-next-line unicorn/no-null\n return this.value == null ? null : this.value.toString()\n }\n\n private get hasText(): boolean {\n return (\n (this.text !== undefined && this.text !== '') || this.required === true\n )\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.computedDisabled) {\n event.stopImmediatePropagation()\n return\n }\n\n event.preventDefault()\n\n this.checked = this.computedIndeterminate ? true : !this.computedChecked\n this.changeEmitter.emit()\n this.indeterminate = false\n }\n\n @Watch('checked')\n protected checkedChanged(): void {\n this.internals.setFormValue(\n this.computedChecked && !this.computedDisabled\n ? this.computedValue\n : // eslint-disable-next-line unicorn/no-null\n null,\n )\n }\n\n @Watch('disabled')\n protected disabledChanged(): void {\n if (this.computedChecked && !this.computedDisabled)\n this.internals.setFormValue(this.computedValue)\n // eslint-disable-next-line unicorn/no-null\n else this.internals.setFormValue(null)\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('value')\n protected valueChanged(): void {\n if (this.computedChecked && !this.computedDisabled)\n this.internals.setFormValue(this.computedValue)\n }\n\n public componentWillLoad(): void {\n this.valueChanged()\n\n this.defineGetter('form', () => this.internals.form)\n this.defineGetter('willValidate', () => this.internals.willValidate)\n this.defineGetter('validity', () => this.internals.validity)\n this.defineGetter(\n 'validationMessage',\n () => this.internals.validationMessage,\n )\n this.defineGetter('checkValidity', () => this.checkValidity)\n this.defineGetter('reportValidity', () => this.reportValidity)\n this.defineGetter('setCustomValidity', () => this.setCustomValidity)\n\n this.inheritedAttributes = inheritAriaAttributes(this.element)\n this.tabindexChanged(this.element.getAttribute('tabindex') ?? '0')\n }\n\n public render() {\n return (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n aria-disabled={this.computedDisabled ? 'true' : undefined}\n class={{\n 'qds-inline': this.inline,\n 'qds-label': true,\n }}\n data-size={this.computedSize}\n >\n <div class=\"qds-container\">\n <input\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={this.autoFocus}\n checked={this.computedIndeterminate ? false : this.checked}\n class=\"qds-checkbox\"\n data-size={this.computedSize}\n disabled={this.computedDisabled}\n indeterminate={this.indeterminate}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n ref={this.ref}\n required={this.required}\n tabIndex={this.computedDisabled ? undefined : this.tabIndex}\n type=\"checkbox\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.inheritedAttributes}\n />\n <qds-icon\n aria-hidden=\"true\"\n class={{\n 'qds-icon': true,\n 'qds-checked': true,\n }}\n data-size={this.computedSize}\n library=\"core\"\n name=\"checked\"\n />\n <div class=\"qds-box\" data-size={this.computedSize} />\n <qds-icon\n aria-hidden=\"true\"\n class={{\n 'qds-icon': true,\n 'qds-indeterminate': true,\n }}\n data-size={this.computedSize}\n library=\"core\"\n name=\"indeterminate\"\n />\n </div>\n {this.hasText && (\n <qds-label\n required={this.required}\n size={this.size}\n text={this.text}\n />\n )}\n </label>\n )\n }\n\n private readonly ref = (checkbox?: HTMLInputElement): void => {\n this.input = checkbox\n }\n\n private readonly onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n private readonly onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n private defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.element, p, { enumerable: true, get })\n }\n\n private readonly checkValidity: ElementInternals['checkValidity'] = () =>\n this.internals.checkValidity()\n\n private readonly reportValidity: ElementInternals['reportValidity'] = () =>\n this.internals.reportValidity()\n\n private readonly setCustomValidity: HTMLInputElement['setCustomValidity'] = (\n error,\n ) => {\n if (error) this.internals.setValidity(CUSTOM_ERROR_FLAGS, error, this.input)\n else this.internals.setValidity(NO_ERROR_FLAGS)\n }\n}\n"],"version":3}
@@ -0,0 +1,27 @@
1
+ /*!
2
+ * SPDX-FileCopyrightText: © 2024 Schneider Electric
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // SPDX-FileCopyrightText: © 2024 Schneider Electric
7
+ //
8
+ // SPDX-License-Identifier: Apache-2.0
9
+ const CUSTOM_ERROR_FLAGS = { customError: true };
10
+ const NO_ERROR_FLAGS = {};
11
+ const VALID_STATE = {
12
+ badInput: false,
13
+ customError: false,
14
+ patternMismatch: false,
15
+ rangeOverflow: false,
16
+ rangeUnderflow: false,
17
+ stepMismatch: false,
18
+ tooLong: false,
19
+ tooShort: false,
20
+ typeMismatch: false,
21
+ valid: true,
22
+ valueMissing: false,
23
+ };
24
+
25
+ export { CUSTOM_ERROR_FLAGS as C, NO_ERROR_FLAGS as N, VALID_STATE as V };
26
+
27
+ //# sourceMappingURL=controls.js.map
@@ -0,0 +1 @@
1
+ {"file":"controls.js","mappings":";;;;;AAAA;AACA;AACA;MAmFa,kBAAkB,GAAuB,EAAE,WAAW,EAAE,IAAI,GAAE;MAC9D,cAAc,GAAuB,GAAE;MACvC,WAAW,GAAkB;IACxC,QAAQ,EAAE,KAAK;IACf,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,KAAK;;;;;","names":[],"sources":["src/components/controls.ts"],"sourcesContent":["// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nexport type AutoComplete =\n | 'additional-name'\n | 'address-level1'\n | 'address-level2'\n | 'address-level3'\n | 'address-level4'\n | 'address-line1'\n | 'address-line2'\n | 'address-line3'\n | 'bday-day'\n | 'bday-month'\n | 'bday-year'\n | 'bday'\n | 'cc-additional-name'\n | 'cc-csc'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-exp'\n | 'cc-family-name'\n | 'cc-given-name'\n | 'cc-name'\n | 'cc-number'\n | 'cc-type'\n | 'country-name'\n | 'country'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'given-name'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'impp'\n | 'language'\n | 'name'\n | 'new-password'\n | 'nickname'\n | 'off'\n | 'on'\n | 'one-time-code'\n | 'organization-title'\n | 'organization'\n | 'photo'\n | 'postal-code'\n | 'sex'\n | 'street-address'\n | 'tel-area-code'\n | 'tel-country-code'\n | 'tel-extension'\n | 'tel-local'\n | 'tel-national'\n | 'tel'\n | 'transaction-amount'\n | 'transaction-currency'\n | 'url'\n | 'username'\nexport type AutoCapitalize =\n | 'characters'\n | 'none'\n | 'off'\n | 'on'\n | 'sentences'\n | 'words'\nexport type EnterKeyHint =\n | 'done'\n | 'enter'\n | 'go'\n | 'next'\n | 'previous'\n | 'search'\n | 'send'\nexport type InputMode =\n | 'decimal'\n | 'email'\n | 'none'\n | 'numeric'\n | 'search'\n | 'tel'\n | 'text'\n | 'url'\nexport type Value = number | string | null\n\nexport const CUSTOM_ERROR_FLAGS: ValidityStateFlags = { customError: true }\nexport const NO_ERROR_FLAGS: ValidityStateFlags = {}\nexport const VALID_STATE: ValidityState = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: true,\n valueMissing: false,\n}\n"],"version":3}