@ng-prism/plugin-jsdoc 21.4.5 → 21.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"jsdoc-panel.component.d.ts","sourceRoot":"","sources":["../src/jsdoc-panel.component.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;;AAE7D,qBAwSa,mBAAmB;IAC9B,QAAQ,CAAC,eAAe,+CAAwB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,mDAGzB;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,8CAGtB;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,+CAGvB;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,qDAAsD;IAEzF,SAAS,CAAC,QAAQ,CAAC,SAAS,uEAAqD;IAEjF,SAAS,CAAC,QAAQ,CAAC,YAAY,0CAAiD;IAEhF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,qDAGjC;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,qDAA0C;IAElE,SAAS,CAAC,QAAQ,CAAC,OAAO,2CAA8C;IAExE,SAAS,CAAC,QAAQ,CAAC,QAAQ,2CAAkD;IAE7E,SAAS,CAAC,QAAQ,CAAC,OAAO,8CAAgE;IAE1F,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAExB;IAEF,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAQtE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;yCAzDpC,mBAAmB;2CAAnB,mBAAmB;CA6D/B"}
1
+ {"version":3,"file":"jsdoc-panel.component.d.ts","sourceRoot":"","sources":["../src/jsdoc-panel.component.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;;AAE7D,qBAgSa,mBAAmB;IAC9B,QAAQ,CAAC,eAAe,+CAAwB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,mDAGzB;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,8CAGtB;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,+CAGvB;IAEH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,qDAEjC;IAEF,SAAS,CAAC,QAAQ,CAAC,SAAS,uEAE1B;IAEF,SAAS,CAAC,QAAQ,CAAC,YAAY,0CAE7B;IAEF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,qDAGjC;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,qDAA0C;IAElE,SAAS,CAAC,QAAQ,CAAC,OAAO,2CAA8C;IAExE,SAAS,CAAC,QAAQ,CAAC,QAAQ,2CAAkD;IAE7E,SAAS,CAAC,QAAQ,CAAC,OAAO,8CAExB;IAEF,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAExB;IAEF,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAQtE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;yCAjEpC,mBAAmB;2CAAnB,mBAAmB;CAqE/B"}
@@ -1,10 +1,10 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, input, } from '@angular/core';
2
2
  import { Highlight } from 'ngx-highlightjs';
3
3
  import * as i0 from "@angular/core";
4
4
  const _forTrack0 = ($index, $item) => $item.name;
5
5
  function JsDocPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
6
6
  i0.ɵɵelementStart(0, "div", 1);
7
- i0.ɵɵtext(1, "Select a component to view API documentation.");
7
+ i0.ɵɵtext(1, " Select a component to view API documentation. ");
8
8
  i0.ɵɵelementEnd();
9
9
  } }
10
10
  function JsDocPanelComponent_Conditional_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
@@ -384,169 +384,196 @@ export class JsDocPanelComponent {
384
384
  } if (rf & 2) {
385
385
  i0.ɵɵadvance();
386
386
  i0.ɵɵconditional(!ctx.activeComponent() ? 1 : 2);
387
- } }, dependencies: [Highlight], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n overflow: auto;\n }\n .prism-jsdoc-panel[_ngcontent-%COMP%] {\n padding: 12px 16px;\n font-family: var(--prism-font-family, system-ui, sans-serif);\n font-size: 13px;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__empty[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__description[_ngcontent-%COMP%] {\n margin: 0 0 12px;\n line-height: 1.5;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__meta[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n }\n .prism-jsdoc-panel__meta-item[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__meta-label[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 600;\n }\n .prism-jsdoc-panel__badge--deprecated[_ngcontent-%COMP%] {\n background: #fef3c7;\n color: #92400e;\n }\n .prism-jsdoc-panel__badge--required[_ngcontent-%COMP%] {\n background: #dbeafe;\n color: #1d4ed8;\n }\n .prism-jsdoc-panel__badge--small[_ngcontent-%COMP%] {\n padding: 1px 5px;\n font-size: 10px;\n margin-left: 4px;\n vertical-align: middle;\n }\n .prism-jsdoc-panel__section[_ngcontent-%COMP%] {\n margin-bottom: 20px;\n }\n .prism-jsdoc-panel__heading[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin: 0 0 8px;\n padding-bottom: 4px;\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__code[_ngcontent-%COMP%] {\n margin: 0 0 8px;\n padding: 0;\n background: var(--prism-bg-surface, #f9fafb);\n border: 1px solid var(--prism-border, #e5e7eb);\n border-radius: 6px;\n overflow: auto;\n }\n .prism-jsdoc-panel__code[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n line-height: 1.5;\n padding: 8px 12px;\n display: block;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: 6px 10px;\n font-weight: 600;\n color: var(--prism-text-muted, #6b7280);\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n white-space: nowrap;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 6px 10px;\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n vertical-align: top;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] {\n border-bottom: none;\n }\n .prism-jsdoc-panel__row--deprecated[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n opacity: 0.6;\n }\n .prism-jsdoc-panel__cell--name[_ngcontent-%COMP%] code[_ngcontent-%COMP%], \n .prism-jsdoc-panel__cell--type[_ngcontent-%COMP%] code[_ngcontent-%COMP%], \n .prism-jsdoc-panel__cell--default[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--prism-font-mono, monospace);\n font-size: 11px;\n background: var(--prism-bg-surface, #f9fafb);\n padding: 1px 4px;\n border-radius: 3px;\n border: 1px solid var(--prism-border, #e5e7eb);\n }\n .prism-jsdoc-panel__muted[_ngcontent-%COMP%] {\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__cell--doc[_ngcontent-%COMP%] {\n color: var(--prism-text, #1f2937);\n line-height: 1.4;\n }"], changeDetection: 0 });
387
+ } }, dependencies: [Highlight], styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n .prism-jsdoc-panel[_ngcontent-%COMP%] {\n padding: 20px 24px;\n max-width: 880px;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n color: var(--prism-text);\n }\n .prism-jsdoc-panel__empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 120px; color: var(--prism-text-muted);\n }\n .prism-jsdoc-panel__description[_ngcontent-%COMP%] {\n margin: 0 0 18px;\n font-size: 14px;\n line-height: 1.7;\n color: var(--prism-text-2);\n }\n .prism-jsdoc-panel__meta[_ngcontent-%COMP%] {\n display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px;\n }\n .prism-jsdoc-panel__meta-item[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 6px;\n padding: 3px 9px; border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n font-size: var(--fs-sm); color: var(--prism-text-2);\n }\n .prism-jsdoc-panel__meta-label[_ngcontent-%COMP%] {\n font-weight: 500; color: var(--prism-primary);\n font-family: var(--font-mono);\n }\n .prism-jsdoc-panel__badge[_ngcontent-%COMP%] {\n display: inline-flex; align-items: center;\n padding: 2px 8px; border-radius: 10px;\n font-size: 12px; font-weight: 600;\n }\n .prism-jsdoc-panel__badge--deprecated[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 15%, transparent);\n color: var(--prism-warn);\n }\n .prism-jsdoc-panel__badge--required[_ngcontent-%COMP%] {\n color: var(--prism-accent); font-weight: 700; margin-left: 4px;\n }\n .prism-jsdoc-panel__badge--small[_ngcontent-%COMP%] { padding: 1px 5px; font-size: 10px; margin-left: 4px; }\n .prism-jsdoc-panel__section[_ngcontent-%COMP%] { margin-bottom: 20px; }\n .prism-jsdoc-panel__heading[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; text-transform: uppercase;\n letter-spacing: 0.08em; margin: 22px 0 10px;\n color: var(--prism-text-ghost);\n }\n .prism-jsdoc-panel__code[_ngcontent-%COMP%] {\n margin: 0 0 8px; padding: 0;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px; overflow: auto;\n }\n .prism-jsdoc-panel__code[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-sm); line-height: 1.5;\n padding: 8px 12px; display: block;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] {\n width: 100%; border-collapse: collapse;\n font-size: var(--fs-md);\n border: 1px solid var(--prism-border);\n border-radius: 8px; overflow: hidden;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left; padding: 8px 12px;\n background: var(--prism-bg-surface);\n font-size: 10.5px; text-transform: uppercase;\n letter-spacing: 0.06em; font-weight: 700;\n color: var(--prism-text-ghost);\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 10px 12px;\n border-bottom: 1px solid var(--prism-border);\n vertical-align: top;\n }\n .prism-jsdoc-panel__table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:last-child td[_ngcontent-%COMP%] { border-bottom: 0; }\n .prism-jsdoc-panel__row--deprecated[_ngcontent-%COMP%] td[_ngcontent-%COMP%] { opacity: 0.6; }\n .prism-jsdoc-panel__cell--name[_ngcontent-%COMP%] code[_ngcontent-%COMP%], \n .prism-jsdoc-panel__cell--type[_ngcontent-%COMP%] code[_ngcontent-%COMP%], \n .prism-jsdoc-panel__cell--default[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-sm); color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n padding: 1px 5px; border-radius: var(--radius-xs);\n }\n .prism-jsdoc-panel__muted[_ngcontent-%COMP%] { color: var(--prism-text-muted); }\n .prism-jsdoc-panel__cell--doc[_ngcontent-%COMP%] { color: var(--prism-text); line-height: 1.4; }"], changeDetection: 0 });
388
388
  }
389
389
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JsDocPanelComponent, [{
390
390
  type: Component,
391
391
  args: [{ selector: 'prism-jsdoc-panel', standalone: true, imports: [Highlight], changeDetection: ChangeDetectionStrategy.OnPush, template: `
392
392
  <div class="prism-jsdoc-panel">
393
393
  @if (!activeComponent()) {
394
- <div class="prism-jsdoc-panel__empty">Select a component to view API documentation.</div>
395
- } @else {
396
- @if (classDescription()) {
397
- <p class="prism-jsdoc-panel__description">{{ classDescription() }}</p>
394
+ <div class="prism-jsdoc-panel__empty">
395
+ Select a component to view API documentation.
396
+ </div>
397
+ } @else { @if (classDescription()) {
398
+ <p class="prism-jsdoc-panel__description">{{ classDescription() }}</p>
399
+ } @if (hasTags()) {
400
+ <div class="prism-jsdoc-panel__meta">
401
+ @if (isDeprecated()) {
402
+ <span
403
+ class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated"
404
+ >
405
+ Deprecated{{ deprecatedMessage() ? ': ' + deprecatedMessage() : '' }}
406
+ </span>
407
+ } @if (since()) {
408
+ <span class="prism-jsdoc-panel__meta-item">
409
+ <span class="prism-jsdoc-panel__meta-label">Since:</span>
410
+ {{ since() }}
411
+ </span>
412
+ } @for (ref of seeRefs(); track $index) {
413
+ <span class="prism-jsdoc-panel__meta-item">
414
+ <span class="prism-jsdoc-panel__meta-label">See:</span> {{ ref }}
415
+ </span>
398
416
  }
399
- @if (hasTags()) {
400
- <div class="prism-jsdoc-panel__meta">
401
- @if (isDeprecated()) {
402
- <span class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated">
403
- Deprecated{{ deprecatedMessage() ? ': ' + deprecatedMessage() : '' }}
404
- </span>
405
- }
406
- @if (since()) {
407
- <span class="prism-jsdoc-panel__meta-item">
408
- <span class="prism-jsdoc-panel__meta-label">Since:</span> {{ since() }}
409
- </span>
410
- }
411
- @for (ref of seeRefs(); track $index) {
412
- <span class="prism-jsdoc-panel__meta-item">
413
- <span class="prism-jsdoc-panel__meta-label">See:</span> {{ ref }}
414
- </span>
415
- }
416
- </div>
417
+ </div>
418
+ } @if (examples().length) {
419
+ <div class="prism-jsdoc-panel__section">
420
+ <h3 class="prism-jsdoc-panel__heading">Examples</h3>
421
+ @for (example of examples(); track $index) {
422
+ <pre
423
+ class="prism-jsdoc-panel__code"
424
+ ><code [highlight]="example" language="typescript"></code></pre>
417
425
  }
418
- @if (examples().length) {
419
- <div class="prism-jsdoc-panel__section">
420
- <h3 class="prism-jsdoc-panel__heading">Examples</h3>
421
- @for (example of examples(); track $index) {
422
- <pre class="prism-jsdoc-panel__code"><code [highlight]="example" language="typescript"></code></pre>
426
+ </div>
427
+ } @if (inputs().length) {
428
+ <div class="prism-jsdoc-panel__section">
429
+ <h3 class="prism-jsdoc-panel__heading">Inputs</h3>
430
+ <table class="prism-jsdoc-panel__table">
431
+ <thead>
432
+ <tr>
433
+ <th>Name</th>
434
+ <th>Type</th>
435
+ <th>Default</th>
436
+ <th>Required</th>
437
+ <th>Description</th>
438
+ </tr>
439
+ </thead>
440
+ <tbody>
441
+ @for (inp of inputs(); track inp.name) {
442
+ <tr
443
+ [class.prism-jsdoc-panel__row--deprecated]="
444
+ isMemberDeprecated(inp.name)
445
+ "
446
+ >
447
+ <td class="prism-jsdoc-panel__cell--name">
448
+ <code>{{ inp.name }}</code>
449
+ @if (isMemberDeprecated(inp.name)) {
450
+ <span
451
+ class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small"
452
+ >deprecated</span
453
+ >
454
+ }
455
+ </td>
456
+ <td class="prism-jsdoc-panel__cell--type">
457
+ <code>{{ inp.rawType ?? inp.type }}</code>
458
+ </td>
459
+ <td class="prism-jsdoc-panel__cell--default">
460
+ @if (inp.defaultValue !== undefined) {
461
+ <code>{{ formatDefault(inp.defaultValue) }}</code>
462
+ } @else {
463
+ <span class="prism-jsdoc-panel__muted">—</span>
464
+ }
465
+ </td>
466
+ <td class="prism-jsdoc-panel__cell--required">
467
+ @if (inp.required) {
468
+ <span
469
+ class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--required"
470
+ >required</span
471
+ >
472
+ } @else {
473
+ <span class="prism-jsdoc-panel__muted">—</span>
474
+ }
475
+ </td>
476
+ <td class="prism-jsdoc-panel__cell--doc">
477
+ {{
478
+ inp.doc ?? getMemberSince(inp.name)
479
+ ? memberDocLine(inp.name, inp.doc)
480
+ : ''
481
+ }}
482
+ </td>
483
+ </tr>
423
484
  }
424
- </div>
425
- }
426
- @if (inputs().length) {
427
- <div class="prism-jsdoc-panel__section">
428
- <h3 class="prism-jsdoc-panel__heading">Inputs</h3>
429
- <table class="prism-jsdoc-panel__table">
430
- <thead>
431
- <tr>
432
- <th>Name</th>
433
- <th>Type</th>
434
- <th>Default</th>
435
- <th>Required</th>
436
- <th>Description</th>
437
- </tr>
438
- </thead>
439
- <tbody>
440
- @for (inp of inputs(); track inp.name) {
441
- <tr [class.prism-jsdoc-panel__row--deprecated]="isMemberDeprecated(inp.name)">
442
- <td class="prism-jsdoc-panel__cell--name">
443
- <code>{{ inp.name }}</code>
444
- @if (isMemberDeprecated(inp.name)) {
445
- <span class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small">deprecated</span>
446
- }
447
- </td>
448
- <td class="prism-jsdoc-panel__cell--type">
449
- <code>{{ inp.rawType ?? inp.type }}</code>
450
- </td>
451
- <td class="prism-jsdoc-panel__cell--default">
452
- @if (inp.defaultValue !== undefined) {
453
- <code>{{ formatDefault(inp.defaultValue) }}</code>
454
- } @else {
455
- <span class="prism-jsdoc-panel__muted">—</span>
456
- }
457
- </td>
458
- <td class="prism-jsdoc-panel__cell--required">
459
- @if (inp.required) {
460
- <span class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--required">required</span>
461
- } @else {
462
- <span class="prism-jsdoc-panel__muted">—</span>
463
- }
464
- </td>
465
- <td class="prism-jsdoc-panel__cell--doc">
466
- {{ inp.doc ?? getMemberSince(inp.name) ? memberDocLine(inp.name, inp.doc) : '' }}
467
- </td>
468
- </tr>
485
+ </tbody>
486
+ </table>
487
+ </div>
488
+ } @if (outputs().length) {
489
+ <div class="prism-jsdoc-panel__section">
490
+ <h3 class="prism-jsdoc-panel__heading">Outputs</h3>
491
+ <table class="prism-jsdoc-panel__table">
492
+ <thead>
493
+ <tr>
494
+ <th>Name</th>
495
+ <th>Description</th>
496
+ </tr>
497
+ </thead>
498
+ <tbody>
499
+ @for (out of outputs(); track out.name) {
500
+ <tr
501
+ [class.prism-jsdoc-panel__row--deprecated]="
502
+ isMemberDeprecated(out.name)
503
+ "
504
+ >
505
+ <td class="prism-jsdoc-panel__cell--name">
506
+ <code>{{ out.name }}</code>
507
+ @if (isMemberDeprecated(out.name)) {
508
+ <span
509
+ class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small"
510
+ >deprecated</span
511
+ >
469
512
  }
470
- </tbody>
471
- </table>
472
- </div>
473
- }
474
- @if (outputs().length) {
475
- <div class="prism-jsdoc-panel__section">
476
- <h3 class="prism-jsdoc-panel__heading">Outputs</h3>
477
- <table class="prism-jsdoc-panel__table">
478
- <thead>
479
- <tr>
480
- <th>Name</th>
481
- <th>Description</th>
482
- </tr>
483
- </thead>
484
- <tbody>
485
- @for (out of outputs(); track out.name) {
486
- <tr [class.prism-jsdoc-panel__row--deprecated]="isMemberDeprecated(out.name)">
487
- <td class="prism-jsdoc-panel__cell--name">
488
- <code>{{ out.name }}</code>
489
- @if (isMemberDeprecated(out.name)) {
490
- <span class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small">deprecated</span>
491
- }
492
- </td>
493
- <td class="prism-jsdoc-panel__cell--doc">
494
- {{ memberDocLine(out.name, out.doc) }}
495
- </td>
496
- </tr>
513
+ </td>
514
+ <td class="prism-jsdoc-panel__cell--doc">
515
+ {{ memberDocLine(out.name, out.doc) }}
516
+ </td>
517
+ </tr>
518
+ }
519
+ </tbody>
520
+ </table>
521
+ </div>
522
+ } @if (methods().length) {
523
+ <div class="prism-jsdoc-panel__section">
524
+ <h3 class="prism-jsdoc-panel__heading">Methods</h3>
525
+ <table class="prism-jsdoc-panel__table">
526
+ <thead>
527
+ <tr>
528
+ <th>Name</th>
529
+ <th>Parameters</th>
530
+ <th>Returns</th>
531
+ <th>Description</th>
532
+ </tr>
533
+ </thead>
534
+ <tbody>
535
+ @for (method of methods(); track method.name) {
536
+ <tr
537
+ [class.prism-jsdoc-panel__row--deprecated]="
538
+ !!method.tags.deprecated
539
+ "
540
+ >
541
+ <td class="prism-jsdoc-panel__cell--name">
542
+ <code>{{ method.name }}()</code>
543
+ @if (method.tags.deprecated) {
544
+ <span
545
+ class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small"
546
+ >deprecated</span
547
+ >
497
548
  }
498
- </tbody>
499
- </table>
500
- </div>
501
- }
502
- @if (methods().length) {
503
- <div class="prism-jsdoc-panel__section">
504
- <h3 class="prism-jsdoc-panel__heading">Methods</h3>
505
- <table class="prism-jsdoc-panel__table">
506
- <thead>
507
- <tr>
508
- <th>Name</th>
509
- <th>Parameters</th>
510
- <th>Returns</th>
511
- <th>Description</th>
512
- </tr>
513
- </thead>
514
- <tbody>
515
- @for (method of methods(); track method.name) {
516
- <tr [class.prism-jsdoc-panel__row--deprecated]="!!method.tags.deprecated">
517
- <td class="prism-jsdoc-panel__cell--name">
518
- <code>{{ method.name }}()</code>
519
- @if (method.tags.deprecated) {
520
- <span class="prism-jsdoc-panel__badge prism-jsdoc-panel__badge--deprecated prism-jsdoc-panel__badge--small">deprecated</span>
521
- }
522
- </td>
523
- <td class="prism-jsdoc-panel__cell--type">
524
- @if (method.params.length) {
525
- @for (p of method.params; track p.name) {
526
- <div><code>{{ p.name }}{{ p.type ? ': ' + p.type : '' }}</code></div>
527
- }
528
- } @else {
529
- <span class="prism-jsdoc-panel__muted">—</span>
530
- }
531
- </td>
532
- <td class="prism-jsdoc-panel__cell--type">
533
- @if (method.returnType) {
534
- <code>{{ method.returnType }}</code>
535
- } @else {
536
- <span class="prism-jsdoc-panel__muted">void</span>
537
- }
538
- </td>
539
- <td class="prism-jsdoc-panel__cell--doc">
540
- {{ method.description ?? '' }}
541
- </td>
542
- </tr>
549
+ </td>
550
+ <td class="prism-jsdoc-panel__cell--type">
551
+ @if (method.params.length) { @for (p of method.params; track
552
+ p.name) {
553
+ <div>
554
+ <code>{{ p.name }}{{ p.type ? ': ' + p.type : '' }}</code>
555
+ </div>
556
+ } } @else {
557
+ <span class="prism-jsdoc-panel__muted">—</span>
543
558
  }
544
- </tbody>
545
- </table>
546
- </div>
547
- }
548
- }
559
+ </td>
560
+ <td class="prism-jsdoc-panel__cell--type">
561
+ @if (method.returnType) {
562
+ <code>{{ method.returnType }}</code>
563
+ } @else {
564
+ <span class="prism-jsdoc-panel__muted">void</span>
565
+ }
566
+ </td>
567
+ <td class="prism-jsdoc-panel__cell--doc">
568
+ {{ method.description ?? '' }}
569
+ </td>
570
+ </tr>
571
+ }
572
+ </tbody>
573
+ </table>
574
+ </div>
575
+ } }
549
576
  </div>
550
- `, styles: ["\n :host {\n display: block;\n height: 100%;\n overflow: auto;\n }\n .prism-jsdoc-panel {\n padding: 12px 16px;\n font-family: var(--prism-font-family, system-ui, sans-serif);\n font-size: 13px;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__empty {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 120px;\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__description {\n margin: 0 0 12px;\n line-height: 1.5;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__meta {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n }\n .prism-jsdoc-panel__meta-item {\n font-size: 12px;\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__meta-label {\n font-weight: 600;\n color: var(--prism-text, #1f2937);\n }\n .prism-jsdoc-panel__badge {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 12px;\n font-weight: 600;\n }\n .prism-jsdoc-panel__badge--deprecated {\n background: #fef3c7;\n color: #92400e;\n }\n .prism-jsdoc-panel__badge--required {\n background: #dbeafe;\n color: #1d4ed8;\n }\n .prism-jsdoc-panel__badge--small {\n padding: 1px 5px;\n font-size: 10px;\n margin-left: 4px;\n vertical-align: middle;\n }\n .prism-jsdoc-panel__section {\n margin-bottom: 20px;\n }\n .prism-jsdoc-panel__heading {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin: 0 0 8px;\n padding-bottom: 4px;\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__code {\n margin: 0 0 8px;\n padding: 0;\n background: var(--prism-bg-surface, #f9fafb);\n border: 1px solid var(--prism-border, #e5e7eb);\n border-radius: 6px;\n overflow: auto;\n }\n .prism-jsdoc-panel__code code {\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n line-height: 1.5;\n padding: 8px 12px;\n display: block;\n }\n .prism-jsdoc-panel__table {\n width: 100%;\n border-collapse: collapse;\n font-size: 12px;\n }\n .prism-jsdoc-panel__table th {\n text-align: left;\n padding: 6px 10px;\n font-weight: 600;\n color: var(--prism-text-muted, #6b7280);\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n white-space: nowrap;\n }\n .prism-jsdoc-panel__table td {\n padding: 6px 10px;\n border-bottom: 1px solid var(--prism-border, #e5e7eb);\n vertical-align: top;\n }\n .prism-jsdoc-panel__table tr:last-child td {\n border-bottom: none;\n }\n .prism-jsdoc-panel__row--deprecated td {\n opacity: 0.6;\n }\n .prism-jsdoc-panel__cell--name code,\n .prism-jsdoc-panel__cell--type code,\n .prism-jsdoc-panel__cell--default code {\n font-family: var(--prism-font-mono, monospace);\n font-size: 11px;\n background: var(--prism-bg-surface, #f9fafb);\n padding: 1px 4px;\n border-radius: 3px;\n border: 1px solid var(--prism-border, #e5e7eb);\n }\n .prism-jsdoc-panel__muted {\n color: var(--prism-text-muted, #6b7280);\n }\n .prism-jsdoc-panel__cell--doc {\n color: var(--prism-text, #1f2937);\n line-height: 1.4;\n }\n "] }]
577
+ `, styles: ["\n :host { display: block; height: 100%; overflow: auto; }\n .prism-jsdoc-panel {\n padding: 20px 24px;\n max-width: 880px;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n color: var(--prism-text);\n }\n .prism-jsdoc-panel__empty {\n display: flex; align-items: center; justify-content: center;\n min-height: 120px; color: var(--prism-text-muted);\n }\n .prism-jsdoc-panel__description {\n margin: 0 0 18px;\n font-size: 14px;\n line-height: 1.7;\n color: var(--prism-text-2);\n }\n .prism-jsdoc-panel__meta {\n display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px;\n }\n .prism-jsdoc-panel__meta-item {\n display: flex; align-items: center; gap: 6px;\n padding: 3px 9px; border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n font-size: var(--fs-sm); color: var(--prism-text-2);\n }\n .prism-jsdoc-panel__meta-label {\n font-weight: 500; color: var(--prism-primary);\n font-family: var(--font-mono);\n }\n .prism-jsdoc-panel__badge {\n display: inline-flex; align-items: center;\n padding: 2px 8px; border-radius: 10px;\n font-size: 12px; font-weight: 600;\n }\n .prism-jsdoc-panel__badge--deprecated {\n background: color-mix(in srgb, var(--prism-warn) 15%, transparent);\n color: var(--prism-warn);\n }\n .prism-jsdoc-panel__badge--required {\n color: var(--prism-accent); font-weight: 700; margin-left: 4px;\n }\n .prism-jsdoc-panel__badge--small { padding: 1px 5px; font-size: 10px; margin-left: 4px; }\n .prism-jsdoc-panel__section { margin-bottom: 20px; }\n .prism-jsdoc-panel__heading {\n font-size: 11px; font-weight: 700; text-transform: uppercase;\n letter-spacing: 0.08em; margin: 22px 0 10px;\n color: var(--prism-text-ghost);\n }\n .prism-jsdoc-panel__code {\n margin: 0 0 8px; padding: 0;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px; overflow: auto;\n }\n .prism-jsdoc-panel__code code {\n font-family: var(--font-mono);\n font-size: var(--fs-sm); line-height: 1.5;\n padding: 8px 12px; display: block;\n }\n .prism-jsdoc-panel__table {\n width: 100%; border-collapse: collapse;\n font-size: var(--fs-md);\n border: 1px solid var(--prism-border);\n border-radius: 8px; overflow: hidden;\n }\n .prism-jsdoc-panel__table th {\n text-align: left; padding: 8px 12px;\n background: var(--prism-bg-surface);\n font-size: 10.5px; text-transform: uppercase;\n letter-spacing: 0.06em; font-weight: 700;\n color: var(--prism-text-ghost);\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-jsdoc-panel__table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--prism-border);\n vertical-align: top;\n }\n .prism-jsdoc-panel__table tr:last-child td { border-bottom: 0; }\n .prism-jsdoc-panel__row--deprecated td { opacity: 0.6; }\n .prism-jsdoc-panel__cell--name code,\n .prism-jsdoc-panel__cell--type code,\n .prism-jsdoc-panel__cell--default code {\n font-family: var(--font-mono);\n font-size: var(--fs-sm); color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n padding: 1px 5px; border-radius: var(--radius-xs);\n }\n .prism-jsdoc-panel__muted { color: var(--prism-text-muted); }\n .prism-jsdoc-panel__cell--doc { color: var(--prism-text); line-height: 1.4; }\n "] }]
551
578
  }], null, { activeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeComponent", required: false }] }] }); })();
552
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JsDocPanelComponent, { className: "JsDocPanelComponent", filePath: "jsdoc-panel.component.ts", lineNumber: 302 }); })();
579
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JsDocPanelComponent, { className: "JsDocPanelComponent", filePath: "jsdoc-panel.component.ts", lineNumber: 299 }); })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-prism/plugin-jsdoc",
3
- "version": "21.4.5",
3
+ "version": "21.5.1",
4
4
  "description": "JSDoc API documentation panel for ng-prism.",
5
5
  "keywords": [
6
6
  "@ng-prism/core",