@vonage/vivid 3.0.0-next.23 → 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.
@@ -16,7 +16,7 @@ import '../shared/_has.js';
16
16
  import '../shared/focus.js';
17
17
  import '../shared/object-keys.js';
18
18
 
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}";
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}";
20
20
  styleInject(css_248z);
21
21
 
22
22
  class AccordionItem extends FoundationElement {
package/calendar/index.js CHANGED
@@ -1,4 +1,4 @@
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';
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';
2
2
  import { s as styleInject } from '../shared/style-inject.es.js';
3
3
  import '../shared/web.dom-collections.iterator.js';
4
4
  import { C as CalendarEvent } from '../shared/calendar-event.js';
package/card/index.js CHANGED
@@ -11,7 +11,7 @@ import '../shared/iterators.js';
11
11
  import '../shared/to-string.js';
12
12
  import '../shared/_has.js';
13
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}";
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}";
15
15
  styleInject(css_248z);
16
16
 
17
17
  class Card extends FoundationElement {}
@@ -42,7 +42,7 @@ let _2 = t => t,
42
42
  _t7,
43
43
  _t8;
44
44
 
45
- 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(_)]);
46
46
 
47
47
  function renderHeaderIcon() {
48
48
  return html(_t || (_t = _2`
@@ -0,0 +1,176 @@
1
+ import '../icon/index.js';
2
+ import '../focus/index.js';
3
+ import { F as FoundationElement, _ as __decorate, a as attr, o as observable, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
4
+ import { s as styleInject } from '../shared/style-inject.es.js';
5
+ import '../shared/web.dom-collections.iterator.js';
6
+ import { C as CheckableFormAssociated, k as keySpace$1 } from '../shared/form-associated.js';
7
+ import { f as focusTemplateFactory } from '../shared/focus2.js';
8
+ import { I as Icon } from '../shared/icon.js';
9
+ import { w as when } from '../shared/when.js';
10
+ import { c as classNames } from '../shared/class-names.js';
11
+ import '../shared/export.js';
12
+ import '../shared/iterators.js';
13
+ import '../shared/to-string.js';
14
+ import '../shared/_has.js';
15
+ import '../shared/focus.js';
16
+ import '../shared/object-keys.js';
17
+
18
+ class _Checkbox extends FoundationElement {
19
+ }
20
+ /**
21
+ * A form-associated base class for the {@link @microsoft/fast-foundation#(Checkbox:class)} component.
22
+ *
23
+ * @internal
24
+ */
25
+ class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox) {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.proxy = document.createElement("input");
29
+ }
30
+ }
31
+
32
+ /**
33
+ * A Checkbox Custom HTML Element.
34
+ * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.
35
+ *
36
+ * @slot checked-indicator - The checked indicator
37
+ * @slot indeterminate-indicator - The indeterminate indicator
38
+ * @slot - The default slot for the label
39
+ * @csspart control - The element representing the visual checkbox control
40
+ * @csspart label - The label
41
+ * @fires change - Emits a custom change event when the checked state changes
42
+ *
43
+ * @public
44
+ */
45
+ class Checkbox$1 extends FormAssociatedCheckbox {
46
+ constructor() {
47
+ super();
48
+ /**
49
+ * The element's value to be included in form submission when checked.
50
+ * Default to "on" to reach parity with input[type="checkbox"]
51
+ *
52
+ * @internal
53
+ */
54
+ this.initialValue = "on";
55
+ /**
56
+ * The indeterminate state of the control
57
+ */
58
+ this.indeterminate = false;
59
+ /**
60
+ * @internal
61
+ */
62
+ this.keypressHandler = (e) => {
63
+ switch (e.key) {
64
+ case keySpace$1:
65
+ this.checked = !this.checked;
66
+ break;
67
+ }
68
+ };
69
+ /**
70
+ * @internal
71
+ */
72
+ this.clickHandler = (e) => {
73
+ if (!this.disabled && !this.readOnly) {
74
+ this.checked = !this.checked;
75
+ }
76
+ };
77
+ this.proxy.setAttribute("type", "checkbox");
78
+ }
79
+ readOnlyChanged() {
80
+ if (this.proxy instanceof HTMLInputElement) {
81
+ this.proxy.readOnly = this.readOnly;
82
+ }
83
+ }
84
+ }
85
+ __decorate([
86
+ attr({ attribute: "readonly", mode: "boolean" })
87
+ ], Checkbox$1.prototype, "readOnly", void 0);
88
+ __decorate([
89
+ observable
90
+ ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
91
+ __decorate([
92
+ observable
93
+ ], Checkbox$1.prototype, "indeterminate", void 0);
94
+
95
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n.base {\n display: inline-flex;\n align-items: center;\n gap: 12px;\n outline: 0 none;\n}\n.base {\n --_connotation-color-primary: var(--vvd-color-on-canvas);\n --_connotation-color-on-primary: var(--vvd-color-canvas);\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:where(:hover, .hover):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-on-canvas);\n --_appearance-color-fill: var(--vvd-color-canvas);\n --_appearance-color-outline: var(--vvd-color-on-canvas);\n}\n.base:where(:checked, .checked):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: var(--_connotation-color-primary);\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-50);\n --_appearance-color-fill: var(--vvd-color-neutral-20);\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.base:where(:readonly, .readonly):where(:not(:disabled, .disabled, :hover, .hover, :active, .active)) {\n --_appearance-color-text: var(--vvd-color-on-canvas);\n --_appearance-color-fill: var(--vvd-color-neutral-20);\n --_appearance-color-outline: var(--vvd-color-neutral-50);\n}\n.base:where(:indeterminate, .indeterminate):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-on-primary);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: var(--_connotation-color-primary);\n}\n@supports ((-webkit-user-select: none) or (user-select: none)) {\n .base {\n -webkit-user-select: none;\n user-select: none;\n }\n}\n\n.control {\n position: relative;\n display: inline-flex;\n width: 24px;\n height: 24px;\n align-items: center;\n justify-content: center;\n background-color: var(--_appearance-color-fill);\n border-radius: 3px;\n box-shadow: inset 0 0 0 2px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n cursor: pointer;\n}\n\n.indicator {\n font-size: 16px;\n}\n.base:not(.checked) .indicator.checkmark {\n display: none;\n}\n\n.base:not(.indeterminate) .indicator.minus, .base.checked .indicator.minus {\n display: none;\n}\n\nlabel {\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-on-canvas);\n cursor: pointer;\n}\n\n.focus-indicator {\n --focus-inset: -3px;\n --focus-stroke-gap-color: transparent;\n border-radius: 6px;\n}\n.base:not(:focus-visible) .focus-indicator {\n display: none;\n}";
96
+ styleInject(css_248z);
97
+
98
+ const keySpace = ' ';
99
+ class Checkbox extends Checkbox$1 {
100
+ constructor() {
101
+ super(...arguments);
102
+
103
+ this.keypressHandler = e => {
104
+ switch (e.key) {
105
+ case keySpace:
106
+ if (this.indeterminate) {
107
+ this.indeterminate = false;
108
+ }
109
+
110
+ this.checked = !this.checked;
111
+ break;
112
+ }
113
+ };
114
+
115
+ this.clickHandler = () => {
116
+ if (!this.disabled && !this.readOnly) {
117
+ if (this.indeterminate) {
118
+ this.indeterminate = false;
119
+ }
120
+
121
+ this.checked = !this.checked;
122
+ }
123
+ };
124
+ }
125
+
126
+ }
127
+
128
+ __decorate([attr, __metadata("design:type", String)], Checkbox.prototype, "label", void 0);
129
+
130
+ let _ = t => t,
131
+ _t,
132
+ _t2;
133
+
134
+ const getClasses = ({
135
+ readOnly,
136
+ checked,
137
+ disabled,
138
+ indeterminate
139
+ }) => classNames('base', ['readonly', Boolean(readOnly)], ['checked', Boolean(checked)], ['disabled', Boolean(disabled)], ['indeterminate', Boolean(indeterminate)]);
140
+
141
+ const CheckboxTemplate = context => {
142
+ const focusTemplate = focusTemplateFactory(context);
143
+ const iconTag = context.tagFor(Icon);
144
+ return html(_t || (_t = _`<span
145
+ role="checkbox"
146
+ aria-checked="${0}"
147
+ aria-required="${0}"
148
+ aria-disabled="${0}"
149
+ aria-readonly="${0}"
150
+ tabindex="${0}"
151
+ @keypress="${0}"
152
+ @click="${0}"
153
+ class="${0}"
154
+ >
155
+ <div class="control">
156
+ <${0} class="indicator checkmark" type="check-solid"></${0}>
157
+ <${0} class="indicator minus" type="minus-solid"></${0}>
158
+ ${0}
159
+ </div>
160
+
161
+ ${0}
162
+
163
+ </span>`), x => x.checked, x => x.required, x => x.disabled, x => x.readOnly, x => x.disabled ? null : 0, (x, c) => x.keypressHandler(c.event), x => x.clickHandler(), getClasses, iconTag, iconTag, iconTag, iconTag, () => focusTemplate, when(x => x.label, html(_t2 || (_t2 = _`<label>${0}</label>`), x => x.label)));
164
+ };
165
+
166
+ const vividCheckbox = Checkbox.compose({
167
+ baseName: 'checkbox',
168
+ template: CheckboxTemplate,
169
+ styles: css_248z,
170
+ shadowOptions: {
171
+ delegatesFocus: true
172
+ }
173
+ });
174
+ designSystem.register(vividCheckbox());
175
+
176
+ export { vividCheckbox };
@@ -6,7 +6,7 @@ class Elevation extends FoundationElement {}
6
6
 
7
7
  __decorate([attr, __metadata("design:type", Number)], Elevation.prototype, "dp", void 0);
8
8
 
9
- var css_248z = ".control.dp-0 {\n --_elevation-fill: var(--vvd-color-surface-0dp);\n --_elevation-shadow: var(--vvd-shadow-surface-0dp);\n}\n.control.dp-4 {\n --_elevation-fill: var(--vvd-color-surface-4dp);\n --_elevation-shadow: var(--vvd-shadow-surface-4dp);\n}\n.control.dp-8 {\n --_elevation-fill: var(--vvd-color-surface-8dp);\n --_elevation-shadow: var(--vvd-shadow-surface-8dp);\n}\n.control.dp-12 {\n --_elevation-fill: var(--vvd-color-surface-12dp);\n --_elevation-shadow: var(--vvd-shadow-surface-12dp);\n}\n.control.dp-16 {\n --_elevation-fill: var(--vvd-color-surface-16dp);\n --_elevation-shadow: var(--vvd-shadow-surface-16dp);\n}\n.control.dp-24 {\n --_elevation-fill: var(--vvd-color-surface-24dp);\n --_elevation-shadow: var(--vvd-shadow-surface-24dp);\n}\n.control:not(.dp-0, .dp-4, .dp-8, .dp-12, .dp-16, .dp-24) {\n --_elevation-fill: var(--vvd-color-surface-2dp);\n --_elevation-shadow: var(--vvd-shadow-surface-2dp);\n}\n.control ::slotted(*) {\n background-color: var(--_elevation-fill);\n filter: var(--_elevation-shadow);\n}";
9
+ var css_248z = ":host {\n display: contents;\n}\n\n.control {\n display: contents;\n}\n.control.dp-0 {\n --_elevation-fill: var(--vvd-color-surface-0dp);\n --_elevation-shadow: var(--vvd-shadow-surface-0dp);\n}\n.control.dp-4 {\n --_elevation-fill: var(--vvd-color-surface-4dp);\n --_elevation-shadow: var(--vvd-shadow-surface-4dp);\n}\n.control.dp-8 {\n --_elevation-fill: var(--vvd-color-surface-8dp);\n --_elevation-shadow: var(--vvd-shadow-surface-8dp);\n}\n.control.dp-12 {\n --_elevation-fill: var(--vvd-color-surface-12dp);\n --_elevation-shadow: var(--vvd-shadow-surface-12dp);\n}\n.control.dp-16 {\n --_elevation-fill: var(--vvd-color-surface-16dp);\n --_elevation-shadow: var(--vvd-shadow-surface-16dp);\n}\n.control.dp-24 {\n --_elevation-fill: var(--vvd-color-surface-24dp);\n --_elevation-shadow: var(--vvd-shadow-surface-24dp);\n}\n.control:not(.dp-0, .dp-4, .dp-8, .dp-12, .dp-16, .dp-24) {\n --_elevation-fill: var(--vvd-color-surface-2dp);\n --_elevation-shadow: var(--vvd-shadow-surface-2dp);\n}\n.control ::slotted(*) {\n background-color: var(--_elevation-fill);\n filter: var(--_elevation-shadow);\n}";
10
10
  styleInject(css_248z);
11
11
 
12
12
  let _ = t => t,
package/focus/index.js CHANGED
@@ -2,7 +2,7 @@ import { h as html, d as designSystem } from '../shared/index.js';
2
2
  import { F as Focus } from '../shared/focus.js';
3
3
  import { s as styleInject } from '../shared/style-inject.es.js';
4
4
 
5
- var css_248z = ":host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: 0;\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-on-canvas));\n outline-offset: -2px;\n}";
5
+ var css_248z = ":host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-on-canvas));\n outline-offset: -2px;\n}";
6
6
  styleInject(css_248z);
7
7
 
8
8
  let _ = t => t,
@@ -0,0 +1,91 @@
1
+ import { F as FoundationElement, c as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, o as observable, v as volatile, h as html, d as designSystem } from '../shared/index.js';
2
+ import { s as styleInject } from '../shared/style-inject.es.js';
3
+ import '../shared/web.dom-collections.iterator.js';
4
+ import { w as when } from '../shared/when.js';
5
+ import { c as classNames } from '../shared/class-names.js';
6
+ import '../shared/export.js';
7
+ import '../shared/object-keys.js';
8
+ import '../shared/iterators.js';
9
+
10
+ var css_248z = "/*\n Do not edit directly\n Generated on Wed, 27 Apr 2022 11:58:36 GMT\n*/\n:host {\n --header-z-index: 7;\n}\n\n.control {\n font: 500 condensed 20px / 28px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n z-index: var(--header-z-index);\n display: flex;\n width: 100%;\n height: 64px;\n box-sizing: border-box;\n justify-content: space-between;\n padding: 8px 12px;\n background-color: var(--vvd-color-canvas);\n color: var(--vvd-color-on-canvas);\n column-gap: 12px;\n}\n.control.fixed {\n position: fixed;\n}\n.control.fixed.elevated {\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);\n transition: all 0.15s linear;\n}\n.control .header-content {\n display: inline-flex;\n flex: 1;\n align-items: center;\n}\n.control .start {\n justify-content: flex-start;\n}\n.control .start .heading {\n padding-left: 20px;\n}\n.control .end {\n justify-content: flex-end;\n}\n\n.control.fixed + .app-content {\n padding-top: 64px;\n}\n.control.fixed + .app-content ::slotted(vwc-side-drawer) {\n block-size: calc(100vh - 64px);\n}";
11
+ styleInject(css_248z);
12
+
13
+ var _Header_updateElevatedState;
14
+ class Header extends FoundationElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.fixed = false;
18
+ this.alternate = false;
19
+ this._elevated = false;
20
+
21
+ _Header_updateElevatedState.set(this, () => {
22
+ this._elevated = !this._elevated;
23
+ });
24
+ }
25
+
26
+ connectedCallback() {
27
+ super.connectedCallback();
28
+ window.addEventListener('scroll', __classPrivateFieldGet(this, _Header_updateElevatedState, "f"));
29
+ }
30
+
31
+ disconnectedCallback() {
32
+ super.disconnectedCallback();
33
+ window.removeEventListener('scroll', __classPrivateFieldGet(this, _Header_updateElevatedState, "f"));
34
+ }
35
+
36
+ get elevated() {
37
+ return this._elevated && false || this.fixed && window.pageYOffset > 0;
38
+ }
39
+
40
+ }
41
+ _Header_updateElevatedState = new WeakMap();
42
+
43
+ __decorate([attr, __metadata("design:type", String)], Header.prototype, "heading", void 0);
44
+
45
+ __decorate([attr({
46
+ mode: 'boolean'
47
+ }), __metadata("design:type", Object)], Header.prototype, "fixed", void 0);
48
+
49
+ __decorate([attr({
50
+ mode: 'boolean'
51
+ }), __metadata("design:type", Object)], Header.prototype, "alternate", void 0);
52
+
53
+ __decorate([observable, __metadata("design:type", Object)], Header.prototype, "_elevated", void 0);
54
+
55
+ __decorate([volatile, __metadata("design:type", Object), __metadata("design:paramtypes", [])], Header.prototype, "elevated", null);
56
+
57
+ let _ = t => t,
58
+ _t,
59
+ _t2;
60
+
61
+ const getClasses = ({
62
+ fixed,
63
+ alternate,
64
+ elevated
65
+ }) => classNames('control', ['fixed', Boolean(fixed)], ['alternate', Boolean(alternate)], ['elevated', Boolean(elevated)]);
66
+
67
+ const headerTemplate = () => {
68
+ return html(_t || (_t = _`
69
+ <header class="${0}" part="${0}">
70
+ <section class="header-content start" id="navigation">
71
+ <slot></slot>
72
+ ${0}
73
+ </section>
74
+ <section class="header-content end" id="actions" role="toolbar">
75
+ <slot name="actionItems"></slot>
76
+ </section>
77
+ </header>
78
+ <div class="app-content">
79
+ <slot name="app-content"></slot>
80
+ </div>
81
+ `), getClasses, x => x.alternate ? 'vvd-theme-alternate' : '', when(x => x.heading, html(_t2 || (_t2 = _`<span class="heading">${0}</span>`), x => x.heading)));
82
+ };
83
+
84
+ const vividHeader = Header.compose({
85
+ baseName: 'header',
86
+ template: headerTemplate,
87
+ styles: css_248z
88
+ });
89
+ designSystem.register(vividHeader());
90
+
91
+ export { vividHeader };
package/index.js CHANGED
@@ -22,6 +22,8 @@ export { vividSidenavItem } from './sidenav-item/index.js';
22
22
  export { vividText } from './text/index.js';
23
23
  export { vividTextfield } from './text-field/index.js';
24
24
  export { vividTooltip } from './tooltip/index.js';
25
+ export { vividCheckbox } from './checkbox/index.js';
26
+ export { vividHeader } from './header/index.js';
25
27
  export { d as designSystem, p as provideVividDesignSystem } from './shared/index.js';
26
28
  import './shared/style-inject.es.js';
27
29
  import './shared/class-names.js';
@@ -0,0 +1,5 @@
1
+ import { Checkbox as FastCheckbox } from '@microsoft/fast-foundation';
2
+ export declare const keySpace: ' ';
3
+ export declare class Checkbox extends FastCheckbox {
4
+ label?: string;
5
+ }
@@ -0,0 +1,4 @@
1
+ import type { ViewTemplate } from '@microsoft/fast-element';
2
+ import type { CheckboxOptions, FoundationElementTemplate } from '@microsoft/fast-foundation';
3
+ import type { Checkbox } from './checkbox';
4
+ export declare const CheckboxTemplate: FoundationElementTemplate<ViewTemplate<Checkbox>, CheckboxOptions>;
@@ -0,0 +1,4 @@
1
+ import '../icon';
2
+ import '../focus';
3
+ import type { CheckboxOptions } from '@microsoft/fast-foundation';
4
+ export declare const vividCheckbox: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<CheckboxOptions> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<CheckboxOptions, import("@microsoft/fast-element").Constructable<import("@microsoft/fast-foundation").FoundationElement>>;
@@ -22,3 +22,5 @@ export * from './sidenav-item';
22
22
  export * from './text';
23
23
  export * from './text-field';
24
24
  export * from './tooltip';
25
+ export * from './checkbox';
26
+ export * from './header';
@@ -0,0 +1,11 @@
1
+ import { FoundationElement } from '@microsoft/fast-foundation';
2
+ export declare class Header extends FoundationElement {
3
+ #private;
4
+ heading?: string;
5
+ fixed: boolean;
6
+ alternate: boolean;
7
+ _elevated: boolean;
8
+ connectedCallback(): void;
9
+ disconnectedCallback(): void;
10
+ get elevated(): boolean;
11
+ }
@@ -0,0 +1,4 @@
1
+ import type { ViewTemplate } from '@microsoft/fast-element';
2
+ import type { ElementDefinitionContext, FoundationElementDefinition } from '@microsoft/fast-foundation';
3
+ import type { Header } from './header';
4
+ export declare const headerTemplate: (context: ElementDefinitionContext, definition: FoundationElementDefinition) => ViewTemplate<Header>;
@@ -0,0 +1,2 @@
1
+ import type { FoundationElementDefinition } from '@microsoft/fast-foundation';
2
+ export declare const vividHeader: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<FoundationElementDefinition> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<FoundationElementDefinition, import("@microsoft/fast-element").Constructable<import("@microsoft/fast-foundation").FoundationElement>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vonage/vivid",
3
- "version": "3.0.0-next.23",
3
+ "version": "3.0.0-next.24",
4
4
  "type": "module",
5
5
  "module": "./index.esm.js",
6
6
  "main": "./index.js",
@@ -28,7 +28,8 @@
28
28
  "./sidenav-item": "./sidenav-item",
29
29
  "./text": "./text",
30
30
  "./text-field": "./text-field",
31
- "./tooltip": "./tooltip"
31
+ "./tooltip": "./tooltip",
32
+ "./checkbox": "./checkbox"
32
33
  },
33
34
  "typings": "./index.d.ts",
34
35
  "dependencies": {
package/popup/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import '../elevation/index.js';
2
2
  import '../button/index.js';
3
- import { F as FoundationElement, c as __classPrivateFieldGet, g as __classPrivateFieldSet, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
3
+ import { F as FoundationElement, c as __classPrivateFieldGet, i as __classPrivateFieldSet, _ as __decorate, a as attr, b as __metadata, h as html, d as designSystem } from '../shared/index.js';
4
4
  import { s as speciesConstructor$1, f as functionApply } from '../shared/icon.js';
5
5
  import { o as objectCreate } from '../shared/web.dom-collections.iterator.js';
6
6
  import '../shared/es.object.assign.js';
@@ -1,4 +1,4 @@
1
- import { e as emptyArray, D as DOM, a as attr, o as observable } from './index.js';
1
+ import { e as emptyArray, D as DOM, a as attr, o as observable, f as booleanConverter } from './index.js';
2
2
 
3
3
  /**
4
4
  * Key Code values
@@ -77,6 +77,7 @@ var KeyCodes;
77
77
  KeyCodes[KeyCodes["windowsRight"] = 92] = "windowsRight";
78
78
  })(KeyCodes || (KeyCodes = {}));
79
79
  const keyEnter = "Enter";
80
+ const keySpace = " ";
80
81
 
81
82
  const proxySlotName = "form-associated-proxy";
82
83
  const ElementInternalsKey = "ElementInternals";
@@ -456,5 +457,91 @@ function FormAssociated(BaseCtor) {
456
457
  observable(C.prototype, "value");
457
458
  return C;
458
459
  }
460
+ /**
461
+ * @alpha
462
+ */
463
+ function CheckableFormAssociated(BaseCtor) {
464
+ class C extends FormAssociated(BaseCtor) {
465
+ }
466
+ class D extends C {
467
+ constructor(...args) {
468
+ super(args);
469
+ /**
470
+ * Tracks whether the "checked" property has been changed.
471
+ * This is necessary to provide consistent behavior with
472
+ * normal input checkboxes
473
+ */
474
+ this.dirtyChecked = false;
475
+ /**
476
+ * Provides the default checkedness of the input element
477
+ * Passed down to proxy
478
+ *
479
+ * @public
480
+ * @remarks
481
+ * HTML Attribute: checked
482
+ */
483
+ this.checkedAttribute = false;
484
+ /**
485
+ * The checked state of the control.
486
+ *
487
+ * @public
488
+ */
489
+ this.checked = false;
490
+ // Re-initialize dirtyChecked because initialization of other values
491
+ // causes it to become true
492
+ this.dirtyChecked = false;
493
+ }
494
+ checkedAttributeChanged() {
495
+ this.defaultChecked = this.checkedAttribute;
496
+ }
497
+ /**
498
+ * @internal
499
+ */
500
+ defaultCheckedChanged() {
501
+ if (!this.dirtyChecked) {
502
+ // Setting this.checked will cause us to enter a dirty state,
503
+ // but if we are clean when defaultChecked is changed, we want to stay
504
+ // in a clean state, so reset this.dirtyChecked
505
+ this.checked = this.defaultChecked;
506
+ this.dirtyChecked = false;
507
+ }
508
+ }
509
+ checkedChanged(prev, next) {
510
+ if (!this.dirtyChecked) {
511
+ this.dirtyChecked = true;
512
+ }
513
+ this.currentChecked = this.checked;
514
+ this.updateForm();
515
+ if (this.proxy instanceof HTMLInputElement) {
516
+ this.proxy.checked = this.checked;
517
+ }
518
+ if (prev !== undefined) {
519
+ this.$emit("change");
520
+ }
521
+ this.validate();
522
+ }
523
+ currentCheckedChanged(prev, next) {
524
+ this.checked = this.currentChecked;
525
+ }
526
+ updateForm() {
527
+ const value = this.checked ? this.value : null;
528
+ this.setFormValue(value, value);
529
+ }
530
+ connectedCallback() {
531
+ super.connectedCallback();
532
+ this.updateForm();
533
+ }
534
+ formResetCallback() {
535
+ super.formResetCallback();
536
+ this.checked = !!this.checkedAttribute;
537
+ this.dirtyChecked = false;
538
+ }
539
+ }
540
+ attr({ attribute: "checked", mode: "boolean" })(D.prototype, "checkedAttribute");
541
+ attr({ attribute: "current-checked", converter: booleanConverter })(D.prototype, "currentChecked");
542
+ observable(D.prototype, "defaultChecked");
543
+ observable(D.prototype, "checked");
544
+ return D;
545
+ }
459
546
 
460
- export { FormAssociated as F };
547
+ export { CheckableFormAssociated as C, FormAssociated as F, keySpace as k };
package/shared/index.js CHANGED
@@ -5011,4 +5011,4 @@ function provideVividDesignSystem(element) {
5011
5011
  }
5012
5012
  const designSystem = provideVividDesignSystem();
5013
5013
 
5014
- export { AttachedBehaviorHTMLDirective as A, DOM as D, FoundationElement as F, HTMLDirective as H, Observable as O, SubscriberSet as S, __decorate as _, attr as a, __metadata as b, __classPrivateFieldGet as c, designSystem as d, emptyArray as e, HTMLView as f, __classPrivateFieldSet as g, html as h, nullableNumberConverter as n, observable as o, provideVividDesignSystem as p, volatile as v };
5014
+ export { AttachedBehaviorHTMLDirective as A, DOM as D, FoundationElement as F, HTMLDirective as H, Observable as O, SubscriberSet as S, __decorate as _, attr as a, __metadata as b, __classPrivateFieldGet as c, designSystem as d, emptyArray as e, booleanConverter as f, HTMLView as g, html as h, __classPrivateFieldSet as i, nullableNumberConverter as n, observable as o, provideVividDesignSystem as p, volatile as v };
@@ -8601,7 +8601,7 @@ __decorate([attr, __metadata("design:type", String)], SideDrawer.prototype, "pos
8601
8601
 
8602
8602
  __decorate([observable, __metadata("design:type", Array)], SideDrawer.prototype, "headerSlottedContent", void 0);
8603
8603
 
8604
- 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 block-size: 100vh;\n}\n\n:host([position=end]) {\n flex-direction: row-reverse;\n}\n\n.control {\n position: fixed;\n z-index: var(--side-drawer-z-index, 6);\n top: auto;\n bottom: 0;\n display: flex;\n overflow: auto;\n flex-direction: column;\n flex-shrink: 0;\n background-color: var(--side-drawer-background-color, var(--vvd-color-canvas));\n block-size: inherit;\n color: var(--side-drawer-color, var(--vvd-color-on-canvas));\n inline-size: var(--side-drawer-inline-size, 280px);\n}\n.control.alternate {\n background-color: var(--vvd-color-canvas);\n}\n.control:not(.open).end {\n transform: translateX(100%);\n}\n.control:not(.open):not(.end) {\n transform: translateX(-100%);\n}\n.control.control.open:not(.modal) + .side-drawer-app-content {\n font: 400 ultra-condensed 16px / 24px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin-inline-start: var(--side-drawer-inline-size, 280px);\n}\n.control.control.open:not(.modal) + .side-drawer-app-content ::slotted(vwc-top-app-bar),\n.control.control.open:not(.modal) + .side-drawer-app-content ::slotted(vwc-top-app-bar-fixed) {\n --mdc-top-app-bar-width: calc(100% - var(--side-drawer-inline-size, 280px));\n}\n.control.control.open:not(.modal).end + .side-drawer-app-content {\n margin-inline-end: var(--side-drawer-inline-size, 280px);\n margin-inline-start: 0;\n}\n@media (prefers-reduced-motion: no-preference) {\n .control {\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n}\n\n.side-drawer-header {\n font: 500 condensed 26px / 36px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n height: 64px;\n flex-shrink: 0;\n align-items: center;\n padding-inline-end: var(--side-drawer-padding-header, 16px);\n padding-inline-start: var(--side-drawer-padding-header, 16px);\n}\n:not(.withHeader) .side-drawer-header {\n display: none;\n}\n\n.side-drawer-content {\n background-color: inherit;\n margin-block: 12px;\n overflow-y: auto;\n padding-inline-end: var(--side-drawer-padding-body, 16px);\n padding-inline-start: var(--side-drawer-padding-body, 16px);\n}\n\n.modal:not(.end) {\n inset-inline-start: 0;\n}\n.modal.end {\n inset-inline-end: 0;\n}\n\n.scrim {\n background-color: var(--vvd-color-on-canvas);\n opacity: 0.5;\n position: fixed;\n z-index: calc(6 - 1);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.scrim:not(.open) {\n display: none;\n}";
8604
+ 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 block-size: 100vh;\n}\n\n:host([position=end]) {\n flex-direction: row-reverse;\n}\n\n.control {\n position: fixed;\n z-index: var(--side-drawer-z-index, 6);\n top: auto;\n bottom: 0;\n display: flex;\n overflow: auto;\n flex-direction: column;\n flex-shrink: 0;\n background-color: var(--side-drawer-background-color, var(--vvd-color-canvas));\n block-size: inherit;\n color: var(--side-drawer-color, var(--vvd-color-on-canvas));\n inline-size: var(--side-drawer-inline-size, 280px);\n}\n.control.alternate {\n background-color: var(--vvd-color-canvas);\n}\n.control:not(.open).end {\n transform: translateX(100%);\n}\n.control:not(.open):not(.end) {\n transform: translateX(-100%);\n}\n.control.control.open:not(.modal) + .side-drawer-app-content {\n font: 400 ultra-condensed 16px / 24px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n margin-inline-start: var(--side-drawer-inline-size, 280px);\n}\n.control.control.open:not(.modal).end + .side-drawer-app-content {\n margin-inline-end: var(--side-drawer-inline-size, 280px);\n margin-inline-start: 0;\n}\n@media (prefers-reduced-motion: no-preference) {\n .control {\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n }\n}\n\n.side-drawer-header {\n font: 500 condensed 26px / 36px SpeziaWebVariable;\n letter-spacing: 0px;\n text-decoration: none;\n text-transform: none;\n display: flex;\n height: 64px;\n flex-shrink: 0;\n align-items: center;\n padding-inline-end: var(--side-drawer-padding-header, 16px);\n padding-inline-start: var(--side-drawer-padding-header, 16px);\n}\n:not(.withHeader) .side-drawer-header {\n display: none;\n}\n\n.side-drawer-content {\n background-color: inherit;\n margin-block: 12px;\n overflow-y: auto;\n padding-inline-end: var(--side-drawer-padding-body, 16px);\n padding-inline-start: var(--side-drawer-padding-body, 16px);\n}\n\n.modal:not(.end) {\n inset-inline-start: 0;\n}\n.modal.end {\n inset-inline-end: 0;\n}\n\n.scrim {\n background-color: var(--vvd-color-on-canvas);\n opacity: 0.5;\n position: fixed;\n z-index: calc(--side-drawer-z-index - 1);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n.scrim:not(.open) {\n display: none;\n}";
8605
8605
  styleInject(css_248z);
8606
8606
 
8607
8607
  let _ = t => t,