@vonage/vivid 5.24.0 → 5.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (331) hide show
  1. package/README.md +1 -1
  2. package/avatar/index.cjs +10 -10
  3. package/avatar/index.js +4 -3
  4. package/breadcrumb-item/index.cjs +9 -5
  5. package/breadcrumb-item/index.js +11 -6
  6. package/bundled/affix.cjs +1 -1
  7. package/bundled/affix.js +1 -1
  8. package/bundled/definition10.cjs +2 -1
  9. package/bundled/definition10.js +3 -2
  10. package/bundled/definition11.cjs +4 -4
  11. package/bundled/definition11.js +4 -3
  12. package/bundled/definition12.cjs +1 -1
  13. package/bundled/definition12.js +1 -0
  14. package/bundled/definition15.cjs +5 -5
  15. package/bundled/definition15.js +4 -3
  16. package/bundled/definition17.cjs +7 -7
  17. package/bundled/definition17.js +22 -109
  18. package/bundled/definition18.cjs +3 -3
  19. package/bundled/definition18.js +9 -31
  20. package/bundled/definition19.cjs +19 -19
  21. package/bundled/definition19.js +3 -2
  22. package/bundled/definition21.cjs +8 -8
  23. package/bundled/definition21.js +5 -4
  24. package/bundled/definition22.cjs +2 -2
  25. package/bundled/definition22.js +2 -2
  26. package/bundled/definition24.cjs +4 -4
  27. package/bundled/definition24.js +4 -3
  28. package/bundled/definition25.cjs +3 -3
  29. package/bundled/definition25.js +32 -28
  30. package/bundled/definition3.cjs +5 -5
  31. package/bundled/definition3.js +10 -40
  32. package/bundled/definition4.cjs +6 -6
  33. package/bundled/definition4.js +4 -3
  34. package/bundled/definition6.cjs +11 -11
  35. package/bundled/definition6.js +4 -3
  36. package/bundled/definition9.cjs +12 -6
  37. package/bundled/definition9.js +66 -43
  38. package/bundled/extractOptions.cjs +1 -1
  39. package/bundled/extractOptions.js +2 -2
  40. package/bundled/icon.cjs +1 -0
  41. package/bundled/icon.js +34 -0
  42. package/bundled/listbox.cjs +1 -1
  43. package/bundled/listbox.js +5 -2
  44. package/bundled/mixins.cjs +8 -8
  45. package/bundled/mixins.js +4 -3
  46. package/bundled/optgroup.cjs +1 -0
  47. package/bundled/optgroup.js +27 -0
  48. package/bundled/option.cjs +1 -0
  49. package/bundled/option.js +93 -0
  50. package/bundled/vivid-element.cjs +1 -1
  51. package/bundled/vivid-element.js +1 -1
  52. package/card/index.cjs +22 -22
  53. package/card/index.js +4 -3
  54. package/color-picker/index.cjs +18 -18
  55. package/color-picker/index.js +4 -3
  56. package/combobox/index.cjs +7 -7
  57. package/combobox/index.js +4 -2
  58. package/custom-elements.json +4159 -3847
  59. package/data-grid/index.cjs +24 -24
  60. package/data-grid/index.js +4 -3
  61. package/dial-pad/index.cjs +21 -21
  62. package/dial-pad/index.js +4 -3
  63. package/dialog/index.cjs +14 -14
  64. package/dialog/index.js +4 -3
  65. package/empty-state/index.cjs +3 -3
  66. package/empty-state/index.js +4 -3
  67. package/file-picker/index.cjs +7 -7
  68. package/file-picker/index.js +4 -3
  69. package/icon/definition.cjs +2 -1
  70. package/icon/definition.js +2 -1
  71. package/index.cjs +148 -141
  72. package/index.js +41 -37
  73. package/lib/accordion-item/accordion-item.d.ts +1 -0
  74. package/lib/combobox/combobox.d.ts +1 -1
  75. package/lib/components.d.ts +1 -0
  76. package/lib/dial-pad/dial-pad.d.ts +0 -1
  77. package/lib/listbox/definition.d.ts +3 -0
  78. package/lib/listbox/index.d.ts +1 -0
  79. package/lib/listbox/listbox.d.ts +1302 -0
  80. package/lib/listbox/listbox.template.d.ts +3 -0
  81. package/lib/listbox/variations.browser-spec.d.ts +1 -0
  82. package/lib/menu/menu.d.ts +0 -1
  83. package/lib/number-field/number-field.d.ts +0 -1
  84. package/lib/rich-text-editor/rte/features/base.d.ts +1 -0
  85. package/lib/rich-text-editor/rte/utils/default-textblock.d.ts +2 -2
  86. package/lib/tag-name-map.d.ts +2 -1
  87. package/lib/text-field/text-field.d.ts +1 -0
  88. package/lib/toggletip/toggletip.d.ts +1 -0
  89. package/lib/tooltip/tooltip.d.ts +1 -0
  90. package/listbox/definition.cjs +5 -0
  91. package/listbox/definition.js +2 -0
  92. package/listbox/index.cjs +11 -0
  93. package/listbox/index.js +540 -0
  94. package/nav/definition.cjs +1 -1
  95. package/nav/definition.js +1 -1
  96. package/nav-disclosure/definition.cjs +1 -1
  97. package/nav-disclosure/definition.js +1 -1
  98. package/nav-disclosure/index.cjs +4 -4
  99. package/nav-disclosure/index.js +4 -3
  100. package/nav-item/definition.cjs +1 -1
  101. package/nav-item/definition.js +1 -1
  102. package/note/definition.cjs +1 -1
  103. package/note/definition.js +1 -1
  104. package/number-field/definition.cjs +1 -1
  105. package/number-field/definition.js +1 -1
  106. package/optgroup/definition.cjs +2 -1
  107. package/optgroup/definition.js +2 -1
  108. package/option/definition.cjs +2 -1
  109. package/option/definition.js +2 -1
  110. package/package.json +8 -7
  111. package/pagination/definition.cjs +1 -1
  112. package/pagination/definition.js +1 -1
  113. package/platform-switch/definition.cjs +1 -1
  114. package/platform-switch/definition.js +1 -1
  115. package/popover/definition.cjs +1 -1
  116. package/popover/definition.js +1 -1
  117. package/popover/index.cjs +5 -5
  118. package/popover/index.js +4 -3
  119. package/progress/definition.cjs +1 -1
  120. package/progress/definition.js +1 -1
  121. package/radio/definition.cjs +1 -1
  122. package/radio/definition.js +1 -1
  123. package/radio-group/definition.cjs +1 -1
  124. package/radio-group/definition.js +1 -1
  125. package/range-slider/definition.cjs +1 -1
  126. package/range-slider/definition.js +1 -1
  127. package/rich-text-editor/definition.cjs +1 -1
  128. package/rich-text-editor/definition.js +1 -1
  129. package/rich-text-editor/index.cjs +13 -13
  130. package/rich-text-editor/index.js +22 -19
  131. package/rich-text-view/definition.cjs +1 -1
  132. package/rich-text-view/definition.js +1 -1
  133. package/searchable-select/definition.cjs +1 -1
  134. package/searchable-select/definition.js +1 -1
  135. package/searchable-select/index.cjs +23 -23
  136. package/searchable-select/index.js +10 -7
  137. package/select/definition.cjs +1 -1
  138. package/select/definition.js +1 -1
  139. package/selectable-box/definition.cjs +1 -1
  140. package/selectable-box/definition.js +1 -1
  141. package/shared/listbox/commands.d.ts +17 -0
  142. package/shared/listbox/move.d.ts +6 -0
  143. package/shared/listbox/options.d.ts +12 -0
  144. package/shared/listbox/selection.d.ts +28 -0
  145. package/shared/listbox/state.d.ts +26 -0
  146. package/shared/listbox/typeahead.d.ts +8 -0
  147. package/shared/listbox/with-options-filter.d.ts +440 -0
  148. package/shared/listbox/with-options.d.ts +862 -0
  149. package/side-drawer/definition.cjs +1 -1
  150. package/side-drawer/definition.js +1 -1
  151. package/simple-color-picker/definition.cjs +1 -1
  152. package/simple-color-picker/definition.js +1 -1
  153. package/simple-color-picker/index.cjs +6 -6
  154. package/simple-color-picker/index.js +4 -3
  155. package/split-button/definition.cjs +1 -1
  156. package/split-button/definition.js +1 -1
  157. package/status/definition.cjs +1 -1
  158. package/status/definition.js +1 -1
  159. package/switch/definition.cjs +1 -1
  160. package/switch/definition.js +1 -1
  161. package/tab/definition.cjs +1 -1
  162. package/tab/definition.js +1 -1
  163. package/tab-panel/definition.cjs +1 -1
  164. package/tab-panel/definition.js +1 -1
  165. package/table/definition.cjs +1 -1
  166. package/table/definition.js +1 -1
  167. package/table/index.cjs +13 -13
  168. package/table/index.js +4 -3
  169. package/tabs/definition.cjs +1 -1
  170. package/tabs/definition.js +1 -1
  171. package/tag/definition.cjs +1 -1
  172. package/tag/definition.js +1 -1
  173. package/tag/index.cjs +11 -11
  174. package/tag/index.js +4 -3
  175. package/tag-group/definition.cjs +1 -1
  176. package/tag-group/definition.js +1 -1
  177. package/text-area/definition.cjs +1 -1
  178. package/text-area/definition.js +1 -1
  179. package/time-picker/definition.cjs +1 -1
  180. package/time-picker/definition.js +1 -1
  181. package/tree-item/definition.cjs +1 -1
  182. package/tree-item/definition.js +1 -1
  183. package/tree-view/definition.cjs +1 -1
  184. package/tree-view/definition.js +1 -1
  185. package/unbundled/affix.cjs +2 -2
  186. package/unbundled/affix.js +1 -1
  187. package/unbundled/base-progress.cjs +1 -1
  188. package/unbundled/base-progress.js +1 -1
  189. package/unbundled/button.cjs +2 -2
  190. package/unbundled/button.js +2 -2
  191. package/unbundled/definition.cjs +2 -65
  192. package/unbundled/definition.js +4 -61
  193. package/unbundled/definition11.cjs +4 -3
  194. package/unbundled/definition11.js +3 -2
  195. package/unbundled/definition12.cjs +3 -2
  196. package/unbundled/definition12.js +3 -2
  197. package/unbundled/definition14.cjs +2 -1
  198. package/unbundled/definition14.js +2 -1
  199. package/unbundled/definition17.cjs +9 -4
  200. package/unbundled/definition17.js +9 -4
  201. package/unbundled/definition2.cjs +7 -2
  202. package/unbundled/definition2.js +8 -3
  203. package/unbundled/definition21.cjs +2 -1
  204. package/unbundled/definition21.js +2 -1
  205. package/unbundled/definition23.cjs +2 -1
  206. package/unbundled/definition23.js +2 -1
  207. package/unbundled/definition24.cjs +6 -4
  208. package/unbundled/definition24.js +6 -4
  209. package/unbundled/definition25.cjs +2 -1
  210. package/unbundled/definition25.js +2 -1
  211. package/unbundled/definition26.cjs +7 -4
  212. package/unbundled/definition26.js +7 -4
  213. package/unbundled/definition27.cjs +39 -5
  214. package/unbundled/definition27.js +40 -6
  215. package/unbundled/definition28.cjs +4 -3
  216. package/unbundled/definition28.js +4 -3
  217. package/unbundled/definition29.cjs +5 -168
  218. package/unbundled/definition29.js +11 -162
  219. package/unbundled/definition30.cjs +2 -63
  220. package/unbundled/definition30.js +5 -54
  221. package/unbundled/definition31.cjs +5 -3
  222. package/unbundled/definition31.js +5 -3
  223. package/unbundled/definition32.cjs +2 -1
  224. package/unbundled/definition32.js +2 -1
  225. package/unbundled/definition35.cjs +2 -1
  226. package/unbundled/definition35.js +2 -1
  227. package/unbundled/definition37.cjs +1 -1
  228. package/unbundled/definition37.js +1 -1
  229. package/unbundled/definition39.cjs +1 -1
  230. package/unbundled/definition39.js +1 -1
  231. package/unbundled/definition40.cjs +4 -2
  232. package/unbundled/definition40.js +4 -2
  233. package/unbundled/definition41.cjs +11 -6
  234. package/unbundled/definition41.js +11 -6
  235. package/unbundled/definition42.cjs +5 -4
  236. package/unbundled/definition42.js +5 -4
  237. package/unbundled/definition44.cjs +3 -2
  238. package/unbundled/definition44.js +3 -2
  239. package/unbundled/definition45.cjs +2 -2
  240. package/unbundled/definition45.js +2 -2
  241. package/unbundled/definition49.cjs +583 -79
  242. package/unbundled/definition49.js +579 -76
  243. package/unbundled/definition50.cjs +71 -33
  244. package/unbundled/definition50.js +67 -29
  245. package/unbundled/definition51.cjs +54 -23
  246. package/unbundled/definition51.js +52 -18
  247. package/unbundled/definition52.cjs +23 -39
  248. package/unbundled/definition52.js +17 -36
  249. package/unbundled/definition53.cjs +29 -314
  250. package/unbundled/definition53.js +27 -312
  251. package/unbundled/definition54.cjs +302 -195
  252. package/unbundled/definition54.js +298 -191
  253. package/unbundled/definition55.cjs +210 -40
  254. package/unbundled/definition55.js +206 -36
  255. package/unbundled/definition56.cjs +42 -266
  256. package/unbundled/definition56.js +38 -262
  257. package/unbundled/definition57.cjs +270 -50
  258. package/unbundled/definition57.js +267 -46
  259. package/unbundled/definition58.cjs +48 -146
  260. package/unbundled/definition58.js +47 -143
  261. package/unbundled/definition59.cjs +127 -225
  262. package/unbundled/definition59.js +122 -223
  263. package/unbundled/definition6.cjs +2 -1
  264. package/unbundled/definition6.js +2 -1
  265. package/unbundled/definition60.cjs +199 -418
  266. package/unbundled/definition60.js +196 -415
  267. package/unbundled/definition61.cjs +442 -3738
  268. package/unbundled/definition61.js +432 -3565
  269. package/unbundled/definition62.cjs +3717 -730
  270. package/unbundled/definition62.js +3544 -720
  271. package/unbundled/definition63.cjs +770 -97
  272. package/unbundled/definition63.js +767 -94
  273. package/unbundled/definition64.cjs +100 -999
  274. package/unbundled/definition64.js +98 -994
  275. package/unbundled/definition65.cjs +991 -93
  276. package/unbundled/definition65.js +985 -90
  277. package/unbundled/definition66.cjs +109 -73
  278. package/unbundled/definition66.js +105 -63
  279. package/unbundled/definition67.cjs +69 -155
  280. package/unbundled/definition67.js +60 -152
  281. package/unbundled/definition68.cjs +155 -119
  282. package/unbundled/definition68.js +151 -115
  283. package/unbundled/definition69.cjs +124 -49
  284. package/unbundled/definition69.js +120 -45
  285. package/unbundled/definition70.cjs +51 -85
  286. package/unbundled/definition70.js +50 -81
  287. package/unbundled/definition71.cjs +91 -19
  288. package/unbundled/definition71.js +86 -14
  289. package/unbundled/definition72.cjs +20 -87
  290. package/unbundled/definition72.js +14 -84
  291. package/unbundled/definition73.cjs +77 -294
  292. package/unbundled/definition73.js +72 -217
  293. package/unbundled/definition74.cjs +289 -311
  294. package/unbundled/definition74.js +219 -306
  295. package/unbundled/definition75.cjs +326 -26
  296. package/unbundled/definition75.js +317 -23
  297. package/unbundled/definition76.cjs +27 -122
  298. package/unbundled/definition76.js +22 -118
  299. package/unbundled/definition77.cjs +105 -232
  300. package/unbundled/definition77.js +101 -228
  301. package/unbundled/definition78.cjs +259 -26
  302. package/unbundled/definition78.js +249 -23
  303. package/unbundled/definition79.cjs +29 -148
  304. package/unbundled/definition79.js +27 -133
  305. package/unbundled/definition80.cjs +118 -173
  306. package/unbundled/definition80.js +109 -169
  307. package/unbundled/definition81.cjs +181 -477
  308. package/unbundled/definition81.js +176 -471
  309. package/unbundled/definition82.cjs +517 -0
  310. package/unbundled/definition82.js +497 -0
  311. package/unbundled/extractOptions.cjs +5 -5
  312. package/unbundled/extractOptions.js +2 -2
  313. package/unbundled/icon.cjs +67 -0
  314. package/unbundled/icon.js +61 -0
  315. package/unbundled/linkable.cjs +1 -1
  316. package/unbundled/linkable.js +1 -1
  317. package/unbundled/listbox.cjs +8 -3
  318. package/unbundled/listbox.js +7 -2
  319. package/unbundled/mixins.cjs +2 -1
  320. package/unbundled/mixins.js +2 -1
  321. package/unbundled/optgroup.cjs +66 -0
  322. package/unbundled/optgroup.js +54 -0
  323. package/unbundled/option.cjs +176 -0
  324. package/unbundled/option.js +164 -0
  325. package/unbundled/time-selection-picker.template.cjs +1 -1
  326. package/unbundled/time-selection-picker.template.js +1 -1
  327. package/unbundled/vivid-element.cjs +1 -1
  328. package/unbundled/vivid-element.js +1 -1
  329. package/video-player/definition.cjs +1 -1
  330. package/video-player/definition.js +1 -1
  331. package/vivid.api.json +336 -193
@@ -1,195 +1,109 @@
1
1
  require("./chunk.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
- const require_definition = require("./definition.cjs");
4
3
  const require_decorate = require("./decorate.cjs");
5
4
  const require_dialog = require("./dialog.cjs");
6
- const require_definition$1 = require("./definition9.cjs");
7
- const require_anchored = require("./anchored.cjs");
8
- const require_definition$2 = require("./definition27.cjs");
9
- const require_base_color_picker = require("./base-color-picker.cjs");
10
5
  let _microsoft_fast_element = require("@microsoft/fast-element");
11
6
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
12
- //#region src/lib/simple-color-picker/simple-color-picker.scss?inline
13
- var simple_color_picker_default = ".palette{grid-template-columns:repeat(var(--swatches-per-row,7), var(--_color-swatch-size,24px));display:grid}.swatch{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);border-radius:4px;padding:0;position:relative}.swatch:not(.contrast){border:none}.swatch.contrast{border:1px solid var(--vvd-color-neutral-400);color:var(--vvd-color-canvas-text)}.swatch:focus-visible{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:none;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;max-block-size:100vh;inline-size:max-content;max-inline-size:100vw;min-block-size:var(--_color-swatch-size,24px);min-inline-size:var(--_color-swatch-size,24px)}";
14
- //#endregion
15
- //#region src/lib/simple-color-picker/simple-color-picker.ts
7
+ //#region src/lib/side-drawer/side-drawer.ts
16
8
  /**
17
9
  * @public
18
- * @component simple-color-picker
19
- * @slot anchor - Slot for attaching the toggle button
20
- * @event {CustomEvent<undefined>} change - Fires when the value changes
21
- * @event {Event} input - Fires when the value of the element changes.
22
- * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
10
+ * @component side-drawer
11
+ * @slot - Sets assigned nodes to the Side Drawer itself.
12
+ * @slot app-content - Sets assigned nodes to the main application content that the Side Drawer opens alongside.
13
+ * @event {CustomEvent<undefined>} close - Fired when the side drawer is closed.
14
+ * @event {CustomEvent<undefined>} open - Fired when the side drawer is opened.
15
+ * @event {CustomEvent<undefined>} cancel - Fired when the user requests to close the side-drawer. You can prevent the side drawer from closing by calling `.preventDefault()` on the event.
23
16
  */
24
- var SimpleColorPicker = class extends require_anchored.Anchored(require_base_color_picker.BaseColorPicker(require_vivid_element.VividElement)) {
17
+ var SideDrawer = class extends require_vivid_element.VividElement {
25
18
  constructor(..._args) {
26
19
  super(..._args);
27
- this.placement = "top-start";
28
- this.swatchesPerRow = 7;
29
- this.#openedByKeyboard = false;
30
- this.#openPopup = () => {
31
- if (!this.open) {
32
- this.#openedByKeyboard = false;
33
- _microsoft_fast_element.Updates.enqueue(() => this.open = true);
34
- }
35
- };
36
- this.#handleAnchorKeydown = (event) => {
37
- /* v8 ignore next -- @preserve */
38
- if (event.key === "Enter" || event.key === " ") {
39
- if (!this.open) {
40
- this.#openedByKeyboard = true;
41
- _microsoft_fast_element.Updates.enqueue(() => this.open = true);
42
- }
43
- event.preventDefault();
44
- }
45
- };
46
- this._closeOnClickOutside = (e) => {
47
- const clickedOutside = !this.contains(e.target);
48
- const clickedOnAnchor = this._anchorEl?.contains(e.target);
49
- /* v8 ignore else -- @preserve */
50
- if (clickedOutside || clickedOnAnchor) this.open = false;
51
- };
52
- this._closeOnEscape = (e) => {
53
- /* v8 ignore else -- @preserve */
54
- if (e.key === "Escape") this.open = false;
55
- };
56
- }
57
- /** @internal */
58
- openChanged(_oldValue, newValue) {
59
- this._updateListeners();
60
- if (this._anchorEl) this.#updateAnchor(this._anchorEl);
61
- if (newValue && this.isConnected) requestAnimationFrame(() => {
62
- this._refreshCanvasColor();
63
- if (this.#openedByKeyboard) {
64
- const selectedIndex = this.swatches.findIndex((swatch) => swatch.value === this.value);
65
- const targetIndex = selectedIndex >= 0 ? selectedIndex : 0;
66
- this._focusSwatchByIndex(targetIndex);
67
- }
68
- this.#openedByKeyboard = false;
69
- });
70
- }
71
- /** @internal */
72
- _getRowLength() {
73
- return this.swatchesPerRow;
20
+ this.alternate = false;
21
+ this.modal = false;
22
+ this.open = false;
23
+ this.trailing = false;
74
24
  }
75
- connectedCallback() {
76
- super.connectedCallback();
77
- this._updateListeners();
78
- }
79
- disconnectedCallback() {
80
- super.disconnectedCallback();
81
- this._updateListeners();
82
- }
83
- /** @internal */
84
- _updateListeners() {
85
- document.removeEventListener("click", this._closeOnClickOutside);
86
- document.removeEventListener("keydown", this._closeOnEscape);
87
- if (this.open && this.isConnected) {
88
- document.addEventListener("click", this._closeOnClickOutside);
89
- document.addEventListener("keydown", this._closeOnEscape);
25
+ attributeChangedCallback(name, oldValue, newValue) {
26
+ super.attributeChangedCallback(name, oldValue, newValue);
27
+ switch (name) {
28
+ case "open": if (this.open) this.#open();
29
+ else this.#close();
90
30
  }
91
31
  }
92
- /** @internal */
93
- _getFocusReturnEl() {
94
- return this._anchorEl ?? null;
32
+ #close() {
33
+ this.$emit("close", void 0, { bubbles: false });
95
34
  }
96
- /** @internal */
97
- _anchorElChanged(oldValue, newValue) {
98
- if (oldValue) this.#cleanupAnchor(oldValue);
99
- if (newValue) this.#setupAnchor(newValue);
100
- }
101
- /** @internal */
102
- #updateAnchor(a) {
103
- a.setAttribute("aria-expanded", this.open.toString());
104
- a.setAttribute("data-expanded", this.open.toString());
35
+ #open() {
36
+ this.$emit("open", void 0, { bubbles: false });
105
37
  }
106
38
  /** @internal */
107
- #setupAnchor(a) {
108
- this.#updateAnchor(a);
109
- a.addEventListener("click", this.#openPopup, true);
110
- a.addEventListener("keydown", this.#handleAnchorKeydown);
111
- a.setAttribute("aria-haspopup", "true");
39
+ _onKeydown(event) {
40
+ if (require_dialog.handleEscapeKeyAndStopPropogation(event)) {
41
+ this._handleCloseRequest();
42
+ return;
43
+ } else return true;
112
44
  }
113
45
  /** @internal */
114
- #cleanupAnchor(a) {
115
- a.removeEventListener("click", this.#openPopup, true);
116
- a.removeEventListener("keydown", this.#handleAnchorKeydown);
117
- a.removeAttribute("aria-expanded");
118
- a.removeAttribute("data-expanded");
119
- a.removeAttribute("aria-haspopup");
46
+ _handleCloseRequest() {
47
+ if (this.$emit("cancel", void 0, {
48
+ bubbles: false,
49
+ cancelable: true
50
+ })) this.open = false;
120
51
  }
121
- /** @internal */
122
- #openedByKeyboard;
123
- /** @internal */
124
- #openPopup;
125
- /** @internal */
126
- #handleAnchorKeydown;
127
52
  };
128
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "fromView" })], SimpleColorPicker.prototype, "placement", void 0);
129
- require_decorate.__decorate([(0, _microsoft_fast_element.attr)({
130
- attribute: "swatches-per-row",
131
- mode: "fromView",
132
- converter: _microsoft_fast_element.nullableNumberConverter
133
- })], SimpleColorPicker.prototype, "swatchesPerRow", void 0);
53
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], SideDrawer.prototype, "alternate", void 0);
54
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], SideDrawer.prototype, "modal", void 0);
55
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], SideDrawer.prototype, "open", void 0);
56
+ require_decorate.__decorate([(0, _microsoft_fast_element.attr)({ mode: "boolean" })], SideDrawer.prototype, "trailing", void 0);
134
57
  //#endregion
135
- //#region src/lib/simple-color-picker/simple-color-picker.template.ts
136
- var getClasses = (_) => (0, _microsoft_fast_web_utilities.classNames)("control");
137
- var SimpleColorPickerTemplate = (context) => {
138
- const popupTag = context.tagFor(require_definition$1.Popup);
139
- const iconTag = context.tagFor(require_definition.Icon);
140
- const tooltipTag = context.tagFor(require_definition$2.Tooltip);
141
- return _microsoft_fast_element.html`
142
- ${require_anchored.anchorSlotTemplateFactory()}
143
- <${popupTag}
144
- class="${getClasses}"
145
- :anchor="${(x) => x._anchorEl}"
146
- :open="${(x) => x.open}"
147
- placement="${(x) => x.placement}"
148
- offset="4"
149
- @keydown="${(x, { event }) => {
150
- if (x.open && require_dialog.handleEscapeKeyAndStopPropogation(event)) return false;
151
- return true;
152
- }}"
153
- >
154
- <div class="palette" role="grid"
155
- aria-rowcount="${(x) => Math.ceil(x.swatches.length / x._getRowLength())}"
156
- aria-colcount="${(x) => x._getRowLength()}"
157
- style="--swatches-per-row: ${(x) => x._getRowLength()};"
158
- aria-label="${(x) => x.locale.simpleColorPicker.colorPaletteLabel}">
159
- ${(0, _microsoft_fast_element.repeat)((x) => x.swatches, (x) => x._renderColorSwatch(iconTag, tooltipTag), { positioning: true })}
160
- </div>
161
- </${popupTag}>
162
- `;
163
- };
58
+ //#region src/lib/side-drawer/side-drawer.scss?inline
59
+ var side_drawer_default = ":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%);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{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.control{z-index:1;background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);inline-size:280px;position:fixed;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}";
60
+ //#endregion
61
+ //#region src/lib/side-drawer/side-drawer.template.ts
62
+ var sideDrawerTemplate = _microsoft_fast_element.html`
63
+ <div
64
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("control", ["modal", x.modal], ["open", x.open], ["trailing", x.trailing])}"
65
+ ?inert="${(x) => !x.open}"
66
+ part="base ${(x) => x.alternate ? "vvd-theme-alternate" : ""}"
67
+ @keydown="${(x, c) => x._onKeydown(c.event)}"
68
+ >
69
+ <slot></slot>
70
+ </div>
71
+
72
+ <div class="side-drawer-app-content" ?inert="${(x) => x.open && x.modal}">
73
+ <slot name="app-content"></slot>
74
+ </div>
75
+
76
+ ${(0, _microsoft_fast_element.when)((x) => x.modal, _microsoft_fast_element.html`<div
77
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("scrim", ["open", x.open])}"
78
+ @click="${(x) => x._handleCloseRequest()}"
79
+ ></div>`)}
80
+ `;
164
81
  //#endregion
165
- //#region src/lib/simple-color-picker/definition.ts
166
- var simpleColorPickerDefinition = require_vivid_element.defineVividComponent("simple-color-picker", SimpleColorPicker, SimpleColorPickerTemplate, [
167
- require_definition$1.popupDefinition,
168
- require_definition.iconDefinition,
169
- require_definition$2.tooltipDefinition
170
- ], { styles: simple_color_picker_default });
82
+ //#region src/lib/side-drawer/definition.ts
83
+ /** @internal */
84
+ var sideDrawerDefinition = require_vivid_element.defineVividComponent("side-drawer", SideDrawer, sideDrawerTemplate, [], { styles: side_drawer_default });
171
85
  /**
172
- * Registers the simple-color-picker element with the design system.
86
+ * Registers the side-drawer elements with the design system.
173
87
  *
174
88
  * @param prefix - the prefix to use for the component name
175
89
  */
176
- var registerSimpleColorPicker = require_vivid_element.createRegisterFunction(simpleColorPickerDefinition);
90
+ var registerSideDrawer = require_vivid_element.createRegisterFunction(sideDrawerDefinition);
177
91
  //#endregion
178
- Object.defineProperty(exports, "SimpleColorPicker", {
92
+ Object.defineProperty(exports, "SideDrawer", {
179
93
  enumerable: true,
180
94
  get: function() {
181
- return SimpleColorPicker;
95
+ return SideDrawer;
182
96
  }
183
97
  });
184
- Object.defineProperty(exports, "registerSimpleColorPicker", {
98
+ Object.defineProperty(exports, "registerSideDrawer", {
185
99
  enumerable: true,
186
100
  get: function() {
187
- return registerSimpleColorPicker;
101
+ return registerSideDrawer;
188
102
  }
189
103
  });
190
- Object.defineProperty(exports, "simpleColorPickerDefinition", {
104
+ Object.defineProperty(exports, "sideDrawerDefinition", {
191
105
  enumerable: true,
192
106
  get: function() {
193
- return simpleColorPickerDefinition;
107
+ return sideDrawerDefinition;
194
108
  }
195
109
  });
@@ -1,177 +1,85 @@
1
1
  import { d as createRegisterFunction, t as VividElement, u as defineVividComponent } from "./vivid-element.js";
2
- import { r as Icon, t as iconDefinition } from "./definition.js";
3
2
  import { t as __decorate } from "./decorate.js";
4
3
  import { t as handleEscapeKeyAndStopPropogation } from "./dialog.js";
5
- import { i as Popup, t as popupDefinition } from "./definition9.js";
6
- import { n as anchorSlotTemplateFactory, t as Anchored } from "./anchored.js";
7
- import { n as tooltipDefinition, r as Tooltip } from "./definition27.js";
8
- import { t as BaseColorPicker } from "./base-color-picker.js";
9
- import { Updates, attr, html, nullableNumberConverter, repeat } from "@microsoft/fast-element";
4
+ import { attr, html, when } from "@microsoft/fast-element";
10
5
  import { classNames } from "@microsoft/fast-web-utilities";
11
- //#region src/lib/simple-color-picker/simple-color-picker.scss?inline
12
- var simple_color_picker_default = ".palette{grid-template-columns:repeat(var(--swatches-per-row,7), var(--_color-swatch-size,24px));display:grid}.swatch{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);border-radius:4px;padding:0;position:relative}.swatch:not(.contrast){border:none}.swatch.contrast{border:1px solid var(--vvd-color-neutral-400);color:var(--vvd-color-canvas-text)}.swatch:focus-visible{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:none;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;max-block-size:100vh;inline-size:max-content;max-inline-size:100vw;min-block-size:var(--_color-swatch-size,24px);min-inline-size:var(--_color-swatch-size,24px)}";
13
- //#endregion
14
- //#region src/lib/simple-color-picker/simple-color-picker.ts
6
+ //#region src/lib/side-drawer/side-drawer.ts
15
7
  /**
16
8
  * @public
17
- * @component simple-color-picker
18
- * @slot anchor - Slot for attaching the toggle button
19
- * @event {CustomEvent<undefined>} change - Fires when the value changes
20
- * @event {Event} input - Fires when the value of the element changes.
21
- * @vueModel modelValue value input,@lazy:change `event.currentTarget.value`
9
+ * @component side-drawer
10
+ * @slot - Sets assigned nodes to the Side Drawer itself.
11
+ * @slot app-content - Sets assigned nodes to the main application content that the Side Drawer opens alongside.
12
+ * @event {CustomEvent<undefined>} close - Fired when the side drawer is closed.
13
+ * @event {CustomEvent<undefined>} open - Fired when the side drawer is opened.
14
+ * @event {CustomEvent<undefined>} cancel - Fired when the user requests to close the side-drawer. You can prevent the side drawer from closing by calling `.preventDefault()` on the event.
22
15
  */
23
- var SimpleColorPicker = class extends Anchored(BaseColorPicker(VividElement)) {
16
+ var SideDrawer = class extends VividElement {
24
17
  constructor(..._args) {
25
18
  super(..._args);
26
- this.placement = "top-start";
27
- this.swatchesPerRow = 7;
28
- this.#openedByKeyboard = false;
29
- this.#openPopup = () => {
30
- if (!this.open) {
31
- this.#openedByKeyboard = false;
32
- Updates.enqueue(() => this.open = true);
33
- }
34
- };
35
- this.#handleAnchorKeydown = (event) => {
36
- /* v8 ignore next -- @preserve */
37
- if (event.key === "Enter" || event.key === " ") {
38
- if (!this.open) {
39
- this.#openedByKeyboard = true;
40
- Updates.enqueue(() => this.open = true);
41
- }
42
- event.preventDefault();
43
- }
44
- };
45
- this._closeOnClickOutside = (e) => {
46
- const clickedOutside = !this.contains(e.target);
47
- const clickedOnAnchor = this._anchorEl?.contains(e.target);
48
- /* v8 ignore else -- @preserve */
49
- if (clickedOutside || clickedOnAnchor) this.open = false;
50
- };
51
- this._closeOnEscape = (e) => {
52
- /* v8 ignore else -- @preserve */
53
- if (e.key === "Escape") this.open = false;
54
- };
55
- }
56
- /** @internal */
57
- openChanged(_oldValue, newValue) {
58
- this._updateListeners();
59
- if (this._anchorEl) this.#updateAnchor(this._anchorEl);
60
- if (newValue && this.isConnected) requestAnimationFrame(() => {
61
- this._refreshCanvasColor();
62
- if (this.#openedByKeyboard) {
63
- const selectedIndex = this.swatches.findIndex((swatch) => swatch.value === this.value);
64
- const targetIndex = selectedIndex >= 0 ? selectedIndex : 0;
65
- this._focusSwatchByIndex(targetIndex);
66
- }
67
- this.#openedByKeyboard = false;
68
- });
69
- }
70
- /** @internal */
71
- _getRowLength() {
72
- return this.swatchesPerRow;
19
+ this.alternate = false;
20
+ this.modal = false;
21
+ this.open = false;
22
+ this.trailing = false;
73
23
  }
74
- connectedCallback() {
75
- super.connectedCallback();
76
- this._updateListeners();
77
- }
78
- disconnectedCallback() {
79
- super.disconnectedCallback();
80
- this._updateListeners();
81
- }
82
- /** @internal */
83
- _updateListeners() {
84
- document.removeEventListener("click", this._closeOnClickOutside);
85
- document.removeEventListener("keydown", this._closeOnEscape);
86
- if (this.open && this.isConnected) {
87
- document.addEventListener("click", this._closeOnClickOutside);
88
- document.addEventListener("keydown", this._closeOnEscape);
24
+ attributeChangedCallback(name, oldValue, newValue) {
25
+ super.attributeChangedCallback(name, oldValue, newValue);
26
+ switch (name) {
27
+ case "open": if (this.open) this.#open();
28
+ else this.#close();
89
29
  }
90
30
  }
91
- /** @internal */
92
- _getFocusReturnEl() {
93
- return this._anchorEl ?? null;
31
+ #close() {
32
+ this.$emit("close", void 0, { bubbles: false });
94
33
  }
95
- /** @internal */
96
- _anchorElChanged(oldValue, newValue) {
97
- if (oldValue) this.#cleanupAnchor(oldValue);
98
- if (newValue) this.#setupAnchor(newValue);
99
- }
100
- /** @internal */
101
- #updateAnchor(a) {
102
- a.setAttribute("aria-expanded", this.open.toString());
103
- a.setAttribute("data-expanded", this.open.toString());
34
+ #open() {
35
+ this.$emit("open", void 0, { bubbles: false });
104
36
  }
105
37
  /** @internal */
106
- #setupAnchor(a) {
107
- this.#updateAnchor(a);
108
- a.addEventListener("click", this.#openPopup, true);
109
- a.addEventListener("keydown", this.#handleAnchorKeydown);
110
- a.setAttribute("aria-haspopup", "true");
38
+ _onKeydown(event) {
39
+ if (handleEscapeKeyAndStopPropogation(event)) {
40
+ this._handleCloseRequest();
41
+ return;
42
+ } else return true;
111
43
  }
112
44
  /** @internal */
113
- #cleanupAnchor(a) {
114
- a.removeEventListener("click", this.#openPopup, true);
115
- a.removeEventListener("keydown", this.#handleAnchorKeydown);
116
- a.removeAttribute("aria-expanded");
117
- a.removeAttribute("data-expanded");
118
- a.removeAttribute("aria-haspopup");
45
+ _handleCloseRequest() {
46
+ if (this.$emit("cancel", void 0, {
47
+ bubbles: false,
48
+ cancelable: true
49
+ })) this.open = false;
119
50
  }
120
- /** @internal */
121
- #openedByKeyboard;
122
- /** @internal */
123
- #openPopup;
124
- /** @internal */
125
- #handleAnchorKeydown;
126
- };
127
- __decorate([attr({ mode: "fromView" })], SimpleColorPicker.prototype, "placement", void 0);
128
- __decorate([attr({
129
- attribute: "swatches-per-row",
130
- mode: "fromView",
131
- converter: nullableNumberConverter
132
- })], SimpleColorPicker.prototype, "swatchesPerRow", void 0);
133
- //#endregion
134
- //#region src/lib/simple-color-picker/simple-color-picker.template.ts
135
- var getClasses = (_) => classNames("control");
136
- var SimpleColorPickerTemplate = (context) => {
137
- const popupTag = context.tagFor(Popup);
138
- const iconTag = context.tagFor(Icon);
139
- const tooltipTag = context.tagFor(Tooltip);
140
- return html`
141
- ${anchorSlotTemplateFactory()}
142
- <${popupTag}
143
- class="${getClasses}"
144
- :anchor="${(x) => x._anchorEl}"
145
- :open="${(x) => x.open}"
146
- placement="${(x) => x.placement}"
147
- offset="4"
148
- @keydown="${(x, { event }) => {
149
- if (x.open && handleEscapeKeyAndStopPropogation(event)) return false;
150
- return true;
151
- }}"
152
- >
153
- <div class="palette" role="grid"
154
- aria-rowcount="${(x) => Math.ceil(x.swatches.length / x._getRowLength())}"
155
- aria-colcount="${(x) => x._getRowLength()}"
156
- style="--swatches-per-row: ${(x) => x._getRowLength()};"
157
- aria-label="${(x) => x.locale.simpleColorPicker.colorPaletteLabel}">
158
- ${repeat((x) => x.swatches, (x) => x._renderColorSwatch(iconTag, tooltipTag), { positioning: true })}
159
- </div>
160
- </${popupTag}>
161
- `;
162
51
  };
52
+ __decorate([attr({ mode: "boolean" })], SideDrawer.prototype, "alternate", void 0);
53
+ __decorate([attr({ mode: "boolean" })], SideDrawer.prototype, "modal", void 0);
54
+ __decorate([attr({ mode: "boolean" })], SideDrawer.prototype, "open", void 0);
55
+ __decorate([attr({ mode: "boolean" })], SideDrawer.prototype, "trailing", void 0);
163
56
  //#endregion
164
- //#region src/lib/simple-color-picker/definition.ts
165
- var simpleColorPickerDefinition = defineVividComponent("simple-color-picker", SimpleColorPicker, SimpleColorPickerTemplate, [
166
- popupDefinition,
167
- iconDefinition,
168
- tooltipDefinition
169
- ], { styles: simple_color_picker_default });
57
+ //#region src/lib/side-drawer/definition.ts
58
+ /** @internal */
59
+ var sideDrawerDefinition = defineVividComponent("side-drawer", SideDrawer, html`
60
+ <div
61
+ class="${(x) => classNames("control", ["modal", x.modal], ["open", x.open], ["trailing", x.trailing])}"
62
+ ?inert="${(x) => !x.open}"
63
+ part="base ${(x) => x.alternate ? "vvd-theme-alternate" : ""}"
64
+ @keydown="${(x, c) => x._onKeydown(c.event)}"
65
+ >
66
+ <slot></slot>
67
+ </div>
68
+
69
+ <div class="side-drawer-app-content" ?inert="${(x) => x.open && x.modal}">
70
+ <slot name="app-content"></slot>
71
+ </div>
72
+
73
+ ${when((x) => x.modal, html`<div
74
+ class="${(x) => classNames("scrim", ["open", x.open])}"
75
+ @click="${(x) => x._handleCloseRequest()}"
76
+ ></div>`)}
77
+ `, [], { styles: ":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%);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{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.control{z-index:1;background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);inline-size:280px;position:fixed;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}" });
170
78
  /**
171
- * Registers the simple-color-picker element with the design system.
79
+ * Registers the side-drawer elements with the design system.
172
80
  *
173
81
  * @param prefix - the prefix to use for the component name
174
82
  */
175
- var registerSimpleColorPicker = createRegisterFunction(simpleColorPickerDefinition);
83
+ var registerSideDrawer = createRegisterFunction(sideDrawerDefinition);
176
84
  //#endregion
177
- export { simpleColorPickerDefinition as n, SimpleColorPicker as r, registerSimpleColorPicker as t };
85
+ export { sideDrawerDefinition as n, SideDrawer as r, registerSideDrawer as t };