@arcmantle/lit-jsx 1.1.2 → 1.1.3
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 +51 -712
- package/dist/compiler/attribute-processor.d.ts.map +1 -1
- package/dist/compiler/attribute-processor.js +12 -1
- package/dist/compiler/attribute-processor.js.map +1 -1
- package/dist/shared/jsx-core.d.ts +5 -1
- package/dist/shared/jsx-core.d.ts.map +1 -1
- package/package.json +8 -1
- package/src/compiler/attribute-processor.ts +20 -1
- package/src/shared/jsx-core.ts +3 -1
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
A powerful JSX compiler and Vite plugin that transforms JSX into native Lit templates at compile time with zero runtime overhead.
|
|
4
4
|
|
|
5
|
+
📖 **[View Full Documentation](./docs/)** | 🚀 [Getting Started](./docs/guide/getting-started.md) | 📦 [Installation](./docs/guide/installation.md)
|
|
6
|
+
|
|
5
7
|
## 🚀 Features
|
|
6
8
|
|
|
7
9
|
lit-jsx brings the familiar JSX syntax to the Lit ecosystem while maintaining the performance and capabilities that make Lit exceptional.
|
|
@@ -62,6 +64,8 @@ yarn add @arcmantle/lit-jsx lit-html
|
|
|
62
64
|
|
|
63
65
|
## ⚡ Quick Start
|
|
64
66
|
|
|
67
|
+
For complete setup instructions, see the [Installation Guide](./docs/guide/installation.md) and [Getting Started Guide](./docs/guide/getting-started.md).
|
|
68
|
+
|
|
65
69
|
### 1. Configure Vite
|
|
66
70
|
|
|
67
71
|
```typescript
|
|
@@ -117,758 +121,93 @@ export class MyComponent extends LitElement {
|
|
|
117
121
|
|
|
118
122
|
## 🎯 Core Concepts
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
For complete documentation, visit the [full documentation site](./docs/).
|
|
121
125
|
|
|
122
|
-
|
|
126
|
+
### Custom Element Identification
|
|
123
127
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<MyButton static onclick={handleClick}>Click me</MyButton>
|
|
128
|
-
|
|
129
|
-
// ✅ Regular HTML elements - no static attribute needed
|
|
130
|
-
<div class="container">
|
|
131
|
-
<button onclick={handleClick}>Regular button</button>
|
|
132
|
-
</div>
|
|
133
|
-
```
|
|
128
|
+
- **Tag names** (like `<counter-element>`) work directly without special attributes
|
|
129
|
+
- **Classes** (like `<Counter />`) require the `static` attribute
|
|
130
|
+
- Optional: Enable `useImportDiscovery: true` for automatic detection
|
|
134
131
|
|
|
135
|
-
|
|
132
|
+
[Learn more →](./docs/guide/custom-elements.md)
|
|
136
133
|
|
|
137
134
|
### Attribute Binding Control
|
|
138
135
|
|
|
139
|
-
|
|
136
|
+
- **Default**: Attribute binding (`value={x}`)
|
|
137
|
+
- **`as.prop()`**: Property binding (`.property=${x}`)
|
|
138
|
+
- **`as.bool()`**: Boolean attribute binding (`?disabled=${x}`)
|
|
140
139
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
```tsx
|
|
144
|
-
<input value={userInput} />
|
|
145
|
-
// Compiles to: <input value=${userInput} />
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
#### Property Binding
|
|
149
|
-
|
|
150
|
-
```tsx
|
|
151
|
-
<input value={as.prop(userInput)} />
|
|
152
|
-
// Compiles to: <input .value=${userInput} />
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
#### Boolean Attribute Binding
|
|
156
|
-
|
|
157
|
-
```tsx
|
|
158
|
-
<input disabled={as.bool(isDisabled)} />
|
|
159
|
-
// Compiles to: <input ?disabled=${isDisabled} />
|
|
160
|
-
```
|
|
140
|
+
[Learn more →](./docs/guide/bindings.md)
|
|
161
141
|
|
|
162
142
|
### Special Attributes
|
|
163
143
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
#### styleList - Object to Style Mapping
|
|
172
|
-
|
|
173
|
-
```tsx
|
|
174
|
-
<div styleList={{ color: textColor, fontSize: '16px' }}>
|
|
175
|
-
// Compiles to: <div style=${styleMap({ color: textColor, fontSize: '16px' })}>
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
#### Event Handlers
|
|
179
|
-
|
|
180
|
-
Event handlers use standard React-style `onevent` syntax with lowercase event names:
|
|
181
|
-
|
|
182
|
-
```tsx
|
|
183
|
-
<button onclick={handleClick} ondblclick={handleDoubleClick}>
|
|
184
|
-
// Compiles to: <button @click=${handleClick} @dblclick=${handleDoubleClick}>
|
|
185
|
-
```
|
|
144
|
+
- **`classList` / `class={{...}}`**: Conditional classes with `classMap`
|
|
145
|
+
- **`styleList` / `style={{...}}`**: Dynamic styles with `styleMap`
|
|
146
|
+
- **`onclick`, `onchange`, etc.**: Event handlers
|
|
147
|
+
- **`ref`**: Element references
|
|
148
|
+
- **`directive`**: Apply Lit directives
|
|
149
|
+
- **`{...props}`**: Spread attributes
|
|
186
150
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
#### References
|
|
190
|
-
|
|
191
|
-
```tsx
|
|
192
|
-
<input ref={inputRef} />
|
|
193
|
-
// Compiles to: <input ${ref(inputRef)} />
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
#### Element Directives
|
|
197
|
-
|
|
198
|
-
```tsx
|
|
199
|
-
<div directive={myDirective()} />
|
|
200
|
-
// Compiles to: <div ${myDirective()} />
|
|
201
|
-
|
|
202
|
-
// Multiple directives as an array
|
|
203
|
-
<div directive={[directive1(), directive2()]} />
|
|
204
|
-
// Compiles to: <div ${directive1()} ${directive2()} />
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
#### Spread Attributes
|
|
208
|
-
|
|
209
|
-
```tsx
|
|
210
|
-
<div {...dynamicProps} />
|
|
211
|
-
// Compiles to: <div ${__$rest(dynamicProps)} />
|
|
212
|
-
```
|
|
151
|
+
[Full syntax guide →](./docs/guide/jsx-syntax.md)
|
|
213
152
|
|
|
214
153
|
## 🏗️ Component Patterns
|
|
215
154
|
|
|
216
155
|
### Function Components
|
|
217
156
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
```tsx
|
|
221
|
-
const Button = ({ label, variant = 'primary', disabled, onclick, children }) => (
|
|
222
|
-
<button
|
|
223
|
-
classList={{ [`btn-${variant}`]: true, 'disabled': disabled }}
|
|
224
|
-
disabled={as.bool(disabled)}
|
|
225
|
-
onclick={onclick}
|
|
226
|
-
>
|
|
227
|
-
{label || children}
|
|
228
|
-
</button>
|
|
229
|
-
);
|
|
230
|
-
|
|
231
|
-
// Usage
|
|
232
|
-
<Button
|
|
233
|
-
label="Submit"
|
|
234
|
-
variant="success"
|
|
235
|
-
onclick={handleSubmit}
|
|
236
|
-
disabled={as.bool(isLoading)}
|
|
237
|
-
/>
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Function components:
|
|
241
|
-
|
|
242
|
-
- Receive props as a single object parameter
|
|
243
|
-
- Support `children` via the `children` property
|
|
244
|
-
- Compile to efficient function calls
|
|
245
|
-
- Support all JSX features including conditional rendering and loops
|
|
246
|
-
|
|
247
|
-
### Custom Element Integration
|
|
248
|
-
|
|
249
|
-
lit-jsx provides full type-safe integration with custom elements. You can use LitElement classes directly in JSX:
|
|
250
|
-
|
|
251
|
-
```tsx
|
|
252
|
-
import { LitElement } from 'lit';
|
|
253
|
-
|
|
254
|
-
export class MyButton extends LitElement {
|
|
255
|
-
static tagName = 'my-button';
|
|
256
|
-
|
|
257
|
-
render() {
|
|
258
|
-
return html`<button><slot></slot></button>`;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
// Usage - use the class directly with the static attribute
|
|
263
|
-
<MyButton
|
|
264
|
-
static
|
|
265
|
-
class="custom-btn"
|
|
266
|
-
onclick={() => console.log('Clicked!')}
|
|
267
|
-
/>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
#### Generic Custom Elements
|
|
271
|
-
|
|
272
|
-
lit-jsx provides automatic support for generic custom element classes with full type safety:
|
|
273
|
-
|
|
274
|
-
```tsx
|
|
275
|
-
import { LitElement } from 'lit';
|
|
276
|
-
|
|
277
|
-
class DataList<T> extends LitElement {
|
|
278
|
-
static tagName = 'data-list';
|
|
279
|
-
|
|
280
|
-
@property({ type: Array }) items: T[] = [];
|
|
281
|
-
@property() renderItem?: (item: T) => TemplateResult;
|
|
282
|
-
|
|
283
|
-
render() {
|
|
284
|
-
return html`
|
|
285
|
-
<ul>
|
|
286
|
-
${this.items.map(item => html`
|
|
287
|
-
<li>${this.renderItem ? this.renderItem(item) : item}</li>
|
|
288
|
-
`)}
|
|
289
|
-
</ul>
|
|
290
|
-
`;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
// ✅ Use the class directly with type parameters - generics work automatically!
|
|
295
|
-
<DataList<User>
|
|
296
|
-
static
|
|
297
|
-
items={as.prop(users)}
|
|
298
|
-
renderItem={as.prop((user) => `${user.name} (${user.email})`)}
|
|
299
|
-
/>
|
|
300
|
-
|
|
301
|
-
// Type inference works perfectly for the renderItem callback
|
|
302
|
-
<DataList<Product>
|
|
303
|
-
static
|
|
304
|
-
items={as.prop(products)}
|
|
305
|
-
renderItem={as.prop((product) => `${product.name} - $${product.price}`)}
|
|
306
|
-
/>
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
**Note**: Generic type parameters are automatically preserved when using classes directly in JSX. No manual type annotations needed!
|
|
310
|
-
|
|
311
|
-
#### Parameter Typing for Custom Elements
|
|
312
|
-
|
|
313
|
-
When writing functions that accept custom element classes as parameters, use proper TypeScript typing:
|
|
314
|
-
|
|
315
|
-
```tsx
|
|
316
|
-
import { LitElement } from 'lit';
|
|
317
|
-
|
|
318
|
-
// ✅ Using the class constructor type directly
|
|
319
|
-
function renderWithWrapper<T extends typeof LitElement>(
|
|
320
|
-
Component: T
|
|
321
|
-
) {
|
|
322
|
-
return ({ children, ...props }) => (
|
|
323
|
-
<div class="wrapper">
|
|
324
|
-
<Component static {...props}>{children}</Component>
|
|
325
|
-
</div>
|
|
326
|
-
);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
// ✅ Using specific class types
|
|
330
|
-
function createEnhancer(Component: typeof MyButton) {
|
|
331
|
-
return ({ enhanced, ...props }) => (
|
|
332
|
-
<div class={enhanced ? 'enhanced' : ''}>
|
|
333
|
-
<Component static {...props} />
|
|
334
|
-
</div>
|
|
335
|
-
);
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
// ❌ This won't work - compiler can't detect the custom element
|
|
339
|
-
function renderComponent(Component: any) {
|
|
340
|
-
return <Component>Content</Component>; // Error: Component not recognized
|
|
341
|
-
}
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
**Important**: Proper typing allows the compiler to recognize custom elements and apply the correct transformations.
|
|
345
|
-
|
|
346
|
-
### Dynamic Tag Names
|
|
347
|
-
|
|
348
|
-
lit-jsx supports dynamic element types using the `as.tag()` helper:
|
|
349
|
-
|
|
350
|
-
```tsx
|
|
351
|
-
function ActionElement({ href, children }) {
|
|
352
|
-
const Tag = as.tag(href ? 'a' : 'button');
|
|
353
|
-
|
|
354
|
-
return (
|
|
355
|
-
<Tag static href={href} class="action-element">
|
|
356
|
-
{children}
|
|
357
|
-
</Tag>
|
|
358
|
-
);
|
|
359
|
-
}
|
|
360
|
-
```
|
|
361
|
-
|
|
362
|
-
The `as.tag()` helper signals to the compiler that this is a dynamic tag, allowing it to optimize the template using Lit's static templates.
|
|
363
|
-
|
|
364
|
-
```tsx
|
|
365
|
-
function DynamicElement({ useDiv, children }) {
|
|
366
|
-
const Tag = as.tag(useDiv ? 'div' : 'span');
|
|
367
|
-
|
|
368
|
-
return <Tag static>{children}</Tag>;
|
|
369
|
-
}
|
|
370
|
-
```### Library Components
|
|
371
|
-
|
|
372
|
-
lit-jsx provides utility components that enhance common patterns and integrate seamlessly with Lit directives:
|
|
373
|
-
|
|
374
|
-
#### For Component - Declarative List Rendering
|
|
375
|
-
|
|
376
|
-
The `For` component provides a declarative way to render lists with optional keys and separators:
|
|
377
|
-
|
|
378
|
-
```tsx
|
|
379
|
-
import { For } from '@arcmantle/lit-jsx';
|
|
380
|
-
|
|
381
|
-
// Basic list rendering
|
|
382
|
-
<For each={users}>
|
|
383
|
-
{(user, index) => (
|
|
384
|
-
<div class="user-item">
|
|
385
|
-
{index + 1}. {user.name}
|
|
386
|
-
</div>
|
|
387
|
-
)}
|
|
388
|
-
</For>
|
|
389
|
-
|
|
390
|
-
// With key function for efficient updates
|
|
391
|
-
<For each={todos} key={(todo) => todo.id}>
|
|
392
|
-
{(todo, index) => (
|
|
393
|
-
<li classList={{ completed: todo.completed }}>
|
|
394
|
-
{todo.text}
|
|
395
|
-
</li>
|
|
396
|
-
)}
|
|
397
|
-
</For>
|
|
398
|
-
|
|
399
|
-
// With separators between items
|
|
400
|
-
<For each={breadcrumbs} separator={<span> / </span>}>
|
|
401
|
-
{(crumb, index) => (
|
|
402
|
-
<a href={crumb.url}>{crumb.label}</a>
|
|
403
|
-
)}
|
|
404
|
-
</For>
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
The `For` component automatically uses lit-html's optimized directives:
|
|
157
|
+
Stateless components that receive props and return JSX. Support TypeScript, generics, children, and all JSX features.
|
|
408
158
|
|
|
409
|
-
|
|
410
|
-
- **With key**: Uses `repeat` directive for efficient updates when items change
|
|
411
|
-
- **With separator**: Uses `join` directive to insert elements between items
|
|
159
|
+
[Learn more →](./docs/guide/functional-components.md)
|
|
412
160
|
|
|
413
|
-
|
|
161
|
+
### Custom Elements
|
|
414
162
|
|
|
415
|
-
|
|
163
|
+
Use LitElement classes directly in JSX with full type safety and generic support. Classes require the `static` attribute.
|
|
416
164
|
|
|
417
|
-
|
|
418
|
-
import { Show } from '@arcmantle/lit-jsx';
|
|
165
|
+
[Learn more →](./docs/guide/custom-elements.md)
|
|
419
166
|
|
|
420
|
-
|
|
421
|
-
<Show when={user}>
|
|
422
|
-
{(user) => (
|
|
423
|
-
<div class="welcome">
|
|
424
|
-
Welcome back, {user.name}!
|
|
425
|
-
</div>
|
|
426
|
-
)}
|
|
427
|
-
</Show>
|
|
428
|
-
|
|
429
|
-
// With fallback content
|
|
430
|
-
<Show when={currentUser}>
|
|
431
|
-
{[
|
|
432
|
-
(user) => (
|
|
433
|
-
<div class="user-panel">
|
|
434
|
-
<img src={user.avatar} alt={user.name} />
|
|
435
|
-
<span>{user.name}</span>
|
|
436
|
-
</div>
|
|
437
|
-
),
|
|
438
|
-
() => (
|
|
439
|
-
<div class="login-prompt">
|
|
440
|
-
<button>Sign In</button>
|
|
441
|
-
</div>
|
|
442
|
-
)
|
|
443
|
-
]}
|
|
444
|
-
</Show>
|
|
445
|
-
|
|
446
|
-
// Conditional rendering with complex conditions
|
|
447
|
-
<Show when={items.length > 0}>
|
|
448
|
-
{(length) => (
|
|
449
|
-
<div class="item-count">
|
|
450
|
-
Found {length} items
|
|
451
|
-
</div>
|
|
452
|
-
)}
|
|
453
|
-
</Show>
|
|
454
|
-
```
|
|
167
|
+
### Dynamic Tags
|
|
455
168
|
|
|
456
|
-
|
|
169
|
+
Use `as.tag()` for conditional element types with optimized static templates.
|
|
457
170
|
|
|
458
|
-
|
|
171
|
+
[Component guide →](./docs/guide/components.md)
|
|
459
172
|
|
|
460
|
-
|
|
173
|
+
### Library Components
|
|
461
174
|
|
|
462
|
-
|
|
463
|
-
import { Choose } from '@arcmantle/lit-jsx';
|
|
464
|
-
|
|
465
|
-
// Multiple conditions based on a value
|
|
466
|
-
<Choose value={status}>
|
|
467
|
-
{[
|
|
468
|
-
(status) => status === 'loading',
|
|
469
|
-
() => (
|
|
470
|
-
<div class="loading">
|
|
471
|
-
<spinner-icon static></spinner-icon>
|
|
472
|
-
Loading...
|
|
473
|
-
</div>
|
|
474
|
-
)
|
|
475
|
-
]}
|
|
476
|
-
{[
|
|
477
|
-
(status) => status === 'error',
|
|
478
|
-
(status) => (
|
|
479
|
-
<div class="error">
|
|
480
|
-
Error: {status}
|
|
481
|
-
</div>
|
|
482
|
-
)
|
|
483
|
-
]}
|
|
484
|
-
{[
|
|
485
|
-
(status) => status === 'success',
|
|
486
|
-
(status) => (
|
|
487
|
-
<div class="success">
|
|
488
|
-
Operation completed successfully!
|
|
489
|
-
</div>
|
|
490
|
-
)
|
|
491
|
-
]}
|
|
492
|
-
{[
|
|
493
|
-
() => true, // Default case
|
|
494
|
-
(status) => (
|
|
495
|
-
<div class="unknown">
|
|
496
|
-
Unknown status: {status}
|
|
497
|
-
</div>
|
|
498
|
-
)
|
|
499
|
-
]}
|
|
500
|
-
</Choose>
|
|
501
|
-
|
|
502
|
-
// Without a value (boolean conditions)
|
|
503
|
-
<Choose>
|
|
504
|
-
{[
|
|
505
|
-
() => user.isAdmin,
|
|
506
|
-
() => <admin-panel static></admin-panel>
|
|
507
|
-
]}
|
|
508
|
-
{[
|
|
509
|
-
() => user.isModerator,
|
|
510
|
-
() => <moderator-panel static></moderator-panel>
|
|
511
|
-
]}
|
|
512
|
-
{[
|
|
513
|
-
() => true, // Default case
|
|
514
|
-
() => <user-panel static></user-panel>
|
|
515
|
-
]}
|
|
516
|
-
</Choose>
|
|
517
|
-
```
|
|
175
|
+
Built-in components for common patterns:
|
|
518
176
|
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
These components work seamlessly together for complex rendering scenarios:
|
|
524
|
-
|
|
525
|
-
```tsx
|
|
526
|
-
import { For, Show, Choose } from '@arcmantle/lit-jsx';
|
|
527
|
-
|
|
528
|
-
@customElement('user-dashboard')
|
|
529
|
-
export class UserDashboard extends LitElement {
|
|
530
|
-
@property({ type: Array }) users = [];
|
|
531
|
-
@property() currentUser = null;
|
|
532
|
-
@property() viewMode = 'list';
|
|
533
|
-
|
|
534
|
-
render() {
|
|
535
|
-
return (
|
|
536
|
-
<div class="dashboard">
|
|
537
|
-
{/* Conditional user greeting */}
|
|
538
|
-
<Show when={this.currentUser}>
|
|
539
|
-
{(user) => (
|
|
540
|
-
<header class="welcome">
|
|
541
|
-
Welcome back, {user.name}!
|
|
542
|
-
</header>
|
|
543
|
-
)}
|
|
544
|
-
</Show>
|
|
545
|
-
|
|
546
|
-
{/* Dynamic view rendering based on mode */}
|
|
547
|
-
<Choose value={this.viewMode}>
|
|
548
|
-
{[
|
|
549
|
-
(mode) => mode === 'grid',
|
|
550
|
-
() => (
|
|
551
|
-
<div class="user-grid">
|
|
552
|
-
<For each={this.users} key={(user) => user.id}>
|
|
553
|
-
{(user) => (
|
|
554
|
-
<div class="user-card">
|
|
555
|
-
<img src={user.avatar} alt={user.name} />
|
|
556
|
-
<h3>{user.name}</h3>
|
|
557
|
-
<p>{user.role}</p>
|
|
558
|
-
</div>
|
|
559
|
-
)}
|
|
560
|
-
</For>
|
|
561
|
-
</div>
|
|
562
|
-
)
|
|
563
|
-
]}
|
|
564
|
-
{[
|
|
565
|
-
(mode) => mode === 'list',
|
|
566
|
-
() => (
|
|
567
|
-
<div class="user-list">
|
|
568
|
-
<For each={this.users} separator={<hr />}>
|
|
569
|
-
{(user, index) => (
|
|
570
|
-
<div class="user-row">
|
|
571
|
-
<span class="user-index">{index + 1}.</span>
|
|
572
|
-
<span class="user-name">{user.name}</span>
|
|
573
|
-
<span class="user-role">{user.role}</span>
|
|
574
|
-
</div>
|
|
575
|
-
)}
|
|
576
|
-
</For>
|
|
577
|
-
</div>
|
|
578
|
-
)
|
|
579
|
-
]}
|
|
580
|
-
{[
|
|
581
|
-
() => true, // Default case
|
|
582
|
-
(mode) => (
|
|
583
|
-
<div class="error">
|
|
584
|
-
Unknown view mode: {mode}
|
|
585
|
-
</div>
|
|
586
|
-
)
|
|
587
|
-
]}
|
|
588
|
-
</Choose>
|
|
589
|
-
|
|
590
|
-
{/* Conditional empty state */}
|
|
591
|
-
<Show when={this.users.length === 0}>
|
|
592
|
-
{() => (
|
|
593
|
-
<div class="empty-state">
|
|
594
|
-
<p>No users found</p>
|
|
595
|
-
<button onclick={this.loadUsers}>Load Users</button>
|
|
596
|
-
</div>
|
|
597
|
-
)}
|
|
598
|
-
</Show>
|
|
599
|
-
</div>
|
|
600
|
-
);
|
|
601
|
-
}
|
|
602
|
-
}
|
|
603
|
-
```
|
|
177
|
+
- **`<For>`**: List rendering with keys and separators
|
|
178
|
+
- **`<Show>`**: Conditional rendering with optional fallback
|
|
179
|
+
- **`<Choose>`**: Switch-like multi-condition rendering
|
|
604
180
|
|
|
605
181
|
## 🔧 Advanced Usage
|
|
606
182
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
lit-jsx works seamlessly with all Lit directives:
|
|
610
|
-
|
|
611
|
-
```tsx
|
|
612
|
-
import { when } from 'lit-html/directives/when.js';
|
|
613
|
-
import { repeat } from 'lit-html/directives/repeat.js';
|
|
614
|
-
import { guard } from 'lit-html/directives/guard.js';
|
|
615
|
-
|
|
616
|
-
return (
|
|
617
|
-
<div>
|
|
618
|
-
{when(condition, () => <p>Conditional content</p>)}
|
|
619
|
-
{repeat(items, item => item.id, item => (
|
|
620
|
-
<li key={item.id}>{item.name}</li>
|
|
621
|
-
))}
|
|
622
|
-
{guard([expensiveData], () => (
|
|
623
|
-
<ExpensiveComponent data={expensiveData} />
|
|
624
|
-
))}
|
|
625
|
-
</div>
|
|
626
|
-
);
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
### Complex Example: Todo List
|
|
183
|
+
For comprehensive guides, examples, and best practices, see the [full documentation](./docs/).
|
|
630
184
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
@property({ type: Array }) items = [];
|
|
635
|
-
@state() private newItemText = '';
|
|
636
|
-
@state() private filter = 'all';
|
|
637
|
-
|
|
638
|
-
private inputRef = createRef();
|
|
639
|
-
|
|
640
|
-
get filteredItems() {
|
|
641
|
-
switch (this.filter) {
|
|
642
|
-
case 'active': return this.items.filter(item => !item.completed);
|
|
643
|
-
case 'completed': return this.items.filter(item => item.completed);
|
|
644
|
-
default: return this.items;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
185
|
+
- **Lit Directives**: Use all Lit directives (`when`, `repeat`, `guard`, etc.)
|
|
186
|
+
- **Performance**: Optimization tips and compiled templates
|
|
187
|
+
- **TypeScript**: Advanced typing patterns
|
|
647
188
|
|
|
648
|
-
|
|
649
|
-
if (this.newItemText.trim()) {
|
|
650
|
-
this.items = [...this.items, {
|
|
651
|
-
id: Date.now(),
|
|
652
|
-
text: this.newItemText,
|
|
653
|
-
completed: false
|
|
654
|
-
}];
|
|
655
|
-
this.newItemText = '';
|
|
656
|
-
this.inputRef.value?.focus();
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
|
|
660
|
-
render() {
|
|
661
|
-
return (
|
|
662
|
-
<div class="todo-container">
|
|
663
|
-
<h1>Todo List</h1>
|
|
664
|
-
|
|
665
|
-
<div class="add-form">
|
|
666
|
-
<input
|
|
667
|
-
ref={this.inputRef}
|
|
668
|
-
value={as.prop(this.newItemText)}
|
|
669
|
-
placeholder="Add new todo..."
|
|
670
|
-
oninput={(e) => this.newItemText = e.target.value}
|
|
671
|
-
onkeydown={(e) => e.key === 'Enter' && this.addItem()}
|
|
672
|
-
/>
|
|
673
|
-
<button onclick={this.addItem}>Add</button>
|
|
674
|
-
</div>
|
|
675
|
-
|
|
676
|
-
<div class="filters">
|
|
677
|
-
{['all', 'active', 'completed'].map(filterType => (
|
|
678
|
-
<button
|
|
679
|
-
classList={{ active: this.filter === filterType }}
|
|
680
|
-
onclick={() => this.filter = filterType}
|
|
681
|
-
>
|
|
682
|
-
{filterType}
|
|
683
|
-
</button>
|
|
684
|
-
))}
|
|
685
|
-
</div>
|
|
686
|
-
|
|
687
|
-
{when(this.filteredItems.length > 0, () => (
|
|
688
|
-
<ul class="todo-list">
|
|
689
|
-
{repeat(this.filteredItems, item => item.id, item => (
|
|
690
|
-
<TodoItem
|
|
691
|
-
todo={item}
|
|
692
|
-
onToggle={(id) => this.toggleItem(id)}
|
|
693
|
-
onDelete={(id) => this.deleteItem(id)}
|
|
694
|
-
/>
|
|
695
|
-
))}
|
|
696
|
-
</ul>
|
|
697
|
-
), () => (
|
|
698
|
-
<p class="empty-state">No items to show</p>
|
|
699
|
-
))}
|
|
700
|
-
</div>
|
|
701
|
-
);
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
```
|
|
189
|
+
[View advanced guides →](./docs/guide/performance.md)
|
|
705
190
|
|
|
706
191
|
## 🎛️ Configuration
|
|
707
192
|
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
```typescript
|
|
711
|
-
import { litJsx } from '@arcmantle/lit-jsx/vite';
|
|
712
|
-
|
|
713
|
-
export default defineConfig({
|
|
714
|
-
plugins: [
|
|
715
|
-
litJsx({
|
|
716
|
-
legacyDecorators: true,
|
|
717
|
-
useCompiledTemplates: true, // Default: true - enables compiled templates for better performance
|
|
718
|
-
useImportDiscovery: false, // Default: false - when false, requires 'static' attribute for custom elements
|
|
719
|
-
}),
|
|
720
|
-
],
|
|
721
|
-
});
|
|
722
|
-
```
|
|
193
|
+
Plugin options:
|
|
723
194
|
|
|
724
|
-
|
|
195
|
+
- `legacyDecorators`: Enable legacy decorator support
|
|
196
|
+
- `useCompiledTemplates`: Compile-time template optimization (default: true)
|
|
197
|
+
- `useImportDiscovery`: Auto-detect custom elements (default: false)
|
|
725
198
|
|
|
726
|
-
|
|
199
|
+
[Full configuration guide →](./docs/guide/vite-plugin.md)
|
|
727
200
|
|
|
728
|
-
|
|
201
|
+
## 🔗 Ecosystem & Migration
|
|
729
202
|
|
|
730
|
-
|
|
731
|
-
- **Previous behavior**: Can be restored by setting `useImportDiscovery: true` in the plugin options
|
|
732
|
-
|
|
733
|
-
**Why this change?** The static attribute approach provides better performance, more predictable compilation, and clearer intent in your JSX code.
|
|
734
|
-
|
|
735
|
-
#### Using the Static Attribute
|
|
736
|
-
|
|
737
|
-
The `static` attribute tells the compiler that an element is a custom element or dynamic tag:
|
|
738
|
-
|
|
739
|
-
```tsx
|
|
740
|
-
// ✅ Using static attribute for custom elements
|
|
741
|
-
<MyButton static>Click me</MyButton>
|
|
742
|
-
<MyCustomElement static prop={as.prop(value)}>Content</MyCustomElement>
|
|
743
|
-
|
|
744
|
-
// ✅ For dynamic tags with as.tag()
|
|
745
|
-
const Tag = as.tag(href ? 'a' : 'button');
|
|
746
|
-
<Tag static href={href}>Dynamic element</Tag>
|
|
747
|
-
|
|
748
|
-
// ❌ Without static attribute - treated as regular HTML element
|
|
749
|
-
<MyButton>Click me</MyButton>
|
|
750
|
-
|
|
751
|
-
// ✅ To restore old behavior, enable import discovery
|
|
752
|
-
// vite.config.ts: litJsx({ useImportDiscovery: true })
|
|
753
|
-
```
|
|
754
|
-
|
|
755
|
-
#### Compiled Templates Default
|
|
756
|
-
|
|
757
|
-
Compiled templates are now enabled by default (`useCompiledTemplates: true`) for better performance. The compiler intelligently skips static compilation when children contain dynamic expressions that aren't statically known to be JSX elements.
|
|
758
|
-
|
|
759
|
-
## 🚀 Template Types
|
|
760
|
-
|
|
761
|
-
lit-jsx automatically detects and uses the appropriate template type:
|
|
762
|
-
|
|
763
|
-
- **HTML templates**: `html\`...\`` for regular HTML elements
|
|
764
|
-
- **SVG templates**: `svg\`...\`` for SVG elements
|
|
765
|
-
- **MathML templates**: `mathml\`...\`` for MathML elements
|
|
766
|
-
- **Static templates**: `htmlStatic\`...\`` for dynamic tag names
|
|
767
|
-
|
|
768
|
-
## 🎯 Best Practices
|
|
769
|
-
|
|
770
|
-
### When to Use Each Binding Type
|
|
771
|
-
|
|
772
|
-
#### **Attribute Binding (Default)**
|
|
773
|
-
|
|
774
|
-
- Custom attributes and data attributes
|
|
775
|
-
- Values that should appear in HTML as attributes
|
|
776
|
-
- Working with libraries that expect attributes
|
|
777
|
-
|
|
778
|
-
```tsx
|
|
779
|
-
<div data-id={item.id} aria-label={item.description} />
|
|
780
|
-
```
|
|
781
|
-
|
|
782
|
-
#### **Property Binding (`as.prop()`)**
|
|
783
|
-
|
|
784
|
-
- Standard DOM properties like `value`, `checked`, `selected`
|
|
785
|
-
- Interactive elements that need live property updates
|
|
786
|
-
- Complex object values
|
|
787
|
-
|
|
788
|
-
```tsx
|
|
789
|
-
<input value={as.prop(formData.email)} checked={as.prop(isSelected)} />
|
|
790
|
-
```
|
|
791
|
-
|
|
792
|
-
#### **Boolean Attribute Binding (`as.bool()`)**
|
|
793
|
-
|
|
794
|
-
- Boolean HTML attributes like `disabled`, `hidden`, `readonly`
|
|
795
|
-
- Accessibility attributes that follow boolean patterns
|
|
796
|
-
- Presence/absence semantics
|
|
797
|
-
|
|
798
|
-
```tsx
|
|
799
|
-
<button disabled={as.bool(isLoading)} hidden={as.bool(!isVisible)} />
|
|
800
|
-
```
|
|
801
|
-
|
|
802
|
-
### Function Component Guidelines
|
|
803
|
-
|
|
804
|
-
- Use descriptive prop names and provide defaults where appropriate
|
|
805
|
-
- Keep components focused and composable
|
|
806
|
-
- Leverage TypeScript for better developer experience
|
|
807
|
-
- Handle `children` appropriately for flexible composition
|
|
808
|
-
|
|
809
|
-
### Dynamic Tag Best Practices
|
|
810
|
-
|
|
811
|
-
- Always use `as.tag()` to define your dynamic tags
|
|
812
|
-
- Use descriptive variable names for clarity
|
|
813
|
-
- Consider TypeScript for better type safety with HTML elements
|
|
814
|
-
- Document complex dynamic tag logic
|
|
815
|
-
|
|
816
|
-
## 🔗 Ecosystem Integration
|
|
817
|
-
|
|
818
|
-
lit-jsx is designed to work seamlessly with the entire Lit ecosystem:
|
|
819
|
-
|
|
820
|
-
- **Lit Elements**: Full compatibility with LitElement and reactive properties
|
|
821
|
-
- **Lit Directives**: All official and community directives work out of the box
|
|
822
|
-
- **Custom Elements**: Easy integration with any custom elements
|
|
823
|
-
- **Web Components**: Standard web component patterns and lifecycle
|
|
824
|
-
- **TypeScript**: Leverages native browser type definitions (`lib.dom.d.ts`) for accurate type checking and exceptional IntelliSense support
|
|
825
|
-
|
|
826
|
-
## 📚 Migration Guide
|
|
827
|
-
|
|
828
|
-
### Migrating from Earlier Versions
|
|
829
|
-
|
|
830
|
-
If you're upgrading from v1.0.33 or earlier, please check the [CHANGELOG](./CHANGELOG.md) for breaking changes and migration instructions. Key changes include:
|
|
831
|
-
|
|
832
|
-
- **v1.0.34**: Event handlers now use React-style syntax (`onclick` instead of `on-click`)
|
|
833
|
-
- **v1.0.33**: Custom elements require the `static` attribute for identification
|
|
834
|
-
|
|
835
|
-
### Coming from React
|
|
836
|
-
|
|
837
|
-
lit-jsx uses familiar JSX syntax with native DOM attribute names:
|
|
838
|
-
|
|
839
|
-
```tsx
|
|
840
|
-
// React
|
|
841
|
-
<button onClick={handler} className="btn" disabled={true} />
|
|
842
|
-
|
|
843
|
-
// lit-jsx
|
|
844
|
-
<button onclick={handler} class="btn" disabled={as.bool(true)} />
|
|
845
|
-
```
|
|
846
|
-
|
|
847
|
-
Key differences:
|
|
848
|
-
|
|
849
|
-
- Event handlers: `onclick`, `onchange`, etc. (lowercase, no camelCase)
|
|
850
|
-
- Class attribute: `class` instead of `className`
|
|
851
|
-
- Boolean attributes: Use `as.bool()` for proper binding
|
|
852
|
-
- Property binding: Use `as.prop()` for DOM properties
|
|
853
|
-
|
|
854
|
-
### Coming from Lit html Templates
|
|
855
|
-
|
|
856
|
-
lit-jsx provides a more intuitive syntax for Lit templates:
|
|
857
|
-
|
|
858
|
-
```tsx
|
|
859
|
-
// Lit html
|
|
860
|
-
html`<div class=${classMap(classes)} @click=${handler}>${content}</div>`
|
|
861
|
-
|
|
862
|
-
// lit-jsx
|
|
863
|
-
<div classList={classes} onclick={handler}>{content}</div>
|
|
864
|
-
```
|
|
203
|
+
Full compatibility with:
|
|
865
204
|
|
|
866
|
-
|
|
205
|
+
- LitElement and reactive properties
|
|
206
|
+
- All Lit directives
|
|
207
|
+
- Web Components standards
|
|
208
|
+
- TypeScript with native DOM types
|
|
867
209
|
|
|
868
|
-
|
|
869
|
-
- Type-safe components and props
|
|
870
|
-
- Cleaner, more readable code
|
|
871
|
-
- Full access to all Lit features and directives
|
|
210
|
+
Migrating from React or Lit templates? See the [migration guide](./CHANGELOG.md).
|
|
872
211
|
|
|
873
212
|
## 🤝 Contributing
|
|
874
213
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-processor.d.ts","sourceRoot":"","sources":["../../src/compiler/attribute-processor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"attribute-processor.d.ts","sourceRoot":"","sources":["../../src/compiler/attribute-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,7 +149,18 @@ class AttributeProcessor {
|
|
|
149
149
|
return [attr.name.name.toString().slice(ATTR_NAMES.EVENT_PREFIX.length), attr.value.expression];
|
|
150
150
|
}
|
|
151
151
|
createExpression(attr, context) {
|
|
152
|
-
|
|
152
|
+
const name = attr.name.name.toString();
|
|
153
|
+
let expression = attr.value.expression;
|
|
154
|
+
// Automatically wrap object literals in classMap/styleMap for convenience
|
|
155
|
+
if (name === 'class' && t.isObjectExpression(expression)) {
|
|
156
|
+
context.importsUsed.add('classMap');
|
|
157
|
+
expression = t.callExpression(t.identifier(VARIABLES.CLASS_MAP_LOCAL), [expression]);
|
|
158
|
+
}
|
|
159
|
+
else if (name === 'style' && t.isObjectExpression(expression)) {
|
|
160
|
+
context.importsUsed.add('styleMap');
|
|
161
|
+
expression = t.callExpression(t.identifier(VARIABLES.STYLE_MAP_LOCAL), [expression]);
|
|
162
|
+
}
|
|
163
|
+
return [name, expression];
|
|
153
164
|
}
|
|
154
165
|
createNonExpression(attr, context) {
|
|
155
166
|
// If the value is a string, we can use it directly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-processor.js","sourceRoot":"","sources":["../../src/compiler/attribute-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attribute-processor.js","sourceRoot":"","sources":["../../src/compiler/attribute-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,13 +5,17 @@ declare global {
|
|
|
5
5
|
namespace LitJSX {
|
|
6
6
|
type HTMLElementAssignableProps<T extends object & Record<string, any>> = Partial<TrimReadonly<T>>;
|
|
7
7
|
type HTMLElementProps = HTMLElementAssignableProps<HTMLElement>;
|
|
8
|
-
type JSXElementProps<T extends object> = HTMLElementAssignableProps<T> & {
|
|
8
|
+
type JSXElementProps<T extends object> = Omit<HTMLElementAssignableProps<T>, 'style'> & {
|
|
9
9
|
children?: LitJSX.Child;
|
|
10
10
|
ref?: RefOrCallback<HTMLElementAssignableProps<T>>;
|
|
11
11
|
classList?: {
|
|
12
12
|
[k: string]: boolean | undefined;
|
|
13
13
|
};
|
|
14
14
|
styleList?: CSSProperties;
|
|
15
|
+
class?: {
|
|
16
|
+
[k: string]: boolean | undefined;
|
|
17
|
+
} | string;
|
|
18
|
+
style?: CSSProperties | string;
|
|
15
19
|
/**
|
|
16
20
|
* This property takes in one or more element directives.
|
|
17
21
|
* This is akin to applying a directive through `<div ${myDirective()}></div>`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM,CAAC;QAChB,KAAK,0BAA0B,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACrE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1B,KAAK,gBAAgB,GAAG,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAEhE,KAAK,eAAe,CAAC,CAAC,SAAS,MAAM,IAAI,0BAA0B,CAAC,CAAC,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"jsx-core.d.ts","sourceRoot":"","sources":["../../src/shared/jsx-core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcmantle/lit-jsx",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "A JSX runtime and compiler that transforms JSX into Lit templates.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -41,13 +41,20 @@
|
|
|
41
41
|
"oxc-parser": "^0.103.0",
|
|
42
42
|
"oxc-walker": "^0.6.0",
|
|
43
43
|
"rimraf": "^6.1.2",
|
|
44
|
+
"typedoc": "^0.28.15",
|
|
45
|
+
"typedoc-plugin-markdown": "^4.9.0",
|
|
44
46
|
"typescript": "^5.9.3",
|
|
45
47
|
"vite": "^7.3.0",
|
|
48
|
+
"vitepress": "^1.6.4",
|
|
46
49
|
"vitest": "^4.0.16"
|
|
47
50
|
},
|
|
48
51
|
"scripts": {
|
|
49
52
|
"build": "rimraf dist && tsc --project ./src/tsconfig.json",
|
|
50
53
|
"dev": "vite build --watch --mode=development",
|
|
54
|
+
"docs:build": "typedoc --options docs/typedoc.json && vitepress build docs",
|
|
55
|
+
"docs:dev": "vitepress dev docs",
|
|
56
|
+
"docs:preview": "vitepress preview docs",
|
|
57
|
+
"docs:typedoc": "typedoc --options docs/typedoc.json",
|
|
51
58
|
"test": "pnpm vitest run"
|
|
52
59
|
}
|
|
53
60
|
}
|
|
@@ -267,7 +267,26 @@ abstract class AttributeProcessor<TContext extends ProcessorContext> {
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
protected createExpression(attr: JSXAttributeWithExpression, context: TContext): [string, t.Expression] {
|
|
270
|
-
|
|
270
|
+
const name = attr.name.name.toString();
|
|
271
|
+
let expression = attr.value.expression;
|
|
272
|
+
|
|
273
|
+
// Automatically wrap object literals in classMap/styleMap for convenience
|
|
274
|
+
if (name === 'class' && t.isObjectExpression(expression)) {
|
|
275
|
+
context.importsUsed.add('classMap');
|
|
276
|
+
expression = t.callExpression(
|
|
277
|
+
t.identifier(VARIABLES.CLASS_MAP_LOCAL),
|
|
278
|
+
[ expression ],
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
else if (name === 'style' && t.isObjectExpression(expression)) {
|
|
282
|
+
context.importsUsed.add('styleMap');
|
|
283
|
+
expression = t.callExpression(
|
|
284
|
+
t.identifier(VARIABLES.STYLE_MAP_LOCAL),
|
|
285
|
+
[ expression ],
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return [ name, expression ];
|
|
271
290
|
}
|
|
272
291
|
|
|
273
292
|
protected createNonExpression(attr: JSXAttributeWithoutExpression, context: TContext): [string, string] {
|
package/src/shared/jsx-core.ts
CHANGED
|
@@ -10,11 +10,13 @@ declare global {
|
|
|
10
10
|
|
|
11
11
|
type HTMLElementProps = HTMLElementAssignableProps<HTMLElement>;
|
|
12
12
|
|
|
13
|
-
type JSXElementProps<T extends object> = HTMLElementAssignableProps<T> & {
|
|
13
|
+
type JSXElementProps<T extends object> = Omit<HTMLElementAssignableProps<T>, 'style'> & {
|
|
14
14
|
children?: LitJSX.Child;
|
|
15
15
|
ref?: RefOrCallback<HTMLElementAssignableProps<T>>;
|
|
16
16
|
classList?: { [k: string]: boolean | undefined; };
|
|
17
17
|
styleList?: CSSProperties;
|
|
18
|
+
class?: { [k: string]: boolean | undefined; } | string;
|
|
19
|
+
style?: CSSProperties | string;
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* This property takes in one or more element directives.
|