@vonage/vivid 4.24.0 → 4.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/custom-elements.json +12314 -4711
  2. package/elevation/index.cjs +1 -1
  3. package/elevation/index.js +1 -1
  4. package/index.cjs +112 -150
  5. package/index.js +37 -35
  6. package/lib/accordion-item/accordion-item.d.ts +6 -0
  7. package/lib/action-group/action-group.d.ts +6 -0
  8. package/lib/alert/alert.d.ts +20 -0
  9. package/lib/audio-player/audio-player.d.ts +6 -0
  10. package/lib/badge/badge.d.ts +9 -1
  11. package/lib/banner/banner.d.ts +25 -0
  12. package/lib/breadcrumb/breadcrumb.d.ts +6 -0
  13. package/lib/breadcrumb-item/breadcrumb-item.d.ts +63 -7
  14. package/lib/button/button.d.ts +732 -7
  15. package/lib/button/locale.d.ts +3 -0
  16. package/lib/calendar-event/calendar-event.d.ts +6 -0
  17. package/lib/card/card.d.ts +394 -2
  18. package/lib/card/card.template.d.ts +2 -1
  19. package/lib/checkbox/checkbox.d.ts +1822 -5
  20. package/lib/combobox/combobox.d.ts +1827 -20
  21. package/lib/data-grid/data-grid-cell.d.ts +339 -1
  22. package/lib/data-grid/locale.d.ts +5 -0
  23. package/lib/date-picker/date-picker.d.ts +1676 -207
  24. package/lib/date-range-picker/date-range-picker.d.ts +840 -107
  25. package/lib/date-time-picker/date-time-picker.d.ts +1678 -209
  26. package/lib/dial-pad/dial-pad.d.ts +8 -0
  27. package/lib/dialog/dialog.d.ts +12 -0
  28. package/lib/divider/divider.d.ts +6 -0
  29. package/lib/fab/fab.d.ts +6 -0
  30. package/lib/file-picker/file-picker.d.ts +1508 -30
  31. package/lib/header/header.d.ts +6 -0
  32. package/lib/icon/icon.d.ts +1 -0
  33. package/lib/icon/icon.template.d.ts +2 -1
  34. package/lib/menu/menu.d.ts +16 -7
  35. package/lib/menu/name.d.ts +1 -0
  36. package/lib/menu-item/menu-item.d.ts +14 -2
  37. package/lib/nav/nav.d.ts +6 -0
  38. package/lib/nav-disclosure/nav-disclosure.d.ts +13 -0
  39. package/lib/nav-item/nav-item.d.ts +405 -3
  40. package/lib/note/note.d.ts +6 -0
  41. package/lib/number-field/number-field.d.ts +1857 -36
  42. package/lib/option/option.d.ts +12 -0
  43. package/lib/progress/progress.d.ts +6 -0
  44. package/lib/progress-ring/progress-ring.d.ts +6 -0
  45. package/lib/radio/radio.d.ts +1137 -4
  46. package/lib/radio-group/radio-group.d.ts +20 -2
  47. package/lib/range-slider/range-slider.d.ts +752 -5
  48. package/lib/rich-text-editor/definition.d.ts +2 -2
  49. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +3 -1
  50. package/lib/rich-text-editor/locale.d.ts +1 -0
  51. package/lib/rich-text-editor/menubar/menubar.d.ts +6 -0
  52. package/lib/rich-text-editor/rich-text-editor.d.ts +352 -2
  53. package/lib/searchable-select/option-tag.d.ts +6 -0
  54. package/lib/searchable-select/searchable-select.d.ts +1857 -36
  55. package/lib/select/select.d.ts +1843 -28
  56. package/lib/selectable-box/selectable-box.d.ts +6 -0
  57. package/lib/slider/slider.d.ts +384 -2
  58. package/lib/split-button/split-button.d.ts +18 -0
  59. package/lib/switch/switch.d.ts +386 -3
  60. package/lib/tab/tab.d.ts +18 -1
  61. package/lib/tab-panel/tab-panel.d.ts +6 -0
  62. package/lib/tag/tag.d.ts +12 -0
  63. package/lib/tag-group/tag-group.d.ts +6 -0
  64. package/lib/text-area/text-area.d.ts +2174 -19
  65. package/lib/text-field/text-field.d.ts +2195 -31
  66. package/lib/time-picker/time-picker.d.ts +839 -106
  67. package/lib/toggletip/toggletip.d.ts +10 -4
  68. package/lib/tooltip/tooltip.d.ts +10 -4
  69. package/lib/tree-item/tree-item.d.ts +12 -0
  70. package/lib/tree-view/tree-view.d.ts +6 -0
  71. package/lib/video-player/video-player.d.ts +6 -0
  72. package/lib/visually-hidden/definition.d.ts +4 -0
  73. package/lib/visually-hidden/visually-hidden.d.ts +3 -0
  74. package/lib/visually-hidden/visually-hidden.template.d.ts +3 -0
  75. package/locales/de-DE.cjs +33 -1
  76. package/locales/de-DE.js +33 -1
  77. package/locales/en-GB.cjs +33 -1
  78. package/locales/en-GB.js +33 -1
  79. package/locales/en-US.cjs +33 -1
  80. package/locales/en-US.js +33 -1
  81. package/locales/ja-JP.cjs +33 -1
  82. package/locales/ja-JP.js +33 -1
  83. package/locales/zh-CN.cjs +33 -1
  84. package/locales/zh-CN.js +33 -1
  85. package/menu/index.cjs +1 -1
  86. package/menu/index.js +1 -1
  87. package/nav/index.cjs +1 -1
  88. package/nav/index.js +1 -1
  89. package/nav-disclosure/index.cjs +1 -1
  90. package/nav-disclosure/index.js +1 -1
  91. package/nav-item/index.cjs +1 -1
  92. package/nav-item/index.js +1 -1
  93. package/note/index.cjs +1 -1
  94. package/note/index.js +1 -1
  95. package/number-field/index.cjs +1 -1
  96. package/number-field/index.js +1 -1
  97. package/option/index.cjs +1 -1
  98. package/option/index.js +1 -1
  99. package/package.json +1 -1
  100. package/pagination/index.cjs +1 -1
  101. package/pagination/index.js +1 -1
  102. package/popup/index.cjs +1 -1
  103. package/popup/index.js +1 -1
  104. package/progress/index.cjs +1 -1
  105. package/progress/index.js +1 -1
  106. package/progress-ring/index.cjs +1 -1
  107. package/progress-ring/index.js +1 -1
  108. package/radio/index.cjs +1 -1
  109. package/radio/index.js +1 -1
  110. package/radio-group/index.cjs +1 -1
  111. package/radio-group/index.js +1 -1
  112. package/range-slider/index.cjs +1 -1
  113. package/range-slider/index.js +1 -1
  114. package/rich-text-editor/index.cjs +1 -1
  115. package/rich-text-editor/index.js +1 -1
  116. package/searchable-select/index.cjs +1 -1
  117. package/searchable-select/index.js +1 -1
  118. package/select/index.cjs +1 -1
  119. package/select/index.js +1 -1
  120. package/selectable-box/index.cjs +1 -1
  121. package/selectable-box/index.js +1 -1
  122. package/shared/affix.cjs +13 -7
  123. package/shared/affix.js +13 -8
  124. package/shared/aria/delegates-aria.d.ts +6 -0
  125. package/shared/aria/host-semantics.d.ts +6 -0
  126. package/shared/breadcrumb-item.cjs +2 -5
  127. package/shared/breadcrumb-item.js +2 -5
  128. package/shared/button.cjs +13 -11
  129. package/shared/button.js +13 -11
  130. package/shared/calendar-picker.template.cjs +3 -3
  131. package/shared/calendar-picker.template.js +1 -1
  132. package/shared/char-count.cjs +92 -0
  133. package/shared/char-count.js +90 -0
  134. package/shared/definition.js +1 -1
  135. package/shared/definition10.js +1 -1
  136. package/shared/definition11.cjs +27 -44
  137. package/shared/definition11.js +28 -45
  138. package/shared/definition12.js +1 -1
  139. package/shared/definition13.js +1 -1
  140. package/shared/definition14.cjs +53 -22
  141. package/shared/definition14.js +54 -23
  142. package/shared/definition15.cjs +31 -36
  143. package/shared/definition15.js +30 -36
  144. package/shared/definition16.cjs +43 -63
  145. package/shared/definition16.js +42 -63
  146. package/shared/definition17.cjs +8 -4
  147. package/shared/definition17.js +8 -4
  148. package/shared/definition18.cjs +10 -14
  149. package/shared/definition18.js +9 -14
  150. package/shared/definition19.cjs +85 -100
  151. package/shared/definition19.js +75 -91
  152. package/shared/definition2.js +1 -1
  153. package/shared/definition20.cjs +15 -20
  154. package/shared/definition20.js +14 -20
  155. package/shared/definition21.cjs +22 -3
  156. package/shared/definition21.js +23 -4
  157. package/shared/definition22.cjs +4 -4
  158. package/shared/definition22.js +5 -5
  159. package/shared/definition23.cjs +5 -38
  160. package/shared/definition23.js +5 -37
  161. package/shared/definition24.cjs +2 -7
  162. package/shared/definition24.js +3 -8
  163. package/shared/definition25.js +1 -1
  164. package/shared/definition26.cjs +157 -171
  165. package/shared/definition26.js +156 -171
  166. package/shared/definition27.cjs +1 -1
  167. package/shared/definition27.js +2 -2
  168. package/shared/definition28.cjs +32 -17
  169. package/shared/definition28.js +33 -18
  170. package/shared/definition29.js +1 -1
  171. package/shared/definition3.js +1 -1
  172. package/shared/definition30.cjs +96 -482
  173. package/shared/definition30.js +99 -482
  174. package/shared/definition31.cjs +334 -57
  175. package/shared/definition31.js +333 -56
  176. package/shared/definition32.cjs +104 -19
  177. package/shared/definition32.js +105 -20
  178. package/shared/definition33.cjs +67 -15
  179. package/shared/definition33.js +66 -14
  180. package/shared/definition34.cjs +15 -50
  181. package/shared/definition34.js +14 -49
  182. package/shared/definition35.cjs +28 -397
  183. package/shared/definition35.js +27 -397
  184. package/shared/definition36.cjs +404 -54
  185. package/shared/definition36.js +404 -55
  186. package/shared/definition37.cjs +57 -234
  187. package/shared/definition37.js +57 -233
  188. package/shared/definition38.cjs +221 -66
  189. package/shared/definition38.js +220 -65
  190. package/shared/definition39.cjs +52 -44
  191. package/shared/definition39.js +51 -43
  192. package/shared/definition4.cjs +31 -24
  193. package/shared/definition4.js +33 -26
  194. package/shared/definition40.cjs +56 -266
  195. package/shared/definition40.js +55 -265
  196. package/shared/definition41.cjs +285 -142
  197. package/shared/definition41.js +285 -142
  198. package/shared/definition42.cjs +156 -564
  199. package/shared/definition42.js +156 -565
  200. package/shared/definition43.cjs +554 -14378
  201. package/shared/definition43.js +553 -14377
  202. package/shared/definition44.cjs +14418 -1155
  203. package/shared/definition44.js +14417 -1156
  204. package/shared/definition45.cjs +1049 -677
  205. package/shared/definition45.js +1050 -678
  206. package/shared/definition46.cjs +848 -113
  207. package/shared/definition46.js +847 -112
  208. package/shared/definition47.cjs +125 -90
  209. package/shared/definition47.js +124 -89
  210. package/shared/definition48.cjs +88 -455
  211. package/shared/definition48.js +87 -454
  212. package/shared/definition49.cjs +466 -109
  213. package/shared/definition49.js +466 -109
  214. package/shared/definition5.cjs +8 -7
  215. package/shared/definition5.js +6 -5
  216. package/shared/definition50.cjs +106 -106
  217. package/shared/definition50.js +105 -105
  218. package/shared/definition51.cjs +136 -15
  219. package/shared/definition51.js +135 -14
  220. package/shared/definition52.cjs +16 -115
  221. package/shared/definition52.js +15 -114
  222. package/shared/definition53.cjs +78 -412
  223. package/shared/definition53.js +77 -410
  224. package/shared/definition54.cjs +445 -23
  225. package/shared/definition54.js +443 -22
  226. package/shared/definition55.cjs +22 -136
  227. package/shared/definition55.js +21 -135
  228. package/shared/definition56.cjs +95 -291
  229. package/shared/definition56.js +95 -292
  230. package/shared/definition57.cjs +192 -480
  231. package/shared/definition57.js +190 -479
  232. package/shared/definition58.cjs +411 -24
  233. package/shared/definition58.js +410 -24
  234. package/shared/definition59.cjs +27 -144
  235. package/shared/definition59.js +27 -143
  236. package/shared/definition6.js +1 -1
  237. package/shared/definition60.cjs +83 -54
  238. package/shared/definition60.js +82 -53
  239. package/shared/definition61.cjs +78 -166
  240. package/shared/definition61.js +77 -164
  241. package/shared/definition62.cjs +143 -232
  242. package/shared/definition62.js +141 -231
  243. package/shared/definition63.cjs +234 -69417
  244. package/shared/definition63.js +233 -69416
  245. package/shared/definition64.cjs +69454 -28
  246. package/shared/definition64.js +69453 -27
  247. package/shared/definition65.cjs +28 -2168
  248. package/shared/definition65.js +27 -2166
  249. package/shared/definition66.cjs +27 -0
  250. package/shared/definition66.js +23 -0
  251. package/shared/definition67.cjs +2195 -0
  252. package/shared/definition67.js +2190 -0
  253. package/shared/definition7.cjs +11 -2
  254. package/shared/definition7.js +12 -3
  255. package/shared/definition8.cjs +24 -11
  256. package/shared/definition8.js +26 -13
  257. package/shared/definition9.cjs +1 -2
  258. package/shared/definition9.js +2 -3
  259. package/shared/delegates-aria.js +1 -1
  260. package/shared/deprecation/replaced-props.d.ts +20 -0
  261. package/shared/divider.cjs +41 -0
  262. package/shared/divider.js +38 -0
  263. package/shared/feedback/feedback-message.d.ts +345 -0
  264. package/shared/feedback/locale.d.ts +4 -0
  265. package/{lib/text-anchor/text-anchor.d.ts → shared/feedback/mixins.d.ts} +62 -39
  266. package/shared/form-associated.cjs +124 -100
  267. package/shared/form-associated.js +125 -101
  268. package/shared/form-element.cjs +84 -0
  269. package/shared/form-element.js +82 -0
  270. package/shared/foundation/button/button.d.ts +378 -2
  271. package/shared/foundation/form-associated/form-associated.d.ts +753 -49
  272. package/shared/foundation/listbox/listbox.d.ts +1 -1
  273. package/shared/foundation/vivid-element/vivid-element.d.ts +14 -0
  274. package/shared/host-semantics.js +1 -1
  275. package/shared/key-codes.js +1 -1
  276. package/shared/linkable.cjs +70 -0
  277. package/shared/linkable.js +68 -0
  278. package/shared/localization/Locale.d.ts +14 -0
  279. package/shared/mixins.cjs +306 -0
  280. package/shared/mixins.js +300 -0
  281. package/shared/patterns/affix.d.ts +16 -1
  282. package/shared/patterns/anchored.d.ts +20 -8
  283. package/shared/patterns/char-count/char-count.d.ts +351 -0
  284. package/shared/patterns/char-count/index.d.ts +1 -0
  285. package/shared/patterns/char-count/locale.d.ts +4 -0
  286. package/shared/patterns/form-elements/form-element.d.ts +744 -0
  287. package/shared/patterns/form-elements/index.d.ts +3 -1
  288. package/shared/patterns/form-elements/with-error-text.d.ts +1122 -0
  289. package/shared/patterns/form-elements/with-success-text.d.ts +341 -0
  290. package/shared/patterns/index.d.ts +2 -0
  291. package/shared/patterns/linkable.d.ts +394 -0
  292. package/shared/patterns/localized.d.ts +6 -0
  293. package/shared/patterns/trapped-focus.d.ts +6 -0
  294. package/shared/picker-field/mixins/calendar-picker.d.ts +420 -52
  295. package/shared/picker-field/mixins/calendar-picker.template.d.ts +420 -52
  296. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +6 -0
  297. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +843 -107
  298. package/shared/picker-field/mixins/single-date-picker.d.ts +1259 -155
  299. package/shared/picker-field/mixins/single-value-picker.d.ts +417 -49
  300. package/shared/picker-field/mixins/time-selection-picker.d.ts +842 -106
  301. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +839 -103
  302. package/shared/picker-field/picker-field.d.ts +1491 -15
  303. package/shared/picker-field.template.cjs +13 -22
  304. package/shared/picker-field.template.js +14 -23
  305. package/shared/repeat.js +1 -1
  306. package/shared/slider.template.cjs +1 -1
  307. package/shared/slider.template.js +1 -1
  308. package/shared/time-selection-picker.template.cjs +10 -15
  309. package/shared/time-selection-picker.template.js +10 -16
  310. package/shared/vivid-element.cjs +53 -4
  311. package/shared/vivid-element.js +53 -3
  312. package/shared/with-error-text.cjs +56 -0
  313. package/shared/with-error-text.js +54 -0
  314. package/shared/with-success-text.cjs +23 -0
  315. package/shared/with-success-text.js +21 -0
  316. package/side-drawer/index.cjs +1 -1
  317. package/side-drawer/index.js +1 -1
  318. package/slider/index.cjs +1 -1
  319. package/slider/index.js +1 -1
  320. package/split-button/index.cjs +1 -1
  321. package/split-button/index.js +1 -1
  322. package/styles/core/all.css +1 -1
  323. package/styles/core/theme.css +1 -1
  324. package/styles/core/typography.css +1 -1
  325. package/styles/tokens/theme-dark.css +4 -4
  326. package/styles/tokens/theme-light.css +4 -4
  327. package/styles/tokens/vivid-2-compat.css +1 -1
  328. package/switch/index.cjs +1 -1
  329. package/switch/index.js +1 -1
  330. package/tab/index.cjs +1 -1
  331. package/tab/index.js +1 -1
  332. package/tab-panel/index.cjs +1 -1
  333. package/tab-panel/index.js +1 -1
  334. package/tabs/index.cjs +1 -1
  335. package/tabs/index.js +1 -1
  336. package/tag/index.cjs +1 -1
  337. package/tag/index.js +1 -1
  338. package/tag-group/index.cjs +1 -1
  339. package/tag-group/index.js +1 -1
  340. package/text-area/index.cjs +1 -1
  341. package/text-area/index.js +1 -1
  342. package/text-field/index.cjs +1 -1
  343. package/text-field/index.js +1 -1
  344. package/time-picker/index.cjs +1 -1
  345. package/time-picker/index.js +1 -1
  346. package/toggletip/index.cjs +1 -1
  347. package/toggletip/index.js +1 -1
  348. package/tooltip/index.cjs +1 -1
  349. package/tooltip/index.js +1 -1
  350. package/tree-item/index.cjs +1 -1
  351. package/tree-item/index.js +1 -1
  352. package/tree-view/index.cjs +1 -1
  353. package/tree-view/index.js +1 -1
  354. package/video-player/index.cjs +1 -1
  355. package/video-player/index.js +1 -1
  356. package/visually-hidden/index.cjs +5 -0
  357. package/visually-hidden/index.js +3 -0
  358. package/vivid.api.json +744 -1490
  359. package/lib/checkbox/checkbox.form-associated.d.ts +0 -11
  360. package/lib/file-picker/file-picker.form-associated.d.ts +0 -11
  361. package/lib/number-field/number-field.form-associated.d.ts +0 -11
  362. package/lib/radio/radio.form-associated.d.ts +0 -13
  363. package/lib/range-slider/range-slider.form-associated.d.ts +0 -11
  364. package/lib/searchable-select/searchable-select.form-associated.d.ts +0 -11
  365. package/lib/select/select.form-associated.d.ts +0 -11
  366. package/lib/slider/slider.form-associated.d.ts +0 -11
  367. package/lib/switch/switch.form-associated.d.ts +0 -11
  368. package/lib/text-anchor/definition.d.ts +0 -2
  369. package/lib/text-anchor/text-anchor.template.d.ts +0 -3
  370. package/lib/text-area/text-area.form-associated.d.ts +0 -11
  371. package/lib/text-field/text-field.form-associated.d.ts +0 -11
  372. package/shared/anchor.cjs +0 -49
  373. package/shared/anchor.js +0 -47
  374. package/shared/apply-mixins.cjs +0 -23
  375. package/shared/apply-mixins.js +0 -21
  376. package/shared/applyMixinsWithObservables.cjs +0 -15
  377. package/shared/applyMixinsWithObservables.js +0 -13
  378. package/shared/direction.cjs +0 -17
  379. package/shared/direction.js +0 -15
  380. package/shared/form-elements.cjs +0 -209
  381. package/shared/form-elements.js +0 -202
  382. package/shared/foundation/anchor/anchor.d.ts +0 -11
  383. package/shared/foundation/utilities/apply-mixins.d.ts +0 -1
  384. package/shared/patterns/form-elements/form-elements.d.ts +0 -58
  385. package/shared/picker-field/picker-field.form-associated.d.ts +0 -11
  386. package/shared/text-anchor.cjs +0 -38
  387. package/shared/text-anchor.js +0 -36
  388. package/shared/text-anchor.template.cjs +0 -35
  389. package/shared/text-anchor.template.js +0 -33
  390. package/shared/utils/applyMixinsWithObservables.d.ts +0 -1
  391. package/text-anchor/index.cjs +0 -17
  392. package/text-anchor/index.js +0 -15
@@ -3,24 +3,28 @@
3
3
  const vividElement = require('./vivid-element.cjs');
4
4
  const keyCodes = require('./key-codes.cjs');
5
5
 
6
+ var __defProp = Object.defineProperty;
7
+ var __decorateClass = (decorators, target, key, kind) => {
8
+ var result = void 0 ;
9
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
+ if (decorator = decorators[i])
11
+ result = (decorator(target, key, result) ) || result;
12
+ if (result) __defProp(target, key, result);
13
+ return result;
14
+ };
6
15
  const proxySlotName = "form-associated-proxy";
7
16
  const ElementInternalsKey = "ElementInternals";
8
17
  const supportsElementInternals = ElementInternalsKey in window && "setFormValue" in window[ElementInternalsKey].prototype;
9
18
  const InternalsMap = /* @__PURE__ */ new WeakMap();
10
- function FormAssociated(BaseCtor) {
11
- const C = class extends BaseCtor {
19
+ const FormAssociated = (Base) => {
20
+ class FormAssociatedElement extends Base {
12
21
  constructor(...args) {
13
22
  super(...args);
14
23
  /**
15
24
  * Track whether the value has been changed from the initial value
25
+ * @internal
16
26
  */
17
27
  this.dirtyValue = false;
18
- /**
19
- * Sets the element's disabled state. A disabled element will not be included during form submission.
20
- *
21
- * @remarks
22
- * HTML Attribute: disabled
23
- */
24
28
  this.disabled = false;
25
29
  /**
26
30
  * These are events that are still fired by the proxy
@@ -28,8 +32,12 @@ function FormAssociated(BaseCtor) {
28
32
  *
29
33
  * The proxy implementation should be transparent to
30
34
  * the app author, so block these events from emitting.
35
+ * @internal
31
36
  */
32
37
  this.proxyEventsToBlock = ["change", "click"];
38
+ /**
39
+ * @internal
40
+ */
33
41
  this.proxyInitialized = false;
34
42
  this.required = false;
35
43
  this.initialValue = this.initialValue || "";
@@ -48,8 +56,6 @@ function FormAssociated(BaseCtor) {
48
56
  }
49
57
  /**
50
58
  * Returns the validity state of the element
51
- *
52
- * @alpha
53
59
  */
54
60
  get validity() {
55
61
  return this.elementInternals ? this.elementInternals.validity : this.proxy.validity;
@@ -57,8 +63,6 @@ function FormAssociated(BaseCtor) {
57
63
  /**
58
64
  * Retrieve a reference to the associated form.
59
65
  * Returns null if not associated to any form.
60
- *
61
- * @alpha
62
66
  */
63
67
  get form() {
64
68
  return this.elementInternals ? this.elementInternals.form : this.proxy.form;
@@ -66,8 +70,6 @@ function FormAssociated(BaseCtor) {
66
70
  /**
67
71
  * Retrieve the localized validation message,
68
72
  * or custom validation message if set.
69
- *
70
- * @alpha
71
73
  */
72
74
  get validationMessage() {
73
75
  return this.elementInternals ? this.elementInternals.validationMessage : this.proxy.validationMessage;
@@ -96,32 +98,27 @@ function FormAssociated(BaseCtor) {
96
98
  }
97
99
  }
98
100
  /**
99
- * Invoked when the `value` property changes
100
- *
101
- * @remarks
102
- * If elements extending `FormAssociated` implement a `valueChanged` method
103
- * They must be sure to invoke `super.valueChanged(previous, next)` to ensure
104
- * proper functioning of `FormAssociated`
101
+ * @internal
105
102
  */
106
103
  valueChanged(_previous, _next) {
107
104
  this.dirtyValue = true;
108
105
  if (this.proxy instanceof HTMLElement) {
109
106
  this.proxy.value = this.value;
110
107
  }
111
- this.currentValue = this.value;
112
108
  this.setFormValue(this.value);
113
109
  this.validate();
114
110
  }
115
- currentValueChanged() {
116
- this.value = this.currentValue;
111
+ /**
112
+ * @deprecated Use `value` instead.
113
+ */
114
+ get currentValue() {
115
+ return this.value;
116
+ }
117
+ set currentValue(value) {
118
+ this.value = value;
117
119
  }
118
120
  /**
119
- * Invoked when the `initialValue` property changes
120
- *
121
- * @remarks
122
- * If elements extending `FormAssociated` implement a `initialValueChanged` method
123
- * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure
124
- * proper functioning of `FormAssociated`
121
+ * @internal
125
122
  */
126
123
  initialValueChanged(_previous, _next) {
127
124
  if (!this.dirtyValue) {
@@ -130,12 +127,7 @@ function FormAssociated(BaseCtor) {
130
127
  }
131
128
  }
132
129
  /**
133
- * Invoked when the `disabled` property changes
134
- *
135
- * @remarks
136
- * If elements extending `FormAssociated` implement a `disabledChanged` method
137
- * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure
138
- * proper functioning of `FormAssociated`
130
+ * @internal
139
131
  */
140
132
  disabledChanged(_previous, _next) {
141
133
  if (this.proxy instanceof HTMLElement) {
@@ -144,12 +136,7 @@ function FormAssociated(BaseCtor) {
144
136
  vividElement.DOM.queueUpdate(() => this.classList.toggle("disabled", this.disabled));
145
137
  }
146
138
  /**
147
- * Invoked when the `name` property changes
148
- *
149
- * @remarks
150
- * If elements extending `FormAssociated` implement a `nameChanged` method
151
- * They must be sure to invoke `super.nameChanged(previous, next)` to ensure
152
- * proper functioning of `FormAssociated`
139
+ * @internal
153
140
  */
154
141
  nameChanged(_previous, _next) {
155
142
  if (this.proxy instanceof HTMLElement) {
@@ -157,12 +144,7 @@ function FormAssociated(BaseCtor) {
157
144
  }
158
145
  }
159
146
  /**
160
- * Invoked when the `required` property changes
161
- *
162
- * @remarks
163
- * If elements extending `FormAssociated` implement a `requiredChanged` method
164
- * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure
165
- * proper functioning of `FormAssociated`
147
+ * @internal
166
148
  */
167
149
  requiredChanged(_previous, _next) {
168
150
  if (this.proxy instanceof HTMLElement) {
@@ -174,6 +156,7 @@ function FormAssociated(BaseCtor) {
174
156
  /**
175
157
  * The element internals object. Will only exist
176
158
  * in browsers supporting the attachInternals API
159
+ * @internal
177
160
  */
178
161
  get elementInternals() {
179
162
  if (!supportsElementInternals) {
@@ -236,6 +219,7 @@ function FormAssociated(BaseCtor) {
236
219
  * @param flags - Validity flags
237
220
  * @param message - Optional message to supply
238
221
  * @param anchor - Optional element used by UA to display an interactive validation UI
222
+ * @internal
239
223
  */
240
224
  setValidity(flags, message, anchor) {
241
225
  if (this.elementInternals) {
@@ -248,16 +232,21 @@ function FormAssociated(BaseCtor) {
248
232
  * Invoked when a connected component's form or fieldset has its disabled
249
233
  * state changed.
250
234
  * @param disabled - the disabled value of the form / fieldset
235
+ * @internal
251
236
  */
252
237
  formDisabledCallback(disabled) {
253
238
  this.disabled = disabled;
254
239
  }
240
+ /**
241
+ * @internal
242
+ */
255
243
  formResetCallback() {
256
244
  this.value = this.initialValue;
257
245
  this.dirtyValue = false;
258
246
  }
259
247
  /**
260
248
  * Attach the proxy element to the DOM
249
+ * @internal
261
250
  */
262
251
  attachProxy() {
263
252
  if (!this.proxyInitialized) {
@@ -283,12 +272,19 @@ function FormAssociated(BaseCtor) {
283
272
  }
284
273
  /**
285
274
  * Detach the proxy element from the DOM
275
+ * @internal
286
276
  */
287
277
  detachProxy() {
288
278
  this.removeChild(this.proxy);
289
279
  this.shadowRoot.removeChild(this.proxySlot);
290
280
  }
291
- /** {@inheritDoc (FormAssociated:interface).validate} */
281
+ /**
282
+ * Sets the validity of the custom element. By default this uses the proxy element to determine
283
+ * validity, but this can be extended or replaced in implementation.
284
+ *
285
+ * @param anchor - The anchor element to provide to ElementInternals.setValidity for surfacing the browser's constraint validation UI
286
+ * @internal
287
+ */
292
288
  validate(anchor) {
293
289
  if (this.proxy instanceof HTMLElement && this.elementInternals) {
294
290
  const isValid = this.proxy.validity.valid;
@@ -309,12 +305,16 @@ function FormAssociated(BaseCtor) {
309
305
  * Associates the provided value (and optional state) with the parent form.
310
306
  * @param value - The value to set
311
307
  * @param state - The state object provided to during session restores and when autofilling.
308
+ * @internal
312
309
  */
313
310
  setFormValue(value, state) {
314
311
  if (this.elementInternals) {
315
312
  this.elementInternals.setFormValue(value, state || value);
316
313
  }
317
314
  }
315
+ /**
316
+ * @internal
317
+ */
318
318
  _keypressHandler(e) {
319
319
  switch (e.key) {
320
320
  case keyCodes.keyEnter:
@@ -330,53 +330,52 @@ function FormAssociated(BaseCtor) {
330
330
  /**
331
331
  * Used to stop propagation of proxy element events
332
332
  * @param e - Event object
333
+ * @internal
333
334
  */
334
335
  stopPropagation(e) {
335
336
  e.stopPropagation();
336
337
  }
337
- };
338
- vividElement.attr({ mode: "boolean" })(C.prototype, "disabled");
339
- vividElement.attr({ mode: "fromView", attribute: "value" })(C.prototype, "initialValue");
340
- vividElement.attr({ attribute: "current-value" })(C.prototype, "currentValue");
341
- vividElement.attr(C.prototype, "name");
342
- vividElement.attr({ mode: "boolean" })(C.prototype, "required");
343
- vividElement.observable(C.prototype, "value");
344
- return C;
345
- }
346
- function CheckableFormAssociated(BaseCtor) {
347
- class C extends FormAssociated(BaseCtor) {
348
338
  }
349
- class D extends C {
350
- constructor(...args) {
351
- super(args);
339
+ __decorateClass([
340
+ vividElement.attr({ attribute: "current-value" })
341
+ ], FormAssociatedElement.prototype, "value");
342
+ __decorateClass([
343
+ vividElement.attr({ mode: "fromView", attribute: "value" })
344
+ ], FormAssociatedElement.prototype, "initialValue");
345
+ __decorateClass([
346
+ vividElement.attr({ mode: "boolean" })
347
+ ], FormAssociatedElement.prototype, "disabled");
348
+ __decorateClass([
349
+ vividElement.attr
350
+ ], FormAssociatedElement.prototype, "name");
351
+ __decorateClass([
352
+ vividElement.attr({ mode: "boolean" })
353
+ ], FormAssociatedElement.prototype, "required");
354
+ return FormAssociatedElement;
355
+ };
356
+ const currentCheckedConverter = {
357
+ fromView(value) {
358
+ if (typeof value === "string") {
359
+ return value.toLowerCase() === "true";
360
+ }
361
+ return !!value;
362
+ },
363
+ toView(value) {
364
+ return value ? "true" : "false";
365
+ }
366
+ };
367
+ const CheckableFormAssociated = (Base) => {
368
+ class CheckableFormAssociatedElement extends FormAssociated(Base) {
369
+ constructor() {
370
+ super(...arguments);
352
371
  /**
353
372
  * Tracks whether the "checked" property has been changed.
354
373
  * This is necessary to provide consistent behavior with
355
374
  * normal input checkboxes
375
+ * @internal
356
376
  */
357
377
  this.dirtyChecked = false;
358
- /**
359
- * Provides the default checkedness of the input element
360
- * Passed down to proxy
361
- *
362
- * @public
363
- * @remarks
364
- * HTML Attribute: checked
365
- */
366
- this.checkedAttribute = false;
367
- /**
368
- * The checked state of the control.
369
- *
370
- * @public
371
- */
372
- this.checked = false;
373
- this.dirtyChecked = false;
374
- }
375
- /**
376
- * @internal
377
- */
378
- checkedAttributeChanged() {
379
- this.defaultChecked = this.checkedAttribute;
378
+ this.defaultChecked = false;
380
379
  }
381
380
  /**
382
381
  * @internal
@@ -387,11 +386,13 @@ function CheckableFormAssociated(BaseCtor) {
387
386
  this.dirtyChecked = false;
388
387
  }
389
388
  }
389
+ /**
390
+ * @internal
391
+ */
390
392
  checkedChanged(prev, _next) {
391
393
  if (!this.dirtyChecked) {
392
394
  this.dirtyChecked = true;
393
395
  }
394
- this.currentChecked = this.checked;
395
396
  this.updateForm();
396
397
  if (this.proxy instanceof HTMLInputElement) {
397
398
  this.proxy.checked = this.checked;
@@ -401,35 +402,58 @@ function CheckableFormAssociated(BaseCtor) {
401
402
  }
402
403
  this.validate();
403
404
  }
404
- currentCheckedChanged(_prev, _next) {
405
- this.checked = this.currentChecked;
405
+ /**
406
+ * @deprecated Use `defaultChecked` instead.
407
+ */
408
+ get checkedAttribute() {
409
+ return this.defaultChecked;
406
410
  }
411
+ set checkedAttribute(value) {
412
+ this.defaultChecked = value;
413
+ }
414
+ /**
415
+ * @deprecated Use `checked` instead.
416
+ */
417
+ get currentChecked() {
418
+ return this.checked;
419
+ }
420
+ set currentChecked(value) {
421
+ this.checked = value;
422
+ }
423
+ /**
424
+ * @internal
425
+ */
407
426
  updateForm() {
408
427
  const value = this.checked ? this.value : null;
409
428
  this.setFormValue(value, value);
410
429
  }
430
+ /**
431
+ * @internal
432
+ */
411
433
  connectedCallback() {
412
434
  super.connectedCallback();
413
435
  this.updateForm();
414
436
  }
437
+ /**
438
+ * @internal
439
+ */
415
440
  formResetCallback() {
416
441
  super.formResetCallback();
417
- this.checked = !!this.checkedAttribute;
442
+ this.checked = !!this.defaultChecked;
418
443
  this.dirtyChecked = false;
419
444
  }
420
445
  }
421
- vividElement.attr({ attribute: "checked", mode: "boolean" })(
422
- D.prototype,
423
- "checkedAttribute"
424
- );
425
- vividElement.attr({ attribute: "current-checked", converter: vividElement.booleanConverter })(
426
- D.prototype,
427
- "currentChecked"
428
- );
429
- vividElement.observable(D.prototype, "defaultChecked");
430
- vividElement.observable(D.prototype, "checked");
431
- return D;
432
- }
446
+ __decorateClass([
447
+ vividElement.attr({
448
+ attribute: "checked",
449
+ mode: "boolean"
450
+ })
451
+ ], CheckableFormAssociatedElement.prototype, "defaultChecked");
452
+ __decorateClass([
453
+ vividElement.attr({ attribute: "current-checked", converter: currentCheckedConverter })
454
+ ], CheckableFormAssociatedElement.prototype, "checked");
455
+ return CheckableFormAssociatedElement;
456
+ };
433
457
 
434
458
  exports.CheckableFormAssociated = CheckableFormAssociated;
435
459
  exports.FormAssociated = FormAssociated;