@vonage/vivid 3.13.0 → 3.15.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 (134) hide show
  1. package/accordion/index.js +1 -0
  2. package/accordion-item/index.js +1 -0
  3. package/alert/index.js +1 -0
  4. package/avatar/index.js +1 -0
  5. package/badge/index.js +1 -0
  6. package/banner/index.js +1 -0
  7. package/breadcrumb-item/index.js +1 -0
  8. package/button/index.js +1 -0
  9. package/card/index.js +1 -0
  10. package/checkbox/index.js +4 -0
  11. package/combobox/index.js +1 -0
  12. package/custom-elements.json +1855 -117
  13. package/data-grid/index.js +4 -0
  14. package/dialog/index.js +1 -0
  15. package/empty-state/index.js +14 -0
  16. package/fab/index.js +2 -1
  17. package/header/index.js +1 -1
  18. package/icon/index.js +1 -0
  19. package/index.js +34 -30
  20. package/layout/index.js +1 -1
  21. package/lib/alert/alert.d.ts +4 -6
  22. package/lib/checkbox/checkbox.d.ts +6 -3
  23. package/lib/components.d.ts +2 -0
  24. package/lib/data-grid/data-grid-cell.d.ts +2 -0
  25. package/lib/data-grid/data-grid-row.d.ts +1 -0
  26. package/lib/data-grid/data-grid.d.ts +5 -0
  27. package/lib/empty-state/definition.d.ts +3 -0
  28. package/lib/empty-state/empty-state.d.ts +5 -0
  29. package/lib/empty-state/empty-state.template.d.ts +4 -0
  30. package/lib/empty-state/index.d.ts +1 -0
  31. package/lib/select/select.d.ts +3 -2
  32. package/listbox/index.js +2 -1
  33. package/menu/index.js +4 -3
  34. package/menu-item/index.js +4 -1
  35. package/nav/index.js +1 -1
  36. package/nav-disclosure/index.js +2 -1
  37. package/nav-item/index.js +2 -1
  38. package/note/index.js +2 -1
  39. package/number-field/index.js +2 -1
  40. package/option/index.js +1 -0
  41. package/package.json +1 -1
  42. package/pagination/index.js +15 -312
  43. package/popup/index.js +1 -0
  44. package/progress/index.js +1 -1
  45. package/radio/index.js +1 -1
  46. package/radio-group/index.js +1 -1
  47. package/select/index.js +2 -1
  48. package/shared/definition.js +1 -1
  49. package/shared/definition10.js +1 -1
  50. package/shared/definition11.js +1 -1
  51. package/shared/definition12.js +1 -1
  52. package/shared/definition14.js +1 -1
  53. package/shared/definition15.js +1 -1
  54. package/shared/definition16.js +2 -2
  55. package/shared/definition17.js +1 -1
  56. package/shared/definition18.js +23 -8
  57. package/shared/definition19.js +1 -1
  58. package/shared/definition2.js +1 -1
  59. package/shared/definition20.js +1 -1
  60. package/shared/definition21.js +1 -1
  61. package/shared/definition22.js +217 -11
  62. package/shared/definition23.js +2 -2
  63. package/shared/definition24.js +1 -1
  64. package/shared/definition25.js +39 -76
  65. package/shared/definition26.js +76 -47
  66. package/shared/definition27.js +46 -36
  67. package/shared/definition28.js +39 -49
  68. package/shared/definition29.js +48 -344
  69. package/shared/definition3.js +1 -1
  70. package/shared/definition30.js +273 -288
  71. package/shared/definition31.js +366 -14
  72. package/shared/definition32.js +13 -67
  73. package/shared/definition33.js +66 -21
  74. package/shared/definition34.js +21 -39
  75. package/shared/definition35.js +31 -432
  76. package/shared/definition36.js +432 -76
  77. package/shared/definition37.js +223 -34
  78. package/shared/definition38.js +82 -425
  79. package/shared/definition39.js +30 -628
  80. package/shared/definition4.js +1 -1
  81. package/shared/definition40.js +420 -73
  82. package/shared/definition41.js +530 -484
  83. package/shared/definition42.js +76 -133
  84. package/shared/definition43.js +577 -40
  85. package/shared/definition44.js +135 -20
  86. package/shared/definition45.js +42 -423
  87. package/shared/definition46.js +22 -112
  88. package/shared/definition47.js +440 -18
  89. package/shared/definition48.js +92 -247
  90. package/shared/definition49.js +20 -112
  91. package/shared/definition5.js +1 -1
  92. package/shared/definition50.js +259 -590
  93. package/shared/definition51.js +110 -91
  94. package/shared/definition52.js +602 -67
  95. package/shared/definition53.js +89 -294
  96. package/shared/definition54.js +80 -0
  97. package/shared/definition55.js +305 -0
  98. package/shared/definition6.js +52 -78
  99. package/shared/definition7.js +1 -1
  100. package/shared/definition8.js +1 -1
  101. package/shared/definition9.js +1 -1
  102. package/shared/engine-is-node.js +8 -0
  103. package/shared/es.object.assign.js +1 -1
  104. package/shared/es.regexp.to-string.js +1 -1
  105. package/shared/es.string.includes.js +83 -0
  106. package/shared/form-elements.js +2 -2
  107. package/shared/icon.js +13 -17
  108. package/shared/index.js +1 -1
  109. package/shared/patterns/form-elements/form-elements.d.ts +4 -4
  110. package/shared/string-trim.js +1 -1
  111. package/shared/text-field.js +1 -1
  112. package/shared/to-string.js +1 -1
  113. package/side-drawer/index.js +1 -1
  114. package/slider/index.js +1 -1
  115. package/styles/core/all.css +1 -1
  116. package/styles/core/theme.css +1 -1
  117. package/styles/core/typography.css +1 -1
  118. package/styles/fonts/spezia-variable.css +2 -2
  119. package/styles/tokens/theme-dark.css +4 -4
  120. package/styles/tokens/theme-light.css +4 -4
  121. package/switch/index.js +2 -1
  122. package/tab/index.js +2 -1
  123. package/tab-panel/index.js +1 -1
  124. package/tabs/index.js +4 -3
  125. package/tag/index.js +2 -1
  126. package/tag-group/index.js +1 -1
  127. package/text-anchor/index.js +1 -0
  128. package/text-area/index.js +2 -1
  129. package/text-field/index.js +2 -1
  130. package/toggletip/index.js +2 -1
  131. package/tooltip/index.js +2 -1
  132. package/tree-item/index.js +2 -1
  133. package/tree-view/index.js +1 -1
  134. package/vivid.api.json +210 -0
@@ -1,87 +1,50 @@
1
- import { _ 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
2
  import { i as iconRegistries } from './definition3.js';
3
- import { f as focusRegistries } from './definition4.js';
4
- import { A as AffixIconWithTrailing, a as affixIconTemplateFactory } from './affix.js';
5
- import { B as Button } from './button.js';
6
- import { a as applyMixins } from './apply-mixins.js';
7
- import { f as focusTemplateFactory } from './focus2.js';
8
- import { r as ref } from './ref.js';
3
+ import { I as Icon } from './icon.js';
4
+ import { s as slotted } from './slotted.js';
5
+ import { w as when } from './when.js';
9
6
  import { c as classNames } from './class-names.js';
10
7
 
11
- var css_248z = "/**\n * Do not edit directly\n * Generated on Wed, 17 May 2023 03:28:45 GMT\n */\n.control {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n border: 0 none;\n background: var(--_appearance-color-fill, var(--_elevation-fill));\n block-size: var(--_fab-block-size);\n border-radius: var(--_fab-border-radius);\n color: var(--_appearance-color-text, var(--vvd-color-canvas-text));\n column-gap: var(--fab-icon-gap);\n filter: var(--_elevation-shadow);\n font: var(--vvd-typography-base-bold);\n transition: background-color 0.15s linear, filter 0.15s linear;\n vertical-align: middle;\n /* Size */\n}\n.control.connotation-accent {\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-contrast: var(--vvd-color-neutral-800);\n --_connotation-color-fierce: var(--vvd-color-neutral-700);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n}\n.control.connotation-cta {\n --_connotation-color-primary: var(--vvd-color-cta-500);\n --_connotation-color-primary-text: var(--vvd-color-canvas);\n --_connotation-color-primary-increment: var(--vvd-color-cta-600);\n --_connotation-color-contrast: var(--vvd-color-cta-800);\n --_connotation-color-fierce: var(--vvd-color-cta-700);\n --_connotation-color-firm: var(--vvd-color-cta-600);\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\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.control: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: transparent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-fierce);\n --_appearance-color-outline: transparent;\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n@supports (user-select: none) {\n .control {\n user-select: none;\n }\n}\n.control.size-expanded {\n --_fab-border-radius: 30px;\n --_fab-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 16));\n}\n.control:not(.size-expanded) {\n --_fab-border-radius: 24px;\n --_fab-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.control.icon-only {\n border-radius: 50%;\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(--_fab-block-size);\n }\n}\n.control:not(.icon-only) {\n --fab-icon-gap: 10px;\n padding-inline: 20px;\n}\n.control:disabled {\n --_elevation-fill: var(--vvd-color-surface-0dp);\n --_elevation-shadow: var(--vvd-shadow-surface-0dp);\n cursor: not-allowed;\n}\n.control:not(:disabled) {\n --_elevation-fill: var(--vvd-color-surface-4dp);\n --_elevation-shadow: var(--vvd-shadow-surface-4dp);\n cursor: pointer;\n}\n.control:not(:disabled):hover {\n --_elevation-fill: var(--vvd-color-surface-12dp);\n --_elevation-shadow: var(--vvd-shadow-surface-12dp);\n}\n.control:not(:disabled):active {\n --_elevation-fill: var(--vvd-color-surface-24dp);\n --_elevation-shadow: var(--vvd-shadow-surface-24dp);\n}\n\n/* Icon */\n.icon {\n line-height: 1;\n}\n.icon-trailing .icon {\n order: 1;\n}\n.control.size-extended .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 16)) / 2.3333);\n}\n.control:not(.size-extended) .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n}\n\n:not(:focus-visible) .focus-indicator {\n display: none;\n}";
8
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 06 Jun 2023 10:38:32 GMT\n */\n:host {\n display: block;\n}\n\n.base {\n display: flex;\n box-sizing: border-box;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n block-size: 100%;\n gap: 24px;\n}\n\n.icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--vvd-color-neutral-100);\n block-size: 120px;\n border-radius: 50%;\n inline-size: 120px;\n}\n\n.content {\n display: flex;\n flex-direction: column;\n font: var(--vvd-typography-base);\n gap: 8px;\n text-align: center;\n}\n\nheader {\n font: var(--vvd-typography-base-bold);\n}\n\n.actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n.base.no-actions .actions {\n display: none;\n}";
12
9
 
13
- class Fab extends Button {}
14
- __decorate([attr, __metadata("design:type", String)], Fab.prototype, "connotation", void 0);
15
- __decorate([attr, __metadata("design:type", String)], Fab.prototype, "size", void 0);
16
- __decorate([attr, __metadata("design:type", String)], Fab.prototype, "label", void 0);
17
- applyMixins(Fab, AffixIconWithTrailing);
10
+ class EmptyState extends FoundationElement {}
11
+ __decorate([attr, __metadata("design:type", String)], EmptyState.prototype, "headline", void 0);
12
+ __decorate([attr, __metadata("design:type", String)], EmptyState.prototype, "icon", void 0);
13
+ __decorate([observable, __metadata("design:type", Array)], EmptyState.prototype, "slottedActionItems", void 0);
18
14
 
19
15
  let _ = t => t,
20
- _t;
21
- const getClasses = ({
22
- connotation,
23
- size,
24
- icon,
25
- label,
26
- iconTrailing,
27
- disabled
28
- }) => classNames('control', [`connotation-${connotation}`, Boolean(connotation)], [`size-${size}`, Boolean(size)], ['icon-only', !label && !!icon], ['icon-trailing', iconTrailing], ['disabled', disabled]);
29
- const FabTemplate = context => {
30
- const affixIconTemplate = affixIconTemplateFactory(context);
31
- const focusTemplate = focusTemplateFactory(context);
16
+ _t,
17
+ _t2,
18
+ _t3;
19
+ const getClasses = x => {
20
+ var _a;
21
+ return classNames('base', ['no-actions', ((_a = x.slottedActionItems) === null || _a === void 0 ? void 0 : _a.length) === 0]);
22
+ };
23
+ const EmptyStateTemplate = context => {
24
+ const iconTag = context.tagFor(Icon);
32
25
  return html(_t || (_t = _`
33
- <button
34
- class="${0} "
35
- ?autofocus="${0}"
36
- ?disabled="${0}"
37
- form="${0}"
38
- formaction="${0}"
39
- formenctype="${0}"
40
- formmethod="${0}"
41
- formnovalidate="${0}"
42
- formtarget="${0}"
43
- name="${0}"
44
- type="${0}"
45
- value="${0}"
46
- aria-atomic="${0}"
47
- aria-busy="${0}"
48
- aria-controls="${0}"
49
- aria-current="${0}"
50
- aria-describedby="${0}"
51
- aria-details="${0}"
52
- aria-disabled="${0}"
53
- aria-errormessage="${0}"
54
- aria-expanded="${0}"
55
- aria-flowto="${0}"
56
- aria-haspopup="${0}"
57
- aria-hidden="${0}"
58
- aria-invalid="${0}"
59
- aria-keyshortcuts="${0}"
60
- aria-label="${0}"
61
- aria-labelledby="${0}"
62
- aria-live="${0}"
63
- aria-owns="${0}"
64
- aria-pressed="${0}"
65
- aria-relevant="${0}"
66
- aria-roledescription="${0}"
67
- ${0}
68
- >
69
- ${0}
70
- ${0}
71
- ${0}
72
- </button>
73
- `), getClasses, x => x.autofocus, x => x.disabled, x => x.formId, x => x.formaction, x => x.formenctype, x => x.formmethod, x => x.formnovalidate, x => x.formtarget, x => x.name, x => x.type, x => x.value, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaExpanded, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaPressed, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, x => affixIconTemplate(x.icon), x => x.label);
26
+ <div class="${0}">
27
+ <slot name="graphic">
28
+ ${0}
29
+ </slot>
30
+ <div class="content">
31
+ ${0}
32
+ <slot></slot>
33
+ </div>
34
+ <div class="actions">
35
+ <slot name="action-items" ${0}></slot>
36
+ </div>
37
+ </div>`), getClasses, when(x => x.icon, html(_t2 || (_t2 = _`<div class="icon-container">
38
+ <${0} class="icon" name="${0}" size="5"></${0}>
39
+ </div>`), iconTag, x => x.icon, iconTag)), when(x => x.headline, html(_t3 || (_t3 = _`<header>${0}</header>`), x => x.headline)), slotted('slottedActionItems'));
74
40
  };
75
41
 
76
- const fabDefinition = Fab.compose({
77
- baseName: 'fab',
78
- template: FabTemplate,
79
- styles: css_248z,
80
- shadowOptions: {
81
- delegatesFocus: true
82
- }
42
+ const emptyStateDefinition = EmptyState.compose({
43
+ baseName: 'empty-state',
44
+ template: EmptyStateTemplate,
45
+ styles: css_248z
83
46
  });
84
- const fabRegistries = [fabDefinition(), ...iconRegistries, ...focusRegistries];
85
- const registerFab = registerFactory(fabRegistries);
47
+ const emptyStateRegistries = [emptyStateDefinition(), ...iconRegistries];
48
+ const registerEmptyState = registerFactory(emptyStateRegistries);
86
49
 
87
- export { fabRegistries as a, fabDefinition as f, registerFab as r };
50
+ export { emptyStateRegistries as a, emptyStateDefinition as e, registerEmptyState as r };
@@ -1,58 +1,87 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { E as Elevation, e as elevationRegistries } from './definition8.js';
1
+ import { _ as __decorate, a as attr, 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 { A as AffixIconWithTrailing, a as affixIconTemplateFactory } from './affix.js';
5
+ import { B as Button } from './button.js';
6
+ import { a as applyMixins } from './apply-mixins.js';
7
+ import { f as focusTemplateFactory } from './focus2.js';
8
+ import { r as ref } from './ref.js';
3
9
  import { c as classNames } from './class-names.js';
4
10
 
5
- var css_248z = "/**\n * Do not edit directly\n * Generated on Wed, 17 May 2023 03:28:45 GMT\n */\n.base {\n z-index: 1;\n block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n font: var(--vvd-typography-heading-4);\n inline-size: 100%;\n}\n.base .header-content {\n display: inline-flex;\n align-items: center;\n column-gap: 4px;\n}\n\n.container {\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n block-size: inherit;\n color: var(--vvd-color-canvas-text);\n column-gap: 12px;\n padding-block: 8px;\n padding-inline: 16px;\n}\n.container[part~=vvd-theme-alternate] {\n background-color: var(--vvd-color-canvas);\n color: var(--vvd-color-canvas-text);\n color-scheme: var(--vvd-color-scheme);\n}\n\n.app-content {\n --vvd-header-block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}";
11
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 06 Jun 2023 10:38:32 GMT\n */\n.control {\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n border: 0 none;\n background: var(--_appearance-color-fill, var(--_elevation-fill));\n block-size: var(--_fab-block-size);\n border-radius: var(--_fab-border-radius);\n color: var(--_appearance-color-text, var(--vvd-color-canvas-text));\n column-gap: var(--fab-icon-gap);\n filter: var(--_elevation-shadow);\n font: var(--vvd-typography-base-bold);\n transition: background-color 0.15s linear, filter 0.15s linear;\n vertical-align: middle;\n /* Size */\n}\n.control.connotation-accent {\n /* @cssprop [--vvd-fab-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-fab-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-fab-accent-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-fab-accent-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-fab-accent-primary-increment=var(--vvd-color-neutral-800)] */\n --_connotation-color-primary-increment: var(--vvd-fab-accent-primary-increment, var(--vvd-color-neutral-800));\n /* @cssprop [--vvd-fab-accent-contrast=var(--vvd-color-neutral-800)] */\n --_connotation-color-contrast: var(--vvd-fab-accent-contrast, var(--vvd-color-neutral-800));\n /* @cssprop [--vvd-fab-accent-fierce=var(--vvd-color-neutral-700)] */\n --_connotation-color-fierce: var(--vvd-fab-accent-fierce, var(--vvd-color-neutral-700));\n /* @cssprop [--vvd-fab-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-fab-accent-firm, var(--vvd-color-canvas-text));\n}\n.control.connotation-cta {\n /* @cssprop [--vvd-fab-cta-primary=var(--vvd-color-cta-500)] */\n --_connotation-color-primary: var(--vvd-fab-cta-primary, var(--vvd-color-cta-500));\n /* @cssprop [--vvd-fab-cta-primary-text=var(--vvd-color-canvas)] */\n --_connotation-color-primary-text: var(--vvd-fab-cta-primary-text, var(--vvd-color-canvas));\n /* @cssprop [--vvd-fab-cta-primary-increment=var(--vvd-color-cta-600)] */\n --_connotation-color-primary-increment: var(--vvd-fab-cta-primary-increment, var(--vvd-color-cta-600));\n /* @cssprop [--vvd-fab-cta-contrast=var(--vvd-color-cta-800)] */\n --_connotation-color-contrast: var(--vvd-fab-cta-contrast, var(--vvd-color-cta-800));\n /* @cssprop [--vvd-fab-cta-fierce=var(--vvd-color-cta-700)] */\n --_connotation-color-fierce: var(--vvd-fab-cta-fierce, var(--vvd-color-cta-700));\n /* @cssprop [--vvd-fab-cta-firm=var(--vvd-color-cta-600)] */\n --_connotation-color-firm: var(--vvd-fab-cta-firm, var(--vvd-color-cta-600));\n}\n.control {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-primary);\n --_appearance-color-outline: transparent;\n}\n.control:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\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.control: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: transparent;\n}\n.control:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary-text);\n --_appearance-color-fill: var(--_connotation-color-fierce);\n --_appearance-color-outline: transparent;\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n@supports (user-select: none) {\n .control {\n user-select: none;\n }\n}\n.control.size-expanded {\n --_fab-border-radius: 30px;\n --_fab-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 16));\n}\n.control:not(.size-expanded) {\n --_fab-border-radius: 24px;\n --_fab-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.control.icon-only {\n border-radius: 50%;\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(--_fab-block-size);\n }\n}\n.control:not(.icon-only) {\n --fab-icon-gap: 10px;\n padding-inline: 20px;\n}\n.control:disabled {\n --_elevation-fill: var(--vvd-color-surface-0dp);\n --_elevation-shadow: var(--vvd-shadow-surface-0dp);\n cursor: not-allowed;\n}\n.control:not(:disabled) {\n --_elevation-fill: var(--vvd-color-surface-4dp);\n --_elevation-shadow: var(--vvd-shadow-surface-4dp);\n cursor: pointer;\n}\n.control:not(:disabled):hover {\n --_elevation-fill: var(--vvd-color-surface-12dp);\n --_elevation-shadow: var(--vvd-shadow-surface-12dp);\n}\n.control:not(:disabled):active {\n --_elevation-fill: var(--vvd-color-surface-24dp);\n --_elevation-shadow: var(--vvd-shadow-surface-24dp);\n}\n\n/* Icon */\n.icon {\n line-height: 1;\n}\n.icon-trailing .icon {\n order: 1;\n}\n.control.size-extended .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) + 16)) / 2.3333);\n}\n.control:not(.size-extended) .icon {\n font-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n}\n\n:not(:focus-visible) .focus-indicator {\n display: none;\n}";
6
12
 
7
- class Header extends FoundationElement {
8
- constructor() {
9
- super(...arguments);
10
- this.elevationShadow = false;
11
- this.alternate = false;
12
- }
13
- }
14
- __decorate([attr({
15
- attribute: 'elevation-shadow',
16
- mode: 'boolean'
17
- }), __metadata("design:type", Object)], Header.prototype, "elevationShadow", void 0);
18
- __decorate([attr({
19
- mode: 'boolean'
20
- }), __metadata("design:type", Object)], Header.prototype, "alternate", void 0);
13
+ class Fab extends Button {}
14
+ __decorate([attr, __metadata("design:type", String)], Fab.prototype, "connotation", void 0);
15
+ __decorate([attr, __metadata("design:type", String)], Fab.prototype, "size", void 0);
16
+ __decorate([attr, __metadata("design:type", String)], Fab.prototype, "label", void 0);
17
+ applyMixins(Fab, AffixIconWithTrailing);
21
18
 
22
19
  let _ = t => t,
23
20
  _t;
24
- const getPartAlternate = ({
25
- alternate
26
- }) => classNames(['vvd-theme-alternate', Boolean(alternate)]);
27
- const headerTemplate = context => {
28
- const elevationTag = context.tagFor(Elevation);
21
+ const getClasses = ({
22
+ connotation,
23
+ size,
24
+ icon,
25
+ label,
26
+ iconTrailing,
27
+ disabled
28
+ }) => classNames('control', [`connotation-${connotation}`, Boolean(connotation)], [`size-${size}`, Boolean(size)], ['icon-only', !label && !!icon], ['icon-trailing', iconTrailing], ['disabled', disabled]);
29
+ const FabTemplate = context => {
30
+ const affixIconTemplate = affixIconTemplateFactory(context);
31
+ const focusTemplate = focusTemplateFactory(context);
29
32
  return html(_t || (_t = _`
30
- <${0} dp="4" ?no-shadow=${0}>
31
- <header class="base" part="base">
32
- <!-- a container is needed to distinguish the surface background color of the
33
- element from its shadow when applying elevation with alternate -->
34
- <div class="container" part="${0}">
35
- <section class="header-content">
36
- <slot></slot>
37
- </section>
38
- <section class="header-content">
39
- <slot name="action-items"></slot>
40
- </section>
41
- </div>
42
- </header>
43
- </${0}>
44
- <div class="app-content">
45
- <slot name="app-content"></slot>
46
- </div>
47
- `), elevationTag, x => !x.elevationShadow, getPartAlternate, elevationTag);
33
+ <button
34
+ class="${0} "
35
+ ?autofocus="${0}"
36
+ ?disabled="${0}"
37
+ form="${0}"
38
+ formaction="${0}"
39
+ formenctype="${0}"
40
+ formmethod="${0}"
41
+ formnovalidate="${0}"
42
+ formtarget="${0}"
43
+ name="${0}"
44
+ type="${0}"
45
+ value="${0}"
46
+ aria-atomic="${0}"
47
+ aria-busy="${0}"
48
+ aria-controls="${0}"
49
+ aria-current="${0}"
50
+ aria-describedby="${0}"
51
+ aria-details="${0}"
52
+ aria-disabled="${0}"
53
+ aria-errormessage="${0}"
54
+ aria-expanded="${0}"
55
+ aria-flowto="${0}"
56
+ aria-haspopup="${0}"
57
+ aria-hidden="${0}"
58
+ aria-invalid="${0}"
59
+ aria-keyshortcuts="${0}"
60
+ aria-label="${0}"
61
+ aria-labelledby="${0}"
62
+ aria-live="${0}"
63
+ aria-owns="${0}"
64
+ aria-pressed="${0}"
65
+ aria-relevant="${0}"
66
+ aria-roledescription="${0}"
67
+ ${0}
68
+ >
69
+ ${0}
70
+ ${0}
71
+ ${0}
72
+ </button>
73
+ `), getClasses, x => x.autofocus, x => x.disabled, x => x.formId, x => x.formaction, x => x.formenctype, x => x.formmethod, x => x.formnovalidate, x => x.formtarget, x => x.name, x => x.type, x => x.value, x => x.ariaAtomic, x => x.ariaBusy, x => x.ariaControls, x => x.ariaCurrent, x => x.ariaDescribedby, x => x.ariaDetails, x => x.ariaDisabled, x => x.ariaErrormessage, x => x.ariaExpanded, x => x.ariaFlowto, x => x.ariaHaspopup, x => x.ariaHidden, x => x.ariaInvalid, x => x.ariaKeyshortcuts, x => x.ariaLabel, x => x.ariaLabelledby, x => x.ariaLive, x => x.ariaOwns, x => x.ariaPressed, x => x.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, x => affixIconTemplate(x.icon), x => x.label);
48
74
  };
49
75
 
50
- const headerDefinition = Header.compose({
51
- baseName: 'header',
52
- template: headerTemplate,
53
- styles: css_248z
76
+ const fabDefinition = Fab.compose({
77
+ baseName: 'fab',
78
+ template: FabTemplate,
79
+ styles: css_248z,
80
+ shadowOptions: {
81
+ delegatesFocus: true
82
+ }
54
83
  });
55
- const headerRegistries = [headerDefinition(), ...elevationRegistries];
56
- const registerHeader = registerFactory(headerRegistries);
84
+ const fabRegistries = [fabDefinition(), ...iconRegistries, ...focusRegistries];
85
+ const registerFab = registerFactory(fabRegistries);
57
86
 
58
- export { headerRegistries as a, headerDefinition as h, registerHeader as r };
87
+ export { fabRegistries as a, fabDefinition as f, registerFab as r };
@@ -1,48 +1,58 @@
1
1
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
+ import { E as Elevation, e as elevationRegistries } from './definition8.js';
2
3
  import { c as classNames } from './class-names.js';
3
4
 
4
- var AUTO_SIZING;
5
- (function (AUTO_SIZING) {
6
- AUTO_SIZING["Fit"] = "fit";
7
- AUTO_SIZING["Fill"] = "fill";
8
- })(AUTO_SIZING || (AUTO_SIZING = {}));
9
- class Layout extends FoundationElement {}
10
- __decorate([attr, __metadata("design:type", String)], Layout.prototype, "gutters", void 0);
11
- __decorate([attr({
12
- attribute: 'column-basis'
13
- }), __metadata("design:type", String)], Layout.prototype, "columnBasis", void 0);
14
- __decorate([attr({
15
- attribute: 'column-spacing'
16
- }), __metadata("design:type", String)], Layout.prototype, "columnSpacing", void 0);
5
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 06 Jun 2023 10:38:32 GMT\n */\n.base {\n z-index: 1;\n block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n font: var(--vvd-typography-heading-4);\n inline-size: 100%;\n}\n.base .header-content {\n display: inline-flex;\n align-items: center;\n column-gap: 4px;\n}\n\n.container {\n display: flex;\n box-sizing: border-box;\n justify-content: space-between;\n block-size: inherit;\n color: var(--vvd-color-canvas-text);\n column-gap: 12px;\n padding-block: 8px;\n padding-inline: 16px;\n}\n.container[part~=vvd-theme-alternate] {\n background-color: var(--vvd-color-canvas);\n color: var(--vvd-color-canvas-text);\n color-scheme: var(--vvd-color-scheme);\n}\n\n.app-content {\n --vvd-header-block-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) + calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}";
6
+
7
+ class Header extends FoundationElement {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.elevationShadow = false;
11
+ this.alternate = false;
12
+ }
13
+ }
17
14
  __decorate([attr({
18
- attribute: 'row-spacing'
19
- }), __metadata("design:type", String)], Layout.prototype, "rowSpacing", void 0);
15
+ attribute: 'elevation-shadow',
16
+ mode: 'boolean'
17
+ }), __metadata("design:type", Object)], Header.prototype, "elevationShadow", void 0);
20
18
  __decorate([attr({
21
- attribute: 'auto-sizing'
22
- }), __metadata("design:type", String)], Layout.prototype, "autoSizing", void 0);
23
-
24
- var css_248z = "/* #region SIZEs */\n/* #region BASES */\n/* #region SPACES */\n.control {\n display: grid;\n grid-auto-rows: var(--layout-grid-template-rows, min-content);\n}\n.control.column-basis-small {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(160px, 1fr)));\n}\n.control:not(.column-basis-small):not(.column-basis-medium):not(.column-basis-large):not(.column-basis-block), .control.column-basis-medium {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(320px, 1fr)));\n}\n.control.column-basis-large {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(380px, 1fr)));\n}\n.control.column-basis-block {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(1fr, 1fr)));\n}\n.control.column-spacing-small {\n column-gap: var(--layout-column-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.column-spacing-small-inline {\n column-gap: var(--layout-column-gap, 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.column-spacing-small-block {\n column-gap: var(--layout-column-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0);\n}\n.control:not(.column-spacing-small):not(.column-spacing-small-inline):not(.column-spacing-small-block):not(.column-spacing-medium):not(.column-spacing-medium-inline):not(.column-spacing-medium-block):not(.column-spacing-large):not(.column-spacing-large-inline):not(.column-spacing-large-block), .control.column-spacing-medium {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.column-spacing-medium-inline {\n column-gap: var(--layout-column-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.column-spacing-medium-block {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0);\n}\n.control.column-spacing-large {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.column-spacing-large-inline {\n column-gap: var(--layout-column-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.column-spacing-large-block {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0);\n}\n.control.row-spacing-small {\n row-gap: var(--layout-row-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.row-spacing-small-inline {\n row-gap: var(--layout-row-gap, 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.row-spacing-small-block {\n row-gap: var(--layout-row-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0);\n}\n.control:not(.row-spacing-small):not(.row-spacing-small-inline):not(.row-spacing-small-block):not(.row-spacing-medium):not(.row-spacing-medium-inline):not(.row-spacing-medium-block):not(.row-spacing-large):not(.row-spacing-large-inline):not(.row-spacing-large-block), .control.row-spacing-medium {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.row-spacing-medium-inline {\n row-gap: var(--layout-row-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.row-spacing-medium-block {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0);\n}\n.control.row-spacing-large {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.row-spacing-large-inline {\n row-gap: var(--layout-row-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.row-spacing-large-block {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0);\n}\n.control.gutters-small {\n margin: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.gutters-small-inline {\n margin: 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.gutters-small-block {\n margin: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0;\n}\n.control.gutters-medium {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16));\n}\n.control.gutters-medium-inline {\n margin: 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16));\n}\n.control.gutters-medium-block {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0;\n}\n.control.gutters-large {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8));\n}\n.control.gutters-large-inline {\n margin: 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8));\n}\n.control.gutters-large-block {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0;\n}\n.control.auto-sizing-fill {\n --_auto-sizing: auto-fill;\n}\n.control:not(.auto-sizing-fill):not(.auto-sizing-fit), .control.auto-sizing-fit {\n --_auto-sizing: auto-fit;\n}";
19
+ mode: 'boolean'
20
+ }), __metadata("design:type", Object)], Header.prototype, "alternate", void 0);
25
21
 
26
22
  let _ = t => t,
27
23
  _t;
28
- const getClasses = ({
29
- columnBasis,
30
- gutters,
31
- columnSpacing,
32
- autoSizing,
33
- rowSpacing
34
- }) => classNames('control', [`column-basis-${columnBasis}`, Boolean(columnBasis)], [`gutters-${gutters}`, Boolean(gutters)], [`column-spacing-${columnSpacing}`, Boolean(columnSpacing)], [`row-spacing-${rowSpacing ? rowSpacing : columnSpacing}`, Boolean(rowSpacing) || Boolean(columnSpacing)], [`auto-sizing-${autoSizing}`, Boolean(autoSizing)]);
35
- const layoutTemplate = () => html(_t || (_t = _`
36
- <div class="${0}">
37
- <slot></slot>
38
- </div>`), getClasses);
24
+ const getPartAlternate = ({
25
+ alternate
26
+ }) => classNames(['vvd-theme-alternate', Boolean(alternate)]);
27
+ const headerTemplate = context => {
28
+ const elevationTag = context.tagFor(Elevation);
29
+ return html(_t || (_t = _`
30
+ <${0} dp="4" ?no-shadow=${0}>
31
+ <header class="base" part="base">
32
+ <!-- a container is needed to distinguish the surface background color of the
33
+ element from its shadow when applying elevation with alternate -->
34
+ <div class="container" part="${0}">
35
+ <section class="header-content">
36
+ <slot></slot>
37
+ </section>
38
+ <section class="header-content">
39
+ <slot name="action-items"></slot>
40
+ </section>
41
+ </div>
42
+ </header>
43
+ </${0}>
44
+ <div class="app-content">
45
+ <slot name="app-content"></slot>
46
+ </div>
47
+ `), elevationTag, x => !x.elevationShadow, getPartAlternate, elevationTag);
48
+ };
39
49
 
40
- const layoutDefinition = Layout.compose({
41
- baseName: 'layout',
42
- template: layoutTemplate,
50
+ const headerDefinition = Header.compose({
51
+ baseName: 'header',
52
+ template: headerTemplate,
43
53
  styles: css_248z
44
54
  });
45
- const layoutRegistries = [layoutDefinition()];
46
- const registerLayout = registerFactory(layoutRegistries);
55
+ const headerRegistries = [headerDefinition(), ...elevationRegistries];
56
+ const registerHeader = registerFactory(headerRegistries);
47
57
 
48
- export { layoutRegistries as a, layoutDefinition as l, registerLayout as r };
58
+ export { headerRegistries as a, headerDefinition as h, registerHeader as r };
@@ -1,58 +1,48 @@
1
- import { h as html, r as registerFactory } from './index.js';
2
- import { f as focusRegistries } from './definition4.js';
3
- import { l as listboxOptionRegistries } from './definition21.js';
4
- import { b as ListboxElement, a as Listbox } from './listbox.js';
5
- import './affix.js';
6
- import { f as focusTemplateFactory } from './focus2.js';
7
- import './form-elements.js';
8
- import { s as slotted } from './slotted.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
 
4
+ var AUTO_SIZING;
5
+ (function (AUTO_SIZING) {
6
+ AUTO_SIZING["Fit"] = "fit";
7
+ AUTO_SIZING["Fill"] = "fill";
8
+ })(AUTO_SIZING || (AUTO_SIZING = {}));
9
+ class Layout extends FoundationElement {}
10
+ __decorate([attr, __metadata("design:type", String)], Layout.prototype, "gutters", void 0);
11
+ __decorate([attr({
12
+ attribute: 'column-basis'
13
+ }), __metadata("design:type", String)], Layout.prototype, "columnBasis", void 0);
14
+ __decorate([attr({
15
+ attribute: 'column-spacing'
16
+ }), __metadata("design:type", String)], Layout.prototype, "columnSpacing", void 0);
17
+ __decorate([attr({
18
+ attribute: 'row-spacing'
19
+ }), __metadata("design:type", String)], Layout.prototype, "rowSpacing", void 0);
20
+ __decorate([attr({
21
+ attribute: 'auto-sizing'
22
+ }), __metadata("design:type", String)], Layout.prototype, "autoSizing", void 0);
23
+
24
+ var css_248z = "/* #region SIZEs */\n/* #region BASES */\n/* #region SPACES */\n.control {\n display: grid;\n grid-auto-rows: var(--layout-grid-template-rows, min-content);\n}\n.control.column-basis-small {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(160px, 1fr)));\n}\n.control:not(.column-basis-small):not(.column-basis-medium):not(.column-basis-large):not(.column-basis-block), .control.column-basis-medium {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(320px, 1fr)));\n}\n.control.column-basis-large {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(380px, 1fr)));\n}\n.control.column-basis-block {\n grid-template-columns: var(--layout-grid-template-columns, repeat(var(--_auto-sizing), minmax(1fr, 1fr)));\n}\n.control.column-spacing-small {\n column-gap: var(--layout-column-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.column-spacing-small-inline {\n column-gap: var(--layout-column-gap, 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.column-spacing-small-block {\n column-gap: var(--layout-column-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0);\n}\n.control:not(.column-spacing-small):not(.column-spacing-small-inline):not(.column-spacing-small-block):not(.column-spacing-medium):not(.column-spacing-medium-inline):not(.column-spacing-medium-block):not(.column-spacing-large):not(.column-spacing-large-inline):not(.column-spacing-large-block), .control.column-spacing-medium {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.column-spacing-medium-inline {\n column-gap: var(--layout-column-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.column-spacing-medium-block {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0);\n}\n.control.column-spacing-large {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.column-spacing-large-inline {\n column-gap: var(--layout-column-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.column-spacing-large-block {\n column-gap: var(--layout-column-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0);\n}\n.control.row-spacing-small {\n row-gap: var(--layout-row-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.row-spacing-small-inline {\n row-gap: var(--layout-row-gap, 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))));\n}\n.control.row-spacing-small-block {\n row-gap: var(--layout-row-gap, calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0);\n}\n.control:not(.row-spacing-small):not(.row-spacing-small-inline):not(.row-spacing-small-block):not(.row-spacing-medium):not(.row-spacing-medium-inline):not(.row-spacing-medium-block):not(.row-spacing-large):not(.row-spacing-large-inline):not(.row-spacing-large-block), .control.row-spacing-medium {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.row-spacing-medium-inline {\n row-gap: var(--layout-row-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.row-spacing-medium-block {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0);\n}\n.control.row-spacing-large {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.row-spacing-large-inline {\n row-gap: var(--layout-row-gap, 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)));\n}\n.control.row-spacing-large-block {\n row-gap: var(--layout-row-gap, calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0);\n}\n.control.gutters-small {\n margin: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.gutters-small-inline {\n margin: 0 calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)));\n}\n.control.gutters-small-block {\n margin: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) - calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16))) 0;\n}\n.control.gutters-medium {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16));\n}\n.control.gutters-medium-inline {\n margin: 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16));\n}\n.control.gutters-medium-block {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16)) 0;\n}\n.control.gutters-large {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8));\n}\n.control.gutters-large-inline {\n margin: 0 calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8));\n}\n.control.gutters-large-block {\n margin: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 8)) 0;\n}\n.control.auto-sizing-fill {\n --_auto-sizing: auto-fill;\n}\n.control:not(.auto-sizing-fill):not(.auto-sizing-fit), .control.auto-sizing-fit {\n --_auto-sizing: auto-fit;\n}";
25
+
11
26
  let _ = t => t,
12
27
  _t;
13
28
  const getClasses = ({
14
- appearance,
15
- disabled
16
- }) => classNames('base', ['disabled', disabled], [`appearance-${appearance}`, Boolean(appearance)]);
17
- const ListboxTemplate = context => {
18
- const focusTemplate = focusTemplateFactory(context);
19
- return html(_t || (_t = _`
20
- <template
21
- aria-activedescendant="${0}"
22
- aria-multiselectable="${0}"
23
- aria-label="listbox"
24
- role="listbox"
25
- @click="${0}"
26
- @focusin="${0}"
27
- @keydown="${0}"
28
- @mousedown="${0}"
29
- tabindex="${0}"
30
- >
31
- <div
32
- class="${0}"
33
- >
34
- ${0}
35
-
36
- <slot
37
- ${0}
38
- ></slot>
39
- </div>
40
- </template>
41
- `), x => x.ariaActiveDescendant, x => x.ariaMultiSelectable, (x, c) => x.clickHandler(c.event), (x, c) => x.focusinHandler(c.event), (x, c) => x.keydownHandler(c.event), (x, c) => x.mousedownHandler(c.event), x => !x.disabled ? '0' : null, getClasses, () => focusTemplate, slotted({
42
- filter: ListboxElement.slottedOptionFilter,
43
- flatten: true,
44
- property: 'slottedOptions'
45
- }));
46
- };
47
-
48
- var css_248z = "/**\n * Do not edit directly\n * Generated on Wed, 17 May 2023 03:28:45 GMT\n */\n:host {\n display: block;\n inline-size: fit-content;\n}\n\n:host(:focus-within) {\n outline: none;\n}\n\n.base {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 4px;\n background-color: var(--_appearance-color-fill);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n contain: paint;\n gap: 4px;\n}\n.base {\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-soft: var(--vvd-color-neutral-100);\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.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\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(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n\n.focus-indicator {\n pointer-events: none;\n}\n:host(:not(:focus-within)) .focus-indicator {\n display: none;\n}\n\n.base.disabled ::slotted([role=option]) {\n --_option-appearance-color-text: var(--_appearance-color-outline);\n cursor: not-allowed;\n pointer-events: none;\n}";
29
+ columnBasis,
30
+ gutters,
31
+ columnSpacing,
32
+ autoSizing,
33
+ rowSpacing
34
+ }) => classNames('control', [`column-basis-${columnBasis}`, Boolean(columnBasis)], [`gutters-${gutters}`, Boolean(gutters)], [`column-spacing-${columnSpacing}`, Boolean(columnSpacing)], [`row-spacing-${rowSpacing ? rowSpacing : columnSpacing}`, Boolean(rowSpacing) || Boolean(columnSpacing)], [`auto-sizing-${autoSizing}`, Boolean(autoSizing)]);
35
+ const layoutTemplate = () => html(_t || (_t = _`
36
+ <div class="${0}">
37
+ <slot></slot>
38
+ </div>`), getClasses);
49
39
 
50
- const listboxDefinition = Listbox.compose({
51
- baseName: 'listbox',
52
- template: ListboxTemplate,
40
+ const layoutDefinition = Layout.compose({
41
+ baseName: 'layout',
42
+ template: layoutTemplate,
53
43
  styles: css_248z
54
44
  });
55
- const listboxRegistries = [listboxDefinition(), ...listboxOptionRegistries, ...focusRegistries];
56
- const registerListbox = registerFactory(listboxRegistries);
45
+ const layoutRegistries = [layoutDefinition()];
46
+ const registerLayout = registerFactory(layoutRegistries);
57
47
 
58
- export { listboxRegistries as a, listboxDefinition as l, registerListbox as r };
48
+ export { layoutRegistries as a, layoutDefinition as l, registerLayout as r };