@vonage/vivid 3.14.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 (103) hide show
  1. package/checkbox/index.js +3 -0
  2. package/custom-elements.json +203 -24
  3. package/empty-state/index.js +14 -0
  4. package/fab/index.js +1 -1
  5. package/header/index.js +1 -1
  6. package/index.js +31 -29
  7. package/layout/index.js +1 -1
  8. package/lib/checkbox/checkbox.d.ts +6 -3
  9. package/lib/components.d.ts +2 -0
  10. package/lib/data-grid/data-grid-row.d.ts +1 -0
  11. package/lib/empty-state/definition.d.ts +3 -0
  12. package/lib/empty-state/empty-state.d.ts +5 -0
  13. package/lib/empty-state/empty-state.template.d.ts +4 -0
  14. package/lib/empty-state/index.d.ts +1 -0
  15. package/listbox/index.js +1 -1
  16. package/menu/index.js +2 -2
  17. package/menu-item/index.js +1 -1
  18. package/nav/index.js +1 -1
  19. package/nav-disclosure/index.js +1 -1
  20. package/nav-item/index.js +1 -1
  21. package/note/index.js +1 -1
  22. package/number-field/index.js +1 -1
  23. package/package.json +1 -1
  24. package/pagination/index.js +14 -232
  25. package/progress/index.js +1 -1
  26. package/radio/index.js +1 -1
  27. package/radio-group/index.js +1 -1
  28. package/select/index.js +1 -1
  29. package/shared/definition.js +1 -1
  30. package/shared/definition10.js +1 -1
  31. package/shared/definition11.js +1 -1
  32. package/shared/definition12.js +1 -1
  33. package/shared/definition14.js +1 -1
  34. package/shared/definition15.js +1 -1
  35. package/shared/definition16.js +1 -1
  36. package/shared/definition17.js +1 -1
  37. package/shared/definition18.js +23 -8
  38. package/shared/definition19.js +1 -1
  39. package/shared/definition2.js +1 -1
  40. package/shared/definition21.js +1 -1
  41. package/shared/definition22.js +73 -31
  42. package/shared/definition23.js +1 -1
  43. package/shared/definition24.js +1 -1
  44. package/shared/definition25.js +39 -76
  45. package/shared/definition26.js +76 -47
  46. package/shared/definition27.js +46 -36
  47. package/shared/definition28.js +39 -49
  48. package/shared/definition29.js +48 -344
  49. package/shared/definition30.js +272 -291
  50. package/shared/definition31.js +366 -14
  51. package/shared/definition32.js +13 -67
  52. package/shared/definition33.js +66 -21
  53. package/shared/definition34.js +21 -39
  54. package/shared/definition35.js +31 -432
  55. package/shared/definition36.js +432 -76
  56. package/shared/definition37.js +223 -34
  57. package/shared/definition38.js +82 -425
  58. package/shared/definition39.js +30 -635
  59. package/shared/definition4.js +1 -1
  60. package/shared/definition40.js +420 -73
  61. package/shared/definition41.js +530 -484
  62. package/shared/definition42.js +76 -133
  63. package/shared/definition43.js +577 -40
  64. package/shared/definition44.js +135 -20
  65. package/shared/definition45.js +42 -423
  66. package/shared/definition46.js +22 -112
  67. package/shared/definition47.js +440 -18
  68. package/shared/definition48.js +92 -247
  69. package/shared/definition49.js +20 -112
  70. package/shared/definition5.js +1 -1
  71. package/shared/definition50.js +259 -590
  72. package/shared/definition51.js +110 -91
  73. package/shared/definition52.js +602 -67
  74. package/shared/definition53.js +89 -294
  75. package/shared/definition54.js +80 -0
  76. package/shared/definition55.js +305 -0
  77. package/shared/definition6.js +1 -1
  78. package/shared/definition7.js +1 -1
  79. package/shared/definition9.js +1 -1
  80. package/shared/form-elements.js +1 -1
  81. package/shared/icon.js +1 -1
  82. package/shared/patterns/form-elements/form-elements.d.ts +4 -4
  83. package/shared/text-field.js +1 -1
  84. package/side-drawer/index.js +1 -1
  85. package/slider/index.js +1 -1
  86. package/styles/core/all.css +1 -1
  87. package/styles/core/theme.css +1 -1
  88. package/styles/core/typography.css +1 -1
  89. package/styles/tokens/theme-dark.css +4 -4
  90. package/styles/tokens/theme-light.css +4 -4
  91. package/switch/index.js +1 -1
  92. package/tab/index.js +1 -1
  93. package/tab-panel/index.js +1 -1
  94. package/tabs/index.js +3 -3
  95. package/tag/index.js +1 -1
  96. package/tag-group/index.js +1 -1
  97. package/text-area/index.js +1 -1
  98. package/text-field/index.js +1 -1
  99. package/toggletip/index.js +1 -1
  100. package/tooltip/index.js +1 -1
  101. package/tree-item/index.js +1 -1
  102. package/tree-view/index.js +1 -1
  103. package/vivid.api.json +210 -0
@@ -1,277 +1,122 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, n as nullableNumberConverter, o as observable, b as __metadata, h as html, r as registerFactory } from './index.js';
1
+ import { F as FoundationElement, U as __classPrivateFieldGet, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
2
  import { i as iconRegistries } from './definition3.js';
3
3
  import { f as focusRegistries } from './definition4.js';
4
- import './affix.js';
5
- import './focus.js';
6
- import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
7
- import { D as DelegatesARIATextbox } from './text-field2.js';
4
+ import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
8
5
  import { a as applyMixins } from './apply-mixins.js';
9
- import { F as FormAssociated } from './form-associated.js';
6
+ import { f as focusTemplateFactory } from './focus2.js';
7
+ import { I as Icon } from './icon.js';
10
8
  import { w as when } from './when.js';
11
- import { r as ref } from './ref.js';
12
9
  import { c as classNames } from './class-names.js';
13
10
 
14
- class _TextArea extends FoundationElement {
15
- }
16
- /**
17
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
18
- *
19
- * @internal
20
- */
21
- class FormAssociatedTextArea extends FormAssociated(_TextArea) {
22
- constructor() {
23
- super(...arguments);
24
- this.proxy = document.createElement("textarea");
25
- }
26
- }
27
-
28
- /**
29
- * Resize mode for a TextArea
30
- * @public
31
- */
32
- const TextAreaResize = {
33
- /**
34
- * No resize.
35
- */
36
- none: "none",
37
- /**
38
- * Resize vertically and horizontally.
39
- */
40
- both: "both",
41
- /**
42
- * Resize horizontally.
43
- */
44
- horizontal: "horizontal",
45
- /**
46
- * Resize vertically.
47
- */
48
- vertical: "vertical",
49
- };
50
-
51
- /**
52
- * A Text Area Custom HTML Element.
53
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
54
- *
55
- * @slot - The default slot for the label
56
- * @csspart label - The label
57
- * @csspart root - The element wrapping the control
58
- * @csspart control - The textarea element
59
- * @fires change - Emits a custom 'change' event when the textarea emits a change event
60
- *
61
- * @public
62
- */
63
- class TextArea$1 extends FormAssociatedTextArea {
64
- constructor() {
65
- super(...arguments);
66
- /**
67
- * The resize mode of the element.
68
- * @public
69
- * @remarks
70
- * HTML Attribute: resize
71
- */
72
- this.resize = TextAreaResize.none;
73
- /**
74
- * Sizes the element horizontally by a number of character columns.
75
- *
76
- * @public
77
- * @remarks
78
- * HTML Attribute: cols
79
- */
80
- this.cols = 20;
81
- /**
82
- * @internal
83
- */
84
- this.handleTextInput = () => {
85
- this.value = this.control.value;
86
- };
87
- }
88
- readOnlyChanged() {
89
- if (this.proxy instanceof HTMLTextAreaElement) {
90
- this.proxy.readOnly = this.readOnly;
91
- }
92
- }
93
- autofocusChanged() {
94
- if (this.proxy instanceof HTMLTextAreaElement) {
95
- this.proxy.autofocus = this.autofocus;
96
- }
97
- }
98
- listChanged() {
99
- if (this.proxy instanceof HTMLTextAreaElement) {
100
- this.proxy.setAttribute("list", this.list);
101
- }
102
- }
103
- maxlengthChanged() {
104
- if (this.proxy instanceof HTMLTextAreaElement) {
105
- this.proxy.maxLength = this.maxlength;
106
- }
107
- }
108
- minlengthChanged() {
109
- if (this.proxy instanceof HTMLTextAreaElement) {
110
- this.proxy.minLength = this.minlength;
111
- }
112
- }
113
- spellcheckChanged() {
114
- if (this.proxy instanceof HTMLTextAreaElement) {
115
- this.proxy.spellcheck = this.spellcheck;
116
- }
117
- }
118
- /**
119
- * Selects all the text in the text area
120
- *
121
- * @public
122
- */
123
- select() {
124
- this.control.select();
125
- /**
126
- * The select event does not permeate the shadow DOM boundary.
127
- * This fn effectively proxies the select event,
128
- * emitting a `select` event whenever the internal
129
- * control emits a `select` event
130
- */
131
- this.$emit("select");
11
+ var _Tag_select;
12
+ class Tag extends FoundationElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.removable = false;
16
+ this.disabled = false;
17
+ this.selectable = false;
18
+ this.selected = false;
19
+ _Tag_select.set(this, () => {
20
+ if (!this.selectable || this.disabled) {
21
+ return;
22
+ }
23
+ this.selected = !this.selected;
24
+ this.$emit('selected-change');
25
+ });
26
+ }
27
+ remove() {
28
+ if (!this.removable || this.selectable) {
29
+ return;
132
30
  }
133
- /**
134
- * Change event handler for inner control.
135
- * @remarks
136
- * "Change" events are not `composable` so they will not
137
- * permeate the shadow DOM boundary. This fn effectively proxies
138
- * the change event, emitting a `change` event whenever the internal
139
- * control emits a `change` event
140
- * @internal
141
- */
142
- handleChange() {
143
- this.$emit("change");
31
+ this.$emit('removed');
32
+ this.parentElement && this.parentElement.removeChild(this);
33
+ }
34
+ handleKeydown(e) {
35
+ if (e.key === 'Enter') {
36
+ __classPrivateFieldGet(this, _Tag_select, "f").call(this);
144
37
  }
145
- /** {@inheritDoc (FormAssociated:interface).validate} */
146
- validate() {
147
- super.validate(this.control);
38
+ if (e.key === 'Delete' || e.key === 'Backspace') {
39
+ this.remove();
148
40
  }
41
+ return true;
42
+ }
43
+ handleClick() {
44
+ __classPrivateFieldGet(this, _Tag_select, "f").call(this);
45
+ }
149
46
  }
150
- __decorate([
151
- attr({ mode: "boolean" })
152
- ], TextArea$1.prototype, "readOnly", void 0);
153
- __decorate([
154
- attr
155
- ], TextArea$1.prototype, "resize", void 0);
156
- __decorate([
157
- attr({ mode: "boolean" })
158
- ], TextArea$1.prototype, "autofocus", void 0);
159
- __decorate([
160
- attr({ attribute: "form" })
161
- ], TextArea$1.prototype, "formId", void 0);
162
- __decorate([
163
- attr
164
- ], TextArea$1.prototype, "list", void 0);
165
- __decorate([
166
- attr({ converter: nullableNumberConverter })
167
- ], TextArea$1.prototype, "maxlength", void 0);
168
- __decorate([
169
- attr({ converter: nullableNumberConverter })
170
- ], TextArea$1.prototype, "minlength", void 0);
171
- __decorate([
172
- attr
173
- ], TextArea$1.prototype, "name", void 0);
174
- __decorate([
175
- attr
176
- ], TextArea$1.prototype, "placeholder", void 0);
177
- __decorate([
178
- attr({ converter: nullableNumberConverter, mode: "fromView" })
179
- ], TextArea$1.prototype, "cols", void 0);
180
- __decorate([
181
- attr({ converter: nullableNumberConverter, mode: "fromView" })
182
- ], TextArea$1.prototype, "rows", void 0);
183
- __decorate([
184
- attr({ mode: "boolean" })
185
- ], TextArea$1.prototype, "spellcheck", void 0);
186
- __decorate([
187
- observable
188
- ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
189
- applyMixins(TextArea$1, DelegatesARIATextbox);
190
-
191
- var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 30 May 2023 12:49:14 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n width: inherit;\n grid-template-columns: 1fr;\n row-gap: 4px;\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(: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(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\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.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.base:where(.readonly):where(:not(:disabled, .disabled)).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-600);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n /* @cssprop [--vvd-text-area-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-text-area-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-backdrop=var(--vvd-color-success-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-success-backdrop, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-intermediate=var(--vvd-color-success-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-success-intermediate, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-area-success-firm=var(--vvd-color-success-600)] */\n --_connotation-color-firm: var(--vvd-text-area-success-firm, var(--vvd-color-success-600));\n /* @cssprop [--vvd-text-area-success-faint=var(--vvd-color-success-50)] */\n --_connotation-color-faint: var(--vvd-text-area-success-faint, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-area-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-text-area-success-soft, var(--vvd-color-success-100));\n}\n.base.connotation-alert {\n /* @cssprop [--vvd-text-area-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-text-area-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-backdrop=var(--vvd-color-alert-50)] */\n --_connotation-color-backdrop: var(--vvd-text-area-alert-backdrop, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-intermediate=var(--vvd-color-alert-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-alert-intermediate, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-area-alert-firm=var(--vvd-color-alert-600)] */\n --_connotation-color-firm: var(--vvd-text-area-alert-firm, var(--vvd-color-alert-600));\n /* @cssprop [--vvd-text-area-alert-faint=var(--vvd-color-alert-50)] */\n --_connotation-color-faint: var(--vvd-text-area-alert-faint, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-area-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-text-area-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-success, .connotation-alert) {\n /* @cssprop [--vvd-text-area-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-text-area-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-text-area-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-text-area-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-text-area-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-text-area-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-text-area-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-area-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-text-area-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-text-area-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-text-area-accent-soft, var(--vvd-color-neutral-100));\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n --_low-ink-color: var(--vvd-color-neutral-600);\n}\n.base.disabled {\n --_low-ink-color: var(--_appearance-color-text);\n pointer-events: none;\n}\n\n.label {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/3;\n grid-row: 1;\n line-height: 20px;\n}\n\n.control {\n padding: 8px 16px;\n border: 0 none;\n appearance: none; /* for box-shadow visibility on IOS */\n background-color: var(--_appearance-color-fill);\n border-radius: 6px;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n font: var(--vvd-typography-base);\n min-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n resize: none;\n transition: box-shadow 0.2s, background-color 0.2s, color 0.2s;\n}\n.control:disabled {\n cursor: not-allowed;\n opacity: 1; /* 2. correct opacity on iOS */\n pointer-events: none;\n -webkit-text-fill-color: var(--_appearance-color-text); /* 1. sets text fill to current `color` for safari */\n}\n.control::placeholder, .control:disabled::placeholder {\n opacity: 1; /* 2. correct opacity on iOS */\n pointer-events: none;\n -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n.control:focus {\n outline: 2px solid var(--focus-stroke-color, currentColor);\n outline-offset: -2px;\n}\n:host([resize=both]) .control {\n resize: both;\n}\n:host([resize=horizontal]) .control {\n resize: horizontal;\n}\n:host([resize=vertical]) .control {\n resize: vertical;\n}";
47
+ _Tag_select = new WeakMap();
48
+ __decorate([attr, __metadata("design:type", String)], Tag.prototype, "connotation", void 0);
49
+ __decorate([attr, __metadata("design:type", String)], Tag.prototype, "shape", void 0);
50
+ __decorate([attr, __metadata("design:type", String)], Tag.prototype, "appearance", void 0);
51
+ __decorate([attr, __metadata("design:type", String)], Tag.prototype, "label", void 0);
52
+ __decorate([attr({
53
+ mode: 'boolean'
54
+ }), __metadata("design:type", Object)], Tag.prototype, "removable", void 0);
55
+ __decorate([attr({
56
+ mode: 'boolean'
57
+ }), __metadata("design:type", Object)], Tag.prototype, "disabled", void 0);
58
+ __decorate([attr({
59
+ mode: 'boolean'
60
+ }), __metadata("design:type", Object)], Tag.prototype, "selectable", void 0);
61
+ __decorate([attr({
62
+ mode: 'boolean'
63
+ }), __metadata("design:type", Object)], Tag.prototype, "selected", void 0);
64
+ applyMixins(Tag, AffixIcon);
192
65
 
193
- let TextArea = class TextArea extends TextArea$1 {};
194
- __decorate([attr, __metadata("design:type", String)], TextArea.prototype, "wrap", void 0);
195
- TextArea = __decorate([errorText, formElements], TextArea);
196
- applyMixins(TextArea, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
66
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 06 Jun 2023 10:38:32 GMT\n */\n.base {\n --tag-block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2) - 16));\n position: relative;\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n block-size: var(--tag-block-size);\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n color: var(--_appearance-color-text);\n column-gap: 8px;\n font: var(--vvd-typography-base-bold);\n max-inline-size: 100%;\n padding-inline: 8px;\n vertical-align: middle;\n /* Shape */\n}\n.base.connotation-cta {\n /* @cssprop [--vvd-tag-cta-contrast=var(--vvd-color-cta-800)] */\n --_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));\n /* @cssprop [--vvd-tag-cta-soft=var(--vvd-color-cta-100)] */\n --_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));\n /* @cssprop [--vvd-tag-cta-pale=var(--vvd-color-cta-300)] */\n --_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));\n /* @cssprop [--vvd-tag-cta-fierce=var(--vvd-color-cta-700)] */\n --_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));\n /* @cssprop [--vvd-tag-cta-firm=var(--vvd-color-cta-600)] */\n --_connotation-color-firm: var(--vvd-tag-cta-firm, var(--vvd-color-cta-600));\n /* @cssprop [--vvd-tag-cta-faint=var(--vvd-color-cta-50)] */\n --_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));\n /* @cssprop [--vvd-tag-cta-dim=var(--vvd-color-cta-200)] */\n --_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200));\n}\n.base:not(.connotation-cta) {\n /* @cssprop [--vvd-tag-accent-contrast=var(--vvd-color-neutral-800)] */\n --_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));\n /* @cssprop [--vvd-tag-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));\n /* @cssprop [--vvd-tag-accent-pale=var(--vvd-color-neutral-300)] */\n --_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));\n /* @cssprop [--vvd-tag-accent-fierce=var(--vvd-color-neutral-700)] */\n --_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));\n /* @cssprop [--vvd-tag-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-tag-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-tag-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-tag-accent-dim=var(--vvd-color-neutral-200)] */\n --_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200));\n}\n.base {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\n}\n.base.appearance-duotone {\n --_appearance-color-text: var(--_connotation-color-fierce);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-pale);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-duotone {\n --_appearance-color-text: var(--_connotation-color-fierce);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-dim);\n --_appearance-color-outline: transparent;\n}\n.base:where(:active, .active):where(:not(:disabled, .disabled)).appearance-duotone {\n --_appearance-color-text: var(--_connotation-color-fierce);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-pale);\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: transparent;\n}\n.base:where(:disabled, .disabled).appearance-duotone {\n --_appearance-color-text: var(--vvd-color-neutral-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: var(--vvd-color-neutral-200);\n}\n.base:where(.selected, [aria-current]):where(:not(:disabled, .disabled, :hover, .hover)) {\n --_appearance-color-text: var(--_connotation-color-contrast);\n --_appearance-color-fill: var(--_connotation-color-pale);\n --_appearance-color-outline: transparent;\n}\n.base:where(.selected, [aria-current]):where(:not(:disabled, .disabled, :hover, .hover)).appearance-duotone {\n --_appearance-color-text: var(--_connotation-color-fierce);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: var(--_connotation-color-pale);\n}\n.base:not(.shape-pill) {\n border-radius: 4px;\n}\n.base.shape-pill {\n border-radius: 14px;\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.base.removable {\n cursor: auto;\n}\n\n.label {\n overflow: hidden;\n max-inline-size: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.icon {\n font-size: calc(var(--tag-block-size) / 1.5);\n line-height: 1;\n}\n.icon > * {\n vertical-align: middle;\n}\n\n.dismiss-button {\n display: flex;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n border-radius: inherit;\n cursor: pointer;\n}\n\n.base:not(:focus-visible) .focus-indicator {\n display: none;\n}";
197
67
 
198
68
  let _ = t => t,
199
69
  _t,
200
- _t2;
70
+ _t2,
71
+ _t3,
72
+ _t4;
201
73
  const getClasses = ({
202
- value,
203
- errorValidationMessage,
74
+ connotation,
75
+ appearance,
76
+ shape,
204
77
  disabled,
205
- placeholder,
206
- readOnly,
207
- successText
208
- }) => classNames('base', ['readonly', readOnly], ['placeholder', Boolean(placeholder)], ['disabled', disabled], ['error connotation-alert', Boolean(errorValidationMessage)], ['has-value', Boolean(value)], ['success connotation-success', !!successText]);
209
- function renderLabel() {
78
+ selectable,
79
+ removable,
80
+ selected
81
+ }) => classNames('base', ['disabled', disabled], ['selectable', selectable], ['active', selectable && selected], ['removable', removable && !selectable], [`connotation-${connotation}`, Boolean(connotation)], [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)]);
82
+ function renderDismissButton(iconTag) {
210
83
  return html(_t || (_t = _`
211
- <label for="control" class="label">
212
- ${0}
213
- </label>`), x => x.label);
84
+ <span
85
+ aria-hidden="true"
86
+ class="dismiss-button"
87
+ @click="${0}">
88
+ <${0} name="close-line"></${0}>
89
+ </span>`), x => x.remove(), iconTag, iconTag);
214
90
  }
215
- const TextAreaTemplate = context => {
91
+ const tagTemplate = context => {
92
+ const affixIconTemplate = affixIconTemplateFactory(context);
93
+ const iconTag = context.tagFor(Icon);
94
+ const focusTemplate = focusTemplateFactory(context);
216
95
  return html(_t2 || (_t2 = _`
217
- <div class="${0}">
218
- ${0}
219
- <textarea class="control"
220
- ?autofocus="${0}"
221
- placeholder="${0}"
222
- name="${0}"
223
- maxlength="${0}"
224
- rows="${0}"
225
- cols="${0}"
226
- wrap="${0}"
227
- ?readonly="${0}"
228
- ?disabled="${0}"
229
- ?required="${0}"
230
- ?spellcheck="${0}"
231
- :value="${0}"
232
- aria-atomic="${0}"
233
- aria-busy="${0}"
234
- aria-controls="${0}"
235
- aria-current="${0}"
236
- aria-describedby="${0}"
237
- aria-details="${0}"
238
- aria-disabled="${0}"
239
- aria-errormessage="${0}"
240
- aria-flowto="${0}"
241
- aria-haspopup="${0}"
242
- aria-hidden="${0}"
243
- aria-invalid="${0}"
244
- aria-keyshortcuts="${0}"
245
- aria-label="${0}"
246
- aria-labelledby="${0}"
247
- aria-live="${0}"
248
- aria-owns="${0}"
249
- aria-relevant="${0}"
250
- aria-roledescription="${0}"
251
- @input="${0}"
252
- @change="${0}"
253
- ${0}
254
- >
255
- </textarea>
96
+ <span class="${0}"
97
+ role="option"
98
+ aria-disabled="${0}"
99
+ aria-selected="${0}"
100
+ tabindex="${0}"
101
+ @keydown="${0}"
102
+ @click="${0}">
103
+ ${0}
104
+ ${0}
256
105
  ${0}
257
106
  ${0}
258
107
  ${0}
259
- </div>
260
- `), getClasses, when(x => x.label, renderLabel()), x => x.autofocus, x => x.placeholder ? x.placeholder : null, x => x.name ? x.name : null, x => x.maxlength ? x.maxlength : null, x => x.rows ? x.rows : null, x => x.cols ? x.cols : null, x => x.wrap ? x.wrap : null, x => x.readOnly, x => x.disabled, x => x.required, x => x.spellcheck, 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.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.ariaRelevant, x => x.ariaRoledescription, x => x.handleTextInput(), x => x.handleChange(), ref('control'), when(x => {
261
- var _a;
262
- return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
263
- }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
108
+ </span>`), getClasses, x => x.disabled, x => x.selectable, x => x.disabled ? null : 0, (x, c) => x.handleKeydown(c.event), x => x.handleClick(), x => affixIconTemplate(x.icon), when(x => x.label, x => html(_t3 || (_t3 = _`<span class="label">${0}</span>`), x.label)), when(x => x.removable && !x.selectable, renderDismissButton(iconTag)), when(x => x.selectable && x.selected, html(_t4 || (_t4 = _`<${0} class="selectable-icon" name="check-circle-solid"></${0}>`), iconTag, iconTag)), () => focusTemplate);
264
109
  };
265
110
 
266
- const textAreaDefinition = TextArea.compose({
267
- baseName: 'text-area',
268
- template: TextAreaTemplate,
111
+ const tagDefinition = Tag.compose({
112
+ baseName: 'tag',
113
+ template: tagTemplate,
269
114
  styles: css_248z,
270
115
  shadowOptions: {
271
116
  delegatesFocus: true
272
117
  }
273
118
  });
274
- const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
275
- const registerTextArea = registerFactory(textAreaRegistries);
119
+ const tagRegistries = [tagDefinition(), ...iconRegistries, ...focusRegistries];
120
+ const registerTag = registerFactory(tagRegistries);
276
121
 
277
- export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
122
+ export { registerTag as r, tagDefinition as t };
@@ -1,119 +1,27 @@
1
- import { _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
- import { f as focusRegistries } from './definition4.js';
3
- import { i as iconRegistries } from './definition3.js';
4
- import { b as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
5
- import './focus.js';
6
- import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
7
- import { T as TextField$1 } from './text-field2.js';
8
- import { a as applyMixins } from './apply-mixins.js';
9
- import { c as css_248z } from './text-field.js';
10
- import { f as focusTemplateFactory } from './focus2.js';
11
- import { w as when } from './when.js';
12
- import { r as ref } from './ref.js';
1
+ import { F as FoundationElement, h as html, r as registerFactory } from './index.js';
13
2
  import { c as classNames } from './class-names.js';
14
3
 
15
- let TextField = class TextField extends TextField$1 {};
16
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "appearance", void 0);
17
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "shape", void 0);
18
- __decorate([attr, __metadata("design:type", String)], TextField.prototype, "autoComplete", void 0);
19
- TextField = __decorate([errorText, formElements], TextField);
20
- applyMixins(TextField, AffixIcon, FormElementCharCount, FormElementHelperText, FormElementSuccessText);
4
+ var css_248z = ".base {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}";
21
5
 
22
- let _ = t => t,
23
- _t,
24
- _t2,
25
- _t3;
26
- const getStateClasses = ({
27
- errorValidationMessage,
28
- disabled,
29
- value,
30
- readOnly,
31
- placeholder,
32
- appearance,
33
- shape,
34
- label,
35
- successText
36
- }) => classNames(['error connotation-alert', Boolean(errorValidationMessage)], ['disabled', disabled], ['has-value', Boolean(value)], ['readonly', readOnly], ['placeholder', Boolean(placeholder)], [`appearance-${appearance}`, Boolean(appearance)], [`shape-${shape}`, Boolean(shape)], ['no-label', !label], ['success connotation-success', Boolean(successText)]);
37
- function renderLabel() {
38
- return html(_t || (_t = _`
39
- <label for="control" class="label">
40
- ${0}
41
- </label>`), x => x.label);
42
- }
43
- function renderCharCount() {
44
- return html(_t2 || (_t2 = _`
45
- <span class="char-count">${0} / ${0}</span>
46
- `), x => x.value ? x.value.length : 0, x => x.maxlength);
47
- }
48
- const TextfieldTemplate = context => {
49
- const affixIconTemplate = affixIconTemplateFactory(context);
50
- const focusTemplate = focusTemplateFactory(context);
51
- return html(_t3 || (_t3 = _`
52
- <div class="base ${0}">
53
- ${0}
54
- ${0}
55
- <div class="fieldset">
56
- ${0}
57
- <input class="control"
58
- id="control"
59
- @input="${0}"
60
- @change="${0}"
61
- ?autofocus="${0}"
62
- ?disabled="${0}"
63
- list="${0}"
64
- maxlength="${0}"
65
- minlength="${0}"
66
- pattern="${0}"
67
- placeholder="${0}"
68
- ?readonly="${0}"
69
- ?required="${0}"
70
- size="${0}"
71
- autocomplete="${0}"
72
- name="${0}"
73
- ?spellcheck="${0}"
74
- :value="${0}"
75
- type="${0}"
76
- aria-atomic="${0}"
77
- aria-busy="${0}"
78
- aria-controls="${0}"
79
- aria-current="${0}"
80
- aria-describedby="${0}"
81
- aria-details="${0}"
82
- aria-disabled="${0}"
83
- aria-errormessage="${0}"
84
- aria-flowto="${0}"
85
- aria-haspopup="${0}"
86
- aria-hidden="${0}"
87
- aria-invalid="${0}"
88
- aria-keyshortcuts="${0}"
89
- aria-label="${0}"
90
- aria-labelledby="${0}"
91
- aria-live="${0}"
92
- aria-owns="${0}"
93
- aria-relevant="${0}"
94
- aria-roledescription="${0}"
95
- ${0}
96
- />
97
- ${0}
98
- </div>
99
- ${0}
100
- ${0}
101
- ${0}
102
- </div>`), getStateClasses, when(x => x.charCount && x.maxlength, renderCharCount()), when(x => x.label, renderLabel()), x => affixIconTemplate(x.icon), x => x.handleTextInput(), x => x.handleChange(), x => x.autofocus, x => x.disabled, x => x.list, x => x.maxlength, x => x.minlength, x => x.pattern, x => x.placeholder, x => x.readOnly, x => x.required, x => x.size, x => x.autoComplete, x => x.name, x => x.spellcheck, x => x.value, x => x.type, 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.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.ariaRelevant, x => x.ariaRoledescription, ref('control'), () => focusTemplate, when(x => {
103
- var _a;
104
- return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
105
- }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
6
+ class TagGroup extends FoundationElement {}
7
+
8
+ let _2 = t => t,
9
+ _t;
10
+ const getClasses = _ => classNames('base');
11
+ const TagGroupTemplate = () => {
12
+ return html(_t || (_t = _2`
13
+ <div class="${0}" role="listbox" aria-orientation="horizontal">
14
+ <slot></slot>
15
+ </div>
16
+ `), getClasses);
106
17
  };
107
18
 
108
- const textFieldDefinition = TextField.compose({
109
- baseName: 'text-field',
110
- template: TextfieldTemplate,
111
- styles: css_248z,
112
- shadowOptions: {
113
- delegatesFocus: true
114
- }
19
+ const tagGroupDefinition = TagGroup.compose({
20
+ baseName: 'tag-group',
21
+ template: TagGroupTemplate,
22
+ styles: css_248z
115
23
  });
116
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
- const registerTextField = registerFactory(textFieldRegistries);
24
+ const tagGroupRegistries = [tagGroupDefinition()];
25
+ const registerTagGroup = registerFactory(tagGroupRegistries);
118
26
 
119
- export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
27
+ export { tagGroupRegistries as a, registerTagGroup as r, tagGroupDefinition as t };
@@ -1,7 +1,7 @@
1
1
  import { F as FoundationElement, _ as __decorate, a as attr, b as __metadata, h as html, r as registerFactory } from './index.js';
2
2
  import { c as classNames } from './class-names.js';
3
3
 
4
- var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 30 May 2023 12:49:14 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n /* @cssprop [--vvd-action-group-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-action-group-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-action-group-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-action-group-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-action-group-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-action-group-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-action-group-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-action-group-accent-faint, var(--vvd-color-neutral-50));\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::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n/* Separator */\n::slotted([role=separator]) {\n align-self: stretch;\n margin-block: 4px;\n}";
4
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Tue, 06 Jun 2023 10:38:32 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n inline-size: inherit;\n vertical-align: middle;\n}\n.base {\n /* @cssprop [--vvd-action-group-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-action-group-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-action-group-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-action-group-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-action-group-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-action-group-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-action-group-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-action-group-accent-faint, var(--vvd-color-neutral-50));\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::before {\n position: absolute;\n z-index: 1;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inset: 0;\n pointer-events: none;\n}\n.base:not(.tight) {\n padding: 4px;\n column-gap: 4px;\n}\n\n/* Shape */\n.base:not(.shape-pill) {\n border-radius: 6px;\n}\n\n.base.shape-pill {\n border-radius: 24px;\n}\n\n/* Separator */\n::slotted([role=separator]) {\n align-self: stretch;\n margin-block: 4px;\n}";
5
5
 
6
6
  class ActionGroup extends FoundationElement {
7
7
  constructor() {