@vonage/vivid 5.0.0 → 5.2.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 (673) hide show
  1. package/{shared/definition2.cjs → accordion/definition.cjs} +20 -20
  2. package/{shared/definition2.js → accordion/definition.js} +5 -7
  3. package/accordion/index.cjs +5 -5
  4. package/accordion/index.js +129 -3
  5. package/accordion-item/definition.cjs +145 -0
  6. package/accordion-item/definition.js +139 -0
  7. package/accordion-item/index.cjs +1 -5
  8. package/accordion-item/index.js +2 -3
  9. package/{shared/definition3.cjs → action-group/definition.cjs} +12 -9
  10. package/{shared/definition3.js → action-group/definition.js} +5 -4
  11. package/action-group/index.cjs +6 -5
  12. package/action-group/index.js +49 -3
  13. package/{shared/definition4.cjs → alert/definition.cjs} +33 -31
  14. package/{shared/definition4.js → alert/definition.js} +11 -11
  15. package/alert/index.cjs +30 -5
  16. package/alert/index.js +158 -3
  17. package/{shared/definition5.cjs → audio-player/definition.cjs} +95 -61
  18. package/{shared/definition5.js → audio-player/definition.js} +48 -16
  19. package/audio-player/index.cjs +68 -4
  20. package/audio-player/index.js +333 -2
  21. package/{shared/definition6.cjs → avatar/definition.cjs} +28 -26
  22. package/{shared/definition6.js → avatar/definition.js} +7 -7
  23. package/avatar/index.cjs +18 -5
  24. package/avatar/index.js +93 -3
  25. package/{shared/definition7.cjs → badge/definition.cjs} +18 -16
  26. package/{shared/definition7.js → badge/definition.js} +6 -6
  27. package/badge/index.cjs +4 -5
  28. package/badge/index.js +66 -3
  29. package/{shared/definition8.cjs → banner/definition.cjs} +26 -25
  30. package/{shared/definition8.js → banner/definition.js} +10 -11
  31. package/banner/index.cjs +29 -4
  32. package/banner/index.js +128 -2
  33. package/{shared/definition10.cjs → breadcrumb/definition.cjs} +11 -9
  34. package/{shared/definition10.js → breadcrumb/definition.js} +5 -5
  35. package/breadcrumb/index.cjs +12 -5
  36. package/breadcrumb/index.js +69 -3
  37. package/{shared/definition9.cjs → breadcrumb-item/definition.cjs} +18 -15
  38. package/{shared/definition9.js → breadcrumb-item/definition.js} +7 -7
  39. package/breadcrumb-item/index.cjs +5 -5
  40. package/breadcrumb-item/index.js +33 -3
  41. package/bundled/_has.cjs +1 -0
  42. package/bundled/_has.js +34 -0
  43. package/bundled/affix.cjs +13 -0
  44. package/bundled/affix.js +63 -0
  45. package/bundled/anchored.cjs +4 -0
  46. package/bundled/anchored.js +67 -0
  47. package/bundled/aria.cjs +1 -0
  48. package/bundled/aria.js +7 -0
  49. package/bundled/attribute-binding-behaviour.cjs +1 -0
  50. package/bundled/attribute-binding-behaviour.js +27 -0
  51. package/bundled/base-progress.cjs +1 -0
  52. package/bundled/base-progress.js +57 -0
  53. package/bundled/breadcrumb-item.cjs +1 -0
  54. package/bundled/breadcrumb-item.js +21 -0
  55. package/bundled/button.cjs +1 -0
  56. package/bundled/button.js +106 -0
  57. package/bundled/calendar-event.cjs +1 -0
  58. package/bundled/calendar-event.js +34 -0
  59. package/bundled/calendar-picker.template.cjs +148 -0
  60. package/bundled/calendar-picker.template.js +3371 -0
  61. package/bundled/char-count.cjs +13 -0
  62. package/bundled/char-count.js +54 -0
  63. package/bundled/children.cjs +1 -0
  64. package/bundled/children.js +38 -0
  65. package/bundled/class-names.cjs +1 -0
  66. package/bundled/class-names.js +9 -0
  67. package/bundled/definition.cjs +39 -0
  68. package/bundled/definition.js +122 -0
  69. package/bundled/definition10.cjs +19 -0
  70. package/bundled/definition10.js +73 -0
  71. package/bundled/definition11.cjs +10 -0
  72. package/bundled/definition11.js +44 -0
  73. package/bundled/definition12.cjs +1 -0
  74. package/bundled/definition12.js +20 -0
  75. package/bundled/definition13.cjs +73 -0
  76. package/bundled/definition13.js +359 -0
  77. package/bundled/definition14.cjs +5 -0
  78. package/bundled/definition14.js +29 -0
  79. package/bundled/definition15.cjs +30 -0
  80. package/bundled/definition15.js +80 -0
  81. package/bundled/definition16.cjs +19 -0
  82. package/bundled/definition16.js +103 -0
  83. package/bundled/definition17.cjs +13 -0
  84. package/bundled/definition17.js +137 -0
  85. package/bundled/definition18.cjs +12 -0
  86. package/bundled/definition18.js +94 -0
  87. package/bundled/definition19.cjs +70 -0
  88. package/bundled/definition19.js +674 -0
  89. package/bundled/definition2.cjs +20 -0
  90. package/bundled/definition2.js +180 -0
  91. package/bundled/definition20.cjs +20 -0
  92. package/bundled/definition20.js +106 -0
  93. package/bundled/definition21.cjs +5 -0
  94. package/bundled/definition21.js +19 -0
  95. package/bundled/definition22.cjs +24 -0
  96. package/bundled/definition22.js +151 -0
  97. package/bundled/definition3.cjs +29 -0
  98. package/bundled/definition3.js +195 -0
  99. package/bundled/definition4.cjs +6 -0
  100. package/bundled/definition4.js +42 -0
  101. package/bundled/definition5.cjs +1 -0
  102. package/bundled/definition5.js +345 -0
  103. package/bundled/definition6.cjs +31 -0
  104. package/bundled/definition6.js +268 -0
  105. package/bundled/definition7.cjs +30 -0
  106. package/bundled/definition7.js +288 -0
  107. package/bundled/definition8.cjs +19 -0
  108. package/bundled/definition8.js +145 -0
  109. package/bundled/definition9.cjs +14 -0
  110. package/bundled/definition9.js +1406 -0
  111. package/bundled/delegates-aria.cjs +1 -0
  112. package/bundled/delegates-aria.js +77 -0
  113. package/bundled/divider.cjs +1 -0
  114. package/bundled/divider.js +34 -0
  115. package/bundled/dom.cjs +1 -0
  116. package/bundled/dom.js +6 -0
  117. package/bundled/enums.cjs +1 -0
  118. package/bundled/enums.js +9 -0
  119. package/bundled/form-associated.cjs +1 -0
  120. package/bundled/form-associated.js +320 -0
  121. package/bundled/form-element.cjs +1 -0
  122. package/bundled/form-element.js +56 -0
  123. package/bundled/host-semantics.cjs +1 -0
  124. package/bundled/host-semantics.js +57 -0
  125. package/bundled/index.cjs +1 -0
  126. package/bundled/index.js +6 -0
  127. package/bundled/key-codes.cjs +1 -0
  128. package/bundled/key-codes.js +16 -0
  129. package/bundled/linkable.cjs +15 -0
  130. package/bundled/linkable.js +49 -0
  131. package/bundled/listbox.cjs +1 -0
  132. package/bundled/listbox.js +345 -0
  133. package/bundled/localized.cjs +1 -0
  134. package/bundled/localized.js +460 -0
  135. package/bundled/mixins.cjs +33 -0
  136. package/bundled/mixins.js +226 -0
  137. package/bundled/numbers.cjs +1 -0
  138. package/bundled/numbers.js +14 -0
  139. package/bundled/option.cjs +1 -0
  140. package/bundled/option.js +158 -0
  141. package/bundled/picker-field.template.cjs +67 -0
  142. package/bundled/picker-field.template.js +242 -0
  143. package/bundled/playbackRates.cjs +1 -0
  144. package/bundled/playbackRates.js +11 -0
  145. package/bundled/ref.cjs +1 -0
  146. package/bundled/ref.js +32 -0
  147. package/bundled/repeat.cjs +1 -0
  148. package/bundled/repeat.js +341 -0
  149. package/bundled/scrollIntoView.cjs +1 -0
  150. package/bundled/scrollIntoView.js +33 -0
  151. package/bundled/single-date-picker.cjs +1 -0
  152. package/bundled/single-date-picker.js +39 -0
  153. package/bundled/single-value-picker.cjs +1 -0
  154. package/bundled/single-value-picker.js +87 -0
  155. package/bundled/slider.template.cjs +41 -0
  156. package/bundled/slider.template.js +100 -0
  157. package/bundled/slotted.cjs +1 -0
  158. package/bundled/slotted.js +81 -0
  159. package/bundled/strings.cjs +1 -0
  160. package/bundled/strings.js +7 -0
  161. package/bundled/text-field.cjs +1 -0
  162. package/bundled/text-field.js +4 -0
  163. package/bundled/time-selection-picker.template.cjs +46 -0
  164. package/bundled/time-selection-picker.template.js +575 -0
  165. package/bundled/vivid-element.cjs +1 -0
  166. package/bundled/vivid-element.js +1761 -0
  167. package/bundled/when.cjs +1 -0
  168. package/bundled/when.js +11 -0
  169. package/bundled/with-contextual-help.cjs +1 -0
  170. package/bundled/with-contextual-help.js +32 -0
  171. package/bundled/with-error-text.cjs +1 -0
  172. package/bundled/with-error-text.js +39 -0
  173. package/bundled/with-success-text.cjs +1 -0
  174. package/bundled/with-success-text.js +16 -0
  175. package/button/definition.cjs +14 -0
  176. package/button/definition.js +4 -0
  177. package/button/index.cjs +1 -5
  178. package/button/index.js +2 -3
  179. package/{shared/definition13.cjs → calendar/definition.cjs} +27 -449
  180. package/{shared/definition13.js → calendar/definition.js} +7 -431
  181. package/calendar/index.cjs +53 -5
  182. package/calendar/index.js +431 -3
  183. package/{shared/definition12.cjs → calendar-event/definition.cjs} +12 -9
  184. package/{shared/definition12.js → calendar-event/definition.js} +6 -6
  185. package/calendar-event/index.cjs +9 -5
  186. package/calendar-event/index.js +43 -3
  187. package/card/definition.cjs +186 -0
  188. package/{shared/definition14.js → card/definition.js} +10 -11
  189. package/card/index.cjs +47 -5
  190. package/card/index.js +163 -3
  191. package/{shared/definition15.cjs → checkbox/definition.cjs} +30 -29
  192. package/{shared/definition15.js → checkbox/definition.js} +12 -13
  193. package/checkbox/index.cjs +1 -5
  194. package/checkbox/index.js +2 -3
  195. package/{shared/definition16.cjs → combobox/definition.cjs} +61 -56
  196. package/{shared/definition16.js → combobox/definition.js} +30 -27
  197. package/combobox/index.cjs +69 -5
  198. package/combobox/index.js +519 -3
  199. package/contextual-help/definition.cjs +62 -0
  200. package/contextual-help/definition.js +57 -0
  201. package/contextual-help/index.cjs +1 -0
  202. package/contextual-help/index.js +2 -0
  203. package/custom-elements.json +2504 -335
  204. package/{shared/definition17.cjs → data-grid/definition.cjs} +111 -121
  205. package/{shared/definition17.js → data-grid/definition.js} +11 -23
  206. package/data-grid/index.cjs +81 -5
  207. package/data-grid/index.js +1011 -3
  208. package/{shared/definition18.cjs → date-picker/definition.cjs} +20 -17
  209. package/{shared/definition18.js → date-picker/definition.js} +12 -11
  210. package/date-picker/index.cjs +1 -5
  211. package/date-picker/index.js +115 -3
  212. package/{shared/definition19.cjs → date-range-picker/definition.cjs} +26 -23
  213. package/{shared/definition19.js → date-range-picker/definition.js} +10 -9
  214. package/date-range-picker/index.cjs +1 -5
  215. package/date-range-picker/index.js +335 -3
  216. package/{shared/definition20.cjs → date-time-picker/definition.cjs} +27 -24
  217. package/{shared/definition20.js → date-time-picker/definition.js} +13 -12
  218. package/date-time-picker/index.cjs +8 -5
  219. package/date-time-picker/index.js +216 -3
  220. package/{shared/definition21.cjs → dial-pad/definition.cjs} +89 -40
  221. package/{shared/definition21.js → dial-pad/definition.js} +60 -13
  222. package/dial-pad/index.cjs +57 -5
  223. package/dial-pad/index.js +245 -3
  224. package/{shared/definition22.cjs → dialog/definition.cjs} +48 -47
  225. package/{shared/definition22.js → dialog/definition.js} +10 -11
  226. package/dialog/index.cjs +44 -5
  227. package/dialog/index.js +257 -3
  228. package/{shared/definition23.cjs → divider/definition.cjs} +10 -6
  229. package/{shared/definition23.js → divider/definition.js} +6 -5
  230. package/divider/index.cjs +1 -5
  231. package/divider/index.js +2 -3
  232. package/elevation/definition.cjs +11 -0
  233. package/elevation/definition.js +2 -0
  234. package/elevation/index.cjs +1 -5
  235. package/elevation/index.js +2 -3
  236. package/empty-state/definition.cjs +81 -0
  237. package/empty-state/definition.js +75 -0
  238. package/empty-state/index.cjs +14 -5
  239. package/empty-state/index.js +64 -3
  240. package/fab/definition.cjs +105 -0
  241. package/fab/definition.js +99 -0
  242. package/fab/index.cjs +20 -5
  243. package/fab/index.js +86 -3
  244. package/file-picker/definition.cjs +519 -0
  245. package/file-picker/definition.js +513 -0
  246. package/file-picker/index.cjs +61 -5
  247. package/file-picker/index.js +391 -3
  248. package/{shared/definition27.cjs → header/definition.cjs} +14 -11
  249. package/{shared/definition27.js → header/definition.js} +6 -5
  250. package/header/index.cjs +19 -5
  251. package/header/index.js +57 -3
  252. package/{shared/definition28.cjs → icon/definition.cjs} +25 -149
  253. package/{shared/definition28.js → icon/definition.js} +6 -132
  254. package/icon/index.cjs +1 -5
  255. package/icon/index.js +2 -3
  256. package/index.cjs +268 -264
  257. package/index.js +72 -71
  258. package/{shared/definition29.cjs → layout/definition.cjs} +13 -10
  259. package/{shared/definition29.js → layout/definition.js} +4 -3
  260. package/layout/index.cjs +3 -5
  261. package/layout/index.js +52 -3
  262. package/lib/accordion-item/accordion-item.d.ts +0 -1
  263. package/lib/action-group/action-group.d.ts +0 -1
  264. package/lib/alert/alert.d.ts +0 -2
  265. package/lib/audio-player/audio-player.d.ts +4 -1
  266. package/lib/avatar/avatar.d.ts +0 -1
  267. package/lib/badge/badge.d.ts +0 -1
  268. package/lib/banner/banner.d.ts +0 -3
  269. package/lib/breadcrumb/breadcrumb.d.ts +0 -1
  270. package/lib/breadcrumb-item/breadcrumb-item.d.ts +0 -1
  271. package/lib/button/button.d.ts +1 -3
  272. package/lib/calendar-event/calendar-event.d.ts +0 -1
  273. package/lib/card/card.d.ts +0 -1
  274. package/lib/checkbox/checkbox.d.ts +0 -6
  275. package/lib/combobox/combobox.d.ts +483 -72
  276. package/lib/components.d.ts +1 -0
  277. package/lib/contextual-help/contextual-help.d.ts +5 -0
  278. package/lib/contextual-help/contextual-help.template.d.ts +3 -0
  279. package/lib/contextual-help/definition.d.ts +1 -0
  280. package/lib/data-grid/data-grid-cell.d.ts +0 -2
  281. package/lib/data-grid/data-grid-row.d.ts +0 -1
  282. package/lib/date-picker/date-picker.d.ts +892 -888
  283. package/lib/date-range-picker/date-range-picker.d.ts +590 -588
  284. package/lib/date-time-picker/date-time-picker.d.ts +893 -889
  285. package/lib/dial-pad/dial-pad.d.ts +0 -1
  286. package/lib/dial-pad/dial-pad.template.d.ts +1 -1
  287. package/lib/dial-pad/locale.d.ts +1 -0
  288. package/lib/dialog/dialog.d.ts +0 -2
  289. package/lib/divider/divider.d.ts +0 -1
  290. package/lib/fab/fab.d.ts +1 -1
  291. package/lib/file-picker/accept.d.ts +1 -0
  292. package/lib/file-picker/data-transfer.d.ts +1 -0
  293. package/lib/file-picker/file-picker.d.ts +490 -91
  294. package/lib/header/header.d.ts +0 -1
  295. package/lib/menu/menu.d.ts +1 -2
  296. package/lib/menu-item/menu-item.d.ts +0 -2
  297. package/lib/nav/nav.d.ts +0 -1
  298. package/lib/nav-disclosure/nav-disclosure.d.ts +0 -2
  299. package/lib/nav-item/nav-item.d.ts +0 -2
  300. package/lib/note/note.d.ts +0 -1
  301. package/lib/number-field/number-field.d.ts +505 -96
  302. package/lib/option/option.d.ts +1 -2
  303. package/lib/pagination/pagination.d.ts +0 -1
  304. package/lib/progress/progress.d.ts +0 -1
  305. package/lib/progress-ring/progress-ring.d.ts +0 -1
  306. package/lib/radio/radio.d.ts +0 -3
  307. package/lib/radio-group/radio-group.d.ts +0 -1
  308. package/lib/range-slider/range-slider.d.ts +0 -3
  309. package/lib/rich-text-editor/menubar/menubar.d.ts +0 -1
  310. package/lib/rich-text-editor/rich-text-editor.d.ts +0 -1
  311. package/lib/searchable-select/option-tag.d.ts +0 -1
  312. package/lib/searchable-select/searchable-select.d.ts +505 -96
  313. package/lib/select/select.d.ts +470 -60
  314. package/lib/selectable-box/selectable-box.d.ts +0 -1
  315. package/lib/simple-color-picker/definition.d.ts +4 -0
  316. package/lib/simple-color-picker/locale.d.ts +4 -0
  317. package/lib/simple-color-picker/simple-color-picker.d.ts +1600 -0
  318. package/lib/simple-color-picker/simple-color-picker.template.d.ts +3 -0
  319. package/lib/slider/slider.d.ts +0 -3
  320. package/lib/split-button/split-button.d.ts +2 -3
  321. package/lib/switch/switch.d.ts +0 -2
  322. package/lib/tab/tab.d.ts +0 -3
  323. package/lib/tab-panel/tab-panel.d.ts +0 -1
  324. package/lib/tag/tag.d.ts +0 -3
  325. package/lib/tag-group/tag-group.d.ts +0 -1
  326. package/lib/tag-name-map.d.ts +2 -1
  327. package/lib/text-area/text-area.d.ts +494 -84
  328. package/lib/text-field/text-field.d.ts +505 -96
  329. package/lib/time-picker/time-picker.d.ts +571 -569
  330. package/lib/toggletip/toggletip.d.ts +0 -2
  331. package/lib/tooltip/tooltip.d.ts +0 -1
  332. package/lib/tree-item/tree-item.d.ts +0 -2
  333. package/lib/tree-view/tree-view.d.ts +0 -1
  334. package/lib/video-player/video-player.d.ts +0 -1
  335. package/locales/de-DE.cjs +13 -1
  336. package/locales/de-DE.js +13 -1
  337. package/locales/en-GB.cjs +13 -1
  338. package/locales/en-GB.js +13 -1
  339. package/locales/en-US.cjs +13 -1
  340. package/locales/en-US.js +13 -1
  341. package/locales/ja-JP.cjs +13 -1
  342. package/locales/ja-JP.js +13 -1
  343. package/locales/zh-CN.cjs +13 -1
  344. package/locales/zh-CN.js +13 -1
  345. package/{shared/definition31.cjs → menu/definition.cjs} +46 -42
  346. package/{shared/definition31.js → menu/definition.js} +16 -14
  347. package/menu/index.cjs +1 -5
  348. package/menu/index.js +2 -3
  349. package/menu-item/definition.cjs +14 -0
  350. package/menu-item/definition.js +3 -0
  351. package/menu-item/index.cjs +1 -5
  352. package/menu-item/index.js +2 -3
  353. package/{shared/definition34.cjs → nav/definition.cjs} +7 -4
  354. package/{shared/definition34.js → nav/definition.js} +4 -3
  355. package/nav/index.cjs +5 -5
  356. package/nav/index.js +13 -3
  357. package/nav-disclosure/definition.cjs +122 -0
  358. package/nav-disclosure/definition.js +116 -0
  359. package/nav-disclosure/index.cjs +16 -5
  360. package/nav-disclosure/index.js +96 -3
  361. package/{shared/definition33.cjs → nav-item/definition.cjs} +19 -16
  362. package/{shared/definition33.js → nav-item/definition.js} +9 -8
  363. package/nav-item/index.cjs +2 -5
  364. package/nav-item/index.js +59 -3
  365. package/{shared/definition35.cjs → note/definition.cjs} +15 -13
  366. package/{shared/definition35.js → note/definition.js} +6 -6
  367. package/note/index.cjs +9 -5
  368. package/note/index.js +44 -3
  369. package/{shared/definition36.cjs → number-field/definition.cjs} +66 -60
  370. package/{shared/definition36.js → number-field/definition.js} +31 -27
  371. package/number-field/index.cjs +60 -5
  372. package/number-field/index.js +370 -3
  373. package/option/definition.cjs +84 -0
  374. package/option/definition.js +78 -0
  375. package/option/index.cjs +1 -5
  376. package/option/index.js +2 -3
  377. package/package.json +15 -4
  378. package/{shared/definition38.cjs → pagination/definition.cjs} +31 -33
  379. package/{shared/definition38.js → pagination/definition.js} +7 -11
  380. package/pagination/index.cjs +43 -5
  381. package/pagination/index.js +194 -3
  382. package/popup/definition.cjs +13 -0
  383. package/popup/definition.js +4 -0
  384. package/popup/index.cjs +1 -5
  385. package/popup/index.js +2 -3
  386. package/{shared/definition40.cjs → progress/definition.cjs} +17 -15
  387. package/{shared/definition40.js → progress/definition.js} +6 -6
  388. package/progress/index.cjs +17 -5
  389. package/progress/index.js +69 -3
  390. package/{shared/definition39.cjs → progress-ring/definition.cjs} +17 -15
  391. package/{shared/definition39.js → progress-ring/definition.js} +7 -7
  392. package/progress-ring/index.cjs +1 -5
  393. package/progress-ring/index.js +2 -3
  394. package/{shared/definition42.cjs → radio/definition.cjs} +20 -19
  395. package/{shared/definition42.js → radio/definition.js} +8 -9
  396. package/radio/index.cjs +1 -5
  397. package/radio/index.js +2 -3
  398. package/{shared/definition41.cjs → radio-group/definition.cjs} +31 -30
  399. package/{shared/definition41.js → radio-group/definition.js} +8 -9
  400. package/radio-group/index.cjs +23 -5
  401. package/radio-group/index.js +255 -3
  402. package/{shared/definition43.cjs → range-slider/definition.cjs} +62 -61
  403. package/{shared/definition43.js → range-slider/definition.js} +13 -14
  404. package/range-slider/index.cjs +68 -5
  405. package/range-slider/index.js +456 -3
  406. package/rich-text-editor/definition.cjs +1206 -0
  407. package/rich-text-editor/definition.js +1200 -0
  408. package/rich-text-editor/index.cjs +133 -4
  409. package/rich-text-editor/index.js +10386 -2
  410. package/{shared/definition45.cjs → searchable-select/definition.cjs} +142 -130
  411. package/{shared/definition45.js → searchable-select/definition.js} +51 -41
  412. package/searchable-select/index.cjs +167 -5
  413. package/searchable-select/index.js +1034 -3
  414. package/{shared/definition46.cjs → select/definition.cjs} +92 -87
  415. package/{shared/definition46.js → select/definition.js} +32 -29
  416. package/select/index.cjs +1 -5
  417. package/select/index.js +2 -3
  418. package/{shared/definition47.cjs → selectable-box/definition.cjs} +26 -24
  419. package/{shared/definition47.js → selectable-box/definition.js} +9 -9
  420. package/selectable-box/index.cjs +28 -5
  421. package/selectable-box/index.js +136 -3
  422. package/shared/aria/aria-mixin.d.ts +0 -1
  423. package/shared/aria/delegates-aria.d.ts +0 -1
  424. package/shared/aria/host-semantics.d.ts +0 -1
  425. package/shared/color-picker/index.d.ts +2 -0
  426. package/shared/color-picker/types.d.ts +4 -0
  427. package/shared/color-picker/utils.d.ts +3 -0
  428. package/shared/feedback/feedback-message.d.ts +0 -1
  429. package/shared/feedback/mixins.d.ts +0 -2
  430. package/shared/foundation/button/button.d.ts +0 -2
  431. package/shared/foundation/form-associated/form-associated.d.ts +0 -2
  432. package/shared/foundation/vivid-element/vivid-element.d.ts +0 -1
  433. package/shared/localization/Locale.d.ts +2 -0
  434. package/shared/patterns/affix.d.ts +0 -2
  435. package/shared/patterns/anchored.d.ts +0 -2
  436. package/shared/patterns/char-count/char-count.d.ts +0 -1
  437. package/shared/patterns/form-elements/form-element.d.ts +0 -2
  438. package/shared/patterns/form-elements/index.d.ts +1 -0
  439. package/shared/patterns/form-elements/with-contextual-help.d.ts +1239 -0
  440. package/shared/patterns/form-elements/with-error-text.d.ts +0 -3
  441. package/shared/patterns/form-elements/with-success-text.d.ts +0 -1
  442. package/shared/patterns/linkable.d.ts +0 -1
  443. package/shared/patterns/localized.d.ts +0 -1
  444. package/shared/patterns/trapped-focus.d.ts +0 -1
  445. package/shared/picker-field/mixins/calendar-picker.d.ts +452 -451
  446. package/shared/picker-field/mixins/calendar-picker.template.d.ts +452 -451
  447. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +0 -1
  448. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +594 -592
  449. package/shared/picker-field/mixins/single-date-picker.d.ts +734 -731
  450. package/shared/picker-field/mixins/single-value-picker.d.ts +449 -448
  451. package/shared/picker-field/mixins/time-selection-picker.d.ts +571 -569
  452. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +571 -569
  453. package/shared/picker-field/picker-field.d.ts +483 -72
  454. package/{shared/definition48.cjs → side-drawer/definition.cjs} +16 -14
  455. package/{shared/definition48.js → side-drawer/definition.js} +5 -5
  456. package/side-drawer/index.cjs +17 -3
  457. package/side-drawer/index.js +100 -2
  458. package/simple-color-picker/definition.cjs +398 -0
  459. package/simple-color-picker/definition.js +392 -0
  460. package/simple-color-picker/index.cjs +31 -0
  461. package/simple-color-picker/index.js +250 -0
  462. package/{shared/definition49.cjs → slider/definition.cjs} +46 -53
  463. package/{shared/definition49.js → slider/definition.js} +11 -20
  464. package/slider/index.cjs +1 -5
  465. package/slider/index.js +2 -3
  466. package/split-button/definition.cjs +176 -0
  467. package/split-button/definition.js +170 -0
  468. package/split-button/index.cjs +26 -5
  469. package/split-button/index.js +149 -3
  470. package/styles/core/all.css +1 -1
  471. package/styles/core/theme.css +1 -1
  472. package/styles/core/typography.css +1 -1
  473. package/styles/tokens/theme-dark.css +4 -4
  474. package/styles/tokens/theme-light.css +4 -4
  475. package/styles/tokens/vivid-2-compat.css +1 -1
  476. package/{shared/definition51.cjs → switch/definition.cjs} +20 -19
  477. package/{shared/definition51.js → switch/definition.js} +8 -9
  478. package/switch/index.cjs +16 -5
  479. package/switch/index.js +102 -3
  480. package/tab/definition.cjs +127 -0
  481. package/tab/definition.js +121 -0
  482. package/tab/index.cjs +1 -5
  483. package/tab/index.js +2 -3
  484. package/{shared/definition52.cjs → tab-panel/definition.cjs} +7 -4
  485. package/{shared/definition52.js → tab-panel/definition.js} +4 -3
  486. package/tab-panel/index.cjs +1 -5
  487. package/tab-panel/index.js +2 -3
  488. package/{shared/definition54.cjs → tabs/definition.cjs} +46 -39
  489. package/{shared/definition54.js → tabs/definition.js} +18 -13
  490. package/tabs/index.cjs +31 -5
  491. package/tabs/index.js +321 -3
  492. package/tag/definition.cjs +156 -0
  493. package/tag/definition.js +150 -0
  494. package/tag/index.cjs +19 -5
  495. package/tag/index.js +118 -3
  496. package/{shared/definition55.cjs → tag-group/definition.cjs} +9 -6
  497. package/{shared/definition55.js → tag-group/definition.js} +5 -4
  498. package/tag-group/index.cjs +8 -5
  499. package/tag-group/index.js +26 -3
  500. package/{shared/definition57.cjs → text-area/definition.cjs} +62 -42
  501. package/{shared/definition57.js → text-area/definition.js} +38 -20
  502. package/text-area/index.cjs +41 -5
  503. package/text-area/index.js +293 -3
  504. package/{shared/definition58.cjs → text-field/definition.cjs} +70 -52
  505. package/{shared/definition58.js → text-field/definition.js} +40 -24
  506. package/text-field/index.cjs +1 -5
  507. package/text-field/index.js +2 -3
  508. package/time-picker/definition.cjs +43 -0
  509. package/{shared/definition59.js → time-picker/definition.js} +9 -8
  510. package/time-picker/index.cjs +1 -5
  511. package/time-picker/index.js +29 -3
  512. package/{shared/definition60.cjs → toggletip/definition.cjs} +20 -18
  513. package/{shared/definition60.js → toggletip/definition.js} +8 -8
  514. package/toggletip/index.cjs +1 -5
  515. package/toggletip/index.js +2 -3
  516. package/{shared/definition61.cjs → tooltip/definition.cjs} +16 -13
  517. package/{shared/definition61.js → tooltip/definition.js} +7 -6
  518. package/tooltip/index.cjs +1 -5
  519. package/tooltip/index.js +2 -3
  520. package/tree-item/definition.cjs +13 -0
  521. package/tree-item/definition.js +3 -0
  522. package/tree-item/index.cjs +1 -5
  523. package/tree-item/index.js +2 -3
  524. package/{shared/definition63.cjs → tree-view/definition.cjs} +41 -42
  525. package/{shared/definition63.js → tree-view/definition.js} +6 -9
  526. package/tree-view/index.cjs +13 -5
  527. package/tree-view/index.js +171 -3
  528. package/{shared → unbundled}/affix.cjs +10 -11
  529. package/{shared → unbundled}/affix.js +2 -3
  530. package/{shared → unbundled}/anchored.cjs +7 -8
  531. package/{shared → unbundled}/anchored.js +1 -2
  532. package/{shared → unbundled}/attribute-binding-behaviour.cjs +3 -3
  533. package/{shared → unbundled}/attribute-binding-behaviour.js +1 -1
  534. package/{shared → unbundled}/base-progress.cjs +6 -5
  535. package/{shared → unbundled}/base-progress.js +2 -1
  536. package/{shared → unbundled}/breadcrumb-item.cjs +3 -2
  537. package/{shared → unbundled}/breadcrumb-item.js +2 -1
  538. package/{shared → unbundled}/button.cjs +10 -9
  539. package/{shared → unbundled}/button.js +2 -1
  540. package/{shared → unbundled}/calendar-event.cjs +8 -7
  541. package/{shared → unbundled}/calendar-event.js +2 -1
  542. package/unbundled/calendar-picker.template.cjs +917 -0
  543. package/unbundled/calendar-picker.template.js +906 -0
  544. package/{shared → unbundled}/char-count.cjs +6 -7
  545. package/{shared → unbundled}/char-count.js +2 -3
  546. package/unbundled/definition.cjs +225 -0
  547. package/unbundled/definition.js +220 -0
  548. package/{shared/definition30.cjs → unbundled/definition2.cjs} +41 -42
  549. package/{shared/definition30.js → unbundled/definition2.js} +6 -7
  550. package/unbundled/definition3.cjs +207 -0
  551. package/{shared/definition62.js → unbundled/definition3.js} +5 -9
  552. package/unbundled/definition4.cjs +298 -0
  553. package/unbundled/definition4.js +293 -0
  554. package/{shared/definition65.cjs → unbundled/definition5.cjs} +7 -6
  555. package/{shared/definition65.js → unbundled/definition5.js} +3 -2
  556. package/{shared → unbundled}/delegates-aria.cjs +4 -3
  557. package/{shared → unbundled}/delegates-aria.js +2 -1
  558. package/{shared → unbundled}/divider.cjs +5 -4
  559. package/{shared → unbundled}/divider.js +3 -2
  560. package/{shared → unbundled}/form-associated.cjs +13 -13
  561. package/{shared → unbundled}/form-associated.js +2 -2
  562. package/{shared → unbundled}/form-element.cjs +3 -3
  563. package/{shared → unbundled}/form-element.js +1 -1
  564. package/{shared → unbundled}/host-semantics.cjs +2 -1
  565. package/{shared → unbundled}/host-semantics.js +2 -1
  566. package/unbundled/key-codes.cjs +10 -0
  567. package/unbundled/key-codes.js +7 -0
  568. package/{shared → unbundled}/linkable.cjs +11 -12
  569. package/{shared → unbundled}/linkable.js +1 -2
  570. package/{shared → unbundled}/listbox.cjs +21 -37
  571. package/{shared → unbundled}/listbox.js +3 -19
  572. package/{shared → unbundled}/localized.cjs +2 -2
  573. package/{shared → unbundled}/localized.js +1 -1
  574. package/{shared → unbundled}/mixins.cjs +27 -83
  575. package/{shared → unbundled}/mixins.js +6 -62
  576. package/{shared → unbundled}/option.cjs +29 -17
  577. package/{shared → unbundled}/option.js +14 -2
  578. package/{shared → unbundled}/picker-field.template.cjs +32 -24
  579. package/{shared → unbundled}/picker-field.template.js +18 -10
  580. package/{shared → unbundled}/slider.template.cjs +15 -19
  581. package/{shared → unbundled}/slider.template.js +3 -7
  582. package/unbundled/text-field.cjs +5 -0
  583. package/unbundled/text-field.js +3 -0
  584. package/{shared → unbundled}/time-selection-picker.template.cjs +28 -30
  585. package/{shared → unbundled}/time-selection-picker.template.js +4 -6
  586. package/unbundled/vivid-element.cjs +283 -0
  587. package/unbundled/vivid-element.js +274 -0
  588. package/unbundled/with-contextual-help.cjs +40 -0
  589. package/unbundled/with-contextual-help.js +38 -0
  590. package/{shared → unbundled}/with-error-text.cjs +2 -2
  591. package/{shared → unbundled}/with-error-text.js +1 -1
  592. package/{shared → unbundled}/with-success-text.cjs +2 -2
  593. package/{shared → unbundled}/with-success-text.js +1 -1
  594. package/video-player/definition.cjs +536 -0
  595. package/video-player/definition.js +530 -0
  596. package/video-player/index.cjs +536 -3
  597. package/video-player/index.js +35912 -2
  598. package/{shared/definition66.cjs → visually-hidden/definition.cjs} +6 -3
  599. package/{shared/definition66.js → visually-hidden/definition.js} +3 -2
  600. package/visually-hidden/index.cjs +1 -5
  601. package/visually-hidden/index.js +2 -3
  602. package/vivid.api.json +722 -799
  603. package/shared/_has.cjs +0 -58
  604. package/shared/_has.js +0 -54
  605. package/shared/aria.cjs +0 -11
  606. package/shared/aria.js +0 -9
  607. package/shared/calendar-picker.template.cjs +0 -6377
  608. package/shared/calendar-picker.template.js +0 -6366
  609. package/shared/children.cjs +0 -61
  610. package/shared/children.js +0 -59
  611. package/shared/class-names.cjs +0 -17
  612. package/shared/class-names.js +0 -15
  613. package/shared/definition.cjs +0 -145
  614. package/shared/definition.js +0 -141
  615. package/shared/definition11.cjs +0 -220
  616. package/shared/definition11.js +0 -215
  617. package/shared/definition14.cjs +0 -185
  618. package/shared/definition24.cjs +0 -80
  619. package/shared/definition24.js +0 -76
  620. package/shared/definition25.cjs +0 -90
  621. package/shared/definition25.js +0 -86
  622. package/shared/definition26.cjs +0 -2549
  623. package/shared/definition26.js +0 -2545
  624. package/shared/definition32.cjs +0 -120
  625. package/shared/definition32.js +0 -116
  626. package/shared/definition37.cjs +0 -71
  627. package/shared/definition37.js +0 -68
  628. package/shared/definition44.cjs +0 -14666
  629. package/shared/definition44.js +0 -14662
  630. package/shared/definition50.cjs +0 -148
  631. package/shared/definition50.js +0 -144
  632. package/shared/definition53.cjs +0 -124
  633. package/shared/definition53.js +0 -120
  634. package/shared/definition56.cjs +0 -154
  635. package/shared/definition56.js +0 -150
  636. package/shared/definition59.cjs +0 -39
  637. package/shared/definition62.cjs +0 -211
  638. package/shared/definition64.cjs +0 -69579
  639. package/shared/definition64.js +0 -69575
  640. package/shared/definition67.cjs +0 -2227
  641. package/shared/definition67.js +0 -2222
  642. package/shared/dom.cjs +0 -10
  643. package/shared/dom.js +0 -8
  644. package/shared/key-codes.cjs +0 -32
  645. package/shared/key-codes.js +0 -18
  646. package/shared/numbers.cjs +0 -38
  647. package/shared/numbers.js +0 -34
  648. package/shared/ref.cjs +0 -43
  649. package/shared/ref.js +0 -41
  650. package/shared/repeat.cjs +0 -767
  651. package/shared/repeat.js +0 -764
  652. package/shared/slotted.cjs +0 -123
  653. package/shared/slotted.js +0 -119
  654. package/shared/strings.cjs +0 -11
  655. package/shared/strings.js +0 -9
  656. package/shared/text-field.cjs +0 -5
  657. package/shared/text-field.js +0 -3
  658. package/shared/vivid-element.cjs +0 -2822
  659. package/shared/vivid-element.js +0 -2799
  660. package/shared/when.cjs +0 -31
  661. package/shared/when.js +0 -29
  662. /package/{shared → unbundled}/enums.cjs +0 -0
  663. /package/{shared → unbundled}/enums.js +0 -0
  664. /package/{shared → unbundled}/index.cjs +0 -0
  665. /package/{shared → unbundled}/index.js +0 -0
  666. /package/{shared → unbundled}/playbackRates.cjs +0 -0
  667. /package/{shared → unbundled}/playbackRates.js +0 -0
  668. /package/{shared → unbundled}/scrollIntoView.cjs +0 -0
  669. /package/{shared → unbundled}/scrollIntoView.js +0 -0
  670. /package/{shared → unbundled}/single-date-picker.cjs +0 -0
  671. /package/{shared → unbundled}/single-date-picker.js +0 -0
  672. /package/{shared → unbundled}/single-value-picker.cjs +0 -0
  673. /package/{shared → unbundled}/single-value-picker.js +0 -0
package/shared/repeat.js DELETED
@@ -1,764 +0,0 @@
1
- import { e as emptyArray, O as Observable, S as SubscriberSet, D as DOM, H as HTMLDirective, g as HTMLView } from './vivid-element.js';
2
-
3
- /** @internal */
4
- function newSplice(index, removed, addedCount) {
5
- return {
6
- index: index,
7
- removed: removed,
8
- addedCount: addedCount,
9
- };
10
- }
11
- const EDIT_LEAVE = 0;
12
- const EDIT_UPDATE = 1;
13
- const EDIT_ADD = 2;
14
- const EDIT_DELETE = 3;
15
- // Note: This function is *based* on the computation of the Levenshtein
16
- // "edit" distance. The one change is that "updates" are treated as two
17
- // edits - not one. With Array splices, an update is really a delete
18
- // followed by an add. By retaining this, we optimize for "keeping" the
19
- // maximum array items in the original array. For example:
20
- //
21
- // 'xxxx123' -> '123yyyy'
22
- //
23
- // With 1-edit updates, the shortest path would be just to update all seven
24
- // characters. With 2-edit updates, we delete 4, leave 3, and add 4. This
25
- // leaves the substring '123' intact.
26
- function calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd) {
27
- // "Deletion" columns
28
- const rowCount = oldEnd - oldStart + 1;
29
- const columnCount = currentEnd - currentStart + 1;
30
- const distances = new Array(rowCount);
31
- let north;
32
- let west;
33
- // "Addition" rows. Initialize null column.
34
- for (let i = 0; i < rowCount; ++i) {
35
- distances[i] = new Array(columnCount);
36
- distances[i][0] = i;
37
- }
38
- // Initialize null row
39
- for (let j = 0; j < columnCount; ++j) {
40
- distances[0][j] = j;
41
- }
42
- for (let i = 1; i < rowCount; ++i) {
43
- for (let j = 1; j < columnCount; ++j) {
44
- if (current[currentStart + j - 1] === old[oldStart + i - 1]) {
45
- distances[i][j] = distances[i - 1][j - 1];
46
- }
47
- else {
48
- north = distances[i - 1][j] + 1;
49
- west = distances[i][j - 1] + 1;
50
- distances[i][j] = north < west ? north : west;
51
- }
52
- }
53
- }
54
- return distances;
55
- }
56
- // This starts at the final weight, and walks "backward" by finding
57
- // the minimum previous weight recursively until the origin of the weight
58
- // matrix.
59
- function spliceOperationsFromEditDistances(distances) {
60
- let i = distances.length - 1;
61
- let j = distances[0].length - 1;
62
- let current = distances[i][j];
63
- const edits = [];
64
- while (i > 0 || j > 0) {
65
- if (i === 0) {
66
- edits.push(EDIT_ADD);
67
- j--;
68
- continue;
69
- }
70
- if (j === 0) {
71
- edits.push(EDIT_DELETE);
72
- i--;
73
- continue;
74
- }
75
- const northWest = distances[i - 1][j - 1];
76
- const west = distances[i - 1][j];
77
- const north = distances[i][j - 1];
78
- let min;
79
- if (west < north) {
80
- min = west < northWest ? west : northWest;
81
- }
82
- else {
83
- min = north < northWest ? north : northWest;
84
- }
85
- if (min === northWest) {
86
- if (northWest === current) {
87
- edits.push(EDIT_LEAVE);
88
- }
89
- else {
90
- edits.push(EDIT_UPDATE);
91
- current = northWest;
92
- }
93
- i--;
94
- j--;
95
- }
96
- else if (min === west) {
97
- edits.push(EDIT_DELETE);
98
- i--;
99
- current = west;
100
- }
101
- else {
102
- edits.push(EDIT_ADD);
103
- j--;
104
- current = north;
105
- }
106
- }
107
- edits.reverse();
108
- return edits;
109
- }
110
- function sharedPrefix(current, old, searchLength) {
111
- for (let i = 0; i < searchLength; ++i) {
112
- if (current[i] !== old[i]) {
113
- return i;
114
- }
115
- }
116
- return searchLength;
117
- }
118
- function sharedSuffix(current, old, searchLength) {
119
- let index1 = current.length;
120
- let index2 = old.length;
121
- let count = 0;
122
- while (count < searchLength && current[--index1] === old[--index2]) {
123
- count++;
124
- }
125
- return count;
126
- }
127
- function intersect(start1, end1, start2, end2) {
128
- // Disjoint
129
- if (end1 < start2 || end2 < start1) {
130
- return -1;
131
- }
132
- // Adjacent
133
- if (end1 === start2 || end2 === start1) {
134
- return 0;
135
- }
136
- // Non-zero intersect, span1 first
137
- if (start1 < start2) {
138
- if (end1 < end2) {
139
- return end1 - start2; // Overlap
140
- }
141
- return end2 - start2; // Contained
142
- }
143
- // Non-zero intersect, span2 first
144
- if (end2 < end1) {
145
- return end2 - start1; // Overlap
146
- }
147
- return end1 - start1; // Contained
148
- }
149
- /**
150
- * Splice Projection functions:
151
- *
152
- * A splice map is a representation of how a previous array of items
153
- * was transformed into a new array of items. Conceptually it is a list of
154
- * tuples of
155
- *
156
- * <index, removed, addedCount>
157
- *
158
- * which are kept in ascending index order of. The tuple represents that at
159
- * the |index|, |removed| sequence of items were removed, and counting forward
160
- * from |index|, |addedCount| items were added.
161
- */
162
- /**
163
- * @internal
164
- * @remarks
165
- * Lacking individual splice mutation information, the minimal set of
166
- * splices can be synthesized given the previous state and final state of an
167
- * array. The basic approach is to calculate the edit distance matrix and
168
- * choose the shortest path through it.
169
- *
170
- * Complexity: O(l * p)
171
- * l: The length of the current array
172
- * p: The length of the old array
173
- */
174
- function calcSplices(current, currentStart, currentEnd, old, oldStart, oldEnd) {
175
- let prefixCount = 0;
176
- let suffixCount = 0;
177
- const minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart);
178
- if (currentStart === 0 && oldStart === 0) {
179
- prefixCount = sharedPrefix(current, old, minLength);
180
- }
181
- if (currentEnd === current.length && oldEnd === old.length) {
182
- suffixCount = sharedSuffix(current, old, minLength - prefixCount);
183
- }
184
- currentStart += prefixCount;
185
- oldStart += prefixCount;
186
- currentEnd -= suffixCount;
187
- oldEnd -= suffixCount;
188
- if (currentEnd - currentStart === 0 && oldEnd - oldStart === 0) {
189
- return emptyArray;
190
- }
191
- if (currentStart === currentEnd) {
192
- const splice = newSplice(currentStart, [], 0);
193
- while (oldStart < oldEnd) {
194
- splice.removed.push(old[oldStart++]);
195
- }
196
- return [splice];
197
- }
198
- else if (oldStart === oldEnd) {
199
- return [newSplice(currentStart, [], currentEnd - currentStart)];
200
- }
201
- const ops = spliceOperationsFromEditDistances(calcEditDistances(current, currentStart, currentEnd, old, oldStart, oldEnd));
202
- const splices = [];
203
- let splice = void 0;
204
- let index = currentStart;
205
- let oldIndex = oldStart;
206
- for (let i = 0; i < ops.length; ++i) {
207
- switch (ops[i]) {
208
- case EDIT_LEAVE:
209
- if (splice !== void 0) {
210
- splices.push(splice);
211
- splice = void 0;
212
- }
213
- index++;
214
- oldIndex++;
215
- break;
216
- case EDIT_UPDATE:
217
- if (splice === void 0) {
218
- splice = newSplice(index, [], 0);
219
- }
220
- splice.addedCount++;
221
- index++;
222
- splice.removed.push(old[oldIndex]);
223
- oldIndex++;
224
- break;
225
- case EDIT_ADD:
226
- if (splice === void 0) {
227
- splice = newSplice(index, [], 0);
228
- }
229
- splice.addedCount++;
230
- index++;
231
- break;
232
- case EDIT_DELETE:
233
- if (splice === void 0) {
234
- splice = newSplice(index, [], 0);
235
- }
236
- splice.removed.push(old[oldIndex]);
237
- oldIndex++;
238
- break;
239
- // no default
240
- }
241
- }
242
- if (splice !== void 0) {
243
- splices.push(splice);
244
- }
245
- return splices;
246
- }
247
- const $push = Array.prototype.push;
248
- function mergeSplice(splices, index, removed, addedCount) {
249
- const splice = newSplice(index, removed, addedCount);
250
- let inserted = false;
251
- let insertionOffset = 0;
252
- for (let i = 0; i < splices.length; i++) {
253
- const current = splices[i];
254
- current.index += insertionOffset;
255
- if (inserted) {
256
- continue;
257
- }
258
- const intersectCount = intersect(splice.index, splice.index + splice.removed.length, current.index, current.index + current.addedCount);
259
- if (intersectCount >= 0) {
260
- // Merge the two splices
261
- splices.splice(i, 1);
262
- i--;
263
- insertionOffset -= current.addedCount - current.removed.length;
264
- splice.addedCount += current.addedCount - intersectCount;
265
- const deleteCount = splice.removed.length + current.removed.length - intersectCount;
266
- if (!splice.addedCount && !deleteCount) {
267
- // merged splice is a noop. discard.
268
- inserted = true;
269
- }
270
- else {
271
- let currentRemoved = current.removed;
272
- if (splice.index < current.index) {
273
- // some prefix of splice.removed is prepended to current.removed.
274
- const prepend = splice.removed.slice(0, current.index - splice.index);
275
- $push.apply(prepend, currentRemoved);
276
- currentRemoved = prepend;
277
- }
278
- if (splice.index + splice.removed.length >
279
- current.index + current.addedCount) {
280
- // some suffix of splice.removed is appended to current.removed.
281
- const append = splice.removed.slice(current.index + current.addedCount - splice.index);
282
- $push.apply(currentRemoved, append);
283
- }
284
- splice.removed = currentRemoved;
285
- if (current.index < splice.index) {
286
- splice.index = current.index;
287
- }
288
- }
289
- }
290
- else if (splice.index < current.index) {
291
- // Insert splice here.
292
- inserted = true;
293
- splices.splice(i, 0, splice);
294
- i++;
295
- const offset = splice.addedCount - splice.removed.length;
296
- current.index += offset;
297
- insertionOffset += offset;
298
- }
299
- }
300
- if (!inserted) {
301
- splices.push(splice);
302
- }
303
- }
304
- function createInitialSplices(changeRecords) {
305
- const splices = [];
306
- for (let i = 0, ii = changeRecords.length; i < ii; i++) {
307
- const record = changeRecords[i];
308
- mergeSplice(splices, record.index, record.removed, record.addedCount);
309
- }
310
- return splices;
311
- }
312
- /** @internal */
313
- function projectArraySplices(array, changeRecords) {
314
- let splices = [];
315
- const initialSplices = createInitialSplices(changeRecords);
316
- for (let i = 0, ii = initialSplices.length; i < ii; ++i) {
317
- const splice = initialSplices[i];
318
- if (splice.addedCount === 1 && splice.removed.length === 1) {
319
- if (splice.removed[0] !== array[splice.index]) {
320
- splices.push(splice);
321
- }
322
- continue;
323
- }
324
- splices = splices.concat(calcSplices(array, splice.index, splice.index + splice.addedCount, splice.removed, 0, splice.removed.length));
325
- }
326
- return splices;
327
- }
328
-
329
- let arrayObservationEnabled = false;
330
- function adjustIndex(changeRecord, array) {
331
- let index = changeRecord.index;
332
- const arrayLength = array.length;
333
- if (index > arrayLength) {
334
- index = arrayLength - changeRecord.addedCount;
335
- }
336
- else if (index < 0) {
337
- index =
338
- arrayLength + changeRecord.removed.length + index - changeRecord.addedCount;
339
- }
340
- if (index < 0) {
341
- index = 0;
342
- }
343
- changeRecord.index = index;
344
- return changeRecord;
345
- }
346
- class ArrayObserver extends SubscriberSet {
347
- constructor(source) {
348
- super(source);
349
- this.oldCollection = void 0;
350
- this.splices = void 0;
351
- this.needsQueue = true;
352
- this.call = this.flush;
353
- Reflect.defineProperty(source, "$fastController", {
354
- value: this,
355
- enumerable: false,
356
- });
357
- }
358
- subscribe(subscriber) {
359
- this.flush();
360
- super.subscribe(subscriber);
361
- }
362
- addSplice(splice) {
363
- if (this.splices === void 0) {
364
- this.splices = [splice];
365
- }
366
- else {
367
- this.splices.push(splice);
368
- }
369
- if (this.needsQueue) {
370
- this.needsQueue = false;
371
- DOM.queueUpdate(this);
372
- }
373
- }
374
- reset(oldCollection) {
375
- this.oldCollection = oldCollection;
376
- if (this.needsQueue) {
377
- this.needsQueue = false;
378
- DOM.queueUpdate(this);
379
- }
380
- }
381
- flush() {
382
- const splices = this.splices;
383
- const oldCollection = this.oldCollection;
384
- if (splices === void 0 && oldCollection === void 0) {
385
- return;
386
- }
387
- this.needsQueue = true;
388
- this.splices = void 0;
389
- this.oldCollection = void 0;
390
- const finalSplices = oldCollection === void 0
391
- ? projectArraySplices(this.source, splices)
392
- : calcSplices(this.source, 0, this.source.length, oldCollection, 0, oldCollection.length);
393
- this.notify(finalSplices);
394
- }
395
- }
396
- /* eslint-disable prefer-rest-params */
397
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
398
- /**
399
- * Enables the array observation mechanism.
400
- * @remarks
401
- * Array observation is enabled automatically when using the
402
- * {@link RepeatDirective}, so calling this API manually is
403
- * not typically necessary.
404
- * @public
405
- */
406
- function enableArrayObservation() {
407
- if (arrayObservationEnabled) {
408
- return;
409
- }
410
- arrayObservationEnabled = true;
411
- Observable.setArrayObserverFactory((collection) => {
412
- return new ArrayObserver(collection);
413
- });
414
- const proto = Array.prototype;
415
- // Don't patch Array if it has already been patched
416
- // by another copy of fast-element.
417
- if (proto.$fastPatch) {
418
- return;
419
- }
420
- Reflect.defineProperty(proto, "$fastPatch", {
421
- value: 1,
422
- enumerable: false,
423
- });
424
- const pop = proto.pop;
425
- const push = proto.push;
426
- const reverse = proto.reverse;
427
- const shift = proto.shift;
428
- const sort = proto.sort;
429
- const splice = proto.splice;
430
- const unshift = proto.unshift;
431
- proto.pop = function () {
432
- const notEmpty = this.length > 0;
433
- const methodCallResult = pop.apply(this, arguments);
434
- const o = this.$fastController;
435
- if (o !== void 0 && notEmpty) {
436
- o.addSplice(newSplice(this.length, [methodCallResult], 0));
437
- }
438
- return methodCallResult;
439
- };
440
- proto.push = function () {
441
- const methodCallResult = push.apply(this, arguments);
442
- const o = this.$fastController;
443
- if (o !== void 0) {
444
- o.addSplice(adjustIndex(newSplice(this.length - arguments.length, [], arguments.length), this));
445
- }
446
- return methodCallResult;
447
- };
448
- proto.reverse = function () {
449
- let oldArray;
450
- const o = this.$fastController;
451
- if (o !== void 0) {
452
- o.flush();
453
- oldArray = this.slice();
454
- }
455
- const methodCallResult = reverse.apply(this, arguments);
456
- if (o !== void 0) {
457
- o.reset(oldArray);
458
- }
459
- return methodCallResult;
460
- };
461
- proto.shift = function () {
462
- const notEmpty = this.length > 0;
463
- const methodCallResult = shift.apply(this, arguments);
464
- const o = this.$fastController;
465
- if (o !== void 0 && notEmpty) {
466
- o.addSplice(newSplice(0, [methodCallResult], 0));
467
- }
468
- return methodCallResult;
469
- };
470
- proto.sort = function () {
471
- let oldArray;
472
- const o = this.$fastController;
473
- if (o !== void 0) {
474
- o.flush();
475
- oldArray = this.slice();
476
- }
477
- const methodCallResult = sort.apply(this, arguments);
478
- if (o !== void 0) {
479
- o.reset(oldArray);
480
- }
481
- return methodCallResult;
482
- };
483
- proto.splice = function () {
484
- const methodCallResult = splice.apply(this, arguments);
485
- const o = this.$fastController;
486
- if (o !== void 0) {
487
- o.addSplice(adjustIndex(newSplice(+arguments[0], methodCallResult, arguments.length > 2 ? arguments.length - 2 : 0), this));
488
- }
489
- return methodCallResult;
490
- };
491
- proto.unshift = function () {
492
- const methodCallResult = unshift.apply(this, arguments);
493
- const o = this.$fastController;
494
- if (o !== void 0) {
495
- o.addSplice(adjustIndex(newSplice(0, [], arguments.length), this));
496
- }
497
- return methodCallResult;
498
- };
499
- }
500
- /* eslint-enable prefer-rest-params */
501
- /* eslint-enable @typescript-eslint/explicit-function-return-type */
502
-
503
- const defaultRepeatOptions = Object.freeze({
504
- positioning: false,
505
- recycle: true,
506
- });
507
- function bindWithoutPositioning(view, items, index, context) {
508
- view.bind(items[index], context);
509
- }
510
- function bindWithPositioning(view, items, index, context) {
511
- const childContext = Object.create(context);
512
- childContext.index = index;
513
- childContext.length = items.length;
514
- view.bind(items[index], childContext);
515
- }
516
- /**
517
- * A behavior that renders a template for each item in an array.
518
- * @public
519
- */
520
- class RepeatBehavior {
521
- /**
522
- * Creates an instance of RepeatBehavior.
523
- * @param location - The location in the DOM to render the repeat.
524
- * @param itemsBinding - The array to render.
525
- * @param isItemsBindingVolatile - Indicates whether the items binding has volatile dependencies.
526
- * @param templateBinding - The template to render for each item.
527
- * @param isTemplateBindingVolatile - Indicates whether the template binding has volatile dependencies.
528
- * @param options - Options used to turn on special repeat features.
529
- */
530
- constructor(location, itemsBinding, isItemsBindingVolatile, templateBinding, isTemplateBindingVolatile, options) {
531
- this.location = location;
532
- this.itemsBinding = itemsBinding;
533
- this.templateBinding = templateBinding;
534
- this.options = options;
535
- this.source = null;
536
- this.views = [];
537
- this.items = null;
538
- this.itemsObserver = null;
539
- this.originalContext = void 0;
540
- this.childContext = void 0;
541
- this.bindView = bindWithoutPositioning;
542
- this.itemsBindingObserver = Observable.binding(itemsBinding, this, isItemsBindingVolatile);
543
- this.templateBindingObserver = Observable.binding(templateBinding, this, isTemplateBindingVolatile);
544
- if (options.positioning) {
545
- this.bindView = bindWithPositioning;
546
- }
547
- }
548
- /**
549
- * Bind this behavior to the source.
550
- * @param source - The source to bind to.
551
- * @param context - The execution context that the binding is operating within.
552
- */
553
- bind(source, context) {
554
- this.source = source;
555
- this.originalContext = context;
556
- this.childContext = Object.create(context);
557
- this.childContext.parent = source;
558
- this.childContext.parentContext = this.originalContext;
559
- this.items = this.itemsBindingObserver.observe(source, this.originalContext);
560
- this.template = this.templateBindingObserver.observe(source, this.originalContext);
561
- this.observeItems(true);
562
- this.refreshAllViews();
563
- }
564
- /**
565
- * Unbinds this behavior from the source.
566
- * @param source - The source to unbind from.
567
- */
568
- unbind() {
569
- this.source = null;
570
- this.items = null;
571
- if (this.itemsObserver !== null) {
572
- this.itemsObserver.unsubscribe(this);
573
- }
574
- this.unbindAllViews();
575
- this.itemsBindingObserver.disconnect();
576
- this.templateBindingObserver.disconnect();
577
- }
578
- /** @internal */
579
- handleChange(source, args) {
580
- if (source === this.itemsBinding) {
581
- this.items = this.itemsBindingObserver.observe(this.source, this.originalContext);
582
- this.observeItems();
583
- this.refreshAllViews();
584
- }
585
- else if (source === this.templateBinding) {
586
- this.template = this.templateBindingObserver.observe(this.source, this.originalContext);
587
- this.refreshAllViews(true);
588
- }
589
- else {
590
- this.updateViews(args);
591
- }
592
- }
593
- observeItems(force = false) {
594
- if (!this.items) {
595
- this.items = emptyArray;
596
- return;
597
- }
598
- const oldObserver = this.itemsObserver;
599
- const newObserver = (this.itemsObserver = Observable.getNotifier(this.items));
600
- const hasNewObserver = oldObserver !== newObserver;
601
- if (hasNewObserver && oldObserver !== null) {
602
- oldObserver.unsubscribe(this);
603
- }
604
- if (hasNewObserver || force) {
605
- newObserver.subscribe(this);
606
- }
607
- }
608
- updateViews(splices) {
609
- const childContext = this.childContext;
610
- const views = this.views;
611
- const bindView = this.bindView;
612
- const items = this.items;
613
- const template = this.template;
614
- const recycle = this.options.recycle;
615
- const leftoverViews = [];
616
- let leftoverIndex = 0;
617
- let availableViews = 0;
618
- for (let i = 0, ii = splices.length; i < ii; ++i) {
619
- const splice = splices[i];
620
- const removed = splice.removed;
621
- let removeIndex = 0;
622
- let addIndex = splice.index;
623
- const end = addIndex + splice.addedCount;
624
- const removedViews = views.splice(splice.index, removed.length);
625
- const totalAvailableViews = (availableViews =
626
- leftoverViews.length + removedViews.length);
627
- for (; addIndex < end; ++addIndex) {
628
- const neighbor = views[addIndex];
629
- const location = neighbor ? neighbor.firstChild : this.location;
630
- let view;
631
- if (recycle && availableViews > 0) {
632
- if (removeIndex <= totalAvailableViews && removedViews.length > 0) {
633
- view = removedViews[removeIndex];
634
- removeIndex++;
635
- }
636
- else {
637
- view = leftoverViews[leftoverIndex];
638
- leftoverIndex++;
639
- }
640
- availableViews--;
641
- }
642
- else {
643
- view = template.create();
644
- }
645
- views.splice(addIndex, 0, view);
646
- bindView(view, items, addIndex, childContext);
647
- view.insertBefore(location);
648
- }
649
- if (removedViews[removeIndex]) {
650
- leftoverViews.push(...removedViews.slice(removeIndex));
651
- }
652
- }
653
- for (let i = leftoverIndex, ii = leftoverViews.length; i < ii; ++i) {
654
- leftoverViews[i].dispose();
655
- }
656
- if (this.options.positioning) {
657
- for (let i = 0, ii = views.length; i < ii; ++i) {
658
- const currentContext = views[i].context;
659
- currentContext.length = ii;
660
- currentContext.index = i;
661
- }
662
- }
663
- }
664
- refreshAllViews(templateChanged = false) {
665
- const items = this.items;
666
- const childContext = this.childContext;
667
- const template = this.template;
668
- const location = this.location;
669
- const bindView = this.bindView;
670
- let itemsLength = items.length;
671
- let views = this.views;
672
- let viewsLength = views.length;
673
- if (itemsLength === 0 || templateChanged || !this.options.recycle) {
674
- // all views need to be removed
675
- HTMLView.disposeContiguousBatch(views);
676
- viewsLength = 0;
677
- }
678
- if (viewsLength === 0) {
679
- // all views need to be created
680
- this.views = views = new Array(itemsLength);
681
- for (let i = 0; i < itemsLength; ++i) {
682
- const view = template.create();
683
- bindView(view, items, i, childContext);
684
- views[i] = view;
685
- view.insertBefore(location);
686
- }
687
- }
688
- else {
689
- // attempt to reuse existing views with new data
690
- let i = 0;
691
- for (; i < itemsLength; ++i) {
692
- if (i < viewsLength) {
693
- const view = views[i];
694
- bindView(view, items, i, childContext);
695
- }
696
- else {
697
- const view = template.create();
698
- bindView(view, items, i, childContext);
699
- views.push(view);
700
- view.insertBefore(location);
701
- }
702
- }
703
- const removed = views.splice(i, viewsLength - i);
704
- for (i = 0, itemsLength = removed.length; i < itemsLength; ++i) {
705
- removed[i].dispose();
706
- }
707
- }
708
- }
709
- unbindAllViews() {
710
- const views = this.views;
711
- for (let i = 0, ii = views.length; i < ii; ++i) {
712
- views[i].unbind();
713
- }
714
- }
715
- }
716
- /**
717
- * A directive that configures list rendering.
718
- * @public
719
- */
720
- class RepeatDirective extends HTMLDirective {
721
- /**
722
- * Creates an instance of RepeatDirective.
723
- * @param itemsBinding - The binding that provides the array to render.
724
- * @param templateBinding - The template binding used to obtain a template to render for each item in the array.
725
- * @param options - Options used to turn on special repeat features.
726
- */
727
- constructor(itemsBinding, templateBinding, options) {
728
- super();
729
- this.itemsBinding = itemsBinding;
730
- this.templateBinding = templateBinding;
731
- this.options = options;
732
- /**
733
- * Creates a placeholder string based on the directive's index within the template.
734
- * @param index - The index of the directive within the template.
735
- */
736
- this.createPlaceholder = DOM.createBlockPlaceholder;
737
- enableArrayObservation();
738
- this.isItemsBindingVolatile = Observable.isVolatileBinding(itemsBinding);
739
- this.isTemplateBindingVolatile = Observable.isVolatileBinding(templateBinding);
740
- }
741
- /**
742
- * Creates a behavior for the provided target node.
743
- * @param target - The node instance to create the behavior for.
744
- */
745
- createBehavior(target) {
746
- return new RepeatBehavior(target, this.itemsBinding, this.isItemsBindingVolatile, this.templateBinding, this.isTemplateBindingVolatile, this.options);
747
- }
748
- }
749
- /**
750
- * A directive that enables list rendering.
751
- * @param itemsBinding - The array to render.
752
- * @param templateOrTemplateBinding - The template or a template binding used obtain a template
753
- * to render for each item in the array.
754
- * @param options - Options used to turn on special repeat features.
755
- * @public
756
- */
757
- function repeat(itemsBinding, templateOrTemplateBinding, options = defaultRepeatOptions) {
758
- const templateBinding = typeof templateOrTemplateBinding === "function"
759
- ? templateOrTemplateBinding
760
- : () => templateOrTemplateBinding;
761
- return new RepeatDirective(itemsBinding, templateBinding, Object.assign(Object.assign({}, defaultRepeatOptions), options));
762
- }
763
-
764
- export { RepeatDirective as R, repeat as r };