@vonage/vivid 3.0.0-next.20 → 3.0.0-next.23

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 (54) hide show
  1. package/README.md +2 -2
  2. package/accordion-item/index.js +13 -5
  3. package/action-group/index.js +19 -4
  4. package/badge/index.js +4 -1
  5. package/banner/index.js +10 -9
  6. package/breadcrumb/index.js +1 -0
  7. package/breadcrumb-item/index.js +14 -4
  8. package/button/index.js +8 -3
  9. package/calendar/index.js +33 -9
  10. package/calendar-event/index.js +117 -0
  11. package/card/index.js +12 -17
  12. package/fab/index.js +8 -3
  13. package/focus/index.js +1 -1
  14. package/icon/index.js +3 -1
  15. package/index.js +15 -9
  16. package/lib/accordion-item/index.d.ts +2 -0
  17. package/lib/action-group/action-group.d.ts +1 -0
  18. package/lib/banner/banner.template.d.ts +0 -2
  19. package/lib/banner/index.d.ts +1 -0
  20. package/lib/breadcrumb-item/index.d.ts +1 -0
  21. package/lib/calendar/calendar.d.ts +3 -1
  22. package/lib/calendar/index.d.ts +0 -1
  23. package/lib/calendar-event/calendar-event.d.ts +14 -0
  24. package/lib/calendar-event/calendar-event.template.d.ts +4 -0
  25. package/lib/calendar-event/index.d.ts +2 -0
  26. package/lib/card/index.d.ts +0 -1
  27. package/lib/components.d.ts +1 -0
  28. package/lib/side-drawer/side-drawer.d.ts +8 -1
  29. package/lib/sidenav-item/index.d.ts +1 -0
  30. package/lib/text-field/text-field.d.ts +1 -0
  31. package/note/index.js +4 -1
  32. package/package.json +6 -2
  33. package/popup/index.js +10 -5
  34. package/progress/index.js +31 -23
  35. package/shared/aria-global.js +3 -40
  36. package/shared/button.js +1 -1
  37. package/shared/calendar-event.js +26 -0
  38. package/shared/es.object.assign.js +2 -2
  39. package/shared/{object-set-prototype-of.js → export.js} +472 -530
  40. package/shared/focus2.js +2 -459
  41. package/shared/form-associated.js +460 -0
  42. package/shared/icon.js +23 -69
  43. package/shared/iterators.js +61 -0
  44. package/shared/object-keys.js +13 -0
  45. package/shared/ref.js +41 -0
  46. package/shared/text-anchor.template.js +5 -2
  47. package/shared/to-string.js +51 -0
  48. package/shared/web.dom-collections.iterator.js +5 -13
  49. package/side-drawer/index.js +8588 -10
  50. package/sidenav-item/index.js +10 -6
  51. package/text/index.js +3 -1
  52. package/text-anchor/index.js +7 -1
  53. package/text-field/index.js +14 -5
  54. package/tooltip/index.js +7 -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,16 +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/object-set-prototype-of.js';
10
11
  import '../shared/icon.js';
12
+ import '../shared/export.js';
13
+ import '../shared/iterators.js';
14
+ import '../shared/to-string.js';
11
15
  import '../shared/_has.js';
16
+ import '../shared/focus.js';
17
+ import '../shared/object-keys.js';
12
18
 
13
- 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 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}";
14
20
  styleInject(css_248z);
15
21
 
16
22
  class AccordionItem extends FoundationElement {
@@ -93,10 +99,12 @@ const renderPanelHeader = (context, headingLevel) => {
93
99
 
94
100
  const renderHeaderButton = context => {
95
101
  const affixIconTemplate = affixIconTemplateFactory(context);
102
+ const focusTemplate = focusTemplateFactory(context);
96
103
  return html(_t3 || (_t3 = _`
97
104
  <button class="button" id="header" @click=${0}
98
- ?aria-expanded=${0}
105
+ aria-expanded=${0}
99
106
  aria-controls="${0}">
107
+ ${0}
100
108
  ${0}
101
109
  <span class="heading-text">${0}</span>
102
110
  ${0}
@@ -104,7 +112,7 @@ const renderHeaderButton = context => {
104
112
  ${0}
105
113
  </span>
106
114
  </button>
107
- `), 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 = _`
108
116
  <vwc-icon class="toggle-open" type='chevron-down-solid'></vwc-icon>
109
117
  <vwc-icon class="toggle-close" type='chevron-up-solid'></vwc-icon>
110
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
@@ -5,10 +5,13 @@ import { a as applyMixins } from '../shared/apply-mixins.js';
5
5
  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
- import '../shared/object-set-prototype-of.js';
8
+ import '../shared/export.js';
9
+ import '../shared/iterators.js';
10
+ import '../shared/to-string.js';
9
11
  import '../shared/_has.js';
10
12
  import '../shared/when.js';
11
13
  import '../shared/web.dom-collections.iterator.js';
14
+ import '../shared/object-keys.js';
12
15
 
13
16
  class Badge extends FoundationElement {}
14
17
 
package/banner/index.js CHANGED
@@ -1,27 +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/object-set-prototype-of.js';
10
+ import '../icon/index.js';
12
11
  import '../shared/icon.js';
12
+ import '../shared/export.js';
13
+ import '../shared/iterators.js';
14
+ import '../shared/to-string.js';
13
15
  import '../shared/_has.js';
14
- import '../icon/index.js';
15
16
  import '../focus/index.js';
16
17
  import '../shared/focus.js';
17
18
  import '../shared/button.js';
18
- import '../shared/focus2.js';
19
+ import '../shared/form-associated.js';
19
20
  import '../shared/aria-global.js';
20
- import '../shared/text-anchor.js';
21
- import '../shared/anchor.js';
22
- import '../shared/text-anchor.template.js';
21
+ import '../shared/ref.js';
22
+ import '../shared/focus2.js';
23
+ import '../shared/object-keys.js';
23
24
 
24
- 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}";
25
26
  styleInject(css_248z);
26
27
 
27
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';
@@ -6,15 +7,21 @@ import { t as textAnchorTemplate } from '../shared/text-anchor.template.js';
6
7
  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
- import '../shared/object-set-prototype-of.js';
10
+ import '../shared/export.js';
11
+ import '../shared/iterators.js';
12
+ import '../shared/to-string.js';
10
13
  import '../shared/_has.js';
14
+ import '../shared/focus.js';
11
15
  import '../shared/anchor.js';
12
16
  import '../shared/apply-mixins.js';
13
17
  import '../shared/aria-global.js';
18
+ import '../shared/ref.js';
14
19
  import '../shared/affix.js';
15
20
  import '../shared/web.dom-collections.iterator.js';
21
+ import '../shared/object-keys.js';
22
+ import '../shared/focus2.js';
16
23
 
17
- 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}";
18
25
  styleInject(css_248z);
19
26
 
20
27
  class BreadcrumbItem extends BreadcrumbItem$1 {
@@ -32,7 +39,7 @@ let _2 = t => t,
32
39
  _t3,
33
40
  _t4;
34
41
 
35
- const getClasses = _ => classNames('control', 'breadcrumb-item');
42
+ const getClasses = _ => classNames('base');
36
43
 
37
44
  const BreadcrumbItemTemplate = (context, definition) => html(_t || (_t = _2`
38
45
  <div roll="listitem" part="listitem" class="${0}">
@@ -46,7 +53,10 @@ const BreadcrumbItemTemplate = (context, definition) => html(_t || (_t = _2`
46
53
  const vividBreadcrumbItem = BreadcrumbItem.compose({
47
54
  baseName: 'breadcrumb-item',
48
55
  template: BreadcrumbItemTemplate,
49
- styles: css_248z
56
+ styles: css_248z,
57
+ shadowOptions: {
58
+ delegatesFocus: true
59
+ }
50
60
  });
51
61
  designSystem.register(vividBreadcrumbItem());
52
62
 
package/button/index.js CHANGED
@@ -7,13 +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
- import '../shared/object-set-prototype-of.js';
13
+ import '../shared/export.js';
14
+ import '../shared/iterators.js';
15
+ import '../shared/to-string.js';
14
16
  import '../shared/_has.js';
15
17
  import '../shared/when.js';
16
18
  import '../shared/focus.js';
19
+ import '../shared/object-keys.js';
20
+ import '../shared/form-associated.js';
21
+ import '../shared/aria-global.js';
17
22
 
18
23
  class Button extends Button$1 {
19
24
  constructor() {
@@ -40,7 +45,7 @@ __decorate([attr, __metadata("design:type", String)], Button.prototype, "label",
40
45
 
41
46
  applyMixins(Button, AffixIconWithTrailing);
42
47
 
43
- 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}";
44
49
  styleInject(css_248z);
45
50
 
46
51
  let _ = t => t,
package/calendar/index.js CHANGED
@@ -1,11 +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, f 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
- import '../shared/object-set-prototype-of.js';
7
+ import '../shared/export.js';
8
+ import '../shared/object-keys.js';
9
+ import '../shared/iterators.js';
9
10
 
10
11
  /** @internal */
11
12
  function newSplice(index, removed, addedCount) {
@@ -1245,7 +1246,7 @@ _curry1(function isEmpty(x) {
1245
1246
 
1246
1247
  var isEmpty$1 = isEmpty;
1247
1248
 
1248
- 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}";
1249
1250
  styleInject(css_248z);
1250
1251
 
1251
1252
  const ARROW_UP = 'ArrowUp';
@@ -1342,9 +1343,13 @@ const getEventContext = function getEventContext(e) {
1342
1343
  return not$1(isEmpty$1(context)) ? context : null;
1343
1344
  };
1344
1345
 
1346
+ var _Calendar_instances, _Calendar_activeCalendarEvent_get;
1345
1347
  class Calendar extends FoundationElement {
1346
1348
  constructor() {
1347
1349
  super(...arguments);
1350
+
1351
+ _Calendar_instances.add(this);
1352
+
1348
1353
  this.hour12 = false;
1349
1354
  this._hours = 24;
1350
1355
  this._days = 7;
@@ -1365,22 +1370,32 @@ class Calendar extends FoundationElement {
1365
1370
  this.getEventContext = getEventContext;
1366
1371
  }
1367
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
+
1368
1379
  arrowKeysInteractions(key) {
1369
- const activeElement = this.shadowRoot.activeElement;
1380
+ const {
1381
+ activeElement
1382
+ } = this.shadowRoot;
1370
1383
  let focusNext;
1371
1384
 
1372
1385
  if (isCellOrHeader(activeElement)) {
1373
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));
1374
1389
  } else if (activeElement === null || activeElement === void 0 ? void 0 : activeElement.matches('em[role="button"i]')) {
1375
1390
  focusNext = getHeaderDescendantGridCell.call(this, key, activeElement);
1376
1391
  } else {
1377
1392
  focusNext = this.shadowRoot.querySelector('[role="columnheader"i]');
1378
1393
  }
1379
1394
 
1380
- this.moveTo(focusNext);
1395
+ this.activateElement(focusNext);
1381
1396
  }
1382
1397
 
1383
- moveTo(el) {
1398
+ activateElement(el) {
1384
1399
  const onBlur = ({
1385
1400
  target
1386
1401
  }) => target.setAttribute('tabindex', '-1');
@@ -1405,6 +1420,12 @@ class Calendar extends FoundationElement {
1405
1420
  }
1406
1421
 
1407
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
+ };
1408
1429
 
1409
1430
  __decorate([attr, __metadata("design:type", Object)], Calendar.prototype, "datetime", void 0);
1410
1431
 
@@ -1519,7 +1540,10 @@ const CalendarTemplate = () => html(_t6 || (_t6 = _2`
1519
1540
  const vividCalendar = Calendar.compose({
1520
1541
  baseName: 'calendar',
1521
1542
  template: CalendarTemplate,
1522
- styles: css_248z
1543
+ styles: css_248z,
1544
+ shadowOptions: {
1545
+ delegatesFocus: true
1546
+ }
1523
1547
  });
1524
1548
  designSystem.register(vividCalendar());
1525
1549
 
@@ -0,0 +1,117 @@
1
+ import { h as html, d as designSystem } from '../shared/index.js';
2
+ import { s as styleInject } from '../shared/style-inject.es.js';
3
+ import { C as CalendarEvent } from '../shared/calendar-event.js';
4
+ import '../shared/es.object.assign.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';
6
+ import { t as toString$1 } from '../shared/to-string.js';
7
+ import { w as when } from '../shared/when.js';
8
+ import { c as classNames } from '../shared/class-names.js';
9
+ import '../shared/object-keys.js';
10
+
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}";
12
+ styleInject(css_248z);
13
+
14
+ var $ = _export;
15
+ var DESCRIPTORS = descriptors;
16
+ var global = global$1;
17
+ var uncurryThis = functionUncurryThis;
18
+ var hasOwn = hasOwnProperty_1;
19
+ var isCallable = isCallable$1;
20
+ var isPrototypeOf = objectIsPrototypeOf;
21
+ var toString = toString$1;
22
+ var defineProperty = objectDefineProperty.f;
23
+ var copyConstructorProperties = copyConstructorProperties$1;
24
+
25
+ var NativeSymbol = global.Symbol;
26
+ var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
27
+
28
+ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
29
+ // Safari 12 bug
30
+ NativeSymbol().description !== undefined
31
+ )) {
32
+ var EmptyStringDescriptionStore = {};
33
+ // wrap Symbol constructor for correct work with undefined description
34
+ var SymbolWrapper = function Symbol() {
35
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
36
+ var result = isPrototypeOf(SymbolPrototype, this)
37
+ ? new NativeSymbol(description)
38
+ // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
39
+ : description === undefined ? NativeSymbol() : NativeSymbol(description);
40
+ if (description === '') EmptyStringDescriptionStore[result] = true;
41
+ return result;
42
+ };
43
+
44
+ copyConstructorProperties(SymbolWrapper, NativeSymbol);
45
+ SymbolWrapper.prototype = SymbolPrototype;
46
+ SymbolPrototype.constructor = SymbolWrapper;
47
+
48
+ var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
49
+ var symbolToString = uncurryThis(SymbolPrototype.toString);
50
+ var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);
51
+ var regexp = /^Symbol\((.*)\)[^)]+$/;
52
+ var replace = uncurryThis(''.replace);
53
+ var stringSlice = uncurryThis(''.slice);
54
+
55
+ defineProperty(SymbolPrototype, 'description', {
56
+ configurable: true,
57
+ get: function description() {
58
+ var symbol = symbolValueOf(this);
59
+ var string = symbolToString(symbol);
60
+ if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
61
+ var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
62
+ return desc === '' ? undefined : desc;
63
+ }
64
+ });
65
+
66
+ $({ global: true, constructor: true, forced: true }, {
67
+ Symbol: SymbolWrapper
68
+ });
69
+ }
70
+
71
+ let _ = t => t,
72
+ _t,
73
+ _t2,
74
+ _t3;
75
+
76
+ const getClasses = ({
77
+ connotation,
78
+ appearance
79
+ }) => classNames('base', [`connotation-${connotation}`, Boolean(connotation)], [`appearance-${appearance}`, Boolean(appearance)]);
80
+
81
+ const getStyles = ({
82
+ start,
83
+ duration,
84
+ overlapCount
85
+ }) => {
86
+ const stylesObj = Object.assign(Object.assign(Object.assign({}, overlapCount && {
87
+ '--vvd-calendar-event--overlap-count': overlapCount
88
+ }), start && {
89
+ '--vvd-calendar-event--start': start
90
+ }), duration && {
91
+ '--vvd-calendar-event--duration': duration
92
+ });
93
+ return Object.entries(stylesObj).map(entry => entry.join(':')).join(';');
94
+ };
95
+
96
+ const CalendarEventTemplate = () => html(_t || (_t = _`
97
+ <div
98
+ style="${0}"
99
+ class="${0}"
100
+ role="button"
101
+ tabindex="0"
102
+ >
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)));
106
+
107
+ const vividCalendarEvent = CalendarEvent.compose({
108
+ baseName: 'calendar-event',
109
+ template: CalendarEventTemplate,
110
+ styles: css_248z,
111
+ shadowOptions: {
112
+ delegatesFocus: true
113
+ }
114
+ });
115
+ designSystem.register(vividCalendarEvent());
116
+
117
+ export { vividCalendarEvent };
package/card/index.js CHANGED
@@ -1,24 +1,17 @@
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';
7
6
  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
- import '../shared/object-set-prototype-of.js';
9
+ import '../shared/export.js';
10
+ import '../shared/iterators.js';
11
+ import '../shared/to-string.js';
11
12
  import '../shared/_has.js';
12
- import '../focus/index.js';
13
- import '../shared/focus.js';
14
- import '../shared/web.dom-collections.iterator.js';
15
- import '../shared/affix.js';
16
- import '../shared/button.js';
17
- import '../shared/apply-mixins.js';
18
- import '../shared/focus2.js';
19
- import '../shared/aria-global.js';
20
-
21
- 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: 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.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}\n\nvwc-elevation {\n block-size: inherit;\n}\nvwc-elevation::part(base) {\n block-size: inherit;\n}";
22
15
  styleInject(css_248z);
23
16
 
24
17
  class Card extends FoundationElement {}
@@ -103,25 +96,27 @@ function text() {
103
96
 
104
97
  const CardTemplate = () => html(_t8 || (_t8 = _2`
105
98
  <vwc-elevation dp=${0}>
99
+
106
100
  <div class="${0}">
107
101
  <div class="wrapper">
108
102
  <div class="vwc-card-media">
109
103
  <slot name="media"></slot>
110
104
  </div>
111
- <div class="content">
112
- <slot name="content">
113
- <div class="content-container">
105
+ <slot name="main">
106
+ <div class="main-content">
107
+ <div class="header-wrapper">
114
108
  ${0}
115
109
  ${0}
116
110
  </div>
117
111
  ${0}
118
- </slot>
119
- </div>
112
+ </div>
113
+ </slot>
120
114
  <div class="footer">
121
115
  <slot name="footer" ${0}></slot>
122
116
  </div>
123
117
  </div>
124
118
  </div>
119
+
125
120
  </vwc-elevation>
126
121
  `), x => {
127
122
  var _a;