@vonage/vivid 3.0.0-next.134 → 3.0.0-next.135

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 (74) hide show
  1. package/combobox/index.js +1 -0
  2. package/custom-elements.json +344 -0
  3. package/index.js +7 -3
  4. package/lib/components.d.ts +3 -0
  5. package/lib/menu-item/menu-item.d.ts +1 -0
  6. package/lib/tab/definition.d.ts +3 -0
  7. package/lib/tab/index.d.ts +1 -0
  8. package/lib/tab/tab.d.ts +9 -0
  9. package/lib/tab/tab.template.d.ts +3 -0
  10. package/lib/tab-panel/definition.d.ts +3 -0
  11. package/lib/tab-panel/index.d.ts +1 -0
  12. package/lib/tab-panel/tab-panel.d.ts +3 -0
  13. package/lib/tab-panel/tab-panel.template.d.ts +2 -0
  14. package/lib/tabs/definition.d.ts +3 -0
  15. package/lib/tabs/index.d.ts +1 -0
  16. package/lib/tabs/tabs.d.ts +10 -0
  17. package/lib/tabs/tabs.template.d.ts +2 -0
  18. package/listbox/index.js +1 -0
  19. package/number-field/index.js +1 -1
  20. package/package.json +1 -1
  21. package/shared/definition.js +1 -1
  22. package/shared/definition11.js +1 -1
  23. package/shared/definition12.js +1 -1
  24. package/shared/definition13.js +1 -1
  25. package/shared/definition14.js +1 -1
  26. package/shared/definition16.js +1 -1
  27. package/shared/definition17.js +3 -2
  28. package/shared/definition19.js +1 -1
  29. package/shared/definition2.js +1 -1
  30. package/shared/definition20.js +1 -1
  31. package/shared/definition21.js +1 -1
  32. package/shared/definition22.js +1 -1
  33. package/shared/definition23.js +1 -1
  34. package/shared/definition25.js +1 -1
  35. package/shared/definition27.js +20 -8
  36. package/shared/definition29.js +1 -1
  37. package/shared/definition30.js +1 -1
  38. package/shared/definition31.js +1 -1
  39. package/shared/definition32.js +1 -1
  40. package/shared/definition33.js +1 -1
  41. package/shared/definition34.js +1 -1
  42. package/shared/definition35.js +1 -1
  43. package/shared/definition36.js +1 -1
  44. package/shared/definition38.js +1 -1
  45. package/shared/definition39.js +42 -255
  46. package/shared/definition4.js +1 -1
  47. package/shared/definition40.js +24 -111
  48. package/shared/definition41.js +424 -61
  49. package/shared/definition42.js +280 -0
  50. package/shared/definition43.js +119 -0
  51. package/shared/definition44.js +77 -0
  52. package/shared/definition5.js +1 -1
  53. package/shared/definition6.js +1 -1
  54. package/shared/definition7.js +1 -1
  55. package/shared/definition8.js +1 -1
  56. package/shared/definition9.js +1 -1
  57. package/shared/form-elements.js +1 -1
  58. package/shared/listbox.js +2 -9
  59. package/shared/numbers.js +10 -1
  60. package/shared/patterns/form-elements/form-elements.d.ts +2 -2
  61. package/shared/strings.js +9 -0
  62. package/shared/text-field.js +1 -1
  63. package/styles/core/all.css +1 -1
  64. package/styles/core/theme.css +1 -1
  65. package/styles/core/typography.css +1 -1
  66. package/styles/tokens/theme-dark.css +4 -4
  67. package/styles/tokens/theme-light.css +4 -4
  68. package/tab/index.js +16 -0
  69. package/tab-panel/index.js +4 -0
  70. package/tabs/index.js +24 -0
  71. package/text-area/index.js +1 -1
  72. package/text-field/index.js +1 -1
  73. package/tooltip/index.js +1 -1
  74. package/vivid.api.json +315 -0
@@ -1,280 +1,67 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, Z as nullableNumberConverter, N as observable, 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, 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 { f as formElements, 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';
10
6
  import { f as focusTemplateFactory } from './focus2.js';
11
- import { w as when } from './when.js';
12
- import { r as ref } from './ref.js';
13
7
  import { c as classNames } from './class-names.js';
14
8
 
15
- class _TextArea extends FoundationElement {
16
- }
17
9
  /**
18
- * A form-associated base class for the {@link @microsoft/fast-foundation#(TextArea:class)} component.
10
+ * A Tab Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}
19
11
  *
20
- * @internal
21
- */
22
- class FormAssociatedTextArea extends FormAssociated(_TextArea) {
23
- constructor() {
24
- super(...arguments);
25
- this.proxy = document.createElement("textarea");
26
- }
27
- }
28
-
29
- /**
30
- * Resize mode for a TextArea
31
- * @public
32
- */
33
- const TextAreaResize = {
34
- /**
35
- * No resize.
36
- */
37
- none: "none",
38
- /**
39
- * Resize vertically and horizontally.
40
- */
41
- both: "both",
42
- /**
43
- * Resize horizontally.
44
- */
45
- horizontal: "horizontal",
46
- /**
47
- * Resize vertically.
48
- */
49
- vertical: "vertical",
50
- };
51
-
52
- /**
53
- * A Text Area Custom HTML Element.
54
- * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea | <textarea> element }.
55
- *
56
- * @slot - The default slot for the label
57
- * @csspart label - The label
58
- * @csspart root - The element wrapping the control
59
- * @csspart control - The textarea element
60
- * @fires change - Emits a custom 'change' event when the textarea emits a change event
12
+ * @slot - The default slot for the tab content
61
13
  *
62
14
  * @public
63
15
  */
64
- class TextArea$1 extends FormAssociatedTextArea {
65
- constructor() {
66
- super(...arguments);
67
- /**
68
- * The resize mode of the element.
69
- * @public
70
- * @remarks
71
- * HTML Attribute: resize
72
- */
73
- this.resize = TextAreaResize.none;
74
- /**
75
- * Sizes the element horizontally by a number of character columns.
76
- *
77
- * @public
78
- * @remarks
79
- * HTML Attribute: cols
80
- */
81
- this.cols = 20;
82
- /**
83
- * @internal
84
- */
85
- this.handleTextInput = () => {
86
- this.value = this.control.value;
87
- };
88
- }
89
- readOnlyChanged() {
90
- if (this.proxy instanceof HTMLTextAreaElement) {
91
- this.proxy.readOnly = this.readOnly;
92
- }
93
- }
94
- autofocusChanged() {
95
- if (this.proxy instanceof HTMLTextAreaElement) {
96
- this.proxy.autofocus = this.autofocus;
97
- }
98
- }
99
- listChanged() {
100
- if (this.proxy instanceof HTMLTextAreaElement) {
101
- this.proxy.setAttribute("list", this.list);
102
- }
103
- }
104
- maxlengthChanged() {
105
- if (this.proxy instanceof HTMLTextAreaElement) {
106
- this.proxy.maxLength = this.maxlength;
107
- }
108
- }
109
- minlengthChanged() {
110
- if (this.proxy instanceof HTMLTextAreaElement) {
111
- this.proxy.minLength = this.minlength;
112
- }
113
- }
114
- spellcheckChanged() {
115
- if (this.proxy instanceof HTMLTextAreaElement) {
116
- this.proxy.spellcheck = this.spellcheck;
117
- }
118
- }
119
- /**
120
- * Selects all the text in the text area
121
- *
122
- * @public
123
- */
124
- select() {
125
- this.control.select();
126
- /**
127
- * The select event does not permeate the shadow DOM boundary.
128
- * This fn effectively proxies the select event,
129
- * emitting a `select` event whenever the internal
130
- * control emits a `select` event
131
- */
132
- this.$emit("select");
133
- }
134
- /**
135
- * Change event handler for inner control.
136
- * @remarks
137
- * "Change" events are not `composable` so they will not
138
- * permeate the shadow DOM boundary. This fn effectively proxies
139
- * the change event, emitting a `change` event whenever the internal
140
- * control emits a `change` event
141
- * @internal
142
- */
143
- handleChange() {
144
- this.$emit("change");
145
- }
146
- /** {@inheritDoc (FormAssociated:interface).validate} */
147
- validate() {
148
- super.validate(this.control);
149
- }
16
+ class Tab$1 extends FoundationElement {
150
17
  }
151
18
  __decorate([
152
19
  attr({ mode: "boolean" })
153
- ], TextArea$1.prototype, "readOnly", void 0);
154
- __decorate([
155
- attr
156
- ], TextArea$1.prototype, "resize", void 0);
157
- __decorate([
158
- attr({ mode: "boolean" })
159
- ], TextArea$1.prototype, "autofocus", void 0);
160
- __decorate([
161
- attr({ attribute: "form" })
162
- ], TextArea$1.prototype, "formId", void 0);
163
- __decorate([
164
- attr
165
- ], TextArea$1.prototype, "list", void 0);
166
- __decorate([
167
- attr({ converter: nullableNumberConverter })
168
- ], TextArea$1.prototype, "maxlength", void 0);
169
- __decorate([
170
- attr({ converter: nullableNumberConverter })
171
- ], TextArea$1.prototype, "minlength", void 0);
172
- __decorate([
173
- attr
174
- ], TextArea$1.prototype, "name", void 0);
175
- __decorate([
176
- attr
177
- ], TextArea$1.prototype, "placeholder", void 0);
178
- __decorate([
179
- attr({ converter: nullableNumberConverter, mode: "fromView" })
180
- ], TextArea$1.prototype, "cols", void 0);
181
- __decorate([
182
- attr({ converter: nullableNumberConverter, mode: "fromView" })
183
- ], TextArea$1.prototype, "rows", void 0);
184
- __decorate([
185
- attr({ mode: "boolean" })
186
- ], TextArea$1.prototype, "spellcheck", void 0);
187
- __decorate([
188
- observable
189
- ], TextArea$1.prototype, "defaultSlottedNodes", void 0);
190
- applyMixins(TextArea$1, DelegatesARIATextbox);
20
+ ], Tab$1.prototype, "disabled", void 0);
191
21
 
192
- var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 12 Jan 2023 07:26:42 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: 1fr max-content;\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-400);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n --_connotation-color-primary: var(--vvd-color-success-500);\n --_connotation-color-backdrop: var(--vvd-color-success-50);\n --_connotation-color-intermediate: var(--vvd-color-success-500);\n --_connotation-color-firm: var(--vvd-color-success-600);\n --_connotation-color-faint: var(--vvd-color-success-50);\n --_connotation-color-soft: var(--vvd-color-success-100);\n}\n.base.connotation-alert {\n --_connotation-color-primary: var(--vvd-color-alert-500);\n --_connotation-color-backdrop: var(--vvd-color-alert-50);\n --_connotation-color-intermediate: var(--vvd-color-alert-500);\n --_connotation-color-firm: var(--vvd-color-alert-600);\n --_connotation-color-faint: var(--vvd-color-alert-50);\n --_connotation-color-soft: var(--vvd-color-alert-100);\n}\n.base:not(.connotation-success, .connotation-alert) {\n --_connotation-color-primary: var(--vvd-color-canvas-text);\n --_connotation-color-backdrop: var(--vvd-color-canvas);\n --_connotation-color-intermediate: var(--vvd-color-neutral-500);\n --_connotation-color-firm: var(--vvd-color-canvas-text);\n --_connotation-color-faint: var(--vvd-color-neutral-50);\n --_connotation-color-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.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n border-radius: 6px;\n grid-column: 1/3;\n}\n\n.control {\n width: 100%;\n padding: 8px 16px;\n border: 0 none;\n background-color: var(--_appearance-color-fill);\n border-radius: inherit;\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 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 -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 -webkit-text-fill-color: var(--_low-ink-color); /* 1. sets text fill to current `color` for safari */\n}\n@supports selector(:focus-visible) {\n .control:focus {\n outline: none;\n }\n}\n\n.focus-indicator {\n --focus-stroke-gap-color: transparent;\n pointer-events: none;\n}\n.fieldset:not(:focus-visible, :focus-within) > .focus-indicator {\n display: none;\n}";
22
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 16 Jan 2023 13:29:55 GMT\n */\n@supports selector(:focus-visible) {\n :host(:focus) {\n outline: none;\n }\n}\n:host(.vertical) {\n justify-content: end;\n grid-column: 1/auto;\n}\n\n.base {\n position: relative;\n display: flex;\n box-sizing: border-box;\n align-items: center;\n padding: var(--_tabs-tablist-gutter);\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 gap: var(--_tabs-tablist-gutter);\n min-block-size: 48px;\n vertical-align: middle;\n white-space: nowrap;\n}\n.base {\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(--_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: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\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}\n:host(.vertical) .base {\n padding-inline-start: calc(var(--_tabs-active-indicator-stroke-width) + var(--_tabs-tablist-gutter));\n}\n\n:host(:not(:focus-visible)) .focus-indicator {\n display: none;\n}\n\n.icon {\n font-size: 20px;\n}\n\n:host(:not(.vertical)) .base::after {\n position: absolute;\n background: currentColor;\n block-size: 2px;\n content: \"\";\n inline-size: calc(100% + var(--_tabs-tablist-gutter) * 2);\n inset-block-end: calc(var(--_tabs-tablist-gutter) * -2);\n margin-inline: calc(var(--_tabs-tablist-gutter) * -2);\n pointer-events: none;\n transition-property: opacity;\n}\n:host(:not(.vertical)):host([aria-selected=true]) .base::after {\n transition-delay: 0.2s;\n}\n:host(:not(.vertical)):host(:not([aria-selected=true])) .base::after {\n opacity: 0;\n}";
193
23
 
194
- let TextArea = class TextArea extends TextArea$1 {};
195
- __decorate([attr, __metadata("design:type", String)], TextArea.prototype, "wrap", void 0);
196
- TextArea = __decorate([formElements], TextArea);
24
+ class Tab extends Tab$1 {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.tabIndex = '-1';
28
+ this.ariaSelected = null;
29
+ }
30
+ }
31
+ __decorate([attr, __metadata("design:type", String)], Tab.prototype, "label", void 0);
32
+ __decorate([attr({
33
+ mode: 'fromView'
34
+ }), __metadata("design:type", Object)], Tab.prototype, "tabIndex", void 0);
35
+ __decorate([attr({
36
+ attribute: 'aria-selected'
37
+ }), __metadata("design:type", Object)], Tab.prototype, "ariaSelected", void 0);
38
+ applyMixins(Tab, AffixIcon);
197
39
 
198
40
  let _ = t => t,
199
- _t,
200
- _t2;
41
+ _t;
201
42
  const getClasses = ({
202
- value,
203
- errorValidationMessage,
204
43
  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() {
44
+ ariaSelected
45
+ }) => classNames('base', ['disabled', Boolean(disabled)], ['selected', ariaSelected === 'true']);
46
+ function TabTemplate(context) {
47
+ const affixIconTemplate = affixIconTemplateFactory(context);
48
+ const focusTemplate = focusTemplateFactory(context);
210
49
  return html(_t || (_t = _`
211
- <label for="control" class="label">
212
- ${0}
213
- </label>`), x => x.label);
50
+ <template slot="tab" role="tab" aria-disabled="${0}" aria-selected="${0}">
51
+ <div class="${0}">
52
+ ${0}
53
+ ${0}
54
+ ${0}
55
+ </div>
56
+ </template>`), x => x.disabled, x => x.ariaSelected, getClasses, () => focusTemplate, x => affixIconTemplate(x.icon), x => x.label);
214
57
  }
215
- const TextAreaTemplate = context => {
216
- const focusTemplate = focusTemplateFactory(context);
217
- return html(_t2 || (_t2 = _`
218
- <div class="${0}">
219
- ${0}
220
- <div class="fieldset">
221
- <textarea class="control"
222
- ?autofocus="${0}"
223
- placeholder="${0}"
224
- name="${0}"
225
- maxlength="${0}"
226
- rows="${0}"
227
- cols="${0}"
228
- wrap="${0}"
229
- ?readonly="${0}"
230
- ?required="${0}"
231
- ?spellcheck="${0}"
232
- :value="${0}"
233
- aria-atomic="${0}"
234
- aria-busy="${0}"
235
- aria-controls="${0}"
236
- aria-current="${0}"
237
- aria-describedby="${0}"
238
- aria-details="${0}"
239
- aria-disabled="${0}"
240
- aria-errormessage="${0}"
241
- aria-flowto="${0}"
242
- aria-haspopup="${0}"
243
- aria-hidden="${0}"
244
- aria-invalid="${0}"
245
- aria-keyshortcuts="${0}"
246
- aria-label="${0}"
247
- aria-labelledby="${0}"
248
- aria-live="${0}"
249
- aria-owns="${0}"
250
- aria-relevant="${0}"
251
- aria-roledescription="${0}"
252
- @input="${0}"
253
- @change="${0}"
254
- ${0}
255
- >
256
- </textarea>
257
- ${0}
258
- </div>
259
- ${0}
260
- ${0}
261
- ${0}
262
- </div>
263
- `), 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.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'), () => focusTemplate, when(x => {
264
- var _a;
265
- return !x.successText && !x.errorValidationMessage && ((_a = x.helperText) === null || _a === void 0 ? void 0 : _a.length);
266
- }, getFeedbackTemplate('helper', context)), when(x => !x.successText && x.errorValidationMessage, getFeedbackTemplate('error', context)), when(x => x.successText, getFeedbackTemplate('success', context)));
267
- };
268
58
 
269
- const textAreaDefinition = TextArea.compose({
270
- baseName: 'text-area',
271
- template: TextAreaTemplate,
272
- styles: css_248z,
273
- shadowOptions: {
274
- delegatesFocus: true
275
- }
59
+ const tabDefinition = Tab.compose({
60
+ baseName: 'tab',
61
+ template: TabTemplate,
62
+ styles: css_248z
276
63
  });
277
- const textAreaRegistries = [textAreaDefinition(), ...iconRegistries, ...focusRegistries];
278
- const registerTextArea = registerFactory(textAreaRegistries);
64
+ const tabRegistries = [tabDefinition(), ...iconRegistries, ...focusRegistries];
65
+ const registerTab = registerFactory(tabRegistries);
279
66
 
280
- export { textAreaRegistries as a, registerTextArea as r, textAreaDefinition as t };
67
+ export { tabDefinition as a, registerTab as r, tabRegistries as t };
@@ -1,7 +1,7 @@
1
1
  import { h as html, r as registerFactory } from './index.js';
2
2
  import { F as Focus } from './focus.js';
3
3
 
4
- var css_248z = "/**\n * Do not edit directly\n * Generated on Thu, 12 Jan 2023 07:26:42 GMT\n */\n:host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));\n outline-offset: -2px;\n}";
4
+ var css_248z = "/**\n * Do not edit directly\n * Generated on Mon, 16 Jan 2023 13:29:55 GMT\n */\n:host {\n display: contents;\n border-radius: inherit;\n}\n\n.control {\n position: absolute;\n z-index: 1;\n box-sizing: border-box;\n border-radius: inherit;\n box-shadow: inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);\n inset: var(--focus-inset, 0);\n outline: 2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));\n outline-offset: -2px;\n}";
5
5
 
6
6
  let _ = t => t,
7
7
  _t;
@@ -1,119 +1,32 @@
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 { f as formElements, 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';
13
- import { c as classNames } from './class-names.js';
1
+ import { F as FoundationElement, h as html, r as registerFactory } from './index.js';
14
2
 
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([formElements], TextField);
20
- applyMixins(TextField, AffixIcon);
3
+ /**
4
+ * A TabPanel Component to be used with {@link @microsoft/fast-foundation#(Tabs:class)}
5
+ *
6
+ * @slot - The default slot for the tabpanel content
7
+ *
8
+ * @public
9
+ */
10
+ class TabPanel$1 extends FoundationElement {
11
+ }
12
+
13
+ class TabPanel extends TabPanel$1 {}
21
14
 
22
15
  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() {
16
+ _t;
17
+ function TabPanelTemplate() {
38
18
  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);
19
+ <template slot="tabpanel" role="tabpanel">
20
+ <slot></slot>
21
+ </template>
22
+ `));
47
23
  }
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)));
106
- };
107
24
 
108
- const textFieldDefinition = TextField.compose({
109
- baseName: 'text-field',
110
- template: TextfieldTemplate,
111
- styles: css_248z,
112
- shadowOptions: {
113
- delegatesFocus: true
114
- }
25
+ const tabPanelDefinition = TabPanel.compose({
26
+ baseName: 'tab-panel',
27
+ template: TabPanelTemplate
115
28
  });
116
- const textFieldRegistries = [textFieldDefinition(), ...iconRegistries, ...focusRegistries];
117
- const registerTextField = registerFactory(textFieldRegistries);
29
+ const tabPanelRegistries = [tabPanelDefinition()];
30
+ const registerTabPanel = registerFactory(tabPanelRegistries);
118
31
 
119
- export { textFieldRegistries as a, registerTextField as r, textFieldDefinition as t };
32
+ export { tabPanelDefinition as a, registerTabPanel as r, tabPanelRegistries as t };