@vonage/vivid 3.0.0-next.21 → 3.0.0-next.24

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 (61) hide show
  1. package/README.md +2 -2
  2. package/accordion-item/index.js +12 -7
  3. package/action-group/index.js +19 -4
  4. package/badge/index.js +1 -1
  5. package/banner/index.js +9 -11
  6. package/breadcrumb/index.js +1 -0
  7. package/breadcrumb-item/index.js +11 -4
  8. package/button/index.js +5 -3
  9. package/calendar/index.js +31 -9
  10. package/calendar-event/index.js +19 -32
  11. package/card/index.js +11 -19
  12. package/checkbox/index.js +176 -0
  13. package/elevation/index.js +1 -1
  14. package/fab/index.js +5 -3
  15. package/focus/index.js +1 -1
  16. package/header/index.js +91 -0
  17. package/icon/index.js +1 -1
  18. package/index.js +13 -9
  19. package/lib/accordion-item/index.d.ts +2 -0
  20. package/lib/action-group/action-group.d.ts +1 -0
  21. package/lib/banner/banner.template.d.ts +0 -2
  22. package/lib/banner/index.d.ts +1 -0
  23. package/lib/breadcrumb-item/index.d.ts +1 -0
  24. package/lib/calendar/calendar.d.ts +3 -1
  25. package/lib/calendar/index.d.ts +0 -1
  26. package/lib/calendar-event/calendar-event.d.ts +3 -1
  27. package/lib/card/index.d.ts +0 -1
  28. package/lib/checkbox/checkbox.d.ts +5 -0
  29. package/lib/checkbox/checkbox.template.d.ts +4 -0
  30. package/lib/checkbox/index.d.ts +4 -0
  31. package/lib/components.d.ts +2 -0
  32. package/lib/header/header.d.ts +11 -0
  33. package/lib/header/header.template.d.ts +4 -0
  34. package/lib/header/index.d.ts +2 -0
  35. package/lib/side-drawer/side-drawer.d.ts +8 -1
  36. package/lib/sidenav-item/index.d.ts +1 -0
  37. package/note/index.js +1 -1
  38. package/package.json +7 -3
  39. package/popup/index.js +7 -5
  40. package/progress/index.js +30 -24
  41. package/shared/aria-global.js +3 -40
  42. package/shared/button.js +1 -1
  43. package/shared/calendar-event.js +26 -0
  44. package/shared/es.object.assign.js +1 -1
  45. package/shared/export.js +444 -444
  46. package/shared/focus2.js +2 -459
  47. package/shared/form-associated.js +547 -0
  48. package/shared/icon.js +2 -2
  49. package/shared/index.js +1 -1
  50. package/shared/{object-set-prototype-of.js → iterators.js} +20 -20
  51. package/shared/object-keys.js +1 -1
  52. package/shared/ref.js +41 -0
  53. package/shared/text-anchor.template.js +5 -2
  54. package/shared/to-string.js +1 -1
  55. package/shared/web.dom-collections.iterator.js +2 -2
  56. package/side-drawer/index.js +8587 -11
  57. package/sidenav-item/index.js +7 -6
  58. package/text/index.js +1 -1
  59. package/text-anchor/index.js +4 -1
  60. package/text-field/index.js +7 -5
  61. package/tooltip/index.js +4 -2
package/README.md CHANGED
@@ -27,8 +27,8 @@
27
27
 
28
28
  run:
29
29
 
30
- ```
31
- npm install codemirror
30
+ ```bash
31
+ npm install @vonage/vivid
32
32
  ```
33
33
 
34
34
  use:
@@ -1,19 +1,22 @@
1
+ import '../icon/index.js';
2
+ import '../focus/index.js';
1
3
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
2
4
  import { s as styleInject } from '../shared/style-inject.es.js';
3
5
  import '../shared/web.dom-collections.iterator.js';
4
6
  import { A as AffixIconWithTrailing, a as affixIconTemplateFactory } from '../shared/affix.js';
5
7
  import { a as applyMixins } from '../shared/apply-mixins.js';
8
+ import { f as focusTemplateFactory } from '../shared/focus2.js';
6
9
  import { w as when } from '../shared/when.js';
7
10
  import { c as classNames } from '../shared/class-names.js';
8
- import '../icon/index.js';
9
- import '../shared/export.js';
10
- import '../shared/object-keys.js';
11
- import '../shared/object-set-prototype-of.js';
12
11
  import '../shared/icon.js';
12
+ import '../shared/export.js';
13
+ import '../shared/iterators.js';
13
14
  import '../shared/to-string.js';
14
15
  import '../shared/_has.js';
16
+ import '../shared/focus.js';
17
+ import '../shared/object-keys.js';
15
18
 
16
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.body {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n padding: 8px 32px 24px 16px;\n}\n.icon:not(.icon-trailing) .body {\n padding-left: 48px;\n}\n\n.control {\n display: flex;\n flex-direction: column;\n}\n.control:not(.open) .toggle-close,\n.control:not(.open) .body {\n display: none;\n}\n.control.open .toggle-open {\n display: none;\n}\n.control.open .toggle-close {\n display: initial;\n}\n\n.header {\n padding: 0;\n margin: 0;\n}\n\n.button {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n position: relative;\n display: flex;\n width: 100%;\n align-items: center;\n padding: 16px;\n border: 0 none;\n background: transparent;\n cursor: pointer;\n}\n.button:hover {\n background: var(--vvd-color-neutral-10);\n}\n.button .heading-text {\n flex-grow: 1;\n margin-inline-end: auto;\n text-align: left;\n}\n.button .meta {\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n overflow: hidden;\n max-width: 20%;\n flex-shrink: 0;\n color: var(--vvd-color-neutral-70);\n margin-inline-start: 1rem;\n text-align: end;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.button .indicator {\n display: flex;\n}\n.button .indicator vwc-icon,\n.button .indicator slot[name=indicator i]::slotted(vwc-icon) {\n margin-inline-start: 16px;\n}\n.button .icon {\n margin-inline-end: 16px;\n}\n\n/* Icon */\n.icon-trailing .icon {\n order: 1;\n}";
19
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.body {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n padding: 8px 32px 24px 16px;\n}\n.icon:not(.icon-trailing) .body {\n padding-left: 48px;\n}\n\n.control {\n display: flex;\n flex-direction: column;\n}\n.control:not(.open) .toggle-close,\n.control:not(.open) .body {\n display: none;\n}\n.control.open .toggle-open {\n display: none;\n}\n.control.open .toggle-close {\n display: initial;\n}\n\n.header {\n padding: 0;\n margin: 0;\n}\n\n.button {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n position: relative;\n display: flex;\n width: 100%;\n align-items: center;\n padding: 16px;\n border: 0 none;\n margin: 0;\n background: transparent;\n cursor: pointer;\n outline: 0 none;\n}\n.button:hover {\n background: var(--vvd-color-neutral-10);\n}\n.button .heading-text {\n flex-grow: 1;\n margin-inline-end: auto;\n text-align: left;\n}\n.button .meta {\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n overflow: hidden;\n max-width: 20%;\n flex-shrink: 0;\n color: var(--vvd-color-neutral-70);\n margin-inline-start: 16px;\n text-align: end;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.button .indicator {\n display: flex;\n}\n.button .indicator vwc-icon,\n.button .indicator slot[name=indicator i]::slotted(vwc-icon) {\n margin-inline-start: 16px;\n}\n.button .icon {\n margin-inline-end: 16px;\n}\n\n/* Icon */\n.icon-trailing .icon {\n order: 1;\n}\n\n.button:not(:focus-visible) > .focus-indicator {\n display: none;\n}";
17
20
  styleInject(css_248z);
18
21
 
19
22
  class AccordionItem extends FoundationElement {
@@ -96,10 +99,12 @@ const renderPanelHeader = (context, headingLevel) => {
96
99
 
97
100
  const renderHeaderButton = context => {
98
101
  const affixIconTemplate = affixIconTemplateFactory(context);
102
+ const focusTemplate = focusTemplateFactory(context);
99
103
  return html(_t3 || (_t3 = _`
100
104
  <button class="button" id="header" @click=${0}
101
- ?aria-expanded=${0}
105
+ aria-expanded=${0}
102
106
  aria-controls="${0}">
107
+ ${0}
103
108
  ${0}
104
109
  <span class="heading-text">${0}</span>
105
110
  ${0}
@@ -107,7 +112,7 @@ const renderHeaderButton = context => {
107
112
  ${0}
108
113
  </span>
109
114
  </button>
110
- `), x => x.open = !x.open, x => x.open, PANEL, x => affixIconTemplate(x.icon), x => x.heading, when(x => x.meta, html(_t4 || (_t4 = _`<span class="meta">${0}</span>`), x => x.meta)), when(x => !x.noIndicator && !x.iconTrailing, html(_t5 || (_t5 = _`
115
+ `), x => x.open = !x.open, x => x.open, PANEL, () => focusTemplate, x => affixIconTemplate(x.icon), x => x.heading, when(x => x.meta, html(_t4 || (_t4 = _`<span class="meta">${0}</span>`), x => x.meta)), when(x => !x.noIndicator && !x.iconTrailing, html(_t5 || (_t5 = _`
111
116
  <vwc-icon class="toggle-open" type='chevron-down-solid'></vwc-icon>
112
117
  <vwc-icon class="toggle-close" type='chevron-up-solid'></vwc-icon>
113
118
  `))));
@@ -1,23 +1,38 @@
1
1
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
2
2
  import { s as styleInject } from '../shared/style-inject.es.js';
3
+ import '../shared/web.dom-collections.iterator.js';
3
4
  import { c as classNames } from '../shared/class-names.js';
5
+ import '../shared/export.js';
6
+ import '../shared/object-keys.js';
7
+ import '../shared/iterators.js';
4
8
 
5
- var css_248z = ".base {\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n padding: 4px;\n background-color: var(--_appearance-color-fill);\n box-shadow: 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n column-gap: 4px;\n vertical-align: middle;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-on-canvas);\n --_appearance-color-fill: var(--vvd-color-canvas);\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n::slotted([role=separator]) {\n width: 1px;\n align-self: stretch;\n background-color: var(--vvd-color-neutral-30);\n margin-block: 4px;\n}";
9
+ var css_248z = ":host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n color: var(--_appearance-color-text);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-on-canvas);\n --_appearance-color-fill: var(--vvd-color-canvas);\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n.base::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n::slotted([role=separator]) {\n width: 1px;\n align-self: stretch;\n background-color: var(--vvd-color-neutral-30);\n margin-block: 4px;\n}";
6
10
  styleInject(css_248z);
7
11
 
8
- class ActionGroup extends FoundationElement {}
12
+ class ActionGroup extends FoundationElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.tight = false;
16
+ }
17
+
18
+ }
9
19
 
10
20
  __decorate([attr, __metadata("design:type", String)], ActionGroup.prototype, "shape", void 0);
11
21
 
12
22
  __decorate([attr, __metadata("design:type", String)], ActionGroup.prototype, "appearance", void 0);
13
23
 
24
+ __decorate([attr({
25
+ mode: 'boolean'
26
+ }), __metadata("design:type", Object)], ActionGroup.prototype, "tight", void 0);
27
+
14
28
  let _ = t => t,
15
29
  _t;
16
30
 
17
31
  const getClasses = ({
18
32
  appearance,
19
- shape
20
- }) => classNames('base', [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)]);
33
+ shape,
34
+ tight
35
+ }) => classNames('base', [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['tight', tight]);
21
36
 
22
37
  const ActionGroupTemplate = () => html(_t || (_t = _`
23
38
  <div class="${0}">
package/badge/index.js CHANGED
@@ -6,7 +6,7 @@ import { s as styleInject } from '../shared/style-inject.es.js';
6
6
  import { c as classNames } from '../shared/class-names.js';
7
7
  import '../shared/icon.js';
8
8
  import '../shared/export.js';
9
- import '../shared/object-set-prototype-of.js';
9
+ import '../shared/iterators.js';
10
10
  import '../shared/to-string.js';
11
11
  import '../shared/_has.js';
12
12
  import '../shared/when.js';
package/banner/index.js CHANGED
@@ -1,30 +1,28 @@
1
+ import '../button/index.js';
1
2
  import { F as FoundationElement, c as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
2
3
  import { s as styleInject } from '../shared/style-inject.es.js';
3
4
  import '../shared/web.dom-collections.iterator.js';
4
5
  import { C as Connotation } from '../shared/enums.js';
5
6
  import { b as AffixIcon, a as affixIconTemplateFactory } from '../shared/affix.js';
6
7
  import { a as applyMixins } from '../shared/apply-mixins.js';
7
- import '../button/index.js';
8
- import '../text-anchor/index.js';
9
8
  import { w as when } from '../shared/when.js';
10
9
  import { c as classNames } from '../shared/class-names.js';
11
- import '../shared/export.js';
12
- import '../shared/object-keys.js';
13
- import '../shared/object-set-prototype-of.js';
10
+ import '../icon/index.js';
14
11
  import '../shared/icon.js';
12
+ import '../shared/export.js';
13
+ import '../shared/iterators.js';
15
14
  import '../shared/to-string.js';
16
15
  import '../shared/_has.js';
17
- import '../icon/index.js';
18
16
  import '../focus/index.js';
19
17
  import '../shared/focus.js';
20
18
  import '../shared/button.js';
21
- import '../shared/focus2.js';
19
+ import '../shared/form-associated.js';
22
20
  import '../shared/aria-global.js';
23
- import '../shared/text-anchor.js';
24
- import '../shared/anchor.js';
25
- import '../shared/text-anchor.template.js';
21
+ import '../shared/ref.js';
22
+ import '../shared/focus2.js';
23
+ import '../shared/object-keys.js';
26
24
 
27
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.control {\n overflow: hidden;\n max-height: 10rem;\n background-color: var(--_appearance-color-fill);\n color: var(--_appearance-color-text);\n transition: max-height var(--transition-delay, 200ms);\n}\n.control.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n}\n.control.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n}\n.control.connotation-announcement {\n --_connotation-color-primary: var(--vvd-color-announcement);\n --_connotation-color-on-primary: var(--vvd-color-on-announcement);\n}\n.control.connotation-warning {\n --_connotation-color-primary: var(--vvd-color-warning);\n --_connotation-color-on-primary: var(--vvd-color-on-warning);\n}\n.control:not(.connotation-success, .connotation-alert, .connotation-announcement, .connotation-warning) {\n --_connotation-color-primary: var(--vvd-color-info);\n --_connotation-color-on-primary: var(--vvd-color-on-info);\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transaprent;\n}\n.control.removing {\n max-height: 0;\n}\n.control > .header {\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n min-height: 60px;\n align-items: center;\n justify-content: flex-start;\n}\n.control > .header > .user-content {\n display: flex;\n flex: 1 0;\n align-items: center;\n justify-content: center;\n padding-inline: 16px;\n}\n.control > .header > .user-content > .icon {\n flex: 0 0 auto;\n font-size: 20px;\n margin-inline-end: 15px;\n}\n.control > .header > .user-content > .action-items {\n display: inline-block;\n flex: 0 0 auto;\n padding-inline-start: 15px;\n}\n.control > .header > .user-content > .message {\n padding: 20px 0;\n}\n.control > .header > .dismiss-button {\n --vvd-icon-button-color: inherit;\n flex: 0 0 auto;\n margin-inline-end: 8px;\n}";
25
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.control {\n overflow: hidden;\n max-height: 160px;\n background-color: var(--_appearance-color-fill);\n color: var(--_appearance-color-text);\n transition: max-height var(--transition-delay, 200ms);\n}\n.control.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n}\n.control.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n}\n.control.connotation-announcement {\n --_connotation-color-primary: var(--vvd-color-announcement);\n --_connotation-color-on-primary: var(--vvd-color-on-announcement);\n}\n.control.connotation-warning {\n --_connotation-color-primary: var(--vvd-color-warning);\n --_connotation-color-on-primary: var(--vvd-color-on-warning);\n}\n.control:not(.connotation-success, .connotation-alert, .connotation-announcement, .connotation-warning) {\n --_connotation-color-primary: var(--vvd-color-info);\n --_connotation-color-on-primary: var(--vvd-color-on-info);\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transaprent;\n}\n.control.removing {\n max-height: 0;\n}\n.control > .header {\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n min-height: 60px;\n align-items: center;\n justify-content: flex-start;\n}\n.control > .header > .user-content {\n display: flex;\n flex: 1 0;\n align-items: center;\n justify-content: center;\n padding-inline: 16px;\n}\n.control > .header > .user-content > .icon {\n flex: 0 0 auto;\n font-size: 20px;\n margin-inline-end: 15px;\n}\n.control > .header > .user-content > .action-items {\n display: inline-block;\n flex: 0 0 auto;\n padding-inline-start: 15px;\n}\n.control > .header > .user-content > .message {\n padding: 20px 0;\n}\n.control > .header > .dismiss-button {\n --vvd-icon-button-color: inherit;\n flex: 0 0 auto;\n margin-inline-end: 8px;\n}";
28
26
  styleInject(css_248z);
29
27
 
30
28
  var _Banner_handleRemoveEnd, _Banner_closeOnKeyDown;
@@ -5,6 +5,7 @@ import { s as slotted, e as elements } from '../shared/slotted.js';
5
5
  import '../shared/anchor.js';
6
6
  import '../shared/apply-mixins.js';
7
7
  import '../shared/aria-global.js';
8
+ import '../shared/ref.js';
8
9
 
9
10
  /**
10
11
  * The template for the {@link @microsoft/fast-foundation#Breadcrumb} component.
@@ -1,4 +1,5 @@
1
1
  import '../icon/index.js';
2
+ import '../focus/index.js';
2
3
  import { _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
3
4
  import { s as styleInject } from '../shared/style-inject.es.js';
4
5
  import { B as BreadcrumbItem$1 } from '../shared/breadcrumb-item.js';
@@ -7,17 +8,20 @@ import { w as when } from '../shared/when.js';
7
8
  import { c as classNames } from '../shared/class-names.js';
8
9
  import '../shared/icon.js';
9
10
  import '../shared/export.js';
10
- import '../shared/object-set-prototype-of.js';
11
+ import '../shared/iterators.js';
11
12
  import '../shared/to-string.js';
12
13
  import '../shared/_has.js';
14
+ import '../shared/focus.js';
13
15
  import '../shared/anchor.js';
14
16
  import '../shared/apply-mixins.js';
15
17
  import '../shared/aria-global.js';
18
+ import '../shared/ref.js';
16
19
  import '../shared/affix.js';
17
20
  import '../shared/web.dom-collections.iterator.js';
18
21
  import '../shared/object-keys.js';
22
+ import '../shared/focus2.js';
19
23
 
20
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.breadcrumb-item {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n align-items: center;\n color: var(--vvd-color-on-canvas);\n}\n.breadcrumb-item a {\n color: var(--vvd-color-cta-70);\n font: inherit;\n text-decoration: none;\n}\n.breadcrumb-item a:hover {\n text-decoration: underline;\n}\n.breadcrumb-item vwc-icon {\n margin: 0 16px;\n color: var(--vvd-color-neutral-70);\n font-size: 12px;\n}";
24
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.base {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n align-items: center;\n color: var(--vvd-color-on-canvas);\n}\n.base vwc-icon {\n margin: 0 16px;\n color: var(--vvd-color-neutral-70);\n font-size: 12px;\n}\n\n.control {\n position: relative;\n font: inherit;\n outline: 0 none;\n}\n.control:any-link {\n color: var(--vvd-color-cta-70);\n text-decoration: none;\n}\n.control:any-link:hover {\n text-decoration: underline;\n}\n\n.control:not(:focus-visible) > .focus-indicator {\n display: none;\n}";
21
25
  styleInject(css_248z);
22
26
 
23
27
  class BreadcrumbItem extends BreadcrumbItem$1 {
@@ -35,7 +39,7 @@ let _2 = t => t,
35
39
  _t3,
36
40
  _t4;
37
41
 
38
- const getClasses = _ => classNames('control', 'breadcrumb-item');
42
+ const getClasses = _ => classNames('base');
39
43
 
40
44
  const BreadcrumbItemTemplate = (context, definition) => html(_t || (_t = _2`
41
45
  <div roll="listitem" part="listitem" class="${0}">
@@ -49,7 +53,10 @@ const BreadcrumbItemTemplate = (context, definition) => html(_t || (_t = _2`
49
53
  const vividBreadcrumbItem = BreadcrumbItem.compose({
50
54
  baseName: 'breadcrumb-item',
51
55
  template: BreadcrumbItemTemplate,
52
- styles: css_248z
56
+ styles: css_248z,
57
+ shadowOptions: {
58
+ delegatesFocus: true
59
+ }
53
60
  });
54
61
  designSystem.register(vividBreadcrumbItem());
55
62
 
package/button/index.js CHANGED
@@ -7,16 +7,18 @@ import { B as Button$1 } from '../shared/button.js';
7
7
  import { a as applyMixins } from '../shared/apply-mixins.js';
8
8
  import { s as styleInject } from '../shared/style-inject.es.js';
9
9
  import { f as focusTemplateFactory } from '../shared/focus2.js';
10
- import { r as ref } from '../shared/aria-global.js';
10
+ import { r as ref } from '../shared/ref.js';
11
11
  import { c as classNames } from '../shared/class-names.js';
12
12
  import '../shared/icon.js';
13
13
  import '../shared/export.js';
14
- import '../shared/object-set-prototype-of.js';
14
+ import '../shared/iterators.js';
15
15
  import '../shared/to-string.js';
16
16
  import '../shared/_has.js';
17
17
  import '../shared/when.js';
18
18
  import '../shared/focus.js';
19
19
  import '../shared/object-keys.js';
20
+ import '../shared/form-associated.js';
21
+ import '../shared/aria-global.js';
20
22
 
21
23
  class Button extends Button$1 {
22
24
  constructor() {
@@ -43,7 +45,7 @@ __decorate([attr, __metadata("design:type", String)], Button.prototype, "label",
43
45
 
44
46
  applyMixins(Button, AffixIconWithTrailing);
45
47
 
46
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n outline: 0 none;\n}\n\n.control {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n border: 0 none;\n margin: 0;\n background-color: var(--_appearance-color-fill);\n block-size: var(--_button-block-size);\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n gap: var(--_button-icon-gap);\n outline: 0 none;\n vertical-align: middle;\n /* Size */\n}\n.control.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta);\n --_connotation-color-on-primary: var(--vvd-color-on-cta);\n --_connotation-color-primary-increment: var(--vvd-color-cta-70);\n --_connotation-color-contrast: var(--vvd-color-cta-90);\n --_connotation-color-fierce: var(--vvd-color-cta-80);\n --_connotation-color-firm: var(--vvd-color-cta-70);\n --_connotation-color-soft: var(--vvd-color-cta-20);\n --_connotation-color-faint: var(--vvd-color-cta-10);\n}\n.control.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n --_connotation-color-primary-increment: var(--vvd-color-success-70);\n --_connotation-color-contrast: var(--vvd-color-success-90);\n --_connotation-color-fierce: var(--vvd-color-success-80);\n --_connotation-color-firm: var(--vvd-color-success-70);\n --_connotation-color-soft: var(--vvd-color-success-20);\n --_connotation-color-faint: var(--vvd-color-success-10);\n}\n.control.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n --_connotation-color-primary-increment: var(--vvd-color-alert-70);\n --_connotation-color-contrast: var(--vvd-color-alert-90);\n --_connotation-color-fierce: var(--vvd-color-alert-80);\n --_connotation-color-firm: var(--vvd-color-alert-70);\n --_connotation-color-soft: var(--vvd-color-alert-20);\n --_connotation-color-faint: var(--vvd-color-alert-10);\n}\n.control:not(.connotation-cta, .connotation-success, .connotation-alert) {\n --_connotation-color-primary: var(--vvd-color-on-canvas);\n --_connotation-color-on-primary: var(--vvd-color-canvas);\n --_connotation-color-primary-increment: var(--vvd-color-neutral-90);\n --_connotation-color-contrast: var(--vvd-color-neutral-90);\n --_connotation-color-fierce: var(--vvd-color-neutral-80);\n --_connotation-color-firm: var(--vvd-color-on-canvas);\n --_connotation-color-soft: var(--vvd-color-neutral-20);\n --_connotation-color-faint: var(--vvd-color-neutral-10);\n}\n.control.appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transaprent;\n}\n.control.appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)).appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary-increment);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)).appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:disabled, .disabled).appearance-filled {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: var(--vvd-color-neutral-30);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:disabled, .disabled).appearance-outlined {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.control:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)).appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-fierce);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)).appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transaprent;\n}\n.control:not(:disabled) {\n cursor: pointer;\n}\n.control:disabled {\n cursor: not-allowed;\n}\n.control.icon-only {\n contain: size;\n padding-inline: 0;\n place-content: center;\n}\n@supports (aspect-ratio: 1) {\n .control.icon-only {\n aspect-ratio: 1;\n }\n}\n@supports not (aspect-ratio: 1) {\n .control.icon-only {\n inline-size: var(--_button-block-size);\n }\n}\n.control:not(.stacked).density-condensed {\n --_button-block-size: 32px;\n font: 600 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked).density-condensed:not(.icon-only) {\n --_button-icon-gap: 8px;\n padding-inline: 12px;\n}\n.control:not(.stacked).density-condensed .icon {\n font-size: 16px;\n}\n.control:not(.stacked).density-extended {\n --_button-block-size: 48px;\n font: 600 ultra-condensed 16px / 24px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked).density-extended:not(.icon-only) {\n --_button-icon-gap: 10px;\n padding-inline: 20px;\n}\n.control:not(.stacked).density-extended .icon {\n font-size: 24px;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended) {\n --_button-block-size: 40px;\n font: 600 ultra-condensed 14px / 100% SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended):not(.icon-only) {\n --_button-icon-gap: 8px;\n padding-inline: 16px;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended) .icon {\n font-size: 20px;\n}\n.control.stacked {\n flex-direction: column;\n justify-content: center;\n --_button-block-size: 68px;\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control.stacked:not(.icon-only) {\n --_button-icon-gap: 10px;\n padding-inline: 16px;\n}\n.control.stacked .icon {\n font-size: 20px;\n}\n\n/* Shape */\n.control:not(.shape-pill:not(.stacked)) {\n border-radius: 6px;\n}\n\n.control.shape-pill:not(.stacked):not(.icon-only) {\n border-radius: 24px;\n}\n.control.shape-pill:not(.stacked).icon-only {\n border-radius: 50%;\n}\n\n/* Icon */\n.icon-trailing .icon {\n order: 1;\n}\n\n:not(:focus) > .focus-indicator {\n display: none;\n}\n.appearance-outlined .focus-indicator, .appearance-ghost .focus-indicator {\n --focus-stroke-gap-color: transparent;\n}";
48
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n outline: 0 none;\n}\n\n.control {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n border: 0 none;\n margin: 0;\n background-color: var(--_appearance-color-fill);\n block-size: var(--_button-block-size);\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n gap: var(--_button-icon-gap);\n outline: 0 none;\n vertical-align: middle;\n white-space: nowrap;\n /* Size */\n}\n.control.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta);\n --_connotation-color-on-primary: var(--vvd-color-on-cta);\n --_connotation-color-primary-increment: var(--vvd-color-cta-70);\n --_connotation-color-contrast: var(--vvd-color-cta-90);\n --_connotation-color-fierce: var(--vvd-color-cta-80);\n --_connotation-color-firm: var(--vvd-color-cta-70);\n --_connotation-color-soft: var(--vvd-color-cta-20);\n --_connotation-color-faint: var(--vvd-color-cta-10);\n}\n.control.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n --_connotation-color-primary-increment: var(--vvd-color-success-70);\n --_connotation-color-contrast: var(--vvd-color-success-90);\n --_connotation-color-fierce: var(--vvd-color-success-80);\n --_connotation-color-firm: var(--vvd-color-success-70);\n --_connotation-color-soft: var(--vvd-color-success-20);\n --_connotation-color-faint: var(--vvd-color-success-10);\n}\n.control.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n --_connotation-color-primary-increment: var(--vvd-color-alert-70);\n --_connotation-color-contrast: var(--vvd-color-alert-90);\n --_connotation-color-fierce: var(--vvd-color-alert-80);\n --_connotation-color-firm: var(--vvd-color-alert-70);\n --_connotation-color-soft: var(--vvd-color-alert-20);\n --_connotation-color-faint: var(--vvd-color-alert-10);\n}\n.control:not(.connotation-cta, .connotation-success, .connotation-alert) {\n --_connotation-color-primary: var(--vvd-color-on-canvas);\n --_connotation-color-on-primary: var(--vvd-color-canvas);\n --_connotation-color-primary-increment: var(--vvd-color-neutral-90);\n --_connotation-color-contrast: var(--vvd-color-neutral-90);\n --_connotation-color-fierce: var(--vvd-color-neutral-80);\n --_connotation-color-firm: var(--vvd-color-on-canvas);\n --_connotation-color-soft: var(--vvd-color-neutral-20);\n --_connotation-color-faint: var(--vvd-color-neutral-10);\n}\n.control.appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transaprent;\n}\n.control.appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)).appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary-increment);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)).appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:disabled, .disabled).appearance-filled {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: var(--vvd-color-neutral-30);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:disabled, .disabled).appearance-outlined {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.control:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: transaprent;\n --_appearance-color-outline: transaprent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)).appearance-filled {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-fierce);\n --_appearance-color-outline: transaprent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)).appearance-outlined {\n --_appearance-color-text: var(--_connotation-color-firm);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transaprent;\n}\n.control:not(:disabled) {\n cursor: pointer;\n}\n.control:disabled {\n cursor: not-allowed;\n}\n.control.icon-only {\n contain: size;\n padding-inline: 0;\n place-content: center;\n}\n@supports (aspect-ratio: 1) {\n .control.icon-only {\n aspect-ratio: 1;\n }\n}\n@supports not (aspect-ratio: 1) {\n .control.icon-only {\n inline-size: var(--_button-block-size);\n }\n}\n.control:not(.stacked).density-condensed {\n --_button-block-size: 32px;\n font: 600 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked).density-condensed:not(.icon-only) {\n --_button-icon-gap: 8px;\n padding-inline: 12px;\n}\n.control:not(.stacked).density-condensed .icon {\n font-size: 16px;\n}\n.control:not(.stacked).density-extended {\n --_button-block-size: 48px;\n font: 600 ultra-condensed 16px / 24px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked).density-extended:not(.icon-only) {\n --_button-icon-gap: 10px;\n padding-inline: 20px;\n}\n.control:not(.stacked).density-extended .icon {\n font-size: 24px;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended) {\n --_button-block-size: 40px;\n font: 600 ultra-condensed 14px / 100% SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended):not(.icon-only) {\n --_button-icon-gap: 8px;\n padding-inline: 16px;\n}\n.control:not(.stacked):not(.density-condensed, .density-extended) .icon {\n font-size: 20px;\n}\n.control.stacked {\n flex-direction: column;\n justify-content: center;\n --_button-block-size: 68px;\n font: 600 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n}\n.control.stacked:not(.icon-only) {\n --_button-icon-gap: 10px;\n padding-inline: 16px;\n}\n.control.stacked .icon {\n font-size: 20px;\n}\n\n/* Shape */\n.control:not(.shape-pill:not(.stacked)) {\n border-radius: 6px;\n}\n\n.control.shape-pill:not(.stacked):not(.icon-only) {\n border-radius: 24px;\n}\n.control.shape-pill:not(.stacked).icon-only {\n border-radius: 50%;\n}\n\n/* Icon */\n.icon-trailing .icon {\n order: 1;\n}\n\n:not(:focus-visible) > .focus-indicator {\n display: none;\n}\n.appearance-outlined .focus-indicator, .appearance-ghost .focus-indicator {\n --focus-stroke-gap-color: transparent;\n}";
47
49
  styleInject(css_248z);
48
50
 
49
51
  let _ = t => t,
package/calendar/index.js CHANGED
@@ -1,13 +1,12 @@
1
- import '../elevation/index.js';
2
- import { e as emptyArray, O as Observable, S as SubscriberSet, D as DOM, H as HTMLDirective, f as HTMLView, F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
1
+ import { e as emptyArray, O as Observable, S as SubscriberSet, D as DOM, H as HTMLDirective, g as HTMLView, F as FoundationElement, c as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
3
2
  import { s as styleInject } from '../shared/style-inject.es.js';
4
3
  import '../shared/web.dom-collections.iterator.js';
4
+ import { C as CalendarEvent } from '../shared/calendar-event.js';
5
5
  import '../shared/es.object.assign.js';
6
6
  import { b as _has, _ as _curry1, a as _curry2 } from '../shared/_has.js';
7
- import '../shared/class-names.js';
8
7
  import '../shared/export.js';
9
8
  import '../shared/object-keys.js';
10
- import '../shared/object-set-prototype-of.js';
9
+ import '../shared/iterators.js';
11
10
 
12
11
  /** @internal */
13
12
  function newSplice(index, removed, addedCount) {
@@ -1247,7 +1246,7 @@ _curry1(function isEmpty(x) {
1247
1246
 
1248
1247
  var isEmpty$1 = isEmpty;
1249
1248
 
1250
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\nol {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n[role=grid i] {\n position: relative;\n z-index: 0;\n display: grid;\n margin: auto;\n grid-template-areas: \". column-headers\" \"row-headers calendar\";\n grid-template-columns: min-content auto;\n inline-size: max(100%, 500px);\n min-inline-size: 880px;\n}\n\n.row-headers {\n display: grid;\n grid-area: row-headers;\n grid-template-rows: repeat(24, 1fr);\n margin-inline-end: 2px;\n}\n.row-headers > [role=rowheader i] {\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n}\n.row-headers > [role=rowheader i] > time {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n font-size: small;\n line-height: 1;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.calendar-row {\n display: contents;\n}\n\n.calendar-grid-presentation {\n display: grid;\n overflow: hidden;\n background-color: var(--vvd-color-surface-2dp);\n border-radius: 6px;\n counter-reset: listing;\n filter: var(--vvd-shadow-surface-2dp);\n gap: 1px;\n grid-area: calendar;\n grid-auto-flow: column;\n grid-template: repeat(24, 1fr)/repeat(7, 1fr);\n}\n\n.hours {\n display: contents;\n}\n.hours > [role=listitem i] {\n position: relative;\n grid-column: 1/8;\n grid-row: var(--row);\n min-block-size: 48px;\n pointer-events: none;\n}\n.hours > [role=listitem i]:not(:first-child)::after {\n position: absolute;\n border-block-end: var(--vvd-color-neutral-20) 1px solid;\n content: \"\";\n inline-size: 100%;\n margin-block-start: -1px;\n}\n.hours > [role=listitem i]:nth-child(24n+1) {\n --row: 1;\n}\n.hours > [role=listitem i]:nth-child(24n+2) {\n --row: 2;\n}\n.hours > [role=listitem i]:nth-child(24n+3) {\n --row: 3;\n}\n.hours > [role=listitem i]:nth-child(24n+4) {\n --row: 4;\n}\n.hours > [role=listitem i]:nth-child(24n+5) {\n --row: 5;\n}\n.hours > [role=listitem i]:nth-child(24n+6) {\n --row: 6;\n}\n.hours > [role=listitem i]:nth-child(24n+7) {\n --row: 7;\n}\n.hours > [role=listitem i]:nth-child(24n+8) {\n --row: 8;\n}\n.hours > [role=listitem i]:nth-child(24n+9) {\n --row: 9;\n}\n.hours > [role=listitem i]:nth-child(24n+10) {\n --row: 10;\n}\n.hours > [role=listitem i]:nth-child(24n+11) {\n --row: 11;\n}\n.hours > [role=listitem i]:nth-child(24n+12) {\n --row: 12;\n}\n.hours > [role=listitem i]:nth-child(24n+13) {\n --row: 13;\n}\n.hours > [role=listitem i]:nth-child(24n+14) {\n --row: 14;\n}\n.hours > [role=listitem i]:nth-child(24n+15) {\n --row: 15;\n}\n.hours > [role=listitem i]:nth-child(24n+16) {\n --row: 16;\n}\n.hours > [role=listitem i]:nth-child(24n+17) {\n --row: 17;\n}\n.hours > [role=listitem i]:nth-child(24n+18) {\n --row: 18;\n}\n.hours > [role=listitem i]:nth-child(24n+19) {\n --row: 19;\n}\n.hours > [role=listitem i]:nth-child(24n+20) {\n --row: 20;\n}\n.hours > [role=listitem i]:nth-child(24n+21) {\n --row: 21;\n}\n.hours > [role=listitem i]:nth-child(24n+22) {\n --row: 22;\n}\n.hours > [role=listitem i]:nth-child(24n+23) {\n --row: 23;\n}\n.hours > [role=listitem i]:nth-child(24n+24) {\n --row: 24;\n}\n\n[role=gridcell i] {\n display: grid;\n gap: 1px;\n grid-auto-flow: column;\n}\n\n[role=gridcell i],\n[role=columnheader i],\n[role=columnheader i] [role=button i] {\n position: relative;\n}\n[role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n position: absolute;\n z-index: -1;\n background-color: var(--vvd-color-info-10);\n content: \"\";\n}\n@supports (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n inset: 0;\n }\n}\n@supports not (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n[role=gridcell i]:focus,\n[role=columnheader i]:focus,\n[role=columnheader i] [role=button i]:focus {\n outline: none;\n}\n[role=gridcell i]:not(:focus)::before,\n[role=columnheader i]:not(:focus)::before,\n[role=columnheader i] [role=button i]:not(:focus)::before {\n display: none;\n}\n\n.columns {\n display: contents;\n}\n.columns > [role=gridcell i] {\n position: relative;\n grid-column: var(--column);\n grid-row: 1/25;\n}\n.columns > [role=gridcell i]:nth-child(1) {\n --column: 1;\n}\n.columns > [role=gridcell i]:nth-child(2) {\n --column: 2;\n}\n.columns > [role=gridcell i]:nth-child(3) {\n --column: 3;\n}\n.columns > [role=gridcell i]:nth-child(4) {\n --column: 4;\n}\n.columns > [role=gridcell i]:nth-child(5) {\n --column: 5;\n}\n.columns > [role=gridcell i]:nth-child(6) {\n --column: 6;\n}\n.columns > [role=gridcell i]:nth-child(7) {\n --column: 7;\n}\n.columns > [role=gridcell i]:not(:first-child)::after {\n position: absolute;\n block-size: 100%;\n border-inline-end: var(--vvd-color-neutral-20) 1px solid;\n content: \"\";\n margin-inline-start: -1px;\n}\n\n.column-headers {\n display: grid;\n grid-area: column-headers;\n grid-template-columns: repeat(7, 1fr);\n}\n.column-headers [role=columnheader i] h2 {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: grid;\n align-items: baseline;\n margin: 0;\n grid-template-columns: 1fr auto 1fr;\n}\n.column-headers [role=columnheader i] h2 > em {\n font: inherit;\n inline-size: min-content;\n}\n@supports (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n inset-inline-start: 0;\n }\n}\n@supports not (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n left: 0;\n }\n}\n.column-headers [role=columnheader i] h2 > small {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n text-transform: uppercase;\n}";
1249
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\nol {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n[role=grid i] {\n position: relative;\n z-index: 0;\n display: grid;\n margin: auto;\n grid-template-areas: \". column-headers\" \"row-headers calendar\";\n grid-template-columns: min-content auto;\n inline-size: max(100%, 500px);\n min-inline-size: 880px;\n}\n\n.row-headers {\n display: grid;\n grid-area: row-headers;\n grid-template-rows: repeat(24, 1fr);\n margin-inline-end: 2px;\n}\n.row-headers > [role=rowheader i] {\n display: flex;\n align-items: flex-end;\n justify-content: flex-end;\n}\n.row-headers > [role=rowheader i] > time {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n font-size: small;\n line-height: 1;\n text-transform: uppercase;\n white-space: nowrap;\n}\n\n.calendar-row {\n display: contents;\n}\n\n.calendar-grid-presentation {\n display: grid;\n overflow: hidden;\n background-color: var(--vvd-color-surface-2dp);\n border-radius: 6px;\n counter-reset: listing;\n filter: var(--vvd-shadow-surface-2dp);\n gap: 1px;\n grid-area: calendar;\n grid-auto-flow: column;\n grid-template: repeat(24, 1fr)/repeat(7, 1fr);\n}\n\n.hours {\n display: contents;\n}\n.hours > [role=listitem i] {\n position: relative;\n grid-column: 1/8;\n grid-row: var(--row);\n min-block-size: 48px;\n pointer-events: none;\n}\n.hours > [role=listitem i]:not(:first-child)::after {\n position: absolute;\n border-block-end: var(--vvd-color-neutral-20) 1px solid;\n content: \"\";\n inline-size: 100%;\n margin-block-start: -1px;\n}\n.hours > [role=listitem i]:nth-child(24n+1) {\n --row: 1;\n}\n.hours > [role=listitem i]:nth-child(24n+2) {\n --row: 2;\n}\n.hours > [role=listitem i]:nth-child(24n+3) {\n --row: 3;\n}\n.hours > [role=listitem i]:nth-child(24n+4) {\n --row: 4;\n}\n.hours > [role=listitem i]:nth-child(24n+5) {\n --row: 5;\n}\n.hours > [role=listitem i]:nth-child(24n+6) {\n --row: 6;\n}\n.hours > [role=listitem i]:nth-child(24n+7) {\n --row: 7;\n}\n.hours > [role=listitem i]:nth-child(24n+8) {\n --row: 8;\n}\n.hours > [role=listitem i]:nth-child(24n+9) {\n --row: 9;\n}\n.hours > [role=listitem i]:nth-child(24n+10) {\n --row: 10;\n}\n.hours > [role=listitem i]:nth-child(24n+11) {\n --row: 11;\n}\n.hours > [role=listitem i]:nth-child(24n+12) {\n --row: 12;\n}\n.hours > [role=listitem i]:nth-child(24n+13) {\n --row: 13;\n}\n.hours > [role=listitem i]:nth-child(24n+14) {\n --row: 14;\n}\n.hours > [role=listitem i]:nth-child(24n+15) {\n --row: 15;\n}\n.hours > [role=listitem i]:nth-child(24n+16) {\n --row: 16;\n}\n.hours > [role=listitem i]:nth-child(24n+17) {\n --row: 17;\n}\n.hours > [role=listitem i]:nth-child(24n+18) {\n --row: 18;\n}\n.hours > [role=listitem i]:nth-child(24n+19) {\n --row: 19;\n}\n.hours > [role=listitem i]:nth-child(24n+20) {\n --row: 20;\n}\n.hours > [role=listitem i]:nth-child(24n+21) {\n --row: 21;\n}\n.hours > [role=listitem i]:nth-child(24n+22) {\n --row: 22;\n}\n.hours > [role=listitem i]:nth-child(24n+23) {\n --row: 23;\n}\n.hours > [role=listitem i]:nth-child(24n+24) {\n --row: 24;\n}\n\n[role=gridcell i] {\n display: grid;\n gap: 1px;\n grid-auto-flow: column;\n}\n\n[role=gridcell i],\n[role=columnheader i],\n[role=columnheader i] [role=button i] {\n position: relative;\n}\n[role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n position: absolute;\n z-index: -1;\n background-color: var(--vvd-color-info-10);\n content: \"\";\n}\n@supports (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n inset: 0;\n }\n}\n@supports not (inset: 0) {\n [role=gridcell i]::before,\n[role=columnheader i]::before,\n[role=columnheader i] [role=button i]::before {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n[role=gridcell i]:focus,\n[role=columnheader i]:focus,\n[role=columnheader i] [role=button i]:focus {\n outline: none;\n}\n[role=gridcell i]:not(:focus-visible)::before,\n[role=columnheader i]:not(:focus-visible)::before,\n[role=columnheader i] [role=button i]:not(:focus-visible)::before {\n display: none;\n}\n\n.columns {\n display: contents;\n}\n.columns > [role=gridcell i] {\n position: relative;\n grid-column: var(--column);\n grid-row: 1/25;\n}\n.columns > [role=gridcell i]:nth-child(1) {\n --column: 1;\n}\n.columns > [role=gridcell i]:nth-child(2) {\n --column: 2;\n}\n.columns > [role=gridcell i]:nth-child(3) {\n --column: 3;\n}\n.columns > [role=gridcell i]:nth-child(4) {\n --column: 4;\n}\n.columns > [role=gridcell i]:nth-child(5) {\n --column: 5;\n}\n.columns > [role=gridcell i]:nth-child(6) {\n --column: 6;\n}\n.columns > [role=gridcell i]:nth-child(7) {\n --column: 7;\n}\n.columns > [role=gridcell i]:not(:first-child)::after {\n position: absolute;\n block-size: 100%;\n border-inline-end: var(--vvd-color-neutral-20) 1px solid;\n content: \"\";\n margin-inline-start: -1px;\n}\n\n.column-headers {\n display: grid;\n grid-area: column-headers;\n grid-template-columns: repeat(7, 1fr);\n}\n.column-headers [role=columnheader i] h2 {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: grid;\n align-items: baseline;\n margin: 0;\n grid-template-columns: 1fr auto 1fr;\n}\n.column-headers [role=columnheader i] h2 > em {\n font: inherit;\n inline-size: min-content;\n}\n@supports (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n inset-inline-start: 0;\n }\n}\n@supports not (inset: 0) {\n .column-headers [role=columnheader i] h2 > em {\n left: 0;\n }\n}\n.column-headers [role=columnheader i] h2 > small {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n text-transform: uppercase;\n}";
1251
1250
  styleInject(css_248z);
1252
1251
 
1253
1252
  const ARROW_UP = 'ArrowUp';
@@ -1344,9 +1343,13 @@ const getEventContext = function getEventContext(e) {
1344
1343
  return not$1(isEmpty$1(context)) ? context : null;
1345
1344
  };
1346
1345
 
1346
+ var _Calendar_instances, _Calendar_activeCalendarEvent_get;
1347
1347
  class Calendar extends FoundationElement {
1348
1348
  constructor() {
1349
1349
  super(...arguments);
1350
+
1351
+ _Calendar_instances.add(this);
1352
+
1350
1353
  this.hour12 = false;
1351
1354
  this._hours = 24;
1352
1355
  this._days = 7;
@@ -1367,22 +1370,32 @@ class Calendar extends FoundationElement {
1367
1370
  this.getEventContext = getEventContext;
1368
1371
  }
1369
1372
 
1373
+ getCalendarEventContainingCell(calendarEvent) {
1374
+ const slotName = calendarEvent.getAttribute('slot');
1375
+ const gridCell = this.shadowRoot.querySelector(`slot[name="${slotName}"i]`);
1376
+ return gridCell.parentElement;
1377
+ }
1378
+
1370
1379
  arrowKeysInteractions(key) {
1371
- const activeElement = this.shadowRoot.activeElement;
1380
+ const {
1381
+ activeElement
1382
+ } = this.shadowRoot;
1372
1383
  let focusNext;
1373
1384
 
1374
1385
  if (isCellOrHeader(activeElement)) {
1375
1386
  focusNext = getNextFocusableGridElement.call(this, key, activeElement);
1387
+ } else if (__classPrivateFieldGet(this, _Calendar_instances, "a", _Calendar_activeCalendarEvent_get)) {
1388
+ focusNext = this.getCalendarEventContainingCell(__classPrivateFieldGet(this, _Calendar_instances, "a", _Calendar_activeCalendarEvent_get));
1376
1389
  } else if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('em[role="button"i]')) {
1377
1390
  focusNext = getHeaderDescendantGridCell.call(this, key, activeElement);
1378
1391
  } else {
1379
1392
  focusNext = this.shadowRoot.querySelector('[role="columnheader"i]');
1380
1393
  }
1381
1394
 
1382
- this.moveTo(focusNext);
1395
+ this.activateElement(focusNext);
1383
1396
  }
1384
1397
 
1385
- moveTo(el) {
1398
+ activateElement(el) {
1386
1399
  const onBlur = ({
1387
1400
  target
1388
1401
  }) => target.setAttribute('tabindex', '-1');
@@ -1407,6 +1420,12 @@ class Calendar extends FoundationElement {
1407
1420
  }
1408
1421
 
1409
1422
  }
1423
+ _Calendar_instances = new WeakSet(), _Calendar_activeCalendarEvent_get = function _Calendar_activeCalendarEvent_get() {
1424
+ const {
1425
+ activeElement
1426
+ } = document;
1427
+ return activeElement instanceof CalendarEvent ? activeElement : null;
1428
+ };
1410
1429
 
1411
1430
  __decorate([attr, __metadata("design:type", Object)], Calendar.prototype, "datetime", void 0);
1412
1431
 
@@ -1521,7 +1540,10 @@ const CalendarTemplate = () => html(_t6 || (_t6 = _2`
1521
1540
  const vividCalendar = Calendar.compose({
1522
1541
  baseName: 'calendar',
1523
1542
  template: CalendarTemplate,
1524
- styles: css_248z
1543
+ styles: css_248z,
1544
+ shadowOptions: {
1545
+ delegatesFocus: true
1546
+ }
1525
1547
  });
1526
1548
  designSystem.register(vividCalendar());
1527
1549
 
@@ -1,35 +1,16 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, n as nullableNumberConverter, h as html, d as designSystem } from '../shared/index.js';
1
+ import { h as html, d as designSystem } from '../shared/index.js';
2
2
  import { s as styleInject } from '../shared/style-inject.es.js';
3
+ import { C as CalendarEvent } from '../shared/calendar-event.js';
3
4
  import '../shared/es.object.assign.js';
4
- import { _ as _export, d as descriptors, q as global$1, y as functionUncurryThis, c as hasOwnProperty_1, i as isCallable$1, o as objectDefineProperty, P as copyConstructorProperties$1, x as objectIsPrototypeOf } from '../shared/export.js';
5
+ import { _ as _export, d as descriptors, g as global$1, f as functionUncurryThis, p as hasOwnProperty_1, i as isCallable$1, o as objectDefineProperty, P as copyConstructorProperties$1, b as objectIsPrototypeOf } from '../shared/export.js';
5
6
  import { t as toString$1 } from '../shared/to-string.js';
7
+ import { w as when } from '../shared/when.js';
6
8
  import { c as classNames } from '../shared/class-names.js';
7
9
  import '../shared/object-keys.js';
8
10
 
9
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n display: contents;\n}\n\n.base {\n /* 4 as the indentation limit */\n /* per cell divider */\n /* per cell divider */\n --vvd-calendar-event--indent: calc(0px + var(--vvd-calendar-event--overlap-count, 0) * 8px);\n position: absolute;\n z-index: var(--vvd-calendar-event--overlap-count);\n top: calc(var(--vvd-calendar-event--start, 0) * (100% - 23px) / 24 + calc(1px * var(--vvd-calendar-event--start, 0)));\n overflow: hidden;\n box-sizing: border-box;\n padding: 4px 8px;\n background-color: var(--_connotation-color-primary);\n block-size: calc(var(--vvd-calendar-event--duration, 1) * calc((100% - 23px) / 24) + calc(1px * (var(--vvd-calendar-event--duration, 1) - 1)) - 4px);\n border-radius: 6px;\n color: var(--_connotation-color-on-primary);\n inline-size: calc(100% - 8px - min(var(--vvd-calendar-event--indent), 32px));\n margin-block-start: 2px;\n margin-inline-end: 8px;\n margin-inline-start: min(var(--vvd-calendar-event--indent), 32px);\n max-block-size: calc(100% - calc(var(--vvd-calendar-event--start, 0) * (100% - 23px) / 24 + calc(1px * var(--vvd-calendar-event--start, 0))) - 4px);\n}\n.base.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta);\n --_connotation-color-on-primary: var(--vvd-color-on-cta);\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n}\n.base.connotation-warning {\n --_connotation-color-primary: var(--vvd-color-warning);\n --_connotation-color-on-primary: var(--vvd-color-on-warning);\n}\n.base.connotation-info {\n --_connotation-color-primary: var(--vvd-color-info);\n --_connotation-color-on-primary: var(--vvd-color-on-info);\n}\n.base.connotation-announcement {\n --_connotation-color-primary: var(--vvd-color-announcement);\n --_connotation-color-on-primary: var(--vvd-color-on-announcement);\n}\n.base:not(.connotation-cta, .connotation-success, .connotation-alert, .connotation-warning, .connotation-info, .connotation-announcement) {\n --_connotation-color-primary: var(--vvd-color-on-canvas);\n --_connotation-color-on-primary: var(--vvd-color-canvas);\n}\n@supports (contain: content) {\n .base {\n contain: strict;\n }\n}\n@supports not (contain: content) {\n .base {\n overflow: hidden;\n }\n}\n.base:focus {\n z-index: 2000;\n filter: var(--vvd-shadow-surface-8dp);\n outline: none;\n}\n\nh2 {\n font: 600 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin: 0;\n}\nh2 > strong {\n font: inherit;\n}\n\np {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin: 0;\n}";
11
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n display: contents;\n}\n\n.base {\n /* 4 as the indentation limit */\n /* per cell divider */\n /* per cell divider */\n --vvd-calendar-event--indent: calc(0px + var(--vvd-calendar-event--overlap-count, 0) * 8px);\n position: absolute;\n z-index: var(--vvd-calendar-event--overlap-count);\n top: calc(var(--vvd-calendar-event--start, 0) * (100% - 23px) / 24 + calc(1px * var(--vvd-calendar-event--start, 0)));\n overflow: hidden;\n box-sizing: border-box;\n padding: 4px 8px;\n background-color: var(--_appearance-color-fill);\n block-size: calc(var(--vvd-calendar-event--duration, 1) * calc((100% - 23px) / 24) + calc(1px * (var(--vvd-calendar-event--duration, 1) - 1)) - 4px);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n inline-size: calc(100% - 8px - min(var(--vvd-calendar-event--indent), 32px));\n margin-block-start: 2px;\n margin-inline-end: 8px;\n margin-inline-start: min(var(--vvd-calendar-event--indent), 32px);\n max-block-size: calc(100% - calc(var(--vvd-calendar-event--start, 0) * (100% - 23px) / 24 + calc(1px * var(--vvd-calendar-event--start, 0))) - 4px);\n}\n.base.connotation-accent {\n --_connotation-color-primary: var(--vvd-color-on-canvas);\n --_connotation-color-on-primary: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-neutral-90);\n --_connotation-color-soft: var(--vvd-color-neutral-20);\n}\n.base.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta);\n --_connotation-color-on-primary: var(--vvd-color-on-cta);\n --_connotation-color-contrast: var(--vvd-color-cta-90);\n --_connotation-color-soft: var(--vvd-color-cta-20);\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success);\n --_connotation-color-on-primary: var(--vvd-color-on-success);\n --_connotation-color-contrast: var(--vvd-color-success-90);\n --_connotation-color-soft: var(--vvd-color-success-20);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert);\n --_connotation-color-on-primary: var(--vvd-color-on-alert);\n --_connotation-color-contrast: var(--vvd-color-alert-90);\n --_connotation-color-soft: var(--vvd-color-alert-20);\n}\n.base.connotation-warning {\n --_connotation-color-primary: var(--vvd-color-warning);\n --_connotation-color-on-primary: var(--vvd-color-on-warning);\n --_connotation-color-contrast: var(--vvd-color-warning-90);\n --_connotation-color-soft: var(--vvd-color-warning-20);\n}\n.base.connotation-announcement {\n --_connotation-color-primary: var(--vvd-color-announcement);\n --_connotation-color-on-primary: var(--vvd-color-on-announcement);\n --_connotation-color-contrast: var(--vvd-color-announcement-90);\n --_connotation-color-soft: var(--vvd-color-announcement-20);\n}\n.base:not(.connotation-accent, .connotation-cta, .connotation-success, .connotation-alert, .connotation-warning, .connotation-announcement) {\n --_connotation-color-primary: var(--vvd-color-info);\n --_connotation-color-on-primary: var(--vvd-color-on-info);\n --_connotation-color-contrast: var(--vvd-color-info-90);\n --_connotation-color-soft: var(--vvd-color-info-20);\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transaprent;\n}\n.base.appearance-subtle {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transaprent;\n}\n@supports (contain: content) {\n .base {\n contain: strict;\n }\n}\n@supports not (contain: content) {\n .base {\n overflow: hidden;\n }\n}\n.base:focus {\n z-index: 2000;\n filter: var(--vvd-shadow-surface-8dp);\n outline: none;\n}\n\nh2 {\n font: 600 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin: 0;\n}\nh2 > strong {\n font: inherit;\n}\n\np {\n font: 400 ultra-condensed 12px / 16px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin: 0;\n}";
10
12
  styleInject(css_248z);
11
13
 
12
- class CalendarEvent extends FoundationElement {}
13
-
14
- __decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "heading", void 0);
15
-
16
- __decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "description", void 0);
17
-
18
- __decorate([attr, __metadata("design:type", String)], CalendarEvent.prototype, "connotation", void 0);
19
-
20
- __decorate([attr({
21
- converter: nullableNumberConverter,
22
- attribute: 'overlap-count'
23
- }), __metadata("design:type", Number)], CalendarEvent.prototype, "overlapCount", void 0);
24
-
25
- __decorate([attr({
26
- converter: nullableNumberConverter
27
- }), __metadata("design:type", Number)], CalendarEvent.prototype, "start", void 0);
28
-
29
- __decorate([attr({
30
- converter: nullableNumberConverter
31
- }), __metadata("design:type", Number)], CalendarEvent.prototype, "duration", void 0);
32
-
33
14
  var $ = _export;
34
15
  var DESCRIPTORS = descriptors;
35
16
  var global = global$1;
@@ -88,11 +69,14 @@ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototy
88
69
  }
89
70
 
90
71
  let _ = t => t,
91
- _t;
72
+ _t,
73
+ _t2,
74
+ _t3;
92
75
 
93
76
  const getClasses = ({
94
- connotation
95
- }) => classNames('base', [`connotation-${connotation}`, Boolean(connotation)]);
77
+ connotation,
78
+ appearance
79
+ }) => classNames('base', [`connotation-${connotation}`, Boolean(connotation)], [`appearance-${appearance}`, Boolean(appearance)]);
96
80
 
97
81
  const getStyles = ({
98
82
  start,
@@ -110,20 +94,23 @@ const getStyles = ({
110
94
  };
111
95
 
112
96
  const CalendarEventTemplate = () => html(_t || (_t = _`
113
- <section
97
+ <div
114
98
  style="${0}"
115
99
  class="${0}"
116
100
  role="button"
117
101
  tabindex="0"
118
102
  >
119
- <h2><strong>${0}</strong></h2>
120
- <p>${0}</p>
121
- </section>`), getStyles, getClasses, x => x.heading, x => x.description);
103
+ ${0}
104
+ ${0}
105
+ </div>`), getStyles, getClasses, when(x => x.heading, html(_t2 || (_t2 = _`<h2><strong>${0}</strong></h2>`), x => x.heading)), when(x => x.description, html(_t3 || (_t3 = _`<p>${0}</p>`), x => x.description)));
122
106
 
123
107
  const vividCalendarEvent = CalendarEvent.compose({
124
108
  baseName: 'calendar-event',
125
109
  template: CalendarEventTemplate,
126
- styles: css_248z
110
+ styles: css_248z,
111
+ shadowOptions: {
112
+ delegatesFocus: true
113
+ }
127
114
  });
128
115
  designSystem.register(vividCalendarEvent());
129
116
 
package/card/index.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import '../elevation/index.js';
2
2
  import '../icon/index.js';
3
- import '../button/index.js';
4
3
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, o as observable, h as html, d as designSystem } from '../shared/index.js';
5
4
  import { s as styleInject } from '../shared/style-inject.es.js';
6
5
  import { s as slotted } from '../shared/slotted.js';
@@ -8,20 +7,11 @@ import { w as when } from '../shared/when.js';
8
7
  import { c as classNames } from '../shared/class-names.js';
9
8
  import '../shared/icon.js';
10
9
  import '../shared/export.js';
11
- import '../shared/object-set-prototype-of.js';
10
+ import '../shared/iterators.js';
12
11
  import '../shared/to-string.js';
13
12
  import '../shared/_has.js';
14
- import '../focus/index.js';
15
- import '../shared/focus.js';
16
- import '../shared/web.dom-collections.iterator.js';
17
- import '../shared/object-keys.js';
18
- import '../shared/affix.js';
19
- import '../shared/button.js';
20
- import '../shared/apply-mixins.js';
21
- import '../shared/focus2.js';
22
- import '../shared/aria-global.js';
23
-
24
- var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n display: block;\n}\n@supports ((block-size: -moz-fit-content) or (block-size: fit-content)) and ((inline-size: -moz-fit-content) or (inline-size: fit-content)) {\n :host {\n block-size: -moz-fit-content;\n block-size: fit-content;\n inline-size: -moz-fit-content;\n inline-size: fit-content;\n }\n}\n\n.control {\n block-size: 100%;\n border-radius: 6px;\n}\n\n.wrapper {\n display: flex;\n overflow: hidden;\n flex-flow: column;\n block-size: inherit;\n border-radius: inherit;\n color: var(--vvd-color-on-canvas);\n}\n\n.content {\n display: flex;\n flex-flow: column;\n padding: 1.5rem;\n}\n.content-container {\n display: flex;\n gap: 0.5rem;\n}\n\n.header {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: 0.5rem;\n}\n.header-content {\n flex: 1;\n}\n.header-title, .header-subheading {\n /* stylelint-disable value-no-vendor-prefix */\n display: -webkit-box;\n /* stylelint-enable value-no-vendor-prefix */\n overflow: hidden;\n -webkit-box-orient: vertical;\n}\n.header-title {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n -webkit-line-clamp: var(--heading-line-clamp);\n}\n.header-subheading {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n -webkit-line-clamp: var(--subheading-line-clamp);\n}\n.hide-header .header {\n display: none;\n}\n\n.header-subheading,\n.text {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n color: var(--vvd-color-neutral-70);\n}\n\n.text {\n padding-right: 8px;\n margin-top: 12px;\n}\n\n.footer {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-end;\n padding-bottom: 1.5rem;\n margin-top: auto;\n padding-inline: 1.5rem;\n}\n.hide-footer .footer {\n display: none;\n}\n\n::slotted([slot=graphic i]),\n.icon {\n flex-shrink: 0;\n align-self: baseline;\n margin-block-start: 4px;\n}\n\n.icon {\n font-size: 20px;\n}\n\n::slotted([slot=meta i]) {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: -0.5rem;\n margin-inline-end: -0.5rem;\n margin-inline-start: auto;\n}\n\nvwc-elevation {\n block-size: inherit;\n}\nvwc-elevation::part(base) {\n block-size: inherit;\n}";
13
+
14
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n display: flex;\n}\n\n.base {\n border-radius: 6px;\n inline-size: 100%;\n}\n\n.wrapper {\n display: flex;\n overflow: hidden;\n flex-flow: column;\n block-size: inherit;\n border-radius: inherit;\n color: var(--vvd-color-on-canvas);\n}\n\n.main-content {\n display: flex;\n flex-flow: column;\n padding: 24px;\n}\n\n.header {\n display: flex;\n flex: 1;\n align-items: flex-start;\n gap: 8px;\n}\n.header-content {\n flex: 1;\n}\n.header-wrapper {\n display: flex;\n gap: 8px;\n}\n.header-title, .header-subheading {\n /* stylelint-disable value-no-vendor-prefix */\n display: -webkit-box;\n /* stylelint-enable value-no-vendor-prefix */\n overflow: hidden;\n -webkit-box-orient: vertical;\n}\n.header-title {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n -webkit-line-clamp: var(--heading-line-clamp);\n}\n.header-subheading {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n -webkit-line-clamp: var(--subheading-line-clamp);\n}\n.hide-header .header {\n display: none;\n}\n\n.header-subheading,\n.text {\n font: 400 ultra-condensed 14px / 20px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n color: var(--vvd-color-neutral-70);\n}\n\n.text {\n padding-right: 8px;\n margin-top: 12px;\n}\n\n.footer {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-end;\n padding-bottom: 24px;\n margin-top: auto;\n padding-inline: 24px;\n}\n.hide-footer .footer {\n display: none;\n}\n\n::slotted([slot=graphic i]),\n.icon {\n flex-shrink: 0;\n align-self: baseline;\n margin-block-start: 4px;\n}\n\n.icon {\n font-size: 20px;\n}\n\n::slotted([slot=meta i]) {\n flex-shrink: 0;\n align-self: flex-start;\n margin-block-start: -8px;\n margin-inline-end: -8px;\n margin-inline-start: auto;\n}";
25
15
  styleInject(css_248z);
26
16
 
27
17
  class Card extends FoundationElement {}
@@ -52,7 +42,7 @@ let _2 = t => t,
52
42
  _t7,
53
43
  _t8;
54
44
 
55
- const getClasses = _ => classNames('control', ['hide-footer', !_.footerSlottedContent || !_.footerSlottedContent.length], ['hide-header', shouldHideHeader(_)]);
45
+ const getClasses = _ => classNames('base', ['hide-footer', !_.footerSlottedContent || !_.footerSlottedContent.length], ['hide-header', shouldHideHeader(_)]);
56
46
 
57
47
  function renderHeaderIcon() {
58
48
  return html(_t || (_t = _2`
@@ -106,25 +96,27 @@ function text() {
106
96
 
107
97
  const CardTemplate = () => html(_t8 || (_t8 = _2`
108
98
  <vwc-elevation dp=${0}>
99
+
109
100
  <div class="${0}">
110
101
  <div class="wrapper">
111
102
  <div class="vwc-card-media">
112
103
  <slot name="media"></slot>
113
104
  </div>
114
- <div class="content">
115
- <slot name="content">
116
- <div class="content-container">
105
+ <slot name="main">
106
+ <div class="main-content">
107
+ <div class="header-wrapper">
117
108
  ${0}
118
109
  ${0}
119
110
  </div>
120
111
  ${0}
121
- </slot>
122
- </div>
112
+ </div>
113
+ </slot>
123
114
  <div class="footer">
124
115
  <slot name="footer" ${0}></slot>
125
116
  </div>
126
117
  </div>
127
118
  </div>
119
+
128
120
  </vwc-elevation>
129
121
  `), x => {
130
122
  var _a;