@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 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
- ### Custom Element Identification
124
+ For complete documentation, visit the [full documentation site](./docs/).
121
125
 
122
- lit-jsx needs to know which elements are custom elements to compile them correctly. Custom elements must be identified using the `static` attribute:
126
+ ### Custom Element Identification
123
127
 
124
- ```tsx
125
- // Custom elements - requires static attribute
126
- <my-custom-element static prop={as.prop(value)}>Content</my-custom-element>
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
- **Alternative**: Enable automatic import discovery by setting `useImportDiscovery: true` in your Vite config to restore the previous behavior where the compiler automatically detects custom elements.
132
+ [Learn more →](./docs/guide/custom-elements.md)
136
133
 
137
134
  ### Attribute Binding Control
138
135
 
139
- lit-jsx provides precise control over how values are bound to elements:
136
+ - **Default**: Attribute binding (`value={x}`)
137
+ - **`as.prop()`**: Property binding (`.property=${x}`)
138
+ - **`as.bool()`**: Boolean attribute binding (`?disabled=${x}`)
140
139
 
141
- #### Default Behavior (Attribute Binding)
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
- #### classList - Object to Class Mapping
165
-
166
- ```tsx
167
- <div classList={{ active: isActive, disabled: !isEnabled }}>
168
- // Compiles to: <div class=${classMap({ active: isActive, disabled: !isEnabled })}>
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
- Common event handlers include `onclick`, `onchange`, `onsubmit`, `onkeydown`, `onmouseover`, etc.
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
- lit-jsx fully supports function components that return JSX:
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
- - **Without key**: Uses `map` directive for simple iteration
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
- #### Show Component - Conditional Rendering
161
+ ### Custom Elements
414
162
 
415
- The `Show` component provides type-safe conditional rendering with optional fallback:
163
+ Use LitElement classes directly in JSX with full type safety and generic support. Classes require the `static` attribute.
416
164
 
417
- ```tsx
418
- import { Show } from '@arcmantle/lit-jsx';
165
+ [Learn more →](./docs/guide/custom-elements.md)
419
166
 
420
- // Simple conditional rendering
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
- The `Show` component uses lit-html's `when` directive internally and provides strong TypeScript inference for the truthy value.
169
+ Use `as.tag()` for conditional element types with optimized static templates.
457
170
 
458
- #### Choose Component - Multi-Condition Rendering
171
+ [Component guide →](./docs/guide/components.md)
459
172
 
460
- The `Choose` component enables clean switch-like conditional rendering with multiple condition-output pairs:
173
+ ### Library Components
461
174
 
462
- ```tsx
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
- The `Choose` component evaluates conditions in order and renders the first matching case, similar to a switch statement but as an expression.
520
-
521
- #### Combining Library Components
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
- ### Lit Directives Integration
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
- ```tsx
632
- @customElement('todo-list')
633
- export class TodoList extends LitElement {
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
- addItem() {
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
- ### Vite Plugin Options
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
- ### Breaking Changes in v1.0.33
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
- #### Import Discovery Now Opt-In
199
+ [Full configuration guide →](./docs/guide/vite-plugin.md)
727
200
 
728
- Starting in v1.0.33, import discovery is disabled by default. This means:
201
+ ## 🔗 Ecosystem & Migration
729
202
 
730
- - **New default behavior**: Custom elements and dynamic tags must be identified using the `static` attribute
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
- Benefits:
205
+ - LitElement and reactive properties
206
+ - All Lit directives
207
+ - Web Components standards
208
+ - TypeScript with native DOM types
867
209
 
868
- - Familiar JSX syntax with better IDE support
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
- return [attr.name.name.toString(), attr.value.expression];
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":"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"}
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.2",
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
- return [ attr.name.name.toString(), attr.value.expression ];
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] {
@@ -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.