@lilydesignsystem/angular-headless 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,7 @@ See `AGENTS.md` for the full architecture, component pattern, testing convention
43
43
 
44
44
  ## Status
45
45
 
46
- Complete and published: all 571 catalog components as standalone, signal-based, OnPush Angular components (peer range Angular `>=20 <23`), each with a vitest spec and a Storybook story. Version 0.4.0.
46
+ Complete and published: all 571 catalog components as standalone, signal-based, OnPush Angular components (peer range Angular `>=20 <23`), each with a vitest spec and a Storybook story. Version 0.5.0.
47
47
 
48
48
  ---
49
49
 
@@ -8170,7 +8170,7 @@ var CheckboxGroup = class CheckboxGroup {
8170
8170
  }
8171
8171
  },
8172
8172
  ngImport: i0,
8173
- template: `<div class="checkbox-group {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
8173
+ template: `<fieldset class="checkbox-group {{ className() }}" role="group" [attr.aria-label]="label() || null"><ng-content /></fieldset>`,
8174
8174
  isInline: true,
8175
8175
  changeDetection: i0.ChangeDetectionStrategy.OnPush
8176
8176
  });
@@ -8185,7 +8185,7 @@ i0.ɵɵngDeclareClassMetadata({
8185
8185
  args: [{
8186
8186
  selector: "lily-checkbox-group",
8187
8187
  standalone: true,
8188
- template: `<div class="checkbox-group {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
8188
+ template: `<fieldset class="checkbox-group {{ className() }}" role="group" [attr.aria-label]="label() || null"><ng-content /></fieldset>`,
8189
8189
  changeDetection: ChangeDetectionStrategy.OnPush
8190
8190
  }]
8191
8191
  }],
@@ -10268,6 +10268,8 @@ var ContentsLink = class ContentsLink {
10268
10268
  href = input("", ...ngDevMode ? [{ debugName: "href" }] : /* istanbul ignore next */ []);
10269
10269
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
10270
10270
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
10271
+ count = input(void 0, ...ngDevMode ? [{ debugName: "count" }] : /* istanbul ignore next */ []);
10272
+ countLabel = input(void 0, ...ngDevMode ? [{ debugName: "countLabel" }] : /* istanbul ignore next */ []);
10271
10273
  static ɵfac = i0.ɵɵngDeclareFactory({
10272
10274
  minVersion: "12.0.0",
10273
10275
  version: "22.2.1",
@@ -10277,7 +10279,7 @@ var ContentsLink = class ContentsLink {
10277
10279
  target: i0.ɵɵFactoryTarget.Component
10278
10280
  });
10279
10281
  static ɵcmp = i0.ɵɵngDeclareComponent({
10280
- minVersion: "17.1.0",
10282
+ minVersion: "17.0.0",
10281
10283
  version: "22.2.1",
10282
10284
  type: ContentsLink,
10283
10285
  isStandalone: true,
@@ -10303,10 +10305,31 @@ var ContentsLink = class ContentsLink {
10303
10305
  isSignal: true,
10304
10306
  isRequired: false,
10305
10307
  transformFunction: null
10308
+ },
10309
+ count: {
10310
+ classPropertyName: "count",
10311
+ publicName: "count",
10312
+ isSignal: true,
10313
+ isRequired: false,
10314
+ transformFunction: null
10315
+ },
10316
+ countLabel: {
10317
+ classPropertyName: "countLabel",
10318
+ publicName: "countLabel",
10319
+ isSignal: true,
10320
+ isRequired: false,
10321
+ transformFunction: null
10306
10322
  }
10307
10323
  },
10308
10324
  ngImport: i0,
10309
- template: `<a class="contents-link {{ className() }}" [attr.href]="href() || '#'" [attr.aria-label]="label() || null"><ng-content /></a>`,
10325
+ template: `<a
10326
+ class="contents-link {{ className() }}"
10327
+ [attr.href]="href() || '#'"
10328
+ [attr.aria-label]="label() || null"
10329
+ [attr.data-count]="count() ?? null"
10330
+ [attr.data-complete]="count() === 0 ? '' : null"
10331
+ ><ng-content />@if (countLabel()) {<span class="contents-link-count">{{ countLabel() }}</span>}</a
10332
+ >`,
10310
10333
  isInline: true,
10311
10334
  changeDetection: i0.ChangeDetectionStrategy.OnPush
10312
10335
  });
@@ -10321,7 +10344,14 @@ i0.ɵɵngDeclareClassMetadata({
10321
10344
  args: [{
10322
10345
  selector: "lily-contents-link",
10323
10346
  standalone: true,
10324
- template: `<a class="contents-link {{ className() }}" [attr.href]="href() || '#'" [attr.aria-label]="label() || null"><ng-content /></a>`,
10347
+ template: `<a
10348
+ class="contents-link {{ className() }}"
10349
+ [attr.href]="href() || '#'"
10350
+ [attr.aria-label]="label() || null"
10351
+ [attr.data-count]="count() ?? null"
10352
+ [attr.data-complete]="count() === 0 ? '' : null"
10353
+ ><ng-content />@if (countLabel()) {<span class="contents-link-count">{{ countLabel() }}</span>}</a
10354
+ >`,
10325
10355
  changeDetection: ChangeDetectionStrategy.OnPush
10326
10356
  }]
10327
10357
  }],
@@ -10349,6 +10379,22 @@ i0.ɵɵngDeclareClassMetadata({
10349
10379
  alias: "className",
10350
10380
  required: false
10351
10381
  }]
10382
+ }],
10383
+ count: [{
10384
+ type: i0.Input,
10385
+ args: [{
10386
+ isSignal: true,
10387
+ alias: "count",
10388
+ required: false
10389
+ }]
10390
+ }],
10391
+ countLabel: [{
10392
+ type: i0.Input,
10393
+ args: [{
10394
+ isSignal: true,
10395
+ alias: "countLabel",
10396
+ required: false
10397
+ }]
10352
10398
  }]
10353
10399
  }
10354
10400
  });
@@ -10478,9 +10524,150 @@ i0.ɵɵngDeclareClassMetadata({
10478
10524
  }]
10479
10525
  }] }
10480
10526
  });
10527
+ function activeSectionIndex(tops, offset, atBottom) {
10528
+ if (tops.length === 0) return -1;
10529
+ if (atBottom) return tops.length - 1;
10530
+ let index = 0;
10531
+ for (let i = 0; i < tops.length; i++) if (tops[i] <= offset + 1) index = i;
10532
+ return index;
10533
+ }
10534
+ function contentsLinks(nav) {
10535
+ return Array.from(nav.querySelectorAll("a[href^=\"#\"]")).filter((a) => a.getAttribute("href").length > 1);
10536
+ }
10537
+ function contentsLinkId(link) {
10538
+ return decodeURIComponent((link.getAttribute("href") ?? "").slice(1));
10539
+ }
10540
+ function contentsTarget(link, doc) {
10541
+ return doc.getElementById(contentsLinkId(link));
10542
+ }
10543
+ function startScrollspy(nav, options = {}) {
10544
+ if (typeof window === "undefined") return () => {};
10545
+ const offset = options.offset ?? 0;
10546
+ const spyRoot = options.root ?? null;
10547
+ const token = options.current ?? "true";
10548
+ const scroller = spyRoot ?? window;
10549
+ let locked = false;
10550
+ let lockTimer;
10551
+ let frame = 0;
10552
+ let last = "";
10553
+ let hashPending = false;
10554
+ function mark(link) {
10555
+ for (const a of contentsLinks(nav)) if (a === link) {
10556
+ a.setAttribute("aria-current", token);
10557
+ a.setAttribute("data-active", "");
10558
+ } else {
10559
+ a.removeAttribute("aria-current");
10560
+ a.removeAttribute("data-active");
10561
+ }
10562
+ for (const li of nav.querySelectorAll("li")) if (link && li.contains(link) && li.querySelector(":scope > a") !== link) li.setAttribute("data-descendant-active", "");
10563
+ else li.removeAttribute("data-descendant-active");
10564
+ const id = link ? contentsLinkId(link) : "";
10565
+ if (id !== last) {
10566
+ last = id;
10567
+ if (id) options.onChange?.(id);
10568
+ }
10569
+ }
10570
+ function update() {
10571
+ if (locked) return;
10572
+ if (hashPending) {
10573
+ const id = decodeURIComponent(window.location.hash.slice(1));
10574
+ const hashed = id ? contentsLinks(nav).find((a) => contentsLinkId(a) === id) : void 0;
10575
+ if (hashed) {
10576
+ mark(hashed);
10577
+ return;
10578
+ }
10579
+ }
10580
+ const pairs = contentsLinks(nav).map((a) => ({
10581
+ a,
10582
+ el: contentsTarget(a, nav.ownerDocument)
10583
+ })).filter((p) => p.el !== null);
10584
+ if (pairs.length === 0) {
10585
+ mark(void 0);
10586
+ return;
10587
+ }
10588
+ const base = spyRoot ? spyRoot.getBoundingClientRect().top : 0;
10589
+ const tops = pairs.map((p) => p.el.getBoundingClientRect().top - base);
10590
+ const atBottom = spyRoot ? spyRoot.scrollTop + spyRoot.clientHeight >= spyRoot.scrollHeight - 1 : window.innerHeight + window.scrollY >= document.documentElement.scrollHeight - 1;
10591
+ mark(pairs[activeSectionIndex(tops, offset, atBottom)].a);
10592
+ }
10593
+ function schedule() {
10594
+ if (frame) return;
10595
+ frame = requestAnimationFrame(() => {
10596
+ frame = 0;
10597
+ update();
10598
+ });
10599
+ }
10600
+ function onScroll() {
10601
+ hashPending = false;
10602
+ schedule();
10603
+ }
10604
+ function release() {
10605
+ locked = false;
10606
+ if (lockTimer) clearTimeout(lockTimer);
10607
+ update();
10608
+ }
10609
+ function onClick(event) {
10610
+ const link = event.target?.closest?.("a");
10611
+ if (!link || !nav.contains(link) || !contentsTarget(link, nav.ownerDocument)) return;
10612
+ mark(link);
10613
+ locked = true;
10614
+ if (lockTimer) clearTimeout(lockTimer);
10615
+ lockTimer = setTimeout(release, 1e3);
10616
+ }
10617
+ function onHashChange() {
10618
+ const id = decodeURIComponent(window.location.hash.slice(1));
10619
+ const link = contentsLinks(nav).find((a) => contentsLinkId(a) === id);
10620
+ if (link) mark(link);
10621
+ }
10622
+ scroller.addEventListener("scroll", onScroll, { passive: true });
10623
+ scroller.addEventListener("scrollend", release);
10624
+ window.addEventListener("resize", schedule);
10625
+ window.addEventListener("hashchange", onHashChange);
10626
+ nav.addEventListener("click", onClick);
10627
+ const mutations = typeof MutationObserver === "undefined" ? null : new MutationObserver(schedule);
10628
+ mutations?.observe(nav, {
10629
+ childList: true,
10630
+ subtree: true,
10631
+ attributes: true,
10632
+ attributeFilter: ["href"]
10633
+ });
10634
+ const initial = decodeURIComponent(window.location.hash.slice(1));
10635
+ hashPending = initial !== "";
10636
+ const hashLink = initial ? contentsLinks(nav).find((a) => contentsLinkId(a) === initial) : void 0;
10637
+ if (hashLink) mark(hashLink);
10638
+ else update();
10639
+ return () => {
10640
+ scroller.removeEventListener("scroll", onScroll);
10641
+ scroller.removeEventListener("scrollend", release);
10642
+ window.removeEventListener("resize", schedule);
10643
+ window.removeEventListener("hashchange", onHashChange);
10644
+ nav.removeEventListener("click", onClick);
10645
+ mutations?.disconnect();
10646
+ if (frame) cancelAnimationFrame(frame);
10647
+ if (lockTimer) clearTimeout(lockTimer);
10648
+ };
10649
+ }
10481
10650
  var ContentsNav = class ContentsNav {
10482
10651
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
10483
10652
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
10653
+ spy = input(false, ...ngDevMode ? [{ debugName: "spy" }] : /* istanbul ignore next */ []);
10654
+ offset = input(0, ...ngDevMode ? [{ debugName: "offset" }] : /* istanbul ignore next */ []);
10655
+ root = input(null, ...ngDevMode ? [{ debugName: "root" }] : /* istanbul ignore next */ []);
10656
+ current = input("true", ...ngDevMode ? [{ debugName: "current" }] : /* istanbul ignore next */ []);
10657
+ active = model("", ...ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []);
10658
+ navEl = viewChild("navEl", ...ngDevMode ? [{ debugName: "navEl" }] : /* istanbul ignore next */ []);
10659
+ constructor() {
10660
+ effect((onCleanup) => {
10661
+ const nav = this.navEl()?.nativeElement;
10662
+ if (!this.spy() || !nav) return;
10663
+ onCleanup(startScrollspy(nav, {
10664
+ offset: this.offset(),
10665
+ root: this.root(),
10666
+ current: this.current(),
10667
+ onChange: (id) => this.active.set(id)
10668
+ }));
10669
+ });
10670
+ }
10484
10671
  static ɵfac = i0.ɵɵngDeclareFactory({
10485
10672
  minVersion: "12.0.0",
10486
10673
  version: "22.2.1",
@@ -10490,7 +10677,7 @@ var ContentsNav = class ContentsNav {
10490
10677
  target: i0.ɵɵFactoryTarget.Component
10491
10678
  });
10492
10679
  static ɵcmp = i0.ɵɵngDeclareComponent({
10493
- minVersion: "17.1.0",
10680
+ minVersion: "17.2.0",
10494
10681
  version: "22.2.1",
10495
10682
  type: ContentsNav,
10496
10683
  isStandalone: true,
@@ -10509,10 +10696,53 @@ var ContentsNav = class ContentsNav {
10509
10696
  isSignal: true,
10510
10697
  isRequired: false,
10511
10698
  transformFunction: null
10699
+ },
10700
+ spy: {
10701
+ classPropertyName: "spy",
10702
+ publicName: "spy",
10703
+ isSignal: true,
10704
+ isRequired: false,
10705
+ transformFunction: null
10706
+ },
10707
+ offset: {
10708
+ classPropertyName: "offset",
10709
+ publicName: "offset",
10710
+ isSignal: true,
10711
+ isRequired: false,
10712
+ transformFunction: null
10713
+ },
10714
+ root: {
10715
+ classPropertyName: "root",
10716
+ publicName: "root",
10717
+ isSignal: true,
10718
+ isRequired: false,
10719
+ transformFunction: null
10720
+ },
10721
+ current: {
10722
+ classPropertyName: "current",
10723
+ publicName: "current",
10724
+ isSignal: true,
10725
+ isRequired: false,
10726
+ transformFunction: null
10727
+ },
10728
+ active: {
10729
+ classPropertyName: "active",
10730
+ publicName: "active",
10731
+ isSignal: true,
10732
+ isRequired: false,
10733
+ transformFunction: null
10512
10734
  }
10513
10735
  },
10736
+ outputs: { active: "activeChange" },
10737
+ viewQueries: [{
10738
+ propertyName: "navEl",
10739
+ first: true,
10740
+ predicate: ["navEl"],
10741
+ descendants: true,
10742
+ isSignal: true
10743
+ }],
10514
10744
  ngImport: i0,
10515
- template: `<nav class="contents-nav {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></nav>`,
10745
+ template: `<nav #navEl class="contents-nav {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></nav>`,
10516
10746
  isInline: true,
10517
10747
  changeDetection: i0.ChangeDetectionStrategy.OnPush
10518
10748
  });
@@ -10527,10 +10757,11 @@ i0.ɵɵngDeclareClassMetadata({
10527
10757
  args: [{
10528
10758
  selector: "lily-contents-nav",
10529
10759
  standalone: true,
10530
- template: `<nav class="contents-nav {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></nav>`,
10760
+ template: `<nav #navEl class="contents-nav {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></nav>`,
10531
10761
  changeDetection: ChangeDetectionStrategy.OnPush
10532
10762
  }]
10533
10763
  }],
10764
+ ctorParameters: () => [],
10534
10765
  propDecorators: {
10535
10766
  label: [{
10536
10767
  type: i0.Input,
@@ -10547,6 +10778,53 @@ i0.ɵɵngDeclareClassMetadata({
10547
10778
  alias: "className",
10548
10779
  required: false
10549
10780
  }]
10781
+ }],
10782
+ spy: [{
10783
+ type: i0.Input,
10784
+ args: [{
10785
+ isSignal: true,
10786
+ alias: "spy",
10787
+ required: false
10788
+ }]
10789
+ }],
10790
+ offset: [{
10791
+ type: i0.Input,
10792
+ args: [{
10793
+ isSignal: true,
10794
+ alias: "offset",
10795
+ required: false
10796
+ }]
10797
+ }],
10798
+ root: [{
10799
+ type: i0.Input,
10800
+ args: [{
10801
+ isSignal: true,
10802
+ alias: "root",
10803
+ required: false
10804
+ }]
10805
+ }],
10806
+ current: [{
10807
+ type: i0.Input,
10808
+ args: [{
10809
+ isSignal: true,
10810
+ alias: "current",
10811
+ required: false
10812
+ }]
10813
+ }],
10814
+ active: [{
10815
+ type: i0.Input,
10816
+ args: [{
10817
+ isSignal: true,
10818
+ alias: "active",
10819
+ required: false
10820
+ }]
10821
+ }, {
10822
+ type: i0.Output,
10823
+ args: ["activeChange"]
10824
+ }],
10825
+ navEl: [{
10826
+ type: i0.ViewChild,
10827
+ args: ["navEl", { isSignal: true }]
10550
10828
  }]
10551
10829
  }
10552
10830
  });
@@ -36461,7 +36739,7 @@ var RadioGroup = class RadioGroup {
36461
36739
  }
36462
36740
  },
36463
36741
  ngImport: i0,
36464
- template: `<div class="radio-group {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
36742
+ template: `<fieldset class="radio-group {{ className() }}" role="radiogroup" [attr.aria-label]="label() || null"><ng-content /></fieldset>`,
36465
36743
  isInline: true,
36466
36744
  changeDetection: i0.ChangeDetectionStrategy.OnPush
36467
36745
  });
@@ -36476,7 +36754,7 @@ i0.ɵɵngDeclareClassMetadata({
36476
36754
  args: [{
36477
36755
  selector: "lily-radio-group",
36478
36756
  standalone: true,
36479
- template: `<div class="radio-group {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
36757
+ template: `<fieldset class="radio-group {{ className() }}" role="radiogroup" [attr.aria-label]="label() || null"><ng-content /></fieldset>`,
36480
36758
  changeDetection: ChangeDetectionStrategy.OnPush
36481
36759
  }]
36482
36760
  }],
@@ -39822,6 +40100,9 @@ i0.ɵɵngDeclareClassMetadata({
39822
40100
  var SegmentGroupItem = class SegmentGroupItem {
39823
40101
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
39824
40102
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
40103
+ checked = input(false, ...ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []);
40104
+ value = input("", ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
40105
+ disabled = input(false, ...ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []);
39825
40106
  static ɵfac = i0.ɵɵngDeclareFactory({
39826
40107
  minVersion: "12.0.0",
39827
40108
  version: "22.2.1",
@@ -39850,10 +40131,40 @@ var SegmentGroupItem = class SegmentGroupItem {
39850
40131
  isSignal: true,
39851
40132
  isRequired: false,
39852
40133
  transformFunction: null
40134
+ },
40135
+ checked: {
40136
+ classPropertyName: "checked",
40137
+ publicName: "checked",
40138
+ isSignal: true,
40139
+ isRequired: false,
40140
+ transformFunction: null
40141
+ },
40142
+ value: {
40143
+ classPropertyName: "value",
40144
+ publicName: "value",
40145
+ isSignal: true,
40146
+ isRequired: false,
40147
+ transformFunction: null
40148
+ },
40149
+ disabled: {
40150
+ classPropertyName: "disabled",
40151
+ publicName: "disabled",
40152
+ isSignal: true,
40153
+ isRequired: false,
40154
+ transformFunction: null
39853
40155
  }
39854
40156
  },
39855
40157
  ngImport: i0,
39856
- template: `<div class="segment-group-item {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
40158
+ template: `<button
40159
+ type="button"
40160
+ class="segment-group-item {{ className() }}"
40161
+ role="radio"
40162
+ [attr.aria-checked]="checked()"
40163
+ [attr.data-value]="value() || null"
40164
+ [attr.tabindex]="checked() ? 0 : -1"
40165
+ [disabled]="disabled()"
40166
+ [attr.aria-label]="label() || null"
40167
+ ><ng-content /></button>`,
39857
40168
  isInline: true,
39858
40169
  changeDetection: i0.ChangeDetectionStrategy.OnPush
39859
40170
  });
@@ -39868,7 +40179,16 @@ i0.ɵɵngDeclareClassMetadata({
39868
40179
  args: [{
39869
40180
  selector: "lily-segment-group-item",
39870
40181
  standalone: true,
39871
- template: `<div class="segment-group-item {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
40182
+ template: `<button
40183
+ type="button"
40184
+ class="segment-group-item {{ className() }}"
40185
+ role="radio"
40186
+ [attr.aria-checked]="checked()"
40187
+ [attr.data-value]="value() || null"
40188
+ [attr.tabindex]="checked() ? 0 : -1"
40189
+ [disabled]="disabled()"
40190
+ [attr.aria-label]="label() || null"
40191
+ ><ng-content /></button>`,
39872
40192
  changeDetection: ChangeDetectionStrategy.OnPush
39873
40193
  }]
39874
40194
  }],
@@ -39888,6 +40208,30 @@ i0.ɵɵngDeclareClassMetadata({
39888
40208
  alias: "className",
39889
40209
  required: false
39890
40210
  }]
40211
+ }],
40212
+ checked: [{
40213
+ type: i0.Input,
40214
+ args: [{
40215
+ isSignal: true,
40216
+ alias: "checked",
40217
+ required: false
40218
+ }]
40219
+ }],
40220
+ value: [{
40221
+ type: i0.Input,
40222
+ args: [{
40223
+ isSignal: true,
40224
+ alias: "value",
40225
+ required: false
40226
+ }]
40227
+ }],
40228
+ disabled: [{
40229
+ type: i0.Input,
40230
+ args: [{
40231
+ isSignal: true,
40232
+ alias: "disabled",
40233
+ required: false
40234
+ }]
39891
40235
  }]
39892
40236
  }
39893
40237
  });
@@ -44692,6 +45036,7 @@ i0.ɵɵngDeclareClassMetadata({
44692
45036
  var Tag = class Tag {
44693
45037
  label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
44694
45038
  className = input("", ...ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []);
45039
+ live = input(false, ...ngDevMode ? [{ debugName: "live" }] : /* istanbul ignore next */ []);
44695
45040
  static ɵfac = i0.ɵɵngDeclareFactory({
44696
45041
  minVersion: "12.0.0",
44697
45042
  version: "22.2.1",
@@ -44701,7 +45046,7 @@ var Tag = class Tag {
44701
45046
  target: i0.ɵɵFactoryTarget.Component
44702
45047
  });
44703
45048
  static ɵcmp = i0.ɵɵngDeclareComponent({
44704
- minVersion: "17.1.0",
45049
+ minVersion: "17.0.0",
44705
45050
  version: "22.2.1",
44706
45051
  type: Tag,
44707
45052
  isStandalone: true,
@@ -44720,10 +45065,21 @@ var Tag = class Tag {
44720
45065
  isSignal: true,
44721
45066
  isRequired: false,
44722
45067
  transformFunction: null
45068
+ },
45069
+ live: {
45070
+ classPropertyName: "live",
45071
+ publicName: "live",
45072
+ isSignal: true,
45073
+ isRequired: false,
45074
+ transformFunction: null
44723
45075
  }
44724
45076
  },
44725
45077
  ngImport: i0,
44726
- template: `<div class="tag {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
45078
+ template: `@if (live()) {
45079
+ <span class="tag {{ className() }}" role="status" [attr.aria-label]="label() || null"><ng-content /></span>
45080
+ } @else {
45081
+ <span class="tag {{ className() }}"><ng-content />@if (label()) {<span class="screen-reader-span">{{ label() }}</span>}</span>
45082
+ }`,
44727
45083
  isInline: true,
44728
45084
  changeDetection: i0.ChangeDetectionStrategy.OnPush
44729
45085
  });
@@ -44738,7 +45094,11 @@ i0.ɵɵngDeclareClassMetadata({
44738
45094
  args: [{
44739
45095
  selector: "lily-tag",
44740
45096
  standalone: true,
44741
- template: `<div class="tag {{ className() }}" [attr.aria-label]="label() || null"><ng-content /></div>`,
45097
+ template: `@if (live()) {
45098
+ <span class="tag {{ className() }}" role="status" [attr.aria-label]="label() || null"><ng-content /></span>
45099
+ } @else {
45100
+ <span class="tag {{ className() }}"><ng-content />@if (label()) {<span class="screen-reader-span">{{ label() }}</span>}</span>
45101
+ }`,
44742
45102
  changeDetection: ChangeDetectionStrategy.OnPush
44743
45103
  }]
44744
45104
  }],
@@ -44758,6 +45118,14 @@ i0.ɵɵngDeclareClassMetadata({
44758
45118
  alias: "className",
44759
45119
  required: false
44760
45120
  }]
45121
+ }],
45122
+ live: [{
45123
+ type: i0.Input,
45124
+ args: [{
45125
+ isSignal: true,
45126
+ alias: "live",
45127
+ required: false
45128
+ }]
44761
45129
  }]
44762
45130
  }
44763
45131
  });