@duskmoon-dev/el-core 0.1.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.
- package/README.md +137 -0
- package/dist/cjs/index.js +298 -0
- package/dist/cjs/index.js.map +11 -0
- package/dist/esm/index.js +266 -0
- package/dist/esm/index.js.map +11 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/base-element.d.ts +142 -0
- package/dist/types/base-element.d.ts.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/styles.d.ts +54 -0
- package/dist/types/styles.d.ts.map +1 -0
- package/dist/types/types.d.ts +83 -0
- package/dist/types/types.d.ts.map +1 -0
- package/package.json +42 -0
package/README.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# @duskmoon-dev/el-core
|
|
2
|
+
|
|
3
|
+
Core utilities and base classes for DuskMoon custom elements.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
bun add @duskmoon-dev/el-core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### BaseElement
|
|
14
|
+
|
|
15
|
+
The `BaseElement` class provides a foundation for creating custom elements with:
|
|
16
|
+
|
|
17
|
+
- Shadow DOM setup with adoptedStyleSheets
|
|
18
|
+
- Reactive properties with attribute reflection
|
|
19
|
+
- Style injection utilities
|
|
20
|
+
- Common lifecycle methods
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import { BaseElement, css } from '@duskmoon-dev/el-core';
|
|
24
|
+
|
|
25
|
+
const styles = css`
|
|
26
|
+
:host {
|
|
27
|
+
display: block;
|
|
28
|
+
}
|
|
29
|
+
.greeting {
|
|
30
|
+
color: var(--dm-primary);
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
class MyGreeting extends BaseElement {
|
|
35
|
+
static properties = {
|
|
36
|
+
name: { type: String, reflect: true, default: 'World' },
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
declare name: string;
|
|
40
|
+
|
|
41
|
+
constructor() {
|
|
42
|
+
super();
|
|
43
|
+
this.attachStyles(styles);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
render() {
|
|
47
|
+
return `<div class="greeting">Hello, ${this.name}!</div>`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
customElements.define('my-greeting', MyGreeting);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### CSS Utilities
|
|
55
|
+
|
|
56
|
+
#### `css` Template Tag
|
|
57
|
+
|
|
58
|
+
Creates a `CSSStyleSheet` from a template literal:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { css } from '@duskmoon-dev/el-core';
|
|
62
|
+
|
|
63
|
+
const styles = css`
|
|
64
|
+
:host {
|
|
65
|
+
display: inline-flex;
|
|
66
|
+
}
|
|
67
|
+
button {
|
|
68
|
+
padding: 0.5rem 1rem;
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### `combineStyles`
|
|
74
|
+
|
|
75
|
+
Combines multiple stylesheets:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { combineStyles } from '@duskmoon-dev/el-core';
|
|
79
|
+
|
|
80
|
+
const combinedStyles = combineStyles(baseStyles, themeStyles, componentStyles);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### `cssVars`
|
|
84
|
+
|
|
85
|
+
Creates CSS custom property declarations:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { cssVars } from '@duskmoon-dev/el-core';
|
|
89
|
+
|
|
90
|
+
const vars = cssVars({
|
|
91
|
+
'dm-primary': '#3b82f6',
|
|
92
|
+
'dm-spacing': '1rem',
|
|
93
|
+
});
|
|
94
|
+
// Returns: '--dm-primary: #3b82f6; --dm-spacing: 1rem;'
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Default Theme
|
|
98
|
+
|
|
99
|
+
The package includes default CSS custom properties for theming:
|
|
100
|
+
|
|
101
|
+
- Colors: `--dm-primary`, `--dm-secondary`, `--dm-success`, `--dm-warning`, `--dm-error`
|
|
102
|
+
- Grays: `--dm-gray-50` through `--dm-gray-900`
|
|
103
|
+
- Typography: `--dm-font-family`, `--dm-font-size-*`, `--dm-font-weight-*`
|
|
104
|
+
- Spacing: `--dm-spacing-xs` through `--dm-spacing-xl`
|
|
105
|
+
- Border Radius: `--dm-radius-sm` through `--dm-radius-full`
|
|
106
|
+
- Shadows: `--dm-shadow-sm`, `--dm-shadow-md`, `--dm-shadow-lg`
|
|
107
|
+
- Transitions: `--dm-transition-fast`, `--dm-transition-normal`, `--dm-transition-slow`
|
|
108
|
+
|
|
109
|
+
## API
|
|
110
|
+
|
|
111
|
+
### BaseElement
|
|
112
|
+
|
|
113
|
+
| Method | Description |
|
|
114
|
+
| ---------------------- | --------------------------------- |
|
|
115
|
+
| `attachStyles(styles)` | Attach stylesheets to Shadow DOM |
|
|
116
|
+
| `render()` | Override to return HTML content |
|
|
117
|
+
| `update()` | Called when element should update |
|
|
118
|
+
| `emit(name, detail?)` | Emit a custom event |
|
|
119
|
+
| `query(selector)` | Query element in Shadow DOM |
|
|
120
|
+
| `queryAll(selector)` | Query all elements in Shadow DOM |
|
|
121
|
+
|
|
122
|
+
### Property Definitions
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
static properties = {
|
|
126
|
+
myProp: {
|
|
127
|
+
type: String, // String, Number, Boolean, Object, Array
|
|
128
|
+
reflect: true, // Reflect to attribute
|
|
129
|
+
attribute: 'my-prop', // Custom attribute name
|
|
130
|
+
default: 'value' // Default value
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## License
|
|
136
|
+
|
|
137
|
+
MIT
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __moduleCache = /* @__PURE__ */ new WeakMap;
|
|
6
|
+
var __toCommonJS = (from) => {
|
|
7
|
+
var entry = __moduleCache.get(from), desc;
|
|
8
|
+
if (entry)
|
|
9
|
+
return entry;
|
|
10
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function")
|
|
12
|
+
__getOwnPropNames(from).map((key) => !__hasOwnProp.call(entry, key) && __defProp(entry, key, {
|
|
13
|
+
get: () => from[key],
|
|
14
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
|
+
}));
|
|
16
|
+
__moduleCache.set(from, entry);
|
|
17
|
+
return entry;
|
|
18
|
+
};
|
|
19
|
+
var __export = (target, all) => {
|
|
20
|
+
for (var name in all)
|
|
21
|
+
__defProp(target, name, {
|
|
22
|
+
get: all[name],
|
|
23
|
+
enumerable: true,
|
|
24
|
+
configurable: true,
|
|
25
|
+
set: (newValue) => all[name] = () => newValue
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// src/index.ts
|
|
30
|
+
var exports_src = {};
|
|
31
|
+
__export(exports_src, {
|
|
32
|
+
resetStyles: () => resetStyles,
|
|
33
|
+
defaultTheme: () => defaultTheme,
|
|
34
|
+
cssVars: () => cssVars,
|
|
35
|
+
css: () => css,
|
|
36
|
+
combineStyles: () => combineStyles,
|
|
37
|
+
BaseElement: () => BaseElement
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(exports_src);
|
|
40
|
+
|
|
41
|
+
// src/styles.ts
|
|
42
|
+
var styleSheetCache = new WeakMap;
|
|
43
|
+
function css(strings, ...values) {
|
|
44
|
+
const cached = styleSheetCache.get(strings);
|
|
45
|
+
if (cached && values.length === 0) {
|
|
46
|
+
return cached;
|
|
47
|
+
}
|
|
48
|
+
let cssText = strings[0];
|
|
49
|
+
for (let i = 0;i < values.length; i++) {
|
|
50
|
+
cssText += String(values[i]) + strings[i + 1];
|
|
51
|
+
}
|
|
52
|
+
const sheet = new CSSStyleSheet;
|
|
53
|
+
sheet.replaceSync(cssText);
|
|
54
|
+
if (values.length === 0) {
|
|
55
|
+
styleSheetCache.set(strings, sheet);
|
|
56
|
+
}
|
|
57
|
+
return sheet;
|
|
58
|
+
}
|
|
59
|
+
function combineStyles(...sheets) {
|
|
60
|
+
return sheets;
|
|
61
|
+
}
|
|
62
|
+
function cssVars(vars) {
|
|
63
|
+
return Object.entries(vars).map(([key, value]) => `--${key}: ${value}`).join("; ");
|
|
64
|
+
}
|
|
65
|
+
var defaultTheme = css`
|
|
66
|
+
:host {
|
|
67
|
+
/* Colors */
|
|
68
|
+
--dm-primary: #3b82f6;
|
|
69
|
+
--dm-primary-hover: #2563eb;
|
|
70
|
+
--dm-primary-active: #1d4ed8;
|
|
71
|
+
--dm-secondary: #6b7280;
|
|
72
|
+
--dm-secondary-hover: #4b5563;
|
|
73
|
+
--dm-secondary-active: #374151;
|
|
74
|
+
--dm-success: #22c55e;
|
|
75
|
+
--dm-warning: #f59e0b;
|
|
76
|
+
--dm-error: #ef4444;
|
|
77
|
+
--dm-info: #3b82f6;
|
|
78
|
+
|
|
79
|
+
/* Neutrals */
|
|
80
|
+
--dm-gray-50: #f9fafb;
|
|
81
|
+
--dm-gray-100: #f3f4f6;
|
|
82
|
+
--dm-gray-200: #e5e7eb;
|
|
83
|
+
--dm-gray-300: #d1d5db;
|
|
84
|
+
--dm-gray-400: #9ca3af;
|
|
85
|
+
--dm-gray-500: #6b7280;
|
|
86
|
+
--dm-gray-600: #4b5563;
|
|
87
|
+
--dm-gray-700: #374151;
|
|
88
|
+
--dm-gray-800: #1f2937;
|
|
89
|
+
--dm-gray-900: #111827;
|
|
90
|
+
|
|
91
|
+
/* Typography */
|
|
92
|
+
--dm-font-family: system-ui, -apple-system, sans-serif;
|
|
93
|
+
--dm-font-size-xs: 0.75rem;
|
|
94
|
+
--dm-font-size-sm: 0.875rem;
|
|
95
|
+
--dm-font-size-md: 1rem;
|
|
96
|
+
--dm-font-size-lg: 1.125rem;
|
|
97
|
+
--dm-font-size-xl: 1.25rem;
|
|
98
|
+
--dm-font-weight-normal: 400;
|
|
99
|
+
--dm-font-weight-medium: 500;
|
|
100
|
+
--dm-font-weight-semibold: 600;
|
|
101
|
+
--dm-font-weight-bold: 700;
|
|
102
|
+
|
|
103
|
+
/* Spacing */
|
|
104
|
+
--dm-spacing-xs: 0.25rem;
|
|
105
|
+
--dm-spacing-sm: 0.5rem;
|
|
106
|
+
--dm-spacing-md: 1rem;
|
|
107
|
+
--dm-spacing-lg: 1.5rem;
|
|
108
|
+
--dm-spacing-xl: 2rem;
|
|
109
|
+
|
|
110
|
+
/* Border Radius */
|
|
111
|
+
--dm-radius-sm: 0.25rem;
|
|
112
|
+
--dm-radius-md: 0.5rem;
|
|
113
|
+
--dm-radius-lg: 0.75rem;
|
|
114
|
+
--dm-radius-xl: 1rem;
|
|
115
|
+
--dm-radius-full: 9999px;
|
|
116
|
+
|
|
117
|
+
/* Shadows */
|
|
118
|
+
--dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
119
|
+
--dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
|
120
|
+
--dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
|
121
|
+
|
|
122
|
+
/* Transitions */
|
|
123
|
+
--dm-transition-fast: 150ms ease;
|
|
124
|
+
--dm-transition-normal: 200ms ease;
|
|
125
|
+
--dm-transition-slow: 300ms ease;
|
|
126
|
+
|
|
127
|
+
/* Focus */
|
|
128
|
+
--dm-focus-ring: 0 0 0 2px var(--dm-primary);
|
|
129
|
+
--dm-focus-ring-offset: 0 0 0 2px white, 0 0 0 4px var(--dm-primary);
|
|
130
|
+
}
|
|
131
|
+
`;
|
|
132
|
+
var resetStyles = css`
|
|
133
|
+
*,
|
|
134
|
+
*::before,
|
|
135
|
+
*::after {
|
|
136
|
+
box-sizing: border-box;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
:host {
|
|
140
|
+
font-family: var(--dm-font-family, system-ui, -apple-system, sans-serif);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
:host([hidden]) {
|
|
144
|
+
display: none !important;
|
|
145
|
+
}
|
|
146
|
+
`;
|
|
147
|
+
|
|
148
|
+
// src/base-element.ts
|
|
149
|
+
class BaseElement extends HTMLElement {
|
|
150
|
+
static properties = {};
|
|
151
|
+
static get observedAttributes() {
|
|
152
|
+
return Object.entries(this.properties).filter(([, def]) => def.attribute !== false).map(([name, def]) => def.attribute || toKebabCase(name));
|
|
153
|
+
}
|
|
154
|
+
_styles = [];
|
|
155
|
+
_isConnected = false;
|
|
156
|
+
_pendingUpdate = false;
|
|
157
|
+
_propertyValues = new Map;
|
|
158
|
+
constructor() {
|
|
159
|
+
super();
|
|
160
|
+
this.attachShadow({ mode: "open" });
|
|
161
|
+
this._styles = [resetStyles, defaultTheme];
|
|
162
|
+
this.shadowRoot.adoptedStyleSheets = this._styles;
|
|
163
|
+
this._initializeProperties();
|
|
164
|
+
}
|
|
165
|
+
_initializeProperties() {
|
|
166
|
+
const ctor = this.constructor;
|
|
167
|
+
const properties = ctor.properties;
|
|
168
|
+
for (const [name, def] of Object.entries(properties)) {
|
|
169
|
+
if (def.default !== undefined) {
|
|
170
|
+
this._propertyValues.set(name, def.default);
|
|
171
|
+
}
|
|
172
|
+
Object.defineProperty(this, name, {
|
|
173
|
+
get: () => this._propertyValues.get(name),
|
|
174
|
+
set: (value) => {
|
|
175
|
+
const oldValue = this._propertyValues.get(name);
|
|
176
|
+
if (oldValue === value)
|
|
177
|
+
return;
|
|
178
|
+
this._propertyValues.set(name, value);
|
|
179
|
+
if (def.reflect && def.attribute !== false) {
|
|
180
|
+
const attrName = def.attribute || toKebabCase(name);
|
|
181
|
+
this._reflectToAttribute(attrName, value, def.type);
|
|
182
|
+
}
|
|
183
|
+
this._scheduleUpdate();
|
|
184
|
+
},
|
|
185
|
+
enumerable: true,
|
|
186
|
+
configurable: true
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
_reflectToAttribute(attrName, value, type) {
|
|
191
|
+
if (value === null || value === undefined) {
|
|
192
|
+
this.removeAttribute(attrName);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (type === Boolean) {
|
|
196
|
+
if (value) {
|
|
197
|
+
this.setAttribute(attrName, "");
|
|
198
|
+
} else {
|
|
199
|
+
this.removeAttribute(attrName);
|
|
200
|
+
}
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (type === Object || type === Array) {
|
|
204
|
+
this.setAttribute(attrName, JSON.stringify(value));
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
this.setAttribute(attrName, String(value));
|
|
208
|
+
}
|
|
209
|
+
_attributeToProperty(value, type) {
|
|
210
|
+
if (value === null) {
|
|
211
|
+
return type === Boolean ? false : undefined;
|
|
212
|
+
}
|
|
213
|
+
switch (type) {
|
|
214
|
+
case Boolean:
|
|
215
|
+
return true;
|
|
216
|
+
case Number:
|
|
217
|
+
return Number(value);
|
|
218
|
+
case Object:
|
|
219
|
+
case Array:
|
|
220
|
+
try {
|
|
221
|
+
return JSON.parse(value);
|
|
222
|
+
} catch {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
default:
|
|
226
|
+
return value;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
_scheduleUpdate() {
|
|
230
|
+
if (this._pendingUpdate)
|
|
231
|
+
return;
|
|
232
|
+
this._pendingUpdate = true;
|
|
233
|
+
queueMicrotask(() => {
|
|
234
|
+
this._pendingUpdate = false;
|
|
235
|
+
if (this._isConnected) {
|
|
236
|
+
this.update();
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
attachStyles(styles) {
|
|
241
|
+
const sheets = Array.isArray(styles) ? styles : [styles];
|
|
242
|
+
this._styles = [...this._styles, ...sheets];
|
|
243
|
+
this.shadowRoot.adoptedStyleSheets = this._styles;
|
|
244
|
+
}
|
|
245
|
+
connectedCallback() {
|
|
246
|
+
this._isConnected = true;
|
|
247
|
+
this.update();
|
|
248
|
+
}
|
|
249
|
+
disconnectedCallback() {
|
|
250
|
+
this._isConnected = false;
|
|
251
|
+
}
|
|
252
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
253
|
+
if (oldValue === newValue)
|
|
254
|
+
return;
|
|
255
|
+
const ctor = this.constructor;
|
|
256
|
+
const properties = ctor.properties;
|
|
257
|
+
for (const [propName, def] of Object.entries(properties)) {
|
|
258
|
+
const attrName = def.attribute || toKebabCase(propName);
|
|
259
|
+
if (attrName === name) {
|
|
260
|
+
const value = this._attributeToProperty(newValue, def.type);
|
|
261
|
+
this._propertyValues.set(propName, value);
|
|
262
|
+
this._scheduleUpdate();
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
update() {
|
|
268
|
+
const content = this.render();
|
|
269
|
+
if (content !== undefined) {
|
|
270
|
+
this.shadowRoot.innerHTML = content;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
render() {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
emit(name, detail, options) {
|
|
277
|
+
const event = new CustomEvent(name, {
|
|
278
|
+
bubbles: true,
|
|
279
|
+
composed: true,
|
|
280
|
+
cancelable: true,
|
|
281
|
+
...options,
|
|
282
|
+
detail
|
|
283
|
+
});
|
|
284
|
+
return this.dispatchEvent(event);
|
|
285
|
+
}
|
|
286
|
+
query(selector) {
|
|
287
|
+
return this.shadowRoot.querySelector(selector);
|
|
288
|
+
}
|
|
289
|
+
queryAll(selector) {
|
|
290
|
+
return this.shadowRoot.querySelectorAll(selector);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
function toKebabCase(str) {
|
|
294
|
+
return str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
//# debugId=97B7DA3023EBE86C64756E2164756E21
|
|
298
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/styles.ts", "../../src/base-element.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * CSS-in-JS utilities for constructable stylesheets\n */\n\n/**\n * Cache for constructed stylesheets\n */\nconst styleSheetCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * Creates a CSSStyleSheet from a template literal\n * Results are cached for performance\n *\n * @example\n * ```ts\n * const styles = css`\n * :host {\n * display: block;\n * }\n * `;\n * ```\n *\n * @param strings - Template literal strings\n * @param values - Interpolated values\n * @returns A CSSStyleSheet instance\n */\nexport function css(strings: TemplateStringsArray, ...values: (string | number)[]): CSSStyleSheet {\n // Check cache first\n const cached = styleSheetCache.get(strings);\n if (cached && values.length === 0) {\n return cached;\n }\n\n // Construct the CSS string\n let cssText = strings[0];\n for (let i = 0; i < values.length; i++) {\n cssText += String(values[i]) + strings[i + 1];\n }\n\n // Create and cache the stylesheet\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(cssText);\n\n // Only cache if there are no dynamic values\n if (values.length === 0) {\n styleSheetCache.set(strings, sheet);\n }\n\n return sheet;\n}\n\n/**\n * Combines multiple CSSStyleSheet instances into an array\n * Useful for composing styles from multiple sources\n *\n * @param sheets - Stylesheets to combine\n * @returns Array of stylesheets\n */\nexport function combineStyles(...sheets: CSSStyleSheet[]): CSSStyleSheet[] {\n return sheets;\n}\n\n/**\n * Creates CSS custom property declarations from an object\n *\n * @example\n * ```ts\n * const vars = cssVars({\n * 'dm-primary': '#3b82f6',\n * 'dm-spacing': '1rem'\n * });\n * // Returns: '--dm-primary: #3b82f6; --dm-spacing: 1rem;'\n * ```\n *\n * @param vars - Object of variable names to values\n * @returns CSS custom property declarations string\n */\nexport function cssVars(vars: Record<string, string | number>): string {\n return Object.entries(vars)\n .map(([key, value]) => `--${key}: ${value}`)\n .join('; ');\n}\n\n/**\n * Default theme CSS custom properties\n */\nexport const defaultTheme = css`\n :host {\n /* Colors */\n --dm-primary: #3b82f6;\n --dm-primary-hover: #2563eb;\n --dm-primary-active: #1d4ed8;\n --dm-secondary: #6b7280;\n --dm-secondary-hover: #4b5563;\n --dm-secondary-active: #374151;\n --dm-success: #22c55e;\n --dm-warning: #f59e0b;\n --dm-error: #ef4444;\n --dm-info: #3b82f6;\n\n /* Neutrals */\n --dm-gray-50: #f9fafb;\n --dm-gray-100: #f3f4f6;\n --dm-gray-200: #e5e7eb;\n --dm-gray-300: #d1d5db;\n --dm-gray-400: #9ca3af;\n --dm-gray-500: #6b7280;\n --dm-gray-600: #4b5563;\n --dm-gray-700: #374151;\n --dm-gray-800: #1f2937;\n --dm-gray-900: #111827;\n\n /* Typography */\n --dm-font-family: system-ui, -apple-system, sans-serif;\n --dm-font-size-xs: 0.75rem;\n --dm-font-size-sm: 0.875rem;\n --dm-font-size-md: 1rem;\n --dm-font-size-lg: 1.125rem;\n --dm-font-size-xl: 1.25rem;\n --dm-font-weight-normal: 400;\n --dm-font-weight-medium: 500;\n --dm-font-weight-semibold: 600;\n --dm-font-weight-bold: 700;\n\n /* Spacing */\n --dm-spacing-xs: 0.25rem;\n --dm-spacing-sm: 0.5rem;\n --dm-spacing-md: 1rem;\n --dm-spacing-lg: 1.5rem;\n --dm-spacing-xl: 2rem;\n\n /* Border Radius */\n --dm-radius-sm: 0.25rem;\n --dm-radius-md: 0.5rem;\n --dm-radius-lg: 0.75rem;\n --dm-radius-xl: 1rem;\n --dm-radius-full: 9999px;\n\n /* Shadows */\n --dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);\n --dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);\n\n /* Transitions */\n --dm-transition-fast: 150ms ease;\n --dm-transition-normal: 200ms ease;\n --dm-transition-slow: 300ms ease;\n\n /* Focus */\n --dm-focus-ring: 0 0 0 2px var(--dm-primary);\n --dm-focus-ring-offset: 0 0 0 2px white, 0 0 0 4px var(--dm-primary);\n }\n`;\n\n/**\n * Reset styles for Shadow DOM elements\n */\nexport const resetStyles = css`\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n font-family: var(--dm-font-family, system-ui, -apple-system, sans-serif);\n }\n\n :host([hidden]) {\n display: none !important;\n }\n`;\n",
|
|
6
|
+
"/**\n * Base class for all DuskMoon custom elements\n */\n\nimport { resetStyles, defaultTheme } from './styles.js';\n\n/**\n * Property definition for reactive properties\n */\nexport interface PropertyDefinition {\n /** Attribute name (defaults to kebab-case of property name) */\n attribute?: string | false;\n /** Whether changes should reflect to attribute */\n reflect?: boolean;\n /** Property type for conversion */\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array;\n /** Default value */\n default?: unknown;\n}\n\n/**\n * Map of property names to their definitions\n */\nexport type PropertyDefinitions = Record<string, PropertyDefinition>;\n\n/**\n * Base class for all DuskMoon custom elements\n *\n * Provides:\n * - Shadow DOM setup with adoptedStyleSheets\n * - Reactive properties with attribute reflection\n * - Style injection utilities\n * - Common lifecycle methods\n *\n * @example\n * ```ts\n * class MyElement extends BaseElement {\n * static properties = {\n * name: { type: String, reflect: true }\n * };\n *\n * constructor() {\n * super();\n * this.attachStyles(myStyles);\n * }\n *\n * render() {\n * return `<div>Hello, ${this.name}!</div>`;\n * }\n * }\n * ```\n */\nexport abstract class BaseElement extends HTMLElement {\n /**\n * Property definitions for reactive properties\n * Override in subclasses to define properties\n */\n static properties: PropertyDefinitions = {};\n\n /**\n * Observed attributes derived from property definitions\n */\n static get observedAttributes(): string[] {\n return Object.entries(this.properties)\n .filter(([, def]) => def.attribute !== false)\n .map(([name, def]) => def.attribute || toKebabCase(name));\n }\n\n /**\n * Shadow root for the element\n */\n declare shadowRoot: ShadowRoot;\n\n /**\n * Stylesheets attached to this element\n */\n private _styles: CSSStyleSheet[] = [];\n\n /**\n * Whether the element has been connected to the DOM\n */\n private _isConnected = false;\n\n /**\n * Queue of pending property updates\n */\n private _pendingUpdate = false;\n\n /**\n * Internal property values storage\n */\n private _propertyValues = new Map<string, unknown>();\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n\n // Apply default styles\n this._styles = [resetStyles, defaultTheme];\n this.shadowRoot.adoptedStyleSheets = this._styles;\n\n // Initialize properties\n this._initializeProperties();\n }\n\n /**\n * Initialize reactive properties from static definitions\n */\n private _initializeProperties(): void {\n const ctor = this.constructor as typeof BaseElement;\n const properties = ctor.properties;\n\n for (const [name, def] of Object.entries(properties)) {\n // Set default value\n if (def.default !== undefined) {\n this._propertyValues.set(name, def.default);\n }\n\n // Define property accessor\n Object.defineProperty(this, name, {\n get: () => this._propertyValues.get(name),\n set: (value: unknown) => {\n const oldValue = this._propertyValues.get(name);\n if (oldValue === value) return;\n\n this._propertyValues.set(name, value);\n\n // Reflect to attribute if needed\n if (def.reflect && def.attribute !== false) {\n const attrName = def.attribute || toKebabCase(name);\n this._reflectToAttribute(attrName, value, def.type);\n }\n\n // Schedule update\n this._scheduleUpdate();\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n /**\n * Reflect a property value to an attribute\n */\n private _reflectToAttribute(\n attrName: string,\n value: unknown,\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array,\n ): void {\n if (value === null || value === undefined) {\n this.removeAttribute(attrName);\n return;\n }\n\n if (type === Boolean) {\n if (value) {\n this.setAttribute(attrName, '');\n } else {\n this.removeAttribute(attrName);\n }\n return;\n }\n\n if (type === Object || type === Array) {\n this.setAttribute(attrName, JSON.stringify(value));\n return;\n }\n\n this.setAttribute(attrName, String(value));\n }\n\n /**\n * Convert an attribute value to a property value\n */\n private _attributeToProperty(\n value: string | null,\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array,\n ): unknown {\n if (value === null) {\n return type === Boolean ? false : undefined;\n }\n\n switch (type) {\n case Boolean:\n return true;\n case Number:\n return Number(value);\n case Object:\n case Array:\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n default:\n return value;\n }\n }\n\n /**\n * Schedule an update for the next microtask\n */\n private _scheduleUpdate(): void {\n if (this._pendingUpdate) return;\n this._pendingUpdate = true;\n\n queueMicrotask(() => {\n this._pendingUpdate = false;\n if (this._isConnected) {\n this.update();\n }\n });\n }\n\n /**\n * Attach additional stylesheets to the Shadow DOM\n *\n * @param styles - CSSStyleSheet or array of stylesheets to attach\n */\n protected attachStyles(styles: CSSStyleSheet | CSSStyleSheet[]): void {\n const sheets = Array.isArray(styles) ? styles : [styles];\n this._styles = [...this._styles, ...sheets];\n this.shadowRoot.adoptedStyleSheets = this._styles;\n }\n\n /**\n * Called when the element is connected to the DOM\n */\n connectedCallback(): void {\n this._isConnected = true;\n this.update();\n }\n\n /**\n * Called when the element is disconnected from the DOM\n */\n disconnectedCallback(): void {\n this._isConnected = false;\n }\n\n /**\n * Called when an observed attribute changes\n */\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {\n if (oldValue === newValue) return;\n\n const ctor = this.constructor as typeof BaseElement;\n const properties = ctor.properties;\n\n // Find the property for this attribute\n for (const [propName, def] of Object.entries(properties)) {\n const attrName = def.attribute || toKebabCase(propName);\n if (attrName === name) {\n const value = this._attributeToProperty(newValue, def.type);\n this._propertyValues.set(propName, value);\n this._scheduleUpdate();\n break;\n }\n }\n }\n\n /**\n * Called when the element should update its DOM\n * Override to customize update behavior\n */\n protected update(): void {\n const content = this.render();\n if (content !== undefined) {\n this.shadowRoot.innerHTML = content;\n }\n }\n\n /**\n * Returns the HTML content for the element\n * Override in subclasses to define the element's template\n *\n * @returns HTML string or undefined if no update needed\n */\n protected render(): string | undefined {\n return undefined;\n }\n\n /**\n * Emit a custom event from this element\n *\n * @param name - Event name\n * @param detail - Event detail data\n * @param options - Additional event options\n */\n protected emit<T>(name: string, detail?: T, options?: Omit<CustomEventInit, 'detail'>): boolean {\n const event = new CustomEvent(name, {\n bubbles: true,\n composed: true,\n cancelable: true,\n ...options,\n detail,\n });\n return this.dispatchEvent(event);\n }\n\n /**\n * Query an element in the Shadow DOM\n */\n protected query<T extends Element>(selector: string): T | null {\n return this.shadowRoot.querySelector<T>(selector);\n }\n\n /**\n * Query all matching elements in the Shadow DOM\n */\n protected queryAll<T extends Element>(selector: string): NodeListOf<T> {\n return this.shadowRoot.querySelectorAll<T>(selector);\n }\n}\n\n/**\n * Convert a camelCase string to kebab-case\n */\nfunction toKebabCase(str: string): string {\n return str.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n"
|
|
7
|
+
],
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "97B7DA3023EBE86C64756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
// src/styles.ts
|
|
2
|
+
var styleSheetCache = new WeakMap;
|
|
3
|
+
function css(strings, ...values) {
|
|
4
|
+
const cached = styleSheetCache.get(strings);
|
|
5
|
+
if (cached && values.length === 0) {
|
|
6
|
+
return cached;
|
|
7
|
+
}
|
|
8
|
+
let cssText = strings[0];
|
|
9
|
+
for (let i = 0;i < values.length; i++) {
|
|
10
|
+
cssText += String(values[i]) + strings[i + 1];
|
|
11
|
+
}
|
|
12
|
+
const sheet = new CSSStyleSheet;
|
|
13
|
+
sheet.replaceSync(cssText);
|
|
14
|
+
if (values.length === 0) {
|
|
15
|
+
styleSheetCache.set(strings, sheet);
|
|
16
|
+
}
|
|
17
|
+
return sheet;
|
|
18
|
+
}
|
|
19
|
+
function combineStyles(...sheets) {
|
|
20
|
+
return sheets;
|
|
21
|
+
}
|
|
22
|
+
function cssVars(vars) {
|
|
23
|
+
return Object.entries(vars).map(([key, value]) => `--${key}: ${value}`).join("; ");
|
|
24
|
+
}
|
|
25
|
+
var defaultTheme = css`
|
|
26
|
+
:host {
|
|
27
|
+
/* Colors */
|
|
28
|
+
--dm-primary: #3b82f6;
|
|
29
|
+
--dm-primary-hover: #2563eb;
|
|
30
|
+
--dm-primary-active: #1d4ed8;
|
|
31
|
+
--dm-secondary: #6b7280;
|
|
32
|
+
--dm-secondary-hover: #4b5563;
|
|
33
|
+
--dm-secondary-active: #374151;
|
|
34
|
+
--dm-success: #22c55e;
|
|
35
|
+
--dm-warning: #f59e0b;
|
|
36
|
+
--dm-error: #ef4444;
|
|
37
|
+
--dm-info: #3b82f6;
|
|
38
|
+
|
|
39
|
+
/* Neutrals */
|
|
40
|
+
--dm-gray-50: #f9fafb;
|
|
41
|
+
--dm-gray-100: #f3f4f6;
|
|
42
|
+
--dm-gray-200: #e5e7eb;
|
|
43
|
+
--dm-gray-300: #d1d5db;
|
|
44
|
+
--dm-gray-400: #9ca3af;
|
|
45
|
+
--dm-gray-500: #6b7280;
|
|
46
|
+
--dm-gray-600: #4b5563;
|
|
47
|
+
--dm-gray-700: #374151;
|
|
48
|
+
--dm-gray-800: #1f2937;
|
|
49
|
+
--dm-gray-900: #111827;
|
|
50
|
+
|
|
51
|
+
/* Typography */
|
|
52
|
+
--dm-font-family: system-ui, -apple-system, sans-serif;
|
|
53
|
+
--dm-font-size-xs: 0.75rem;
|
|
54
|
+
--dm-font-size-sm: 0.875rem;
|
|
55
|
+
--dm-font-size-md: 1rem;
|
|
56
|
+
--dm-font-size-lg: 1.125rem;
|
|
57
|
+
--dm-font-size-xl: 1.25rem;
|
|
58
|
+
--dm-font-weight-normal: 400;
|
|
59
|
+
--dm-font-weight-medium: 500;
|
|
60
|
+
--dm-font-weight-semibold: 600;
|
|
61
|
+
--dm-font-weight-bold: 700;
|
|
62
|
+
|
|
63
|
+
/* Spacing */
|
|
64
|
+
--dm-spacing-xs: 0.25rem;
|
|
65
|
+
--dm-spacing-sm: 0.5rem;
|
|
66
|
+
--dm-spacing-md: 1rem;
|
|
67
|
+
--dm-spacing-lg: 1.5rem;
|
|
68
|
+
--dm-spacing-xl: 2rem;
|
|
69
|
+
|
|
70
|
+
/* Border Radius */
|
|
71
|
+
--dm-radius-sm: 0.25rem;
|
|
72
|
+
--dm-radius-md: 0.5rem;
|
|
73
|
+
--dm-radius-lg: 0.75rem;
|
|
74
|
+
--dm-radius-xl: 1rem;
|
|
75
|
+
--dm-radius-full: 9999px;
|
|
76
|
+
|
|
77
|
+
/* Shadows */
|
|
78
|
+
--dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
79
|
+
--dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
|
|
80
|
+
--dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
|
|
81
|
+
|
|
82
|
+
/* Transitions */
|
|
83
|
+
--dm-transition-fast: 150ms ease;
|
|
84
|
+
--dm-transition-normal: 200ms ease;
|
|
85
|
+
--dm-transition-slow: 300ms ease;
|
|
86
|
+
|
|
87
|
+
/* Focus */
|
|
88
|
+
--dm-focus-ring: 0 0 0 2px var(--dm-primary);
|
|
89
|
+
--dm-focus-ring-offset: 0 0 0 2px white, 0 0 0 4px var(--dm-primary);
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
var resetStyles = css`
|
|
93
|
+
*,
|
|
94
|
+
*::before,
|
|
95
|
+
*::after {
|
|
96
|
+
box-sizing: border-box;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
:host {
|
|
100
|
+
font-family: var(--dm-font-family, system-ui, -apple-system, sans-serif);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:host([hidden]) {
|
|
104
|
+
display: none !important;
|
|
105
|
+
}
|
|
106
|
+
`;
|
|
107
|
+
|
|
108
|
+
// src/base-element.ts
|
|
109
|
+
class BaseElement extends HTMLElement {
|
|
110
|
+
static properties = {};
|
|
111
|
+
static get observedAttributes() {
|
|
112
|
+
return Object.entries(this.properties).filter(([, def]) => def.attribute !== false).map(([name, def]) => def.attribute || toKebabCase(name));
|
|
113
|
+
}
|
|
114
|
+
_styles = [];
|
|
115
|
+
_isConnected = false;
|
|
116
|
+
_pendingUpdate = false;
|
|
117
|
+
_propertyValues = new Map;
|
|
118
|
+
constructor() {
|
|
119
|
+
super();
|
|
120
|
+
this.attachShadow({ mode: "open" });
|
|
121
|
+
this._styles = [resetStyles, defaultTheme];
|
|
122
|
+
this.shadowRoot.adoptedStyleSheets = this._styles;
|
|
123
|
+
this._initializeProperties();
|
|
124
|
+
}
|
|
125
|
+
_initializeProperties() {
|
|
126
|
+
const ctor = this.constructor;
|
|
127
|
+
const properties = ctor.properties;
|
|
128
|
+
for (const [name, def] of Object.entries(properties)) {
|
|
129
|
+
if (def.default !== undefined) {
|
|
130
|
+
this._propertyValues.set(name, def.default);
|
|
131
|
+
}
|
|
132
|
+
Object.defineProperty(this, name, {
|
|
133
|
+
get: () => this._propertyValues.get(name),
|
|
134
|
+
set: (value) => {
|
|
135
|
+
const oldValue = this._propertyValues.get(name);
|
|
136
|
+
if (oldValue === value)
|
|
137
|
+
return;
|
|
138
|
+
this._propertyValues.set(name, value);
|
|
139
|
+
if (def.reflect && def.attribute !== false) {
|
|
140
|
+
const attrName = def.attribute || toKebabCase(name);
|
|
141
|
+
this._reflectToAttribute(attrName, value, def.type);
|
|
142
|
+
}
|
|
143
|
+
this._scheduleUpdate();
|
|
144
|
+
},
|
|
145
|
+
enumerable: true,
|
|
146
|
+
configurable: true
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_reflectToAttribute(attrName, value, type) {
|
|
151
|
+
if (value === null || value === undefined) {
|
|
152
|
+
this.removeAttribute(attrName);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (type === Boolean) {
|
|
156
|
+
if (value) {
|
|
157
|
+
this.setAttribute(attrName, "");
|
|
158
|
+
} else {
|
|
159
|
+
this.removeAttribute(attrName);
|
|
160
|
+
}
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (type === Object || type === Array) {
|
|
164
|
+
this.setAttribute(attrName, JSON.stringify(value));
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.setAttribute(attrName, String(value));
|
|
168
|
+
}
|
|
169
|
+
_attributeToProperty(value, type) {
|
|
170
|
+
if (value === null) {
|
|
171
|
+
return type === Boolean ? false : undefined;
|
|
172
|
+
}
|
|
173
|
+
switch (type) {
|
|
174
|
+
case Boolean:
|
|
175
|
+
return true;
|
|
176
|
+
case Number:
|
|
177
|
+
return Number(value);
|
|
178
|
+
case Object:
|
|
179
|
+
case Array:
|
|
180
|
+
try {
|
|
181
|
+
return JSON.parse(value);
|
|
182
|
+
} catch {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
default:
|
|
186
|
+
return value;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
_scheduleUpdate() {
|
|
190
|
+
if (this._pendingUpdate)
|
|
191
|
+
return;
|
|
192
|
+
this._pendingUpdate = true;
|
|
193
|
+
queueMicrotask(() => {
|
|
194
|
+
this._pendingUpdate = false;
|
|
195
|
+
if (this._isConnected) {
|
|
196
|
+
this.update();
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
attachStyles(styles) {
|
|
201
|
+
const sheets = Array.isArray(styles) ? styles : [styles];
|
|
202
|
+
this._styles = [...this._styles, ...sheets];
|
|
203
|
+
this.shadowRoot.adoptedStyleSheets = this._styles;
|
|
204
|
+
}
|
|
205
|
+
connectedCallback() {
|
|
206
|
+
this._isConnected = true;
|
|
207
|
+
this.update();
|
|
208
|
+
}
|
|
209
|
+
disconnectedCallback() {
|
|
210
|
+
this._isConnected = false;
|
|
211
|
+
}
|
|
212
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
213
|
+
if (oldValue === newValue)
|
|
214
|
+
return;
|
|
215
|
+
const ctor = this.constructor;
|
|
216
|
+
const properties = ctor.properties;
|
|
217
|
+
for (const [propName, def] of Object.entries(properties)) {
|
|
218
|
+
const attrName = def.attribute || toKebabCase(propName);
|
|
219
|
+
if (attrName === name) {
|
|
220
|
+
const value = this._attributeToProperty(newValue, def.type);
|
|
221
|
+
this._propertyValues.set(propName, value);
|
|
222
|
+
this._scheduleUpdate();
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
update() {
|
|
228
|
+
const content = this.render();
|
|
229
|
+
if (content !== undefined) {
|
|
230
|
+
this.shadowRoot.innerHTML = content;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
render() {
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
emit(name, detail, options) {
|
|
237
|
+
const event = new CustomEvent(name, {
|
|
238
|
+
bubbles: true,
|
|
239
|
+
composed: true,
|
|
240
|
+
cancelable: true,
|
|
241
|
+
...options,
|
|
242
|
+
detail
|
|
243
|
+
});
|
|
244
|
+
return this.dispatchEvent(event);
|
|
245
|
+
}
|
|
246
|
+
query(selector) {
|
|
247
|
+
return this.shadowRoot.querySelector(selector);
|
|
248
|
+
}
|
|
249
|
+
queryAll(selector) {
|
|
250
|
+
return this.shadowRoot.querySelectorAll(selector);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
function toKebabCase(str) {
|
|
254
|
+
return str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
255
|
+
}
|
|
256
|
+
export {
|
|
257
|
+
resetStyles,
|
|
258
|
+
defaultTheme,
|
|
259
|
+
cssVars,
|
|
260
|
+
css,
|
|
261
|
+
combineStyles,
|
|
262
|
+
BaseElement
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
//# debugId=DFE5949A28D8D9C864756E2164756E21
|
|
266
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/styles.ts", "../../src/base-element.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * CSS-in-JS utilities for constructable stylesheets\n */\n\n/**\n * Cache for constructed stylesheets\n */\nconst styleSheetCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * Creates a CSSStyleSheet from a template literal\n * Results are cached for performance\n *\n * @example\n * ```ts\n * const styles = css`\n * :host {\n * display: block;\n * }\n * `;\n * ```\n *\n * @param strings - Template literal strings\n * @param values - Interpolated values\n * @returns A CSSStyleSheet instance\n */\nexport function css(strings: TemplateStringsArray, ...values: (string | number)[]): CSSStyleSheet {\n // Check cache first\n const cached = styleSheetCache.get(strings);\n if (cached && values.length === 0) {\n return cached;\n }\n\n // Construct the CSS string\n let cssText = strings[0];\n for (let i = 0; i < values.length; i++) {\n cssText += String(values[i]) + strings[i + 1];\n }\n\n // Create and cache the stylesheet\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(cssText);\n\n // Only cache if there are no dynamic values\n if (values.length === 0) {\n styleSheetCache.set(strings, sheet);\n }\n\n return sheet;\n}\n\n/**\n * Combines multiple CSSStyleSheet instances into an array\n * Useful for composing styles from multiple sources\n *\n * @param sheets - Stylesheets to combine\n * @returns Array of stylesheets\n */\nexport function combineStyles(...sheets: CSSStyleSheet[]): CSSStyleSheet[] {\n return sheets;\n}\n\n/**\n * Creates CSS custom property declarations from an object\n *\n * @example\n * ```ts\n * const vars = cssVars({\n * 'dm-primary': '#3b82f6',\n * 'dm-spacing': '1rem'\n * });\n * // Returns: '--dm-primary: #3b82f6; --dm-spacing: 1rem;'\n * ```\n *\n * @param vars - Object of variable names to values\n * @returns CSS custom property declarations string\n */\nexport function cssVars(vars: Record<string, string | number>): string {\n return Object.entries(vars)\n .map(([key, value]) => `--${key}: ${value}`)\n .join('; ');\n}\n\n/**\n * Default theme CSS custom properties\n */\nexport const defaultTheme = css`\n :host {\n /* Colors */\n --dm-primary: #3b82f6;\n --dm-primary-hover: #2563eb;\n --dm-primary-active: #1d4ed8;\n --dm-secondary: #6b7280;\n --dm-secondary-hover: #4b5563;\n --dm-secondary-active: #374151;\n --dm-success: #22c55e;\n --dm-warning: #f59e0b;\n --dm-error: #ef4444;\n --dm-info: #3b82f6;\n\n /* Neutrals */\n --dm-gray-50: #f9fafb;\n --dm-gray-100: #f3f4f6;\n --dm-gray-200: #e5e7eb;\n --dm-gray-300: #d1d5db;\n --dm-gray-400: #9ca3af;\n --dm-gray-500: #6b7280;\n --dm-gray-600: #4b5563;\n --dm-gray-700: #374151;\n --dm-gray-800: #1f2937;\n --dm-gray-900: #111827;\n\n /* Typography */\n --dm-font-family: system-ui, -apple-system, sans-serif;\n --dm-font-size-xs: 0.75rem;\n --dm-font-size-sm: 0.875rem;\n --dm-font-size-md: 1rem;\n --dm-font-size-lg: 1.125rem;\n --dm-font-size-xl: 1.25rem;\n --dm-font-weight-normal: 400;\n --dm-font-weight-medium: 500;\n --dm-font-weight-semibold: 600;\n --dm-font-weight-bold: 700;\n\n /* Spacing */\n --dm-spacing-xs: 0.25rem;\n --dm-spacing-sm: 0.5rem;\n --dm-spacing-md: 1rem;\n --dm-spacing-lg: 1.5rem;\n --dm-spacing-xl: 2rem;\n\n /* Border Radius */\n --dm-radius-sm: 0.25rem;\n --dm-radius-md: 0.5rem;\n --dm-radius-lg: 0.75rem;\n --dm-radius-xl: 1rem;\n --dm-radius-full: 9999px;\n\n /* Shadows */\n --dm-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --dm-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);\n --dm-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);\n\n /* Transitions */\n --dm-transition-fast: 150ms ease;\n --dm-transition-normal: 200ms ease;\n --dm-transition-slow: 300ms ease;\n\n /* Focus */\n --dm-focus-ring: 0 0 0 2px var(--dm-primary);\n --dm-focus-ring-offset: 0 0 0 2px white, 0 0 0 4px var(--dm-primary);\n }\n`;\n\n/**\n * Reset styles for Shadow DOM elements\n */\nexport const resetStyles = css`\n *,\n *::before,\n *::after {\n box-sizing: border-box;\n }\n\n :host {\n font-family: var(--dm-font-family, system-ui, -apple-system, sans-serif);\n }\n\n :host([hidden]) {\n display: none !important;\n }\n`;\n",
|
|
6
|
+
"/**\n * Base class for all DuskMoon custom elements\n */\n\nimport { resetStyles, defaultTheme } from './styles.js';\n\n/**\n * Property definition for reactive properties\n */\nexport interface PropertyDefinition {\n /** Attribute name (defaults to kebab-case of property name) */\n attribute?: string | false;\n /** Whether changes should reflect to attribute */\n reflect?: boolean;\n /** Property type for conversion */\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array;\n /** Default value */\n default?: unknown;\n}\n\n/**\n * Map of property names to their definitions\n */\nexport type PropertyDefinitions = Record<string, PropertyDefinition>;\n\n/**\n * Base class for all DuskMoon custom elements\n *\n * Provides:\n * - Shadow DOM setup with adoptedStyleSheets\n * - Reactive properties with attribute reflection\n * - Style injection utilities\n * - Common lifecycle methods\n *\n * @example\n * ```ts\n * class MyElement extends BaseElement {\n * static properties = {\n * name: { type: String, reflect: true }\n * };\n *\n * constructor() {\n * super();\n * this.attachStyles(myStyles);\n * }\n *\n * render() {\n * return `<div>Hello, ${this.name}!</div>`;\n * }\n * }\n * ```\n */\nexport abstract class BaseElement extends HTMLElement {\n /**\n * Property definitions for reactive properties\n * Override in subclasses to define properties\n */\n static properties: PropertyDefinitions = {};\n\n /**\n * Observed attributes derived from property definitions\n */\n static get observedAttributes(): string[] {\n return Object.entries(this.properties)\n .filter(([, def]) => def.attribute !== false)\n .map(([name, def]) => def.attribute || toKebabCase(name));\n }\n\n /**\n * Shadow root for the element\n */\n declare shadowRoot: ShadowRoot;\n\n /**\n * Stylesheets attached to this element\n */\n private _styles: CSSStyleSheet[] = [];\n\n /**\n * Whether the element has been connected to the DOM\n */\n private _isConnected = false;\n\n /**\n * Queue of pending property updates\n */\n private _pendingUpdate = false;\n\n /**\n * Internal property values storage\n */\n private _propertyValues = new Map<string, unknown>();\n\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n\n // Apply default styles\n this._styles = [resetStyles, defaultTheme];\n this.shadowRoot.adoptedStyleSheets = this._styles;\n\n // Initialize properties\n this._initializeProperties();\n }\n\n /**\n * Initialize reactive properties from static definitions\n */\n private _initializeProperties(): void {\n const ctor = this.constructor as typeof BaseElement;\n const properties = ctor.properties;\n\n for (const [name, def] of Object.entries(properties)) {\n // Set default value\n if (def.default !== undefined) {\n this._propertyValues.set(name, def.default);\n }\n\n // Define property accessor\n Object.defineProperty(this, name, {\n get: () => this._propertyValues.get(name),\n set: (value: unknown) => {\n const oldValue = this._propertyValues.get(name);\n if (oldValue === value) return;\n\n this._propertyValues.set(name, value);\n\n // Reflect to attribute if needed\n if (def.reflect && def.attribute !== false) {\n const attrName = def.attribute || toKebabCase(name);\n this._reflectToAttribute(attrName, value, def.type);\n }\n\n // Schedule update\n this._scheduleUpdate();\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n /**\n * Reflect a property value to an attribute\n */\n private _reflectToAttribute(\n attrName: string,\n value: unknown,\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array,\n ): void {\n if (value === null || value === undefined) {\n this.removeAttribute(attrName);\n return;\n }\n\n if (type === Boolean) {\n if (value) {\n this.setAttribute(attrName, '');\n } else {\n this.removeAttribute(attrName);\n }\n return;\n }\n\n if (type === Object || type === Array) {\n this.setAttribute(attrName, JSON.stringify(value));\n return;\n }\n\n this.setAttribute(attrName, String(value));\n }\n\n /**\n * Convert an attribute value to a property value\n */\n private _attributeToProperty(\n value: string | null,\n type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array,\n ): unknown {\n if (value === null) {\n return type === Boolean ? false : undefined;\n }\n\n switch (type) {\n case Boolean:\n return true;\n case Number:\n return Number(value);\n case Object:\n case Array:\n try {\n return JSON.parse(value);\n } catch {\n return undefined;\n }\n default:\n return value;\n }\n }\n\n /**\n * Schedule an update for the next microtask\n */\n private _scheduleUpdate(): void {\n if (this._pendingUpdate) return;\n this._pendingUpdate = true;\n\n queueMicrotask(() => {\n this._pendingUpdate = false;\n if (this._isConnected) {\n this.update();\n }\n });\n }\n\n /**\n * Attach additional stylesheets to the Shadow DOM\n *\n * @param styles - CSSStyleSheet or array of stylesheets to attach\n */\n protected attachStyles(styles: CSSStyleSheet | CSSStyleSheet[]): void {\n const sheets = Array.isArray(styles) ? styles : [styles];\n this._styles = [...this._styles, ...sheets];\n this.shadowRoot.adoptedStyleSheets = this._styles;\n }\n\n /**\n * Called when the element is connected to the DOM\n */\n connectedCallback(): void {\n this._isConnected = true;\n this.update();\n }\n\n /**\n * Called when the element is disconnected from the DOM\n */\n disconnectedCallback(): void {\n this._isConnected = false;\n }\n\n /**\n * Called when an observed attribute changes\n */\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void {\n if (oldValue === newValue) return;\n\n const ctor = this.constructor as typeof BaseElement;\n const properties = ctor.properties;\n\n // Find the property for this attribute\n for (const [propName, def] of Object.entries(properties)) {\n const attrName = def.attribute || toKebabCase(propName);\n if (attrName === name) {\n const value = this._attributeToProperty(newValue, def.type);\n this._propertyValues.set(propName, value);\n this._scheduleUpdate();\n break;\n }\n }\n }\n\n /**\n * Called when the element should update its DOM\n * Override to customize update behavior\n */\n protected update(): void {\n const content = this.render();\n if (content !== undefined) {\n this.shadowRoot.innerHTML = content;\n }\n }\n\n /**\n * Returns the HTML content for the element\n * Override in subclasses to define the element's template\n *\n * @returns HTML string or undefined if no update needed\n */\n protected render(): string | undefined {\n return undefined;\n }\n\n /**\n * Emit a custom event from this element\n *\n * @param name - Event name\n * @param detail - Event detail data\n * @param options - Additional event options\n */\n protected emit<T>(name: string, detail?: T, options?: Omit<CustomEventInit, 'detail'>): boolean {\n const event = new CustomEvent(name, {\n bubbles: true,\n composed: true,\n cancelable: true,\n ...options,\n detail,\n });\n return this.dispatchEvent(event);\n }\n\n /**\n * Query an element in the Shadow DOM\n */\n protected query<T extends Element>(selector: string): T | null {\n return this.shadowRoot.querySelector<T>(selector);\n }\n\n /**\n * Query all matching elements in the Shadow DOM\n */\n protected queryAll<T extends Element>(selector: string): NodeListOf<T> {\n return this.shadowRoot.querySelectorAll<T>(selector);\n }\n}\n\n/**\n * Convert a camelCase string to kebab-case\n */\nfunction toKebabCase(str: string): string {\n return str.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n"
|
|
7
|
+
],
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "DFE5949A28D8D9C864756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/styles.ts","../src/base-element.ts","../src/types.ts","../src/index.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/globals.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/assert.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/buffer.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/child_process.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/cluster.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/console.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/constants.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/crypto.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/dgram.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/dns.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/domain.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/events.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/fs.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/http.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/http2.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/https.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/inspector.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/module.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/net.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/os.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/path.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/path/posix.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/path/win32.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/process.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/punycode.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/querystring.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/quic.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/readline.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/repl.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/sea.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/stream.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/test.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/test/reporters.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/timers.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/tls.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/tty.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/url.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/util.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/util/types.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/v8.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/vm.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/wasi.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/zlib.d.ts","../../../node_modules/.bun/@types+node@25.0.3/node_modules/@types/node/index.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/globals.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/s3.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/fetch.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bun.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/extensions.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/devserver.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/ffi.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/html-rewriter.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/jsc.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/sqlite.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/vendor/expect-type/index.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/test.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/wasm.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/overrides.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/deprecated.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/redis.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/shell.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/serve.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/sql.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/security.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bundle.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/bun.ns.d.ts","../../../node_modules/.bun/bun-types@1.3.5/node_modules/bun-types/index.d.ts","../../../node_modules/.bun/@types+bun@1.3.5/node_modules/@types/bun/index.d.ts"],"fileIdsList":[[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210,213],[71,89,90,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,91,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,131,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,93,98,100,103,104,107,109,110,111,113,123,128,140,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,93,94,100,103,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,95,100,104,107,109,110,111,123,141,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,96,97,100,104,107,109,110,111,114,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,123,128,137,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,98,100,103,104,107,109,110,111,113,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,91,92,99,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,101,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,102,103,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,91,92,100,103,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,105,107,109,110,111,123,128,140,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,103,104,105,107,109,110,111,123,128,131,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,103,104,106,107,109,110,111,113,123,128,140,186,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,106,107,109,110,111,113,123,128,137,140,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,106,107,108,109,110,111,123,128,137,140,187,188,189,190,192,203,204,205,206,207,208,209,210],[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,112,123,140,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,113,123,128,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,114,123,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,115,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,118,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,120,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,121,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,113,123,131,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,123,124,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,125,141,144,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,123,128,130,131,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,129,131,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,131,141,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,132,187,188,189,190,192,203,205,206,207,208,209,210],[71,89,92,100,104,107,109,110,111,123,128,134,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,133,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,107,109,110,111,123,135,136,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,135,136,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,113,123,128,137,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,138,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,113,123,139,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,106,107,109,110,111,121,123,140,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,141,142,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,123,142,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,143,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,112,123,144,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,145,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,95,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,141,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,186,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,146,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,118,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,131,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,136,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,103,104,105,107,109,110,111,118,123,128,131,140,143,144,146,186,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,147,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,106,107,109,110,111,123,137,141,146,186,187,188,189,192,193,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,186,187,188,190,192,203,205,206,207,208,209,210],[71,92,97,100,104,107,109,110,111,118,123,128,131,137,141,146,186,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,148,187,188,189,190,191,192,193,194,195,196,202,203,204,205,206,207,208,209,210,211,212],[71,92,95,97,100,104,105,107,109,110,111,114,123,131,137,140,147,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,196,203,205,206,207,208,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,201,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,197,198,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,197,198,199,200,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,197,199,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,197,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,187,188,189,190,192,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,152,155,158,159,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,140,155,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,155,159,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,149,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,153,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,151,152,155,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,113,123,137,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,148,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,148,149,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,113,123,140,151,155,187,188,189,190,192,203,204,205,206,207,208,209,210],[66,67,68,71,92,100,103,104,107,109,110,111,123,128,140,150,154,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,163,171,187,188,189,190,192,203,205,206,207,208,209,210],[67,71,92,100,104,107,109,110,111,123,153,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,180,181,187,188,189,190,192,203,205,206,207,208,209,210],[67,71,92,100,104,107,109,110,111,123,131,140,148,150,155,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,148,149,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,151,155,187,188,189,190,192,203,204,205,206,207,208,209,210],[66,71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,149,150,151,153,154,155,156,157,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,181,182,183,184,185,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,173,176,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,163,164,165,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,153,155,164,166,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,154,187,188,189,190,192,203,205,206,207,208,209,210],[67,71,92,100,104,107,109,110,111,123,149,155,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,159,164,166,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,159,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,140,153,155,158,187,188,189,190,192,203,204,205,206,207,208,209,210],[67,71,92,100,104,107,109,110,111,123,151,155,163,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,128,187,188,189,190,192,203,204,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,155,173,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,166,187,188,189,190,192,203,205,206,207,208,209,210],[71,92,100,104,107,109,110,111,123,131,146,148,149,155,180,187,188,189,190,192,203,204,205,206,207,208,209,210],[62,71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210],[62,63,64,71,92,100,104,107,109,110,111,123,187,188,189,190,192,203,205,206,207,208,209,210]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3c3b532cc65c1a93a34dc2ae57f6f3bb54f7f037788151a18ba6772e436a26a2","signature":"aa3212178492041452dd5bee7abc648e3d0e533e900ae3de0bae6d33002a2f56"},{"version":"6d3fb2b35052eca88b795222a17c3cffd6b81bfe652f9f30619aa63fadc4aa93","signature":"d4a48751b4227ab81b82552c7d5efcfc4810bcca247298010215d874c3ab5191"},{"version":"82edc91abe13099b1dcd5d69b967ca709b215f12595c45cc6eb4bd25c17d86ae","signature":"d3a328c0eccf652bc8b6c14515a8b848a558b9d684e15a7c0c2e15de5016df57"},{"version":"8c300228afded2724347502b01dd29cb84bf5ea328291b106987ada1116cc74d","signature":"3d80d8bcd5166b8b8b5c5e1c7d6261fdacfcbf7c876412610dc7b1742bb39df3"},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"dd0109710de4cd93e245121ab86d8c66d20f3ead80074b68e9c3e349c4f53342","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf83d90d5faf27b994c2e79af02e32b555dbfe42cd9bd1571445f2168d1f4e2d","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"0e28335ac43f4d94dd2fe6d9e6fa6813570640839addd10d309d7985f33a6308","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"961cf7535b9c521cd634055b1b6ac49b94d055f0b573ce7fdc4cfaddab080b7c","impliedFormat":1},{"version":"806a8c6daae69e5695e7200d9eca6bc1e4298f38d90edda3ce67a794da31a24f","impliedFormat":1},{"version":"ac86245c2f31335bfd52cbe7fc760f9fc4f165387875869a478a6d9616a95e72","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"9d96a7ce809392ff2cb99691acf7c62e632fe56897356ba013b689277aca3619","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"27c0a08e343c6a0ae17bd13ba6d44a9758236dc904cd5e4b43456996cd51f520","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"6f80e51ba310608cd71bcdc09a171d7bbfb3b316048601c9ec215ce16a8dcfbc","impliedFormat":1},{"version":"a3bdc774995d56caaac759a424831091bb22450ca3590f34dae53d98323be191","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"2ca2bca6845a7234eff5c3d192727a068fca72ac565f3c819c6b04ccc83dadc0","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"6c00f77f0335ae0c18bd45a6c7c9c97c9625fb7e5dd6d5936eadf70718bce52e","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"586eaf66bace2e731cee0ddfbfac326ad74a83c1acfeac4afb2db85ad23226c7","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"d1a14d87cedcf4f0b8173720d6eb29cc02878bf2b6dabf9c9d9cee742f275368","impliedFormat":1},{"version":"e60efae9fe48a2955f66bf4cbf0f082516185b877daf50d9c5e2a009660a7714","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"cd9189eacf0f9143b8830e9d6769335aa6d902c04195f04145bcbf19e7f26fcb","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"0da1adb8d70eba31791b5f9203a384a628f9a1b03162bc68306838e842eff203","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"a1fdda024d346cd1906d4a1f66c2804217ef88b554946ac7d9b7bcbadcc75f11","impliedFormat":1},{"version":"49ae37a1b5de16f762c8a151eeaec6b558ce3c27251052ef7a361144af42cad4","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"31bd1a31f935276adf90384a35edbd4614018ff008f57d62ffb57ac538e94e51","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"561c795984d06b91091780cebeac616e9e41d83240770e1af14e6ec083b713d5","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1}],"root":[[62,65]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./types","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[214,1],[89,2],[90,2],[91,3],[71,4],[92,5],[93,6],[94,7],[69,8],[95,9],[96,10],[97,11],[98,12],[99,13],[100,14],[101,14],[102,15],[103,16],[104,17],[105,18],[72,8],[70,8],[106,19],[107,20],[108,21],[148,22],[109,23],[110,24],[111,23],[112,25],[113,26],[114,27],[115,28],[116,28],[117,28],[118,29],[119,30],[120,31],[121,32],[122,33],[123,34],[124,34],[125,35],[126,8],[127,8],[128,36],[129,37],[130,36],[131,38],[132,39],[133,40],[134,41],[135,42],[136,43],[137,44],[138,45],[139,46],[140,47],[141,48],[142,49],[143,50],[144,51],[145,52],[73,23],[74,8],[75,53],[76,54],[77,8],[78,55],[79,8],[80,56],[81,57],[82,58],[83,58],[84,59],[85,8],[86,60],[87,61],[88,57],[146,62],[147,63],[190,64],[212,8],[211,8],[205,65],[192,66],[191,8],[189,67],[193,8],[187,68],[194,8],[213,69],[195,8],[204,70],[206,71],[188,72],[210,73],[208,74],[207,75],[209,76],[196,8],[202,77],[199,78],[201,79],[200,80],[198,81],[197,8],[203,82],[60,8],[61,8],[10,8],[11,8],[13,8],[12,8],[2,8],[14,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[3,8],[22,8],[23,8],[4,8],[24,8],[28,8],[25,8],[26,8],[27,8],[29,8],[30,8],[31,8],[5,8],[32,8],[33,8],[34,8],[35,8],[6,8],[39,8],[36,8],[37,8],[38,8],[40,8],[7,8],[41,8],[46,8],[47,8],[42,8],[43,8],[44,8],[45,8],[8,8],[51,8],[48,8],[49,8],[50,8],[52,8],[9,8],[53,8],[54,8],[55,8],[57,8],[56,8],[1,8],[58,8],[59,8],[163,83],[175,84],[161,85],[176,86],[185,87],[152,88],[153,89],[151,90],[184,91],[179,92],[183,93],[155,94],[172,95],[154,96],[182,97],[149,98],[150,99],[156,100],[157,8],[162,101],[160,100],[67,102],[186,103],[177,104],[166,105],[165,100],[167,106],[170,107],[164,108],[168,109],[180,91],[158,110],[159,111],[171,112],[68,113],[174,114],[173,100],[169,115],[178,8],[66,8],[181,116],[63,117],[65,118],[62,8],[64,8]],"latestChangedDtsFile":"./types/index.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all DuskMoon custom elements
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Property definition for reactive properties
|
|
6
|
+
*/
|
|
7
|
+
export interface PropertyDefinition {
|
|
8
|
+
/** Attribute name (defaults to kebab-case of property name) */
|
|
9
|
+
attribute?: string | false;
|
|
10
|
+
/** Whether changes should reflect to attribute */
|
|
11
|
+
reflect?: boolean;
|
|
12
|
+
/** Property type for conversion */
|
|
13
|
+
type?: typeof String | typeof Number | typeof Boolean | typeof Object | typeof Array;
|
|
14
|
+
/** Default value */
|
|
15
|
+
default?: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Map of property names to their definitions
|
|
19
|
+
*/
|
|
20
|
+
export type PropertyDefinitions = Record<string, PropertyDefinition>;
|
|
21
|
+
/**
|
|
22
|
+
* Base class for all DuskMoon custom elements
|
|
23
|
+
*
|
|
24
|
+
* Provides:
|
|
25
|
+
* - Shadow DOM setup with adoptedStyleSheets
|
|
26
|
+
* - Reactive properties with attribute reflection
|
|
27
|
+
* - Style injection utilities
|
|
28
|
+
* - Common lifecycle methods
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* class MyElement extends BaseElement {
|
|
33
|
+
* static properties = {
|
|
34
|
+
* name: { type: String, reflect: true }
|
|
35
|
+
* };
|
|
36
|
+
*
|
|
37
|
+
* constructor() {
|
|
38
|
+
* super();
|
|
39
|
+
* this.attachStyles(myStyles);
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* render() {
|
|
43
|
+
* return `<div>Hello, ${this.name}!</div>`;
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare abstract class BaseElement extends HTMLElement {
|
|
49
|
+
/**
|
|
50
|
+
* Property definitions for reactive properties
|
|
51
|
+
* Override in subclasses to define properties
|
|
52
|
+
*/
|
|
53
|
+
static properties: PropertyDefinitions;
|
|
54
|
+
/**
|
|
55
|
+
* Observed attributes derived from property definitions
|
|
56
|
+
*/
|
|
57
|
+
static get observedAttributes(): string[];
|
|
58
|
+
/**
|
|
59
|
+
* Shadow root for the element
|
|
60
|
+
*/
|
|
61
|
+
shadowRoot: ShadowRoot;
|
|
62
|
+
/**
|
|
63
|
+
* Stylesheets attached to this element
|
|
64
|
+
*/
|
|
65
|
+
private _styles;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the element has been connected to the DOM
|
|
68
|
+
*/
|
|
69
|
+
private _isConnected;
|
|
70
|
+
/**
|
|
71
|
+
* Queue of pending property updates
|
|
72
|
+
*/
|
|
73
|
+
private _pendingUpdate;
|
|
74
|
+
/**
|
|
75
|
+
* Internal property values storage
|
|
76
|
+
*/
|
|
77
|
+
private _propertyValues;
|
|
78
|
+
constructor();
|
|
79
|
+
/**
|
|
80
|
+
* Initialize reactive properties from static definitions
|
|
81
|
+
*/
|
|
82
|
+
private _initializeProperties;
|
|
83
|
+
/**
|
|
84
|
+
* Reflect a property value to an attribute
|
|
85
|
+
*/
|
|
86
|
+
private _reflectToAttribute;
|
|
87
|
+
/**
|
|
88
|
+
* Convert an attribute value to a property value
|
|
89
|
+
*/
|
|
90
|
+
private _attributeToProperty;
|
|
91
|
+
/**
|
|
92
|
+
* Schedule an update for the next microtask
|
|
93
|
+
*/
|
|
94
|
+
private _scheduleUpdate;
|
|
95
|
+
/**
|
|
96
|
+
* Attach additional stylesheets to the Shadow DOM
|
|
97
|
+
*
|
|
98
|
+
* @param styles - CSSStyleSheet or array of stylesheets to attach
|
|
99
|
+
*/
|
|
100
|
+
protected attachStyles(styles: CSSStyleSheet | CSSStyleSheet[]): void;
|
|
101
|
+
/**
|
|
102
|
+
* Called when the element is connected to the DOM
|
|
103
|
+
*/
|
|
104
|
+
connectedCallback(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Called when the element is disconnected from the DOM
|
|
107
|
+
*/
|
|
108
|
+
disconnectedCallback(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Called when an observed attribute changes
|
|
111
|
+
*/
|
|
112
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
113
|
+
/**
|
|
114
|
+
* Called when the element should update its DOM
|
|
115
|
+
* Override to customize update behavior
|
|
116
|
+
*/
|
|
117
|
+
protected update(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Returns the HTML content for the element
|
|
120
|
+
* Override in subclasses to define the element's template
|
|
121
|
+
*
|
|
122
|
+
* @returns HTML string or undefined if no update needed
|
|
123
|
+
*/
|
|
124
|
+
protected render(): string | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* Emit a custom event from this element
|
|
127
|
+
*
|
|
128
|
+
* @param name - Event name
|
|
129
|
+
* @param detail - Event detail data
|
|
130
|
+
* @param options - Additional event options
|
|
131
|
+
*/
|
|
132
|
+
protected emit<T>(name: string, detail?: T, options?: Omit<CustomEventInit, 'detail'>): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Query an element in the Shadow DOM
|
|
135
|
+
*/
|
|
136
|
+
protected query<T extends Element>(selector: string): T | null;
|
|
137
|
+
/**
|
|
138
|
+
* Query all matching elements in the Shadow DOM
|
|
139
|
+
*/
|
|
140
|
+
protected queryAll<T extends Element>(selector: string): NodeListOf<T>;
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=base-element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-element.d.ts","sourceRoot":"","sources":["../../src/base-element.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3B,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,IAAI,CAAC,EAAE,OAAO,MAAM,GAAG,OAAO,MAAM,GAAG,OAAO,OAAO,GAAG,OAAO,MAAM,GAAG,OAAO,KAAK,CAAC;IACrF,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,8BAAsB,WAAY,SAAQ,WAAW;IACnD;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAM;IAE5C;;OAEG;IACH,MAAM,KAAK,kBAAkB,IAAI,MAAM,EAAE,CAIxC;IAED;;OAEG;IACK,UAAU,EAAE,UAAU,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,OAAO,CAAuB;IAEtC;;OAEG;IACH,OAAO,CAAC,YAAY,CAAS;IAE7B;;OAEG;IACH,OAAO,CAAC,cAAc,CAAS;IAE/B;;OAEG;IACH,OAAO,CAAC,eAAe,CAA8B;;IAcrD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAyB5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;;;OAIG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG,IAAI;IAMrE;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAKzB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAI5B;;OAEG;IACH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAkB9F;;;OAGG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAOxB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,IAAI,MAAM,GAAG,SAAS;IAItC;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,OAAO;IAW/F;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAI9D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAGvE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @duskmoon-dev/el-core
|
|
3
|
+
*
|
|
4
|
+
* Core utilities and base classes for DuskMoon custom elements
|
|
5
|
+
*/
|
|
6
|
+
export { BaseElement } from './base-element.js';
|
|
7
|
+
export type { PropertyDefinition, PropertyDefinitions } from './base-element.js';
|
|
8
|
+
export { css, combineStyles, cssVars, defaultTheme, resetStyles } from './styles.js';
|
|
9
|
+
export type { CSSValue, Size, Variant, ValidationState, BaseElementProps, SizableProps, VariantProps, FormElementProps, ValidatableProps, ValueChangeEventDetail, AttributeConverter, } from './types.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGjF,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGrF,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS-in-JS utilities for constructable stylesheets
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Creates a CSSStyleSheet from a template literal
|
|
6
|
+
* Results are cached for performance
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const styles = css`
|
|
11
|
+
* :host {
|
|
12
|
+
* display: block;
|
|
13
|
+
* }
|
|
14
|
+
* `;
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @param strings - Template literal strings
|
|
18
|
+
* @param values - Interpolated values
|
|
19
|
+
* @returns A CSSStyleSheet instance
|
|
20
|
+
*/
|
|
21
|
+
export declare function css(strings: TemplateStringsArray, ...values: (string | number)[]): CSSStyleSheet;
|
|
22
|
+
/**
|
|
23
|
+
* Combines multiple CSSStyleSheet instances into an array
|
|
24
|
+
* Useful for composing styles from multiple sources
|
|
25
|
+
*
|
|
26
|
+
* @param sheets - Stylesheets to combine
|
|
27
|
+
* @returns Array of stylesheets
|
|
28
|
+
*/
|
|
29
|
+
export declare function combineStyles(...sheets: CSSStyleSheet[]): CSSStyleSheet[];
|
|
30
|
+
/**
|
|
31
|
+
* Creates CSS custom property declarations from an object
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const vars = cssVars({
|
|
36
|
+
* 'dm-primary': '#3b82f6',
|
|
37
|
+
* 'dm-spacing': '1rem'
|
|
38
|
+
* });
|
|
39
|
+
* // Returns: '--dm-primary: #3b82f6; --dm-spacing: 1rem;'
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @param vars - Object of variable names to values
|
|
43
|
+
* @returns CSS custom property declarations string
|
|
44
|
+
*/
|
|
45
|
+
export declare function cssVars(vars: Record<string, string | number>): string;
|
|
46
|
+
/**
|
|
47
|
+
* Default theme CSS custom properties
|
|
48
|
+
*/
|
|
49
|
+
export declare const defaultTheme: CSSStyleSheet;
|
|
50
|
+
/**
|
|
51
|
+
* Reset styles for Shadow DOM elements
|
|
52
|
+
*/
|
|
53
|
+
export declare const resetStyles: CSSStyleSheet;
|
|
54
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,GAAG,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,aAAa,CAuBhG;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAEzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAIrE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,eAkExB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,eAcvB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common types and interfaces for DuskMoon Elements
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Represents a CSS property value with support for CSS custom properties
|
|
6
|
+
*/
|
|
7
|
+
export type CSSValue = string | number;
|
|
8
|
+
/**
|
|
9
|
+
* Size variants available for elements
|
|
10
|
+
*/
|
|
11
|
+
export type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
12
|
+
/**
|
|
13
|
+
* Color variants available for elements
|
|
14
|
+
*/
|
|
15
|
+
export type Variant = 'primary' | 'secondary' | 'tertiary' | 'ghost' | 'outline';
|
|
16
|
+
/**
|
|
17
|
+
* Validation state for form elements
|
|
18
|
+
*/
|
|
19
|
+
export type ValidationState = 'valid' | 'invalid' | 'pending' | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Base props shared by all elements
|
|
22
|
+
*/
|
|
23
|
+
export interface BaseElementProps {
|
|
24
|
+
/** Whether the element is disabled */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** Additional CSS classes */
|
|
27
|
+
class?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Props for elements with size variants
|
|
31
|
+
*/
|
|
32
|
+
export interface SizableProps {
|
|
33
|
+
/** Size variant */
|
|
34
|
+
size?: Size;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Props for elements with color variants
|
|
38
|
+
*/
|
|
39
|
+
export interface VariantProps {
|
|
40
|
+
/** Color variant */
|
|
41
|
+
variant?: Variant;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Props for form elements
|
|
45
|
+
*/
|
|
46
|
+
export interface FormElementProps extends BaseElementProps {
|
|
47
|
+
/** Name attribute for form submission */
|
|
48
|
+
name?: string;
|
|
49
|
+
/** Current value */
|
|
50
|
+
value?: string;
|
|
51
|
+
/** Whether the field is required */
|
|
52
|
+
required?: boolean;
|
|
53
|
+
/** Whether the field is readonly */
|
|
54
|
+
readonly?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Props for validatable form elements
|
|
58
|
+
*/
|
|
59
|
+
export interface ValidatableProps {
|
|
60
|
+
/** Current validation state */
|
|
61
|
+
validationState?: ValidationState;
|
|
62
|
+
/** Error message to display */
|
|
63
|
+
errorMessage?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Event detail for value change events
|
|
67
|
+
*/
|
|
68
|
+
export interface ValueChangeEventDetail<T = string> {
|
|
69
|
+
/** The new value */
|
|
70
|
+
value: T;
|
|
71
|
+
/** The previous value */
|
|
72
|
+
previousValue?: T;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Type for attribute converters
|
|
76
|
+
*/
|
|
77
|
+
export interface AttributeConverter<T> {
|
|
78
|
+
/** Convert from attribute string to property value */
|
|
79
|
+
fromAttribute: (value: string | null) => T;
|
|
80
|
+
/** Convert from property value to attribute string */
|
|
81
|
+
toAttribute: (value: T) => string | null;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,mBAAmB;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,MAAM;IAChD,oBAAoB;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,yBAAyB;IACzB,aAAa,CAAC,EAAE,CAAC,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,sDAAsD;IACtD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC;IAC3C,sDAAsD;IACtD,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC;CAC1C"}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@duskmoon-dev/el-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"types": "./dist/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/index.js",
|
|
12
|
+
"require": "./dist/cjs/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"prebuild": "bun run clean",
|
|
20
|
+
"build": "bun run build:esm && bun run build:cjs && bun run build:types",
|
|
21
|
+
"build:esm": "bun build ./src/index.ts --outdir ./dist/esm --format esm --sourcemap",
|
|
22
|
+
"build:cjs": "bun build ./src/index.ts --outdir ./dist/cjs --format cjs --sourcemap",
|
|
23
|
+
"build:types": "tsc --emitDeclarationOnly --outDir ./dist/types",
|
|
24
|
+
"dev": "bun build ./src/index.ts --outdir ./dist/esm --format esm --sourcemap --watch",
|
|
25
|
+
"clean": "del-cli dist",
|
|
26
|
+
"test": "bun test",
|
|
27
|
+
"typecheck": "tsc --noEmit",
|
|
28
|
+
"format": "prettier --write 'src/**/*.ts' '*.json' '*.md'",
|
|
29
|
+
"format:check": "prettier --check 'src/**/*.ts' '*.json' '*.md'",
|
|
30
|
+
"lint": "eslint src",
|
|
31
|
+
"lint:check": "eslint src --max-warnings 0",
|
|
32
|
+
"lint:fix": "eslint src --fix",
|
|
33
|
+
"release": "bun publish",
|
|
34
|
+
"release:dry-run": "bun publish --dry-run"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"typescript": "^5.7.2"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
}
|
|
42
|
+
}
|