@vonage/vivid 5.1.0 → 5.3.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 (386) hide show
  1. package/accordion-item/definition.cjs +2 -1
  2. package/accordion-item/definition.js +2 -1
  3. package/alert/index.cjs +1 -1
  4. package/alert/index.js +1 -1
  5. package/audio-player/definition.cjs +41 -6
  6. package/audio-player/definition.js +41 -6
  7. package/audio-player/index.cjs +27 -25
  8. package/audio-player/index.js +88 -62
  9. package/badge/index.cjs +2 -2
  10. package/badge/index.js +4 -4
  11. package/banner/index.cjs +3 -3
  12. package/banner/index.js +6 -6
  13. package/breadcrumb-item/index.cjs +1 -1
  14. package/breadcrumb-item/index.js +1 -1
  15. package/bundled/affix.cjs +7 -7
  16. package/bundled/affix.js +5 -5
  17. package/bundled/anchored.cjs +1 -1
  18. package/bundled/anchored.js +6 -6
  19. package/bundled/attribute-binding-behaviour.cjs +1 -1
  20. package/bundled/attribute-binding-behaviour.js +15 -13
  21. package/bundled/base-color-picker.cjs +13 -0
  22. package/bundled/base-color-picker.js +194 -0
  23. package/bundled/button.cjs +1 -1
  24. package/bundled/button.js +2 -2
  25. package/bundled/calendar-picker.template.cjs +1 -1
  26. package/bundled/calendar-picker.template.js +21 -21
  27. package/bundled/char-count.cjs +1 -1
  28. package/bundled/char-count.js +1 -1
  29. package/bundled/children.cjs +1 -1
  30. package/bundled/children.js +28 -20
  31. package/bundled/definition.cjs +3 -3
  32. package/bundled/definition.js +38 -38
  33. package/bundled/definition10.cjs +72 -18
  34. package/bundled/definition10.js +351 -65
  35. package/bundled/definition11.cjs +19 -10
  36. package/bundled/definition11.js +66 -37
  37. package/bundled/definition12.cjs +10 -1
  38. package/bundled/definition12.js +38 -14
  39. package/bundled/definition13.cjs +1 -73
  40. package/bundled/definition13.js +15 -354
  41. package/bundled/definition15.cjs +1 -1
  42. package/bundled/definition15.js +1 -1
  43. package/bundled/definition16.cjs +2 -2
  44. package/bundled/definition16.js +8 -8
  45. package/bundled/definition17.cjs +7 -7
  46. package/bundled/definition17.js +17 -17
  47. package/bundled/definition19.cjs +17 -14
  48. package/bundled/definition19.js +85 -77
  49. package/bundled/definition2.cjs +9 -5
  50. package/bundled/definition2.js +21 -17
  51. package/bundled/definition22.cjs +9 -9
  52. package/bundled/definition22.js +31 -31
  53. package/bundled/definition3.cjs +1 -1
  54. package/bundled/definition3.js +1 -1
  55. package/bundled/definition6.cjs +6 -6
  56. package/bundled/definition6.js +34 -31
  57. package/bundled/definition7.cjs +1 -1
  58. package/bundled/definition7.js +6 -6
  59. package/bundled/definition8.cjs +2 -2
  60. package/bundled/definition8.js +4 -4
  61. package/bundled/definition9.cjs +1 -1
  62. package/bundled/definition9.js +1 -1
  63. package/bundled/delegates-aria.cjs +1 -1
  64. package/bundled/delegates-aria.js +59 -46
  65. package/bundled/form-associated.cjs +1 -1
  66. package/bundled/form-associated.js +3 -3
  67. package/bundled/host-semantics.cjs +1 -1
  68. package/bundled/host-semantics.js +48 -34
  69. package/bundled/localized.cjs +1 -1
  70. package/bundled/localized.js +43 -31
  71. package/bundled/mixins.cjs +18 -18
  72. package/bundled/mixins.js +99 -93
  73. package/bundled/normalize.cjs +1 -0
  74. package/bundled/normalize.js +7 -0
  75. package/bundled/picker-field.template.cjs +18 -13
  76. package/bundled/picker-field.template.js +45 -37
  77. package/bundled/ref.cjs +1 -1
  78. package/bundled/ref.js +8 -25
  79. package/bundled/repeat.cjs +1 -1
  80. package/bundled/repeat.js +459 -233
  81. package/bundled/slider.template.cjs +1 -1
  82. package/bundled/slider.template.js +2 -2
  83. package/bundled/slotted.cjs +1 -1
  84. package/bundled/slotted.js +62 -45
  85. package/bundled/text-field.cjs +1 -1
  86. package/bundled/text-field.js +1 -1
  87. package/bundled/time-selection-picker.template.cjs +1 -1
  88. package/bundled/time-selection-picker.template.js +5 -5
  89. package/bundled/vivid-element.cjs +1 -1
  90. package/bundled/vivid-element.js +2126 -1172
  91. package/bundled/when.cjs +1 -1
  92. package/bundled/when.js +8 -7
  93. package/bundled/with-contextual-help.cjs +1 -1
  94. package/bundled/with-contextual-help.js +17 -7
  95. package/calendar/definition.cjs +1 -1
  96. package/calendar/definition.js +2 -2
  97. package/calendar/index.cjs +1 -1
  98. package/calendar/index.js +6 -6
  99. package/calendar-event/index.cjs +1 -1
  100. package/calendar-event/index.js +1 -1
  101. package/card/definition.cjs +10 -2
  102. package/card/definition.js +10 -2
  103. package/card/index.cjs +19 -11
  104. package/card/index.js +35 -27
  105. package/color-picker/definition.cjs +1079 -0
  106. package/color-picker/definition.js +1073 -0
  107. package/color-picker/index.cjs +127 -0
  108. package/color-picker/index.js +726 -0
  109. package/combobox/definition.cjs +13 -6
  110. package/combobox/definition.js +14 -7
  111. package/combobox/index.cjs +15 -11
  112. package/combobox/index.js +82 -75
  113. package/contextual-help/index.cjs +1 -1
  114. package/contextual-help/index.js +1 -1
  115. package/custom-elements.json +1621 -325
  116. package/data-grid/definition.cjs +862 -27
  117. package/data-grid/definition.js +863 -28
  118. package/data-grid/index.cjs +25 -25
  119. package/data-grid/index.js +175 -168
  120. package/date-picker/index.cjs +1 -1
  121. package/date-picker/index.js +2 -2
  122. package/date-range-picker/index.cjs +1 -1
  123. package/date-range-picker/index.js +2 -2
  124. package/date-time-picker/index.cjs +1 -1
  125. package/date-time-picker/index.js +2 -2
  126. package/dial-pad/definition.cjs +55 -1
  127. package/dial-pad/definition.js +56 -2
  128. package/dial-pad/index.cjs +21 -18
  129. package/dial-pad/index.js +138 -104
  130. package/dialog/definition.cjs +4 -1
  131. package/dialog/definition.js +4 -1
  132. package/dialog/index.cjs +21 -18
  133. package/dialog/index.js +43 -40
  134. package/empty-state/definition.cjs +7 -2
  135. package/empty-state/definition.js +7 -2
  136. package/empty-state/index.cjs +10 -5
  137. package/empty-state/index.js +18 -13
  138. package/fab/index.cjs +2 -2
  139. package/fab/index.js +4 -4
  140. package/file-picker/definition.cjs +16 -7
  141. package/file-picker/definition.js +17 -8
  142. package/file-picker/index.cjs +12 -9
  143. package/file-picker/index.js +103 -93
  144. package/icon/definition.cjs +10 -6
  145. package/icon/definition.js +10 -6
  146. package/index.cjs +4 -0
  147. package/index.js +1 -0
  148. package/lib/accordion-item/accordion-item.d.ts +2 -2
  149. package/lib/action-group/action-group.d.ts +2 -2
  150. package/lib/alert/alert.d.ts +4 -4
  151. package/lib/audio-player/audio-player.d.ts +6 -2
  152. package/lib/avatar/avatar.d.ts +2 -2
  153. package/lib/badge/badge.d.ts +2 -2
  154. package/lib/banner/banner.d.ts +6 -6
  155. package/lib/breadcrumb/breadcrumb.d.ts +2 -2
  156. package/lib/breadcrumb-item/breadcrumb-item.d.ts +2 -2
  157. package/lib/button/button.d.ts +6 -6
  158. package/lib/button/button.template.d.ts +2 -1
  159. package/lib/calendar/calendar.d.ts +1 -1
  160. package/lib/calendar-event/calendar-event.d.ts +2 -2
  161. package/lib/card/card.d.ts +2 -2
  162. package/lib/checkbox/checkbox.d.ts +12 -12
  163. package/lib/color-picker/color-picker.d.ts +2420 -0
  164. package/lib/color-picker/color-picker.template.d.ts +3 -0
  165. package/lib/color-picker/definition.d.ts +4 -0
  166. package/lib/color-picker/locale.d.ts +9 -0
  167. package/lib/combobox/combobox.d.ts +495 -78
  168. package/lib/components.d.ts +1 -0
  169. package/lib/data-grid/data-grid-cell.d.ts +4 -4
  170. package/lib/data-grid/data-grid-row.d.ts +3 -4
  171. package/lib/data-grid/data-grid.d.ts +1 -2
  172. package/lib/date-picker/date-picker.d.ts +906 -894
  173. package/lib/date-range-picker/date-range-picker.d.ts +596 -590
  174. package/lib/date-time-picker/date-time-picker.d.ts +907 -895
  175. package/lib/dial-pad/dial-pad.d.ts +3 -2
  176. package/lib/dial-pad/dial-pad.template.d.ts +1 -1
  177. package/lib/dial-pad/locale.d.ts +1 -0
  178. package/lib/dialog/dialog.d.ts +4 -4
  179. package/lib/divider/divider.d.ts +2 -2
  180. package/lib/fab/fab.d.ts +2 -2
  181. package/lib/file-picker/file-picker.d.ts +495 -78
  182. package/lib/header/header.d.ts +2 -2
  183. package/lib/menu/menu.d.ts +5 -4
  184. package/lib/menu-item/menu-item.d.ts +4 -4
  185. package/lib/nav/nav.d.ts +2 -2
  186. package/lib/nav-disclosure/nav-disclosure.d.ts +4 -4
  187. package/lib/nav-item/nav-item.d.ts +4 -4
  188. package/lib/note/note.d.ts +2 -2
  189. package/lib/number-field/number-field.d.ts +19 -18
  190. package/lib/option/option.d.ts +4 -4
  191. package/lib/pagination/pagination.d.ts +2 -2
  192. package/lib/progress/progress.d.ts +2 -2
  193. package/lib/progress-ring/progress-ring.d.ts +2 -2
  194. package/lib/radio/radio.d.ts +6 -6
  195. package/lib/radio-group/radio-group.d.ts +2 -2
  196. package/lib/range-slider/range-slider.d.ts +6 -6
  197. package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
  198. package/lib/rich-text-editor/rich-text-editor.d.ts +2 -2
  199. package/lib/searchable-select/option-tag.d.ts +2 -2
  200. package/lib/searchable-select/searchable-select.d.ts +521 -104
  201. package/lib/select/select.d.ts +484 -67
  202. package/lib/selectable-box/selectable-box.d.ts +2 -2
  203. package/lib/simple-color-picker/locale.d.ts +0 -1
  204. package/lib/simple-color-picker/simple-color-picker.d.ts +47 -821
  205. package/lib/slider/slider.d.ts +6 -6
  206. package/lib/split-button/split-button.d.ts +6 -6
  207. package/lib/switch/switch.d.ts +4 -4
  208. package/lib/tab/tab.d.ts +6 -6
  209. package/lib/tab-panel/tab-panel.d.ts +2 -2
  210. package/lib/tag/tag.d.ts +6 -6
  211. package/lib/tag-group/tag-group.d.ts +2 -2
  212. package/lib/tag-name-map.d.ts +2 -1
  213. package/lib/text-area/text-area.d.ts +17 -16
  214. package/lib/text-field/text-field.d.ts +19 -18
  215. package/lib/time-picker/time-picker.d.ts +579 -573
  216. package/lib/toggletip/toggletip.d.ts +4 -4
  217. package/lib/tooltip/tooltip.d.ts +2 -2
  218. package/lib/tree-item/tree-item.d.ts +4 -4
  219. package/lib/tree-view/tree-view.d.ts +2 -2
  220. package/lib/video-player/video-player.d.ts +2 -2
  221. package/locales/de-DE.cjs +15 -3
  222. package/locales/de-DE.js +15 -3
  223. package/locales/en-GB.cjs +15 -3
  224. package/locales/en-GB.js +15 -3
  225. package/locales/en-US.cjs +15 -3
  226. package/locales/en-US.js +15 -3
  227. package/locales/ja-JP.cjs +15 -3
  228. package/locales/ja-JP.js +15 -3
  229. package/locales/zh-CN.cjs +15 -3
  230. package/locales/zh-CN.js +15 -3
  231. package/menu/definition.cjs +8 -4
  232. package/menu/definition.js +9 -5
  233. package/note/index.cjs +2 -2
  234. package/note/index.js +4 -4
  235. package/number-field/definition.cjs +3 -3
  236. package/number-field/definition.js +4 -4
  237. package/number-field/index.cjs +8 -8
  238. package/number-field/index.js +41 -40
  239. package/option/index.cjs +1 -1
  240. package/option/index.js +1 -1
  241. package/package.json +5 -5
  242. package/pagination/definition.cjs +2 -1
  243. package/pagination/definition.js +2 -1
  244. package/pagination/index.cjs +12 -12
  245. package/pagination/index.js +59 -59
  246. package/progress/index.cjs +1 -1
  247. package/progress/index.js +1 -1
  248. package/radio/definition.cjs +9 -9
  249. package/radio/definition.js +10 -10
  250. package/radio-group/definition.cjs +2 -1
  251. package/radio-group/definition.js +2 -1
  252. package/radio-group/index.cjs +5 -5
  253. package/radio-group/index.js +80 -77
  254. package/range-slider/index.cjs +1 -1
  255. package/range-slider/index.js +1 -1
  256. package/rich-text-editor/definition.cjs +1 -1
  257. package/rich-text-editor/definition.js +2 -2
  258. package/rich-text-editor/index.cjs +2 -2
  259. package/rich-text-editor/index.js +3 -3
  260. package/searchable-select/definition.cjs +30 -21
  261. package/searchable-select/definition.js +31 -22
  262. package/searchable-select/index.cjs +28 -25
  263. package/searchable-select/index.js +149 -140
  264. package/select/definition.cjs +15 -7
  265. package/select/definition.js +16 -8
  266. package/selectable-box/definition.cjs +1 -1
  267. package/selectable-box/definition.js +1 -1
  268. package/selectable-box/index.cjs +3 -3
  269. package/selectable-box/index.js +20 -20
  270. package/shared/aria/aria-change-subscription.d.ts +0 -1
  271. package/shared/aria/aria-mixin.d.ts +2 -2
  272. package/shared/aria/delegate-aria-behavior.d.ts +5 -10
  273. package/shared/aria/delegates-aria.d.ts +3 -3
  274. package/shared/aria/host-semantics-behavior.d.ts +5 -8
  275. package/shared/aria/host-semantics.d.ts +3 -3
  276. package/shared/color-picker/base-color-picker.d.ts +436 -0
  277. package/shared/color-picker/index.d.ts +1 -0
  278. package/shared/color-picker/locale.d.ts +3 -0
  279. package/shared/color-picker/utils.d.ts +1 -0
  280. package/shared/deprecation/replaced-props.d.ts +317 -2
  281. package/shared/design-system/defineVividComponent.d.ts +2 -2
  282. package/shared/feedback/feedback-message.d.ts +2 -2
  283. package/shared/feedback/mixins.d.ts +4 -4
  284. package/shared/foundation/button/button.d.ts +4 -4
  285. package/shared/foundation/form-associated/form-associated.d.ts +4 -4
  286. package/shared/foundation/vivid-element/vivid-element.d.ts +335 -8
  287. package/shared/localization/Locale.d.ts +4 -0
  288. package/shared/patterns/affix.d.ts +4 -4
  289. package/shared/patterns/anchored.d.ts +4 -4
  290. package/shared/patterns/char-count/char-count.d.ts +2 -2
  291. package/shared/patterns/form-elements/form-element.d.ts +4 -4
  292. package/shared/patterns/form-elements/index.d.ts +1 -0
  293. package/shared/patterns/form-elements/with-contextual-help.d.ts +7 -6
  294. package/shared/patterns/form-elements/with-error-text.d.ts +6 -6
  295. package/shared/patterns/form-elements/with-success-text.d.ts +2 -2
  296. package/shared/patterns/linkable.d.ts +2 -2
  297. package/shared/patterns/localized.d.ts +2 -2
  298. package/shared/patterns/trapped-focus.d.ts +2 -2
  299. package/shared/picker-field/mixins/calendar-picker.d.ts +454 -451
  300. package/shared/picker-field/mixins/calendar-picker.template.d.ts +454 -451
  301. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +2 -2
  302. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +600 -594
  303. package/shared/picker-field/mixins/single-date-picker.d.ts +746 -737
  304. package/shared/picker-field/mixins/single-value-picker.d.ts +451 -448
  305. package/shared/picker-field/mixins/time-selection-picker.d.ts +580 -574
  306. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +579 -573
  307. package/shared/picker-field/picker-field.d.ts +495 -78
  308. package/shared/templating/attribute-binding-behaviour.d.ts +3 -4
  309. package/shared/templating/render-in-light-dom.d.ts +13 -12
  310. package/side-drawer/index.cjs +1 -1
  311. package/side-drawer/index.js +1 -1
  312. package/simple-color-picker/definition.cjs +28 -215
  313. package/simple-color-picker/definition.js +29 -216
  314. package/simple-color-picker/index.cjs +9 -21
  315. package/simple-color-picker/index.js +71 -185
  316. package/styles/core/all.css +1 -1
  317. package/styles/core/theme.css +1 -1
  318. package/styles/core/typography.css +1 -1
  319. package/styles/tokens/theme-dark.css +4 -4
  320. package/styles/tokens/theme-light.css +4 -4
  321. package/styles/tokens/vivid-2-compat.css +1 -1
  322. package/switch/index.cjs +2 -2
  323. package/switch/index.js +4 -4
  324. package/tabs/definition.cjs +1 -1
  325. package/tabs/definition.js +2 -2
  326. package/tabs/index.cjs +2 -2
  327. package/tabs/index.js +16 -16
  328. package/tag/index.cjs +1 -1
  329. package/tag/index.js +1 -1
  330. package/text-area/definition.cjs +1 -1
  331. package/text-area/definition.js +1 -1
  332. package/text-area/index.cjs +3 -3
  333. package/text-area/index.js +9 -9
  334. package/text-field/definition.cjs +3 -3
  335. package/text-field/definition.js +4 -4
  336. package/text-field/index.cjs +1 -1
  337. package/text-field/index.js +1 -1
  338. package/time-picker/index.cjs +1 -1
  339. package/time-picker/index.js +2 -2
  340. package/toggletip/definition.cjs +1 -1
  341. package/toggletip/definition.js +2 -2
  342. package/tree-view/definition.cjs +1 -1
  343. package/tree-view/definition.js +2 -2
  344. package/tree-view/index.cjs +2 -2
  345. package/tree-view/index.js +6 -6
  346. package/unbundled/_commonjsHelpers.cjs +36 -0
  347. package/unbundled/_commonjsHelpers.js +32 -0
  348. package/unbundled/affix.cjs +1 -1
  349. package/unbundled/affix.js +1 -1
  350. package/unbundled/attribute-binding-behaviour.cjs +11 -10
  351. package/unbundled/attribute-binding-behaviour.js +11 -10
  352. package/unbundled/base-color-picker.cjs +278 -0
  353. package/unbundled/base-color-picker.js +275 -0
  354. package/unbundled/button.cjs +1 -1
  355. package/unbundled/button.js +2 -2
  356. package/unbundled/calendar-picker.template.cjs +3 -3
  357. package/unbundled/calendar-picker.template.js +4 -4
  358. package/unbundled/definition2.cjs +1 -1
  359. package/unbundled/definition2.js +2 -2
  360. package/unbundled/definition3.cjs +2 -1
  361. package/unbundled/definition3.js +2 -1
  362. package/unbundled/delegates-aria.cjs +67 -33
  363. package/unbundled/delegates-aria.js +69 -35
  364. package/unbundled/form-associated.cjs +2 -2
  365. package/unbundled/form-associated.js +3 -3
  366. package/unbundled/host-semantics.cjs +47 -22
  367. package/unbundled/host-semantics.js +48 -23
  368. package/unbundled/mixins.cjs +34 -27
  369. package/unbundled/mixins.js +35 -28
  370. package/unbundled/picker-field.template.cjs +13 -5
  371. package/unbundled/picker-field.template.js +14 -6
  372. package/unbundled/text-field.cjs +1 -1
  373. package/unbundled/text-field.js +1 -1
  374. package/unbundled/time-selection-picker.template.cjs +4 -4
  375. package/unbundled/time-selection-picker.template.js +5 -5
  376. package/unbundled/vivid-element.cjs +22 -15
  377. package/unbundled/vivid-element.js +23 -15
  378. package/unbundled/with-contextual-help.cjs +11 -0
  379. package/unbundled/with-contextual-help.js +11 -0
  380. package/video-player/definition.cjs +69007 -1
  381. package/video-player/definition.js +69007 -1
  382. package/video-player/index.cjs +35 -35
  383. package/video-player/index.js +1358 -1384
  384. package/visually-hidden/index.cjs +1 -1
  385. package/visually-hidden/index.js +1 -1
  386. package/vivid.api.json +347 -69
@@ -1,5 +1,5 @@
1
- import { type Behavior, type Binding, type ExecutionContext, type Subscriber } from '@microsoft/fast-element';
2
- export declare class AttributeBindingBehavior implements Behavior, Subscriber {
1
+ import { type Binding, type Subscriber, type ViewBehavior, type ViewController } from '@microsoft/fast-element';
2
+ export declare class AttributeBindingBehavior implements ViewBehavior, Subscriber {
3
3
  private target;
4
4
  private binding;
5
5
  private isBindingVolatile;
@@ -8,8 +8,7 @@ export declare class AttributeBindingBehavior implements Behavior, Subscriber {
8
8
  private source;
9
9
  private context;
10
10
  private bindingObserver?;
11
- bind(source: unknown, context: ExecutionContext): void;
12
- unbind(): void;
11
+ bind(controller: ViewController): void;
13
12
  handleChange(): void;
14
13
  updateTarget(value: unknown): void;
15
14
  }
@@ -1,22 +1,23 @@
1
- import { type Behavior, type Binding, type CaptureType, ExecutionContext, HTMLDirective, type Subscriber, type SyntheticViewTemplate } from '@microsoft/fast-element';
1
+ import { type AddViewBehaviorFactory, type Binding, type BindingDirective, type CaptureType, type Expression, HTMLDirective, type Subscriber, type ViewBehavior, type ViewBehaviorFactory, type ViewController, type ViewTemplate } from '@microsoft/fast-element';
2
2
  import type { VividElement } from '../foundation/vivid-element/vivid-element';
3
- export declare class RenderInLightDomBehaviour<TSource extends VividElement> implements Behavior, Subscriber {
3
+ export declare class RenderInLightDomBehaviour<TSource extends VividElement> implements ViewBehavior, Subscriber {
4
4
  private source;
5
5
  private view?;
6
6
  private insertionPoint?;
7
7
  private templateBindingObserver;
8
8
  private context?;
9
- constructor(templateBinding: Binding<TSource, SyntheticViewTemplate>, isTemplateBindingVolatile: boolean);
10
- bind(source: TSource, context: ExecutionContext): void;
11
- unbind(): void;
12
- handleChange(): void;
9
+ private controller?;
10
+ constructor(directive: RenderInLightDomDirective<TSource>);
11
+ bind(controller: ViewController): void;
12
+ handleChange(source: any, args: any): void;
13
13
  private instantiateTemplate;
14
14
  }
15
- export declare class RenderInLightDomDirective<TSource extends VividElement> extends HTMLDirective {
16
- readonly templateBinding: Binding<TSource, SyntheticViewTemplate>;
17
- createPlaceholder: (index: number) => string;
18
- private readonly isTemplateBindingVolatile;
19
- constructor(templateBinding: Binding<TSource, SyntheticViewTemplate>);
15
+ export declare class RenderInLightDomDirective<TSource extends VividElement> implements HTMLDirective, ViewBehaviorFactory, BindingDirective {
16
+ readonly templateBinding: Binding<TSource, ViewTemplate>;
17
+ readonly dataBinding: Binding<TSource, ViewTemplate>;
18
+ targetNodeId: string;
19
+ constructor(templateBinding: Binding<TSource, ViewTemplate>);
20
+ createHTML(add: AddViewBehaviorFactory): string;
20
21
  createBehavior(): RenderInLightDomBehaviour<TSource>;
21
22
  }
22
- export declare function renderInLightDOM<TSource extends VividElement>(templateOrTemplateBinding: SyntheticViewTemplate | Binding<TSource, SyntheticViewTemplate>): CaptureType<TSource>;
23
+ export declare function renderInLightDOM<TSource extends VividElement = VividElement, TParent = any>(templateOrTemplateBinding: ViewTemplate<any, TSource> | Expression<TSource, ViewTemplate<any, TSource>, TParent> | Binding<TSource, ViewTemplate<any, TSource>, TParent>): CaptureType<TSource, TParent>;
@@ -1,4 +1,4 @@
1
- "use strict";const r=require("../bundled/vivid-element.cjs"),p=require("../bundled/index.cjs"),d=require("../bundled/class-names.cjs"),v=require("../bundled/when.cjs");var b=Object.defineProperty,l=(e,o,t,i)=>{for(var a=void 0,s=e.length-1,c;s>=0;s--)(c=e[s])&&(a=c(o,t,a)||a);return a&&b(o,t,a),a};class n extends r.VividElement{constructor(){super(...arguments),this.alternate=!1,this.modal=!1,this.open=!1,this.trailing=!1}attributeChangedCallback(o,t,i){switch(super.attributeChangedCallback(o,t,i),o){case"open":this.open?this.#o():this.#e()}}#e(){this.$emit("close",void 0,{bubbles:!1})}#o(){this.$emit("open",void 0,{bubbles:!1})}_onKeydown(o){if(p.handleEscapeKeyAndStopPropogation(o)){this._handleCloseRequest();return}else return!0}_handleCloseRequest(){this.$emit("cancel",void 0,{bubbles:!1,cancelable:!0})&&(this.open=!1)}}l([r.attr({mode:"boolean"})],n.prototype,"alternate");l([r.attr({mode:"boolean"})],n.prototype,"modal");l([r.attr({mode:"boolean"})],n.prototype,"open");l([r.attr({mode:"boolean"})],n.prototype,"trailing");const m=":host{display:block}.side-drawer-app-content{block-size:100%}.control{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.control{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.control ::-webkit-scrollbar{width:4px}.control ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.control ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.control{position:fixed;z-index:1;background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);inline-size:280px;inset-block:0;overflow-y:auto}.control[part~=vvd-theme-alternate]{background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);color-scheme:var(--vvd-color-scheme)}.control.trailing{inset-inline-end:0}.control:not(.open).trailing{transform:translate(100%)}.control:not(.open):not(.trailing){transform:translate(-100%)}.control.open:not(.modal).trailing+.side-drawer-app-content{margin-inline-end:var(--side-drawer-app-content-offset, 280px)}.control.open:not(.modal):not(.trailing)+.side-drawer-app-content{margin-inline-start:var(--side-drawer-app-content-offset, 280px)}@media (prefers-reduced-motion: no-preference){.control{transition:transform .2s cubic-bezier(.4,0,.2,1)}}.scrim{background-color:var(--vvd-color-canvas-text, currentColor);opacity:.5;position:fixed;inset:0}.scrim:not(.open){display:none}",u=({modal:e,open:o,trailing:t})=>d.classNames("control",["modal",e],["open",o],["trailing",t]),h=({open:e})=>d.classNames("scrim",["open",e]),f=r.html`
1
+ "use strict";const r=require("../bundled/vivid-element.cjs"),p=require("../bundled/index.cjs"),v=require("../bundled/when.cjs"),d=require("../bundled/class-names.cjs");var b=Object.defineProperty,l=(e,o,t,i)=>{for(var a=void 0,s=e.length-1,c;s>=0;s--)(c=e[s])&&(a=c(o,t,a)||a);return a&&b(o,t,a),a};class n extends r.VividElement{constructor(){super(...arguments),this.alternate=!1,this.modal=!1,this.open=!1,this.trailing=!1}attributeChangedCallback(o,t,i){switch(super.attributeChangedCallback(o,t,i),o){case"open":this.open?this.#o():this.#e()}}#e(){this.$emit("close",void 0,{bubbles:!1})}#o(){this.$emit("open",void 0,{bubbles:!1})}_onKeydown(o){if(p.handleEscapeKeyAndStopPropogation(o)){this._handleCloseRequest();return}else return!0}_handleCloseRequest(){this.$emit("cancel",void 0,{bubbles:!1,cancelable:!0})&&(this.open=!1)}}l([r.attr({mode:"boolean"})],n.prototype,"alternate");l([r.attr({mode:"boolean"})],n.prototype,"modal");l([r.attr({mode:"boolean"})],n.prototype,"open");l([r.attr({mode:"boolean"})],n.prototype,"trailing");const m=":host{display:block}.side-drawer-app-content{block-size:100%}.control{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.control{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.control ::-webkit-scrollbar{width:4px}.control ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.control ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.control{position:fixed;z-index:1;background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);inline-size:280px;inset-block:0;overflow-y:auto}.control[part~=vvd-theme-alternate]{background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);color-scheme:var(--vvd-color-scheme)}.control.trailing{inset-inline-end:0}.control:not(.open).trailing{transform:translate(100%)}.control:not(.open):not(.trailing){transform:translate(-100%)}.control.open:not(.modal).trailing+.side-drawer-app-content{margin-inline-end:var(--side-drawer-app-content-offset, 280px)}.control.open:not(.modal):not(.trailing)+.side-drawer-app-content{margin-inline-start:var(--side-drawer-app-content-offset, 280px)}@media (prefers-reduced-motion: no-preference){.control{transition:transform .2s cubic-bezier(.4,0,.2,1)}}.scrim{background-color:var(--vvd-color-canvas-text, currentColor);opacity:.5;position:fixed;inset:0}.scrim:not(.open){display:none}",u=({modal:e,open:o,trailing:t})=>d.classNames("control",["modal",e],["open",o],["trailing",t]),h=({open:e})=>d.classNames("scrim",["open",e]),f=r.html`
2
2
  <div
3
3
  class="${u}"
4
4
  ?inert="${e=>!e.open}"
@@ -1,7 +1,7 @@
1
1
  import { V as v, a as n, h as d, c as b, d as m } from "../bundled/vivid-element.js";
2
2
  import { h } from "../bundled/index.js";
3
- import { c as p } from "../bundled/class-names.js";
4
3
  import { w as f } from "../bundled/when.js";
4
+ import { c as p } from "../bundled/class-names.js";
5
5
  var u = Object.defineProperty, l = (o, e, r, i) => {
6
6
  for (var t = void 0, s = o.length - 1, c; s >= 0; s--)
7
7
  (c = o[s]) && (t = c(e, r, t) || t);
@@ -7,44 +7,11 @@ const popup_definition = require('../unbundled/definition4.cjs');
7
7
  const icon_definition = require('../icon/definition.cjs');
8
8
  const fastElement = require('@microsoft/fast-element');
9
9
  const anchored = require('../unbundled/anchored.cjs');
10
- const formAssociated = require('../unbundled/form-associated.cjs');
11
- const localized = require('../unbundled/localized.cjs');
12
- const formElement = require('../unbundled/form-element.cjs');
10
+ const baseColorPicker = require('../unbundled/base-color-picker.cjs');
13
11
  const fastWebUtilities = require('@microsoft/fast-web-utilities');
14
12
  const index = require('../unbundled/index.cjs');
15
13
 
16
- const styles = ":host :host{display:var(--_popup-display, inline)}:host :host([slotted-anchor]){--_popup-display: contents}.palette{display:grid;padding:var(--_color-palette-spacing, 16px);gap:var(--_color-palette-gap, 12px);grid-template-columns:repeat(var(--swatches-per-row, 7),1fr)}.swatch{position:relative;padding:0;border:none;border-radius:4px;background-color:var(--swatch-color);block-size:var(--_color-swatch-size, 24px);color:var(--vvd-color-canvas);cursor:pointer;inline-size:var(--_color-swatch-size, 24px)}.swatch.contrast{color:var(--vvd-color-canvas-text)}.swatch:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--focus-inset: -3px}::part(popup-base){block-size:max-content;inline-size:max-content;max-block-size:100vh;max-inline-size:100vw;min-block-size:var(--_color-swatch-size, 24px);min-inline-size:var(--_color-swatch-size, 24px)}";
17
-
18
- function parseHexColor(input) {
19
- if (!input) return null;
20
- const hex = input.trim().replace(/^#/, "");
21
- if (/^[0-9a-fA-F]{6}$/.test(hex)) return hex.toLowerCase();
22
- return null;
23
- }
24
- function getLuminance(hexColor) {
25
- const hex = parseHexColor(hexColor);
26
- if (!hex) return 0;
27
- const r = parseInt(hex.slice(0, 2), 16) / 255;
28
- const g = parseInt(hex.slice(2, 4), 16) / 255;
29
- const b = parseInt(hex.slice(4, 6), 16) / 255;
30
- const sR = r <= 0.03928 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);
31
- const sG = g <= 0.03928 ? g / 12.92 : Math.pow((g + 0.055) / 1.055, 2.4);
32
- const sB = b <= 0.03928 ? b / 12.92 : Math.pow((b + 0.055) / 1.055, 2.4);
33
- return 0.2126 * sR + 0.7152 * sG + 0.0722 * sB;
34
- }
35
- function getContrastRatio(color1, color2) {
36
- const lum1 = getLuminance(color1);
37
- const lum2 = getLuminance(color2);
38
- const brightest = Math.max(lum1, lum2);
39
- const darkest = Math.min(lum1, lum2);
40
- return (brightest + 0.05) / (darkest + 0.05);
41
- }
42
- function getCSSCustomProperty(propertyName, element) {
43
- if (!element) {
44
- element = document.querySelector(".vvd-root") || document.documentElement;
45
- }
46
- return getComputedStyle(element).getPropertyValue(propertyName).trim();
47
- }
14
+ const styles = ".palette{display:grid;grid-template-columns:repeat(var(--swatches-per-row, 7),var(--_color-swatch-size, 24px))}.swatch{position:relative;padding:0;border:none;border-radius:4px;background-color:var(--swatch-color);block-size:var(--_color-swatch-size, 24px);color:var(--vvd-color-canvas);cursor:pointer;inline-size:var(--_color-swatch-size, 24px)}.swatch.contrast{color:var(--vvd-color-canvas-text)}.swatch:focus-visible{outline:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--focus-inset: -3px}:host :host{display:var(--_popup-display, inline)}:host :host([slotted-anchor]){--_popup-display: contents}.palette{padding:var(--_color-palette-spacing, 16px);gap:var(--_color-palette-gap, 12px)}::part(popup-base){block-size:max-content;inline-size:max-content;max-block-size:100vh;max-inline-size:100vw;min-block-size:var(--_color-swatch-size, 24px);min-inline-size:var(--_color-swatch-size, 24px)}";
48
15
 
49
16
  var __defProp = Object.defineProperty;
50
17
  var __decorateClass = (decorators, target, key, kind) => {
@@ -55,28 +22,16 @@ var __decorateClass = (decorators, target, key, kind) => {
55
22
  if (result) __defProp(target, key, result);
56
23
  return result;
57
24
  };
58
- class SimpleColorPicker extends localized.Localized(
59
- anchored.Anchored(formElement.FormElement(formAssociated.FormAssociated(vividElement.VividElement)))
60
- ) {
25
+ class SimpleColorPicker extends anchored.Anchored(baseColorPicker.BaseColorPicker(vividElement.VividElement)) {
61
26
  constructor() {
62
27
  super(...arguments);
63
- /**
64
- * @internal
65
- */
66
- this.proxy = document.createElement("input");
67
- this.open = false;
68
28
  this.placement = "top-start";
69
- this.swatches = [];
70
29
  this.swatchesPerRow = 7;
71
- /**
72
- * @internal
73
- */
74
- this._canvasColor = "";
75
30
  /**
76
31
  * @internal
77
32
  */
78
33
  this.#openPopup = () => {
79
- if (!this.open) fastElement.DOM.queueUpdate(() => this.open = true);
34
+ if (!this.open) fastElement.Updates.enqueue(() => this.open = true);
80
35
  };
81
36
  /**
82
37
  * @internal
@@ -84,7 +39,7 @@ class SimpleColorPicker extends localized.Localized(
84
39
  this.#handleAnchorKeydown = (event) => {
85
40
  if (event.key === "Enter" || event.key === " ") {
86
41
  if (!this.open) {
87
- fastElement.DOM.queueUpdate(() => this.open = true);
42
+ fastElement.Updates.enqueue(() => this.open = true);
88
43
  }
89
44
  event.preventDefault();
90
45
  }
@@ -92,7 +47,7 @@ class SimpleColorPicker extends localized.Localized(
92
47
  /**
93
48
  * @internal
94
49
  */
95
- this.#closeOnClickOutside = (e) => {
50
+ this._closeOnClickOutside = (e) => {
96
51
  const clickedOutside = !this.contains(e.target);
97
52
  const clickedOnAnchor = this._anchorEl?.contains(e.target);
98
53
  if (clickedOutside || clickedOnAnchor) this.open = false;
@@ -100,108 +55,17 @@ class SimpleColorPicker extends localized.Localized(
100
55
  /**
101
56
  * @internal
102
57
  */
103
- this.#closeOnEscape = (e) => {
58
+ this._closeOnEscape = (e) => {
104
59
  if (e.key === "Escape") {
105
60
  this.open = false;
106
61
  }
107
62
  };
108
- /**
109
- * @internal
110
- */
111
- this._handleSwatchSelection = (swatch) => {
112
- if (this.value === swatch.value) {
113
- this.value = "";
114
- } else {
115
- this.value = swatch.value;
116
- }
117
- this.$emit("change");
118
- this.open = false;
119
- };
120
- /**
121
- * @internal
122
- */
123
- this._handleSwatchKeydown = (event, swatch, index) => {
124
- const rowLength = this.swatchesPerRow;
125
- const totalCells = this.swatches.length;
126
- const currentRow = Math.floor(index / rowLength);
127
- const currentCol = index % rowLength;
128
- const totalRows = Math.ceil(totalCells / rowLength);
129
- switch (event.key) {
130
- case "ArrowRight":
131
- if (currentCol < rowLength - 1 && index + 1 < totalCells) {
132
- this.#focusSwatchByIndex(index + 1);
133
- }
134
- return false;
135
- case "ArrowLeft":
136
- if (currentCol > 0) {
137
- this.#focusSwatchByIndex(index - 1);
138
- }
139
- return false;
140
- case "ArrowDown":
141
- if (currentRow < totalRows - 1 && index + rowLength < totalCells) {
142
- this.#focusSwatchByIndex(index + rowLength);
143
- }
144
- return false;
145
- case "ArrowUp":
146
- if (currentRow > 0) {
147
- this.#focusSwatchByIndex(index - rowLength);
148
- }
149
- return false;
150
- case "PageDown": {
151
- const lastRowStart = (totalRows - 1) * rowLength;
152
- const targetIndex = Math.min(lastRowStart + currentCol, totalCells - 1);
153
- if (index !== targetIndex) {
154
- this.#focusSwatchByIndex(targetIndex);
155
- }
156
- return false;
157
- }
158
- case "PageUp": {
159
- const targetIndex = Math.min(currentCol, totalCells - 1);
160
- if (index !== targetIndex) {
161
- this.#focusSwatchByIndex(targetIndex);
162
- }
163
- return false;
164
- }
165
- case "Home":
166
- if (event.ctrlKey) {
167
- this.#focusSwatchByIndex(0);
168
- } else {
169
- this.#focusSwatchByIndex(currentRow * rowLength);
170
- }
171
- return false;
172
- case "End":
173
- if (event.ctrlKey) {
174
- this.#focusSwatchByIndex(totalCells - 1);
175
- } else {
176
- const rowEnd = Math.min(
177
- (currentRow + 1) * rowLength - 1,
178
- totalCells - 1
179
- );
180
- this.#focusSwatchByIndex(rowEnd);
181
- }
182
- return false;
183
- case "Enter":
184
- case " ":
185
- this._handleSwatchSelection(swatch);
186
- this.#returnFocusToAnchor();
187
- return false;
188
- case "Escape":
189
- this.open = false;
190
- this.#returnFocusToAnchor();
191
- return false;
192
- case "Tab":
193
- this.open = false;
194
- return true;
195
- default:
196
- return true;
197
- }
198
- };
199
63
  }
200
64
  /**
201
65
  * @internal
202
66
  */
203
67
  openChanged() {
204
- this.#updateListeners();
68
+ this._updateListeners();
205
69
  if (this._anchorEl) {
206
70
  this.#updateAnchor(this._anchorEl);
207
71
  }
@@ -212,43 +76,40 @@ class SimpleColorPicker extends localized.Localized(
212
76
  (swatch) => swatch.value === this.value
213
77
  );
214
78
  const targetIndex = selectedIndex >= 0 ? selectedIndex : 0;
215
- this.#focusSwatchByIndex(targetIndex);
79
+ this._focusSwatchByIndex(targetIndex);
216
80
  });
217
81
  }
218
82
  }
83
+ /**
84
+ * @internal
85
+ */
86
+ _getRowLength() {
87
+ return this.swatchesPerRow;
88
+ }
219
89
  connectedCallback() {
220
90
  super.connectedCallback();
221
- this.#updateListeners();
222
- this._refreshCanvasColor();
91
+ this._updateListeners();
223
92
  }
224
93
  disconnectedCallback() {
225
94
  super.disconnectedCallback();
226
- this.#updateListeners();
95
+ this._updateListeners();
227
96
  }
228
97
  /**
229
98
  * @internal
230
99
  */
231
- #updateListeners() {
232
- document.removeEventListener("click", this.#closeOnClickOutside);
233
- document.removeEventListener("keydown", this.#closeOnEscape);
100
+ _updateListeners() {
101
+ document.removeEventListener("click", this._closeOnClickOutside);
102
+ document.removeEventListener("keydown", this._closeOnEscape);
234
103
  if (this.open && this.isConnected) {
235
- document.addEventListener("click", this.#closeOnClickOutside);
236
- document.addEventListener("keydown", this.#closeOnEscape);
104
+ document.addEventListener("click", this._closeOnClickOutside);
105
+ document.addEventListener("keydown", this._closeOnEscape);
237
106
  }
238
107
  }
239
108
  /**
240
109
  * @internal
241
110
  */
242
- _refreshCanvasColor() {
243
- this._canvasColor = getCSSCustomProperty("--vvd-color-canvas", this);
244
- }
245
- /**
246
- * @internal
247
- */
248
- _applyContrastClass(swatchColor, threshold = 3) {
249
- if (!swatchColor || !this._canvasColor) return false;
250
- const ratio = getContrastRatio(swatchColor, this._canvasColor);
251
- return ratio < threshold;
111
+ _getFocusReturnEl() {
112
+ return this._anchorEl ?? null;
252
113
  }
253
114
  /**
254
115
  * @internal
@@ -285,32 +146,10 @@ class SimpleColorPicker extends localized.Localized(
285
146
  }
286
147
  #openPopup;
287
148
  #handleAnchorKeydown;
288
- #closeOnClickOutside;
289
- #closeOnEscape;
290
- /**
291
- * @internal
292
- */
293
- #focusSwatchByIndex(index) {
294
- if (index < 0 || index >= this.swatches.length) return;
295
- const element = this.shadowRoot?.querySelectorAll('[role="gridcell"]')?.[index];
296
- element?.focus();
297
- }
298
- /**
299
- * @internal
300
- */
301
- #returnFocusToAnchor() {
302
- fastElement.DOM.queueUpdate(() => this._anchorEl?.focus());
303
- }
304
149
  }
305
- __decorateClass([
306
- fastElement.attr({ mode: "boolean" })
307
- ], SimpleColorPicker.prototype, "open");
308
150
  __decorateClass([
309
151
  fastElement.attr({ mode: "fromView" })
310
152
  ], SimpleColorPicker.prototype, "placement");
311
- __decorateClass([
312
- fastElement.observable
313
- ], SimpleColorPicker.prototype, "swatches");
314
153
  __decorateClass([
315
154
  fastElement.attr({
316
155
  attribute: "swatches-per-row",
@@ -340,39 +179,13 @@ const SimpleColorPickerTemplate = (context) => {
340
179
  }}"
341
180
  >
342
181
  <div class="palette" role="grid"
343
- aria-rowcount="${(x) => Math.ceil(x.swatches.length / x.swatchesPerRow)}"
344
- aria-colcount="${(x) => x.swatchesPerRow}"
345
- style="--swatches-per-row: ${(x) => x.swatchesPerRow};"
182
+ aria-rowcount="${(x) => Math.ceil(x.swatches.length / x._getRowLength())}"
183
+ aria-colcount="${(x) => x._getRowLength()}"
184
+ style="--swatches-per-row: ${(x) => x._getRowLength()};"
346
185
  aria-label="${(x) => x.locale.simpleColorPicker.colorPaletteLabel}">
347
186
  ${fastElement.repeat(
348
187
  (x) => x.swatches,
349
- fastElement.html`
350
- <button
351
- class="swatch ${(x, c) => fastWebUtilities.classNames(
352
- c.parent.value === x.value ? "selected" : "",
353
- c.parent._applyContrastClass(x.value) ? "contrast" : ""
354
- )}"
355
- role="gridcell"
356
- style="--swatch-color: ${(x) => x.value};"
357
- tabindex="${(x, c) => c.index === 0 ? "0" : "-1"}"
358
- aria-label="${(x, c) => c.parent.locale.simpleColorPicker.colorSwatchLabel(
359
- x.value,
360
- x.label,
361
- c.parent.value === x.value
362
- )}"
363
- @click="${(x, c) => c.parent._handleSwatchSelection(x)}"
364
- @keydown="${(x, c) => c.parent._handleSwatchKeydown(
365
- c.event,
366
- x,
367
- c.index
368
- )}"
369
- >
370
- ${fastElement.when(
371
- (x, c) => c.parent.value === x.value,
372
- fastElement.html`<${iconTag} size="-6" name="check-solid" aria-hidden="true"></${iconTag}>`
373
- )}
374
- </button>
375
- `,
188
+ (x) => x._renderColorSwatch(iconTag),
376
189
  { positioning: true }
377
190
  )}
378
191
  </div>