@vonage/vivid 3.4.0 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +22 -9
  2. package/banner/index.js +2 -0
  3. package/breadcrumb/index.js +1 -1
  4. package/breadcrumb-item/index.js +1 -1
  5. package/button/index.js +2 -0
  6. package/calendar/index.js +1 -1
  7. package/calendar-event/index.js +1 -1
  8. package/card/index.js +2 -2
  9. package/checkbox/index.js +1 -1
  10. package/combobox/index.js +6 -4
  11. package/custom-elements.json +124 -0
  12. package/data-grid/index.js +1 -1
  13. package/dialog/index.js +5 -2
  14. package/divider/index.js +1 -1
  15. package/elevation/index.js +1 -1
  16. package/fab/index.js +1 -1
  17. package/header/index.js +2 -2
  18. package/index.js +26 -26
  19. package/layout/index.js +1 -1
  20. package/lib/action-group/action-group.d.ts +2 -0
  21. package/lib/button/button.d.ts +1 -0
  22. package/lib/button/button.template.d.ts +1 -1
  23. package/lib/data-grid/data-grid.d.ts +8 -0
  24. package/lib/dialog/dialog.d.ts +2 -0
  25. package/lib/menu/menu.d.ts +1 -0
  26. package/lib/select/select.d.ts +2 -3
  27. package/listbox/index.js +2 -2
  28. package/menu/index.js +6 -4
  29. package/menu-item/index.js +1 -1
  30. package/nav/index.js +1 -1
  31. package/nav-disclosure/index.js +1 -1
  32. package/nav-item/index.js +1 -1
  33. package/note/index.js +1 -1
  34. package/number-field/index.js +4 -2
  35. package/option/index.js +1 -1
  36. package/package.json +1 -1
  37. package/popup/index.js +4 -2
  38. package/progress/index.js +1 -1
  39. package/progress-ring/index.js +1 -1
  40. package/select/index.js +5 -3
  41. package/shared/definition.js +1 -1
  42. package/shared/definition10.js +69 -91
  43. package/shared/definition11.js +91 -40
  44. package/shared/definition12.js +31 -755
  45. package/shared/definition13.js +754 -93
  46. package/shared/definition14.js +100 -103
  47. package/shared/definition15.js +106 -24
  48. package/shared/definition16.js +24 -164
  49. package/shared/definition17.js +108 -663
  50. package/shared/definition18.js +667 -1533
  51. package/shared/definition19.js +1545 -223
  52. package/shared/definition2.js +1 -1
  53. package/shared/definition20.js +183 -961
  54. package/shared/definition21.js +1038 -203
  55. package/shared/definition22.js +226 -67
  56. package/shared/definition23.js +68 -77
  57. package/shared/definition24.js +76 -47
  58. package/shared/definition25.js +46 -32
  59. package/shared/definition26.js +35 -49
  60. package/shared/definition27.js +48 -338
  61. package/shared/definition28.js +273 -282
  62. package/shared/definition29.js +356 -14
  63. package/shared/definition30.js +13 -67
  64. package/shared/definition31.js +65 -21
  65. package/shared/definition32.js +21 -39
  66. package/shared/definition33.js +31 -432
  67. package/shared/definition34.js +432 -76
  68. package/shared/definition35.js +76 -59
  69. package/shared/definition36.js +1 -1
  70. package/shared/definition37.js +1 -1
  71. package/shared/definition38.js +7 -6
  72. package/shared/definition39.js +1 -1
  73. package/shared/definition4.js +1 -1
  74. package/shared/definition41.js +1 -1
  75. package/shared/definition42.js +1 -1
  76. package/shared/definition44.js +1 -1
  77. package/shared/definition45.js +1 -1
  78. package/shared/definition47.js +2 -2
  79. package/shared/definition48.js +1 -1
  80. package/shared/definition5.js +10 -3
  81. package/shared/definition6.js +1 -1
  82. package/shared/definition7.js +1 -1
  83. package/shared/definition8.js +1 -1
  84. package/shared/definition9.js +14 -4
  85. package/shared/form-elements.js +1 -1
  86. package/shared/icon.js +1 -1
  87. package/shared/listbox.js +1 -1
  88. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  89. package/shared/text-field.js +1 -1
  90. package/styles/core/all.css +1 -1
  91. package/styles/core/theme.css +1 -1
  92. package/styles/core/typography.css +1 -1
  93. package/styles/tokens/theme-dark.css +4 -4
  94. package/styles/tokens/theme-light.css +4 -4
  95. package/tooltip/index.js +4 -2
@@ -1,114 +1,111 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { i as iconRegistries } from './definition3.js';
3
- import { E as Elevation, e as elevationRegistries } from './definition15.js';
4
- import { I as Icon } from './icon.js';
5
- import { s as slotted } from './slotted.js';
1
+ import { G as _export, i as descriptors, g as global$1, k as functionUncurryThis, B as hasOwnProperty_1, m as isCallable$1, f as objectDefineProperty, a4 as copyConstructorProperties$1, j as objectIsPrototypeOf, h as html, r as registerFactory } from './index.js';
2
+ import { C as CalendarEvent } from './calendar-event.js';
3
+ import './es.object.assign.js';
4
+ import { t as toString$1 } from './to-string.js';
6
5
  import { w as when } from './when.js';
7
6
  import { c as classNames } from './class-names.js';
8
7
 
9
- var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 16 Mar 2023 08:36:16 GMT\n */\n:host {\n display: flex;\n}\n\n.base {\n border-radius: 6px;\n inline-size: 100%;\n text-align: start;\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-canvas-text);\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-headline, .header-subtitle {\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-headline {\n font: var(--vvd-typography-heading-4);\n -webkit-line-clamp: var(--headline-line-clamp);\n}\n.header-subtitle {\n font: var(--vvd-typography-base);\n -webkit-line-clamp: var(--subtitle-line-clamp);\n}\n.hide-header .header {\n display: none;\n}\n\n.header-subtitle,\n.text {\n color: var(--vvd-color-neutral-600);\n font: var(--vvd-typography-base);\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}";
8
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 30 Mar 2023 16:21:30 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-canvas-text);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-neutral-800);\n --_connotation-color-soft: var(--vvd-color-neutral-100);\n}\n.base.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-cta-800);\n --_connotation-color-soft: var(--vvd-color-cta-100);\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-success-800);\n --_connotation-color-soft: var(--vvd-color-success-100);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-alert-800);\n --_connotation-color-soft: var(--vvd-color-alert-100);\n}\n.base.connotation-warning {\n --_connotation-color-primary: var(--vvd-color-warning-300);\n --_connotation-color-primary-text: var(--vvd-color-canvas-text);\n --_connotation-color-contrast: var(--vvd-color-warning-800);\n --_connotation-color-soft: var(--vvd-color-warning-100);\n}\n.base.connotation-announcement {\n --_connotation-color-primary: var(--vvd-color-announcement-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-announcement-800);\n --_connotation-color-soft: var(--vvd-color-announcement-100);\n}\n.base:not(.connotation-accent, .connotation-cta, .connotation-success, .connotation-alert, .connotation-warning, .connotation-announcement) {\n --_connotation-color-primary: var(--vvd-color-information-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-contrast: var(--vvd-color-information-800);\n --_connotation-color-soft: var(--vvd-color-information-100);\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\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: transparent;\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 margin: 0;\n font: var(--vvd-typography-base-condensed-bold);\n}\nh2 > strong {\n font: inherit;\n}\n\np {\n margin: 0;\n font: var(--vvd-typography-base-condensed);\n}";
10
9
 
11
- class Card extends FoundationElement {}
12
- __decorate([attr, __metadata("design:type", String)], Card.prototype, "headline", void 0);
13
- __decorate([attr, __metadata("design:type", String)], Card.prototype, "subtitle", void 0);
14
- __decorate([attr, __metadata("design:type", String)], Card.prototype, "text", void 0);
15
- __decorate([attr, __metadata("design:type", String)], Card.prototype, "icon", void 0);
16
- __decorate([attr, __metadata("design:type", Number)], Card.prototype, "elevation", void 0);
17
- __decorate([observable, __metadata("design:type", Array)], Card.prototype, "footerSlottedContent", void 0);
18
- __decorate([observable, __metadata("design:type", Array)], Card.prototype, "graphicSlottedContent", void 0);
19
- __decorate([observable, __metadata("design:type", Array)], Card.prototype, "hasMetaSlottedContent", void 0);
10
+ var $ = _export;
11
+ var DESCRIPTORS = descriptors;
12
+ var global = global$1;
13
+ var uncurryThis = functionUncurryThis;
14
+ var hasOwn = hasOwnProperty_1;
15
+ var isCallable = isCallable$1;
16
+ var isPrototypeOf = objectIsPrototypeOf;
17
+ var toString = toString$1;
18
+ var defineProperty = objectDefineProperty.f;
19
+ var copyConstructorProperties = copyConstructorProperties$1;
20
20
 
21
- let _2 = t => t,
22
- _t,
23
- _t2,
24
- _t3,
25
- _t4,
26
- _t5,
27
- _t6,
28
- _t7,
29
- _t8;
30
- const getClasses = _ => classNames('base', ['hide-footer', !_.footerSlottedContent || !_.footerSlottedContent.length], ['hide-header', shouldHideHeader(_)]);
31
- function renderHeaderIcon(iconTag) {
32
- return html(_t || (_t = _2`
33
- <${0} class="icon" inline name="${0}"></${0}>`), iconTag, x => x.icon, iconTag);
34
- }
35
- function Headline() {
36
- return html(_t2 || (_t2 = _2`
37
- <div class="header-headline">${0}</div>
38
- `), x => x.headline);
39
- }
40
- function Subtitle() {
41
- return html(_t3 || (_t3 = _2`
42
- <div class="header-subtitle">${0}</div>
43
- `), x => x.subtitle);
44
- }
45
- function headerContent() {
46
- return html(_t4 || (_t4 = _2`
47
- <div class="header-content">
48
- ${0}
49
- ${0}
50
- </div>
51
- `), when(x => x.headline, Headline()), when(x => x.subtitle, Subtitle()));
52
- }
53
- function renderHeader(iconTag) {
54
- return html(_t5 || (_t5 = _2`
55
- <header class="header">
56
- <slot name="graphic" ${0}>${0}</slot>
57
- ${0}
58
- </header>`), slotted('graphicSlottedContent'), when(x => x.icon, renderHeaderIcon(iconTag)), when(x => x.headline || x.subtitle, headerContent()));
59
- }
60
- function shouldHideHeader(card) {
61
- return !card.headline && !card.subtitle && !card.icon && (!card.graphicSlottedContent || !card.graphicSlottedContent.length);
62
- }
63
- function renderMetaSlot() {
64
- return html(_t6 || (_t6 = _2`
65
- <slot name="meta" ${0}></slot>
66
- `), slotted('metaSlottedContent'));
67
- }
68
- function text() {
69
- return html(_t7 || (_t7 = _2`
70
- <div class="text">${0}</div>
71
- `), x => x.text);
72
- }
73
- const CardTemplate = context => {
74
- const elevationTag = context.tagFor(Elevation);
75
- const iconTag = context.tagFor(Icon);
76
- return html(_t8 || (_t8 = _2`
77
- <${0} dp=${0}>
21
+ var NativeSymbol = global.Symbol;
22
+ var SymbolPrototype = NativeSymbol && NativeSymbol.prototype;
23
+
24
+ if (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||
25
+ // Safari 12 bug
26
+ NativeSymbol().description !== undefined
27
+ )) {
28
+ var EmptyStringDescriptionStore = {};
29
+ // wrap Symbol constructor for correct work with undefined description
30
+ var SymbolWrapper = function Symbol() {
31
+ var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);
32
+ var result = isPrototypeOf(SymbolPrototype, this)
33
+ ? new NativeSymbol(description)
34
+ // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'
35
+ : description === undefined ? NativeSymbol() : NativeSymbol(description);
36
+ if (description === '') EmptyStringDescriptionStore[result] = true;
37
+ return result;
38
+ };
39
+
40
+ copyConstructorProperties(SymbolWrapper, NativeSymbol);
41
+ SymbolWrapper.prototype = SymbolPrototype;
42
+ SymbolPrototype.constructor = SymbolWrapper;
43
+
44
+ var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';
45
+ var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);
46
+ var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);
47
+ var regexp = /^Symbol\((.*)\)[^)]+$/;
48
+ var replace = uncurryThis(''.replace);
49
+ var stringSlice = uncurryThis(''.slice);
78
50
 
79
- <div class="${0}">
80
- <div class="wrapper">
81
- <div class="vwc-card-media">
82
- <slot name="media"></slot>
83
- </div>
84
- <slot name="main">
85
- <div class="main-content">
86
- <div class="header-wrapper">
87
- ${0}
88
- ${0}
89
- </div>
90
- ${0}
91
- </div>
92
- </slot>
93
- <div class="footer">
94
- <slot name="footer" ${0}></slot>
95
- </div>
96
- </div>
97
- </div>
51
+ defineProperty(SymbolPrototype, 'description', {
52
+ configurable: true,
53
+ get: function description() {
54
+ var symbol = thisSymbolValue(this);
55
+ if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';
56
+ var string = symbolDescriptiveString(symbol);
57
+ var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');
58
+ return desc === '' ? undefined : desc;
59
+ }
60
+ });
98
61
 
99
- </${0}>
100
- `), elevationTag, x => {
101
- var _a;
102
- return (_a = x.elevation) !== null && _a !== void 0 ? _a : '4';
103
- }, getClasses, renderHeader(iconTag), renderMetaSlot(), when(x => x.text, text()), slotted('footerSlottedContent'), elevationTag);
62
+ $({ global: true, constructor: true, forced: true }, {
63
+ Symbol: SymbolWrapper
64
+ });
65
+ }
66
+
67
+ let _ = t => t,
68
+ _t,
69
+ _t2,
70
+ _t3;
71
+ const getClasses = ({
72
+ connotation,
73
+ appearance
74
+ }) => classNames('base', [`connotation-${connotation}`, Boolean(connotation)], [`appearance-${appearance}`, Boolean(appearance)]);
75
+ const getStyles = ({
76
+ start,
77
+ duration,
78
+ overlapCount
79
+ }) => {
80
+ const stylesObj = Object.assign(Object.assign(Object.assign({}, overlapCount && {
81
+ '--vvd-calendar-event--overlap-count': overlapCount
82
+ }), start && {
83
+ '--vvd-calendar-event--start': start
84
+ }), duration && {
85
+ '--vvd-calendar-event--duration': duration
86
+ });
87
+ return Object.entries(stylesObj).map(entry => entry.join(':')).join(';');
104
88
  };
89
+ const CalendarEventTemplate = () => html(_t || (_t = _`
90
+ <div
91
+ style="${0}"
92
+ class="${0}"
93
+ role="button"
94
+ tabindex="0"
95
+ >
96
+ ${0}
97
+ ${0}
98
+ </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)));
105
99
 
106
- const cardDefinition = Card.compose({
107
- baseName: 'card',
108
- template: CardTemplate,
109
- styles: css_248z
100
+ const calendarEventDefinition = CalendarEvent.compose({
101
+ baseName: 'calendar-event',
102
+ template: CalendarEventTemplate,
103
+ styles: css_248z,
104
+ shadowOptions: {
105
+ delegatesFocus: true
106
+ }
110
107
  });
111
- const cardRegistries = [cardDefinition(), ...iconRegistries, ...elevationRegistries];
112
- const registerCard = registerFactory(cardRegistries);
108
+ const calendarEventRegistries = [calendarEventDefinition()];
109
+ const registerCalendarEvent = registerFactory(calendarEventRegistries);
113
110
 
114
- export { cardRegistries as a, cardDefinition as c, registerCard as r };
111
+ export { calendarEventRegistries as a, calendarEventDefinition as c, registerCalendarEvent as r };
@@ -1,32 +1,114 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, o as observable, h as html, r as registerFactory } from './index.js';
2
+ import { i as iconRegistries } from './definition3.js';
3
+ import { E as Elevation, e as elevationRegistries } from './definition16.js';
4
+ import { I as Icon } from './icon.js';
5
+ import { s as slotted } from './slotted.js';
6
+ import { w as when } from './when.js';
2
7
  import { c as classNames } from './class-names.js';
3
8
 
4
- class Elevation extends FoundationElement {}
5
- __decorate([attr, __metadata("design:type", Number)], Elevation.prototype, "dp", void 0);
6
- __decorate([attr({
7
- attribute: 'no-shadow',
8
- mode: 'boolean'
9
- }), __metadata("design:type", Boolean)], Elevation.prototype, "noShadow", void 0);
9
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 30 Mar 2023 16:21:30 GMT\n */\n:host {\n display: flex;\n}\n\n.base {\n border-radius: 6px;\n inline-size: 100%;\n text-align: start;\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-canvas-text);\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-headline, .header-subtitle {\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-headline {\n font: var(--vvd-typography-heading-4);\n -webkit-line-clamp: var(--headline-line-clamp);\n}\n.header-subtitle {\n font: var(--vvd-typography-base);\n -webkit-line-clamp: var(--subtitle-line-clamp);\n}\n.hide-header .header {\n display: none;\n}\n\n.header-subtitle,\n.text {\n color: var(--vvd-color-neutral-600);\n font: var(--vvd-typography-base);\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}";
10
10
 
11
- 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: var(--_elevation-fill);\n filter: var(--_elevation-shadow);\n transition: background-color 0.15s linear, filter 0.15s linear;\n}\n.control.no-shadow ::slotted(*) {\n filter: none;\n}";
11
+ class Card extends FoundationElement {}
12
+ __decorate([attr, __metadata("design:type", String)], Card.prototype, "headline", void 0);
13
+ __decorate([attr, __metadata("design:type", String)], Card.prototype, "subtitle", void 0);
14
+ __decorate([attr, __metadata("design:type", String)], Card.prototype, "text", void 0);
15
+ __decorate([attr, __metadata("design:type", String)], Card.prototype, "icon", void 0);
16
+ __decorate([attr, __metadata("design:type", Number)], Card.prototype, "elevation", void 0);
17
+ __decorate([observable, __metadata("design:type", Array)], Card.prototype, "footerSlottedContent", void 0);
18
+ __decorate([observable, __metadata("design:type", Array)], Card.prototype, "graphicSlottedContent", void 0);
19
+ __decorate([observable, __metadata("design:type", Array)], Card.prototype, "hasMetaSlottedContent", void 0);
12
20
 
13
- let _ = t => t,
14
- _t;
15
- const getClasses = ({
16
- dp,
17
- noShadow
18
- }) => classNames('control', [`dp-${dp}`, Boolean(dp)], ['no-shadow', Boolean(noShadow)]);
19
- const elevationTemplate = () => html(_t || (_t = _`
20
- <div class="${0}" part="base">
21
- <slot></slot>
22
- </div>`), getClasses);
21
+ let _2 = t => t,
22
+ _t,
23
+ _t2,
24
+ _t3,
25
+ _t4,
26
+ _t5,
27
+ _t6,
28
+ _t7,
29
+ _t8;
30
+ const getClasses = _ => classNames('base', ['hide-footer', !_.footerSlottedContent || !_.footerSlottedContent.length], ['hide-header', shouldHideHeader(_)]);
31
+ function renderHeaderIcon(iconTag) {
32
+ return html(_t || (_t = _2`
33
+ <${0} class="icon" inline name="${0}"></${0}>`), iconTag, x => x.icon, iconTag);
34
+ }
35
+ function Headline() {
36
+ return html(_t2 || (_t2 = _2`
37
+ <div class="header-headline">${0}</div>
38
+ `), x => x.headline);
39
+ }
40
+ function Subtitle() {
41
+ return html(_t3 || (_t3 = _2`
42
+ <div class="header-subtitle">${0}</div>
43
+ `), x => x.subtitle);
44
+ }
45
+ function headerContent() {
46
+ return html(_t4 || (_t4 = _2`
47
+ <div class="header-content">
48
+ ${0}
49
+ ${0}
50
+ </div>
51
+ `), when(x => x.headline, Headline()), when(x => x.subtitle, Subtitle()));
52
+ }
53
+ function renderHeader(iconTag) {
54
+ return html(_t5 || (_t5 = _2`
55
+ <header class="header">
56
+ <slot name="graphic" ${0}>${0}</slot>
57
+ ${0}
58
+ </header>`), slotted('graphicSlottedContent'), when(x => x.icon, renderHeaderIcon(iconTag)), when(x => x.headline || x.subtitle, headerContent()));
59
+ }
60
+ function shouldHideHeader(card) {
61
+ return !card.headline && !card.subtitle && !card.icon && (!card.graphicSlottedContent || !card.graphicSlottedContent.length);
62
+ }
63
+ function renderMetaSlot() {
64
+ return html(_t6 || (_t6 = _2`
65
+ <slot name="meta" ${0}></slot>
66
+ `), slotted('metaSlottedContent'));
67
+ }
68
+ function text() {
69
+ return html(_t7 || (_t7 = _2`
70
+ <div class="text">${0}</div>
71
+ `), x => x.text);
72
+ }
73
+ const CardTemplate = context => {
74
+ const elevationTag = context.tagFor(Elevation);
75
+ const iconTag = context.tagFor(Icon);
76
+ return html(_t8 || (_t8 = _2`
77
+ <${0} dp=${0}>
23
78
 
24
- const elevationDefinition = Elevation.compose({
25
- baseName: 'elevation',
26
- template: elevationTemplate,
79
+ <div class="${0}">
80
+ <div class="wrapper">
81
+ <div class="vwc-card-media">
82
+ <slot name="media"></slot>
83
+ </div>
84
+ <slot name="main">
85
+ <div class="main-content">
86
+ <div class="header-wrapper">
87
+ ${0}
88
+ ${0}
89
+ </div>
90
+ ${0}
91
+ </div>
92
+ </slot>
93
+ <div class="footer">
94
+ <slot name="footer" ${0}></slot>
95
+ </div>
96
+ </div>
97
+ </div>
98
+
99
+ </${0}>
100
+ `), elevationTag, x => {
101
+ var _a;
102
+ return (_a = x.elevation) !== null && _a !== void 0 ? _a : '4';
103
+ }, getClasses, renderHeader(iconTag), renderMetaSlot(), when(x => x.text, text()), slotted('footerSlottedContent'), elevationTag);
104
+ };
105
+
106
+ const cardDefinition = Card.compose({
107
+ baseName: 'card',
108
+ template: CardTemplate,
27
109
  styles: css_248z
28
110
  });
29
- const elevationRegistries = [elevationDefinition()];
30
- const registerElevation = registerFactory(elevationRegistries);
111
+ const cardRegistries = [cardDefinition(), ...iconRegistries, ...elevationRegistries];
112
+ const registerCard = registerFactory(cardRegistries);
31
113
 
32
- export { Elevation as E, elevationDefinition as a, elevationRegistries as e, registerElevation as r };
114
+ export { cardRegistries as a, cardDefinition as c, registerCard as r };
@@ -1,172 +1,32 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, o as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { i as iconRegistries } from './definition3.js';
3
- import { f as focusRegistries } from './definition4.js';
4
- import { C as CheckableFormAssociated } from './form-associated.js';
5
- import { e as keySpace$1 } from './key-codes.js';
6
- import { f as focusTemplateFactory } from './focus2.js';
7
- import { I as Icon } from './icon.js';
8
- import { w as when } from './when.js';
1
+ import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
9
2
  import { c as classNames } from './class-names.js';
10
3
 
11
- class _Checkbox extends FoundationElement {
12
- }
13
- /**
14
- * A form-associated base class for the {@link @microsoft/fast-foundation#(Checkbox:class)} component.
15
- *
16
- * @internal
17
- */
18
- class FormAssociatedCheckbox extends CheckableFormAssociated(_Checkbox) {
19
- constructor() {
20
- super(...arguments);
21
- this.proxy = document.createElement("input");
22
- }
23
- }
4
+ class Elevation extends FoundationElement {}
5
+ __decorate([attr, __metadata("design:type", Number)], Elevation.prototype, "dp", void 0);
6
+ __decorate([attr({
7
+ attribute: 'no-shadow',
8
+ mode: 'boolean'
9
+ }), __metadata("design:type", Boolean)], Elevation.prototype, "noShadow", void 0);
24
10
 
25
- /**
26
- * A Checkbox Custom HTML Element.
27
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#checkbox | ARIA checkbox }.
28
- *
29
- * @slot checked-indicator - The checked indicator
30
- * @slot indeterminate-indicator - The indeterminate indicator
31
- * @slot - The default slot for the label
32
- * @csspart control - The element representing the visual checkbox control
33
- * @csspart label - The label
34
- * @fires change - Emits a custom change event when the checked state changes
35
- *
36
- * @public
37
- */
38
- class Checkbox$1 extends FormAssociatedCheckbox {
39
- constructor() {
40
- super();
41
- /**
42
- * The element's value to be included in form submission when checked.
43
- * Default to "on" to reach parity with input[type="checkbox"]
44
- *
45
- * @internal
46
- */
47
- this.initialValue = "on";
48
- /**
49
- * The indeterminate state of the control
50
- */
51
- this.indeterminate = false;
52
- /**
53
- * @internal
54
- */
55
- this.keypressHandler = (e) => {
56
- if (this.readOnly) {
57
- return;
58
- }
59
- switch (e.key) {
60
- case keySpace$1:
61
- if (this.indeterminate) {
62
- this.indeterminate = false;
63
- }
64
- this.checked = !this.checked;
65
- break;
66
- }
67
- };
68
- /**
69
- * @internal
70
- */
71
- this.clickHandler = (e) => {
72
- if (!this.disabled && !this.readOnly) {
73
- if (this.indeterminate) {
74
- this.indeterminate = false;
75
- }
76
- this.checked = !this.checked;
77
- }
78
- };
79
- this.proxy.setAttribute("type", "checkbox");
80
- }
81
- readOnlyChanged() {
82
- if (this.proxy instanceof HTMLInputElement) {
83
- this.proxy.readOnly = this.readOnly;
84
- }
85
- }
86
- }
87
- __decorate([
88
- attr({ attribute: "readonly", mode: "boolean" })
89
- ], Checkbox$1.prototype, "readOnly", void 0);
90
- __decorate([
91
- observable
92
- ], Checkbox$1.prototype, "defaultSlottedNodes", void 0);
93
- __decorate([
94
- observable
95
- ], Checkbox$1.prototype, "indeterminate", void 0);
96
-
97
- var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 16 Mar 2023 08:36:16 GMT\n */\n.base {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n vertical-align: middle;\n}\n.base {\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary-increment: var(--vvd-color-neutral-800);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:checked, .checked):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: var(--_connotation-color-primary);\n}\n.base:where(:checked, .checked):where(:hover, .hover) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary-increment);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n@supports selector(:focus-visible) {\n .base:focus {\n outline: none;\n }\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n cursor: pointer;\n}\n.base.disabled {\n cursor: not-allowed;\n pointer-events: none;\n}\n\n.control {\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n background-color: var(--_appearance-color-fill);\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20));\n border-radius: 3px;\n box-shadow: inset 0 0 0 2px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n inline-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20));\n}\n\n.indicator {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20)) - 4px);\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 color: var(--vvd-color-canvas-text);\n cursor: pointer;\n font: var(--vvd-typography-base);\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}\n\n.icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 20)) * 0.7);\n line-height: 1;\n}";
98
-
99
- const keySpace = ' ';
100
- class Checkbox extends Checkbox$1 {
101
- constructor() {
102
- super(...arguments);
103
- this.keypressHandler = e => {
104
- switch (e.key) {
105
- case keySpace:
106
- if (this.indeterminate) {
107
- this.indeterminate = false;
108
- }
109
- this.checked = !this.checked;
110
- break;
111
- }
112
- };
113
- this.clickHandler = () => {
114
- if (!this.disabled && !this.readOnly) {
115
- if (this.indeterminate) {
116
- this.indeterminate = false;
117
- }
118
- this.checked = !this.checked;
119
- }
120
- };
121
- }
122
- }
123
- __decorate([attr, __metadata("design:type", String)], Checkbox.prototype, "label", void 0);
11
+ 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: var(--_elevation-fill);\n filter: var(--_elevation-shadow);\n transition: background-color 0.15s linear, filter 0.15s linear;\n}\n.control.no-shadow ::slotted(*) {\n filter: none;\n}";
124
12
 
125
13
  let _ = t => t,
126
- _t,
127
- _t2,
128
- _t3,
129
- _t4;
14
+ _t;
130
15
  const getClasses = ({
131
- readOnly,
132
- checked,
133
- disabled,
134
- indeterminate
135
- }) => classNames('base', ['readonly', Boolean(readOnly)], ['checked', Boolean(checked) || Boolean(indeterminate)], ['disabled', Boolean(disabled)]);
136
- const CheckboxTemplate = context => {
137
- const focusTemplate = focusTemplateFactory(context);
138
- const iconTag = context.tagFor(Icon);
139
- return html(_t || (_t = _`<span
140
- role="checkbox"
141
- aria-checked="${0}"
142
- aria-required="${0}"
143
- aria-disabled="${0}"
144
- aria-readonly="${0}"
145
- tabindex="${0}"
146
- @keypress="${0}"
147
- @click="${0}"
148
- class="${0}"
149
- >
150
- <div class="control">
151
- ${0}
152
- ${0}
153
- ${0}
154
- </div>
155
-
156
- ${0}
157
-
158
- </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, when(x => x.checked, html(_t2 || (_t2 = _`<${0} name="check-solid" class="icon"></${0}>`), iconTag, iconTag)), when(x => x.indeterminate, html(_t3 || (_t3 = _`<${0} name="minus-solid" class="icon"></${0}>`), iconTag, iconTag)), () => focusTemplate, when(x => x.label, html(_t4 || (_t4 = _`<label>${0}</label>`), x => x.label)));
159
- };
160
-
161
- const checkboxDefinition = Checkbox.compose({
162
- baseName: 'checkbox',
163
- template: CheckboxTemplate,
164
- styles: css_248z,
165
- shadowOptions: {
166
- delegatesFocus: true
167
- }
16
+ dp,
17
+ noShadow
18
+ }) => classNames('control', [`dp-${dp}`, Boolean(dp)], ['no-shadow', Boolean(noShadow)]);
19
+ const elevationTemplate = () => html(_t || (_t = _`
20
+ <div class="${0}" part="base">
21
+ <slot></slot>
22
+ </div>`), getClasses);
23
+
24
+ const elevationDefinition = Elevation.compose({
25
+ baseName: 'elevation',
26
+ template: elevationTemplate,
27
+ styles: css_248z
168
28
  });
169
- const checkboxRegistries = [checkboxDefinition(), ...iconRegistries, ...focusRegistries];
170
- const registerCheckbox = registerFactory(checkboxRegistries);
29
+ const elevationRegistries = [elevationDefinition()];
30
+ const registerElevation = registerFactory(elevationRegistries);
171
31
 
172
- export { checkboxRegistries as a, checkboxDefinition as c, registerCheckbox as r };
32
+ export { Elevation as E, elevationDefinition as a, elevationRegistries as e, registerElevation as r };