@vonage/vivid 3.51.0 → 3.53.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 (340) hide show
  1. package/README.md +1 -1
  2. package/accordion/index.cjs +1 -1
  3. package/accordion/index.js +1 -1
  4. package/accordion-item/index.cjs +1 -1
  5. package/accordion-item/index.js +1 -1
  6. package/alert/index.cjs +3 -3
  7. package/alert/index.js +3 -3
  8. package/appearance-ui/index.cjs +19 -11
  9. package/appearance-ui/index.js +19 -11
  10. package/audio-player/index.cjs +4 -3
  11. package/audio-player/index.js +4 -3
  12. package/avatar/index.cjs +1 -1
  13. package/avatar/index.js +1 -1
  14. package/badge/index.cjs +1 -1
  15. package/badge/index.js +1 -1
  16. package/banner/index.cjs +2 -2
  17. package/banner/index.js +2 -2
  18. package/breadcrumb-item/index.cjs +1 -1
  19. package/breadcrumb-item/index.js +1 -1
  20. package/button/index.cjs +2 -2
  21. package/button/index.js +2 -2
  22. package/card/index.cjs +2 -2
  23. package/card/index.js +2 -2
  24. package/checkbox/index.cjs +3 -2
  25. package/checkbox/index.js +3 -2
  26. package/combobox/index.cjs +5 -8
  27. package/combobox/index.js +5 -8
  28. package/custom-elements.json +2310 -769
  29. package/data-grid/index.cjs +1 -1
  30. package/data-grid/index.js +1 -1
  31. package/date-picker/index.cjs +7 -9
  32. package/date-picker/index.js +7 -9
  33. package/date-range-picker/index.cjs +7 -9
  34. package/date-range-picker/index.js +7 -9
  35. package/dial-pad/index.cjs +33 -0
  36. package/dial-pad/index.js +31 -0
  37. package/dialog/index.cjs +4 -4
  38. package/dialog/index.js +4 -4
  39. package/divider/index.cjs +1 -1
  40. package/divider/index.js +1 -1
  41. package/elevation/index.cjs +1 -1
  42. package/elevation/index.js +1 -1
  43. package/empty-state/index.cjs +2 -2
  44. package/empty-state/index.js +2 -2
  45. package/fab/index.cjs +2 -2
  46. package/fab/index.js +2 -2
  47. package/file-picker/index.cjs +4 -5
  48. package/file-picker/index.js +4 -5
  49. package/header/index.cjs +2 -2
  50. package/header/index.js +2 -2
  51. package/icon/index.cjs +1 -1
  52. package/icon/index.js +1 -1
  53. package/index.cjs +135 -123
  54. package/index.js +48 -46
  55. package/layout/index.cjs +1 -1
  56. package/layout/index.js +1 -1
  57. package/lib/avatar/definition.d.ts +1 -1
  58. package/lib/button/button.d.ts +1 -0
  59. package/lib/button/definition.d.ts +1 -1
  60. package/lib/calendar-event/definition.d.ts +1 -1
  61. package/lib/components.d.ts +3 -0
  62. package/lib/dial-pad/definition.d.ts +3 -0
  63. package/lib/dial-pad/dial-pad.d.ts +14 -0
  64. package/lib/dial-pad/dial-pad.template.d.ts +4 -0
  65. package/lib/dial-pad/locale.d.ts +18 -0
  66. package/lib/enums.d.ts +6 -0
  67. package/lib/layout/definition.d.ts +1 -1
  68. package/lib/menu-item/menu-item.d.ts +3 -0
  69. package/lib/range-slider/definition.d.ts +3 -0
  70. package/lib/range-slider/locale.d.ts +4 -0
  71. package/lib/range-slider/range-slider.d.ts +32 -0
  72. package/lib/range-slider/range-slider.form-associated.d.ts +10 -0
  73. package/lib/range-slider/range-slider.template.d.ts +4 -0
  74. package/lib/range-slider/utils/lerp.d.ts +2 -0
  75. package/lib/range-slider/utils/roundToStepValue.d.ts +1 -0
  76. package/lib/slider/slider.template.d.ts +1 -0
  77. package/lib/split-button/definition.d.ts +1 -1
  78. package/lib/text-anchor/definition.d.ts +1 -0
  79. package/lib/text-anchor/text-anchor.d.ts +5 -0
  80. package/lib/video-player/definition.d.ts +3 -0
  81. package/lib/video-player/locale.d.ts +1 -0
  82. package/lib/video-player/video-player.d.ts +17 -0
  83. package/lib/video-player/video-player.template.d.ts +4 -0
  84. package/listbox/index.cjs +25 -24
  85. package/listbox/index.js +25 -24
  86. package/locales/en-GB.cjs +34 -0
  87. package/locales/en-GB.js +34 -0
  88. package/locales/en-US.cjs +202 -0
  89. package/locales/en-US.js +202 -0
  90. package/locales/ja-JP.cjs +202 -1
  91. package/locales/ja-JP.js +202 -1
  92. package/locales/zh-CN.cjs +203 -0
  93. package/locales/zh-CN.js +203 -0
  94. package/menu/index.cjs +7 -7
  95. package/menu/index.js +7 -7
  96. package/menu-item/index.cjs +4 -4
  97. package/menu-item/index.js +4 -4
  98. package/nav/index.cjs +1 -1
  99. package/nav/index.js +1 -1
  100. package/nav-disclosure/index.cjs +2 -2
  101. package/nav-disclosure/index.js +2 -2
  102. package/nav-item/index.cjs +2 -2
  103. package/nav-item/index.js +2 -2
  104. package/note/index.cjs +2 -2
  105. package/note/index.js +2 -2
  106. package/number-field/index.cjs +5 -6
  107. package/number-field/index.js +5 -6
  108. package/option/index.cjs +2 -2
  109. package/option/index.js +2 -2
  110. package/package.json +34 -34
  111. package/pagination/index.cjs +3 -3
  112. package/pagination/index.js +3 -3
  113. package/popup/index.cjs +4 -4
  114. package/popup/index.js +4 -4
  115. package/progress/index.cjs +1 -1
  116. package/progress/index.js +1 -1
  117. package/progress-ring/index.cjs +1 -1
  118. package/progress-ring/index.js +1 -1
  119. package/radio/index.cjs +1 -1
  120. package/radio/index.js +1 -1
  121. package/radio-group/index.cjs +1 -1
  122. package/radio-group/index.js +1 -1
  123. package/range-slider/index.cjs +22 -0
  124. package/range-slider/index.js +20 -0
  125. package/select/index.cjs +7 -6
  126. package/select/index.js +7 -6
  127. package/selectable-box/index.cjs +5 -4
  128. package/selectable-box/index.js +5 -4
  129. package/shared/Reflector.cjs +5 -1
  130. package/shared/Reflector.js +5 -1
  131. package/shared/affix.cjs +11 -4
  132. package/shared/affix.js +12 -4
  133. package/shared/anchored.cjs +8 -2
  134. package/shared/anchored.js +8 -2
  135. package/shared/applyMixinsWithObservables.cjs +15 -0
  136. package/shared/applyMixinsWithObservables.js +13 -0
  137. package/shared/definition.cjs +9 -4
  138. package/shared/definition.js +9 -4
  139. package/shared/definition10.cjs +5 -5
  140. package/shared/definition10.js +5 -5
  141. package/shared/definition11.cjs +77 -49
  142. package/shared/definition11.js +78 -50
  143. package/shared/definition12.cjs +12 -14
  144. package/shared/definition12.js +12 -14
  145. package/shared/definition13.cjs +118 -75
  146. package/shared/definition13.js +118 -75
  147. package/shared/definition14.cjs +34 -33
  148. package/shared/definition14.js +34 -33
  149. package/shared/definition15.cjs +24 -12
  150. package/shared/definition15.js +24 -12
  151. package/shared/definition16.cjs +38 -43
  152. package/shared/definition16.js +38 -43
  153. package/shared/definition17.cjs +126 -66
  154. package/shared/definition17.js +127 -67
  155. package/shared/definition18.cjs +31 -15
  156. package/shared/definition18.js +31 -15
  157. package/shared/definition19.cjs +117 -81
  158. package/shared/definition19.js +117 -81
  159. package/shared/definition2.cjs +10 -5
  160. package/shared/definition2.js +10 -5
  161. package/shared/definition20.cjs +187 -227
  162. package/shared/definition20.js +183 -223
  163. package/shared/definition21.cjs +262 -69
  164. package/shared/definition21.js +261 -67
  165. package/shared/definition22.cjs +66 -61
  166. package/shared/definition22.js +64 -60
  167. package/shared/definition23.cjs +42 -77
  168. package/shared/definition23.js +41 -76
  169. package/shared/definition24.cjs +65 -2350
  170. package/shared/definition24.js +64 -2349
  171. package/shared/definition25.cjs +2402 -48
  172. package/shared/definition25.js +2401 -47
  173. package/shared/definition26.cjs +62 -28
  174. package/shared/definition26.js +61 -27
  175. package/shared/definition27.cjs +28 -54
  176. package/shared/definition27.js +27 -53
  177. package/shared/definition28.cjs +39 -819
  178. package/shared/definition28.js +38 -817
  179. package/shared/definition29.cjs +893 -54
  180. package/shared/definition29.js +893 -55
  181. package/shared/definition3.cjs +7 -10
  182. package/shared/definition3.js +7 -10
  183. package/shared/definition30.cjs +69 -85
  184. package/shared/definition30.js +68 -84
  185. package/shared/definition31.cjs +86 -23
  186. package/shared/definition31.js +86 -23
  187. package/shared/definition32.cjs +24 -14
  188. package/shared/definition32.js +23 -13
  189. package/shared/definition33.cjs +11 -53
  190. package/shared/definition33.js +10 -52
  191. package/shared/definition34.cjs +28 -500
  192. package/shared/definition34.js +28 -500
  193. package/shared/definition35.cjs +447 -194
  194. package/shared/definition35.js +447 -192
  195. package/shared/definition36.cjs +258 -188
  196. package/shared/definition36.js +255 -187
  197. package/shared/definition37.cjs +204 -78
  198. package/shared/definition37.js +203 -76
  199. package/shared/definition38.cjs +55 -51
  200. package/shared/definition38.js +52 -49
  201. package/shared/definition39.cjs +65 -423
  202. package/shared/definition39.js +64 -422
  203. package/shared/definition4.cjs +24 -12
  204. package/shared/definition4.js +24 -12
  205. package/shared/definition40.cjs +447 -35
  206. package/shared/definition40.js +444 -32
  207. package/shared/definition41.cjs +35 -678
  208. package/shared/definition41.js +34 -677
  209. package/shared/definition42.cjs +544 -99
  210. package/shared/definition42.js +543 -98
  211. package/shared/definition43.cjs +696 -77
  212. package/shared/definition43.js +695 -76
  213. package/shared/definition44.cjs +113 -563
  214. package/shared/definition44.js +112 -561
  215. package/shared/definition45.cjs +77 -117
  216. package/shared/definition45.js +75 -115
  217. package/shared/definition46.cjs +474 -86
  218. package/shared/definition46.js +474 -87
  219. package/shared/definition47.cjs +140 -23
  220. package/shared/definition47.js +139 -22
  221. package/shared/definition48.cjs +132 -57
  222. package/shared/definition48.js +131 -56
  223. package/shared/definition49.cjs +18 -524
  224. package/shared/definition49.js +17 -523
  225. package/shared/definition5.cjs +20 -17
  226. package/shared/definition5.js +20 -17
  227. package/shared/definition50.cjs +73 -25
  228. package/shared/definition50.js +72 -24
  229. package/shared/definition51.cjs +506 -99
  230. package/shared/definition51.js +505 -99
  231. package/shared/definition52.cjs +29 -277
  232. package/shared/definition52.js +28 -276
  233. package/shared/definition53.cjs +97 -256
  234. package/shared/definition53.js +97 -255
  235. package/shared/definition54.cjs +287 -769
  236. package/shared/definition54.js +287 -769
  237. package/shared/definition55.cjs +305 -105
  238. package/shared/definition55.js +304 -104
  239. package/shared/definition56.cjs +841 -81
  240. package/shared/definition56.js +840 -80
  241. package/shared/definition57.cjs +153 -69
  242. package/shared/definition57.js +152 -68
  243. package/shared/definition58.cjs +138 -299
  244. package/shared/definition58.js +137 -298
  245. package/shared/definition59.cjs +72 -27
  246. package/shared/definition59.js +71 -26
  247. package/shared/definition6.cjs +4 -5
  248. package/shared/definition6.js +4 -5
  249. package/shared/definition60.cjs +279 -1780
  250. package/shared/definition60.js +278 -1779
  251. package/shared/definition61.cjs +65870 -11
  252. package/shared/definition61.js +65869 -11
  253. package/shared/definition62.cjs +50 -0
  254. package/shared/definition62.js +46 -0
  255. package/shared/definition63.cjs +1828 -0
  256. package/shared/definition63.js +1824 -0
  257. package/shared/definition7.cjs +8 -6
  258. package/shared/definition7.js +8 -6
  259. package/shared/definition8.cjs +27 -20
  260. package/shared/definition8.js +27 -20
  261. package/shared/definition9.cjs +7 -10
  262. package/shared/definition9.js +7 -10
  263. package/shared/enums.cjs +8 -0
  264. package/shared/enums.js +8 -1
  265. package/shared/icon.cjs +7 -2
  266. package/shared/icon.js +7 -2
  267. package/shared/index2.cjs +67 -38
  268. package/shared/index2.js +67 -38
  269. package/shared/key-codes2.cjs +8 -0
  270. package/shared/key-codes2.js +5 -1
  271. package/shared/listbox.cjs +1 -1
  272. package/shared/listbox.js +1 -1
  273. package/shared/localization/Locale.d.ts +6 -0
  274. package/shared/patterns/form-elements/form-elements.d.ts +2 -3
  275. package/shared/patterns/index.d.ts +0 -1
  276. package/shared/presentationDate.cjs +140 -81
  277. package/shared/presentationDate.js +140 -81
  278. package/shared/slider.template.cjs +71 -0
  279. package/shared/slider.template.js +67 -0
  280. package/shared/text-anchor.cjs +6 -0
  281. package/shared/text-anchor.js +6 -0
  282. package/shared/text-anchor.template.cjs +33 -33
  283. package/shared/text-anchor.template.js +33 -33
  284. package/shared/text-field.cjs +1 -1
  285. package/shared/text-field.js +1 -1
  286. package/shared/utils/applyMixinsWithObservables.d.ts +1 -0
  287. package/side-drawer/index.cjs +1 -1
  288. package/side-drawer/index.js +1 -1
  289. package/slider/index.cjs +2 -1
  290. package/slider/index.js +2 -1
  291. package/split-button/index.cjs +2 -2
  292. package/split-button/index.js +2 -2
  293. package/style.css +1 -0
  294. package/styles/core/all.css +1 -1
  295. package/styles/core/theme.css +1 -1
  296. package/styles/core/typography.css +1 -1
  297. package/styles/fonts/spezia-variable.css +39 -13
  298. package/styles/tokens/theme-dark.css +4 -4
  299. package/styles/tokens/theme-light.css +4 -4
  300. package/styles/tokens/vivid-2-compat.css +4 -2
  301. package/switch/index.cjs +2 -2
  302. package/switch/index.js +2 -2
  303. package/tab/index.cjs +2 -2
  304. package/tab/index.js +2 -2
  305. package/tab-panel/index.cjs +1 -1
  306. package/tab-panel/index.js +1 -1
  307. package/tabs/index.cjs +4 -4
  308. package/tabs/index.js +4 -4
  309. package/tag/index.cjs +2 -2
  310. package/tag/index.js +2 -2
  311. package/tag-group/index.cjs +1 -1
  312. package/tag-group/index.js +1 -1
  313. package/text-area/index.cjs +4 -3
  314. package/text-area/index.js +4 -3
  315. package/text-field/index.cjs +4 -6
  316. package/text-field/index.js +4 -6
  317. package/time-picker/index.cjs +8 -10
  318. package/time-picker/index.js +8 -10
  319. package/toggletip/index.cjs +5 -5
  320. package/toggletip/index.js +5 -5
  321. package/tooltip/index.cjs +5 -5
  322. package/tooltip/index.js +5 -5
  323. package/tree-item/index.cjs +2 -2
  324. package/tree-item/index.js +2 -2
  325. package/tree-view/index.cjs +1 -1
  326. package/tree-view/index.js +1 -1
  327. package/video-player/index.cjs +17 -0
  328. package/video-player/index.js +15 -0
  329. package/vivid.api.json +428 -1
  330. package/focus/index.cjs +0 -7
  331. package/focus/index.js +0 -5
  332. package/lib/focus/definition.d.ts +0 -3
  333. package/lib/focus/focus.d.ts +0 -3
  334. package/lib/focus/focus.template.d.ts +0 -4
  335. package/lib/popup/popup.d.ts +0 -21
  336. package/shared/focus.cjs +0 -8
  337. package/shared/focus.js +0 -6
  338. package/shared/focus2.cjs +0 -11
  339. package/shared/focus2.js +0 -9
  340. package/shared/patterns/focus.d.ts +0 -3
@@ -1,83 +1,276 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const aria = require('./aria.cjs');
4
+ const definition$2 = require('./definition27.cjs');
5
+ const definition$1 = require('./definition11.cjs');
6
+ const definition = require('./definition62.cjs');
7
+ require('./affix.cjs');
8
+ require('./index2.cjs');
9
+ const localized = require('./localized.cjs');
10
+ const applyMixins = require('./apply-mixins.cjs');
11
+ const icon$1 = require('./icon.cjs');
12
+ const when = require('./when.cjs');
13
+ const slotted = require('./slotted.cjs');
5
14
  const classNames = require('./class-names.cjs');
6
15
 
7
- /**
8
- * Divider roles
9
- * @public
10
- */
11
- const DividerRole = {
12
- /**
13
- * The divider semantically separates content
14
- */
15
- separator: "separator",
16
- /**
17
- * The divider has no semantic value and is for visual presentation only.
18
- */
19
- presentation: "presentation",
20
- };
21
-
22
- /**
23
- * A Divider Custom HTML Element.
24
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
25
- *
26
- * @public
27
- */
28
- let Divider$1 = class Divider extends index.FoundationElement {
29
- constructor() {
30
- super(...arguments);
31
- /**
32
- * The role of the element.
33
- *
34
- * @public
35
- * @remarks
36
- * HTML Attribute: role
37
- */
38
- this.role = DividerRole.separator;
39
- /**
40
- * The orientation of the divider.
41
- *
42
- * @public
43
- * @remarks
44
- * HTML Attribute: orientation
45
- */
46
- this.orientation = aria.Orientation.horizontal;
47
- }
48
- };
49
- index.__decorate([
50
- index.attr
51
- ], Divider$1.prototype, "role", void 0);
52
- index.__decorate([
53
- index.attr
54
- ], Divider$1.prototype, "orientation", void 0);
16
+ const dialogPolyfillStyles = "dialog{position:absolute;left:0;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;margin:auto;border:solid;padding:1em;background:white;color:#000;display:block}dialog:not([open]){display:none}dialog+.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.1)}._dialog_overlay{position:fixed;inset:0}dialog.fixed{position:fixed;top:50%;transform:translateY(-50%)}\n";
55
17
 
56
- const styles = ":host{display:block}.base{display:block;background-color:var(--vvd-color-neutral-200)}.base:not(.vertical){block-size:1px;inline-size:100%}.base.vertical{block-size:100%;inline-size:1px}\n";
18
+ const styles = ".base{white-space:initial;box-sizing:border-box;padding:0;border:none;border-radius:8px;background-color:transparent;color:var(--vvd-color-canvas-text);max-block-size:var(--dialog-max-block-size, calc(100vh - 64px));max-inline-size:var(--dialog-max-inline-size, var(--_dialog-default-max-inline-size));min-inline-size:var(--dialog-min-inline-size, 280px)}@media not all and (width >= 600px){.base{--_dialog-default-max-inline-size: 90vw}}@media (width >= 600px){.base{--_dialog-default-max-inline-size: 560px}}.base:not(.modal){z-index:var(--dialog-z-index, 1)}.base.modal{position:fixed;box-shadow:0 4px 20px #00000059}.base.modal::backdrop{background-color:var(--vvd-color-canvas-text, currentColor);opacity:.5}.base:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.main-wrapper{display:flex;box-sizing:border-box;flex-direction:column;gap:24px;padding-block:24px}.main-wrapper>*{box-sizing:border-box}.header{display:grid;align-items:flex-start;justify-content:space-between;inline-size:100%;padding-inline:24px}.base:not(.icon-placement-side) .header{grid-template-columns:1fr auto;grid-template-rows:auto auto auto}.base:not(.icon-placement-side) .header .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2)));grid-column:1/2;grid-row:1/2;line-height:1;margin-block-end:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.icon-placement-side .header{grid-template-columns:auto 1fr auto;grid-template-rows:auto auto}.base.icon-placement-side .header .icon{font-size:calc(1px*(28 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.icon-placement-side .header ::slotted(*),.base.icon-placement-side .header .icon{grid-column:1/2;grid-row:1/-1;margin-inline-end:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}.header.border{position:relative}.header.border:after{position:absolute;bottom:-24px;left:0;background-color:var(--vvd-color-neutral-200);block-size:1px;content:\"\";inline-size:100%}.base.hide-body .header.border:after{content:none}.body:not(.full-width){padding-inline:24px}.hide-body .body{display:none}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:24px}.hide-footer .footer{display:none}.footer .actions{display:flex;align-self:flex-end;gap:8px}.dismiss-button{flex-shrink:0;grid-column:-2/-1;grid-row:1/-1;margin-block-start:-8px;margin-inline:4px -8px}.headline{font:var(--vvd-typography-heading-4)}.subtitle{font:var(--vvd-typography-base)}slot[name=main]{display:block;overflow:hidden auto;max-width:inherit;max-height:inherit;border-radius:inherit}\n";
57
19
 
58
- class Divider extends Divider$1 {
20
+ var __defProp = Object.defineProperty;
21
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
22
+ var __decorateClass = (decorators, target, key, kind) => {
23
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
24
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
25
+ if (decorator = decorators[i])
26
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
27
+ if (kind && result)
28
+ __defProp(target, key, result);
29
+ return result;
30
+ };
31
+ const isDialogSupported = Boolean(
32
+ window.HTMLDialogElement && window.HTMLDialogElement.prototype.showModal
33
+ );
34
+ let dialogPolyfill;
35
+ (async () => {
36
+ if (!isDialogSupported) {
37
+ delete window.HTMLDialogElement;
38
+ dialogPolyfill = await Promise.resolve().then(() => require('./dialog-polyfill.esm.cjs'));
39
+ }
40
+ })();
41
+ class Dialog extends index.FoundationElement {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.open = false;
45
+ this.fullWidthBody = false;
46
+ this.ariaLabel = null;
47
+ this.dismissButtonAriaLabel = null;
48
+ this.noLightDismiss = false;
49
+ this.#modal = false;
50
+ this.#handleScrimClick = (event) => {
51
+ if (event.target !== this.#dialog || this.noLightDismiss) {
52
+ return;
53
+ }
54
+ const rect = this.#dialog.getBoundingClientRect();
55
+ const clickedInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
56
+ this.open = clickedInDialog;
57
+ };
58
+ this.#handleInternalFormSubmit = (event) => {
59
+ if (event.target.method !== "dialog") {
60
+ return;
61
+ }
62
+ this.open = false;
63
+ };
64
+ }
65
+ #modal;
66
+ set returnValue(value) {
67
+ this.#dialog.returnValue = value;
68
+ }
69
+ get returnValue() {
70
+ return this.#dialog?.returnValue;
71
+ }
72
+ /**
73
+ * @internal
74
+ */
75
+ get modal() {
76
+ return this.#modal;
77
+ }
78
+ #dialogElement;
79
+ get #dialog() {
80
+ if (!this.#dialogElement) {
81
+ this.#dialogElement = this.shadowRoot.querySelector(
82
+ "dialog"
83
+ );
84
+ if (this.#dialogElement) {
85
+ this.#dialogElement.open = this.open;
86
+ if (dialogPolyfill) {
87
+ dialogPolyfill.registerDialog(this.#dialogElement);
88
+ }
89
+ }
90
+ }
91
+ return this.#dialogElement;
92
+ }
93
+ /**
94
+ * @internal
95
+ */
96
+ openChanged(oldValue, newValue) {
97
+ if (oldValue === void 0) {
98
+ return;
99
+ }
100
+ if (!newValue) {
101
+ this.close();
102
+ } else {
103
+ if (this.#dialog) {
104
+ this.#dialog.open = true;
105
+ }
106
+ }
107
+ }
108
+ #handleScrimClick;
109
+ #handleInternalFormSubmit;
110
+ close() {
111
+ if (this.#dialog.open) {
112
+ this.#dialog.close();
113
+ this.$emit("close", this.returnValue, { bubbles: false });
114
+ }
115
+ this.open = false;
116
+ this.#handleModal(false);
117
+ }
118
+ #handleModal(show) {
119
+ this.#modal = show;
120
+ this.#dialog.toggleAttribute("aria-modal", show);
121
+ this.#dialog.classList.toggle("modal", show);
122
+ }
123
+ show() {
124
+ this.#dialog.show();
125
+ this.open = true;
126
+ }
127
+ showModal() {
128
+ this.#handleModal(true);
129
+ this.#dialog.showModal();
130
+ this.open = true;
131
+ }
132
+ connectedCallback() {
133
+ super.connectedCallback();
134
+ this.#dialog.addEventListener("mousedown", this.#handleScrimClick);
135
+ this.#dialog.addEventListener("submit", this.#handleInternalFormSubmit);
136
+ }
137
+ disconnectedCallback() {
138
+ super.disconnectedCallback();
139
+ this.#dialog.removeEventListener("mousedown", this.#handleScrimClick);
140
+ this.#dialog.removeEventListener("submit", this.#handleInternalFormSubmit);
141
+ }
59
142
  }
143
+ __decorateClass([
144
+ index.attr({ mode: "boolean" })
145
+ ], Dialog.prototype, "open", 2);
146
+ __decorateClass([
147
+ index.attr
148
+ ], Dialog.prototype, "icon", 2);
149
+ __decorateClass([
150
+ index.attr({ attribute: "icon-placement" })
151
+ ], Dialog.prototype, "iconPlacement", 2);
152
+ __decorateClass([
153
+ index.attr
154
+ ], Dialog.prototype, "subtitle", 2);
155
+ __decorateClass([
156
+ index.attr
157
+ ], Dialog.prototype, "headline", 2);
158
+ __decorateClass([
159
+ index.attr({ attribute: "full-width-body", mode: "boolean" })
160
+ ], Dialog.prototype, "fullWidthBody", 2);
161
+ __decorateClass([
162
+ index.attr({ attribute: "aria-label" })
163
+ ], Dialog.prototype, "ariaLabel", 2);
164
+ __decorateClass([
165
+ index.attr({ attribute: "dismiss-button-aria-label" })
166
+ ], Dialog.prototype, "dismissButtonAriaLabel", 2);
167
+ __decorateClass([
168
+ index.attr({ attribute: "no-light-dismiss", mode: "boolean" })
169
+ ], Dialog.prototype, "noLightDismiss", 2);
170
+ __decorateClass([
171
+ index.observable
172
+ ], Dialog.prototype, "bodySlottedContent", 2);
173
+ __decorateClass([
174
+ index.observable
175
+ ], Dialog.prototype, "footerSlottedContent", 2);
176
+ __decorateClass([
177
+ index.observable
178
+ ], Dialog.prototype, "actionItemsSlottedContent", 2);
179
+ applyMixins.applyMixins(Dialog, localized.Localized);
60
180
 
61
- const getClasses = ({ orientation }) => classNames.classNames(
181
+ const getClasses = ({
182
+ iconPlacement,
183
+ bodySlottedContent,
184
+ footerSlottedContent,
185
+ actionItemsSlottedContent
186
+ }) => classNames.classNames(
62
187
  "base",
63
- [`${orientation}`, Boolean(orientation)]
188
+ [`icon-placement-${iconPlacement}`, Boolean(iconPlacement)],
189
+ ["hide-body", !bodySlottedContent?.length],
190
+ [
191
+ "hide-footer",
192
+ !(footerSlottedContent?.length || actionItemsSlottedContent?.length)
193
+ ]
64
194
  );
65
- const DividerTemplate = () => index.html`
66
- <span
67
- class="${getClasses}"
68
- orientation="${(x) => x.orientation}"
69
- role="${(x) => x.role}"
70
- ></span>`;
195
+ function icon(iconTag) {
196
+ return index.html`
197
+ <${iconTag} class="icon" name="${(x) => x.icon}"></${iconTag}>
198
+ `;
199
+ }
200
+ function headline() {
201
+ return index.html` <div class="headline">${(x) => x.headline}</div> `;
202
+ }
203
+ function subtitle() {
204
+ return index.html` <div class="subtitle">${(x) => x.subtitle}</div> `;
205
+ }
206
+ function renderDismissButton(buttonTag) {
207
+ return index.html`
208
+ <${buttonTag}
209
+ aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.dialog.dismissButtonLabel}"
210
+ size="condensed"
211
+ class="dismiss-button"
212
+ icon="close-line"
213
+ @click="${(x) => x.open = false}"
214
+ ></${buttonTag}>`;
215
+ }
216
+ function handleEscapeKey(dialog, event) {
217
+ if (event.key === "Escape" && dialog.modal) {
218
+ dialog.open = false;
219
+ }
220
+ return true;
221
+ }
222
+ const DialogTemplate = (context) => {
223
+ const elevationTag = context.tagFor(definition.Elevation);
224
+ const iconTag = context.tagFor(icon$1.Icon);
225
+ const buttonTag = context.tagFor(definition$1.Button);
226
+ return index.html`
227
+ <${elevationTag} dp="8">
228
+ <dialog class="${getClasses}"
229
+ @keydown="${(x, c) => handleEscapeKey(x, c.event)}"
230
+ @cancel="${(_, c) => c.event.preventDefault()}"
231
+ returnValue="${(x) => x.returnValue}"
232
+ aria-label="${(x) => x.ariaLabel}"
233
+ >
234
+ <slot name="main">
235
+ <div class="main-wrapper">
236
+ <div class="header ${(x) => x.subtitle ? "border" : ""}">
237
+ <slot name="graphic">
238
+ ${when.when((x) => x.icon, icon(iconTag))}
239
+ </slot>
240
+ ${when.when((x) => x.headline, headline())}
241
+ ${when.when((x) => x.subtitle, subtitle())}
242
+ ${renderDismissButton(buttonTag)}
243
+ </div>
244
+ <div class="body ${(x) => x.fullWidthBody ? "full-width" : ""}" >
245
+ <slot name="body" ${slotted.slotted("bodySlottedContent")}></slot>
246
+ </div>
247
+ <div class="footer">
248
+ <div>
249
+ <slot name="footer" ${slotted.slotted("footerSlottedContent")}></slot>
250
+ </div>
251
+ <div class="actions">
252
+ <slot name="action-items" ${slotted.slotted("actionItemsSlottedContent")}></slot>
253
+ </div>
254
+ </div>
255
+ </div>
256
+ </slot>
257
+ </dialog>
258
+ </${elevationTag}>`;
259
+ };
71
260
 
72
- const dividerDefinition = Divider.compose({
73
- baseName: "divider",
74
- template: DividerTemplate,
75
- styles
261
+ const dialogDefinition = Dialog.compose({
262
+ baseName: "dialog",
263
+ template: DialogTemplate,
264
+ styles: isDialogSupported ? [styles] : [styles, dialogPolyfillStyles]
76
265
  });
77
- const dividerRegistries = [dividerDefinition()];
78
- const registerDivider = index.registerFactory(dividerRegistries);
266
+ const dialogRegistries = [
267
+ dialogDefinition(),
268
+ ...definition$2.iconRegistries,
269
+ ...definition$1.buttonRegistries,
270
+ ...definition.elevationRegistries
271
+ ];
272
+ const registerDialog = index.registerFactory(dialogRegistries);
79
273
 
80
- exports.Divider = Divider;
81
- exports.dividerDefinition = dividerDefinition;
82
- exports.dividerRegistries = dividerRegistries;
83
- exports.registerDivider = registerDivider;
274
+ exports.dialogDefinition = dialogDefinition;
275
+ exports.dialogRegistries = dialogRegistries;
276
+ exports.registerDialog = registerDialog;
@@ -1,78 +1,272 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, h as html, r as registerFactory } from './index.js';
2
- import { O as Orientation } from './aria.js';
1
+ import { a as attr, F as FoundationElement, o as observable, h as html, r as registerFactory } from './index.js';
2
+ import { a as iconRegistries } from './definition27.js';
3
+ import { B as Button, a as buttonRegistries } from './definition11.js';
4
+ import { E as Elevation, e as elevationRegistries } from './definition62.js';
5
+ import './affix.js';
6
+ import './index2.js';
7
+ import { L as Localized } from './localized.js';
8
+ import { a as applyMixins } from './apply-mixins.js';
9
+ import { I as Icon } from './icon.js';
10
+ import { w as when } from './when.js';
11
+ import { s as slotted } from './slotted.js';
3
12
  import { c as classNames } from './class-names.js';
4
13
 
5
- /**
6
- * Divider roles
7
- * @public
8
- */
9
- const DividerRole = {
10
- /**
11
- * The divider semantically separates content
12
- */
13
- separator: "separator",
14
- /**
15
- * The divider has no semantic value and is for visual presentation only.
16
- */
17
- presentation: "presentation",
18
- };
19
-
20
- /**
21
- * A Divider Custom HTML Element.
22
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
23
- *
24
- * @public
25
- */
26
- let Divider$1 = class Divider extends FoundationElement {
27
- constructor() {
28
- super(...arguments);
29
- /**
30
- * The role of the element.
31
- *
32
- * @public
33
- * @remarks
34
- * HTML Attribute: role
35
- */
36
- this.role = DividerRole.separator;
37
- /**
38
- * The orientation of the divider.
39
- *
40
- * @public
41
- * @remarks
42
- * HTML Attribute: orientation
43
- */
44
- this.orientation = Orientation.horizontal;
45
- }
46
- };
47
- __decorate([
48
- attr
49
- ], Divider$1.prototype, "role", void 0);
50
- __decorate([
51
- attr
52
- ], Divider$1.prototype, "orientation", void 0);
14
+ const dialogPolyfillStyles = "dialog{position:absolute;left:0;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;margin:auto;border:solid;padding:1em;background:white;color:#000;display:block}dialog:not([open]){display:none}dialog+.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.1)}._dialog_overlay{position:fixed;inset:0}dialog.fixed{position:fixed;top:50%;transform:translateY(-50%)}\n";
53
15
 
54
- const styles = ":host{display:block}.base{display:block;background-color:var(--vvd-color-neutral-200)}.base:not(.vertical){block-size:1px;inline-size:100%}.base.vertical{block-size:100%;inline-size:1px}\n";
16
+ const styles = ".base{white-space:initial;box-sizing:border-box;padding:0;border:none;border-radius:8px;background-color:transparent;color:var(--vvd-color-canvas-text);max-block-size:var(--dialog-max-block-size, calc(100vh - 64px));max-inline-size:var(--dialog-max-inline-size, var(--_dialog-default-max-inline-size));min-inline-size:var(--dialog-min-inline-size, 280px)}@media not all and (width >= 600px){.base{--_dialog-default-max-inline-size: 90vw}}@media (width >= 600px){.base{--_dialog-default-max-inline-size: 560px}}.base:not(.modal){z-index:var(--dialog-z-index, 1)}.base.modal{position:fixed;box-shadow:0 4px 20px #00000059}.base.modal::backdrop{background-color:var(--vvd-color-canvas-text, currentColor);opacity:.5}.base:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.main-wrapper{display:flex;box-sizing:border-box;flex-direction:column;gap:24px;padding-block:24px}.main-wrapper>*{box-sizing:border-box}.header{display:grid;align-items:flex-start;justify-content:space-between;inline-size:100%;padding-inline:24px}.base:not(.icon-placement-side) .header{grid-template-columns:1fr auto;grid-template-rows:auto auto auto}.base:not(.icon-placement-side) .header .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2)));grid-column:1/2;grid-row:1/2;line-height:1;margin-block-end:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.icon-placement-side .header{grid-template-columns:auto 1fr auto;grid-template-rows:auto auto}.base.icon-placement-side .header .icon{font-size:calc(1px*(28 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}.base.icon-placement-side .header ::slotted(*),.base.icon-placement-side .header .icon{grid-column:1/2;grid-row:1/-1;margin-inline-end:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2)}.header.border{position:relative}.header.border:after{position:absolute;bottom:-24px;left:0;background-color:var(--vvd-color-neutral-200);block-size:1px;content:\"\";inline-size:100%}.base.hide-body .header.border:after{content:none}.body:not(.full-width){padding-inline:24px}.hide-body .body{display:none}.footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-inline:24px}.hide-footer .footer{display:none}.footer .actions{display:flex;align-self:flex-end;gap:8px}.dismiss-button{flex-shrink:0;grid-column:-2/-1;grid-row:1/-1;margin-block-start:-8px;margin-inline:4px -8px}.headline{font:var(--vvd-typography-heading-4)}.subtitle{font:var(--vvd-typography-base)}slot[name=main]{display:block;overflow:hidden auto;max-width:inherit;max-height:inherit;border-radius:inherit}\n";
55
17
 
56
- class Divider extends Divider$1 {
18
+ var __defProp = Object.defineProperty;
19
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
20
+ var __decorateClass = (decorators, target, key, kind) => {
21
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
22
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
23
+ if (decorator = decorators[i])
24
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
25
+ if (kind && result)
26
+ __defProp(target, key, result);
27
+ return result;
28
+ };
29
+ const isDialogSupported = Boolean(
30
+ window.HTMLDialogElement && window.HTMLDialogElement.prototype.showModal
31
+ );
32
+ let dialogPolyfill;
33
+ (async () => {
34
+ if (!isDialogSupported) {
35
+ delete window.HTMLDialogElement;
36
+ dialogPolyfill = await import('./dialog-polyfill.esm.js');
37
+ }
38
+ })();
39
+ class Dialog extends FoundationElement {
40
+ constructor() {
41
+ super(...arguments);
42
+ this.open = false;
43
+ this.fullWidthBody = false;
44
+ this.ariaLabel = null;
45
+ this.dismissButtonAriaLabel = null;
46
+ this.noLightDismiss = false;
47
+ this.#modal = false;
48
+ this.#handleScrimClick = (event) => {
49
+ if (event.target !== this.#dialog || this.noLightDismiss) {
50
+ return;
51
+ }
52
+ const rect = this.#dialog.getBoundingClientRect();
53
+ const clickedInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
54
+ this.open = clickedInDialog;
55
+ };
56
+ this.#handleInternalFormSubmit = (event) => {
57
+ if (event.target.method !== "dialog") {
58
+ return;
59
+ }
60
+ this.open = false;
61
+ };
62
+ }
63
+ #modal;
64
+ set returnValue(value) {
65
+ this.#dialog.returnValue = value;
66
+ }
67
+ get returnValue() {
68
+ return this.#dialog?.returnValue;
69
+ }
70
+ /**
71
+ * @internal
72
+ */
73
+ get modal() {
74
+ return this.#modal;
75
+ }
76
+ #dialogElement;
77
+ get #dialog() {
78
+ if (!this.#dialogElement) {
79
+ this.#dialogElement = this.shadowRoot.querySelector(
80
+ "dialog"
81
+ );
82
+ if (this.#dialogElement) {
83
+ this.#dialogElement.open = this.open;
84
+ if (dialogPolyfill) {
85
+ dialogPolyfill.registerDialog(this.#dialogElement);
86
+ }
87
+ }
88
+ }
89
+ return this.#dialogElement;
90
+ }
91
+ /**
92
+ * @internal
93
+ */
94
+ openChanged(oldValue, newValue) {
95
+ if (oldValue === void 0) {
96
+ return;
97
+ }
98
+ if (!newValue) {
99
+ this.close();
100
+ } else {
101
+ if (this.#dialog) {
102
+ this.#dialog.open = true;
103
+ }
104
+ }
105
+ }
106
+ #handleScrimClick;
107
+ #handleInternalFormSubmit;
108
+ close() {
109
+ if (this.#dialog.open) {
110
+ this.#dialog.close();
111
+ this.$emit("close", this.returnValue, { bubbles: false });
112
+ }
113
+ this.open = false;
114
+ this.#handleModal(false);
115
+ }
116
+ #handleModal(show) {
117
+ this.#modal = show;
118
+ this.#dialog.toggleAttribute("aria-modal", show);
119
+ this.#dialog.classList.toggle("modal", show);
120
+ }
121
+ show() {
122
+ this.#dialog.show();
123
+ this.open = true;
124
+ }
125
+ showModal() {
126
+ this.#handleModal(true);
127
+ this.#dialog.showModal();
128
+ this.open = true;
129
+ }
130
+ connectedCallback() {
131
+ super.connectedCallback();
132
+ this.#dialog.addEventListener("mousedown", this.#handleScrimClick);
133
+ this.#dialog.addEventListener("submit", this.#handleInternalFormSubmit);
134
+ }
135
+ disconnectedCallback() {
136
+ super.disconnectedCallback();
137
+ this.#dialog.removeEventListener("mousedown", this.#handleScrimClick);
138
+ this.#dialog.removeEventListener("submit", this.#handleInternalFormSubmit);
139
+ }
57
140
  }
141
+ __decorateClass([
142
+ attr({ mode: "boolean" })
143
+ ], Dialog.prototype, "open", 2);
144
+ __decorateClass([
145
+ attr
146
+ ], Dialog.prototype, "icon", 2);
147
+ __decorateClass([
148
+ attr({ attribute: "icon-placement" })
149
+ ], Dialog.prototype, "iconPlacement", 2);
150
+ __decorateClass([
151
+ attr
152
+ ], Dialog.prototype, "subtitle", 2);
153
+ __decorateClass([
154
+ attr
155
+ ], Dialog.prototype, "headline", 2);
156
+ __decorateClass([
157
+ attr({ attribute: "full-width-body", mode: "boolean" })
158
+ ], Dialog.prototype, "fullWidthBody", 2);
159
+ __decorateClass([
160
+ attr({ attribute: "aria-label" })
161
+ ], Dialog.prototype, "ariaLabel", 2);
162
+ __decorateClass([
163
+ attr({ attribute: "dismiss-button-aria-label" })
164
+ ], Dialog.prototype, "dismissButtonAriaLabel", 2);
165
+ __decorateClass([
166
+ attr({ attribute: "no-light-dismiss", mode: "boolean" })
167
+ ], Dialog.prototype, "noLightDismiss", 2);
168
+ __decorateClass([
169
+ observable
170
+ ], Dialog.prototype, "bodySlottedContent", 2);
171
+ __decorateClass([
172
+ observable
173
+ ], Dialog.prototype, "footerSlottedContent", 2);
174
+ __decorateClass([
175
+ observable
176
+ ], Dialog.prototype, "actionItemsSlottedContent", 2);
177
+ applyMixins(Dialog, Localized);
58
178
 
59
- const getClasses = ({ orientation }) => classNames(
179
+ const getClasses = ({
180
+ iconPlacement,
181
+ bodySlottedContent,
182
+ footerSlottedContent,
183
+ actionItemsSlottedContent
184
+ }) => classNames(
60
185
  "base",
61
- [`${orientation}`, Boolean(orientation)]
186
+ [`icon-placement-${iconPlacement}`, Boolean(iconPlacement)],
187
+ ["hide-body", !bodySlottedContent?.length],
188
+ [
189
+ "hide-footer",
190
+ !(footerSlottedContent?.length || actionItemsSlottedContent?.length)
191
+ ]
62
192
  );
63
- const DividerTemplate = () => html`
64
- <span
65
- class="${getClasses}"
66
- orientation="${(x) => x.orientation}"
67
- role="${(x) => x.role}"
68
- ></span>`;
193
+ function icon(iconTag) {
194
+ return html`
195
+ <${iconTag} class="icon" name="${(x) => x.icon}"></${iconTag}>
196
+ `;
197
+ }
198
+ function headline() {
199
+ return html` <div class="headline">${(x) => x.headline}</div> `;
200
+ }
201
+ function subtitle() {
202
+ return html` <div class="subtitle">${(x) => x.subtitle}</div> `;
203
+ }
204
+ function renderDismissButton(buttonTag) {
205
+ return html`
206
+ <${buttonTag}
207
+ aria-label="${(x) => x.dismissButtonAriaLabel || x.locale.dialog.dismissButtonLabel}"
208
+ size="condensed"
209
+ class="dismiss-button"
210
+ icon="close-line"
211
+ @click="${(x) => x.open = false}"
212
+ ></${buttonTag}>`;
213
+ }
214
+ function handleEscapeKey(dialog, event) {
215
+ if (event.key === "Escape" && dialog.modal) {
216
+ dialog.open = false;
217
+ }
218
+ return true;
219
+ }
220
+ const DialogTemplate = (context) => {
221
+ const elevationTag = context.tagFor(Elevation);
222
+ const iconTag = context.tagFor(Icon);
223
+ const buttonTag = context.tagFor(Button);
224
+ return html`
225
+ <${elevationTag} dp="8">
226
+ <dialog class="${getClasses}"
227
+ @keydown="${(x, c) => handleEscapeKey(x, c.event)}"
228
+ @cancel="${(_, c) => c.event.preventDefault()}"
229
+ returnValue="${(x) => x.returnValue}"
230
+ aria-label="${(x) => x.ariaLabel}"
231
+ >
232
+ <slot name="main">
233
+ <div class="main-wrapper">
234
+ <div class="header ${(x) => x.subtitle ? "border" : ""}">
235
+ <slot name="graphic">
236
+ ${when((x) => x.icon, icon(iconTag))}
237
+ </slot>
238
+ ${when((x) => x.headline, headline())}
239
+ ${when((x) => x.subtitle, subtitle())}
240
+ ${renderDismissButton(buttonTag)}
241
+ </div>
242
+ <div class="body ${(x) => x.fullWidthBody ? "full-width" : ""}" >
243
+ <slot name="body" ${slotted("bodySlottedContent")}></slot>
244
+ </div>
245
+ <div class="footer">
246
+ <div>
247
+ <slot name="footer" ${slotted("footerSlottedContent")}></slot>
248
+ </div>
249
+ <div class="actions">
250
+ <slot name="action-items" ${slotted("actionItemsSlottedContent")}></slot>
251
+ </div>
252
+ </div>
253
+ </div>
254
+ </slot>
255
+ </dialog>
256
+ </${elevationTag}>`;
257
+ };
69
258
 
70
- const dividerDefinition = Divider.compose({
71
- baseName: "divider",
72
- template: DividerTemplate,
73
- styles
259
+ const dialogDefinition = Dialog.compose({
260
+ baseName: "dialog",
261
+ template: DialogTemplate,
262
+ styles: isDialogSupported ? [styles] : [styles, dialogPolyfillStyles]
74
263
  });
75
- const dividerRegistries = [dividerDefinition()];
76
- const registerDivider = registerFactory(dividerRegistries);
264
+ const dialogRegistries = [
265
+ dialogDefinition(),
266
+ ...iconRegistries,
267
+ ...buttonRegistries,
268
+ ...elevationRegistries
269
+ ];
270
+ const registerDialog = registerFactory(dialogRegistries);
77
271
 
78
- export { Divider as D, dividerRegistries as a, dividerDefinition as d, registerDivider as r };
272
+ export { dialogRegistries as a, dialogDefinition as d, registerDialog as r };