@vonage/vivid 4.17.0 → 4.18.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 (363) hide show
  1. package/custom-elements.json +3903 -3860
  2. package/date-time-picker/index.cjs +5 -0
  3. package/date-time-picker/index.js +3 -0
  4. package/dial-pad/index.cjs +1 -1
  5. package/dial-pad/index.js +1 -1
  6. package/dialog/index.cjs +1 -1
  7. package/dialog/index.js +1 -1
  8. package/divider/index.cjs +1 -1
  9. package/divider/index.js +1 -1
  10. package/elevation/index.cjs +1 -1
  11. package/elevation/index.js +1 -1
  12. package/empty-state/index.cjs +1 -1
  13. package/empty-state/index.js +1 -1
  14. package/fab/index.cjs +1 -1
  15. package/fab/index.js +1 -1
  16. package/file-picker/index.cjs +1 -1
  17. package/file-picker/index.js +1 -1
  18. package/header/index.cjs +1 -1
  19. package/header/index.js +1 -1
  20. package/icon/index.cjs +1 -1
  21. package/icon/index.js +1 -1
  22. package/index.cjs +136 -133
  23. package/index.js +45 -44
  24. package/layout/index.cjs +1 -1
  25. package/layout/index.js +1 -1
  26. package/lib/action-group/action-group.d.ts +449 -3
  27. package/lib/banner/banner.d.ts +449 -3
  28. package/lib/breadcrumb-item/breadcrumb-item.d.ts +449 -1
  29. package/lib/checkbox/checkbox.d.ts +449 -4
  30. package/lib/components.d.ts +1 -0
  31. package/lib/date-picker/date-picker.d.ts +2182 -4
  32. package/lib/date-picker/date-picker.template.d.ts +2 -0
  33. package/lib/date-range-picker/date-range-picker.d.ts +1110 -4
  34. package/lib/date-range-picker/date-range-picker.template.d.ts +2 -0
  35. package/lib/date-time-picker/date-time-picker.d.ts +2175 -0
  36. package/lib/date-time-picker/date-time-picker.template.d.ts +2 -0
  37. package/lib/date-time-picker/definition.d.ts +1 -0
  38. package/lib/date-time-picker/locale.d.ts +9 -0
  39. package/lib/dialog/dialog.d.ts +449 -2
  40. package/lib/divider/divider.d.ts +448 -1
  41. package/lib/menu/menu.d.ts +446 -1
  42. package/lib/nav-disclosure/nav-disclosure.d.ts +449 -2
  43. package/lib/number-field/number-field.d.ts +450 -3
  44. package/lib/option/option.d.ts +1 -11
  45. package/lib/progress/progress.d.ts +449 -2
  46. package/lib/progress-ring/progress-ring.d.ts +449 -2
  47. package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +1 -0
  48. package/lib/rich-text-editor/rich-text-editor.d.ts +7 -4
  49. package/lib/select/select.d.ts +1 -5
  50. package/lib/selectable-box/selectable-box.d.ts +449 -2
  51. package/lib/slider/slider.d.ts +449 -3
  52. package/lib/split-button/split-button.d.ts +449 -3
  53. package/lib/switch/switch.d.ts +449 -2
  54. package/lib/tag-group/tag-group.d.ts +449 -2
  55. package/lib/text-anchor/text-anchor.d.ts +449 -1
  56. package/lib/text-area/text-area.d.ts +450 -3
  57. package/lib/text-field/text-field.d.ts +450 -7
  58. package/lib/time-picker/locale.d.ts +0 -2
  59. package/lib/time-picker/time-picker.d.ts +1053 -9
  60. package/lib/time-picker/time-picker.template.d.ts +2 -1
  61. package/locales/de-DE.cjs +29 -5
  62. package/locales/de-DE.js +29 -5
  63. package/locales/en-GB.cjs +29 -5
  64. package/locales/en-GB.js +29 -5
  65. package/locales/en-US.cjs +29 -5
  66. package/locales/en-US.js +29 -5
  67. package/locales/ja-JP.cjs +29 -5
  68. package/locales/ja-JP.js +29 -5
  69. package/locales/zh-CN.cjs +29 -5
  70. package/locales/zh-CN.js +29 -5
  71. package/menu/index.cjs +1 -1
  72. package/menu/index.js +1 -1
  73. package/menu-item/index.cjs +1 -1
  74. package/menu-item/index.js +1 -1
  75. package/nav/index.cjs +1 -1
  76. package/nav/index.js +1 -1
  77. package/nav-disclosure/index.cjs +1 -1
  78. package/nav-disclosure/index.js +1 -1
  79. package/nav-item/index.cjs +1 -1
  80. package/nav-item/index.js +1 -1
  81. package/note/index.cjs +1 -1
  82. package/note/index.js +1 -1
  83. package/number-field/index.cjs +1 -1
  84. package/number-field/index.js +1 -1
  85. package/option/index.cjs +1 -1
  86. package/option/index.js +1 -1
  87. package/package.json +1 -1
  88. package/pagination/index.cjs +1 -1
  89. package/pagination/index.js +1 -1
  90. package/popup/index.cjs +1 -1
  91. package/popup/index.js +1 -1
  92. package/progress/index.cjs +1 -1
  93. package/progress/index.js +1 -1
  94. package/progress-ring/index.cjs +1 -1
  95. package/progress-ring/index.js +1 -1
  96. package/radio/index.cjs +1 -1
  97. package/radio/index.js +1 -1
  98. package/radio-group/index.cjs +1 -1
  99. package/radio-group/index.js +1 -1
  100. package/range-slider/index.cjs +1 -1
  101. package/range-slider/index.js +1 -1
  102. package/rich-text-editor/index.cjs +1 -1
  103. package/rich-text-editor/index.js +1 -1
  104. package/searchable-select/index.cjs +1 -1
  105. package/searchable-select/index.js +1 -1
  106. package/select/index.cjs +1 -1
  107. package/select/index.js +1 -1
  108. package/selectable-box/index.cjs +1 -1
  109. package/selectable-box/index.js +1 -1
  110. package/shared/Reflector.cjs +71 -0
  111. package/shared/Reflector.js +69 -0
  112. package/shared/affix.cjs +1 -1
  113. package/shared/affix.js +1 -1
  114. package/shared/anchor.cjs +0 -10
  115. package/shared/anchor.js +0 -10
  116. package/shared/aria/delegates-aria.d.ts +454 -0
  117. package/shared/base-progress.js +1 -1
  118. package/shared/breadcrumb-item.cjs +2 -1
  119. package/shared/breadcrumb-item.js +2 -1
  120. package/shared/button.cjs +2 -13
  121. package/shared/button.js +2 -13
  122. package/shared/{presentationDate.cjs → calendar-picker.template.cjs} +730 -900
  123. package/shared/{presentationDate.js → calendar-picker.template.js} +672 -845
  124. package/shared/datetime/dateTimeStr.d.ts +6 -0
  125. package/shared/datetime/presentationDate.d.ts +4 -0
  126. package/shared/{date-picker/calendar → datetime}/presentationDateRange.d.ts +3 -3
  127. package/shared/datetime/presentationDateTime.d.ts +4 -0
  128. package/{lib/time-picker/time → shared/datetime}/time.d.ts +1 -0
  129. package/shared/definition.cjs +1 -1
  130. package/shared/definition.js +1 -1
  131. package/shared/definition11.cjs +8 -11
  132. package/shared/definition11.js +8 -11
  133. package/shared/definition14.cjs +2 -2
  134. package/shared/definition14.js +2 -2
  135. package/shared/definition15.cjs +3 -10
  136. package/shared/definition15.js +3 -10
  137. package/shared/definition16.cjs +29 -33
  138. package/shared/definition16.js +29 -33
  139. package/shared/definition17.cjs +1 -1
  140. package/shared/definition17.js +1 -1
  141. package/shared/definition18.cjs +56 -91
  142. package/shared/definition18.js +56 -91
  143. package/shared/definition19.cjs +68 -32
  144. package/shared/definition19.js +58 -22
  145. package/shared/definition20.cjs +253 -220
  146. package/shared/definition20.js +254 -220
  147. package/shared/definition21.cjs +200 -286
  148. package/shared/definition21.js +198 -284
  149. package/shared/definition22.cjs +302 -31
  150. package/shared/definition22.js +301 -30
  151. package/shared/definition23.cjs +37 -58
  152. package/shared/definition23.js +36 -57
  153. package/shared/definition24.cjs +50 -70
  154. package/shared/definition24.js +49 -69
  155. package/shared/definition25.cjs +75 -2475
  156. package/shared/definition25.js +74 -2475
  157. package/shared/definition26.cjs +2480 -50
  158. package/shared/definition26.js +2479 -48
  159. package/shared/definition27.cjs +53 -271
  160. package/shared/definition27.js +52 -269
  161. package/shared/definition28.cjs +271 -48
  162. package/shared/definition28.js +269 -47
  163. package/shared/definition29.cjs +37 -764
  164. package/shared/definition29.js +36 -758
  165. package/shared/definition3.cjs +2 -9
  166. package/shared/definition3.js +2 -9
  167. package/shared/definition30.cjs +739 -57
  168. package/shared/definition30.js +733 -56
  169. package/shared/definition31.cjs +93 -22
  170. package/shared/definition31.js +92 -21
  171. package/shared/definition32.cjs +28 -10
  172. package/shared/definition32.js +27 -9
  173. package/shared/definition33.cjs +10 -52
  174. package/shared/definition33.js +9 -51
  175. package/shared/definition34.cjs +30 -411
  176. package/shared/definition34.js +30 -412
  177. package/shared/definition35.cjs +422 -52
  178. package/shared/definition35.js +423 -53
  179. package/shared/definition36.cjs +53 -216
  180. package/shared/definition36.js +53 -215
  181. package/shared/definition37.cjs +201 -71
  182. package/shared/definition37.js +200 -70
  183. package/shared/definition38.cjs +53 -48
  184. package/shared/definition38.js +51 -46
  185. package/shared/definition39.cjs +57 -263
  186. package/shared/definition39.js +56 -262
  187. package/shared/definition4.cjs +2 -2
  188. package/shared/definition4.js +2 -2
  189. package/shared/definition40.cjs +220 -148
  190. package/shared/definition40.js +220 -148
  191. package/shared/definition41.cjs +143 -567
  192. package/shared/definition41.js +143 -568
  193. package/shared/definition42.cjs +596 -12573
  194. package/shared/definition42.js +596 -12573
  195. package/shared/definition43.cjs +13489 -1058
  196. package/shared/definition43.js +13489 -1059
  197. package/shared/definition44.cjs +936 -698
  198. package/shared/definition44.js +937 -698
  199. package/shared/definition45.cjs +850 -105
  200. package/shared/definition45.js +850 -104
  201. package/shared/definition46.cjs +110 -90
  202. package/shared/definition46.js +108 -88
  203. package/shared/definition47.cjs +88 -464
  204. package/shared/definition47.js +87 -463
  205. package/shared/definition48.cjs +457 -111
  206. package/shared/definition48.js +456 -110
  207. package/shared/definition49.cjs +103 -109
  208. package/shared/definition49.js +102 -108
  209. package/shared/definition5.cjs +3 -3
  210. package/shared/definition5.js +3 -3
  211. package/shared/definition50.cjs +136 -14
  212. package/shared/definition50.js +135 -13
  213. package/shared/definition51.cjs +16 -115
  214. package/shared/definition51.js +15 -114
  215. package/shared/definition52.cjs +79 -486
  216. package/shared/definition52.js +78 -485
  217. package/shared/definition53.cjs +503 -24
  218. package/shared/definition53.js +502 -23
  219. package/shared/definition54.cjs +23 -137
  220. package/shared/definition54.js +22 -136
  221. package/shared/definition55.cjs +96 -241
  222. package/shared/definition55.js +95 -241
  223. package/shared/definition56.cjs +261 -61
  224. package/shared/definition56.js +260 -60
  225. package/shared/definition57.cjs +419 -788
  226. package/shared/definition57.js +420 -789
  227. package/shared/definition58.cjs +27 -144
  228. package/shared/definition58.js +27 -143
  229. package/shared/definition59.cjs +83 -54
  230. package/shared/definition59.js +82 -53
  231. package/shared/definition6.cjs +1 -1
  232. package/shared/definition6.js +1 -1
  233. package/shared/definition60.cjs +80 -165
  234. package/shared/definition60.js +79 -163
  235. package/shared/definition61.cjs +143 -230
  236. package/shared/definition61.js +141 -229
  237. package/shared/definition62.cjs +233 -69344
  238. package/shared/definition62.js +232 -69343
  239. package/shared/definition63.cjs +69381 -28
  240. package/shared/definition63.js +69379 -26
  241. package/shared/definition64.cjs +28 -2168
  242. package/shared/definition64.js +27 -2166
  243. package/shared/definition65.cjs +2195 -0
  244. package/shared/definition65.js +2190 -0
  245. package/shared/definition7.cjs +1 -1
  246. package/shared/definition7.js +1 -1
  247. package/shared/definition8.cjs +3 -9
  248. package/shared/definition8.js +3 -9
  249. package/shared/definition9.cjs +1 -1
  250. package/shared/definition9.js +1 -1
  251. package/shared/delegates-aria.cjs +69 -0
  252. package/shared/delegates-aria.js +67 -0
  253. package/shared/form-associated.js +1 -1
  254. package/shared/form-elements.cjs +1 -1
  255. package/shared/form-elements.js +1 -1
  256. package/shared/foundation/anchor/anchor.d.ts +0 -8
  257. package/shared/foundation/button/button.d.ts +449 -7
  258. package/shared/foundation/listbox/listbox.d.ts +0 -9
  259. package/shared/listbox.cjs +4 -30
  260. package/shared/listbox.js +4 -30
  261. package/shared/localization/Locale.d.ts +6 -2
  262. package/shared/option.cjs +1 -38
  263. package/shared/option.js +1 -38
  264. package/shared/picker-field/locale.d.ts +4 -0
  265. package/shared/picker-field/mixins/calendar-picker.d.ts +558 -0
  266. package/shared/{date-picker/locale.d.ts → picker-field/mixins/calendar-picker.locale.d.ts} +1 -3
  267. package/shared/picker-field/mixins/calendar-picker.template.d.ts +555 -0
  268. package/shared/picker-field/mixins/calendar-segments/calendarGrid.d.ts +17 -0
  269. package/shared/{date-picker/calendar → picker-field/mixins/calendar-segments}/monthPickerGrid.d.ts +3 -3
  270. package/{lib/time-picker → shared/picker-field/mixins}/inline-time-picker/columns.d.ts +1 -1
  271. package/{lib/time-picker → shared/picker-field/mixins}/inline-time-picker/inline-time-picker.d.ts +2 -2
  272. package/{lib/time-picker/time/picker.d.ts → shared/picker-field/mixins/inline-time-picker/picker-option.d.ts} +1 -1
  273. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +1110 -0
  274. package/shared/picker-field/mixins/single-date-picker.d.ts +1626 -0
  275. package/shared/picker-field/mixins/single-value-picker.d.ts +518 -0
  276. package/shared/picker-field/mixins/time-selection-picker.d.ts +1053 -0
  277. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +1050 -0
  278. package/shared/picker-field/picker-field.d.ts +11 -0
  279. package/shared/picker-field/picker-field.form-associated.d.ts +11 -0
  280. package/shared/picker-field/picker-field.template.d.ts +7 -0
  281. package/shared/picker-field.template.cjs +315 -0
  282. package/shared/picker-field.template.js +310 -0
  283. package/shared/single-date-picker.cjs +46 -0
  284. package/shared/single-date-picker.js +44 -0
  285. package/shared/single-value-picker.cjs +77 -0
  286. package/shared/single-value-picker.js +75 -0
  287. package/shared/slider.template.cjs +3 -3
  288. package/shared/slider.template.js +3 -3
  289. package/shared/text-anchor.cjs +2 -1
  290. package/shared/text-anchor.js +2 -1
  291. package/shared/text-anchor.template.cjs +3 -5
  292. package/shared/text-anchor.template.js +3 -5
  293. package/shared/text-field.cjs +2 -555
  294. package/shared/text-field.js +2 -554
  295. package/shared/time-selection-picker.template.cjs +776 -0
  296. package/shared/time-selection-picker.template.js +767 -0
  297. package/shared/vivid-element.cjs +1 -1
  298. package/shared/vivid-element.js +1 -1
  299. package/side-drawer/index.cjs +1 -1
  300. package/side-drawer/index.js +1 -1
  301. package/slider/index.cjs +1 -1
  302. package/slider/index.js +1 -1
  303. package/split-button/index.cjs +1 -1
  304. package/split-button/index.js +1 -1
  305. package/styles/core/all.css +1 -1
  306. package/styles/core/theme.css +1 -1
  307. package/styles/core/typography.css +1 -1
  308. package/styles/tokens/theme-dark.css +4 -4
  309. package/styles/tokens/theme-light.css +4 -4
  310. package/styles/tokens/vivid-2-compat.css +1 -1
  311. package/switch/index.cjs +1 -1
  312. package/switch/index.js +1 -1
  313. package/tab/index.cjs +1 -1
  314. package/tab/index.js +1 -1
  315. package/tab-panel/index.cjs +1 -1
  316. package/tab-panel/index.js +1 -1
  317. package/tabs/index.cjs +1 -1
  318. package/tabs/index.js +1 -1
  319. package/tag/index.cjs +1 -1
  320. package/tag/index.js +1 -1
  321. package/tag-group/index.cjs +1 -1
  322. package/tag-group/index.js +1 -1
  323. package/text-anchor/index.cjs +1 -1
  324. package/text-anchor/index.js +1 -1
  325. package/text-area/index.cjs +1 -1
  326. package/text-area/index.js +1 -1
  327. package/text-field/index.cjs +1 -1
  328. package/text-field/index.js +1 -1
  329. package/time-picker/index.cjs +1 -1
  330. package/time-picker/index.js +1 -1
  331. package/toggletip/index.cjs +1 -1
  332. package/toggletip/index.js +1 -1
  333. package/tooltip/index.cjs +1 -1
  334. package/tooltip/index.js +1 -1
  335. package/tree-item/index.cjs +1 -1
  336. package/tree-item/index.js +1 -1
  337. package/tree-view/index.cjs +1 -1
  338. package/tree-view/index.js +1 -1
  339. package/video-player/index.cjs +1 -1
  340. package/video-player/index.js +1 -1
  341. package/vivid.api.json +105 -1152
  342. package/lib/time-picker/time-picker.form-associated.d.ts +0 -11
  343. package/shared/aria-global.cjs +0 -93
  344. package/shared/aria-global.js +0 -91
  345. package/shared/date-picker/calendar/calendarGrid.d.ts +0 -17
  346. package/shared/date-picker/calendar/presentationDate.d.ts +0 -4
  347. package/shared/date-picker/date-picker-base.d.ts +0 -21
  348. package/shared/date-picker/date-picker-base.form-associated.d.ts +0 -11
  349. package/shared/date-picker/date-picker-base.template.d.ts +0 -3
  350. package/shared/foundation/patterns/aria-global.d.ts +0 -21
  351. package/shared/foundation/patterns/index.d.ts +0 -1
  352. package/shared/text-field2.cjs +0 -5
  353. package/shared/text-field2.js +0 -3
  354. package/shared/trapped-focus.cjs +0 -35
  355. package/shared/trapped-focus.js +0 -33
  356. /package/shared/{date-picker/calendar → datetime}/dateRange.d.ts +0 -0
  357. /package/shared/{date-picker/calendar → datetime}/dateStr.d.ts +0 -0
  358. /package/shared/{date-picker/calendar → datetime}/month.d.ts +0 -0
  359. /package/{lib/time-picker/time → shared/datetime}/presentationTime.d.ts +0 -0
  360. /package/shared/{date-picker/calendar → datetime}/year.d.ts +0 -0
  361. /package/shared/{date-picker/calendar → picker-field/mixins/calendar-segments}/segment.d.ts +0 -0
  362. /package/{lib/time-picker → shared/picker-field/mixins}/inline-time-picker/definition.d.ts +0 -0
  363. /package/{lib/time-picker → shared/picker-field/mixins}/inline-time-picker/inline-time-picker.template.d.ts +0 -0
@@ -1,292 +1,74 @@
1
1
  'use strict';
2
2
 
3
+ const definition = require('./definition64.cjs');
3
4
  const vividElement = require('./vivid-element.cjs');
4
- const _has = require('./_has.cjs');
5
5
  const classNames = require('./class-names.cjs');
6
- const when = require('./when.cjs');
7
6
 
8
- const styles = ":host{display:inline-block;vertical-align:sub}.control.connotation-accent{--_connotation-color-primary: var(--vvd-icon-accent-primary, var(--vvd-color-canvas-text))}.control.connotation-announcement{--_connotation-color-primary: var(--vvd-icon-announcement-primary, var(--vvd-color-announcement-500))}.control.connotation-cta{--_connotation-color-primary: var(--vvd-icon-cta-primary, var(--vvd-color-cta-500))}.control.connotation-success{--_connotation-color-primary: var(--vvd-icon-success-primary, var(--vvd-color-success-500))}.control.connotation-warning{--_connotation-color-primary: var(--vvd-icon-warning-primary, var(--vvd-color-warning-300))}.control.connotation-alert{--_connotation-color-primary: var(--vvd-icon-alert-primary, var(--vvd-color-alert-500))}.control.connotation-information{--_connotation-color-primary: var(--vvd-icon-information-primary, var(--vvd-color-information-500))}.control.size--6{--_icon-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2)) - (1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2)))) }.control.size--5{--_icon-block-size: calc(1px*(20 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--4{--_icon-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--3{--_icon-block-size: calc(1px*(28 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--2{--_icon-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--1{--_icon-block-size: calc(1px*(36 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-0{--_icon-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-1{--_icon-block-size: calc(1px*(44 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-2{--_icon-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-3{--_icon-block-size: calc(1px*(52 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-4{--_icon-block-size: calc(1px*(56 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-5{--_icon-block-size: calc(1px*(60 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control:not(.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-0,.size-1,.size-2,.size-3,.size-4,.size-5){--_icon-block-size: 1em}.control{display:flex;margin:unset;block-size:var(--_icon-block-size);color:currentColor;contain:strict;inline-size:var(--_icon-block-size)}.control[class*=connotation]{color:var(--_connotation-color-primary)}slot,svg,::slotted(:where(svg,img)){margin:auto;block-size:inherit;inline-size:inherit}";
9
-
10
- function _arity(n, fn) {
11
- /* eslint-disable no-unused-vars */
12
- switch (n) {
13
- case 0:
14
- return function () {
15
- return fn.apply(this, arguments);
16
- };
17
-
18
- case 1:
19
- return function (a0) {
20
- return fn.apply(this, arguments);
21
- };
22
-
23
- case 2:
24
- return function (a0, a1) {
25
- return fn.apply(this, arguments);
26
- };
27
-
28
- case 3:
29
- return function (a0, a1, a2) {
30
- return fn.apply(this, arguments);
31
- };
32
-
33
- case 4:
34
- return function (a0, a1, a2, a3) {
35
- return fn.apply(this, arguments);
36
- };
37
-
38
- case 5:
39
- return function (a0, a1, a2, a3, a4) {
40
- return fn.apply(this, arguments);
41
- };
42
-
43
- case 6:
44
- return function (a0, a1, a2, a3, a4, a5) {
45
- return fn.apply(this, arguments);
46
- };
47
-
48
- case 7:
49
- return function (a0, a1, a2, a3, a4, a5, a6) {
50
- return fn.apply(this, arguments);
51
- };
52
-
53
- case 8:
54
- return function (a0, a1, a2, a3, a4, a5, a6, a7) {
55
- return fn.apply(this, arguments);
56
- };
57
-
58
- case 9:
59
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
60
- return fn.apply(this, arguments);
61
- };
62
-
63
- case 10:
64
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
65
- return fn.apply(this, arguments);
66
- };
67
-
68
- default:
69
- throw new Error('First argument to _arity must be a non-negative integer no greater than ten');
70
- }
71
- }
72
-
73
- function _identity(x) {
74
- return x;
75
- }
76
-
77
- /**
78
- * A function that does nothing but return the parameter supplied to it. Good
79
- * as a default or placeholder function.
80
- *
81
- * @func
82
- * @memberOf R
83
- * @since v0.1.0
84
- * @category Function
85
- * @sig a -> a
86
- * @param {*} x The value to return.
87
- * @return {*} The input value, `x`.
88
- * @example
89
- *
90
- * R.identity(1); //=> 1
91
- *
92
- * const obj = {};
93
- * R.identity(obj) === obj; //=> true
94
- * @symb R.identity(a) = a
95
- */
96
-
97
- var identity =
98
- /*#__PURE__*/
99
- _has._curry1(_identity);
100
-
101
- /**
102
- * Creates a new function that, when invoked, caches the result of calling `fn`
103
- * for a given argument set and returns the result. Subsequent calls to the
104
- * memoized `fn` with the same argument set will not result in an additional
105
- * call to `fn`; instead, the cached result for that set of arguments will be
106
- * returned.
107
- *
108
- * Care must be taken when implementing key generation to avoid key collision,
109
- * or if tracking references, memory leaks and mutating arguments.
110
- *
111
- * @func
112
- * @memberOf R
113
- * @since v0.24.0
114
- * @category Function
115
- * @sig (*... -> String) -> (*... -> a) -> (*... -> a)
116
- * @param {Function} fn The function to generate the cache key.
117
- * @param {Function} fn The function to memoize.
118
- * @return {Function} Memoized version of `fn`.
119
- * @example
120
- *
121
- * let count = 0;
122
- * const factorial = R.memoizeWith(Number, n => {
123
- * count += 1;
124
- * return R.product(R.range(1, n + 1));
125
- * });
126
- * factorial(5); //=> 120
127
- * factorial(5); //=> 120
128
- * factorial(5); //=> 120
129
- * count; //=> 1
130
- */
131
-
132
- var memoizeWith =
133
- /*#__PURE__*/
134
- _has._curry2(function memoizeWith(mFn, fn) {
135
- var cache = {};
136
- return _arity(fn.length, function () {
137
- var key = mFn.apply(this, arguments);
138
-
139
- if (!_has._has(key, cache)) {
140
- cache[key] = fn.apply(this, arguments);
141
- }
142
-
143
- return cache[key];
144
- });
145
- });
146
-
147
- const ICONS_BASE_URL = "https://icon.resources.vonage.com";
148
- const ICONS_VERSION = "4.6.4";
149
-
150
- const numberConverter = {
151
- toView(value) {
152
- if (value === void 0) {
153
- return null;
154
- }
155
- return value.toString();
156
- },
157
- fromView(value) {
158
- if (typeof value === "string") {
159
- value = parseFloat(value.toString());
160
- }
161
- if (typeof value !== "number") {
162
- return void 0;
163
- }
164
- return isNaN(value) || !isFinite(value) ? void 0 : value;
165
- }
166
- };
167
-
168
- const PLACEHOLDER_ICON = `<svg width="80%" height="80%" viewBox="0 0 64 64">
169
- <g>
170
- <g stroke-width="6" stroke-linecap="round" fill="none">
171
- <path stroke="currentColor" d="M4,32 c0,15,12,28,28,28c8,0,16-4,21-9">
172
- </path>
173
- <path d="M60,32 C60,16,47.464,4,32,4S4,16,4,32">
174
- </path>
175
- <animateTransform values="0,32,32;360,32,32" attributeName="transform" type="rotate" repeatCount="indefinite" dur="750ms">
176
- </animateTransform>
177
- </g>
178
- </g>
179
- </svg>`;
7
+ const styles = ".base{z-index:1;block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));font:var(--vvd-typography-heading-4);inline-size:100%}.base .header-content{display:inline-flex;align-items:center;column-gap:4px}.container{display:flex;box-sizing:border-box;justify-content:space-between;background-color:var(--header-bg-color, var(--vvd-color-canvas));block-size:inherit;color:var(--vvd-color-canvas-text);column-gap:12px;padding-block:8px;padding-inline:16px}.container[part~=vvd-theme-alternate]{color-scheme:var(--vvd-color-scheme)}.app-content{--vvd-header-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2)) + 1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }";
180
8
 
181
9
  var __defProp = Object.defineProperty;
182
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
183
10
  var __decorateClass = (decorators, target, key, kind) => {
184
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
11
+ var result = void 0 ;
185
12
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
186
13
  if (decorator = decorators[i])
187
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
188
- if (kind && result) __defProp(target, key, result);
14
+ result = (decorator(target, key, result) ) || result;
15
+ if (result) __defProp(target, key, result);
189
16
  return result;
190
17
  };
191
- const PLACEHOLDER_DELAY = 500;
192
- const PLACEHOLDER_TIMEOUT = 2e3;
193
- const baseUrlTemplate = (resource, version) => [ICONS_BASE_URL, `v${version}`, resource].join("/");
194
- const assertIsValidResponse = ({ ok, headers }) => {
195
- if (!ok || headers.get("content-type") !== "image/svg+xml") {
196
- throw new Error("Something went wrong");
197
- }
198
- };
199
- const extractSvg = (response) => {
200
- assertIsValidResponse(response);
201
- return response.text();
202
- };
203
- const loadSvg = (iconId, signal) => fetch(baseUrlTemplate([iconId, "svg"].join("."), ICONS_VERSION), {
204
- signal
205
- }).then(extractSvg);
206
- const resolveIcon = memoizeWith(
207
- identity,
208
- (iconId, signal) => iconId.trim() ? loadSvg(iconId, signal) : Promise.resolve("")
209
- );
210
- class Icon extends vividElement.VividElement {
18
+ class Header extends vividElement.VividElement {
211
19
  constructor() {
212
20
  super(...arguments);
213
- this.iconLoaded = false;
214
- this.#abortController = null;
215
- }
216
- get iconUrl() {
217
- return !this.name ? this._svg : baseUrlTemplate(`${this.name}.svg`, ICONS_VERSION);
218
- }
219
- #abortController;
220
- async nameChanged() {
221
- if (this.#abortController) {
222
- this.#abortController.abort();
223
- }
224
- this.#abortController = new AbortController();
225
- this._svg = void 0;
226
- this.iconLoaded = false;
227
- let timeout = setTimeout(() => {
228
- this._svg = PLACEHOLDER_ICON;
229
- timeout = setTimeout(() => {
230
- if (this._svg === PLACEHOLDER_ICON) {
231
- this._svg = void 0;
232
- }
233
- }, PLACEHOLDER_TIMEOUT);
234
- }, PLACEHOLDER_DELAY);
235
- await resolveIcon(this.name ? this.name : "", this.#abortController.signal).then((svg) => {
236
- this._svg = svg;
237
- }).catch(() => {
238
- this._svg = void 0;
239
- }).finally(() => {
240
- clearTimeout(timeout);
241
- this.iconLoaded = true;
242
- });
21
+ this.elevationShadow = false;
22
+ this.alternate = false;
243
23
  }
244
24
  }
245
25
  __decorateClass([
246
- vividElement.attr
247
- ], Icon.prototype, "connotation", 2);
248
- __decorateClass([
249
- vividElement.attr({ converter: numberConverter })
250
- ], Icon.prototype, "size", 2);
251
- __decorateClass([
252
- vividElement.observable
253
- ], Icon.prototype, "_svg", 2);
26
+ vividElement.attr({
27
+ attribute: "elevation-shadow",
28
+ mode: "boolean"
29
+ })
30
+ ], Header.prototype, "elevationShadow");
254
31
  __decorateClass([
255
- vividElement.observable
256
- ], Icon.prototype, "iconLoaded", 2);
257
- __decorateClass([
258
- vividElement.attr
259
- ], Icon.prototype, "name", 2);
260
- __decorateClass([
261
- vividElement.volatile
262
- ], Icon.prototype, "iconUrl", 1);
32
+ vividElement.attr({
33
+ mode: "boolean"
34
+ })
35
+ ], Header.prototype, "alternate");
36
+
37
+ const getPartAlternate = ({ alternate }) => classNames.classNames(["vvd-theme-alternate", Boolean(alternate)]);
38
+ const headerTemplate = (context) => {
39
+ const elevationTag = context.tagFor(definition.Elevation);
40
+ return vividElement.html`
41
+ <${elevationTag} dp="4" ?no-shadow=${(x) => !x.elevationShadow}>
42
+ <header class="base" part="base">
43
+ <!-- a container is needed to distinguish the surface background color of the
44
+ element from its shadow when applying elevation with alternate -->
45
+ <div class="container" part="${getPartAlternate}">
46
+ <section class="header-content">
47
+ <slot></slot>
48
+ </section>
49
+ <section class="header-content">
50
+ <slot name="action-items"></slot>
51
+ </section>
52
+ </div>
53
+ </header>
54
+ </${elevationTag}>
55
+ <div class="app-content">
56
+ <slot name="app-content"></slot>
57
+ </div>
58
+ `;
59
+ };
263
60
 
264
- const getClasses = ({ connotation, size }) => classNames.classNames(
265
- "control",
266
- [`connotation-${connotation}`, Boolean(connotation)],
267
- [`size-${size}`, typeof size === "number"]
61
+ const headerDefinition = vividElement.defineVividComponent(
62
+ "header",
63
+ Header,
64
+ headerTemplate,
65
+ [definition.elevationDefinition],
66
+ {
67
+ styles
68
+ }
268
69
  );
269
- const iconTemplate = vividElement.html`
270
- <figure class="${getClasses}" ?aria-busy="${(x) => !x.iconLoaded}">
271
- <slot>
272
- ${when.when(
273
- (x) => !x.iconLoaded,
274
- vividElement.html`<img alt="${(x) => x.name}" src="${(x) => x.iconUrl}" />`
275
- )}
276
- ${when.when(
277
- (x) => x.iconLoaded && x._svg,
278
- (x) => vividElement.html`${x._svg}`
279
- )}
280
- </slot>
281
- </figure>
282
- `;
283
-
284
- const iconDefinition = vividElement.defineVividComponent("icon", Icon, iconTemplate, [], {
285
- styles
286
- });
287
- const registerIcon = vividElement.createRegisterFunction(iconDefinition);
70
+ const registerHeader = vividElement.createRegisterFunction(headerDefinition);
288
71
 
289
- exports.Icon = Icon;
290
- exports.iconDefinition = iconDefinition;
291
- exports.memoizeWith = memoizeWith;
292
- exports.registerIcon = registerIcon;
72
+ exports.Header = Header;
73
+ exports.headerDefinition = headerDefinition;
74
+ exports.registerHeader = registerHeader;
@@ -1,287 +1,70 @@
1
- import { V as VividElement, a as attr, o as observable, v as volatile, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
2
- import { _ as _curry1, a as _curry2, b as _has } from './_has.js';
1
+ import { E as Elevation, e as elevationDefinition } from './definition64.js';
2
+ import { V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
3
3
  import { c as classNames } from './class-names.js';
4
- import { w as when } from './when.js';
5
4
 
6
- const styles = ":host{display:inline-block;vertical-align:sub}.control.connotation-accent{--_connotation-color-primary: var(--vvd-icon-accent-primary, var(--vvd-color-canvas-text))}.control.connotation-announcement{--_connotation-color-primary: var(--vvd-icon-announcement-primary, var(--vvd-color-announcement-500))}.control.connotation-cta{--_connotation-color-primary: var(--vvd-icon-cta-primary, var(--vvd-color-cta-500))}.control.connotation-success{--_connotation-color-primary: var(--vvd-icon-success-primary, var(--vvd-color-success-500))}.control.connotation-warning{--_connotation-color-primary: var(--vvd-icon-warning-primary, var(--vvd-color-warning-300))}.control.connotation-alert{--_connotation-color-primary: var(--vvd-icon-alert-primary, var(--vvd-color-alert-500))}.control.connotation-information{--_connotation-color-primary: var(--vvd-icon-information-primary, var(--vvd-color-information-500))}.control.size--6{--_icon-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2)) - (1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2)))) }.control.size--5{--_icon-block-size: calc(1px*(20 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--4{--_icon-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--3{--_icon-block-size: calc(1px*(28 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--2{--_icon-block-size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size--1{--_icon-block-size: calc(1px*(36 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-0{--_icon-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-1{--_icon-block-size: calc(1px*(44 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-2{--_icon-block-size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-3{--_icon-block-size: calc(1px*(52 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-4{--_icon-block-size: calc(1px*(56 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control.size-5{--_icon-block-size: calc(1px*(60 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.control:not(.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-0,.size-1,.size-2,.size-3,.size-4,.size-5){--_icon-block-size: 1em}.control{display:flex;margin:unset;block-size:var(--_icon-block-size);color:currentColor;contain:strict;inline-size:var(--_icon-block-size)}.control[class*=connotation]{color:var(--_connotation-color-primary)}slot,svg,::slotted(:where(svg,img)){margin:auto;block-size:inherit;inline-size:inherit}";
7
-
8
- function _arity(n, fn) {
9
- /* eslint-disable no-unused-vars */
10
- switch (n) {
11
- case 0:
12
- return function () {
13
- return fn.apply(this, arguments);
14
- };
15
-
16
- case 1:
17
- return function (a0) {
18
- return fn.apply(this, arguments);
19
- };
20
-
21
- case 2:
22
- return function (a0, a1) {
23
- return fn.apply(this, arguments);
24
- };
25
-
26
- case 3:
27
- return function (a0, a1, a2) {
28
- return fn.apply(this, arguments);
29
- };
30
-
31
- case 4:
32
- return function (a0, a1, a2, a3) {
33
- return fn.apply(this, arguments);
34
- };
35
-
36
- case 5:
37
- return function (a0, a1, a2, a3, a4) {
38
- return fn.apply(this, arguments);
39
- };
40
-
41
- case 6:
42
- return function (a0, a1, a2, a3, a4, a5) {
43
- return fn.apply(this, arguments);
44
- };
45
-
46
- case 7:
47
- return function (a0, a1, a2, a3, a4, a5, a6) {
48
- return fn.apply(this, arguments);
49
- };
50
-
51
- case 8:
52
- return function (a0, a1, a2, a3, a4, a5, a6, a7) {
53
- return fn.apply(this, arguments);
54
- };
55
-
56
- case 9:
57
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
58
- return fn.apply(this, arguments);
59
- };
60
-
61
- case 10:
62
- return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
63
- return fn.apply(this, arguments);
64
- };
65
-
66
- default:
67
- throw new Error('First argument to _arity must be a non-negative integer no greater than ten');
68
- }
69
- }
70
-
71
- function _identity(x) {
72
- return x;
73
- }
74
-
75
- /**
76
- * A function that does nothing but return the parameter supplied to it. Good
77
- * as a default or placeholder function.
78
- *
79
- * @func
80
- * @memberOf R
81
- * @since v0.1.0
82
- * @category Function
83
- * @sig a -> a
84
- * @param {*} x The value to return.
85
- * @return {*} The input value, `x`.
86
- * @example
87
- *
88
- * R.identity(1); //=> 1
89
- *
90
- * const obj = {};
91
- * R.identity(obj) === obj; //=> true
92
- * @symb R.identity(a) = a
93
- */
94
-
95
- var identity =
96
- /*#__PURE__*/
97
- _curry1(_identity);
98
-
99
- /**
100
- * Creates a new function that, when invoked, caches the result of calling `fn`
101
- * for a given argument set and returns the result. Subsequent calls to the
102
- * memoized `fn` with the same argument set will not result in an additional
103
- * call to `fn`; instead, the cached result for that set of arguments will be
104
- * returned.
105
- *
106
- * Care must be taken when implementing key generation to avoid key collision,
107
- * or if tracking references, memory leaks and mutating arguments.
108
- *
109
- * @func
110
- * @memberOf R
111
- * @since v0.24.0
112
- * @category Function
113
- * @sig (*... -> String) -> (*... -> a) -> (*... -> a)
114
- * @param {Function} fn The function to generate the cache key.
115
- * @param {Function} fn The function to memoize.
116
- * @return {Function} Memoized version of `fn`.
117
- * @example
118
- *
119
- * let count = 0;
120
- * const factorial = R.memoizeWith(Number, n => {
121
- * count += 1;
122
- * return R.product(R.range(1, n + 1));
123
- * });
124
- * factorial(5); //=> 120
125
- * factorial(5); //=> 120
126
- * factorial(5); //=> 120
127
- * count; //=> 1
128
- */
129
-
130
- var memoizeWith =
131
- /*#__PURE__*/
132
- _curry2(function memoizeWith(mFn, fn) {
133
- var cache = {};
134
- return _arity(fn.length, function () {
135
- var key = mFn.apply(this, arguments);
136
-
137
- if (!_has(key, cache)) {
138
- cache[key] = fn.apply(this, arguments);
139
- }
140
-
141
- return cache[key];
142
- });
143
- });
144
-
145
- const ICONS_BASE_URL = "https://icon.resources.vonage.com";
146
- const ICONS_VERSION = "4.6.4";
147
-
148
- const numberConverter = {
149
- toView(value) {
150
- if (value === void 0) {
151
- return null;
152
- }
153
- return value.toString();
154
- },
155
- fromView(value) {
156
- if (typeof value === "string") {
157
- value = parseFloat(value.toString());
158
- }
159
- if (typeof value !== "number") {
160
- return void 0;
161
- }
162
- return isNaN(value) || !isFinite(value) ? void 0 : value;
163
- }
164
- };
165
-
166
- const PLACEHOLDER_ICON = `<svg width="80%" height="80%" viewBox="0 0 64 64">
167
- <g>
168
- <g stroke-width="6" stroke-linecap="round" fill="none">
169
- <path stroke="currentColor" d="M4,32 c0,15,12,28,28,28c8,0,16-4,21-9">
170
- </path>
171
- <path d="M60,32 C60,16,47.464,4,32,4S4,16,4,32">
172
- </path>
173
- <animateTransform values="0,32,32;360,32,32" attributeName="transform" type="rotate" repeatCount="indefinite" dur="750ms">
174
- </animateTransform>
175
- </g>
176
- </g>
177
- </svg>`;
5
+ const styles = ".base{z-index:1;block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));font:var(--vvd-typography-heading-4);inline-size:100%}.base .header-content{display:inline-flex;align-items:center;column-gap:4px}.container{display:flex;box-sizing:border-box;justify-content:space-between;background-color:var(--header-bg-color, var(--vvd-color-canvas));block-size:inherit;color:var(--vvd-color-canvas-text);column-gap:12px;padding-block:8px;padding-inline:16px}.container[part~=vvd-theme-alternate]{color-scheme:var(--vvd-color-scheme)}.app-content{--vvd-header-block-size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2)) + 1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }";
178
6
 
179
7
  var __defProp = Object.defineProperty;
180
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
181
8
  var __decorateClass = (decorators, target, key, kind) => {
182
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
9
+ var result = void 0 ;
183
10
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
184
11
  if (decorator = decorators[i])
185
- result = (kind ? decorator(target, key, result) : decorator(result)) || result;
186
- if (kind && result) __defProp(target, key, result);
12
+ result = (decorator(target, key, result) ) || result;
13
+ if (result) __defProp(target, key, result);
187
14
  return result;
188
15
  };
189
- const PLACEHOLDER_DELAY = 500;
190
- const PLACEHOLDER_TIMEOUT = 2e3;
191
- const baseUrlTemplate = (resource, version) => [ICONS_BASE_URL, `v${version}`, resource].join("/");
192
- const assertIsValidResponse = ({ ok, headers }) => {
193
- if (!ok || headers.get("content-type") !== "image/svg+xml") {
194
- throw new Error("Something went wrong");
195
- }
196
- };
197
- const extractSvg = (response) => {
198
- assertIsValidResponse(response);
199
- return response.text();
200
- };
201
- const loadSvg = (iconId, signal) => fetch(baseUrlTemplate([iconId, "svg"].join("."), ICONS_VERSION), {
202
- signal
203
- }).then(extractSvg);
204
- const resolveIcon = memoizeWith(
205
- identity,
206
- (iconId, signal) => iconId.trim() ? loadSvg(iconId, signal) : Promise.resolve("")
207
- );
208
- class Icon extends VividElement {
16
+ class Header extends VividElement {
209
17
  constructor() {
210
18
  super(...arguments);
211
- this.iconLoaded = false;
212
- this.#abortController = null;
213
- }
214
- get iconUrl() {
215
- return !this.name ? this._svg : baseUrlTemplate(`${this.name}.svg`, ICONS_VERSION);
216
- }
217
- #abortController;
218
- async nameChanged() {
219
- if (this.#abortController) {
220
- this.#abortController.abort();
221
- }
222
- this.#abortController = new AbortController();
223
- this._svg = void 0;
224
- this.iconLoaded = false;
225
- let timeout = setTimeout(() => {
226
- this._svg = PLACEHOLDER_ICON;
227
- timeout = setTimeout(() => {
228
- if (this._svg === PLACEHOLDER_ICON) {
229
- this._svg = void 0;
230
- }
231
- }, PLACEHOLDER_TIMEOUT);
232
- }, PLACEHOLDER_DELAY);
233
- await resolveIcon(this.name ? this.name : "", this.#abortController.signal).then((svg) => {
234
- this._svg = svg;
235
- }).catch(() => {
236
- this._svg = void 0;
237
- }).finally(() => {
238
- clearTimeout(timeout);
239
- this.iconLoaded = true;
240
- });
19
+ this.elevationShadow = false;
20
+ this.alternate = false;
241
21
  }
242
22
  }
243
23
  __decorateClass([
244
- attr
245
- ], Icon.prototype, "connotation", 2);
246
- __decorateClass([
247
- attr({ converter: numberConverter })
248
- ], Icon.prototype, "size", 2);
249
- __decorateClass([
250
- observable
251
- ], Icon.prototype, "_svg", 2);
24
+ attr({
25
+ attribute: "elevation-shadow",
26
+ mode: "boolean"
27
+ })
28
+ ], Header.prototype, "elevationShadow");
252
29
  __decorateClass([
253
- observable
254
- ], Icon.prototype, "iconLoaded", 2);
255
- __decorateClass([
256
- attr
257
- ], Icon.prototype, "name", 2);
258
- __decorateClass([
259
- volatile
260
- ], Icon.prototype, "iconUrl", 1);
30
+ attr({
31
+ mode: "boolean"
32
+ })
33
+ ], Header.prototype, "alternate");
34
+
35
+ const getPartAlternate = ({ alternate }) => classNames(["vvd-theme-alternate", Boolean(alternate)]);
36
+ const headerTemplate = (context) => {
37
+ const elevationTag = context.tagFor(Elevation);
38
+ return html`
39
+ <${elevationTag} dp="4" ?no-shadow=${(x) => !x.elevationShadow}>
40
+ <header class="base" part="base">
41
+ <!-- a container is needed to distinguish the surface background color of the
42
+ element from its shadow when applying elevation with alternate -->
43
+ <div class="container" part="${getPartAlternate}">
44
+ <section class="header-content">
45
+ <slot></slot>
46
+ </section>
47
+ <section class="header-content">
48
+ <slot name="action-items"></slot>
49
+ </section>
50
+ </div>
51
+ </header>
52
+ </${elevationTag}>
53
+ <div class="app-content">
54
+ <slot name="app-content"></slot>
55
+ </div>
56
+ `;
57
+ };
261
58
 
262
- const getClasses = ({ connotation, size }) => classNames(
263
- "control",
264
- [`connotation-${connotation}`, Boolean(connotation)],
265
- [`size-${size}`, typeof size === "number"]
59
+ const headerDefinition = defineVividComponent(
60
+ "header",
61
+ Header,
62
+ headerTemplate,
63
+ [elevationDefinition],
64
+ {
65
+ styles
66
+ }
266
67
  );
267
- const iconTemplate = html`
268
- <figure class="${getClasses}" ?aria-busy="${(x) => !x.iconLoaded}">
269
- <slot>
270
- ${when(
271
- (x) => !x.iconLoaded,
272
- html`<img alt="${(x) => x.name}" src="${(x) => x.iconUrl}" />`
273
- )}
274
- ${when(
275
- (x) => x.iconLoaded && x._svg,
276
- (x) => html`${x._svg}`
277
- )}
278
- </slot>
279
- </figure>
280
- `;
281
-
282
- const iconDefinition = defineVividComponent("icon", Icon, iconTemplate, [], {
283
- styles
284
- });
285
- const registerIcon = createRegisterFunction(iconDefinition);
68
+ const registerHeader = createRegisterFunction(headerDefinition);
286
69
 
287
- export { Icon as I, iconDefinition as i, memoizeWith as m, registerIcon as r };
70
+ export { Header as H, headerDefinition as h, registerHeader as r };