@bodil/dom 0.2.0 → 0.2.2

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.
@@ -47,6 +47,8 @@ export declare abstract class Component extends EmitterElement implements Reacti
47
47
  * class MyComponent extends Component {
48
48
  * static deps: Deps = [ MySubcomponent, MyOtherSubcomponent ];
49
49
  * }
50
+ *
51
+ * @category Declarations
50
52
  */
51
53
  static deps: Deps;
52
54
  /**
@@ -66,8 +68,13 @@ export declare abstract class Component extends EmitterElement implements Reacti
66
68
  * }
67
69
  * `;
68
70
  * }
71
+ *
72
+ * @category Declarations
69
73
  */
70
74
  static styles?: CSSStyleSpecDeclaration;
75
+ /**
76
+ * @category Advanced
77
+ */
71
78
  static shadowRootOptions: ShadowRootInit;
72
79
  private static initialisers;
73
80
  /** @ignore */
@@ -77,13 +84,28 @@ export declare abstract class Component extends EmitterElement implements Reacti
77
84
  /** @ignore */
78
85
  protected static requiredProperties: Set<string | symbol>;
79
86
  private static [finalised];
87
+ /**
88
+ * @category Advanced
89
+ */
80
90
  renderOptions: RenderOptions;
91
+ /**
92
+ * {@inheritDoc EmitterElement.emits}
93
+ * @category Declarations
94
+ */
81
95
  emits: object;
96
+ /**
97
+ * @category Advanced
98
+ */
82
99
  readonly renderRoot: ShadowRoot | HTMLElement;
83
100
  /**
84
101
  * True if this component had scheduled an update which has not yet started.
102
+ *
103
+ * @category Render
85
104
  */
86
105
  get isUpdatePending(): boolean;
106
+ /**
107
+ * @category Render
108
+ */
87
109
  get updateComplete(): Promise<boolean>;
88
110
  /**
89
111
  * A {@link Promise} which resolves when this component has completed its
@@ -92,6 +114,8 @@ export declare abstract class Component extends EmitterElement implements Reacti
92
114
  *
93
115
  * By default, a component considers itself stabilised when all of its
94
116
  * children which are also {@link Component}s are reporting as stabilised.
117
+ *
118
+ * @category Render
95
119
  */
96
120
  get hasStabilised(): Promise<void>;
97
121
  /**
@@ -101,11 +125,15 @@ export declare abstract class Component extends EmitterElement implements Reacti
101
125
  * This can be passed along to asynchronous tasks such as {@link fetch}
102
126
  * initiated by this component, which will then be aborted automatically if
103
127
  * the component is removed from the DOM.
128
+ *
129
+ * @category Advanced
104
130
  */
105
131
  get abortSignal(): AbortSignal;
106
132
  /**
107
133
  * Register a function which will be executed whenever an instance of this
108
134
  * class is constructed.
135
+ *
136
+ * @category Advanced
109
137
  */
110
138
  static addInitialiser(init: (this: Component) => void): void;
111
139
  /**
@@ -133,7 +161,16 @@ export declare abstract class Component extends EmitterElement implements Reacti
133
161
  * @ignore
134
162
  */
135
163
  $signal<K extends keyof this & string, V extends this[K]>(prop: K): Signal.Computed<V>;
164
+ /**
165
+ * Adds a controller to the host, which sets up the controller's lifecycle
166
+ * methods to be called with the host's lifecycle.
167
+ * @category Advanced
168
+ */
136
169
  addController(controller: ReactiveController): void;
170
+ /**
171
+ * Removes a controller from the host.
172
+ * @category Advanced
173
+ */
137
174
  removeController(controller: ReactiveController): void;
138
175
  /**
139
176
  * Create the component's render root.
@@ -144,10 +181,20 @@ export declare abstract class Component extends EmitterElement implements Reacti
144
181
  * If you don't want to use a shadow DOM, you can override this method to
145
182
  * just `return this`, which causes the component's contents to render as
146
183
  * direct children of the component itself.
184
+ *
185
+ * @category Advanced
147
186
  */
148
187
  protected createRenderRoot(): HTMLElement | ShadowRoot;
188
+ /**
189
+ * Add a style sheet to the component's shadow root.
190
+ *
191
+ * @category Advanced
192
+ */
193
+ addStyleSheet(spec: CSSStyleSpecDeclaration): void;
149
194
  /**
150
195
  * Ask this component to update itself.
196
+ *
197
+ * @category Render
151
198
  */
152
199
  requestUpdate(opts?: UpdateConfig): void;
153
200
  /**
@@ -161,6 +208,8 @@ export declare abstract class Component extends EmitterElement implements Reacti
161
208
  /**
162
209
  * Return an iterator over this component's children which are also
163
210
  * {@link Component}s.
211
+ *
212
+ * @category Queries
164
213
  */
165
214
  protected findChildComponents(root?: Element | ShadowRoot): IteratorObject<Component>;
166
215
  /**
@@ -169,25 +218,31 @@ export declare abstract class Component extends EmitterElement implements Reacti
169
218
  *
170
219
  * The default implementation waits for any children which are also
171
220
  * {@link Component}s to report that they have also stabilised.
221
+ *
222
+ * @category Render
172
223
  */
173
224
  protected stabilise(): Promise<void>;
174
225
  /**
175
226
  * This lifecycle callback is called each time this component is connected
176
227
  * to the DOM.
228
+ * @category Lifecycle
177
229
  */
178
230
  protected connected(): void;
179
231
  /**
180
232
  * This lifecycle callback is called each time this component is
181
233
  * disconnected from the DOM.
234
+ * @category Lifecycle
182
235
  */
183
236
  protected disconnected(): void;
184
237
  /**
185
238
  * This lifecycle callback is called each time an update has completed.
239
+ * @category Lifecycle
186
240
  */
187
241
  protected updated(): void;
188
242
  /**
189
243
  * This lifecycle callback is called after the component's first update has
190
244
  * completed, and before {@link Component.updated}.
245
+ * @category Lifecycle
191
246
  */
192
247
  protected firstUpdated(): void;
193
248
  /**
@@ -195,18 +250,21 @@ export declare abstract class Component extends EmitterElement implements Reacti
195
250
  * stabilised after its first update.
196
251
  *
197
252
  * @see {@link Component.hasStabilised}
253
+ * @category Lifecycle
198
254
  */
199
255
  protected stabilised(): void;
200
256
  /**
201
257
  * This lifecycle callback is called every time a property decorated with
202
258
  * the @{@link require} decorator has changed, but only when every property
203
259
  * marked as such is not `undefined`.
260
+ * @category Lifecycle
204
261
  */
205
262
  protected initialised(): void;
206
263
  /**
207
264
  * This lifecycle callback is called the first time every property decorated
208
265
  * with @{@link require} has been defined, and before
209
266
  * {@link Component.initialised}.
267
+ * @category Lifecycle
210
268
  */
211
269
  protected firstInitialised(): void;
212
270
  /**
@@ -224,12 +282,16 @@ export declare abstract class Component extends EmitterElement implements Reacti
224
282
  * `;
225
283
  * }
226
284
  * }
285
+ *
286
+ * @category Render
227
287
  */
228
288
  protected render(): unknown;
289
+ /** @internal */
229
290
  [Symbol.dispose](): void;
230
291
  /**
231
292
  * Register a {@link Disposable} for automatic disposal when this component
232
293
  * is disposed.
294
+ * @category Resources
233
295
  */
234
296
  use(disposifiable: undefined): undefined;
235
297
  use(disposifiable: null): null;
@@ -251,6 +313,7 @@ export declare abstract class Component extends EmitterElement implements Reacti
251
313
  * super.connectedCallback();
252
314
  * this.useWhileConnected(this.on("click", this.handleClick.bind(this)));
253
315
  * }
316
+ * @category Resources
254
317
  */
255
318
  useWhileConnected(disposifiable: Disposifiable, secondDisposable: Disposifiable, ...disposifiables: Array<Disposifiable>): Array<Disposable>;
256
319
  useWhileConnected(disposifiable: undefined): undefined;
@@ -262,12 +325,14 @@ export declare abstract class Component extends EmitterElement implements Reacti
262
325
  * Attach an event listener to an event on this component.
263
326
  *
264
327
  * @returns A {@link Disposable} to subsequently detach the event listener.
328
+ * @category Events
265
329
  */
266
330
  on<K extends keyof HTMLElementEventMap>(type: K, callback: (event: HTMLElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): Disposable;
267
331
  /**
268
332
  * If an element that is either inside this element's shadow root or is a
269
333
  * child of this element (ie. slotted) currently has focus, return that
270
334
  * element. Otherwise, return null.
335
+ * @category Queries
271
336
  */
272
337
  getFocusedElement(): Element | null;
273
338
  /**
@@ -290,6 +355,7 @@ export declare abstract class Component extends EmitterElement implements Reacti
290
355
  * return html`<button>I am a button</button>`;
291
356
  * }
292
357
  * }
358
+ * @category Queries
293
359
  */
294
360
  query<El extends keyof HTMLElementTagNameMap>(selector: El): HTMLElementTagNameMap[El] | null;
295
361
  query<El extends keyof SVGElementTagNameMap>(selector: El): SVGElementTagNameMap[El] | null;
@@ -320,6 +386,7 @@ export declare abstract class Component extends EmitterElement implements Reacti
320
386
  * `;
321
387
  * }
322
388
  * }
389
+ * @category Queries
323
390
  */
324
391
  queryAll<El extends keyof HTMLElementTagNameMap>(selector: El): NodeListOf<HTMLElementTagNameMap[El]>;
325
392
  queryAll<El extends keyof SVGElementTagNameMap>(selector: El): NodeListOf<SVGElementTagNameMap[El]>;
@@ -333,6 +400,7 @@ export declare abstract class Component extends EmitterElement implements Reacti
333
400
  *
334
401
  * If you include `reactive: true` in your query, the result will be a
335
402
  * signal which updates with the contents of the slot.
403
+ * @category Queries
336
404
  */
337
405
  querySlot(options: QuerySlotOptions & {
338
406
  nodes: true;
package/dist/component.js CHANGED
@@ -48,8 +48,13 @@ export class Component extends EmitterElement {
48
48
  * class MyComponent extends Component {
49
49
  * static deps: Deps = [ MySubcomponent, MyOtherSubcomponent ];
50
50
  * }
51
+ *
52
+ * @category Declarations
51
53
  */
52
54
  static { this.deps = []; }
55
+ /**
56
+ * @category Advanced
57
+ */
53
58
  static { this.shadowRootOptions = { mode: "open" }; }
54
59
  static { this.initialisers = new Set(); }
55
60
  /** @ignore */
@@ -75,10 +80,15 @@ export class Component extends EmitterElement {
75
80
  #ignoreAttributeUpdates;
76
81
  /**
77
82
  * True if this component had scheduled an update which has not yet started.
83
+ *
84
+ * @category Render
78
85
  */
79
86
  get isUpdatePending() {
80
87
  return this.#isUpdatePending;
81
88
  }
89
+ /**
90
+ * @category Render
91
+ */
82
92
  get updateComplete() {
83
93
  return this.#updateResult.promise;
84
94
  }
@@ -89,6 +99,8 @@ export class Component extends EmitterElement {
89
99
  *
90
100
  * By default, a component considers itself stabilised when all of its
91
101
  * children which are also {@link Component}s are reporting as stabilised.
102
+ *
103
+ * @category Render
92
104
  */
93
105
  get hasStabilised() {
94
106
  return this.#stabilised.promise;
@@ -100,6 +112,8 @@ export class Component extends EmitterElement {
100
112
  * This can be passed along to asynchronous tasks such as {@link fetch}
101
113
  * initiated by this component, which will then be aborted automatically if
102
114
  * the component is removed from the DOM.
115
+ *
116
+ * @category Advanced
103
117
  */
104
118
  get abortSignal() {
105
119
  return this.#abortController.signal;
@@ -108,6 +122,8 @@ export class Component extends EmitterElement {
108
122
  /**
109
123
  * Register a function which will be executed whenever an instance of this
110
124
  * class is constructed.
125
+ *
126
+ * @category Advanced
111
127
  */
112
128
  static addInitialiser(init) {
113
129
  if (!Object.hasOwn(this, "initialisers")) {
@@ -158,6 +174,9 @@ export class Component extends EmitterElement {
158
174
  /** @ignore */
159
175
  constructor() {
160
176
  super();
177
+ /**
178
+ * @category Advanced
179
+ */
161
180
  this.renderOptions = { host: this };
162
181
  this.#controllers = new Set();
163
182
  this.#connectedContext = new DisposableContext();
@@ -170,6 +189,9 @@ export class Component extends EmitterElement {
170
189
  this.#firstUpdate = false;
171
190
  this.#initialised = false;
172
191
  this.#viewTransitionRequested = false;
192
+ /**
193
+ * @category Advanced
194
+ */
173
195
  this.renderRoot = this.createRenderRoot();
174
196
  this.#abortController = new AbortController();
175
197
  this.#ignoreAttributeUpdates = 1;
@@ -282,12 +304,21 @@ export class Component extends EmitterElement {
282
304
  throw new TypeError(`Object has no reactive property ${JSON.stringify(prop)}`);
283
305
  });
284
306
  }
307
+ /**
308
+ * Adds a controller to the host, which sets up the controller's lifecycle
309
+ * methods to be called with the host's lifecycle.
310
+ * @category Advanced
311
+ */
285
312
  addController(controller) {
286
313
  this.#controllers.add(controller);
287
314
  if (this.renderRoot !== undefined && this.isConnected) {
288
315
  controller.hostConnected?.();
289
316
  }
290
317
  }
318
+ /**
319
+ * Removes a controller from the host.
320
+ * @category Advanced
321
+ */
291
322
  removeController(controller) {
292
323
  this.#controllers.delete(controller);
293
324
  }
@@ -300,6 +331,8 @@ export class Component extends EmitterElement {
300
331
  * If you don't want to use a shadow DOM, you can override this method to
301
332
  * just `return this`, which causes the component's contents to render as
302
333
  * direct children of the component itself.
334
+ *
335
+ * @category Advanced
303
336
  */
304
337
  createRenderRoot() {
305
338
  const renderRoot = this.shadowRoot ??
@@ -308,8 +341,29 @@ export class Component extends EmitterElement {
308
341
  this.renderOptions.renderBefore ??= renderRoot.firstChild;
309
342
  return renderRoot;
310
343
  }
344
+ /**
345
+ * Add a style sheet to the component's shadow root.
346
+ *
347
+ * @category Advanced
348
+ */
349
+ addStyleSheet(spec) {
350
+ if (!(this.renderRoot instanceof ShadowRoot)) {
351
+ throw new Error("Component needs a shadow root in order to add a style sheet");
352
+ }
353
+ const sheets = (Array.isArray(spec)
354
+ ? spec.flat(Infinity)
355
+ : [spec]).map(processCSSStyleSpec);
356
+ for (const sheet of sheets) {
357
+ const doc = sheet instanceof CSSStyleSheet ? sheet : sheet.styleSheet;
358
+ if (doc !== undefined) {
359
+ this.renderRoot.adoptedStyleSheets.push(doc);
360
+ }
361
+ }
362
+ }
311
363
  /**
312
364
  * Ask this component to update itself.
365
+ *
366
+ * @category Render
313
367
  */
314
368
  requestUpdate(opts) {
315
369
  this.#dirty = true;
@@ -409,6 +463,8 @@ export class Component extends EmitterElement {
409
463
  /**
410
464
  * Return an iterator over this component's children which are also
411
465
  * {@link Component}s.
466
+ *
467
+ * @category Queries
412
468
  */
413
469
  findChildComponents(root = this.renderRoot) {
414
470
  return findDescendants(root, (el) => el instanceof Component);
@@ -419,6 +475,8 @@ export class Component extends EmitterElement {
419
475
  *
420
476
  * The default implementation waits for any children which are also
421
477
  * {@link Component}s to report that they have also stabilised.
478
+ *
479
+ * @category Render
422
480
  */
423
481
  async stabilise() {
424
482
  // wait for children to stabilise
@@ -429,6 +487,7 @@ export class Component extends EmitterElement {
429
487
  /**
430
488
  * This lifecycle callback is called each time this component is connected
431
489
  * to the DOM.
490
+ * @category Lifecycle
432
491
  */
433
492
  connected() {
434
493
  //
@@ -436,12 +495,14 @@ export class Component extends EmitterElement {
436
495
  /**
437
496
  * This lifecycle callback is called each time this component is
438
497
  * disconnected from the DOM.
498
+ * @category Lifecycle
439
499
  */
440
500
  disconnected() {
441
501
  //
442
502
  }
443
503
  /**
444
504
  * This lifecycle callback is called each time an update has completed.
505
+ * @category Lifecycle
445
506
  */
446
507
  updated() {
447
508
  //
@@ -449,6 +510,7 @@ export class Component extends EmitterElement {
449
510
  /**
450
511
  * This lifecycle callback is called after the component's first update has
451
512
  * completed, and before {@link Component.updated}.
513
+ * @category Lifecycle
452
514
  */
453
515
  firstUpdated() {
454
516
  //
@@ -458,6 +520,7 @@ export class Component extends EmitterElement {
458
520
  * stabilised after its first update.
459
521
  *
460
522
  * @see {@link Component.hasStabilised}
523
+ * @category Lifecycle
461
524
  */
462
525
  stabilised() {
463
526
  //
@@ -466,6 +529,7 @@ export class Component extends EmitterElement {
466
529
  * This lifecycle callback is called every time a property decorated with
467
530
  * the @{@link require} decorator has changed, but only when every property
468
531
  * marked as such is not `undefined`.
532
+ * @category Lifecycle
469
533
  */
470
534
  initialised() {
471
535
  //
@@ -474,6 +538,7 @@ export class Component extends EmitterElement {
474
538
  * This lifecycle callback is called the first time every property decorated
475
539
  * with @{@link require} has been defined, and before
476
540
  * {@link Component.initialised}.
541
+ * @category Lifecycle
477
542
  */
478
543
  firstInitialised() {
479
544
  //
@@ -493,10 +558,13 @@ export class Component extends EmitterElement {
493
558
  * `;
494
559
  * }
495
560
  * }
561
+ *
562
+ * @category Render
496
563
  */
497
564
  render() {
498
565
  return nothing;
499
566
  }
567
+ /** @internal */
500
568
  [(_a = finalised, Symbol.dispose)]() {
501
569
  for (const child of this.findChildComponents()) {
502
570
  child[Symbol.dispose]();
@@ -534,6 +602,7 @@ export class Component extends EmitterElement {
534
602
  * Attach an event listener to an event on this component.
535
603
  *
536
604
  * @returns A {@link Disposable} to subsequently detach the event listener.
605
+ * @category Events
537
606
  */
538
607
  on(type, callback, options) {
539
608
  return eventListener(this, type, callback, options);
@@ -542,6 +611,7 @@ export class Component extends EmitterElement {
542
611
  * If an element that is either inside this element's shadow root or is a
543
612
  * child of this element (ie. slotted) currently has focus, return that
544
613
  * element. Otherwise, return null.
614
+ * @category Queries
545
615
  */
546
616
  getFocusedElement() {
547
617
  return this.shadowRoot?.activeElement ?? this.querySelector(":focus");
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
package/dist/emitter.d.ts CHANGED
@@ -67,6 +67,8 @@ export declare class EmitterElement extends HTMLElement {
67
67
  * class MyElement extends EmitterElement {
68
68
  * emits!: Emits<"my-event" | "my-other-event";
69
69
  * }
70
+ *
71
+ * @category Events
70
72
  */
71
73
  emits: {
72
74
  [K in keyof HTMLElementEventMap]?: never;
@@ -75,6 +77,8 @@ export declare class EmitterElement extends HTMLElement {
75
77
  * Emit a custom event with the given name and detail.
76
78
  *
77
79
  * Event init options default to `{ bubbles: true, composed: true }`.
80
+ *
81
+ * @category Events
78
82
  */
79
83
  emit<M extends CustomEventTypes<keyof this["emits"] & keyof HTMLElementEventMap>, K extends Extract<keyof M, string>, D extends M[K]>(name: K, detail?: D, options?: EventInit): CustomEvent<D>;
80
84
  /**
@@ -86,6 +90,8 @@ export declare class EmitterElement extends HTMLElement {
86
90
  * @example
87
91
  * this.emitEvent("click", MouseEvent, { button: 2 });
88
92
  * // emits: new MouseEvent("click", { button: 2 });
93
+ *
94
+ * @category Events
89
95
  */
90
96
  emitEvent<K extends keyof this["emits"] & keyof HTMLElementEventMap, E extends HTMLElementEventMap[K], C extends new (type: string, ...args: Args) => E, Args extends Array<any>>(name: K, constructor: C, ...args: Args): E;
91
97
  }
package/dist/emitter.js CHANGED
@@ -27,6 +27,8 @@ export class EmitterElement extends HTMLElement {
27
27
  * Emit a custom event with the given name and detail.
28
28
  *
29
29
  * Event init options default to `{ bubbles: true, composed: true }`.
30
+ *
31
+ * @category Events
30
32
  */
31
33
  emit(name, detail, options) {
32
34
  const event = new CustomEvent(name, {
@@ -47,6 +49,8 @@ export class EmitterElement extends HTMLElement {
47
49
  * @example
48
50
  * this.emitEvent("click", MouseEvent, { button: 2 });
49
51
  * // emits: new MouseEvent("click", { button: 2 });
52
+ *
53
+ * @category Events
50
54
  */
51
55
  emitEvent(name, constructor, ...args) {
52
56
  const event = new constructor(name, ...args);
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAW3C;;;;OAIG;IACH,IAAI,CAIF,IAAO,EAAE,MAAU,EAAE,OAAmB;QACtC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM;YACN,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CAKP,IAAO,EAAE,WAAc,EAAE,GAAG,IAAU;QACpC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAa3C;;;;;;OAMG;IACH,IAAI,CAIF,IAAO,EAAE,MAAU,EAAE,OAAmB;QACtC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM;YACN,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,SAAS,CAKP,IAAO,EAAE,WAAc,EAAE,GAAG,IAAU;QACpC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bodil/dom",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "DOM and web component tools",
5
5
  "homepage": "https://codeberg.org/bodil/dom",
6
6
  "repository": {
package/src/component.ts CHANGED
@@ -107,6 +107,8 @@ export abstract class Component
107
107
  * class MyComponent extends Component {
108
108
  * static deps: Deps = [ MySubcomponent, MyOtherSubcomponent ];
109
109
  * }
110
+ *
111
+ * @category Declarations
110
112
  */
111
113
  static deps: Deps = [];
112
114
 
@@ -127,9 +129,14 @@ export abstract class Component
127
129
  * }
128
130
  * `;
129
131
  * }
132
+ *
133
+ * @category Declarations
130
134
  */
131
135
  static styles?: CSSStyleSpecDeclaration;
132
136
 
137
+ /**
138
+ * @category Advanced
139
+ */
133
140
  static shadowRootOptions: ShadowRootInit = { mode: "open" };
134
141
 
135
142
  private static initialisers = new Set<() => void>();
@@ -142,7 +149,15 @@ export abstract class Component
142
149
  protected static requiredProperties = new Set<string | symbol>();
143
150
  private static [finalised] = true;
144
151
 
152
+ /**
153
+ * @category Advanced
154
+ */
145
155
  renderOptions: RenderOptions = { host: this };
156
+
157
+ /**
158
+ * {@inheritDoc EmitterElement.emits}
159
+ * @category Declarations
160
+ */
146
161
  emits!: object;
147
162
 
148
163
  readonly #controllers = new Set<ReactiveController>();
@@ -160,15 +175,23 @@ export abstract class Component
160
175
  #viewTransitionRequested = false;
161
176
  #ignoreAttributeUpdates: number;
162
177
 
178
+ /**
179
+ * @category Advanced
180
+ */
163
181
  readonly renderRoot: ShadowRoot | HTMLElement = this.createRenderRoot();
164
182
 
165
183
  /**
166
184
  * True if this component had scheduled an update which has not yet started.
185
+ *
186
+ * @category Render
167
187
  */
168
188
  get isUpdatePending(): boolean {
169
189
  return this.#isUpdatePending;
170
190
  }
171
191
 
192
+ /**
193
+ * @category Render
194
+ */
172
195
  get updateComplete(): Promise<boolean> {
173
196
  return this.#updateResult.promise;
174
197
  }
@@ -180,6 +203,8 @@ export abstract class Component
180
203
  *
181
204
  * By default, a component considers itself stabilised when all of its
182
205
  * children which are also {@link Component}s are reporting as stabilised.
206
+ *
207
+ * @category Render
183
208
  */
184
209
  get hasStabilised(): Promise<void> {
185
210
  return this.#stabilised.promise;
@@ -192,6 +217,8 @@ export abstract class Component
192
217
  * This can be passed along to asynchronous tasks such as {@link fetch}
193
218
  * initiated by this component, which will then be aborted automatically if
194
219
  * the component is removed from the DOM.
220
+ *
221
+ * @category Advanced
195
222
  */
196
223
  get abortSignal(): AbortSignal {
197
224
  return this.#abortController.signal;
@@ -201,6 +228,8 @@ export abstract class Component
201
228
  /**
202
229
  * Register a function which will be executed whenever an instance of this
203
230
  * class is constructed.
231
+ *
232
+ * @category Advanced
204
233
  */
205
234
  static addInitialiser(init: (this: Component) => void) {
206
235
  if (!Object.hasOwn(this, "initialisers")) {
@@ -388,6 +417,11 @@ export abstract class Component
388
417
  }) as Signal.Computed<V>;
389
418
  }
390
419
 
420
+ /**
421
+ * Adds a controller to the host, which sets up the controller's lifecycle
422
+ * methods to be called with the host's lifecycle.
423
+ * @category Advanced
424
+ */
391
425
  addController(controller: ReactiveController) {
392
426
  this.#controllers.add(controller);
393
427
  if (this.renderRoot !== undefined && this.isConnected) {
@@ -395,6 +429,10 @@ export abstract class Component
395
429
  }
396
430
  }
397
431
 
432
+ /**
433
+ * Removes a controller from the host.
434
+ * @category Advanced
435
+ */
398
436
  removeController(controller: ReactiveController) {
399
437
  this.#controllers.delete(controller);
400
438
  }
@@ -408,6 +446,8 @@ export abstract class Component
408
446
  * If you don't want to use a shadow DOM, you can override this method to
409
447
  * just `return this`, which causes the component's contents to render as
410
448
  * direct children of the component itself.
449
+ *
450
+ * @category Advanced
411
451
  */
412
452
  protected createRenderRoot(): HTMLElement | ShadowRoot {
413
453
  const renderRoot =
@@ -418,8 +458,32 @@ export abstract class Component
418
458
  return renderRoot;
419
459
  }
420
460
 
461
+ /**
462
+ * Add a style sheet to the component's shadow root.
463
+ *
464
+ * @category Advanced
465
+ */
466
+ addStyleSheet(spec: CSSStyleSpecDeclaration) {
467
+ if (!(this.renderRoot instanceof ShadowRoot)) {
468
+ throw new Error("Component needs a shadow root in order to add a style sheet");
469
+ }
470
+ const sheets = (
471
+ Array.isArray(spec)
472
+ ? ((spec as Array<unknown>).flat(Infinity) as Array<CSSStyleSpec>)
473
+ : [spec]
474
+ ).map(processCSSStyleSpec);
475
+ for (const sheet of sheets) {
476
+ const doc = sheet instanceof CSSStyleSheet ? sheet : sheet.styleSheet;
477
+ if (doc !== undefined) {
478
+ this.renderRoot.adoptedStyleSheets.push(doc);
479
+ }
480
+ }
481
+ }
482
+
421
483
  /**
422
484
  * Ask this component to update itself.
485
+ *
486
+ * @category Render
423
487
  */
424
488
  requestUpdate(opts?: UpdateConfig) {
425
489
  this.#dirty = true;
@@ -529,6 +593,8 @@ export abstract class Component
529
593
  /**
530
594
  * Return an iterator over this component's children which are also
531
595
  * {@link Component}s.
596
+ *
597
+ * @category Queries
532
598
  */
533
599
  protected findChildComponents(
534
600
  root: Element | ShadowRoot = this.renderRoot,
@@ -542,6 +608,8 @@ export abstract class Component
542
608
  *
543
609
  * The default implementation waits for any children which are also
544
610
  * {@link Component}s to report that they have also stabilised.
611
+ *
612
+ * @category Render
545
613
  */
546
614
  protected async stabilise(): Promise<void> {
547
615
  // wait for children to stabilise
@@ -553,6 +621,7 @@ export abstract class Component
553
621
  /**
554
622
  * This lifecycle callback is called each time this component is connected
555
623
  * to the DOM.
624
+ * @category Lifecycle
556
625
  */
557
626
  protected connected(): void {
558
627
  //
@@ -561,6 +630,7 @@ export abstract class Component
561
630
  /**
562
631
  * This lifecycle callback is called each time this component is
563
632
  * disconnected from the DOM.
633
+ * @category Lifecycle
564
634
  */
565
635
  protected disconnected(): void {
566
636
  //
@@ -568,6 +638,7 @@ export abstract class Component
568
638
 
569
639
  /**
570
640
  * This lifecycle callback is called each time an update has completed.
641
+ * @category Lifecycle
571
642
  */
572
643
  protected updated(): void {
573
644
  //
@@ -576,6 +647,7 @@ export abstract class Component
576
647
  /**
577
648
  * This lifecycle callback is called after the component's first update has
578
649
  * completed, and before {@link Component.updated}.
650
+ * @category Lifecycle
579
651
  */
580
652
  protected firstUpdated() {
581
653
  //
@@ -586,6 +658,7 @@ export abstract class Component
586
658
  * stabilised after its first update.
587
659
  *
588
660
  * @see {@link Component.hasStabilised}
661
+ * @category Lifecycle
589
662
  */
590
663
  protected stabilised() {
591
664
  //
@@ -595,6 +668,7 @@ export abstract class Component
595
668
  * This lifecycle callback is called every time a property decorated with
596
669
  * the @{@link require} decorator has changed, but only when every property
597
670
  * marked as such is not `undefined`.
671
+ * @category Lifecycle
598
672
  */
599
673
  protected initialised() {
600
674
  //
@@ -604,6 +678,7 @@ export abstract class Component
604
678
  * This lifecycle callback is called the first time every property decorated
605
679
  * with @{@link require} has been defined, and before
606
680
  * {@link Component.initialised}.
681
+ * @category Lifecycle
607
682
  */
608
683
  protected firstInitialised() {
609
684
  //
@@ -624,11 +699,14 @@ export abstract class Component
624
699
  * `;
625
700
  * }
626
701
  * }
702
+ *
703
+ * @category Render
627
704
  */
628
705
  protected render(): unknown {
629
706
  return nothing;
630
707
  }
631
708
 
709
+ /** @internal */
632
710
  [Symbol.dispose](): void {
633
711
  for (const child of this.findChildComponents()) {
634
712
  child[Symbol.dispose]();
@@ -643,6 +721,7 @@ export abstract class Component
643
721
  /**
644
722
  * Register a {@link Disposable} for automatic disposal when this component
645
723
  * is disposed.
724
+ * @category Resources
646
725
  */
647
726
  use(disposifiable: undefined): undefined;
648
727
  use(disposifiable: null): null;
@@ -673,6 +752,7 @@ export abstract class Component
673
752
  * super.connectedCallback();
674
753
  * this.useWhileConnected(this.on("click", this.handleClick.bind(this)));
675
754
  * }
755
+ * @category Resources
676
756
  */
677
757
  useWhileConnected(
678
758
  disposifiable: Disposifiable,
@@ -709,6 +789,7 @@ export abstract class Component
709
789
  * Attach an event listener to an event on this component.
710
790
  *
711
791
  * @returns A {@link Disposable} to subsequently detach the event listener.
792
+ * @category Events
712
793
  */
713
794
  on<K extends keyof HTMLElementEventMap>(
714
795
  type: K,
@@ -722,6 +803,7 @@ export abstract class Component
722
803
  * If an element that is either inside this element's shadow root or is a
723
804
  * child of this element (ie. slotted) currently has focus, return that
724
805
  * element. Otherwise, return null.
806
+ * @category Queries
725
807
  */
726
808
  getFocusedElement(): Element | null {
727
809
  return this.shadowRoot?.activeElement ?? this.querySelector(":focus");
@@ -747,6 +829,7 @@ export abstract class Component
747
829
  * return html`<button>I am a button</button>`;
748
830
  * }
749
831
  * }
832
+ * @category Queries
750
833
  */
751
834
  query<El extends keyof HTMLElementTagNameMap>(selector: El): HTMLElementTagNameMap[El] | null;
752
835
  query<El extends keyof SVGElementTagNameMap>(selector: El): SVGElementTagNameMap[El] | null;
@@ -785,6 +868,7 @@ export abstract class Component
785
868
  * `;
786
869
  * }
787
870
  * }
871
+ * @category Queries
788
872
  */
789
873
  queryAll<El extends keyof HTMLElementTagNameMap>(
790
874
  selector: El,
@@ -810,6 +894,7 @@ export abstract class Component
810
894
  *
811
895
  * If you include `reactive: true` in your query, the result will be a
812
896
  * signal which updates with the contents of the slot.
897
+ * @category Queries
813
898
  */
814
899
  querySlot(
815
900
  options: QuerySlotOptions & { nodes: true; reactive: true },
package/src/emitter.ts CHANGED
@@ -69,6 +69,8 @@ export class EmitterElement extends HTMLElement {
69
69
  * class MyElement extends EmitterElement {
70
70
  * emits!: Emits<"my-event" | "my-other-event";
71
71
  * }
72
+ *
73
+ * @category Events
72
74
  */
73
75
  emits!: { [K in keyof HTMLElementEventMap]?: never };
74
76
 
@@ -76,6 +78,8 @@ export class EmitterElement extends HTMLElement {
76
78
  * Emit a custom event with the given name and detail.
77
79
  *
78
80
  * Event init options default to `{ bubbles: true, composed: true }`.
81
+ *
82
+ * @category Events
79
83
  */
80
84
  emit<
81
85
  M extends CustomEventTypes<keyof this["emits"] & keyof HTMLElementEventMap>,
@@ -101,6 +105,8 @@ export class EmitterElement extends HTMLElement {
101
105
  * @example
102
106
  * this.emitEvent("click", MouseEvent, { button: 2 });
103
107
  * // emits: new MouseEvent("click", { button: 2 });
108
+ *
109
+ * @category Events
104
110
  */
105
111
  emitEvent<
106
112
  K extends keyof this["emits"] & keyof HTMLElementEventMap,