@openelement/ui 0.41.0-alpha.1
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.
- package/LICENSE +21 -0
- package/README.md +78 -0
- package/package.json +142 -0
- package/src/daisy-classes.d.ts +7 -0
- package/src/daisy-classes.js +770 -0
- package/src/index.d.ts +57 -0
- package/src/index.js +62 -0
- package/src/manifest.d.ts +8 -0
- package/src/manifest.js +255 -0
- package/src/open-badge.d.ts +15 -0
- package/src/open-badge.js +88 -0
- package/src/open-brand-mark.d.ts +14 -0
- package/src/open-brand-mark.js +107 -0
- package/src/open-button.d.ts +38 -0
- package/src/open-button.js +219 -0
- package/src/open-callout.d.ts +26 -0
- package/src/open-callout.js +99 -0
- package/src/open-card.d.ts +33 -0
- package/src/open-card.js +107 -0
- package/src/open-code-block.d.ts +44 -0
- package/src/open-code-block.js +267 -0
- package/src/open-dialog.d.ts +47 -0
- package/src/open-dialog.js +235 -0
- package/src/open-dropdown.d.ts +25 -0
- package/src/open-dropdown.js +45 -0
- package/src/open-hero-ping.d.ts +27 -0
- package/src/open-hero-ping.js +136 -0
- package/src/open-input.d.ts +51 -0
- package/src/open-input.js +233 -0
- package/src/open-lab-panel.d.ts +16 -0
- package/src/open-lab-panel.js +151 -0
- package/src/open-lab-stage.d.ts +15 -0
- package/src/open-lab-stage.js +622 -0
- package/src/open-layout.d.ts +111 -0
- package/src/open-layout.js +1377 -0
- package/src/open-modal.d.ts +25 -0
- package/src/open-modal.js +48 -0
- package/src/open-props-tokens.d.ts +7 -0
- package/src/open-props-tokens.js +474 -0
- package/src/open-standards-visual.d.ts +20 -0
- package/src/open-standards-visual.js +425 -0
- package/src/open-step-card.d.ts +34 -0
- package/src/open-step-card.js +117 -0
- package/src/open-tabs.d.ts +27 -0
- package/src/open-tabs.js +56 -0
- package/src/open-theme-toggle.d.ts +38 -0
- package/src/open-theme-toggle.js +223 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/** @jsxImportSource @openelement/core */ /**
|
|
2
|
+
* @openelement/ui - open-input
|
|
3
|
+
*
|
|
4
|
+
* Minimal input field following Swiss International Style.
|
|
5
|
+
* Clean borders, subtle focus states.
|
|
6
|
+
*
|
|
7
|
+
* v0.20.0: Migrated from DsdLitElement to DsdElement (Ocean component).
|
|
8
|
+
* v0.24.1: Migrated from html`` template to JSX (ADR-0057).
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Form-associated: participates in native <form> submission
|
|
12
|
+
* - Supports label, placeholder, error, disabled, required
|
|
13
|
+
* - Dispatches 'open-input' custom event on value change
|
|
14
|
+
*
|
|
15
|
+
* @csspart wrapper -The outer input-wrapper div
|
|
16
|
+
* @csspart label -The label element
|
|
17
|
+
* @csspart control -The input/textarea/select element
|
|
18
|
+
* @csspart error -The error message small element
|
|
19
|
+
*
|
|
20
|
+
* Usage:
|
|
21
|
+
* ```html
|
|
22
|
+
* <open-input placeholder="Enter text"></open-input>
|
|
23
|
+
* <open-input type="email" label="Email"></open-input>
|
|
24
|
+
* <form onsubmit="console.info(new FormData(this))">
|
|
25
|
+
* <open-input name="username" label="Username"></open-input>
|
|
26
|
+
* <button type="submit">Submit</button>
|
|
27
|
+
* </form>
|
|
28
|
+
* ```
|
|
29
|
+
*/ import { OpenElement } from '@openelement/element';
|
|
30
|
+
import { StyleSheet } from '@openelement/core/style-sheet';
|
|
31
|
+
import { escapeAttr, escapeHtml } from '@openelement/core';
|
|
32
|
+
export const tagName = 'open-input';
|
|
33
|
+
const sheet = new StyleSheet();
|
|
34
|
+
sheet.replaceSync(`
|
|
35
|
+
:host {
|
|
36
|
+
display: block;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.input-wrapper {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
gap: var(--size-2);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
label {
|
|
46
|
+
font-size: var(--font-size-0);
|
|
47
|
+
font-weight: var(--font-weight-5);
|
|
48
|
+
color: var(--gray-6);
|
|
49
|
+
letter-spacing: var(--font-letterspacing-2);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.input {
|
|
53
|
+
width: 100%;
|
|
54
|
+
padding: var(--size-2) var(--size-3);
|
|
55
|
+
font-family: var(--font-sans);
|
|
56
|
+
font-size: var(--font-size-1);
|
|
57
|
+
color: var(--gray-9);
|
|
58
|
+
background: var(--gray-0);
|
|
59
|
+
border: var(--border-size-1) solid var(--gray-3);
|
|
60
|
+
border-radius: var(--radius-2);
|
|
61
|
+
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
|
62
|
+
outline: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.input::placeholder {
|
|
66
|
+
color: var(--gray-5);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.input:hover {
|
|
70
|
+
border-color: var(--gray-5);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.input:focus {
|
|
74
|
+
border-color: var(--brand, var(--indigo-6));
|
|
75
|
+
box-shadow: 0 0 0 1px var(--brand, var(--indigo-6));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.input:disabled {
|
|
79
|
+
opacity: 0.5;
|
|
80
|
+
cursor: not-allowed;
|
|
81
|
+
background: var(--gray-1);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.input--error {
|
|
85
|
+
border-color: var(--error);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
:host(:state(disabled)) .input {
|
|
89
|
+
opacity: 0.5;
|
|
90
|
+
cursor: not-allowed;
|
|
91
|
+
background: var(--gray-1);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
:host(:state(invalid)) .input {
|
|
95
|
+
border-color: var(--error);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.error-message {
|
|
99
|
+
font-size: var(--font-size-00);
|
|
100
|
+
color: var(--error);
|
|
101
|
+
}
|
|
102
|
+
`);
|
|
103
|
+
export class OpenInput extends OpenElement {
|
|
104
|
+
static styles = [
|
|
105
|
+
sheet
|
|
106
|
+
];
|
|
107
|
+
static formAssociated = true;
|
|
108
|
+
static delegatesFocus = true;
|
|
109
|
+
static observedAttributes = [
|
|
110
|
+
'type',
|
|
111
|
+
'placeholder',
|
|
112
|
+
'label',
|
|
113
|
+
'value',
|
|
114
|
+
'name',
|
|
115
|
+
'disabled',
|
|
116
|
+
'required',
|
|
117
|
+
'error'
|
|
118
|
+
];
|
|
119
|
+
render() {
|
|
120
|
+
const type = this.getAttribute('type') || 'text';
|
|
121
|
+
const placeholder = this.getAttribute('placeholder') || '';
|
|
122
|
+
const label1 = this.getAttribute('label') || '';
|
|
123
|
+
const value = this.getAttribute('value') || '';
|
|
124
|
+
const name = this.getAttribute('name') || '';
|
|
125
|
+
const d = this.hasAttribute('disabled');
|
|
126
|
+
const r = this.hasAttribute('required');
|
|
127
|
+
const error = this.getAttribute('error') || '';
|
|
128
|
+
const errorClass = error ? ' input--error' : '';
|
|
129
|
+
return <div className='input-wrapper' part='wrapper'>
|
|
130
|
+
{label1 && <label htmlFor='input' part='label'>
|
|
131
|
+
{this._esc(label1)}
|
|
132
|
+
{r ? ' *' : ''}
|
|
133
|
+
</label>}
|
|
134
|
+
<input id='input' className={`input${errorClass}`} part='control' type={type} placeholder={placeholder} value={value} name={name} disabled={d} required={r} aria-invalid={error ? 'true' : undefined} aria-describedby={error ? 'input-error' : undefined} aria-errormessage={error ? 'input-error' : undefined} onInput={(e)=>this._handleInput(e)} onChange={(e)=>this._handleChange(e)} onFocus={()=>this._handleFocus()} onBlur={()=>this._handleBlur()}/>
|
|
135
|
+
{error && <small id='input-error' role='alert' className='error-message' part='error'>
|
|
136
|
+
{this._esc(error)}
|
|
137
|
+
</small>}
|
|
138
|
+
</div>;
|
|
139
|
+
}
|
|
140
|
+
attributeChangedCallback(name, old, val) {
|
|
141
|
+
if (old === val) return;
|
|
142
|
+
if (name === 'disabled' || name === 'error') {
|
|
143
|
+
this._syncDOM();
|
|
144
|
+
this._updateStates();
|
|
145
|
+
} else if (name === 'value') {
|
|
146
|
+
this._syncDOM();
|
|
147
|
+
if (this._internals) {
|
|
148
|
+
this._internals.setFormValue(val || '');
|
|
149
|
+
}
|
|
150
|
+
} else {
|
|
151
|
+
this._syncDOM();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
_syncDOM() {
|
|
155
|
+
const input1 = this.shadowRoot?.querySelector('input, textarea, select');
|
|
156
|
+
if (!input1) return;
|
|
157
|
+
input1.disabled = this.hasAttribute('disabled');
|
|
158
|
+
const val = this.getAttribute('value');
|
|
159
|
+
if (val !== null && input1.value !== val) {
|
|
160
|
+
input1.value = val;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
_updateStates() {
|
|
164
|
+
if (!this._internals?.states) return;
|
|
165
|
+
if (this.hasAttribute('disabled')) {
|
|
166
|
+
this._internals.states.add('disabled');
|
|
167
|
+
this._internals.states.delete('enabled');
|
|
168
|
+
} else {
|
|
169
|
+
this._internals.states.delete('disabled');
|
|
170
|
+
this._internals.states.add('enabled');
|
|
171
|
+
}
|
|
172
|
+
if (this.getAttribute('error')) {
|
|
173
|
+
this._internals.states.add('invalid');
|
|
174
|
+
} else {
|
|
175
|
+
this._internals.states.delete('invalid');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
_handleInput(e) {
|
|
179
|
+
const input1 = e.target;
|
|
180
|
+
this.setAttribute('value', input1.value);
|
|
181
|
+
this._internals?.setFormValue(input1.value);
|
|
182
|
+
this.dispatchEvent(new CustomEvent('open-input', {
|
|
183
|
+
detail: {
|
|
184
|
+
value: input1.value
|
|
185
|
+
},
|
|
186
|
+
bubbles: true,
|
|
187
|
+
composed: false
|
|
188
|
+
}));
|
|
189
|
+
}
|
|
190
|
+
_handleChange(e) {
|
|
191
|
+
const input1 = e.target;
|
|
192
|
+
this.dispatchEvent(new CustomEvent('open-change', {
|
|
193
|
+
detail: {
|
|
194
|
+
value: input1.value
|
|
195
|
+
},
|
|
196
|
+
bubbles: true,
|
|
197
|
+
composed: false
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
_handleFocus() {
|
|
201
|
+
this.dispatchEvent(new CustomEvent('open-focus', {
|
|
202
|
+
bubbles: true,
|
|
203
|
+
composed: false
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
_handleBlur() {
|
|
207
|
+
this.dispatchEvent(new CustomEvent('open-blur', {
|
|
208
|
+
bubbles: true,
|
|
209
|
+
composed: false
|
|
210
|
+
}));
|
|
211
|
+
}
|
|
212
|
+
formResetCallback() {
|
|
213
|
+
this.setAttribute('value', '');
|
|
214
|
+
this.removeAttribute('error');
|
|
215
|
+
this._internals?.setFormValue('');
|
|
216
|
+
this._syncDOM();
|
|
217
|
+
}
|
|
218
|
+
formDisabledCallback(disabled) {
|
|
219
|
+
if (disabled) {
|
|
220
|
+
this.setAttribute('disabled', '');
|
|
221
|
+
} else {
|
|
222
|
+
this.removeAttribute('disabled');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
_esc = escapeHtml;
|
|
226
|
+
_escAttr = escapeAttr;
|
|
227
|
+
}
|
|
228
|
+
export default OpenInput;
|
|
229
|
+
// Guard: idempotent across SSR paths
|
|
230
|
+
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
231
|
+
customElements.define(tagName, OpenInput);
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1pbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3hJbXBvcnRTb3VyY2UgQG9wZW5lbGVtZW50L2NvcmUgKi9cbi8qKlxuICogQG9wZW5lbGVtZW50L3VpIC0gb3Blbi1pbnB1dFxuICpcbiAqIE1pbmltYWwgaW5wdXQgZmllbGQgZm9sbG93aW5nIFN3aXNzIEludGVybmF0aW9uYWwgU3R5bGUuXG4gKiBDbGVhbiBib3JkZXJzLCBzdWJ0bGUgZm9jdXMgc3RhdGVzLlxuICpcbiAqIHYwLjIwLjA6IE1pZ3JhdGVkIGZyb20gRHNkTGl0RWxlbWVudCB0byBEc2RFbGVtZW50IChPY2VhbiBjb21wb25lbnQpLlxuICogdjAuMjQuMTogTWlncmF0ZWQgZnJvbSBodG1sYGAgdGVtcGxhdGUgdG8gSlNYIChBRFItMDA1NykuXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEZvcm0tYXNzb2NpYXRlZDogcGFydGljaXBhdGVzIGluIG5hdGl2ZSA8Zm9ybT4gc3VibWlzc2lvblxuICogLSBTdXBwb3J0cyBsYWJlbCwgcGxhY2Vob2xkZXIsIGVycm9yLCBkaXNhYmxlZCwgcmVxdWlyZWRcbiAqIC0gRGlzcGF0Y2hlcyAnb3Blbi1pbnB1dCcgY3VzdG9tIGV2ZW50IG9uIHZhbHVlIGNoYW5nZVxuICpcbiAqIEBjc3NwYXJ0IHdyYXBwZXIgLVRoZSBvdXRlciBpbnB1dC13cmFwcGVyIGRpdlxuICogQGNzc3BhcnQgbGFiZWwgLVRoZSBsYWJlbCBlbGVtZW50XG4gKiBAY3NzcGFydCBjb250cm9sIC1UaGUgaW5wdXQvdGV4dGFyZWEvc2VsZWN0IGVsZW1lbnRcbiAqIEBjc3NwYXJ0IGVycm9yIC1UaGUgZXJyb3IgbWVzc2FnZSBzbWFsbCBlbGVtZW50XG4gKlxuICogVXNhZ2U6XG4gKiBgYGBodG1sXG4gKiA8b3Blbi1pbnB1dCBwbGFjZWhvbGRlcj1cIkVudGVyIHRleHRcIj48L29wZW4taW5wdXQ+XG4gKiA8b3Blbi1pbnB1dCB0eXBlPVwiZW1haWxcIiBsYWJlbD1cIkVtYWlsXCI+PC9vcGVuLWlucHV0PlxuICogPGZvcm0gb25zdWJtaXQ9XCJjb25zb2xlLmluZm8obmV3IEZvcm1EYXRhKHRoaXMpKVwiPlxuICogICA8b3Blbi1pbnB1dCBuYW1lPVwidXNlcm5hbWVcIiBsYWJlbD1cIlVzZXJuYW1lXCI+PC9vcGVuLWlucHV0PlxuICogICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIj5TdWJtaXQ8L2J1dHRvbj5cbiAqIDwvZm9ybT5cbiAqIGBgYFxuICovXG5cbmltcG9ydCB7IE9wZW5FbGVtZW50IH0gZnJvbSAnQG9wZW5lbGVtZW50L2VsZW1lbnQnO1xuaW1wb3J0IHsgU3R5bGVTaGVldCwgdHlwZSBTdHlsZVNoZWV0TGlrZSB9IGZyb20gJ0BvcGVuZWxlbWVudC9jb3JlL3N0eWxlLXNoZWV0JztcbmltcG9ydCB7IGVzY2FwZUF0dHIsIGVzY2FwZUh0bWwgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCB0YWdOYW1lID0gJ29wZW4taW5wdXQnO1xuXG5jb25zdCBzaGVldDogU3R5bGVTaGVldExpa2UgPSBuZXcgU3R5bGVTaGVldCgpO1xuc2hlZXQucmVwbGFjZVN5bmMoYFxuICA6aG9zdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuaW5wdXQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogdmFyKC0tc2l6ZS0yKTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtNSk7XG4gICAgY29sb3I6IHZhcigtLWdyYXktNik7XG4gICAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLWZvbnQtbGV0dGVyc3BhY2luZy0yKTtcbiAgfVxuXG4gIC5pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS0yKSB2YXIoLS1zaXplLTMpO1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXNhbnMpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTEpO1xuICAgIGNvbG9yOiB2YXIoLS1ncmF5LTkpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWdyYXktMCk7XG4gICAgYm9yZGVyOiB2YXIoLS1ib3JkZXItc2l6ZS0xKSBzb2xpZCB2YXIoLS1ncmF5LTMpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy0yKTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgLmlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IHZhcigtLWdyYXktNSk7XG4gIH1cblxuICAuaW5wdXQ6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZ3JheS01KTtcbiAgfVxuXG4gIC5pbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZCwgdmFyKC0taW5kaWdvLTYpKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxcHggdmFyKC0tYnJhbmQsIHZhcigtLWluZGlnby02KSk7XG4gIH1cblxuICAuaW5wdXQ6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWdyYXktMSk7XG4gIH1cblxuICAuaW5wdXQtLWVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShkaXNhYmxlZCkpIC5pbnB1dCB7XG4gICAgb3BhY2l0eTogMC41O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZ3JheS0xKTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShpbnZhbGlkKSkgLmlucHV0IHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbiAgfVxuXG4gIC5lcnJvci1tZXNzYWdlIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0wMCk7XG4gICAgY29sb3I6IHZhcigtLWVycm9yKTtcbiAgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuSW5wdXQgZXh0ZW5kcyBPcGVuRWxlbWVudCB7XG4gIHN0YXRpYyBvdmVycmlkZSBzdHlsZXMgPSBbc2hlZXRdO1xuICBzdGF0aWMgb3ZlcnJpZGUgZm9ybUFzc29jaWF0ZWQgPSB0cnVlO1xuICBzdGF0aWMgb3ZlcnJpZGUgZGVsZWdhdGVzRm9jdXMgPSB0cnVlO1xuICBzdGF0aWMgb3ZlcnJpZGUgb2JzZXJ2ZWRBdHRyaWJ1dGVzID0gW1xuICAgICd0eXBlJyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdsYWJlbCcsXG4gICAgJ3ZhbHVlJyxcbiAgICAnbmFtZScsXG4gICAgJ2Rpc2FibGVkJyxcbiAgICAncmVxdWlyZWQnLFxuICAgICdlcnJvcicsXG4gIF07XG5cbiAgb3ZlcnJpZGUgcmVuZGVyKCk6IFJldHVyblR5cGU8dHlwZW9mIE9wZW5FbGVtZW50LnByb3RvdHlwZS5yZW5kZXI+IHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSB8fCAndGV4dCc7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLmdldEF0dHJpYnV0ZSgncGxhY2Vob2xkZXInKSB8fCAnJztcbiAgICBjb25zdCBsYWJlbCA9IHRoaXMuZ2V0QXR0cmlidXRlKCdsYWJlbCcpIHx8ICcnO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJykgfHwgJyc7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCduYW1lJykgfHwgJyc7XG4gICAgY29uc3QgZCA9IHRoaXMuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIGNvbnN0IHIgPSB0aGlzLmhhc0F0dHJpYnV0ZSgncmVxdWlyZWQnKTtcbiAgICBjb25zdCBlcnJvciA9IHRoaXMuZ2V0QXR0cmlidXRlKCdlcnJvcicpIHx8ICcnO1xuICAgIGNvbnN0IGVycm9yQ2xhc3MgPSBlcnJvciA/ICcgaW5wdXQtLWVycm9yJyA6ICcnO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdpbnB1dC13cmFwcGVyJyBwYXJ0PSd3cmFwcGVyJz5cbiAgICAgICAge2xhYmVsICYmIChcbiAgICAgICAgICA8bGFiZWwgaHRtbEZvcj0naW5wdXQnIHBhcnQ9J2xhYmVsJz5cbiAgICAgICAgICAgIHt0aGlzLl9lc2MobGFiZWwpfVxuICAgICAgICAgICAge3IgPyAnIConIDogJyd9XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgKX1cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgaWQ9J2lucHV0J1xuICAgICAgICAgIGNsYXNzTmFtZT17YGlucHV0JHtlcnJvckNsYXNzfWB9XG4gICAgICAgICAgcGFydD0nY29udHJvbCdcbiAgICAgICAgICB0eXBlPXt0eXBlfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICBkaXNhYmxlZD17ZH1cbiAgICAgICAgICByZXF1aXJlZD17cn1cbiAgICAgICAgICBhcmlhLWludmFsaWQ9e2Vycm9yID8gJ3RydWUnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2Vycm9yID8gJ2lucHV0LWVycm9yJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICBhcmlhLWVycm9ybWVzc2FnZT17ZXJyb3IgPyAnaW5wdXQtZXJyb3InIDogdW5kZWZpbmVkfVxuICAgICAgICAgIG9uSW5wdXQ9eyhlOiBFdmVudCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoZSl9XG4gICAgICAgICAgb25DaGFuZ2U9eyhlOiBFdmVudCkgPT4gdGhpcy5faGFuZGxlQ2hhbmdlKGUpfVxuICAgICAgICAgIG9uRm9jdXM9eygpID0+IHRoaXMuX2hhbmRsZUZvY3VzKCl9XG4gICAgICAgICAgb25CbHVyPXsoKSA9PiB0aGlzLl9oYW5kbGVCbHVyKCl9XG4gICAgICAgIC8+XG4gICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgPHNtYWxsIGlkPSdpbnB1dC1lcnJvcicgcm9sZT0nYWxlcnQnIGNsYXNzTmFtZT0nZXJyb3ItbWVzc2FnZScgcGFydD0nZXJyb3InPlxuICAgICAgICAgICAge3RoaXMuX2VzYyhlcnJvcil9XG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZTogc3RyaW5nLCBvbGQ6IHN0cmluZyB8IG51bGwsIHZhbDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChvbGQgPT09IHZhbCkgcmV0dXJuO1xuICAgIGlmIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdlcnJvcicpIHtcbiAgICAgIHRoaXMuX3N5bmNET00oKTtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlcygpO1xuICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ3ZhbHVlJykge1xuICAgICAgdGhpcy5fc3luY0RPTSgpO1xuICAgICAgaWYgKHRoaXMuX2ludGVybmFscykge1xuICAgICAgICB0aGlzLl9pbnRlcm5hbHMuc2V0Rm9ybVZhbHVlKHZhbCB8fCAnJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3N5bmNET00oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zeW5jRE9NKCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yKCdpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCcpIGFzXG4gICAgICB8IEhUTUxJbnB1dEVsZW1lbnRcbiAgICAgIHwgbnVsbDtcbiAgICBpZiAoIWlucHV0KSByZXR1cm47XG4gICAgaW5wdXQuZGlzYWJsZWQgPSB0aGlzLmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICBjb25zdCB2YWwgPSB0aGlzLmdldEF0dHJpYnV0ZSgndmFsdWUnKTtcbiAgICBpZiAodmFsICE9PSBudWxsICYmIGlucHV0LnZhbHVlICE9PSB2YWwpIHtcbiAgICAgIGlucHV0LnZhbHVlID0gdmFsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2ludGVybmFscz8uc3RhdGVzKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmFkZCgnZGlzYWJsZWQnKTtcbiAgICAgIHRoaXMuX2ludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdlbmFibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlZCcpO1xuICAgICAgdGhpcy5faW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2VuYWJsZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZ2V0QXR0cmlidXRlKCdlcnJvcicpKSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmFkZCgnaW52YWxpZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW52YWxpZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUlucHV0KGU6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGlucHV0LnZhbHVlKTtcbiAgICB0aGlzLl9pbnRlcm5hbHM/LnNldEZvcm1WYWx1ZShpbnB1dC52YWx1ZSk7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdvcGVuLWlucHV0Jywge1xuICAgICAgICBkZXRhaWw6IHsgdmFsdWU6IGlucHV0LnZhbHVlIH0sXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDaGFuZ2UoZTogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50KCdvcGVuLWNoYW5nZScsIHtcbiAgICAgICAgZGV0YWlsOiB7IHZhbHVlOiBpbnB1dC52YWx1ZSB9LFxuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogZmFsc2UsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlRm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnb3Blbi1mb2N1cycsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IGZhbHNlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnb3Blbi1ibHVyJywgeyBidWJibGVzOiB0cnVlLCBjb21wb3NlZDogZmFsc2UgfSkpO1xuICB9XG5cbiAgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJycpO1xuICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCdlcnJvcicpO1xuICAgIHRoaXMuX2ludGVybmFscz8uc2V0Rm9ybVZhbHVlKCcnKTtcbiAgICB0aGlzLl9zeW5jRE9NKCk7XG4gIH1cblxuICBmb3JtRGlzYWJsZWRDYWxsYmFjayhkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgJycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lc2MgPSBlc2NhcGVIdG1sO1xuICBwcml2YXRlIF9lc2NBdHRyID0gZXNjYXBlQXR0cjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3BlbklucHV0O1xuXG4vLyBHdWFyZDogaWRlbXBvdGVudCBhY3Jvc3MgU1NSIHBhdGhzXG5pZiAodHlwZW9mIGN1c3RvbUVsZW1lbnRzICE9PSAndW5kZWZpbmVkJyAmJiAhY3VzdG9tRWxlbWVudHMuZ2V0KHRhZ05hbWUpKSB7XG4gIGN1c3RvbUVsZW1lbnRzLmRlZmluZSh0YWdOYW1lLCBPcGVuSW5wdXQpO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QyxHQUN2Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTRCQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsVUFBVSxFQUFFLFVBQVUsUUFBUSxvQkFBb0I7QUFFM0QsT0FBTyxNQUFNLFVBQVUsYUFBYTtBQUVwQyxNQUFNLFFBQXdCLElBQUk7QUFDbEMsTUFBTSxXQUFXLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvRW5CLENBQUM7QUFFRCxPQUFPLE1BQU0sa0JBQWtCO0VBQzdCLE9BQWdCLFNBQVM7SUFBQztHQUFNLENBQUM7RUFDakMsT0FBZ0Is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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** @jsxImportSource @openelement/core */ /**
|
|
2
|
+
* @openelement/ui - open-lab-panel
|
|
3
|
+
*
|
|
4
|
+
* Standards-lab panel for specs, artifact frames, and reference desks.
|
|
5
|
+
*/ import { OpenElement } from '@openelement/element';
|
|
6
|
+
import { type StyleSheetLike } from '@openelement/core/style-sheet';
|
|
7
|
+
export declare const tagName: 'open-lab-panel';
|
|
8
|
+
declare const sheet: StyleSheetLike;
|
|
9
|
+
export declare class OpenLabPanel extends OpenElement {
|
|
10
|
+
static override styles: [];
|
|
11
|
+
static override observedAttributes: [string, string, string, string];
|
|
12
|
+
override render(): ReturnType<typeof OpenElement.prototype.render>;
|
|
13
|
+
private _esc: any;
|
|
14
|
+
private _getStr: any;
|
|
15
|
+
}
|
|
16
|
+
export default OpenLabPanel;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/** @jsxImportSource @openelement/core */ /**
|
|
2
|
+
* @openelement/ui - open-lab-panel
|
|
3
|
+
*
|
|
4
|
+
* Standards-lab panel for specs, artifact frames, and reference desks.
|
|
5
|
+
*/ import { OpenElement } from '@openelement/element';
|
|
6
|
+
import { StyleSheet } from '@openelement/core/style-sheet';
|
|
7
|
+
import { escapeHtml } from '@openelement/core';
|
|
8
|
+
export const tagName = 'open-lab-panel';
|
|
9
|
+
const sheet = new StyleSheet();
|
|
10
|
+
sheet.replaceSync(`
|
|
11
|
+
:host {
|
|
12
|
+
display: block;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.panel {
|
|
16
|
+
display: grid;
|
|
17
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
18
|
+
min-height: var(--panel-min-height, auto);
|
|
19
|
+
overflow: hidden;
|
|
20
|
+
border: var(--border-size-1) solid var(--border);
|
|
21
|
+
border-radius: var(--radius-3);
|
|
22
|
+
background:
|
|
23
|
+
linear-gradient(135deg, color-mix(in srgb, var(--violet-1) 18%, transparent), transparent 44%),
|
|
24
|
+
var(--bg-card);
|
|
25
|
+
color: var(--text-primary);
|
|
26
|
+
box-shadow: 0 var(--size-2) var(--size-8) color-mix(in srgb, var(--brand) 8%, transparent);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.panel--muted {
|
|
30
|
+
background: var(--bg-surface);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.panel--artifact,
|
|
34
|
+
.panel--code {
|
|
35
|
+
background: var(--bg-code, var(--gray-11));
|
|
36
|
+
color: var(--code-text);
|
|
37
|
+
border-color: var(--code-border, var(--gray-8));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.panel__bar {
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: space-between;
|
|
44
|
+
gap: var(--size-4);
|
|
45
|
+
min-height: var(--size-10);
|
|
46
|
+
padding: var(--size-2) var(--size-4);
|
|
47
|
+
border-bottom: var(--border-size-1) solid var(--border);
|
|
48
|
+
background: color-mix(in srgb, var(--bg-surface) 78%, transparent);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.panel--artifact .panel__bar,
|
|
52
|
+
.panel--code .panel__bar {
|
|
53
|
+
border-bottom-color: var(--code-border, var(--gray-8));
|
|
54
|
+
background: color-mix(in srgb, var(--gray-12) 8%, transparent);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.panel__label {
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: var(--size-2);
|
|
61
|
+
min-width: 0;
|
|
62
|
+
color: var(--text-muted);
|
|
63
|
+
font-family: var(--font-mono);
|
|
64
|
+
font-size: var(--font-size-00);
|
|
65
|
+
font-weight: var(--font-weight-8);
|
|
66
|
+
letter-spacing: 0;
|
|
67
|
+
text-transform: uppercase;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.panel--artifact .panel__label,
|
|
71
|
+
.panel--code .panel__label {
|
|
72
|
+
color: var(--gray-5);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.panel__dot {
|
|
76
|
+
width: var(--size-2);
|
|
77
|
+
height: var(--size-2);
|
|
78
|
+
border-radius: var(--radius-round);
|
|
79
|
+
background: var(--brand);
|
|
80
|
+
box-shadow:
|
|
81
|
+
calc(var(--size-3) * -1) 0 0 var(--warning),
|
|
82
|
+
var(--size-3) 0 0 var(--success);
|
|
83
|
+
margin-inline: var(--size-3) var(--size-2);
|
|
84
|
+
flex: 0 0 auto;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.panel__meta {
|
|
88
|
+
color: var(--text-muted);
|
|
89
|
+
font-family: var(--font-mono);
|
|
90
|
+
font-size: var(--font-size-00);
|
|
91
|
+
white-space: nowrap;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.panel--artifact .panel__meta,
|
|
95
|
+
.panel--code .panel__meta {
|
|
96
|
+
color: var(--gray-6);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.panel__body {
|
|
100
|
+
min-width: 0;
|
|
101
|
+
padding: var(--size-5);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
:host([compact]) .panel__body {
|
|
105
|
+
padding: var(--size-4);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
::slotted(*) {
|
|
109
|
+
margin-block-start: 0;
|
|
110
|
+
}
|
|
111
|
+
`);
|
|
112
|
+
export class OpenLabPanel extends OpenElement {
|
|
113
|
+
static styles = [
|
|
114
|
+
sheet
|
|
115
|
+
];
|
|
116
|
+
static observedAttributes = [
|
|
117
|
+
'variant',
|
|
118
|
+
'label',
|
|
119
|
+
'meta',
|
|
120
|
+
'compact'
|
|
121
|
+
];
|
|
122
|
+
render() {
|
|
123
|
+
const variant = this._getStr('variant', 'surface');
|
|
124
|
+
const label = this._getStr('label', '');
|
|
125
|
+
const meta = this._getStr('meta', '');
|
|
126
|
+
return <section className={`panel panel--${variant}`} part='container'>
|
|
127
|
+
{(label || meta) && <header className='panel__bar' part='header'>
|
|
128
|
+
<span className='panel__label'>
|
|
129
|
+
<span className='panel__dot' aria-hidden='true'></span>
|
|
130
|
+
{this._esc(label)}
|
|
131
|
+
</span>
|
|
132
|
+
{meta && <span className='panel__meta'>{this._esc(meta)}</span>}
|
|
133
|
+
</header>}
|
|
134
|
+
<div className='panel__body' part='body'>
|
|
135
|
+
<slot></slot>
|
|
136
|
+
</div>
|
|
137
|
+
</section>;
|
|
138
|
+
}
|
|
139
|
+
_esc = escapeHtml;
|
|
140
|
+
_getStr(attr, def) {
|
|
141
|
+
const camel = attr.replace(/-([a-z])/g, (_, c)=>c.toUpperCase());
|
|
142
|
+
const prop = this[camel] ?? this[attr];
|
|
143
|
+
if (prop !== undefined && prop !== null) return String(prop);
|
|
144
|
+
return this.getAttribute(attr) || def;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
export default OpenLabPanel;
|
|
148
|
+
if (typeof customElements !== 'undefined' && !customElements.get(tagName)) {
|
|
149
|
+
customElements.define(tagName, OpenLabPanel);
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZpbGU6Ly8vaG9tZS9ydW5uZXIvd29yay9vcGVuZWxlbWVudC9vcGVuZWxlbWVudC9wYWNrYWdlcy91aS9zcmMvb3Blbi1sYWItcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4SW1wb3J0U291cmNlIEBvcGVuZWxlbWVudC9jb3JlICovXG4vKipcbiAqIEBvcGVuZWxlbWVudC91aSAtIG9wZW4tbGFiLXBhbmVsXG4gKlxuICogU3RhbmRhcmRzLWxhYiBwYW5lbCBmb3Igc3BlY3MsIGFydGlmYWN0IGZyYW1lcywgYW5kIHJlZmVyZW5jZSBkZXNrcy5cbiAqL1xuXG5pbXBvcnQgeyBPcGVuRWxlbWVudCB9IGZyb20gJ0BvcGVuZWxlbWVudC9lbGVtZW50JztcbmltcG9ydCB7IFN0eWxlU2hlZXQsIHR5cGUgU3R5bGVTaGVldExpa2UgfSBmcm9tICdAb3BlbmVsZW1lbnQvY29yZS9zdHlsZS1zaGVldCc7XG5pbXBvcnQgeyBlc2NhcGVIdG1sIH0gZnJvbSAnQG9wZW5lbGVtZW50L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgdGFnTmFtZSA9ICdvcGVuLWxhYi1wYW5lbCc7XG5cbmNvbnN0IHNoZWV0OiBTdHlsZVNoZWV0TGlrZSA9IG5ldyBTdHlsZVNoZWV0KCk7XG5zaGVldC5yZXBsYWNlU3luYyhgXG4gIDpob3N0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIC5wYW5lbCB7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG8gbWlubWF4KDAsIDFmcik7XG4gICAgbWluLWhlaWdodDogdmFyKC0tcGFuZWwtbWluLWhlaWdodCwgYXV0byk7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXI6IHZhcigtLWJvcmRlci1zaXplLTEpIHNvbGlkIHZhcigtLWJvcmRlcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLTMpO1xuICAgIGJhY2tncm91bmQ6XG4gICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tdmlvbGV0LTEpIDE4JSwgdHJhbnNwYXJlbnQpLCB0cmFuc3BhcmVudCA0NCUpLFxuICAgICAgdmFyKC0tYmctY2FyZCk7XG4gICAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XG4gICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLTIpIHZhcigtLXNpemUtOCkgY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWJyYW5kKSA4JSwgdHJhbnNwYXJlbnQpO1xuICB9XG5cbiAgLnBhbmVsLS1tdXRlZCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmctc3VyZmFjZSk7XG4gIH1cblxuICAucGFuZWwtLWFydGlmYWN0LFxuICAucGFuZWwtLWNvZGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWJnLWNvZGUsIHZhcigtLWdyYXktMTEpKTtcbiAgICBjb2xvcjogdmFyKC0tY29kZS10ZXh0KTtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvZGUtYm9yZGVyLCB2YXIoLS1ncmF5LTgpKTtcbiAgfVxuXG4gIC5wYW5lbF9fYmFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogdmFyKC0tc2l6ZS00KTtcbiAgICBtaW4taGVpZ2h0OiB2YXIoLS1zaXplLTEwKTtcbiAgICBwYWRkaW5nOiB2YXIoLS1zaXplLTIpIHZhcigtLXNpemUtNCk7XG4gICAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXNpemUtMSkgc29saWQgdmFyKC0tYm9yZGVyKTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tYmctc3VyZmFjZSkgNzglLCB0cmFuc3BhcmVudCk7XG4gIH1cblxuICAucGFuZWwtLWFydGlmYWN0IC5wYW5lbF9fYmFyLFxuICAucGFuZWwtLWNvZGUgLnBhbmVsX19iYXIge1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHZhcigtLWNvZGUtYm9yZGVyLCB2YXIoLS1ncmF5LTgpKTtcbiAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tZ3JheS0xMikgOCUsIHRyYW5zcGFyZW50KTtcbiAgfVxuXG4gIC5wYW5lbF9fbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiB2YXIoLS1zaXplLTIpO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMDApO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC04KTtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICB9XG5cbiAgLnBhbmVsLS1hcnRpZmFjdCAucGFuZWxfX2xhYmVsLFxuICAucGFuZWwtLWNvZGUgLnBhbmVsX19sYWJlbCB7XG4gICAgY29sb3I6IHZhcigtLWdyYXktNSk7XG4gIH1cblxuICAucGFuZWxfX2RvdCB7XG4gICAgd2lkdGg6IHZhcigtLXNpemUtMik7XG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1yb3VuZCk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYnJhbmQpO1xuICAgIGJveC1zaGFkb3c6XG4gICAgICBjYWxjKHZhcigtLXNpemUtMykgKiAtMSkgMCAwIHZhcigtLXdhcm5pbmcpLFxuICAgICAgdmFyKC0tc2l6ZS0zKSAwIDAgdmFyKC0tc3VjY2Vzcyk7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2l6ZS0zKSB2YXIoLS1zaXplLTIpO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICB9XG5cbiAgLnBhbmVsX19tZXRhIHtcbiAgICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ubyk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMDApO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIH1cblxuICAucGFuZWwtLWFydGlmYWN0IC5wYW5lbF9fbWV0YSxcbiAgLnBhbmVsLS1jb2RlIC5wYW5lbF9fbWV0YSB7XG4gICAgY29sb3I6IHZhcigtLWdyYXktNik7XG4gIH1cblxuICAucGFuZWxfX2JvZHkge1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBwYWRkaW5nOiB2YXIoLS1zaXplLTUpO1xuICB9XG5cbiAgOmhvc3QoW2NvbXBhY3RdKSAucGFuZWxfX2JvZHkge1xuICAgIHBhZGRpbmc6IHZhcigtLXNpemUtNCk7XG4gIH1cblxuICA6OnNsb3R0ZWQoKikge1xuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcbiAgfVxuYCk7XG5cbmV4cG9ydCBjbGFzcyBPcGVuTGFiUGFuZWwgZXh0ZW5kcyBPcGVuRWxlbWVudCB7XG4gIHN0YXRpYyBvdmVycmlkZSBzdHlsZXMgPSBbc2hlZXRdO1xuICBzdGF0aWMgb3ZlcnJpZGUgb2JzZXJ2ZWRBdHRyaWJ1dGVzID0gWyd2YXJpYW50JywgJ2xhYmVsJywgJ21ldGEnLCAnY29tcGFjdCddO1xuXG4gIG92ZXJyaWRlIHJlbmRlcigpOiBSZXR1cm5UeXBlPHR5cGVvZiBPcGVuRWxlbWVudC5wcm90b3R5cGUucmVuZGVyPiB7XG4gICAgY29uc3QgdmFyaWFudCA9IHRoaXMuX2dldFN0cigndmFyaWFudCcsICdzdXJmYWNlJyk7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLl9nZXRTdHIoJ2xhYmVsJywgJycpO1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLl9nZXRTdHIoJ21ldGEnLCAnJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPXtgcGFuZWwgcGFuZWwtLSR7dmFyaWFudH1gfSBwYXJ0PSdjb250YWluZXInPlxuICAgICAgICB7KGxhYmVsIHx8IG1ldGEpICYmIChcbiAgICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT0ncGFuZWxfX2JhcicgcGFydD0naGVhZGVyJz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0ncGFuZWxfX2xhYmVsJz5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdwYW5lbF9fZG90JyBhcmlhLWhpZGRlbj0ndHJ1ZSc+PC9zcGFuPlxuICAgICAgICAgICAgICB7dGhpcy5fZXNjKGxhYmVsKX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIHttZXRhICYmIDxzcGFuIGNsYXNzTmFtZT0ncGFuZWxfX21ldGEnPnt0aGlzLl9lc2MobWV0YSl9PC9zcGFuPn1cbiAgICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgKX1cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J3BhbmVsX19ib2R5JyBwYXJ0PSdib2R5Jz5cbiAgICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9zZWN0aW9uPlxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9lc2MgPSBlc2NhcGVIdG1sO1xuXG4gIHByaXZhdGUgX2dldFN0cihhdHRyOiBzdHJpbmcsIGRlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYW1lbCA9IGF0dHIucmVwbGFjZSgvLShbYS16XSkvZywgKF8sIGM6IHN0cmluZykgPT4gYy50b1VwcGVyQ2FzZSgpKTtcbiAgICBjb25zdCBwcm9wID0gKHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2NhbWVsXSA/P1xuICAgICAgKHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2F0dHJdO1xuICAgIGlmIChwcm9wICE9PSB1bmRlZmluZWQgJiYgcHJvcCAhPT0gbnVsbCkgcmV0dXJuIFN0cmluZyhwcm9wKTtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoYXR0cikgfHwgZGVmO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9wZW5MYWJQYW5lbDtcblxuaWYgKHR5cGVvZiBjdXN0b21FbGVtZW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgIWN1c3RvbUVsZW1lbnRzLmdldCh0YWdOYW1lKSkge1xuICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGFnTmFtZSwgT3BlbkxhYlBhbmVsKTtcbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUMsR0FDdkM7Ozs7Q0FJQyxHQUVELFNBQVMsV0FBVyxRQUFRLHVCQUF1QjtBQUNuRCxTQUFTLFVBQVUsUUFBNkIsZ0NBQWdDO0FBQ2hGLFNBQVMsVUFBVSxRQUFRLG9CQUFvQjtBQUUvQyxPQUFPLE1BQU0sVUFBVSxpQkFBaUI7QUFFeEMsTUFBTSxRQUF3QixJQUFJO0FBQ2xDLE1BQU0sV0FBVyxDQUFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUduQixDQUFDO0FBRUQsT0FBTyxNQUFNLHFCQUFxQjtFQUNoQyxPQUFnQixTQUFTO0lBQUM7R0FBTSxDQUFDO0VBQ2pDLE9BQWdCLHFCQUFxQjtJQUFDO0lBQVc7SUFBUztJQUFRO0dBQVUsQ0FBQztFQUVwRSxTQUEwRDtJQUNqRSxNQUFNLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO0lBQ3hDLE1BQU0sUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVM7SUFDcEMsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtJQUVsQyxRQUNHLFFBQVEsV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxZQUFZO1FBQzlELENBQUMsQ0FBQyxTQUFTLElBQUksTUFDWixPQUFPLFVBQVUsYUFBYSxLQUFLLFNBQVM7WUFDM0MsQ0FBQyxLQUFLLFVBQVUsZUFBZTtjQUM3QixDQUFDLEtBQUssVUFBVSxhQUFhLFlBQVksU0FBUyxLQUFLO2NBQ3ZELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsS0FBSztZQUNQLENBQUMsU0FBUyxLQUFLLFVBQVUsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsTUFBTTtVQUNsRSxFQUFFLFFBQ0Y7UUFDRixDQUFDLElBQUksVUFBVSxjQUFjLEtBQUssT0FBTztVQUN2QyxDQUFDLE9BQU8sS0FBSztRQUNmLEVBQUUsSUFBSTtNQUNSLEVBQUU7RUFFTjtFQUVRLE9BQU8sV0FBVztFQUVsQixRQUFRLElBQVksRUFBRSxHQUFXLEVBQVU7SUFDakQsTUFBTSxRQUFRLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQWMsRUFBRSxXQUFXO0lBQ3ZFLE1BQU0sT0FBTyxBQUFDLElBQUksQUFBNEIsQ0FBQyxNQUFNLElBQ25ELEFBQUMsSUFBSSxBQUE0QixDQUFDLEtBQUs7SUFDekMsSUFBSSxTQUFTLGFBQWEsU0FBUyxNQUFNLE9BQU8sT0FBTztJQUN2RCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztFQUNwQztBQUNGO0FBRUEsZUFBZSxhQUFhO0FBRTVCLElBQUksT0FBTyxtQkFBbUIsZUFBZSxDQUFDLGVBQWUsR0FBRyxDQUFDLFVBQVU7RUFDekUsZUFBZSxNQUFNLENBQUMsU0FBUztBQUNqQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @jsxImportSource @openelement/core */ /**
|
|
2
|
+
* @openelement/ui - open-lab-stage
|
|
3
|
+
*
|
|
4
|
+
* Kinetic standards-lab hero primitive for product-art landing pages.
|
|
5
|
+
*/ import { OpenElement } from '@openelement/element';
|
|
6
|
+
import { type StyleSheetLike } from '@openelement/core/style-sheet';
|
|
7
|
+
export declare const tagName: 'open-lab-stage';
|
|
8
|
+
declare const sheet: StyleSheetLike;
|
|
9
|
+
export declare class OpenLabStage extends OpenElement {
|
|
10
|
+
static override styles: [];
|
|
11
|
+
static override observedAttributes: [string, string];
|
|
12
|
+
override render(): ReturnType<typeof OpenElement.prototype.render>;
|
|
13
|
+
private _getStr: any;
|
|
14
|
+
}
|
|
15
|
+
export default OpenLabStage;
|