@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
@@ -1,24 +1,28 @@
1
- import { a as attr, b as booleanConverter, o as observable, e as emptyArray, D as DOM } from './vivid-element.js';
1
+ import { a as attr, e as emptyArray, D as DOM } from './vivid-element.js';
2
2
  import { k as keyEnter } from './key-codes.js';
3
3
 
4
+ var __defProp = Object.defineProperty;
5
+ var __decorateClass = (decorators, target, key, kind) => {
6
+ var result = void 0 ;
7
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
8
+ if (decorator = decorators[i])
9
+ result = (decorator(target, key, result) ) || result;
10
+ if (result) __defProp(target, key, result);
11
+ return result;
12
+ };
4
13
  const proxySlotName = "form-associated-proxy";
5
14
  const ElementInternalsKey = "ElementInternals";
6
15
  const supportsElementInternals = ElementInternalsKey in window && "setFormValue" in window[ElementInternalsKey].prototype;
7
16
  const InternalsMap = /* @__PURE__ */ new WeakMap();
8
- function FormAssociated(BaseCtor) {
9
- const C = class extends BaseCtor {
17
+ const FormAssociated = (Base) => {
18
+ class FormAssociatedElement extends Base {
10
19
  constructor(...args) {
11
20
  super(...args);
12
21
  /**
13
22
  * Track whether the value has been changed from the initial value
23
+ * @internal
14
24
  */
15
25
  this.dirtyValue = false;
16
- /**
17
- * Sets the element's disabled state. A disabled element will not be included during form submission.
18
- *
19
- * @remarks
20
- * HTML Attribute: disabled
21
- */
22
26
  this.disabled = false;
23
27
  /**
24
28
  * These are events that are still fired by the proxy
@@ -26,8 +30,12 @@ function FormAssociated(BaseCtor) {
26
30
  *
27
31
  * The proxy implementation should be transparent to
28
32
  * the app author, so block these events from emitting.
33
+ * @internal
29
34
  */
30
35
  this.proxyEventsToBlock = ["change", "click"];
36
+ /**
37
+ * @internal
38
+ */
31
39
  this.proxyInitialized = false;
32
40
  this.required = false;
33
41
  this.initialValue = this.initialValue || "";
@@ -46,8 +54,6 @@ function FormAssociated(BaseCtor) {
46
54
  }
47
55
  /**
48
56
  * Returns the validity state of the element
49
- *
50
- * @alpha
51
57
  */
52
58
  get validity() {
53
59
  return this.elementInternals ? this.elementInternals.validity : this.proxy.validity;
@@ -55,8 +61,6 @@ function FormAssociated(BaseCtor) {
55
61
  /**
56
62
  * Retrieve a reference to the associated form.
57
63
  * Returns null if not associated to any form.
58
- *
59
- * @alpha
60
64
  */
61
65
  get form() {
62
66
  return this.elementInternals ? this.elementInternals.form : this.proxy.form;
@@ -64,8 +68,6 @@ function FormAssociated(BaseCtor) {
64
68
  /**
65
69
  * Retrieve the localized validation message,
66
70
  * or custom validation message if set.
67
- *
68
- * @alpha
69
71
  */
70
72
  get validationMessage() {
71
73
  return this.elementInternals ? this.elementInternals.validationMessage : this.proxy.validationMessage;
@@ -94,32 +96,27 @@ function FormAssociated(BaseCtor) {
94
96
  }
95
97
  }
96
98
  /**
97
- * Invoked when the `value` property changes
98
- *
99
- * @remarks
100
- * If elements extending `FormAssociated` implement a `valueChanged` method
101
- * They must be sure to invoke `super.valueChanged(previous, next)` to ensure
102
- * proper functioning of `FormAssociated`
99
+ * @internal
103
100
  */
104
101
  valueChanged(_previous, _next) {
105
102
  this.dirtyValue = true;
106
103
  if (this.proxy instanceof HTMLElement) {
107
104
  this.proxy.value = this.value;
108
105
  }
109
- this.currentValue = this.value;
110
106
  this.setFormValue(this.value);
111
107
  this.validate();
112
108
  }
113
- currentValueChanged() {
114
- this.value = this.currentValue;
109
+ /**
110
+ * @deprecated Use `value` instead.
111
+ */
112
+ get currentValue() {
113
+ return this.value;
114
+ }
115
+ set currentValue(value) {
116
+ this.value = value;
115
117
  }
116
118
  /**
117
- * Invoked when the `initialValue` property changes
118
- *
119
- * @remarks
120
- * If elements extending `FormAssociated` implement a `initialValueChanged` method
121
- * They must be sure to invoke `super.initialValueChanged(previous, next)` to ensure
122
- * proper functioning of `FormAssociated`
119
+ * @internal
123
120
  */
124
121
  initialValueChanged(_previous, _next) {
125
122
  if (!this.dirtyValue) {
@@ -128,12 +125,7 @@ function FormAssociated(BaseCtor) {
128
125
  }
129
126
  }
130
127
  /**
131
- * Invoked when the `disabled` property changes
132
- *
133
- * @remarks
134
- * If elements extending `FormAssociated` implement a `disabledChanged` method
135
- * They must be sure to invoke `super.disabledChanged(previous, next)` to ensure
136
- * proper functioning of `FormAssociated`
128
+ * @internal
137
129
  */
138
130
  disabledChanged(_previous, _next) {
139
131
  if (this.proxy instanceof HTMLElement) {
@@ -142,12 +134,7 @@ function FormAssociated(BaseCtor) {
142
134
  DOM.queueUpdate(() => this.classList.toggle("disabled", this.disabled));
143
135
  }
144
136
  /**
145
- * Invoked when the `name` property changes
146
- *
147
- * @remarks
148
- * If elements extending `FormAssociated` implement a `nameChanged` method
149
- * They must be sure to invoke `super.nameChanged(previous, next)` to ensure
150
- * proper functioning of `FormAssociated`
137
+ * @internal
151
138
  */
152
139
  nameChanged(_previous, _next) {
153
140
  if (this.proxy instanceof HTMLElement) {
@@ -155,12 +142,7 @@ function FormAssociated(BaseCtor) {
155
142
  }
156
143
  }
157
144
  /**
158
- * Invoked when the `required` property changes
159
- *
160
- * @remarks
161
- * If elements extending `FormAssociated` implement a `requiredChanged` method
162
- * They must be sure to invoke `super.requiredChanged(previous, next)` to ensure
163
- * proper functioning of `FormAssociated`
145
+ * @internal
164
146
  */
165
147
  requiredChanged(_previous, _next) {
166
148
  if (this.proxy instanceof HTMLElement) {
@@ -172,6 +154,7 @@ function FormAssociated(BaseCtor) {
172
154
  /**
173
155
  * The element internals object. Will only exist
174
156
  * in browsers supporting the attachInternals API
157
+ * @internal
175
158
  */
176
159
  get elementInternals() {
177
160
  if (!supportsElementInternals) {
@@ -234,6 +217,7 @@ function FormAssociated(BaseCtor) {
234
217
  * @param flags - Validity flags
235
218
  * @param message - Optional message to supply
236
219
  * @param anchor - Optional element used by UA to display an interactive validation UI
220
+ * @internal
237
221
  */
238
222
  setValidity(flags, message, anchor) {
239
223
  if (this.elementInternals) {
@@ -246,16 +230,21 @@ function FormAssociated(BaseCtor) {
246
230
  * Invoked when a connected component's form or fieldset has its disabled
247
231
  * state changed.
248
232
  * @param disabled - the disabled value of the form / fieldset
233
+ * @internal
249
234
  */
250
235
  formDisabledCallback(disabled) {
251
236
  this.disabled = disabled;
252
237
  }
238
+ /**
239
+ * @internal
240
+ */
253
241
  formResetCallback() {
254
242
  this.value = this.initialValue;
255
243
  this.dirtyValue = false;
256
244
  }
257
245
  /**
258
246
  * Attach the proxy element to the DOM
247
+ * @internal
259
248
  */
260
249
  attachProxy() {
261
250
  if (!this.proxyInitialized) {
@@ -281,12 +270,19 @@ function FormAssociated(BaseCtor) {
281
270
  }
282
271
  /**
283
272
  * Detach the proxy element from the DOM
273
+ * @internal
284
274
  */
285
275
  detachProxy() {
286
276
  this.removeChild(this.proxy);
287
277
  this.shadowRoot.removeChild(this.proxySlot);
288
278
  }
289
- /** {@inheritDoc (FormAssociated:interface).validate} */
279
+ /**
280
+ * Sets the validity of the custom element. By default this uses the proxy element to determine
281
+ * validity, but this can be extended or replaced in implementation.
282
+ *
283
+ * @param anchor - The anchor element to provide to ElementInternals.setValidity for surfacing the browser's constraint validation UI
284
+ * @internal
285
+ */
290
286
  validate(anchor) {
291
287
  if (this.proxy instanceof HTMLElement && this.elementInternals) {
292
288
  const isValid = this.proxy.validity.valid;
@@ -307,12 +303,16 @@ function FormAssociated(BaseCtor) {
307
303
  * Associates the provided value (and optional state) with the parent form.
308
304
  * @param value - The value to set
309
305
  * @param state - The state object provided to during session restores and when autofilling.
306
+ * @internal
310
307
  */
311
308
  setFormValue(value, state) {
312
309
  if (this.elementInternals) {
313
310
  this.elementInternals.setFormValue(value, state || value);
314
311
  }
315
312
  }
313
+ /**
314
+ * @internal
315
+ */
316
316
  _keypressHandler(e) {
317
317
  switch (e.key) {
318
318
  case keyEnter:
@@ -328,53 +328,52 @@ function FormAssociated(BaseCtor) {
328
328
  /**
329
329
  * Used to stop propagation of proxy element events
330
330
  * @param e - Event object
331
+ * @internal
331
332
  */
332
333
  stopPropagation(e) {
333
334
  e.stopPropagation();
334
335
  }
335
- };
336
- attr({ mode: "boolean" })(C.prototype, "disabled");
337
- attr({ mode: "fromView", attribute: "value" })(C.prototype, "initialValue");
338
- attr({ attribute: "current-value" })(C.prototype, "currentValue");
339
- attr(C.prototype, "name");
340
- attr({ mode: "boolean" })(C.prototype, "required");
341
- observable(C.prototype, "value");
342
- return C;
343
- }
344
- function CheckableFormAssociated(BaseCtor) {
345
- class C extends FormAssociated(BaseCtor) {
346
336
  }
347
- class D extends C {
348
- constructor(...args) {
349
- super(args);
337
+ __decorateClass([
338
+ attr({ attribute: "current-value" })
339
+ ], FormAssociatedElement.prototype, "value");
340
+ __decorateClass([
341
+ attr({ mode: "fromView", attribute: "value" })
342
+ ], FormAssociatedElement.prototype, "initialValue");
343
+ __decorateClass([
344
+ attr({ mode: "boolean" })
345
+ ], FormAssociatedElement.prototype, "disabled");
346
+ __decorateClass([
347
+ attr
348
+ ], FormAssociatedElement.prototype, "name");
349
+ __decorateClass([
350
+ attr({ mode: "boolean" })
351
+ ], FormAssociatedElement.prototype, "required");
352
+ return FormAssociatedElement;
353
+ };
354
+ const currentCheckedConverter = {
355
+ fromView(value) {
356
+ if (typeof value === "string") {
357
+ return value.toLowerCase() === "true";
358
+ }
359
+ return !!value;
360
+ },
361
+ toView(value) {
362
+ return value ? "true" : "false";
363
+ }
364
+ };
365
+ const CheckableFormAssociated = (Base) => {
366
+ class CheckableFormAssociatedElement extends FormAssociated(Base) {
367
+ constructor() {
368
+ super(...arguments);
350
369
  /**
351
370
  * Tracks whether the "checked" property has been changed.
352
371
  * This is necessary to provide consistent behavior with
353
372
  * normal input checkboxes
373
+ * @internal
354
374
  */
355
375
  this.dirtyChecked = false;
356
- /**
357
- * Provides the default checkedness of the input element
358
- * Passed down to proxy
359
- *
360
- * @public
361
- * @remarks
362
- * HTML Attribute: checked
363
- */
364
- this.checkedAttribute = false;
365
- /**
366
- * The checked state of the control.
367
- *
368
- * @public
369
- */
370
- this.checked = false;
371
- this.dirtyChecked = false;
372
- }
373
- /**
374
- * @internal
375
- */
376
- checkedAttributeChanged() {
377
- this.defaultChecked = this.checkedAttribute;
376
+ this.defaultChecked = false;
378
377
  }
379
378
  /**
380
379
  * @internal
@@ -385,11 +384,13 @@ function CheckableFormAssociated(BaseCtor) {
385
384
  this.dirtyChecked = false;
386
385
  }
387
386
  }
387
+ /**
388
+ * @internal
389
+ */
388
390
  checkedChanged(prev, _next) {
389
391
  if (!this.dirtyChecked) {
390
392
  this.dirtyChecked = true;
391
393
  }
392
- this.currentChecked = this.checked;
393
394
  this.updateForm();
394
395
  if (this.proxy instanceof HTMLInputElement) {
395
396
  this.proxy.checked = this.checked;
@@ -399,34 +400,57 @@ function CheckableFormAssociated(BaseCtor) {
399
400
  }
400
401
  this.validate();
401
402
  }
402
- currentCheckedChanged(_prev, _next) {
403
- this.checked = this.currentChecked;
403
+ /**
404
+ * @deprecated Use `defaultChecked` instead.
405
+ */
406
+ get checkedAttribute() {
407
+ return this.defaultChecked;
404
408
  }
409
+ set checkedAttribute(value) {
410
+ this.defaultChecked = value;
411
+ }
412
+ /**
413
+ * @deprecated Use `checked` instead.
414
+ */
415
+ get currentChecked() {
416
+ return this.checked;
417
+ }
418
+ set currentChecked(value) {
419
+ this.checked = value;
420
+ }
421
+ /**
422
+ * @internal
423
+ */
405
424
  updateForm() {
406
425
  const value = this.checked ? this.value : null;
407
426
  this.setFormValue(value, value);
408
427
  }
428
+ /**
429
+ * @internal
430
+ */
409
431
  connectedCallback() {
410
432
  super.connectedCallback();
411
433
  this.updateForm();
412
434
  }
435
+ /**
436
+ * @internal
437
+ */
413
438
  formResetCallback() {
414
439
  super.formResetCallback();
415
- this.checked = !!this.checkedAttribute;
440
+ this.checked = !!this.defaultChecked;
416
441
  this.dirtyChecked = false;
417
442
  }
418
443
  }
419
- attr({ attribute: "checked", mode: "boolean" })(
420
- D.prototype,
421
- "checkedAttribute"
422
- );
423
- attr({ attribute: "current-checked", converter: booleanConverter })(
424
- D.prototype,
425
- "currentChecked"
426
- );
427
- observable(D.prototype, "defaultChecked");
428
- observable(D.prototype, "checked");
429
- return D;
430
- }
444
+ __decorateClass([
445
+ attr({
446
+ attribute: "checked",
447
+ mode: "boolean"
448
+ })
449
+ ], CheckableFormAssociatedElement.prototype, "defaultChecked");
450
+ __decorateClass([
451
+ attr({ attribute: "current-checked", converter: currentCheckedConverter })
452
+ ], CheckableFormAssociatedElement.prototype, "checked");
453
+ return CheckableFormAssociatedElement;
454
+ };
431
455
 
432
456
  export { CheckableFormAssociated as C, FormAssociated as F };
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ const vividElement = require('./vivid-element.cjs');
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __decorateClass = (decorators, target, key, kind) => {
7
+ var result = void 0 ;
8
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
+ if (decorator = decorators[i])
10
+ result = (decorator(target, key, result) ) || result;
11
+ if (result) __defProp(target, key, result);
12
+ return result;
13
+ };
14
+ const FormElement = (Base) => {
15
+ class FormElementElement extends Base {
16
+ constructor(...args) {
17
+ super(...args);
18
+ this.errorValidationMessage = "";
19
+ /**
20
+ * @internal
21
+ */
22
+ this.forceErrorDisplay = false;
23
+ /**
24
+ * @internal
25
+ */
26
+ this.hasBeenTouched = false;
27
+ this.#handleInvalidEvent = () => {
28
+ this.forceErrorDisplay = true;
29
+ this.validate();
30
+ };
31
+ this.addEventListener("blur", () => {
32
+ this.hasBeenTouched = true;
33
+ this.forceErrorDisplay = false;
34
+ this.validate();
35
+ });
36
+ this.addEventListener("focus", () => {
37
+ this.hasBeenTouched = false;
38
+ });
39
+ this.addEventListener("invalid", () => {
40
+ this.proxy.dispatchEvent(new Event("invalid"));
41
+ });
42
+ }
43
+ /**
44
+ * @internal
45
+ */
46
+ connectedCallback() {
47
+ super.connectedCallback();
48
+ this.proxy.addEventListener("invalid", this.#handleInvalidEvent);
49
+ }
50
+ #handleInvalidEvent;
51
+ /**
52
+ * @internal
53
+ */
54
+ disconnectedCallback() {
55
+ super.disconnectedCallback();
56
+ this.proxy.removeEventListener("invalid", this.#handleInvalidEvent);
57
+ }
58
+ /**
59
+ * @internal
60
+ */
61
+ formResetCallback() {
62
+ this.forceErrorDisplay = false;
63
+ super.formResetCallback();
64
+ this.validate();
65
+ }
66
+ /**
67
+ * @internal
68
+ */
69
+ validate() {
70
+ super.validate();
71
+ const shouldShowValidationError = this.forceErrorDisplay || this.hasBeenTouched && this.dirtyValue;
72
+ this.errorValidationMessage = shouldShowValidationError ? this.validationMessage : "";
73
+ }
74
+ }
75
+ __decorateClass([
76
+ vividElement.attr
77
+ ], FormElementElement.prototype, "label");
78
+ __decorateClass([
79
+ vividElement.observable
80
+ ], FormElementElement.prototype, "errorValidationMessage");
81
+ return FormElementElement;
82
+ };
83
+
84
+ exports.FormElement = FormElement;
@@ -0,0 +1,82 @@
1
+ import { a as attr, o as observable } from './vivid-element.js';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __decorateClass = (decorators, target, key, kind) => {
5
+ var result = void 0 ;
6
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
7
+ if (decorator = decorators[i])
8
+ result = (decorator(target, key, result) ) || result;
9
+ if (result) __defProp(target, key, result);
10
+ return result;
11
+ };
12
+ const FormElement = (Base) => {
13
+ class FormElementElement extends Base {
14
+ constructor(...args) {
15
+ super(...args);
16
+ this.errorValidationMessage = "";
17
+ /**
18
+ * @internal
19
+ */
20
+ this.forceErrorDisplay = false;
21
+ /**
22
+ * @internal
23
+ */
24
+ this.hasBeenTouched = false;
25
+ this.#handleInvalidEvent = () => {
26
+ this.forceErrorDisplay = true;
27
+ this.validate();
28
+ };
29
+ this.addEventListener("blur", () => {
30
+ this.hasBeenTouched = true;
31
+ this.forceErrorDisplay = false;
32
+ this.validate();
33
+ });
34
+ this.addEventListener("focus", () => {
35
+ this.hasBeenTouched = false;
36
+ });
37
+ this.addEventListener("invalid", () => {
38
+ this.proxy.dispatchEvent(new Event("invalid"));
39
+ });
40
+ }
41
+ /**
42
+ * @internal
43
+ */
44
+ connectedCallback() {
45
+ super.connectedCallback();
46
+ this.proxy.addEventListener("invalid", this.#handleInvalidEvent);
47
+ }
48
+ #handleInvalidEvent;
49
+ /**
50
+ * @internal
51
+ */
52
+ disconnectedCallback() {
53
+ super.disconnectedCallback();
54
+ this.proxy.removeEventListener("invalid", this.#handleInvalidEvent);
55
+ }
56
+ /**
57
+ * @internal
58
+ */
59
+ formResetCallback() {
60
+ this.forceErrorDisplay = false;
61
+ super.formResetCallback();
62
+ this.validate();
63
+ }
64
+ /**
65
+ * @internal
66
+ */
67
+ validate() {
68
+ super.validate();
69
+ const shouldShowValidationError = this.forceErrorDisplay || this.hasBeenTouched && this.dirtyValue;
70
+ this.errorValidationMessage = shouldShowValidationError ? this.validationMessage : "";
71
+ }
72
+ }
73
+ __decorateClass([
74
+ attr
75
+ ], FormElementElement.prototype, "label");
76
+ __decorateClass([
77
+ observable
78
+ ], FormElementElement.prototype, "errorValidationMessage");
79
+ return FormElementElement;
80
+ };
81
+
82
+ export { FormElement as F };